Merge branch 'export-booking-analytic' into 'master'

export billing analaytic data

See merge request CIEFWorldwideSdnBhd/exchange-2.0!108
This commit is contained in:
omair saleh
2022-05-14 11:56:14 +00:00
4 changed files with 100 additions and 0 deletions
@@ -0,0 +1,87 @@
<?php
namespace App\Classes\Modules\Exports\Services;
use App\Classes\General\Eloquent\Filters\ServiceType;
use App\Classes\ValueObjects\Constants\CompanyType;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Models\Booking;
use App\Models\Company;
use App\Models\Transaction;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
class ExportsAnalyticBillingTransactions implements FromQuery, WithHeadings, WithHeadingRow, WithMapping, ShouldAutoSize
{
use Exportable;
private $request;
public function __construct(Request $request)
{
$this->request = $request;
}
public function headings(): array
{
return [
'Booking Id',
'Service Type',
'Payment Method',
'Company Id',
'Customer Segment',
'Company Create Date',
'Company Type',
'Supplier Id',
'Customer Payment',
'Customer Rate',
'Customer Service Charge',
'Customer Payment Date',
'Original Amount',
'Supplier Payment',
'Supplier Rate',
'Supplier Sevice Charge',
'Supplier Payment Date'
];
}
/**
* @return \Illuminate\Support\Collection|mixed
*/
public function query()
{
return Transaction::where('type', 3);
}
/**
* @param $transaction
* @return array
*/
public function map($transaction): array
{
dd($transaction->owner->owner->company);
$paymentmethondArray = PaymentMethodType::PAYMENT_METHODS_ID;
$paymentMethod = $paymentmethondArray[$transaction->payment_method];
$companyTypeArray = CompanyType::COMPANY_TYPE_ID;
$companyType = $companyTypeArray[$transaction->owner->owner->company->business_type];
return [
$transaction->id,
$transaction->booking->service->name,
$paymentMethod,
$transaction->owner->owner->company->id,
$transaction->owner->owner->company->segments->first()->name,
$transaction->owner->owner->company->created_at,
];
}
}
@@ -8,4 +8,9 @@ final class CompanyType {
public const COMPANY_BUSINESS = 1;
public const COMPANY_TYPE_ID = [
self::PERSONAL_BUSINESS => 'PERSONAL_BUSINESS',
self::COMPANY_BUSINESS => 'COMPANY_BUSINESS',
];
}
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Exports;
use App\Classes\Modules\Exports\Services\ExportsAnalyticBookingTransactions;
use App\Classes\Modules\Exports\Services\ExportsAnalyticBillingTransactions;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@@ -27,4 +28,10 @@ class ExportAnalyticToExcelController
ob_end_clean();
return $response;
}
public function billingData(ExportsAnalyticBillingTransactions $exportsAnalyticBillingTransactions, Request $request){
$response = $exportsAnalyticBillingTransactions->download('billingData.csv', Excel::CSV, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']);
ob_end_clean();
return $response;
}
}
+1
View File
@@ -97,6 +97,7 @@ Route::get('/online_payment/redirect', 'Billplz\CallbackBillplzController@callba
Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export');
Route::get('/export/transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@transactions');
Route::get('/export/analytic/booking', 'Exports\ExportAnalyticToExcelController@bookingData');
Route::get('/export/analytic/bills', 'Exports\ExportAnalyticToExcelController@billingData');
Route::get('/products', function (\App\Classes\Modules\Exports\Services\ExportsProducts $exportsProducts) {
return $exportsProducts->download('products.csv', Excel::CSV, ['Content-Type' => 'text/csv']);