Skip to content
GitLab
Erkunden
Anmelden
Registrieren
Primärnavigation
Suchen oder aufrufen …
Projekt
coupons
Verwalten
Aktivität
Mitglieder
Labels
Planen
Tickets
6
Ticketübersichten
Meilensteine
Wiki
Code
Merge Requests
0
Repository
Branch
Commits
Tags
Repository-Diagramm
Revisionen vergleichen
Build
Pipelines
Aufgaben
Pipeline-Zeitpläne
Artefakte
Bereitstellung
Releases
Betreiben
Umgebungen
Überwachen
Vorfälle
Service-Desk
Analysieren
Wertschöpfungskettenanalyse
Mitwirkenden-Analyse
CI/CD-Analyse
Repository-Analysen
Hilfe
Hilfe
Support
GitLab-Dokumentation
GitLab-Pläne vergleichen
Community-Forum
Zu GitLab beitragen
Feedback geben
Tastenkürzel
?
Code-Schnipsel
Gruppen
Projekte
Show more breadcrumbs
QUIQQER
coupons
Commits
2f9244bf
Commit
2f9244bf
erstellt
vor 4 Jahren
von
Henning Leutz
Dateien durchsuchen
Optionen
Downloads
Patches
Einfaches Diff
fix: quiqqer/discount#6
Übergeordneter
d41ca92c
No related branches found
Branches enthält Commit
No related tags found
Tags enthält Commit
Keine zugehörigen Merge Requests gefunden
Änderungen
2
Leerzeichenänderungen ausblenden
Inline
Nebeneinander
2 geänderte Dateien
src/QUI/ERP/Coupons/CouponCode.php
+63
-2
63 Ergänzungen, 2 Löschungen
src/QUI/ERP/Coupons/CouponCode.php
src/QUI/ERP/Coupons/Events.php
+1
-0
1 Ergänzung, 0 Löschungen
src/QUI/ERP/Coupons/Events.php
werden angezeigt
mit
64 Ergänzungen
und
2 Löschungen
src/QUI/ERP/Coupons/CouponCode.php
+
63
−
2
Zeige Datei @
2f9244bf
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
namespace
QUI\ERP\Coupons
;
namespace
QUI\ERP\Coupons
;
use
QUI\ERP\Order\OrderInterface
;
use
function
GuzzleHttp\Promise\queue
;
use
function
GuzzleHttp\Promise\queue
;
use
QUI
;
use
QUI
;
use
QUI\Permissions\Permission
;
use
QUI\Permissions\Permission
;
...
@@ -397,13 +398,63 @@ public function checkRedemption($User)
...
@@ -397,13 +398,63 @@ public function checkRedemption($User)
}
}
}
}
/**
* Check if the given Order can redeem this CouponCode
*
* @param OrderInterface|null $Order
* @throws CouponCodeException
*/
public
function
checkOrderRedemption
(
$Order
)
{
if
(
$Order
===
null
)
{
return
;
}
$DiscountHandler
=
DiscountHandler
::
getInstance
();
$discountsValid
=
false
;
$discountError
=
false
;
foreach
(
$this
->
discountIds
as
$discountId
)
{
try
{
/** @var QUI\ERP\Discount\Discount $Discount */
$Discount
=
$DiscountHandler
->
getChild
(
$discountId
);
}
catch
(
\Exception
$Exception
)
{
$discountError
=
$Exception
->
getMessage
();
continue
;
}
if
(
$Discount
->
canUsedInOrder
(
$Order
))
{
$discountsValid
=
true
;
break
;
}
}
if
(
!
$discountsValid
)
{
if
(
\count
(
$this
->
discountIds
)
===
1
)
{
throw
new
CouponCodeException
([
'quiqqer/coupons'
,
'exception.CouponCode.discount_invalid'
,
[
'reason'
=>
$discountError
]
]);
}
else
{
throw
new
CouponCodeException
([
'quiqqer/coupons'
,
'exception.CouponCode.discounts_invalid'
]);
}
}
}
/**
/**
* Check if the given User can redeem this CouponCode
* Check if the given User can redeem this CouponCode
*
*
* @param QUI\Users\User $User - If omitted, use session user
* @param QUI\Users\User $User - If omitted, use session user
* @param OrderInterface $Order
* @return bool
* @return bool
*/
*/
public
function
isRedeemable
(
$User
=
null
)
public
function
isRedeemable
(
$User
=
null
,
$Order
=
null
)
{
{
try
{
try
{
$this
->
checkRedemption
(
$User
);
$this
->
checkRedemption
(
$User
);
...
@@ -411,6 +462,16 @@ public function isRedeemable($User = null)
...
@@ -411,6 +462,16 @@ public function isRedeemable($User = null)
return
false
;
return
false
;
}
}
if
(
$Order
)
{
try
{
$this
->
checkOrderRedemption
(
$Order
);
}
catch
(
CouponCodeException
$Exception
)
{
$Order
->
addFrontendMessage
(
$Exception
->
getMessage
());
return
false
;
}
}
return
true
;
return
true
;
}
}
...
@@ -576,7 +637,7 @@ public function addToOrder(QUI\ERP\Order\OrderInProcess $Order)
...
@@ -576,7 +637,7 @@ public function addToOrder(QUI\ERP\Order\OrderInProcess $Order)
}
}
// coupon check
// coupon check
if
(
!
$Coupon
->
isRedeemable
(
$Order
->
getCustomer
()))
{
if
(
!
$Coupon
->
isRedeemable
(
$Order
->
getCustomer
()
,
$Order
))
{
continue
;
continue
;
}
}
...
...
This diff is collapsed.
Zum Erweitern klicken.
src/QUI/ERP/Coupons/Events.php
+
1
−
0
Zeige Datei @
2f9244bf
...
@@ -364,6 +364,7 @@ protected static function addCouponToOrder($Order, $coupon)
...
@@ -364,6 +364,7 @@ protected static function addCouponToOrder($Order, $coupon)
$CouponCode
=
Handler
::
getCouponCodeByCode
(
$code
);
$CouponCode
=
Handler
::
getCouponCodeByCode
(
$code
);
$CouponCode
->
checkRedemption
(
QUI
::
getUserBySession
());
$CouponCode
->
checkRedemption
(
QUI
::
getUserBySession
());
$CouponCode
->
checkOrderRedemption
(
$Order
);
$coupons
=
$Order
->
getDataEntry
(
'quiqqer-coupons'
);
$coupons
=
$Order
->
getDataEntry
(
'quiqqer-coupons'
);
$coupons
[]
=
$code
;
$coupons
[]
=
$code
;
...
...
This diff is collapsed.
Zum Erweitern klicken.
Vorschau
0%
Wiederholen
oder
Neue Datei anhängen
.
Abbrechen
You are about to add
0
people
to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Kommentar speichern
Abbrechen
Bitte
registrieren
oder
Anmelden
zum Kommentieren