fix warehouse list bugs

This commit is contained in:
omair saleh
2021-09-02 16:51:10 +08:00
parent 7008a01b11
commit 842fc52b4e
4 changed files with 72 additions and 7 deletions
@@ -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,7 +45,7 @@ class CreateAddressFromOldAddressProcessor
}
if($address = $addressable->addresses()->where('street_one', $object->getStreetOne())->first()){
if(!$addressable instanceof Order && $address = $addressable->addresses()->where('street_one', $object->getStreetOne())->first()) {
return $address;
}
@@ -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 [];
}
+1 -1
View File
@@ -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);
}
/**
@@ -0,0 +1,54 @@
<?php
namespace Database\Seeders;
use App\Classes\Jobs\FetchContainersStatusUpdateFromVTPortalJob;
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\FetchContainersStatusUpdateFromVTPortalProcessor;
use App\Models\Address;
use App\Models\Container;
use App\Models\ContainerPackingList;
use App\Models\OldOrders;
use App\Models\Order;
use App\Models\Package;
use App\Models\PackingList;
use App\Models\Schedule;
use App\Models\Step;
use App\Models\Transport;
use Illuminate\Database\Seeder;
class DeleteOldOrdersSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Container::truncate();
ContainerPackingList::truncate();
Transport::truncate();
Schedule::truncate();
PackingList::truncate();
Package::truncate();
Step::truncate();
foreach (Order::all() as $order){
$oldOrder = OldOrders::where('marking', '=', $order->reference)->first();
if($oldOrder){
$order->addresses()->forceDelete();
$order->packingLists()->forceDelete();
$order->OrderRoles()->forceDelete();
$order->orderSteps()->forceDelete();
$order->forceDelete();
}
}
}
}