mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/izyim.git
synced 2026-08-19 04:24:00 +00:00
49 lines
1.2 KiB
PHP
49 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Classes\Modules\Orders\Services;
|
|
|
|
|
|
use App\Classes\Constants;
|
|
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
|
|
use App\Classes\Modules\Orders\DataTransferObjects\StepObject;
|
|
use App\Models\Order;
|
|
use App\Models\OrderStep;
|
|
|
|
class UpdatesOrderCurrentStep
|
|
{
|
|
|
|
/** @var Order */
|
|
private $order;
|
|
|
|
/** @var OrderStep */
|
|
private $orderStep;
|
|
|
|
/**
|
|
* UpdatesOrderCurrentStep constructor.
|
|
* @param Order $order
|
|
* @param OrderStep $orderStep
|
|
*/
|
|
public function __construct(Order $order, OrderStep $orderStep)
|
|
{
|
|
$this->order = $order;
|
|
$this->orderStep = $orderStep;
|
|
}
|
|
|
|
|
|
public function execute(OrderObject $order, StepObject $step){
|
|
|
|
$orderStep = $this->orderStep->where('order_id', $order->getOrderId())
|
|
->where('complete', 0)->orderBy('sequence')->first();
|
|
|
|
$nextStep = $orderStep ? $orderStep->reference_id : null;
|
|
|
|
$repository = $this->order->findOrFail($order->getOrderId());
|
|
$repository->current_step = $nextStep;
|
|
|
|
if($nextStep === null && $step !== Constants::ORDER_PROCESSING_STEP){
|
|
$repository->complete = true;
|
|
}
|
|
|
|
$repository->save();
|
|
}
|
|
} |