Merge branch 'dillon/63.2-sorry-voucher' into development

This commit is contained in:
Dillon Ngo
2024-07-25 18:01:05 +08:00
@@ -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;
@@ -85,6 +86,9 @@ class CreateCustomerLogic extends AbstractControllerLogic
/** @var ConnectCompanyToShippingCompanyModule */
private $connectCompanyToShippingCompanyModule;
/** @var CreatesUserReward */
private $createsUserReward;
/**
* CreateCustomerLogic constructor.
* @param CreateUserProcessor $createUserProcessor
@@ -100,9 +104,10 @@ class CreateCustomerLogic extends AbstractControllerLogic
* @param CreateVoucherProcessor $createVoucherProcessor
* @param RegisterOnShippingProcessor $registerOnShippingProcessor
* @param ConnectCompanyToShippingCompanyModule $connectCompanyToShippingCompanyModule
* @param CreatesUserReward $createsUserReward
*/
public function __construct(CreateUserProcessor $createUserProcessor, CreateCompanyProcessor $createCompanyProcessor, CreateContactProcessor $createContactProcessor, AssignEmployeeProcessor $assignEmployeeProcessor, AssignSegmentProcessor $assignSegmentProcessor, AuthenticationProcessor $authenticationProcessor, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor,
CreatesSeasonalSegment $createsSeasonalSegment, NewCustomerToVoucherifyProcessor $newCustomerToVoucherifyProcessor, CreateVoucherProcessor $createVoucherProcessor, RegisterOnShippingProcessor $registerOnShippingProcessor, ConnectCompanyToShippingCompanyModule $connectCompanyToShippingCompanyModule)
CreatesSeasonalSegment $createsSeasonalSegment, NewCustomerToVoucherifyProcessor $newCustomerToVoucherifyProcessor, CreateVoucherProcessor $createVoucherProcessor, RegisterOnShippingProcessor $registerOnShippingProcessor, ConnectCompanyToShippingCompanyModule $connectCompanyToShippingCompanyModule, CreatesUserReward $createsUserReward)
{
$this->createUserProcessor = $createUserProcessor;
$this->createCompanyProcessor = $createCompanyProcessor;
@@ -117,6 +122,7 @@ class CreateCustomerLogic extends AbstractControllerLogic
$this->createVoucherProcessor = $createVoucherProcessor;
$this->registerOnShippingProcessor = $registerOnShippingProcessor;
$this->connectCompanyToShippingCompanyModule = $connectCompanyToShippingCompanyModule;
$this->createsUserReward = $createsUserReward;
}
/**
@@ -174,10 +180,6 @@ class CreateCustomerLogic extends AbstractControllerLogic
// $this->generateEmailVerificationAttemptProcessor->execute($user);
$this->newCustomerToVoucherifyProcessor->execute($company->id, $user, true);
$this->createVoucherProcessor->execute($user, Vouchers::WELCOME_50_PERCENT_OFF);
$shippingCompanyModuleId = null;
if ($request->input('shipping_company_module_id')) {
$shippingCompanyModuleId = $request->input('shipping_company_module_id');
@@ -191,6 +193,16 @@ class CreateCustomerLogic extends AbstractControllerLogic
$this->connectCompanyToShippingCompanyModule->execute($company->id, $shippingCompanyModuleId);
}
$this->newCustomerToVoucherifyProcessor->execute($company->id, $user, true);
$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));
}