mirror of
https://gitlab.com/omair-personal/izyim.git
synced 2026-08-19 04:14:05 +00:00
8a28eb1790
This reverts merge request !5
64 lines
2.3 KiB
PHP
64 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Classes\Modules\Orders\Steps\Requirements;
|
|
|
|
|
|
use App\Classes\Constants;
|
|
use App\Classes\Modules\Orders\Steps\Processors\Delivery;
|
|
use App\Classes\Modules\Orders\Steps\Processors\OrderProcessing;
|
|
use App\Classes\Modules\Orders\Steps\Processors\Shipping;
|
|
use App\Classes\Modules\Orders\Steps\Processors\SupplierPacking;
|
|
use App\Classes\Modules\Orders\Steps\Processors\WarehouseArrival;
|
|
use App\Classes\Modules\Orders\Steps\Processors\WarehousePacking;
|
|
use App\Classes\Modules\Orders\Steps\Processors\WarehouseReceive;
|
|
use App\Classes\Modules\Orders\Steps\Processors\WarehouseUnpacking;
|
|
use Illuminate\Http\Request;
|
|
|
|
class StepManager
|
|
{
|
|
/** @var string */
|
|
protected $orderId;
|
|
|
|
/** @var string */
|
|
protected $step;
|
|
|
|
/** @var null|Request */
|
|
protected $request;
|
|
|
|
/**
|
|
* StepManager constructor.
|
|
* @param string $orderId
|
|
* @param string $step
|
|
* @param Request|null $request
|
|
*/
|
|
public function __construct(string $orderId, string $step, ?Request $request)
|
|
{
|
|
$this->orderId = $orderId;
|
|
$this->step = $step;
|
|
$this->request = $request;
|
|
}
|
|
|
|
|
|
public function execute(): bool{
|
|
switch ($this->step){
|
|
case Constants::ORDER_PROCESSING_STEP:
|
|
return (new OrderProcessing($this->orderId, $this->step))->execute();
|
|
case Constants::ORDER_WAREHOUSE_RECEIVING_STEP:
|
|
return (new WarehouseReceive($this->orderId, $this->step))->execute($this->request);
|
|
case Constants::ORDER_WAREHOUSE_PACKING_STEP:
|
|
return (new WarehousePacking($this->orderId, $this->step))->execute($this->request);
|
|
case Constants::ORDER_NO_WAREHOUSE_PENDING_SUPPLIER:
|
|
return (new SupplierPacking($this->orderId, $this->step))->execute();
|
|
case Constants::ORDER_SHIPPING_STEP:
|
|
return (new Shipping($this->orderId, $this->step))->execute();
|
|
case Constants::ORDER_WAREHOUSE_ARRIVAL_STEP:
|
|
return (new WarehouseArrival($this->orderId, $this->step))->execute();
|
|
case Constants::ORDER_WAREHOUSE_UNPACKING_STEP:
|
|
return (new WarehouseUnpacking($this->orderId, $this->step))->execute();
|
|
case Constants::ORDER_DELIVERY_STEP:
|
|
return (new Delivery($this->orderId, $this->step))->execute();
|
|
|
|
}
|
|
}
|
|
|
|
} |