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/Classes/Modules/Orders/Services/FetchesDataFromYDPortal.php b/app/Classes/Modules/Orders/Services/FetchesDataFromYDPortal.php index 387a2b24..37b1c295 100644 --- a/app/Classes/Modules/Orders/Services/FetchesDataFromYDPortal.php +++ b/app/Classes/Modules/Orders/Services/FetchesDataFromYDPortal.php @@ -11,14 +11,14 @@ class FetchesDataFromYDPortal * @param string $url * @param string $method * @param $body + * @param bool $requiresAuthentication * @return \Psr\Http\Message\ResponseInterface + * @throws \GuzzleHttp\Exception\GuzzleException */ public function clientRequest(string $url, string $method, $body){ $client = new \GuzzleHttp\Client(); - $body['apicode'] = env('YD_API_CODE'); - $request = $client->requestAsync($method, $url, ['query' => $body]); return $request->wait(); diff --git a/app/Classes/Modules/PackingLists/Processors/FetchOrderListsFromYdPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchOrderListsFromYdPortalProcessor.php index 4718a874..c65b8ee9 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchOrderListsFromYdPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchOrderListsFromYdPortalProcessor.php @@ -4,8 +4,6 @@ namespace App\Classes\Modules\PackingLists\Processors; use App\Classes\Modules\Orders\Services\FetchesDataFromYDPortal; -use App\Models\Order; -use Carbon\Carbon; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; @@ -23,42 +21,20 @@ class FetchOrderListsFromYdPortalProcessor /** * @param Carbon|null $start * @param Carbon|null $end - * @return void + * @return array + * @throws GuzzleException */ - public function execute(?Carbon $start = null, ?Carbon $end = null) - { - $start = $start ? $start : Carbon::now()->subMonths(2); + public function execute(?Carbon $start = null, ?Carbon $end = null) { - $startLimit = Carbon::parse('01-12-2021'); - if($start->isBefore($startLimit)){ - $start = $startLimit; - } + $orderRequest = $this->fetchesDataFRomYDPortal->clientRequest('http://www.yd-wl.com/api/GetOrderList.ashx', 'GET', [ + 'apicode' => '393b1cb4b8b37d09', + 'begintime' => '1633968000', + 'endtime' => '1639308222', + ]); - $end = $end ? $end : Carbon::now(); - - $orderRequest = $this->fetchesDataFRomYDPortal->clientRequest('http://www.yd-wl.com/api/GetOrderList.ashx', 'GET', [ - 'begintime' => $start->timestamp, - 'endtime' => $end->timestamp, - ]); - - $rows = $this->fetchesDataFRomYDPortal->getResponseBody($orderRequest); - - foreach($rows->data as $row){ - if (strpos($row->customerno, '/') !== false) { $customerno = explode('/', explode('CIEF/', $row->customerno)[1]); } - if(strpos($row->customerno, '-') !== false){ $customerno = explode('-', explode('CIEF-', $row->customerno)[1]); } - - $marking = $customerno[0]; - $orderNumber = $customerno[1]; - - $order = Order::where('reference', $orderNumber)->first(); - - if(!$order){ - continue; - } - - dump($order); - } + $order = $this->fetchesDataFRomYDPortal->getResponseBody($orderRequest); + dd($order); } } diff --git a/app/Console/Commands/CurlYdOrderListCommand.php b/app/Console/Commands/CurlYdOrderListCommand.php index 46fa4206..b68f6cd1 100644 --- a/app/Console/Commands/CurlYdOrderListCommand.php +++ b/app/Console/Commands/CurlYdOrderListCommand.php @@ -6,7 +6,7 @@ use App\Models\State; use App\Http\Helpers\General; use Illuminate\Console\Command; -use App\Classes\Jobs\CurlYdOrderListJob; +use App\Jobs\CurlYdOrderListJob; class CurlYdOrderListCommand extends Command { diff --git a/app/Http/Controllers/Exports/ExportCustomersToExcelController.php b/app/Http/Controllers/Exports/ExportCustomersToExcelController.php new file mode 100644 index 00000000..80701563 --- /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']); + } +} \ No newline at end of file diff --git a/app/Job/CurlYdOrderListJob.php b/app/Job/CurlYdOrderListJob.php new file mode 100644 index 00000000..713df1bc --- /dev/null +++ b/app/Job/CurlYdOrderListJob.php @@ -0,0 +1,37 @@ +make(FetchOrderListsFromYdPortalProcessor::class))->execute(); + } +} diff --git a/routes/web.php b/routes/web.php index 8234457f..0eca4f51 100644 --- a/routes/web.php +++ b/routes/web.php @@ -182,3 +182,5 @@ Route::get('/debug', function (){ Route::get('/yd', function (){ (App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute();; }); + +Route::get('/export/customer-latest-order-date/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export'); \ No newline at end of file