From a328be683eca388f258d9afea0ce07fbd33e39fe Mon Sep 17 00:00:00 2001 From: glovetleong Date: Tue, 28 Dec 2021 17:48:50 +0800 Subject: [PATCH] customer export --- .../ExportsCustomersOrderLatestDate.php | 60 +++++++++++++++++++ .../ExportCustomersToExcelController.php | 19 ++++++ routes/web.php | 7 +++ 3 files changed, 86 insertions(+) create mode 100644 app/Classes/Modules/Exports/Services/ExportsCustomersOrderLatestDate.php create mode 100644 app/Http/Controllers/Exports/ExportCustomersToExcelController.php diff --git a/app/Classes/Modules/Exports/Services/ExportsCustomersOrderLatestDate.php b/app/Classes/Modules/Exports/Services/ExportsCustomersOrderLatestDate.php new file mode 100644 index 00000000..3d57991e --- /dev/null +++ b/app/Classes/Modules/Exports/Services/ExportsCustomersOrderLatestDate.php @@ -0,0 +1,60 @@ +inviters()->withPivot('invitee_reference')->first(); + $marking = $connection ? $connection->pivot->invitee_reference:''; + + $employees = $company->employees()->first(); + + $order = $company->orders() + ->join('packing_lists', 'packing_lists.owner_id', '=', 'orders.id') + ->join('transport_arrangements', 'transport_arrangements.owner_id', '=', 'packing_lists.id') + ->orderBy('drop_date', 'desc') + ->first(); + + return [ + $marking, + $employees ? $employees->name : '', + $employees ? $employees->email : '', + $order ? $order->drop_date : '' + ]; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Exports/ExportCustomersToExcelController.php b/app/Http/Controllers/Exports/ExportCustomersToExcelController.php new file mode 100644 index 00000000..d4e050b5 --- /dev/null +++ b/app/Http/Controllers/Exports/ExportCustomersToExcelController.php @@ -0,0 +1,19 @@ +headers->set('Authorization', 'Bearer '.$token); + return $exportsCustomers->download('customer-latest-order-date.csv', Excel::CSV, ['Content-Type' => 'text/csv']); + } +} diff --git a/routes/web.php b/routes/web.php index 73f7841b..d520f721 100644 --- a/routes/web.php +++ b/routes/web.php @@ -5,6 +5,7 @@ use App\Classes\Jobs\FetchDeliveryListFromVTPortalJob; use App\Classes\Jobs\FetchLoadedContainersFromVTPortalJob; use App\Classes\Jobs\FetchPackingListFromVTPortalJob; use App\Classes\Jobs\FetchWarehouseReceiveListFromVTPortalJob; +use App\Classes\Modules\PackingLists\Processors\FetchOrderListsFromYdPortalProcessor; use App\Models\CompanyConnection; use Illuminate\Support\Facades\Crypt; use App\Models\Container; @@ -177,3 +178,9 @@ Route::get('/debug', function (){ dd($issues); }); + +Route::get('/yd', function (){ + (App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute();; +}); + +Route::get('/export/customer-latest-order-date/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export');