Files
izyim/app/Classes/Modules/Orders/Steps/StepManager.php
T
omair saleh 8a28eb1790 Revert "Merge branch 'dashboardReport' into 'master'"
This reverts merge request !5
2019-03-19 09:57:38 +00:00

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