Inital commit

This commit is contained in:
2020-11-19 15:36:28 +01:00
parent 71f32f83d3
commit 66ce4ee218
18077 changed files with 2166122 additions and 35184 deletions

View File

@@ -40,7 +40,6 @@ use Thelia\Model\Tools\ModelEventDispatcherTrait;
*/
class Coupon extends BaseCoupon
{
// Define the value of an unlimited coupon usage.
const UNLIMITED_COUPON_USE = -1;
@@ -49,32 +48,47 @@ class Coupon extends BaseCoupon
/**
* Create or Update this Coupon
*
* @param string $code Coupon Code
* @param string $title Coupon title
* @param array $effects Ready to be serialized in JSON effect params
* @param string $type Coupon type
* @param bool $isRemovingPostage Is removing Postage
* @param string $shortDescription Coupon short description
* @param string $description Coupon description
* @param boolean $isEnabled Enable/Disable
* @param \DateTime $expirationDate Coupon expiration date
* @param boolean $isAvailableOnSpecialOffers Is available on special offers
* @param boolean $isCumulative Is cumulative
* @param int $maxUsage Coupon quantity
* @param string $defaultSerializedRule Serialized default rule added if none found
* @param string $locale Coupon Language code ISO (ex: fr_FR)
* @param array $freeShippingForCountries ID of Countries to which shipping is free
* @param array $freeShippingForMethods ID of Shipping modules for which shipping is free
* @param bool $perCustomerUsageCount True if usage coiunt is per customer
* @param string $code Coupon Code
* @param string $title Coupon title
* @param array $effects Ready to be serialized in JSON effect params
* @param string $type Coupon type
* @param bool $isRemovingPostage Is removing Postage
* @param string $shortDescription Coupon short description
* @param string $description Coupon description
* @param boolean $isEnabled Enable/Disable
* @param \DateTime $expirationDate Coupon expiration date
* @param boolean $isAvailableOnSpecialOffers Is available on special offers
* @param boolean $isCumulative Is cumulative
* @param int $maxUsage Coupon quantity
* @param string $defaultSerializedRule Serialized default rule added if none found
* @param string $locale Coupon Language code ISO (ex: fr_FR)
* @param array $freeShippingForCountries ID of Countries to which shipping is free
* @param array $freeShippingForMethods ID of Shipping modules for which shipping is free
* @param bool $perCustomerUsageCount True if usage coiunt is per customer
* @param $startDate
*
* @throws \Exception
*/
public function createOrUpdate(
$code, $title, array $effects, $type, $isRemovingPostage, $shortDescription, $description,
$isEnabled, $expirationDate, $isAvailableOnSpecialOffers, $isCumulative, $maxUsage, $defaultSerializedRule,
$locale, $freeShippingForCountries, $freeShippingForMethods,
$perCustomerUsageCount)
{
$code,
$title,
array $effects,
$type,
$isRemovingPostage,
$shortDescription,
$description,
$isEnabled,
$expirationDate,
$isAvailableOnSpecialOffers,
$isCumulative,
$maxUsage,
$defaultSerializedRule,
$locale,
$freeShippingForCountries,
$freeShippingForMethods,
$perCustomerUsageCount,
$startDate = null
) {
$con = Propel::getWriteConnection(CouponTableMap::DATABASE_NAME);
$con->beginTransaction();
@@ -86,6 +100,7 @@ class Coupon extends BaseCoupon
->setEffects($effects)
->setIsRemovingPostage($isRemovingPostage)
->setIsEnabled($isEnabled)
->setStartDate($startDate)
->setExpirationDate($expirationDate)
->setIsAvailableOnSpecialOffers($isAvailableOnSpecialOffers)
->setIsCumulative($isCumulative)
@@ -109,8 +124,9 @@ class Coupon extends BaseCoupon
CouponModuleQuery::create()->filterByCouponId($this->id)->delete();
foreach ($freeShippingForCountries as $countryId) {
if ($countryId <= 0) continue;
if ($countryId <= 0) {
continue;
}
$couponCountry = new CouponCountry();
@@ -122,8 +138,9 @@ class Coupon extends BaseCoupon
}
foreach ($freeShippingForMethods as $moduleId) {
if ($moduleId <= 0) continue;
if ($moduleId <= 0) {
continue;
}
$couponModule = new CouponModule();
@@ -135,9 +152,7 @@ class Coupon extends BaseCoupon
}
$con->commit();
} catch (\Exception $ex) {
$con->rollback();
throw $ex;
@@ -284,14 +299,12 @@ class Coupon extends BaseCoupon
$usageLeft = $this->getMaxUsage();
if ($this->getPerCustomerUsageCount()) {
// Get usage left for current customer. If the record is not found,
// Get usage left for current customer. If the record is not found,
// it means that the customer has not yes used this coupon.
if (null !== $couponCustomerCount = CouponCustomerCountQuery::create()
->filterByCouponId($this->getId())
->filterByCustomerId($customerId)
->findOne()) {
// The coupon has already been used -> remove this customer's usage count
$usageLeft -= $couponCustomerCount->getCount();
}