diff --git a/app/Classes/Modules/Bookings/ControllersLogic/CreateBookingLogic.php b/app/Classes/Modules/Bookings/ControllersLogic/CreateBookingLogic.php index e4fa3666..0c3c3438 100644 --- a/app/Classes/Modules/Bookings/ControllersLogic/CreateBookingLogic.php +++ b/app/Classes/Modules/Bookings/ControllersLogic/CreateBookingLogic.php @@ -13,6 +13,8 @@ use App\Classes\Modules\Bookings\Services\CreatesBooking; use App\Classes\Modules\Bookings\Services\GeneratesBookingMarking; use App\Classes\Modules\Bookings\DataTransferObjects\BookingObject; +use App\Classes\Modules\Companies\Processors\CreateCompanyProcessor; +use App\Classes\ValueObjects\Constants\BusinessType; use App\Http\Resources\BookingResource; use ErrorException; @@ -44,19 +46,24 @@ class CreateBookingLogic extends AbstractControllerLogic /** @var FetchesCompany */ private $fetchesCompany; + /** @var CreateCompanyProcessor */ + private $createCompanyProcessor; + /** * CreateBookingLogic constructor. * @param CanCreateBooking $canCreateBooking * @param CreatesBooking $createsBooking * @param GeneratesBookingMarking $generatesBookingMarking * @param FetchesCompany $fetchesCompany + * @param CreateCompanyProcessor $createCompanyProcessor */ - public function __construct(CanCreateBooking $canCreateBooking, CreatesBooking $createsBooking, GeneratesBookingMarking $generatesBookingMarking, FetchesCompany $fetchesCompany) + public function __construct(CanCreateBooking $canCreateBooking, CreatesBooking $createsBooking, GeneratesBookingMarking $generatesBookingMarking, FetchesCompany $fetchesCompany, CreateCompanyProcessor $createCompanyProcessor) { $this->canCreateBooking = $canCreateBooking; $this->createsBooking = $createsBooking; $this->generatesBookingMarking = $generatesBookingMarking; $this->fetchesCompany = $fetchesCompany; + $this->createCompanyProcessor = $createCompanyProcessor; } @@ -69,10 +76,17 @@ class CreateBookingLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - $company = $this->fetchesCompany->execute(['id' => $request->input('company_id')]); - $object = new BookingObject($request->input('service_id'), $request->input('transferable_bank_id'), $this->generatesBookingMarking->execute(), number_format( floatval(str_replace(',', '', $request->input('fix_amount'))), 5, '.', ''), $request->input('type') === 1 ? $request->input('convertible_currency_id') : 1, $request->input('convertible_currency_id'), 1); + if($object->getServiceId() == '5') + { + $company = $this->createCompanyProcessor->execute($request, BusinessType::ONESIXSIXEIGHT); + } + else { + + $company = $this->fetchesCompany->execute(['id' => $request->input('company_id')]); + } + $this->canCreateBooking->passes($object); $booking = $this->createsBooking->execute($company, $object); diff --git a/app/Classes/ValueObjects/Constants/BusinessType.php b/app/Classes/ValueObjects/Constants/BusinessType.php index 831568e9..56b0cfb0 100644 --- a/app/Classes/ValueObjects/Constants/BusinessType.php +++ b/app/Classes/ValueObjects/Constants/BusinessType.php @@ -12,4 +12,6 @@ final class BusinessType { public const TRANSFER_AGENT = 4; + public const ONESIXSIXEIGHT = 5; + } diff --git a/database/seeds/AddServiceTypeSeeder.php b/database/seeds/AddServiceTypeSeeder.php new file mode 100644 index 00000000..af59d805 --- /dev/null +++ b/database/seeds/AddServiceTypeSeeder.php @@ -0,0 +1,25 @@ +insert(array ( + 0 => + array ( + 'name' => '1688', + 'status' => '2', + 'deleted_at' => NULL, + 'created_at' => '2021-03-09 07:52:56', + 'updated_at' => '2021-03-09 09:57:40', + ) + )); + } +}