add packing list replica

This commit is contained in:
omair saleh
2021-12-28 21:50:30 +08:00
parent f0bc306ebd
commit 78fcb6c111
5 changed files with 25 additions and 33 deletions
@@ -33,7 +33,7 @@ class CreatePackageProcessor
/**
* @param PackageObject $object
* @param PackingList $packingList
* @return \Illuminate\Database\Eloquent\Model
* @return void
* @throws \App\Classes\Exceptions\AccessForbiddenException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
@@ -41,7 +41,17 @@ class CreatePackageProcessor
$this->canCreatePackage->passes($object);
return $this->createsPackage->execute($object, $packingList);
$this->createsPackage->execute($object, $packingList);
$replica = $packingList->packingList()->first();
if($replica) {
$modificationValue = 1;
$packageObject = new PackageObject($object->getType(), $object->getDescription(), $object->getWidth() + $modificationValue, $object->getHeight() + $modificationValue, $object->getLength() + $modificationValue, $object->getWeight(), $object->getQuantity(), $object->getStatus());
$this->createsPackage->execute($packageObject, $replica);
}
return ;
}
@@ -7,6 +7,10 @@ use App\Classes\General\Interfaces\Packable;
use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListObject;
use App\Classes\Modules\PackingLists\Services\CreatesPackingList;
use App\Classes\Modules\PackingLists\Standards\Rules\CanCreatePackingList;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\OrderRoleTypes;
use App\Classes\ValueObjects\Constants\PackingListType;
use App\Models\PackingList;
class CreatePackingListProcessor
{
@@ -41,7 +45,14 @@ class CreatePackingListProcessor
public function execute(PackingListObject $object, Packable $packable){
$this->canCreatePackingList->passes($object);
return $this->createsPackingList->execute($object, $packable);
/** @var PackingList $packingList */
$packingList = $this->createsPackingList->execute($object, $packable);
/** create packing list replica */
$object = new PackingListObject($object->getReference().'_01', $packingList->owner->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_FREIGHT_FORWARDER)->first()->appointee->id, $object->getType() === PackingListType::SHIPPING_PACKING_LIST ? $object->getType() === PackingListType::SHIPPING_PACKING_LIST_REPLICA : $object->getType() === PackingListType::WAREHOUSE_RECEIVE_LIST_REPLICA, ApprovalStatus::PENDING_SUBMISSION);
$this->createsPackingList->execute($object, $packingList);
return $packingList;
}
}
@@ -213,11 +213,6 @@ class FetchLoadedContainersFromVTPortalProcessor
$this->createsStep->execute($packingList, $stepObject);
}
//Duplicate a copy for internal reference
$packingListObject = new PackingListObject($packingListReference.'_01', $order->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->id, PackingListType::SHIPPING_PACKING_LIST_REPLICA, ApprovalStatus::PENDING_SUBMISSION);
$this->createPackingListProcessor->execute($packingListObject, $packingList);
}
}
@@ -73,12 +73,6 @@ class FetchPackingListFromVTPortalProcessor
$packageObject = new PackageObject(PackageType::CARTON, $shippingPackingList[19], $shippingPackingList[31], $shippingPackingList[30], $shippingPackingList[29], 0, $shippingPackingList[22], ApprovalStatus::APPROVED);
$this->createPackageProcessor->execute($packageObject, $packingList);
if($replica) {
$modificationValue = 1;
$packageObject = new PackageObject(PackageType::CARTON, $shippingPackingList[19], $shippingPackingList[31] + $modificationValue, $shippingPackingList[30] + $modificationValue, $shippingPackingList[29] + $modificationValue, 0, $shippingPackingList[22], ApprovalStatus::APPROVED);
$this->createPackageProcessor->execute($packageObject, $replica);
}
}
DB::commit();
@@ -206,13 +206,7 @@ class FetchWarehouseReceiveListFromVTPortalProcessor
if(!$packingList) {
$packingList = $this->createPackingListProcessor->execute($packingListObject, $order);
$packingListObject = new PackingListObject($packingListReference.'_01', $order->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->id, PackingListType::WAREHOUSE_RECEIVE_LIST_REPLICA, ApprovalStatus::APPROVED);
$this->createPackingListProcessor->execute($packingListObject, $packingList);
$transportObject = new TransportObject(TransportType::LAND, null, $tracking, Carbon::parse($receiveDate), Carbon::parse($receiveDate), ApprovalStatus::APPROVED);
$this->createsTransport->execute($transportObject, $packingList);
}
@@ -226,24 +220,12 @@ class FetchWarehouseReceiveListFromVTPortalProcessor
/** @var PackingList $replica */
$replica = $packingList->packingLists()->where('type', PackingListType::WAREHOUSE_RECEIVE_LIST_REPLICA)->first();
$packingList->packages()->delete();
if($replica) $replica->packages()->delete();
$packageObject = new PackageObject(PackageType::CARTON, $description, $measurement, $measurement, $measurement, 0, $quantity, ApprovalStatus::APPROVED);
$this->createPackageProcessor->execute($packageObject, $packingList);
if($replica){
$replica->packages()->delete();
$modificationValue = 1;
$packageObject = new PackageObject(PackageType::CARTON, $description, $measurement + $modificationValue, $measurement + $modificationValue, $measurement + $modificationValue, 0, $quantity, ApprovalStatus::APPROVED);
$this->createPackageProcessor->execute($packageObject, $replica);
}
}
} catch (\Exception $exception){
dd($exception);
Log::error($exception->getMessage());
}