From 05ceb32ac247b80fc905d172d6961c1e3a9f7f70 Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Thu, 25 Jul 2024 17:57:20 +0800 Subject: [PATCH] Sorry Voucher with new features enhancement requested by KS --- .../ControllersLogic/CreateCustomerLogic.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/Classes/Modules/Accounts/ControllersLogic/CreateCustomerLogic.php b/app/Classes/Modules/Accounts/ControllersLogic/CreateCustomerLogic.php index 0f7bdb61..148aca84 100644 --- a/app/Classes/Modules/Accounts/ControllersLogic/CreateCustomerLogic.php +++ b/app/Classes/Modules/Accounts/ControllersLogic/CreateCustomerLogic.php @@ -16,6 +16,7 @@ use App\Classes\Modules\Vouchers\Processors\Voucherify\NewCustomerToVoucherifyPr use App\Classes\Modules\Vouchers\Processors\CreateVoucherProcessor; use App\Classes\Modules\Companies\DataTransferObjects\EmploymentObject; use App\Classes\Modules\PerfexCRM\DataTransferObjects\CreateLeadPerfexCRMObject; +use App\Classes\Modules\Rewards\Services\CreatesUserReward; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\BusinessType; use App\Classes\ValueObjects\Constants\CompanyType; @@ -78,6 +79,9 @@ class CreateCustomerLogic extends AbstractControllerLogic /** @var CreateVoucherProcessor */ private $createVoucherProcessor; + /** @var CreatesUserReward */ + private $createsUserReward; + /** * CreateCustomerLogic constructor. * @param CreateUserProcessor $createUserProcessor @@ -91,9 +95,10 @@ class CreateCustomerLogic extends AbstractControllerLogic * @param CheckMilestonesForRewardProcessor $checkMilestonesForRewardProcessor * @param NewCustomerToVoucherifyProcessor $newCustomerToVoucherifyProcessor * @param CreateVoucherProcessor $createVoucherProcessor + * @param CreatesUserReward $createsUserReward */ public function __construct(CreateUserProcessor $createUserProcessor, CreateCompanyProcessor $createCompanyProcessor, CreateContactProcessor $createContactProcessor, AssignEmployeeProcessor $assignEmployeeProcessor, AssignSegmentProcessor $assignSegmentProcessor, AuthenticationProcessor $authenticationProcessor, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor, - CreatesSeasonalSegment $createsSeasonalSegment, CheckMilestonesForRewardProcessor $checkMilestonesForRewardProcessor, NewCustomerToVoucherifyProcessor $newCustomerToVoucherifyProcessor, CreateVoucherProcessor $createVoucherProcessor) + CreatesSeasonalSegment $createsSeasonalSegment, CheckMilestonesForRewardProcessor $checkMilestonesForRewardProcessor, NewCustomerToVoucherifyProcessor $newCustomerToVoucherifyProcessor, CreateVoucherProcessor $createVoucherProcessor, CreatesUserReward $createsUserReward) { $this->createUserProcessor = $createUserProcessor; $this->createCompanyProcessor = $createCompanyProcessor; @@ -106,6 +111,7 @@ class CreateCustomerLogic extends AbstractControllerLogic $this->checkMilestonesForRewardProcessor = $checkMilestonesForRewardProcessor; $this->newCustomerToVoucherifyProcessor = $newCustomerToVoucherifyProcessor; $this->createVoucherProcessor = $createVoucherProcessor; + $this->createsUserReward = $createsUserReward; } /** @@ -160,7 +166,13 @@ class CreateCustomerLogic extends AbstractControllerLogic $this->newCustomerToVoucherifyProcessor->execute($company->id, $user, true); - $this->createVoucherProcessor->execute($user, Vouchers::WELCOME_50_PERCENT_OFF); + $voucher = $this->createVoucherProcessor->execute($user, Vouchers::WELCOME_50_PERCENT_OFF); + if($voucher){ + $voucherCount = $user->rewards->where('voucher_id', $voucher->id)->count(); + if($voucherCount === 0){ + $this->createsUserReward->execute(null, $user, $voucher->id); + } + } return $this->response($this->authenticationProcessor->execute($request, false));