Files
izyim/app/Classes/Modules/Orders/Services/UpdatesOrderCurrentStep.php
T
2019-03-04 03:01:20 +08:00

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();
}
}