diff --git a/app/Classes/Modules/Addresses/Processors/CreateAddressFromOldAddressProcessor.php b/app/Classes/Modules/Addresses/Processors/CreateAddressFromOldAddressProcessor.php index 7cd04d1f..3e209927 100644 --- a/app/Classes/Modules/Addresses/Processors/CreateAddressFromOldAddressProcessor.php +++ b/app/Classes/Modules/Addresses/Processors/CreateAddressFromOldAddressProcessor.php @@ -7,6 +7,7 @@ use App\Classes\Modules\Addresses\Services\CleansOldAddress; use App\Classes\Modules\Addresses\Services\CreatesAddress; use App\Classes\Modules\Addresses\Services\FetchesAddress; use App\Models\OldAddress; +use App\Models\Order; use Illuminate\Database\Eloquent\Model; class CreateAddressFromOldAddressProcessor @@ -44,8 +45,8 @@ class CreateAddressFromOldAddressProcessor } - if($address = $addressable->addresses()->where('street_one', $object->getStreetOne())->first()){ - return $address; + if(!$addressable instanceof Order && $address = $addressable->addresses()->where('street_one', $object->getStreetOne())->first()) { + return $address; } return $this->createsAddress->execute($addressable, $object); diff --git a/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php index 862fdb60..476b1426 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php @@ -125,6 +125,7 @@ class FetchWarehouseReceiveListFromVTPortalProcessor } $end = $end ? $end : Carbon::now(); + $filter = '["ParcelDate:$between$%js%\"'.$start->format('Y-m-d').'T00:00:00.000\"$and$%js%\"'.$end->format('Y-m-d').'T00:00:00.000\"\u0000"]'; $warehouseListRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"WarehouseList","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"ModifiedOn DESC","Filter":'.$filter.'}}'), ''); @@ -132,6 +133,7 @@ class FetchWarehouseReceiveListFromVTPortalProcessor $response = $this->fetchesDataFRomVTPortal->getResponseBody($warehouseListRequest); foreach ($response->Rows as $parcel){ + $marking = explode('/', explode('CIEF/', $parcel[5])[1]); if(!array_key_exists(1, $marking)){ @@ -144,6 +146,7 @@ class FetchWarehouseReceiveListFromVTPortalProcessor continue; } + try { $order = $this->fetchesOrder->execute(['reference' => $orderNumber]); } catch (ResourceNotFoundException $exception) { @@ -154,13 +157,16 @@ class FetchWarehouseReceiveListFromVTPortalProcessor continue; } - $customerMarking = str_replace(' ', '', str_replace('/', '', str_replace('CIEF/', '', $oldOrder->company->marking))); + + $customerMarking = str_replace('/', '', str_replace(' ', '', explode('CIEF/', $oldOrder->company->marking)[1])); $companyModule = CompanyModule::whereHas('inviters', function($query) use ($customerMarking) { return $query->where('invitee_reference', '=', $customerMarking); })->first(); - if(!$companyModule) { + + if(!$companyModule){ + log::error('unknown customer: '.$customerMarking); continue; } @@ -180,6 +186,10 @@ class FetchWarehouseReceiveListFromVTPortalProcessor $originWarehouse = $this->fetchesCompanyModule->execute(['id' => $warehouseId === 11 ? 3 : 4]); $order = $this->createOrderProcessor->execute($companyModule->company, $originWarehouse, $address, $orderNumber); + + $order->created_at = Carbon::parse($parcel[1]); + $order->save(); + } $packingListReference = $parcel[17]; @@ -217,13 +227,13 @@ class FetchWarehouseReceiveListFromVTPortalProcessor } - return []; + } catch (\Exception $exception){ Log::error($exception->getMessage()); } DB::commit(); - + return []; } diff --git a/app/Models/OldOrders.php b/app/Models/OldOrders.php index 81041fab..c6901929 100644 --- a/app/Models/OldOrders.php +++ b/app/Models/OldOrders.php @@ -17,7 +17,7 @@ class OldOrders extends Model */ public function address(): hasOne { - return $this->hasOne(OldAddress::class, 'reference_id', 'address_id')->where('type', '=', 1); + return $this->hasOne(OldAddress::class, 'id', 'address_id')->where('type', '=', 1); } /** diff --git a/database/seeders/DeleteOldOrdersSeeder.php b/database/seeders/DeleteOldOrdersSeeder.php new file mode 100644 index 00000000..74afabf6 --- /dev/null +++ b/database/seeders/DeleteOldOrdersSeeder.php @@ -0,0 +1,54 @@ +reference)->first(); + if($oldOrder){ + $order->addresses()->forceDelete(); + $order->packingLists()->forceDelete(); + $order->OrderRoles()->forceDelete(); + $order->orderSteps()->forceDelete(); + $order->forceDelete(); + } + } + } + +}