Files
izyim/app/Classes/Modules/Orders/Services/CreatesOrder.php
T
2019-03-19 17:11:21 +08:00

49 lines
1.1 KiB
PHP
Executable File

<?php
namespace App\Classes\Modules\Orders\Services;
use App\Classes\Constants;
use App\Classes\Modules\Accounts\Exceptions\CannotCreateOrderException;
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
use App\Models\Order;
class CreatesOrder
{
/** @var Order */
private $repository;
/**
* CreatesOrder constructor.
* @param Order $repository
*/
public function __construct(Order $repository)
{
$this->repository = $repository;
}
/**
* @param OrderObject $order
* @return Order
* @throws CannotCreateOrderException
*/
public function execute(OrderObject $order): ?Order {
try {
$this->repository->company_id = $order->getCompanyId();
$this->repository->marking = $order->getOrderId();
$this->repository->current_step = Constants::ORDER_PROCESSING_STEP;
$this->repository->save();
return $this->repository;
} catch (\Exception $exception){
throw new CannotCreateOrderException($exception->getMessage());
}
}
}