Exemplo n.º 1
0
 /**
  * @param \Generated\Shared\Transfer\VoucherCreateInfoTransfer $voucherCreateInfoInterface
  *
  * @return $this
  */
 protected function addVoucherCreateMessage(VoucherCreateInfoTransfer $voucherCreateInfoInterface)
 {
     if ($voucherCreateInfoInterface->getType() === DiscountConstants::MESSAGE_TYPE_SUCCESS) {
         return $this->addSuccessMessage($voucherCreateInfoInterface->getMessage());
     }
     if ($voucherCreateInfoInterface->getType() === DiscountConstants::MESSAGE_TYPE_ERROR) {
         return $this->addErrorMessage($voucherCreateInfoInterface->getMessage());
     }
     return $this->addInfoMessage($voucherCreateInfoInterface->getMessage());
 }
Exemplo n.º 2
0
 /**
  * @param \Generated\Shared\Transfer\DiscountVoucherTransfer $discountVoucherTransfer
  * @param int $quantity
  *
  * @return \Generated\Shared\Transfer\VoucherCreateInfoTransfer
  */
 protected function generateAndSaveVoucherCodes(DiscountVoucherTransfer $discountVoucherTransfer, $quantity)
 {
     $length = $discountVoucherTransfer->getRandomGeneratedCodeLength();
     $messageCreateInfoTransfer = new VoucherCreateInfoTransfer();
     if (!$length && !$discountVoucherTransfer->getCustomCode()) {
         $messageCreateInfoTransfer->setType(DiscountConstants::MESSAGE_TYPE_ERROR);
         $messageCreateInfoTransfer->setMessage('You must provide length or custom code values.');
         return $messageCreateInfoTransfer;
     }
     $codeCollisions = $this->generateCodes($discountVoucherTransfer, $quantity);
     if ($codeCollisions === 0) {
         $messageCreateInfoTransfer->setType(DiscountConstants::MESSAGE_TYPE_SUCCESS);
         $messageCreateInfoTransfer->setMessage('Voucher codes successfully generated.');
         return $messageCreateInfoTransfer;
     }
     if ($codeCollisions === $discountVoucherTransfer->getQuantity()) {
         $messageCreateInfoTransfer->setType(DiscountConstants::MESSAGE_TYPE_ERROR);
         $messageCreateInfoTransfer->setMessage('No available codes to generate.');
         return $messageCreateInfoTransfer;
     }
     if ($codeCollisions === $this->remainingCodesToGenerate) {
         $messageCreateInfoTransfer->setType(DiscountConstants::MESSAGE_TYPE_ERROR);
         $messageCreateInfoTransfer->setMessage('No available codes to generate. Select higher code length.');
         return $messageCreateInfoTransfer;
     }
     $this->remainingCodesToGenerate = $codeCollisions;
     return $this->generateAndSaveVoucherCodes($discountVoucherTransfer, $codeCollisions);
 }