confirmOrder = $confirmOrder; $this->warehouseReceivesOrder = $warehouseReceivesOrder; $this->warehousePackingOrder = $warehousePackingOrder; } public function execute(OrderObject $order, StepObject $step, Request $request): bool{ switch ($step->getReferenceId()){ case Constants::ORDER_PROCESSING_STEP: return $this->confirmOrder->execute($order, $request); case Constants::ORDER_NO_WAREHOUSE_PENDING_SUPPLIER: return true; case Constants::ORDER_WAREHOUSE_RECEIVING_STEP: return $this->warehouseReceivesOrder->execute($order, $request); case Constants::ORDER_WAREHOUSE_PACKING_STEP: return $this->warehousePackingOrder->execute($order); case Constants::ORDER_SHIPPING_STEP: return true; case Constants::ORDER_WAREHOUSE_ARRIVAL_STEP: return true; case Constants::ORDER_WAREHOUSE_UNPACKING_STEP: return true; case Constants::ORDER_DELIVERY_STEP: return true; default: return false; } } }