Files
shipping-portal/app/Classes/Modules/Steps/Processors/UpdateStepsProcessor.php
T
omair saleh d8c767c670 Large commit
2021-08-16 08:59:43 +08:00

44 lines
1.3 KiB
PHP

<?php
namespace App\Classes\Modules\Steps\Processors;
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
use App\Classes\Modules\Orders\Processors\UpdatesOrderCurrentStepProcessor;
use App\Classes\Modules\Steps\Services\FetchesSteps;
use App\Classes\Modules\Steps\Services\UpdatesSteps;
use App\Classes\Modules\Orders\Services\UpdatesCurrentStep;
use App\Classes\Modules\Steps\Standards\Rules\CanUpdateStep;
use App\Classes\Modules\Steps\DataTransferObjects\StepsObject;
use App\Classes\ValueObjects\Constants\OrderStatus;
use App\Classes\ValueObjects\Constants\Steps;
use App\Models\Order;
use App\Models\Step;
class UpdateStepsProcessor
{
private $canUpdateStep;
private $updatesSteps;
private $fetchesSteps;
public function __construct(CanUpdateStep $canUpdateStep, UpdatesSteps $updatesSteps, FetchesSteps $fetchesSteps )
{
$this->canUpdateStep = $canUpdateStep;
$this->updatesSteps = $updatesSteps;
$this->fetchesSteps = $fetchesSteps;
}
public function execute(string $currentStep){
$orderStepsObject = new StepsObject(0,$currentStep, 0, 0, 1, 1, null, 0, null);
$this->canUpdateStep->passes($orderStepsObject);
$orderSteps = $this->fetchesSteps->execute(['reference'=>$currentStep]);
$this->updatesSteps->execute($orderSteps, $orderStepsObject);
}
}