diff --git a/src/QUI/ERP/Coupons/CouponCode.php b/src/QUI/ERP/Coupons/CouponCode.php index 79acac40d533411a9ea911b8c9e80e42b60e193a..1ccd815a4c261fce57f36e5b963ef87852d59e62 100644 --- a/src/QUI/ERP/Coupons/CouponCode.php +++ b/src/QUI/ERP/Coupons/CouponCode.php @@ -2,9 +2,8 @@ namespace QUI\ERP\Coupons; -use QUI\ERP\Order\OrderInterface; -use function GuzzleHttp\Promise\queue; use QUI; +use QUI\ERP\Order\OrderInterface; use QUI\Permissions\Permission; use QUI\ERP\Discount\Handler as DiscountHandler; @@ -94,16 +93,28 @@ class CouponCode * CouponCode constructor. * * @param int $id - Invite Code ID - * @throws \QUI\ERP\Coupons\CouponCodeException + * @throws CouponCodeException */ - public function __construct($id) + public function __construct(int $id) { - $result = QUI::getDataBase()->fetch([ - 'from' => Handler::getTable(), - 'where' => [ - 'id' => $id - ] - ]); + try { + $result = QUI::getDataBase()->fetch([ + 'from' => Handler::getTable(), + 'where' => [ + 'id' => $id + ] + ]); + } catch (QUI\DataBase\Exception $Exception) { + QUI\System\Log::addError($Exception->getMessage()); + + throw new CouponCodeException([ + 'quiqqer/coupons', + 'exception.CouponCode.not_found', + [ + 'id' => $id + ] + ], 404); + } if (empty($result)) { throw new CouponCodeException([ @@ -153,7 +164,7 @@ public function __construct($id) /** * @return int */ - public function getId() + public function getId(): int { return $this->id; } @@ -161,7 +172,7 @@ public function getId() /** * @return string */ - public function getCode() + public function getCode(): string { return $this->code; } @@ -169,7 +180,7 @@ public function getCode() /** * @return \DateTime */ - public function getCreateDate() + public function getCreateDate(): \DateTime { return $this->CreateDate; } @@ -179,7 +190,7 @@ public function getCreateDate() * * @return array */ - public function getUsages() + public function getUsages(): array { return $this->usages; } @@ -187,7 +198,7 @@ public function getUsages() /** * @return \DateTime|null */ - public function getValidUntilDate() + public function getValidUntilDate(): ?\DateTime { return $this->ValidUntilDate; } @@ -195,7 +206,7 @@ public function getValidUntilDate() /** * @return string */ - public function getTitle() + public function getTitle(): ?string { return $this->title; } @@ -203,7 +214,7 @@ public function getTitle() /** * @return int[] */ - public function getDiscountIds() + public function getDiscountIds(): array { return $this->discountIds; } @@ -213,7 +224,7 @@ public function getDiscountIds() * * @return QUI\ERP\Discount\Discount[] */ - public function getDiscounts() + public function getDiscounts(): array { $discounts = []; $DiscountHandler = DiscountHandler::getInstance(); @@ -454,7 +465,7 @@ public function checkOrderRedemption($Order) * @param OrderInterface $Order * @return bool */ - public function isRedeemable($User = null, $Order = null) + public function isRedeemable($User = null, $Order = null): bool { try { $this->checkRedemption($User); @@ -480,7 +491,7 @@ public function isRedeemable($User = null, $Order = null) * * @return bool */ - public function isValid() + public function isValid(): bool { return $this->valid; } @@ -491,7 +502,7 @@ public function isValid() * @param QUI\Interfaces\Users\User $User * @return bool */ - public function hasUserRedeemed($User) + public function hasUserRedeemed(QUI\Interfaces\Users\User $User): bool { $userId = $User->getId(); @@ -514,10 +525,14 @@ public function delete() { Permission::checkPermission(Handler::PERMISSION_DELETE); - QUI::getDataBase()->delete( - Handler::getTable(), - ['id' => $this->id] - ); + try { + QUI::getDataBase()->delete( + Handler::getTable(), + ['id' => $this->id] + ); + } catch (QUI\DataBase\Exception $Exception) { + QUI\System\Log::addError($Exception->getMessage()); + } } /** @@ -525,7 +540,7 @@ public function delete() * * @return array */ - public function toArray() + public function toArray(): array { $data = [ 'id' => $this->getId(), @@ -682,7 +697,7 @@ public function addToOrder(QUI\ERP\Order\OrderInProcess $Order) } /** - * @param QUI\ERP\Accounting\Articles\Text $Article + * @param $Article * @return boolean */ $isInArticles = function ($Article) use ($Order) { @@ -712,7 +727,7 @@ public function addToOrder(QUI\ERP\Order\OrderInProcess $Order) }; foreach ($articles as $Article) { - /* @var $PriceFactor QUI\ERP\Accounting\Invoice\Articles\Text */ + /* @var $PriceFactor QUI\ERP\Accounting\Articles\Text */ if ($isInArticles($Article) === false) { $Order->addArticle($Article); }