mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-19 04:24:12 +00:00
48 lines
1.7 KiB
PHP
48 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Classes\Modules\OrderSteps\Processors;
|
|
|
|
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
|
|
use App\Classes\Modules\Orders\Processors\UpdatesOrderCurrentStepProcessor;
|
|
use App\Classes\Modules\Orders\Services\FetchesOrder;
|
|
use App\Classes\Modules\OrderSteps\Services\CreatesOrderSteps;
|
|
use App\Classes\Modules\OrderSteps\Services\FetchesOrderSteps;
|
|
use App\Classes\Modules\Orders\Services\UpdatesCurrentStep;
|
|
use App\Classes\Modules\Orders\Standards\Rules\CanUpdateCurrentStep;
|
|
use App\Classes\Modules\OrderSteps\DataTransferObjects\OrderStepsObject;
|
|
use App\Classes\Modules\OrderSteps\Standards\Rules\CanCreateOrderStep;
|
|
use App\Classes\ValueObjects\Constants\OrderStatus;
|
|
use App\Classes\ValueObjects\Constants\OrderSteps;
|
|
use App\Models\Order;
|
|
use App\Models\OrderStep;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class CreateOrderStepsProcessor
|
|
{
|
|
private $canCreateOrderStep;
|
|
|
|
private $createsOrderSteps;
|
|
|
|
private $fetchesOrder;
|
|
|
|
private $fetchesOrderSteps;
|
|
|
|
public function __construct(CanCreateOrderStep $canCreateOrderStep, FetchesOrder $fetchesOrder, FetchesOrderSteps $fetchesOrderSteps, CreatesOrderSteps $createsOrderSteps )
|
|
{
|
|
$this->canCreateOrderStep = $canCreateOrderStep;
|
|
$this->createsOrderSteps = $createsOrderSteps;
|
|
$this->fetchesOrder = $fetchesOrder;
|
|
$this->fetchesOrderSteps = $fetchesOrderSteps;
|
|
}
|
|
|
|
public function execute(Model $order, string $currentStep){
|
|
|
|
$order_steps_object = new OrderStepsObject($order->id, $order->company_module_id, $currentStep, true, 0, OrderStatus::PROCESSING, 0, null);
|
|
|
|
$this->canCreateOrderStep->passes($order_steps_object);
|
|
|
|
return $this->createsOrderSteps->execute($order_steps_object);
|
|
|
|
}
|
|
}
|