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