customer export

This commit is contained in:
glovetleong
2021-12-28 17:48:50 +08:00
parent 82f45007d1
commit a328be683e
3 changed files with 86 additions and 0 deletions
@@ -0,0 +1,60 @@
<?php
namespace App\Classes\Modules\Exports\Services;
use App\Classes\ValueObjects\Constants\PackingListType;
use App\Models\CompanyModule;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
class ExportsCustomersOrderLatestDate implements FromQuery, WithHeadingRow, WithMapping
{
use Exportable;
public function headings(): array
{
return [
'Marking',
'Name',
'Email',
'Latest Order'
];
}
/**
* @return \Illuminate\Support\Collection|mixed
*/
public function query()
{
return CompanyModule::where('type', '=', 1);
}
/**
* @param Company $company
*
* @return array
*/
public function map($company): array
{
$connection = $company->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 : ''
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Http\Controllers\Exports;
use App\Classes\Modules\Exports\Services\ExportsCustomersOrderLatestDate;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Excel;
class ExportCustomersToExcelController
{
public function export(ExportsCustomersOrderLatestDate $exportsCustomers, Request $request){
$token = Auth::fromUser(User::find(1));
$request->headers->set('Authorization', 'Bearer '.$token);
return $exportsCustomers->download('customer-latest-order-date.csv', Excel::CSV, ['Content-Type' => 'text/csv']);
}
}
+7
View File
@@ -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');