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

79 lines
2.2 KiB
PHP

<?php
namespace App\Classes\Modules\Orders\Services\Processors;
use App\Classes\Constants;
use App\Classes\Modules\Accounts\Exceptions\CannotListCompanyOrdersException;
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
use App\Classes\Modules\Orders\DataTransferObjects\StepObject;
use App\Classes\Modules\Orders\Services\CreatesOrderSteps;
use App\Classes\Modules\Orders\Services\SetsOrderWarehouse;
use App\Classes\Modules\Orders\Steps\GenerateOrderSteps;
use App\Classes\Modules\Steps\ModularStep;
use App\Models\Order;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
class ConfirmsOrder
{
/** @var SetsOrderWarehouse */
private $setOrderWarehouse;
/** @var GenerateOrderSteps */
private $generateOrderSteps;
/** @var CreatesOrderSteps */
private $createsOrderSteps;
/**
* ConfirmsOrder constructor.
* @param SetsOrderWarehouse $setOrderWarehouse
* @param GenerateOrderSteps $generateOrderSteps
* @param CreatesOrderSteps $createsOrderSteps
*/
public function __construct(SetsOrderWarehouse $setOrderWarehouse, GenerateOrderSteps $generateOrderSteps, CreatesOrderSteps $createsOrderSteps)
{
$this->setOrderWarehouse = $setOrderWarehouse;
$this->generateOrderSteps = $generateOrderSteps;
$this->createsOrderSteps = $createsOrderSteps;
}
/**
* @param OrderObject $order
* @param Request $request
* @return bool
*/
public function execute(OrderObject $order, Request $request){
try {
if($request->input('warehouse_id')){
$order->setWarehouseId($request->input('warehouse_id'));
$this->setOrderWarehouse->execute($order);
}
$modules = new Collection();
$order->getWarehouseId() ? $modules->push(Constants::ORDER_MODULE_WAREHOUSE) : $modules->push(Constants::ORDER_MODULE_NO_WAREHOUSE);
$orderSteps = $this->generateOrderSteps->getSteps($modules->toArray())->toArray();
$this->createsOrderSteps->execute($order, $orderSteps);
return true;
} catch (\Exception $exception){
return false;
}
}
}