Merge pull request #2 from thelia/coupon

Coupon
This commit is contained in:
Manuel Raynaud
2013-09-27 04:21:50 -07:00
116 changed files with 6487 additions and 10517 deletions

View File

@@ -23,15 +23,16 @@
namespace Thelia\Action;
use Symfony\Component\Config\Definition\Exception\Exception;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Thelia\Constraint\ConstraintFactory;
use Thelia\Condition\ConditionFactory;
use Thelia\Condition\ConditionManagerInterface;
use Thelia\Core\Event\Coupon\CouponConsumeEvent;
use Thelia\Core\Event\Coupon\CouponCreateOrUpdateEvent;
use Thelia\Core\Event\TheliaEvents;
use Thelia\Core\HttpFoundation\Request;
use Thelia\Coupon\CouponFactory;
use Thelia\Coupon\CouponManager;
use Thelia\Coupon\ConditionCollection;
use Thelia\Coupon\Type\CouponInterface;
use Thelia\Model\Coupon as CouponModel;
@@ -73,19 +74,19 @@ class Coupon extends BaseAction implements EventSubscriberInterface
}
/**
* Occurring when a Coupon rule is about to be updated
* Occurring when a Coupon condition is about to be updated
*
* @param CouponCreateOrUpdateEvent $event Event creation or update Coupon Rule
*/
public function updateRule(CouponCreateOrUpdateEvent $event)
public function updateCondition(CouponCreateOrUpdateEvent $event)
{
$coupon = $event->getCoupon();
$this->createOrUpdateRule($coupon, $event);
$this->createOrUpdateCondition($coupon, $event);
}
/**
* Occurring when a Coupon rule is about to be consumed
* Occurring when a Coupon condition is about to be consumed
*
* @param CouponConsumeEvent $event Event consuming Coupon
*/
@@ -137,11 +138,22 @@ class Coupon extends BaseAction implements EventSubscriberInterface
{
$coupon->setDispatcher($this->getDispatcher());
// Set default condition if none found
/** @var ConditionManagerInterface $noConditionRule */
$noConditionRule = $this->container->get('thelia.condition.match_for_everyone');
/** @var ConditionFactory $conditionFactory */
$conditionFactory = $this->container->get('thelia.condition.factory');
$couponRuleCollection = new ConditionCollection();
$couponRuleCollection->add($noConditionRule);
$defaultSerializedRule = $conditionFactory->serializeConditionCollection(
$couponRuleCollection
);
$coupon->createOrUpdate(
$event->getCode(),
$event->getTitle(),
$event->getAmount(),
$event->getEffect(),
$event->getType(),
$event->isRemovingPostage(),
$event->getShortDescription(),
$event->getDescription(),
@@ -150,6 +162,7 @@ class Coupon extends BaseAction implements EventSubscriberInterface
$event->isAvailableOnSpecialOffers(),
$event->isCumulative(),
$event->getMaxUsage(),
$defaultSerializedRule,
$event->getLocale()
);
@@ -163,15 +176,15 @@ class Coupon extends BaseAction implements EventSubscriberInterface
* @param CouponModel $coupon Model to save
* @param CouponCreateOrUpdateEvent $event Event containing data
*/
protected function createOrUpdateRule(CouponModel $coupon, CouponCreateOrUpdateEvent $event)
protected function createOrUpdateCondition(CouponModel $coupon, CouponCreateOrUpdateEvent $event)
{
$coupon->setDispatcher($this->getDispatcher());
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $this->container->get('thelia.constraint.factory');
/** @var ConditionFactory $conditionFactory */
$conditionFactory = $this->container->get('thelia.condition.factory');
$coupon->createOrUpdateRules(
$constraintFactory->serializeCouponRuleCollection($event->getRules()),
$coupon->createOrUpdateConditions(
$conditionFactory->serializeConditionCollection($event->getConditions()),
$event->getLocale()
);
@@ -204,7 +217,7 @@ class Coupon extends BaseAction implements EventSubscriberInterface
TheliaEvents::COUPON_CREATE => array("create", 128),
TheliaEvents::COUPON_UPDATE => array("update", 128),
TheliaEvents::COUPON_CONSUME => array("consume", 128),
TheliaEvents::COUPON_RULE_UPDATE => array("updateRule", 128)
TheliaEvents::COUPON_CONDITION_UPDATE => array("updateCondition", 128)
);
}
}

View File

@@ -241,7 +241,7 @@ class Image extends BaseCachedFile implements EventSubscriberInterface
// Compute the image URL
$processed_image_url = $this->getCacheFileURL($subdir, basename($cacheFilePath));
// compute the full resulution image path in cache
// compute the full resolution image path in cache
$original_image_url = $this->getCacheFileURL($subdir, basename($originalImagePathInCache));
// Update the event with file path and file URL

View File

@@ -0,0 +1,144 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Condition;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Thelia\Condition\Operators;
use Thelia\Coupon\ConditionCollection;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Validate Conditions
*
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class ConditionEvaluator
{
/**
* Check if an Event matches SerializableCondition
*
* @param ConditionCollection $conditions Conditions to check against the Event
*
* @return bool
*/
public function isMatching(ConditionCollection $conditions)
{
$isMatching = true;
/** @var ConditionManagerInterface $condition */
foreach ($conditions->getConditions() as $condition) {
if (!$condition->isMatching()) {
$isMatching = false;
}
}
return $isMatching;
}
/**
* Do variable comparison
*
* @param mixed $v1 Variable 1
* @param string $o Operator ex : Operators::DIFFERENT
* @param mixed $v2 Variable 2
*
* @throws \Exception
* @return bool
*/
public function variableOpComparison($v1, $o, $v2)
{
if ($o == Operators::DIFFERENT) {
return ($v1 != $v2);
}
switch ($o) {
case Operators::SUPERIOR :
// >
if ($v1 > $v2) {
return true;
} else {
continue;
}
break;
case Operators::SUPERIOR_OR_EQUAL :
// >=
if ($v1 >= $v2) {
return true;
} else {
continue;
}
break;
case Operators::INFERIOR :
// <
if ($v1 < $v2) {
return true;
} else {
continue;
}
break;
case Operators::INFERIOR_OR_EQUAL :
// <=
if ($v1 <= $v2) {
return true;
} else {
continue;
}
break;
case Operators::EQUAL :
// ==
if ($v1 == $v2) {
return true;
} else {
continue;
}
break;
case Operators::IN:
// in
if (in_array($v1, $v2)) {
return true;
} else {
continue;
}
break;
case Operators::OUT:
// not in
if (!in_array($v1, $v2)) {
return true;
} else {
continue;
}
break;
default:
throw new \Exception('Unrecognized operator ' . $o);
}
return false;
}
}

View File

@@ -0,0 +1,169 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Condition;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Thelia\Coupon\AdapterInterface;
use Thelia\Coupon\ConditionCollection;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Manage how Condition could interact with the current application state (Thelia)
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class ConditionFactory
{
/** @var ContainerInterface Service Container */
protected $container = null;
/** @var AdapterInterface Provide necessary value from Thelia */
protected $adapter;
/** @var array ConditionCollection to process*/
protected $conditions = null;
/**
* Constructor
*
* @param ContainerInterface $container Service container
*/
public function __construct(ContainerInterface $container)
{
$this->container = $container;
$this->adapter = $container->get('thelia.adapter');
}
/**
* Serialize a collection of conditions
*
* @param ConditionCollection $collection A collection of conditions
*
* @return string A ready to be stored Condition collection
*/
public function serializeConditionCollection(ConditionCollection $collection)
{
if ($collection->isEmpty()) {
/** @var ConditionManagerInterface $conditionNone */
$conditionNone = $this->container->get(
'thelia.condition.match_for_everyone'
);
$collection->add($conditionNone);
}
$serializableConditions = array();
$conditions = $collection->getConditions();
if ($conditions !== null) {
/** @var $condition ConditionManagerInterface */
foreach ($conditions as $condition) {
// Remove all condition if the "no condition" condition is found
// if ($condition->getServiceId() == 'thelia.condition.match_for_everyone') {
// return base64_encode(json_encode(array($condition->getSerializableRule())));
// }
$serializableConditions[] = $condition->getSerializableCondition();
}
}
return base64_encode(json_encode($serializableConditions));
}
/**
* Unserialize a collection of conditions
*
* @param string $serializedConditions Serialized Conditions
*
* @return ConditionCollection Conditions ready to be processed
*/
public function unserializeConditionCollection($serializedConditions)
{
$unserializedConditions = json_decode(base64_decode($serializedConditions));
$collection = new ConditionCollection();
if (!empty($unserializedConditions) && !empty($unserializedConditions)) {
/** @var SerializableCondition $condition */
foreach ($unserializedConditions as $condition) {
if ($this->container->has($condition->conditionServiceId)) {
/** @var ConditionManagerInterface $conditionManager */
$conditionManager = $this->build(
$condition->conditionServiceId,
(array) $condition->operators,
(array) $condition->values
);
$collection->add(clone $conditionManager);
}
}
}
return $collection;
}
/**
* Build a Condition from form
*
* @param string $conditionServiceId Condition class name
* @param array $operators Condition Operator (<, >, = )
* @param array $values Values setting this Condition
*
* @throws \InvalidArgumentException
* @return ConditionManagerInterface Ready to use Condition or false
*/
public function build($conditionServiceId, array $operators, array $values)
{
if (!$this->container->has($conditionServiceId)) {
return false;
}
/** @var ConditionManagerInterface $condition */
$condition = $this->container->get($conditionServiceId);
$condition->setValidatorsFromForm($operators, $values);
return $condition;
}
/**
* Get Condition inputs from serviceId
*
* @param string $conditionServiceId ConditionManager class name
*
* @return array Ready to be drawn condition inputs
*/
public function getInputs($conditionServiceId)
{
if (!$this->container->has($conditionServiceId)) {
return false;
}
/** @var ConditionManagerInterface $condition */
$condition = $this->container->get($conditionServiceId);
return $condition->getValidators();
}
}

View File

@@ -21,16 +21,14 @@
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
namespace Thelia\Condition;
use Symfony\Component\Intl\Exception\NotImplementedException;
use Thelia\Constraint\ConstraintValidator;
use Thelia\Core\Translation\Translator;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Constraint\Validator\ComparableInterface;
use Thelia\Constraint\Validator\RuleValidator;
use Thelia\Exception\InvalidRuleException;
use Thelia\Exception\InvalidRuleOperatorException;
use Thelia\Coupon\AdapterInterface;
use Thelia\Exception\InvalidConditionValueException;
use Thelia\Model\Currency;
use Thelia\Type\FloatType;
/**
* Created by JetBrains PhpStorm.
@@ -43,7 +41,7 @@ use Thelia\Exception\InvalidRuleOperatorException;
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
abstract class CouponRuleAbstract implements CouponRuleInterface
abstract class ConditionManagerAbstract implements ConditionManagerInterface
{
// /** Operator key in $validators */
// CONST OPERATOR = 'operator';
@@ -62,7 +60,7 @@ abstract class CouponRuleAbstract implements CouponRuleInterface
// /** @var array Parameters to be validated */
// protected $paramsToValidate = array();
/** @var CouponAdapterInterface Provide necessary value from Thelia */
/** @var AdapterInterface Provide necessary value from Thelia */
protected $adapter = null;
/** @var Translator Service Translator */
@@ -74,19 +72,19 @@ abstract class CouponRuleAbstract implements CouponRuleInterface
/** @var array Values set by Admin in BackOffice */
protected $values = array();
/** @var ConstraintValidator Constaints validator */
protected $constraintValidator = null;
/** @var ConditionEvaluator Conditions validator */
protected $conditionValidator = null;
/**
* Constructor
*
* @param CouponAdapterInterface $adapter Service adapter
* @param AdapterInterface $adapter Service adapter
*/
function __construct(CouponAdapterInterface $adapter)
public function __construct(AdapterInterface $adapter)
{
$this->adapter = $adapter;
$this->translator = $adapter->getTranslator();
$this->constraintValidator = $adapter->getConstraintValidator();
$this->conditionValidator = $adapter->getConditionEvaluator();
}
// /**
@@ -96,16 +94,16 @@ abstract class CouponRuleAbstract implements CouponRuleInterface
// * validating $paramsToValidate against
// *
// * @return $this
// * @throws InvalidRuleException
// * @throws InvalidConditionException
// */
// protected function setValidators(array $validators)
// {
// foreach ($validators as $validator) {
// if (!$validator instanceof RuleValidator) {
// throw new InvalidRuleException(get_class());
// throw new InvalidConditionException(get_class());
// }
// if (!in_array($validator->getOperator(), $this->availableOperators)) {
// throw new InvalidRuleOperatorException(
// throw new InvalidConditionOperatorException(
// get_class(),
// $validator->getOperator()
// );
@@ -146,7 +144,7 @@ abstract class CouponRuleAbstract implements CouponRuleInterface
// }
/**
* Return all available Operators for this Rule
* Return all available Operators for this Condition
*
* @return array Operators::CONST
*/
@@ -158,7 +156,7 @@ abstract class CouponRuleAbstract implements CouponRuleInterface
// /**
// * Check if Operators set for this Rule in the BackOffice are legit
// *
// * @throws InvalidRuleOperatorException if Operator is not allowed
// * @throws InvalidConditionOperatorException if Operator is not allowed
// * @return bool
// */
// protected function checkBackOfficeInputsOperators()
@@ -169,7 +167,7 @@ abstract class CouponRuleAbstract implements CouponRuleInterface
// if (!isset($operator)
// ||!in_array($operator, $this->availableOperators)
// ) {
// throw new InvalidRuleOperatorException(get_class(), $key);
// throw new InvalidConditionOperatorException(get_class(), $key);
// }
// }
// return true;
@@ -230,7 +228,7 @@ abstract class CouponRuleAbstract implements CouponRuleInterface
}
/**
* Get Rule Service id
* Get ConditionManager Service id
*
* @return string
*/
@@ -240,7 +238,7 @@ abstract class CouponRuleAbstract implements CouponRuleInterface
}
/**
* Validate if Operator given is available for this Coupon
* Validate if Operator given is available for this Condition
*
* @param string $operator Operator to validate ex <
* @param array $availableOperators Available operators
@@ -253,19 +251,67 @@ abstract class CouponRuleAbstract implements CouponRuleInterface
}
/**
* Return a serializable Rule
* Return a serializable Condition
*
* @return SerializableRule
* @return SerializableCondition
*/
public function getSerializableRule()
public function getSerializableCondition()
{
$serializableRule = new SerializableRule();
$serializableRule->ruleServiceId = $this->serviceId;
$serializableRule->operators = $this->operators;
$serializableCondition = new SerializableCondition();
$serializableCondition->conditionServiceId = $this->serviceId;
$serializableCondition->operators = $this->operators;
$serializableRule->values = $this->values;
$serializableCondition->values = $this->values;
return $serializableRule;
return $serializableCondition;
}
/**
* Check if currency if valid or not
*
* @param string $currencyValue Currency EUR|USD|..
*
* @return bool
* @throws \Thelia\Exception\InvalidConditionValueException
*/
protected function IsCurrencyValid($currencyValue)
{
$availableCurrencies = $this->adapter->getAvailableCurrencies();
/** @var Currency $currency */
$currencyFound = false;
foreach ($availableCurrencies as $currency) {
if ($currencyValue == $currency->getCode()) {
$currencyFound = true;
}
}
if (!$currencyFound) {
throw new InvalidConditionValueException(
get_class(), 'currency'
);
}
return true;
}
/**
* Check if price is valid
*
* @param float $priceValue Price value to check
*
* @return bool
* @throws \Thelia\Exception\InvalidConditionValueException
*/
protected function isPriceValid($priceValue)
{
$floatType = new FloatType();
if (!$floatType->isValid($priceValue) || $priceValue <= 0) {
throw new InvalidConditionValueException(
get_class(), 'price'
);
}
return true;
}
}

View File

@@ -21,30 +21,30 @@
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
namespace Thelia\Condition;
use Thelia\Core\Translation\Translator;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Coupon\AdapterInterface;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Represents a condition of whether the Rule is applied or not
* Manage how the application checks its state in order to check if it matches the implemented condition
*
* @package Constraint
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
interface CouponRuleInterface
interface ConditionManagerInterface
{
/**
* Constructor
*
* @param CouponAdapterInterface $adapter Service adapter
* @param AdapterInterface $adapter Service adapter
*/
function __construct(CouponAdapterInterface $adapter);
function __construct(AdapterInterface $adapter);
/**
* Get Rule Service id
@@ -86,14 +86,14 @@ interface CouponRuleInterface
// public function isMatching();
/**
* Test if Customer meets conditions
* Test if the current application state matches conditions
*
* @return bool
*/
public function isMatching();
/**
* Return all available Operators for this Rule
* Return all available Operators for this condition
*
* @return array Operators::CONST
*/
@@ -122,10 +122,10 @@ interface CouponRuleInterface
public function getValidators();
// /**
// * Populate a Rule from a form admin
// * Populate a Condition from a form admin
// *
// * @param array $operators Rule Operator set by the Admin
// * @param array $values Rule Values set by the Admin
// * @param array $operators Condition Operator set by the Admin
// * @param array $values Condition Values set by the Admin
// *
// * @return bool
// */
@@ -133,14 +133,10 @@ interface CouponRuleInterface
/**
* Return a serializable Rule
* Return a serializable Condition
*
* @return SerializableRule
* @return SerializableCondition
*/
public function getSerializableRule();
public function getSerializableCondition();
}

View File

@@ -21,17 +21,10 @@
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
namespace Thelia\Condition\Implementation;
use InvalidArgumentException;
use Symfony\Component\Translation\Translator;
use Thelia\Constraint\ConstraintValidator;
use Thelia\Constraint\Validator\QuantityParam;
use Thelia\Constraint\Validator\RuleValidator;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Exception\InvalidRuleException;
use Thelia\Exception\InvalidRuleValueException;
use Thelia\Type\FloatType;
use Thelia\Condition\ConditionManagerAbstract;
/**
* Created by JetBrains PhpStorm.
@@ -40,14 +33,14 @@ use Thelia\Type\FloatType;
*
* Allow every one, perform no check
*
* @package Constraint
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForEveryoneManager extends CouponRuleAbstract
class MatchForEveryoneManager extends ConditionManagerAbstract
{
/** @var string Service Id from Resources/config.xml */
protected $serviceId = 'thelia.constraint.rule.available_for_everyone';
protected $serviceId = 'thelia.condition.match_for_everyone';
/** @var array Available Operators (Operators::CONST) */
protected $availableOperators = array();
@@ -102,7 +95,7 @@ class AvailableForEveryoneManager extends CouponRuleAbstract
return $this->translator->trans(
'Everybody can use it (no condition)',
array(),
'constraint'
'condition'
);
}
@@ -116,7 +109,7 @@ class AvailableForEveryoneManager extends CouponRuleAbstract
$toolTip = $this->translator->trans(
'Will return always true',
array(),
'constraint'
'condition'
);
return $toolTip;

View File

@@ -21,42 +21,37 @@
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
namespace Thelia\Condition\Implementation;
use Symfony\Component\Intl\Exception\NotImplementedException;
use Symfony\Component\Translation\Translator;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Constraint\Validator\PriceParam;
use Thelia\Constraint\Validator\RuleValidator;
use Thelia\Exception\InvalidRuleException;
use Thelia\Exception\InvalidRuleOperatorException;
use Thelia\Exception\InvalidRuleValueException;
use Thelia\Condition\ConditionManagerAbstract;
use Thelia\Condition\Operators;
use Thelia\Exception\InvalidConditionOperatorException;
use Thelia\Model\Currency;
use Thelia\Model\CurrencyQuery;
use Thelia\Type\FloatType;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Rule AvailableForTotalAmount
* Condition AvailableForTotalAmount
* Check if a Checkout total amount match criteria
*
* @package Constraint
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForTotalAmountManager extends CouponRuleAbstract
class MatchForTotalAmountManager extends ConditionManagerAbstract
{
/** Rule 1st parameter : price */
/** Condition 1st parameter : price */
CONST INPUT1 = 'price';
/** Rule 1st parameter : currency */
/** Condition 1st parameter : currency */
CONST INPUT2 = 'currency';
/** @var string Service Id from Resources/config.xml */
protected $serviceId = 'thelia.constraint.rule.available_for_total_amount';
protected $serviceId = 'thelia.condition.match_for_total_amount';
/** @var array Available Operators (Operators::CONST) */
protected $availableOperators = array(
@@ -101,7 +96,7 @@ class AvailableForTotalAmountManager extends CouponRuleAbstract
* @param string $currencyOperator Currency Operator ex =
* @param string $currencyValue Currency set to meet condition
*
* @throws \InvalidArgumentException
* @throws \Thelia\Exception\InvalidConditionOperatorException
* @return $this
*/
protected function setValidators($priceOperator, $priceValue, $currencyOperator, $currencyValue)
@@ -111,8 +106,8 @@ class AvailableForTotalAmountManager extends CouponRuleAbstract
$this->availableOperators[self::INPUT1]
);
if (!$isOperator1Legit) {
throw new \InvalidArgumentException(
'Operator for price field is not legit'
throw new InvalidConditionOperatorException(
get_class(), 'price'
);
}
@@ -121,19 +116,16 @@ class AvailableForTotalAmountManager extends CouponRuleAbstract
$this->availableOperators[self::INPUT2]
);
if (!$isOperator1Legit) {
throw new \InvalidArgumentException(
'Operator for currency field is not legit'
throw new InvalidConditionOperatorException(
get_class(), 'price'
);
}
$floatType = new FloatType();
if (!$floatType->isValid($priceValue) || $priceValue <= 0) {
throw new \InvalidArgumentException(
'Value for price field is not legit'
);
}
$this->isPriceValid($priceValue);
$this->IsCurrencyValid($currencyValue);
// @todo check currency is legit or not
$this->operators = array(
self::INPUT1 => $priceOperator,
@@ -167,19 +159,20 @@ class AvailableForTotalAmountManager extends CouponRuleAbstract
return false;
}
$constraint1 = $this->constraintValidator->variableOpComparison(
$condition1 = $this->conditionValidator->variableOpComparison(
$this->adapter->getCartTotalPrice(),
$this->operators[self::INPUT1],
$this->values[self::INPUT1]
);
$constraint2 = $this->constraintValidator->variableOpComparison(
$condition2 = $this->conditionValidator->variableOpComparison(
$this->adapter->getCheckoutCurrency(),
$this->operators[self::INPUT2],
$this->values[self::INPUT2]
);
if ($constraint1 && $constraint2) {
if ($condition1 && $condition2) {
return true;
}
return false;
}
@@ -193,7 +186,7 @@ class AvailableForTotalAmountManager extends CouponRuleAbstract
return $this->translator->trans(
'Cart total amount',
array(),
'constraint'
'condition'
);
}
@@ -215,7 +208,7 @@ class AvailableForTotalAmountManager extends CouponRuleAbstract
'%amount%' => $this->values[self::INPUT1],
'%currency%' => $this->values[self::INPUT2]
),
'constraint'
'condition'
);
return $toolTip;
@@ -238,12 +231,12 @@ class AvailableForTotalAmountManager extends CouponRuleAbstract
$name1 = $this->translator->trans(
'Price',
array(),
'constraint'
'condition'
);
$name2 = $this->translator->trans(
'Currency',
array(),
'constraint'
'condition'
);
return array(

View File

@@ -21,17 +21,13 @@
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
namespace Thelia\Condition\Implementation;
use InvalidArgumentException;
use Symfony\Component\Translation\Translator;
use Thelia\Constraint\ConstraintValidator;
use Thelia\Constraint\Validator\QuantityParam;
use Thelia\Constraint\Validator\RuleValidator;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Exception\InvalidRuleException;
use Thelia\Exception\InvalidRuleValueException;
use Thelia\Type\FloatType;
use Thelia\Condition\ConditionManagerAbstract;
use Thelia\Condition\Operators;
use Thelia\Exception\InvalidConditionOperatorException;
use Thelia\Exception\InvalidConditionValueException;
/**
* Created by JetBrains PhpStorm.
@@ -40,17 +36,17 @@ use Thelia\Type\FloatType;
*
* Check a Checkout against its Product number
*
* @package Constraint
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForXArticlesManager extends CouponRuleAbstract
class MatchForXArticlesManager extends ConditionManagerAbstract
{
/** Rule 1st parameter : quantity */
/** Condition 1st parameter : quantity */
CONST INPUT1 = 'quantity';
/** @var string Service Id from Resources/config.xml */
protected $serviceId = 'thelia.constraint.rule.available_for_x_articles';
protected $serviceId = 'thelia.condition.match_for_x_articles';
/** @var array Available Operators (Operators::CONST) */
protected $availableOperators = array(
@@ -88,7 +84,8 @@ class AvailableForXArticlesManager extends CouponRuleAbstract
* @param string $quantityOperator Quantity Operator ex <
* @param int $quantityValue Quantity set to meet condition
*
* @throws \InvalidArgumentException
* @throws \Thelia\Exception\InvalidConditionValueException
* @throws \Thelia\Exception\InvalidConditionOperatorException
* @return $this
*/
protected function setValidators($quantityOperator, $quantityValue)
@@ -98,14 +95,14 @@ class AvailableForXArticlesManager extends CouponRuleAbstract
$this->availableOperators[self::INPUT1]
);
if (!$isOperator1Legit) {
throw new \InvalidArgumentException(
'Operator for quantity field is not legit'
throw new InvalidConditionOperatorException(
get_class(), 'quantity'
);
}
if ((int) $quantityValue <= 0) {
throw new \InvalidArgumentException(
'Value for quantity field is not legit'
throw new InvalidConditionValueException(
get_class(), 'quantity'
);
}
@@ -126,15 +123,16 @@ class AvailableForXArticlesManager extends CouponRuleAbstract
*/
public function isMatching()
{
$constraint1 = $this->constraintValidator->variableOpComparison(
$condition1 = $this->conditionValidator->variableOpComparison(
$this->adapter->getNbArticlesInCart(),
$this->operators[self::INPUT1],
$this->values[self::INPUT1]
);
if ($constraint1) {
if ($condition1) {
return true;
}
return false;
}
@@ -148,7 +146,7 @@ class AvailableForXArticlesManager extends CouponRuleAbstract
return $this->translator->trans(
'Number of articles in cart',
array(),
'constraint'
'condition'
);
}
@@ -169,7 +167,7 @@ class AvailableForXArticlesManager extends CouponRuleAbstract
'%operator%' => $i18nOperator,
'%quantity%' => $this->values[self::INPUT1]
),
'constraint'
'condition'
);
return $toolTip;
@@ -185,7 +183,7 @@ class AvailableForXArticlesManager extends CouponRuleAbstract
$name1 = $this->translator->trans(
'Quantity',
array(),
'constraint'
'condition'
);
return array(
@@ -199,5 +197,4 @@ class AvailableForXArticlesManager extends CouponRuleAbstract
)
);
}
}
}

View File

@@ -21,17 +21,16 @@
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
namespace Thelia\Condition;
use Symfony\Component\Translation\Translator;
use Thelia\Constraint\Validator\ComparableInterface;
use Thelia\Core\Translation\Translator;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Represent available Operations in rule checking
* Represent available Operations in condition checking
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
@@ -56,62 +55,6 @@ abstract class Operators
/** Param1 is not in Param2 */
CONST OUT = 'out';
// /**
// * Check if a parameter is valid against a ComparableInterface from its operator
// *
// * @param mixed $a Parameter to validate
// * @param string $operator Operator to validate against
// * @param ComparableInterface $b Comparable to validate against
// *
// * @return bool
// */
// public static function isValid($a, $operator, ComparableInterface $b)
// {
// $ret = false;
//
// try {
// $comparison = $b->compareTo($a);
// } catch (\Exception $e) {
// return false;
// }
//
// switch ($operator) {
// case self::INFERIOR:
// if ($comparison == 1) {
// return true;
// }
// break;
// case self::INFERIOR_OR_EQUAL:
// if ($comparison == 1 || $comparison == 0) {
// return true;
// }
// break;
// case self::EQUAL:
// if ($comparison == 0) {
// return true;
// }
// break;
// case self::SUPERIOR_OR_EQUAL:
// if ($comparison == -1 || $comparison == 0) {
// return true;
// }
// break;
// case self::SUPERIOR:
// if ($comparison == -1) {
// return true;
// }
// break;
// case self::DIFFERENT:
// if ($comparison != 0) {
// return true;
// }
// break;
// default:
// }
//
// return $ret;
// }
/**
* Get operator translation
*
@@ -128,56 +71,56 @@ abstract class Operators
$ret = $translator->trans(
'inferior to',
array(),
'constraint'
'condition'
);
break;
case self::INFERIOR_OR_EQUAL:
$ret = $translator->trans(
'inferior or equal to',
array(),
'constraint'
'condition'
);
break;
case self::EQUAL:
$ret = $translator->trans(
'equal to',
array(),
'constraint'
'condition'
);
break;
case self::SUPERIOR_OR_EQUAL:
$ret = $translator->trans(
'superior or equal to',
array(),
'constraint'
'condition'
);
break;
case self::SUPERIOR:
$ret = $translator->trans(
'superior to',
array(),
'constraint'
'condition'
);
break;
case self::DIFFERENT:
$ret = $translator->trans(
'different from',
array(),
'constraint'
'condition'
);
break;
case self::IN:
$ret = $translator->trans(
'in',
array(),
'constraint'
'condition'
);
break;
case self::OUT:
$ret = $translator->trans(
'not in',
array(),
'constraint'
'condition'
);
break;
default:

View File

@@ -21,50 +21,57 @@
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
namespace Thelia\Condition;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test RemoveXPercentForCategoryY Class
* A condition set by an admin ready to be serialized and stored in DataBase
*
* @package Coupon
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class RemoveXPercentForCategoryYTest extends \PHPUnit_Framework_TestCase
class SerializableCondition
{
public function testSomething()
{
// Stop here and mark this test as incomplete.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
/** @var string Condition Service id */
public $conditionServiceId = null;
/** @var array Operators set by Admin for this Condition */
public $operators = array();
/** @var array Values set by Admin for this Condition */
public $values = array();
// /**
// * Sets up the fixture, for example, opens a network connection.
// * This method is called before a test is executed.
// * Get Operators set by Admin for this Condition
// *
// * @return array
// */
// protected function setUp()
// public function getOperators()
// {
// }
//
// public function incompleteTest()
// {
// $this->markTestIncomplete(
// 'This test has not been implemented yet.'
// );
// return $this->operators;
// }
//
// /**
// * Tears down the fixture, for example, closes a network connection.
// * This method is called after a test is executed.
// * Get Condition Service id
// *
// * @return string
// */
// protected function tearDown()
// public function getConditionServiceId()
// {
// return $this->conditionServiceId;
// }
//
// /**
// * Get Values set by Admin for this Condition
// *
// * @return array
// */
// public function getValues()
// {
// return $this->values;
// }
}

View File

@@ -267,7 +267,7 @@
<service id="kernel" synthetic="true" />
<!-- Coupon module -->
<service id="thelia.adapter" class="Thelia\Coupon\CouponBaseAdapter">
<service id="thelia.adapter" class="Thelia\Coupon\BaseAdapter">
<argument type="service" id="service_container" />
</service>
<service id="thelia.coupon.manager" class="Thelia\Coupon\CouponManager">
@@ -277,24 +277,6 @@
<argument type="service" id="service_container" />
</service>
<service id="thelia.constraint.factory" class="Thelia\Constraint\ConstraintFactory">
<argument type="service" id="service_container" />
</service>
<service id="thelia.constraint.validator" class="Thelia\Constraint\ConstraintValidator">
</service>
<service id="thelia.constraint.rule.available_for_everyone" class="Thelia\Constraint\Rule\AvailableForEveryoneManager">
<argument type="service" id="thelia.adapter" />
<tag name="thelia.coupon.addRule"/>
</service>
<service id="thelia.constraint.rule.available_for_x_articles" class="Thelia\Constraint\Rule\AvailableForXArticlesManager">
<argument type="service" id="thelia.adapter" />
<tag name="thelia.coupon.addRule"/>
</service>
<service id="thelia.constraint.rule.available_for_total_amount" class="Thelia\Constraint\Rule\AvailableForTotalAmountManager">
<argument type="service" id="thelia.adapter" />
<tag name="thelia.coupon.addRule"/>
</service>
<service id="thelia.coupon.type.remove_x_amount" class="Thelia\Coupon\Type\RemoveXAmountManager">
<argument type="service" id="thelia.adapter" />
<tag name="thelia.coupon.addCoupon"/>
@@ -304,6 +286,26 @@
<tag name="thelia.coupon.addCoupon"/>
</service>
<!-- Condition module -->
<service id="thelia.condition.factory" class="Thelia\Condition\ConditionFactory">
<argument type="service" id="service_container" />
</service>
<service id="thelia.condition.validator" class="Thelia\Condition\ConditionEvaluator">
</service>
<service id="thelia.condition.match_for_everyone" class="Thelia\Condition\Implementation\MatchForEveryoneManager">
<argument type="service" id="thelia.adapter" />
<tag name="thelia.coupon.addCondition"/>
</service>
<service id="thelia.condition.match_for_x_articles" class="Thelia\Condition\Implementation\MatchForXArticlesManager">
<argument type="service" id="thelia.adapter" />
<tag name="thelia.coupon.addCondition"/>
</service>
<service id="thelia.condition.match_for_total_amount" class="Thelia\Condition\Implementation\MatchForTotalAmountManager">
<argument type="service" id="thelia.adapter" />
<tag name="thelia.coupon.addCondition"/>
</service>
<service id="mailer" class="Thelia\Mailer\MailerFactory">
<argument type="service" id="event_dispatcher"/>
</service>

View File

@@ -382,26 +382,31 @@
<!-- Route to the Coupon controller (process Coupon browsing) -->
<route id="admin.coupon.list" path="/admin/coupon/">
<route id="admin.coupon.list" path="/admin/coupon">
<default key="_controller">Thelia\Controller\Admin\CouponController::browseAction</default>
</route>
<route id="admin.coupon.create" path="/admin/coupon/create/">
<route id="admin.coupon.create" path="/admin/coupon/create">
<default key="_controller">Thelia\Controller\Admin\CouponController::createAction</default>
</route>
<route id="admin.coupon.update" path="/admin/coupon/update/{couponId}/">
<route id="admin.coupon.update" path="/admin/coupon/update/{couponId}">
<default key="_controller">Thelia\Controller\Admin\CouponController::updateAction</default>
<requirement key="couponId">\d+</requirement>
</route>
<route id="admin.coupon.read" path="/admin/coupon/read/{couponId}/">
<route id="admin.coupon.read" path="/admin/coupon/read/{couponId}">
<default key="_controller">Thelia\Controller\Admin\CouponController::readAction</default>
<requirement key="couponId">\d+</requirement>
</route>
<route id="admin.coupon.rule.input" path="/admin/coupon/rule/{ruleId}/">
<default key="_controller">Thelia\Controller\Admin\CouponController::getRuleInputAction</default>
<route id="admin.coupon.condition.input" path="/admin/coupon/condition/{conditionId}">
<default key="_controller">Thelia\Controller\Admin\CouponController::getConditionInputAction</default>
<requirement key="conditionId">.*</requirement>
</route>
<route id="admin.coupon.rule.update" path="/admin/coupon/{couponId}/rule/update/">
<default key="_controller">Thelia\Controller\Admin\CouponController::updateRulesAction</default>
<route id="admin.coupon.condition.update" path="/admin/coupon/{couponId}/condition/update">
<default key="_controller">Thelia\Controller\Admin\CouponController::updateConditionsAction</default>
<requirement key="couponId">\d+</requirement>
</route>
<route id="admin.coupon.consume" path="/admin/coupon/consume/{couponCode}/">
<route id="admin.coupon.consume" path="/admin/coupon/consume/{couponCode}">
<default key="_controller">Thelia\Controller\Admin\CouponController::consumeAction</default>
<requirement key="couponCode">.*</requirement>
</route>
<!-- Routes to the Config (system variables) controller -->

View File

@@ -1,174 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Thelia\Constraint\Rule\AvailableForEveryoneManager;
use Thelia\Constraint\Rule\AvailableForTotalAmountManager;
use Thelia\Constraint\Rule\CouponRuleInterface;
use Thelia\Constraint\Rule\SerializableRule;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Coupon\CouponRuleCollection;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Manage how Constraint could interact
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class ConstraintFactory
{
/** @var ContainerInterface Service Container */
protected $container = null;
/** @var CouponAdapterInterface Provide necessary value from Thelia*/
protected $adapter;
/** @var array CouponRuleCollection to process*/
protected $rules = null;
/**
* Constructor
*
* @param ContainerInterface $container Service container
*/
function __construct(ContainerInterface $container)
{
$this->container = $container;
$this->adapter = $container->get('thelia.adapter');
}
/**
* Serialize a collection of rules
*
* @param CouponRuleCollection $collection A collection of rules
*
* @return string A ready to be stored Rule collection
*/
public function serializeCouponRuleCollection(CouponRuleCollection $collection)
{
if ($collection->isEmpty()) {
/** @var CouponRuleInterface $ruleNoCondition */
$ruleNoCondition = $this->container->get(
'thelia.constraint.rule.available_for_everyone'
);
$collection->add($ruleNoCondition);
}
$serializableRules = array();
$rules = $collection->getRules();
if ($rules !== null) {
/** @var $rule CouponRuleInterface */
foreach ($rules as $rule) {
// Remove all rule if the "no condition" rule is found
// if ($rule->getServiceId() == 'thelia.constraint.rule.available_for_everyone') {
// return base64_encode(json_encode(array($rule->getSerializableRule())));
// }
$serializableRules[] = $rule->getSerializableRule();
}
}
return base64_encode(json_encode($serializableRules));
}
/**
* Unserialize a collection of rules
*
* @param string $serializedRules Serialized Rules
*
* @return CouponRuleCollection Rules ready to be processed
*/
public function unserializeCouponRuleCollection($serializedRules)
{
$unserializedRules = json_decode(base64_decode($serializedRules));
$collection = new CouponRuleCollection();
if (!empty($serializedRules) && !empty($unserializedRules)) {
/** @var SerializableRule $rule */
foreach ($unserializedRules as $rule) {
if ($this->container->has($rule->ruleServiceId)) {
/** @var CouponRuleInterface $couponRule */
$couponRule = $this->build(
$rule->ruleServiceId,
(array) $rule->operators,
(array) $rule->values
);
$collection->add(clone $couponRule);
}
}
}
return $collection;
}
/**
* Build a Coupon Rule from form
*
* @param string $ruleServiceId Rule class name
* @param array $operators Rule Operator (<, >, = )
* @param array $values Values setting this Rule
*
* @throws \InvalidArgumentException
* @return CouponRuleInterface Ready to use Rule or false
*/
public function build($ruleServiceId, array $operators, array $values)
{
if (!$this->container->has($ruleServiceId)) {
return false;
}
/** @var CouponRuleInterface $rule */
$rule = $this->container->get($ruleServiceId);
$rule->setValidatorsFromForm($operators, $values);
return $rule;
}
/**
* Get Coupon Rule inputs from serviceId
*
* @param string $ruleServiceId Rule class name
*
* @return array Ready to be drawn rule inputs
*/
public function getInputs($ruleServiceId)
{
if (!$this->container->has($ruleServiceId)) {
return false;
}
/** @var CouponRuleInterface $rule */
$rule = $this->container->get($ruleServiceId);
return $rule->getValidators();
}
}

View File

@@ -1,133 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Thelia\Constraint\Rule\AvailableForTotalAmountManager;
use Thelia\Constraint\Rule\CouponRuleInterface;
use Thelia\Constraint\Rule\Operators;
use Thelia\Coupon\CouponRuleCollection;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Validate Constraints
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class ConstraintValidator
{
/**
* Check if a Customer meets SerializableRule
*
* @param CouponRuleCollection $rules Rules to check against the Customer
*
* @return bool
*/
public function isMatching(CouponRuleCollection $rules)
{
$isMatching = true;
/** @var CouponRuleInterface $rule */
foreach ($rules->getRules() as $rule) {
if (!$rule->isMatching()) {
$isMatching = false;
}
}
return $isMatching;
}
/**
* Do variable comparison
*
* @param mixed $v1 Variable 1
* @param string $o Operator
* @param mixed $v2 Variable 2
*
* @throws \Exception
* @return bool
*/
public function variableOpComparison($v1, $o, $v2) {
if ($o == Operators::DIFFERENT) {
return ($v1 != $v2);
} // could put this elsewhere...
// $operators = str_split($o);
// foreach($o as $operator) {
switch ($o) { // return will exit switch, foreach loop, function
case Operators::SUPERIOR : // >
if ($v1 > $v2) {
return true;
} else {
continue;
} break;
case Operators::SUPERIOR_OR_EQUAL : // >=
if ($v1 >= $v2) {
return true;
} else {
continue;
} break;
case Operators::INFERIOR : // <
if ($v1 < $v2) {
return true;
} else {
continue;
} break;
case Operators::INFERIOR_OR_EQUAL : // <=
if ($v1 <= $v2) {
return true;
} else {
continue;
} break;
case Operators::EQUAL : // ==
if ($v1 == $v2) {
return true;
} else {
continue;
} break;
case Operators::IN:
if (in_array($v1, $v2)) { // in
return true;
} else {
continue;
} break;
case Operators::OUT:
if (!in_array($v1, $v2)) { // not in
return true;
} else {
continue;
} break;
default: throw new \Exception('Unrecognized operator ' . $o);
}
// }
return false;
}
}

View File

@@ -1,178 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
use Thelia\Constraint\Validator\CustomerParam;
use Thelia\Constraint\Validator\RuleValidator;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Exception\InvalidRuleException;
use Thelia\Exception\InvalidRuleOperatorException;
use Thelia\Exception\InvalidRuleValueException;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForCustomer extends CouponRuleAbstract
{
/** Rule 1st parameter : customer id */
CONST PARAM1 = 'customerId';
/** @var array Available Operators (Operators::CONST) */
protected $availableOperators = array(
Operators::EQUAL,
);
/** @var RuleValidator Customer Validator */
protected $customerValidator = null;
/**
* Check if backoffice inputs are relevant or not
*
* @throws InvalidRuleOperatorException if Operator is not allowed
* @throws InvalidRuleValueException if Value is not allowed
* @return bool
*/
public function checkBackOfficeInput()
{
if (!isset($this->validators)
|| empty($this->validators)
||!isset($this->validators[self::PARAM1])
||!isset($this->validators[self::PARAM1])
) {
throw new InvalidRuleValueException(get_class(), self::PARAM1);
}
/** @var RuleValidator $ruleValidator */
$ruleValidator = $this->validators[self::PARAM1];
/** @var CustomerParam $customer */
$customer = $ruleValidator->getParam();
if (!$customer instanceof CustomerParam) {
throw new InvalidRuleValueException(get_class(), self::PARAM1);
}
$this->checkBackOfficeInputsOperators();
return $this->isCustomerValid($customer->getInteger());
}
/**
* Generate current Rule param to be validated from adapter
*
* @return $this
*/
protected function setParametersToValidate()
{
$this->paramsToValidate = array(
self::PARAM1 => $this->adapter->getCustomer()->getId()
);
return $this;
}
/**
* Check if Checkout inputs are relevant or not
*
* @throws \Thelia\Exception\InvalidRuleValueException
* @return bool
*/
public function checkCheckoutInput()
{
if (!isset($this->paramsToValidate)
|| empty($this->paramsToValidate)
||!isset($this->paramsToValidate[self::PARAM1])
) {
throw new InvalidRuleValueException(get_class(), self::PARAM1);
}
$customerId = $this->paramsToValidate[self::PARAM1];
return $this->isCustomerValid($customerId);
}
/**
* Check if a Customer is valid
*
* @param int $customerId Customer to check
*
* @throws InvalidRuleValueException if Value is not allowed
* @return bool
*/
protected function isCustomerValid($customerId)
{
$customerValidator = $this->customerValidator;
try {
$customerValidator->getParam()->compareTo($customerId);
} catch(\InvalidArgumentException $e) {
throw new InvalidRuleValueException(get_class(), self::PARAM1);
}
return true;
}
/**
* Get I18n name
*
* @return string
*/
public function getName()
{
return $this->adapter
->getTranslator()
->trans('Customer', null, 'constraint');
}
/**
* Get I18n tooltip
*
* @return string
*/
public function getToolTip()
{
/** @var CustomerParam $param */
$param = $this->customerValidator->getParam();
$toolTip = $this->adapter
->getTranslator()
->trans(
'If customer is %fistname% %lastname% (%email%)',
array(
'%fistname%' => $param->getFirstName(),
'%lastname%' => $param->getLastName(),
'%email%' => $param->getEmail(),
),
'constraint'
);
return $toolTip;
}
}

View File

@@ -1,59 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForDate extends AvailableForPeriod
{
/**
* Check if backoffice inputs are relevant or not
*
* @return bool
*/
public function checkBackOfficeInput()
{
// TODO: Implement checkBackOfficeInput() method.
}
/**
* Check if Checkout inputs are relevant or not
*
* @return bool
*/
public function checkCheckoutInput()
{
// TODO: Implement checkCheckoutInput() method.
}
}

View File

@@ -1,59 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForLocationX extends CouponRuleAbstract
{
/**
* Check if backoffice inputs are relevant or not
*
* @return bool
*/
public function checkBackOfficeInput()
{
// TODO: Implement checkBackOfficeInput() method.
}
/**
* Check if Checkout inputs are relevant or not
*
* @return bool
*/
public function checkCheckoutInput()
{
// TODO: Implement checkCheckoutInput() method.
}
}

View File

@@ -1,57 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForPeriod extends CouponRuleAbstract
{
/**
* Check if backoffice inputs are relevant or not
*
* @return bool
*/
public function checkBackOfficeInput()
{
// TODO: Implement checkBackOfficeInput() method.
}
/**
* Check if Checkout inputs are relevant or not
*
* @return bool
*/
public function checkCheckoutInput()
{
// TODO: Implement checkCheckoutInput() method.
}
}

View File

@@ -1,57 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForRepeatedDate extends AvailableForDate
{
/**
* Check if backoffice inputs are relevant or not
*
* @return bool
*/
public function checkBackOfficeInput()
{
// TODO: Implement checkBackOfficeInput() method.
}
/**
* Check if Checkout inputs are relevant or not
*
* @return bool
*/
public function checkCheckoutInput()
{
// TODO: Implement checkCheckoutInput() method.
}
}

View File

@@ -1,73 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
use Thelia\Coupon\CouponAdapterInterface;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForRepeatedPeriod extends AvailableForPeriod
{
/**
* Generate current Rule param to be validated from adapter
*
* @param CouponAdapterInterface $adapter allowing to gather
* all necessary Thelia variables
*
* @throws \Symfony\Component\Intl\Exception\NotImplementedException
* @return $this
*/
public function setParametersToValidate(CouponAdapterInterface $adapter)
{
// @todo implement
}
/**
* Check if backoffice inputs are relevant or not
*
* @return bool
*/
public function checkBackOfficeInput()
{
// TODO: Implement checkBackOfficeInput() method.
}
/**
* Check if Checkout inputs are relevant or not
*
* @return bool
*/
public function checkCheckoutInput()
{
// TODO: Implement checkCheckoutInput() method.
}
}

View File

@@ -1,38 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForTotalAmountForCategoryY extends AvailableForTotalAmount
{
}

View File

@@ -1,81 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Rule;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* A rule set by an admin ready to be serialized and stored in DataBase
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class SerializableRule
{
/** @var string Rule Service id */
public $ruleServiceId = null;
/** @var array Operators set by Admin for this Rule */
public $operators = array();
/** @var array Values set by Admin for this Rule */
public $values = array();
/**
* Get Operators set by Admin for this Rule
*
* @return array
*/
public function getOperators()
{
return $this->operators;
}
/**
* Get Rule Service id
*
* @return string
*/
public function getRuleServiceId()
{
return $this->ruleServiceId;
}
/**
* Get Values set by Admin for this Rule
*
* @return array
*/
public function getValues()
{
return $this->values;
}
}

View File

@@ -1,49 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
/**
* Comparable interface
* Allows to compare two value objects to each other for similarity.
*
* @author Benjamin Eberlei <kontakt@beberlei.de>
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
*/
interface ComparableInterface
{
/**
* Compare the current object to the passed $other.
*
* Returns 0 if they are semantically equal, 1 if the other object
* is less than the current one, or -1 if its more than the current one.
*
* This method should not check for identity using ===, only for semantically equality for example
* when two different DateTime instances point to the exact same Date + TZ.
*
* @param mixed $other Object
*
* @return int
*/
public function compareTo($other);
}

View File

@@ -1,158 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
use InvalidArgumentException;
use Propel\Runtime\ActiveQuery\ModelCriteria;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Model\Customer;
use Thelia\Model\CustomerQuery;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Represent a Customer
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class CustomerParam extends IntegerParam
{
/** @var string Model Class name */
protected $modelClass = '\Thelia\Model\Customer';
/** @var ModelCriteria */
protected $queryBuilder = null;
/** @var string Customer firstname */
protected $firstName = null;
/** @var string Customer lastname */
protected $lastName = null;
/** @var string Customer email */
protected $email = null;
/**
* Constructor
*
* @param CouponAdapterInterface $adapter Provide necessary value from Thelia
* @param int $integer Integer
*
* @throws InvalidArgumentException
*/
public function __construct(CouponAdapterInterface $adapter, $integer)
{
$this->integer = $integer;
$this->adapter = $adapter;
$this->queryBuilder = CustomerQuery::create();
/** @var Customer $customer */
$customer = $this->queryBuilder->findById($integer);
if ($customer !== null) {
$this->firstName = $customer->getFirstname();
$this->lastName = $customer->getLastname();
$this->email = $customer->getEmail();
} else {
throw new \InvalidArgumentException(
'CustomerParam can compare only existing Customers'
);
}
}
/**
* Compare the current object to the passed $other.
*
* Returns 0 if they are semantically equal, 1 if the other object
* is less than the current one, or -1 if its more than the current one.
*
* This method should not check for identity using ===, only for semantically equality for example
* when two different DateTime instances point to the exact same Date + TZ.
*
* @param mixed $other Object
*
* @throws InvalidArgumentException
* @return int
*/
public function compareTo($other)
{
if (!is_integer($other) || $other < 0) {
throw new InvalidArgumentException(
'IntegerParam can compare only positive int'
);
}
return parent::compareTo($other);
}
/**
* Customer email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
/**
* Customer first name
*
* @return string
*/
public function getFirstName()
{
return $this->firstName;
}
/**
* Customer last name
*
* @return string
*/
public function getLastName()
{
return $this->lastName;
}
/**
* Get I18n tooltip
*
* @return string
*/
public function getToolTip()
{
return $this->adapter
->getTranslator()
->trans(
'A Customer',
null,
'constraint'
);
}
}

View File

@@ -1,120 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
use Thelia\Coupon\CouponAdapterInterface;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Represent a DateTime
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class DateParam extends RuleParameterAbstract
{
/** @var \DateTime Date */
protected $dateTime = null;
/**
* Constructor
*
* @param CouponAdapterInterface $adapter Provide necessary value from Thelia
* @param \DateTime $dateTime DateTime
*/
public function __construct(CouponAdapterInterface $adapter, \DateTime $dateTime)
{
$this->dateTime = $dateTime;
$this->adapter = $adapter;
}
/**
* Get DateTime
*
* @return \DateTime
*/
public function getDateTime()
{
return clone $this->dateTime;
}
/**
* Compare the current object to the passed $other.
*
* Returns 0 if they are semantically equal, 1 if the other object
* is less than the current one, or -1 if its more than the current one.
*
* This method should not check for identity using ===, only for semantically equality for example
* when two different DateTime instances point to the exact same Date + TZ.
*
* @param mixed $other Object
*
* @throws \InvalidArgumentException
* @return int
*/
public function compareTo($other)
{
if (!$other instanceof \DateTime) {
throw new \InvalidArgumentException('DateParam can compare only DateTime');
}
$ret = -1;
if ($this->dateTime == $other) {
$ret = 0;
} elseif ($this->dateTime > $other) {
$ret = 1;
} else {
$ret = -1;
}
return $ret;
}
/**
* Get Parameter value to test against
*
* @return \Datetime
*/
public function getValue()
{
return clone $this->dateTime;
}
/**
* Get I18n tooltip
*
* @return string
*/
public function getToolTip()
{
return $this->adapter
->getTranslator()
->trans('A date (ex: YYYY-MM-DD HH:MM:SS)', null, 'constraint');
}
}

View File

@@ -1,121 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
use Thelia\Coupon\CouponAdapterInterface;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Represent an Integer
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class IntegerParam extends RuleParameterAbstract
{
/** @var int Integer to compare with */
protected $integer = 0;
/**
* Constructor
*
* @param CouponAdapterInterface $adapter Provide necessary value from Thelia
* @param int $integer Integer
*/
public function __construct(CouponAdapterInterface $adapter, $integer)
{
$this->integer = $integer;
$this->adapter = $adapter;
}
/**
* Get integer
*
* @return int
*/
public function getInteger()
{
return $this->integer;
}
/**
* Compare the current object to the passed $other.
*
* Returns 0 if they are semantically equal, 1 if the other object
* is less than the current one, or -1 if its more than the current one.
*
* This method should not check for identity using ===, only for semantically equality for example
* when two different DateTime instances point to the exact same Date + TZ.
*
* @param mixed $other Object
*
* @throws \InvalidArgumentException
* @return int
*/
public function compareTo($other)
{
if (!is_integer($other)) {
throw new \InvalidArgumentException('IntegerParam can compare only int');
}
$ret = -1;
if ($this->integer == $other) {
$ret = 0;
} elseif ($this->integer > $other) {
$ret = 1;
} else {
$ret = -1;
}
return $ret;
}
/**
* Get Parameter value to test against
*
* @return int
*/
public function getValue()
{
return $this->integer;
}
/**
* Get I18n tooltip
*
* @return string
*/
public function getToolTip()
{
return $this->adapter
->getTranslator()
->trans('A number (ex: 42)', null, 'constraint');
}
}

View File

@@ -1,165 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
use Thelia\Coupon\CouponAdapterInterface;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Represent an DateTime period
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class IntervalParam extends RuleParameterAbstract
{
/** @var \DatePeriod Date period */
protected $datePeriod = null;
/** @var \DateTime Start date */
protected $start = null;
/** @var \DateInterval Interval date */
protected $interval = null;
/**
* Constructor
*
* @param CouponAdapterInterface $adapter Provide necessary value from Thelia
* @param \DateTime $start Start interval
* @param \DateInterval $interval Period
*/
public function __construct(CouponAdapterInterface $adapter, \DateTime $start, \DateInterval $interval)
{
$this->datePeriod = new \DatePeriod($start, $interval, 1);
$this->adapter = $adapter;
$this->start = $start;
$this->interval = $interval;
}
/**
* Get Interval
*
* @return \DateInterval
*/
public function getInterval()
{
return $this->interval;
}
/**
* Get start date
*
* @return \DateTime
*/
public function getStart()
{
return $this->start;
}
/**
* Get DatePeriod
*
* @return \DatePeriod
*/
public function getDatePeriod()
{
return clone $this->datePeriod;
}
/**
* Compare the current object to the passed $other.
*
* Returns 0 if they are semantically equal, 1 if the other object
* is less than the current one, or -1 if its more than the current one.
*
* This method should not check for identity using ===, only for semantically equality for example
* when two different DateTime instances point to the exact same Date + TZ.
*
* @param mixed $other Object
*
* @throws \InvalidArgumentException
* @return int
*/
public function compareTo($other)
{
if (!$other instanceof \DateTime) {
throw new \InvalidArgumentException('IntervalParam can compare only DateTime');
}
/** @var \DateTime Start Date */
$startDate = null;
/** @var \DateTime End Date */
$endDate = null;
foreach ($this->datePeriod as $key => $value) {
if ($key == 0) {
$startDate = $value;
}
if ($key == 1) {
$endDate = $value;
}
}
$ret = -1;
if ($startDate <= $other && $other <= $endDate) {
$ret = 0;
} elseif ($startDate > $other) {
$ret = 1;
} else {
$ret = -1;
}
return $ret;
}
/**
* Get Parameter value to test against
*
* @return \DatePeriod
*/
public function getValue()
{
return clone $this->datePeriod;
}
/**
* Get I18n tooltip
*
* @return string
*/
public function getToolTip()
{
return $this->adapter
->getTranslator()
->trans('An interval between two dates', null, 'constraint');
}
}

View File

@@ -1,115 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
use InvalidArgumentException;
use Thelia\Coupon\CouponAdapterInterface;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Represent a Model
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class ModelParam extends IntegerParam
{
/** @var string Model Class name */
protected $modelClass = null;
/** @var ModelCriteria */
protected $queryBuilder = null;
/**
* Constructor
*
* @param CouponAdapterInterface $adapter Provide necessary value from Thelia
* @param int $integer Integer
* @param string $modelClass Model class name
*
* @throws InvalidArgumentException
*/
public function __construct(CouponAdapterInterface $adapter, $integer, $modelClass)
{
if ($integer < 0) {
$integer = 0;
}
$this->integer = $integer;
$this->adapter = $adapter;
$this->modelClass = $modelClass;
$queryClassName = $modelClass . 'Query';
try {
$this->queryBuilder = $queryClassName::create();
} catch (\Exception $e) {
throw new InvalidArgumentException('ModelParam can only compare Models');
}
}
/**
* Compare the current object to the passed $other.
*
* Returns 0 if they are semantically equal, 1 if the other object
* is less than the current one, or -1 if its more than the current one.
*
* This method should not check for identity using ===, only for semantically equality for example
* when two different DateTime instances point to the exact same Date + TZ.
*
* @param mixed $other Object
*
* @throws InvalidArgumentException
* @return int
*/
public function compareTo($other)
{
if (!is_integer($other) || $other < 0) {
throw new InvalidArgumentException(
'IntegerParam can compare only positive int'
);
}
return parent::compareTo($other);
}
/**
* Get I18n tooltip
*
* @return string
*/
public function getToolTip()
{
return $this->adapter
->getTranslator()
->trans(
'A Model',
null,
'constraint'
);
}
}

View File

@@ -1,145 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
use Thelia\Core\Translation\Translator;
use Thelia\Coupon\CouponAdapterInterface;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Represent a Price
* Positive value with currency
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class PriceParam extends RuleParameterAbstract
{
/** @var float Positive Float to compare with */
protected $price = null;
/** @var string Currency Code ISO 4217 EUR|USD|GBP */
protected $currency = null;
/**
* Constructor
*
* @param Translator $translator Service translator
* @param float $price Positive float
* @param string $currency Currency Code ISO 4217 EUR|USD|GBP
*/
public function __construct(Translator $translator, $price, $currency)
{
$this->price = $price;
$this->currency = $currency;
$this->translator = $translator;
}
/**
* Get currency code
*
* @return string
*/
public function getCurrency()
{
return $this->currency;
}
/**
* Get price
*
* @return float
*/
public function getPrice()
{
return $this->price;
}
/**
* Compare the current object to the passed $other.
*
* Returns 0 if they are semantically equal, 1 if the other object
* is less than the current one, or -1 if its more than the current one.
*
* This method should not check for identity using ===, only for semantically equality for example
* when two different DateTime instances point to the exact same Date + TZ.
*
* @param mixed $other Object
*
* @throws \InvalidArgumentException
* @return int
*/
public function compareTo($other)
{
if (!is_float($other)) {
throw new \InvalidArgumentException(
'PriceParam can compare only positive float'
);
}
$epsilon = 0.00001;
$ret = -1;
if (abs($this->price - $other) < $epsilon) {
$ret = 0;
} elseif ($this->price > $other) {
$ret = 1;
} else {
$ret = -1;
}
return $ret;
}
/**
* Get Parameter value to test against
*
* @return float
*/
public function getValue()
{
return $this->price;
}
/**
* Get I18n tooltip
*
* @return string
*/
public function getToolTip()
{
return $this->translator
->trans(
'A price in %currency% (ex: 14.50)',
array(
'%currency%' => $this->currency
),
'constraint'
);
}
}

View File

@@ -1,117 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
use Thelia\Coupon\CouponAdapterInterface;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Represent A repeated Date across the time
* Ex :
* A date repeated every 1 months 5 times
* ---------*---*---*---*---*---*---------------------------> time
* 1 2 3 4 5 6
* 1 : $this->from Start date of the repetition
* *--- : $this->interval Duration of a whole cycle
* x5 : $this->recurrences How many repeated cycle, 1st excluded
* x6 : How many occurrence
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class RepeatedDateParam extends RepeatedParam
{
/**
* Constructor
*
* @param CouponAdapterInterface $adapter Provide necessary value from Thelia
*/
public function __construct(CouponAdapterInterface $adapter)
{
$this->defaultConstructor();
$this->adapter = $adapter;
}
/**
* Compare the current object to the passed $other.
*
* Returns 0 if they are semantically equal, 1 if the other object
* is less than the current one, or -1 if its more than the current one.
*
* This method should not check for identity using ===, only for semantically equality for example
* when two different DateTime instances point to the exact same Date + TZ.
*
* @param mixed $other Object
*
* @throws \InvalidArgumentException
* @return int
*/
public function compareTo($other)
{
if (!$other instanceof \DateTime) {
throw new \InvalidArgumentException('RepeatedDateParam can compare only DateTime');
}
$ret = -1;
$dates = array();
/** @var $value \DateTime */
foreach ($this->datePeriod as $value) {
$dates[$value->getTimestamp()] = $value;
}
foreach ($dates as $date) {
if ($date == $other) {
return 0;
}
}
return $ret;
}
/**
* Get Parameter value to test against
*
* @return \DatePeriod
*/
public function getValue()
{
return clone $this->datePeriod;
}
/**
* Get I18n tooltip
*
* @return string
*/
public function getToolTip()
{
return $this->adapter
->getTranslator()
->trans('A date (ex: YYYY-MM-DD HH:MM:SS)', null, 'constraint');
}
}

View File

@@ -1,151 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
use Thelia\Coupon\CouponAdapterInterface;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Represent A repeated DateInterval across the time
* Ex :
* A duration of 1 month repeated every 2 months 5 times
* ---------****----****----****----****----****----****-----------------> time
* 1 2 3 4 5 6
* 1 : $this->from Start date of the repetition
* ****---- : $this->interval Duration of a whole cycle
* x5 : $this->recurrences How many repeated cycle, 1st excluded
* x6 : How many occurrence
* **** : $this->durationInDays Duration of a period
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class RepeatedIntervalParam extends RepeatedParam
{
/** @var int duration of the param */
protected $durationInDays = 1;
/**
* Get how many day a Param is lasting
*
* @return int
*/
public function getDurationInDays()
{
return $this->durationInDays;
}
/**
* Set how many day a Param is lasting
*
* @param int $durationInDays How many day a Param is lasting
*
* @return $this
*/
public function setDurationInDays($durationInDays = 1)
{
$this->durationInDays = $durationInDays;
return $this;
}
/**
* Constructor
*
* @param CouponAdapterInterface $adapter Provide necessary value from Thelia
*/
public function __construct(CouponAdapterInterface $adapter)
{
$this->defaultConstructor();
$this->adapter = $adapter;
}
/**
* Compare the current object to the passed $other.
*
* Returns 0 if they are semantically equal, 1 if the other object
* is less than the current one, or -1 if its more than the current one.
*
* This method should not check for identity using ===, only for semantically equality for example
* when two different DateTime instances point to the exact same Date + TZ.
*
* @param mixed $other Object
*
* @throws \InvalidArgumentException
* @return int
*/
public function compareTo($other)
{
if (!$other instanceof \DateTime) {
throw new \InvalidArgumentException('RepeatedIntervalParam can compare only DateTime');
}
$ret = -1;
$dates = array();
/** @var $value \DateTime */
foreach ($this->datePeriod as $value) {
$dates[$value->getTimestamp()]['startDate'] = $value;
$endDate = new \DateTime();
$dates[$value->getTimestamp()]['endDate'] = $endDate->setTimestamp(
$value->getTimestamp() + ($this->durationInDays * 60 *60 *24)
);
}
foreach ($dates as $date) {
if ($date['startDate'] <= $other && $other <= $date['endDate']) {
return 0;
}
}
return $ret;
}
/**
* Get Parameter value to test against
*
* @return \DatePeriod
*/
public function getValue()
{
return clone $this->datePeriod;
}
/**
* Get I18n tooltip
*
* @return string
*/
public function getToolTip()
{
return $this->adapter
->getTranslator()
->trans('A date (ex: YYYY-MM-DD HH:MM:SS)', null, 'constraint');
}
}

View File

@@ -1,297 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
use DateInterval;
use DatePeriod;
use DateTime;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Allow to set the way a parameter can be repeated across the time
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
abstract class RepeatedParam extends RuleParameterAbstract
{
/** @var DateTime The start date of the period. */
protected $from = null;
/** @var DateInterval The interval between recurrences within the period. */
protected $interval = null;
/** @var int Nb time the object will be repeated (1st occurrence excluded). */
protected $recurrences = null;
/** @var DatePeriod dates recurring at regular intervals, over a given period */
protected $datePeriod = null;
/** @var int Frequency the object will be repeated */
protected $frequency = null;
/** @var int $nbRepetition Time the object will be repeated */
protected $nbRepetition = null;
/**
* Get frequency
*
* @return int
*/
public function getFrequency()
{
return $this->frequency;
}
/**
* Get Interval
*
* @return \DateInterval
*/
public function getInterval()
{
return $this->interval;
}
/**
* Get number of time it will be repeated
*
* @return int
*/
public function getNbRepetition()
{
return $this->nbRepetition;
}
/**
* Get number of recurrences
*
* @return int
*/
public function getRecurrences()
{
return $this->recurrences;
}
/**
* Generate default repetition
* Every 1 week 100 times from now
*
* @return $this
*/
protected function defaultConstructor()
{
$this->from = new \DateTime();
$this->interval = new \DateInterval('P1W'); // 1 week
$this->recurrences = 100;
$this->generateDatePeriod();
return $this;
}
/**
* Generate DatePeriod from class attributes
* Will repeat every DatePeriod
*
* @return $this
*/
protected function generateDatePeriod()
{
$this->datePeriod = new DatePeriod(
$this->from,
$this->interval,
$this->recurrences
);
return $this;
}
/**
* Set the Object to be repeated every days
* Ex : $obj->repeatEveryDay() will occur once
* $obj->repeatEveryDay(10) will occur once
* $obj->repeatEveryDay(10, 0) will occur once
* $obj->repeatEveryDay(10, 4) will occur every 10 days 5 times
*
* @param int $frequency Frequency the object will be repeated
* @param int $nbRepetition Time the object will be repeated
*
* @return $this
*/
public function repeatEveryDay($frequency = 1, $nbRepetition = 0)
{
$this->_repeatEveryPeriod($period = 'D', $frequency, $nbRepetition);
return $this;
}
/**
* Set the Object to be repeated every week
* Ex : $obj->repeatEveryWeek() will occur once
* $obj->repeatEveryWeek(10) will occur once
* $obj->repeatEveryWeek(10, 0) will occur once
* $obj->repeatEveryWeek(10, 4) will occur every 10 weeks (70days) 5 times
*
* @param int $frequency Frequency the object will be repeated
* @param int $nbRepetition Time the object will be repeated
*
* @return $this
*/
public function repeatEveryWeek($frequency = 1, $nbRepetition = 0)
{
$this->_repeatEveryPeriod($period = 'W', $frequency, $nbRepetition);
return $this;
}
/**
* Set the Object to be repeated every month
* Ex : $obj->repeatEveryWeek() will occur once
* $obj->repeatEveryWeek(10) will occur once
* $obj->repeatEveryWeek(10, 0) will occur once
* $obj->repeatEveryWeek(10, 4) will occur every 10 month (70days) 5times
*
* @param int $frequency Frequency the object will be repeated
* @param int $nbRepetition Time the object will be repeated
*
* @return $this
*/
public function repeatEveryMonth($frequency = 1, $nbRepetition = 0)
{
$this->_repeatEveryPeriod($period = 'M', $frequency, $nbRepetition);
return $this;
}
/**
* Set the Object to be repeated every year
* Ex : $obj->repeatEveryWeek() will occur once
* $obj->repeatEveryWeek(10) will occur once
* $obj->repeatEveryWeek(10, 0) will occur once
* $obj->repeatEveryWeek(10, 4) will occur every 10 year 5 times
*
* @param int $frequency Frequency the object will be repeated
* @param int $nbRepetition Time the object will be repeated
*
* @return $this
*/
public function repeatEveryYear($frequency = 1, $nbRepetition = 0)
{
$this->_repeatEveryPeriod($period = 'Y', $frequency, $nbRepetition);
return $this;
}
/**
* Set the Object to be repeated every Period
* Ex : $obj->repeatEveryPeriod('D') will occur once
* $obj->repeatEveryPeriod('W', 10) will occur once
* $obj->repeatEveryPeriod('W', 10, 0) will occur once
* $obj->repeatEveryPeriod('M', 10, 4) will occur every 10 month 5 times
*
* @param string $period Period Y|M||D|W
* @param int $frequency Frequency the object will be repeated
* @param int $nbRepetition Time the object will be repeated
*
* @return $this
*/
private function _repeatEveryPeriod($period, $frequency = 1, $nbRepetition = 0)
{
if (is_numeric($frequency) && $frequency > 0) {
$this->interval = new \DateInterval('P' . $frequency . $period);
}
if (is_numeric($nbRepetition) && $nbRepetition >= 0) {
$this->recurrences = $nbRepetition;
}
$this->generateDatePeriod();
return $this;
}
/**
* Set Start time
*
* @param \DateTime $from Start time
*
* @return $this
*/
public function setFrom($from)
{
$this->from = $from;
return $this;
}
/**
* Get Start time
*
* @return \DateTime
*/
public function getFrom()
{
return clone $this->from;
}
/**
* Set DatePeriod
*
* @param DatePeriod $datePeriod DatePeriod
*
* @return $this
*/
public function setDatePeriod(DatePeriod $datePeriod)
{
$this->datePeriod = $datePeriod;
return $this;
}
/**
* Get date DatePeriod
*
* @return \DatePeriod
*/
public function getDatePeriod()
{
return clone $this->datePeriod;
}
/**
* Get Parameter value to test against
*
* @return \DatePeriod
*/
public function getValue()
{
return clone $this->datePeriod;
}
}

View File

@@ -1,67 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
use Thelia\Core\Translation\Translator;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Exception\NotImplementedException;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Get a Param value
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
abstract class RuleParameterAbstract implements ComparableInterface
{
/** @var Translator Service Translator */
protected $translator = null;
/**
* Get Parameter value to test against
*
* @return mixed
*/
public function getValue()
{
return new NotImplementedException();
}
/**
* Get I18n tooltip
*
* @return string
*/
public function getToolTip()
{
return new NotImplementedException();
}
}

View File

@@ -1,77 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Allow to validate parameters
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class RuleValidator
{
/** @var string Operator ex: Operators::INFERIOR */
protected $operator = null;
/** @var ComparableInterface Validator */
protected $param = null;
/**
* Constructor
*
* @param string $operator Operator ex: Operators::INFERIOR
* @param ComparableInterface $param Validator ex: PriceParam
*/
function __construct($operator, ComparableInterface $param)
{
$this->operator = $operator;
$this->param = $param;
}
/**
* Get Validator Operator
*
* @return string
*/
public function getOperator()
{
return $this->operator;
}
/**
* Get Validator Param
*
* @return ComparableInterface
*/
public function getParam()
{
return $this->param;
}
}

View File

@@ -25,24 +25,15 @@ namespace Thelia\Controller\Admin;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Router;
use Thelia\Constraint\ConstraintFactory;
use Thelia\Constraint\ConstraintFactoryTest;
use Thelia\Constraint\Rule\AvailableForTotalAmount;
use Thelia\Constraint\Rule\CouponRuleInterface;
use Thelia\Constraint\Validator\PriceParam;
use Thelia\Condition\ConditionFactory;
use Thelia\Condition\ConditionManagerInterface;
use Thelia\Core\Event\Condition\ConditionCreateOrUpdateEvent;
use Thelia\Core\Event\Coupon\CouponConsumeEvent;
use Thelia\Core\Event\Coupon\CouponCreateEvent;
use Thelia\Core\Event\Coupon\CouponCreateOrUpdateEvent;
use Thelia\Core\Event\Coupon\CouponEvent;
use Thelia\Core\Event\TheliaEvents;
use Thelia\Core\HttpFoundation\Session\Session;
use Thelia\Core\Security\Exception\AuthenticationException;
use Thelia\Core\Security\Exception\AuthorizationException;
use Thelia\Core\Translation\Translator;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Coupon\CouponFactory;
use Thelia\Coupon\CouponManager;
use Thelia\Coupon\CouponRuleCollection;
use Thelia\Coupon\ConditionCollection;
use Thelia\Coupon\Type\CouponInterface;
use Thelia\Form\CouponCreationForm;
use Thelia\Form\Exception\FormValidationException;
@@ -76,13 +67,13 @@ class CouponController extends BaseAdminController
$args['urlReadCoupon'] = $this->getRoute(
'admin.coupon.read',
array('couponId' => 'couponId'),
array('couponId' => 0),
Router::ABSOLUTE_URL
);
$args['urlEditCoupon'] = $this->getRoute(
'admin.coupon.update',
array('couponId' => 'couponId'),
array('couponId' => 0),
Router::ABSOLUTE_URL
);
@@ -162,7 +153,7 @@ class CouponController extends BaseAdminController
$args['dateFormat'] = $this->getSession()->getLang()->getDateFormat();
$args['availableCoupons'] = $this->getAvailableCoupons();
$args['formAction'] = 'admin/coupon/create/';
$args['formAction'] = 'admin/coupon/create';
return $this->render(
'coupon-create',
@@ -187,8 +178,9 @@ class CouponController extends BaseAdminController
/** @var Coupon $coupon */
$coupon = CouponQuery::create()->findPk($couponId);
if (!$coupon) {
$this->pageNotFound();
if (null === $coupon) {
return $this->pageNotFound();
}
// Parameters given to the template
@@ -199,7 +191,7 @@ class CouponController extends BaseAdminController
$lang = $this->getSession()->getLang();
$eventToDispatch = TheliaEvents::COUPON_UPDATE;
// Create
// Update
if ($this->getRequest()->isMethod('POST')) {
$this->validateCreateOrUpdateForm(
$i18n,
@@ -208,20 +200,23 @@ class CouponController extends BaseAdminController
'updated',
'update'
);
} else { // Update
} else {
// Display
// Prepare the data that will hydrate the form
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $this->container->get('thelia.constraint.factory');
$rules = $constraintFactory->unserializeCouponRuleCollection(
$coupon->getSerializedRules()
/** @var ConditionFactory $conditionFactory */
$conditionFactory = $this->container->get('thelia.condition.factory');
$conditions = $conditionFactory->unserializeConditionCollection(
$coupon->getSerializedConditions()
);
var_dump($coupon->getIsEnabled());;
var_dump($coupon->getIsAvailableOnSpecialOffers());;
var_dump($coupon->getIsCumulative());;
var_dump($coupon->getIsRemovingPostage());;
$data = array(
'code' => $coupon->getCode(),
'title' => $coupon->getTitle(),
'amount' => $coupon->getAmount(),
'effect' => $coupon->getType(),
'type' => $coupon->getType(),
'shortDescription' => $coupon->getShortDescription(),
'description' => $coupon->getDescription(),
'isEnabled' => ($coupon->getIsEnabled() == 1),
@@ -230,23 +225,23 @@ class CouponController extends BaseAdminController
'isCumulative' => ($coupon->getIsCumulative() == 1),
'isRemovingPostage' => ($coupon->getIsRemovingPostage() == 1),
'maxUsage' => $coupon->getMaxUsage(),
'rules' => $rules,
'conditions' => $conditions,
'locale' => $coupon->getLocale(),
);
$args['rulesObject'] = array();
$args['conditionsObject'] = array();
/** @var CouponRuleInterface $rule */
foreach ($rules->getRules() as $rule) {
$args['rulesObject'][] = array(
'serviceId' => $rule->getServiceId(),
'name' => $rule->getName(),
'tooltip' => $rule->getToolTip(),
'validators' => $rule->getValidators()
/** @var ConditionManagerInterface $condition */
foreach ($conditions->getConditions() as $condition) {
$args['conditionsObject'][] = array(
'serviceId' => $condition->getServiceId(),
'name' => $condition->getName(),
'tooltip' => $condition->getToolTip(),
'validators' => $condition->getValidators()
);
}
$args['rules'] = $this->cleanRuleForTemplate($rules);
$args['conditions'] = $this->cleanConditionForTemplate($conditions);
// Setup the object form
$changeForm = new CouponCreationForm($this->getRequest(), 'form', $data);
@@ -256,20 +251,20 @@ class CouponController extends BaseAdminController
}
$args['couponCode'] = $coupon->getCode();
$args['availableCoupons'] = $this->getAvailableCoupons();
$args['availableRules'] = $this->getAvailableRules();
$args['urlAjaxGetRuleInput'] = $this->getRoute(
'admin.coupon.rule.input',
array('ruleId' => 'ruleId'),
$args['availableConditions'] = $this->getAvailableConditions();
$args['urlAjaxGetConditionInput'] = $this->getRoute(
'admin.coupon.condition.input',
array('conditionId' => 'conditionId'),
Router::ABSOLUTE_URL
);
$args['urlAjaxUpdateRules'] = $this->getRoute(
'admin.coupon.rule.update',
$args['urlAjaxUpdateConditions'] = $this->getRoute(
'admin.coupon.condition.update',
array('couponId' => $couponId),
Router::ABSOLUTE_URL
);
$args['formAction'] = 'admin/coupon/update/' . $couponId;
$args['formAction'] = 'admin/coupon/update' . $couponId;
return $this->render('coupon-update', $args);
}
@@ -277,28 +272,28 @@ class CouponController extends BaseAdminController
/**
* Manage Coupons read display
*
* @param string $ruleId Rule service id
* @param string $conditionId Condition service id
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function getRuleInputAction($ruleId)
public function getConditionInputAction($conditionId)
{
$this->checkAuth('ADMIN', 'admin.coupon.read');
$this->checkXmlHttpRequest();
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $this->container->get('thelia.constraint.factory');
$inputs = $constraintFactory->getInputs($ruleId);
/** @var ConditionFactory $conditionFactory */
$conditionFactory = $this->container->get('thelia.condition.factory');
$inputs = $conditionFactory->getInputs($conditionId);
if ($inputs === null) {
return $this->pageNotFound();
}
return $this->render(
'coupon/rule-input-ajax',
'coupon/condition-input-ajax',
array(
'ruleId' => $ruleId,
'conditionId' => $conditionId,
'inputs' => $inputs
)
);
@@ -312,7 +307,7 @@ class CouponController extends BaseAdminController
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function updateRulesAction($couponId)
public function updateConditionsAction($couponId)
{
$this->checkAuth('ADMIN', 'admin.coupon.read');
@@ -326,64 +321,51 @@ class CouponController extends BaseAdminController
return $this->pageNotFound();
}
$rules = new CouponRuleCollection();
$conditions = new ConditionCollection();
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $this->container->get('thelia.constraint.factory');
$rulesReceived = json_decode($this->getRequest()->get('rules'));
foreach ($rulesReceived as $ruleReceived) {
$rule = $constraintFactory->build(
$ruleReceived->serviceId,
(array) $ruleReceived->operators,
(array) $ruleReceived->values
/** @var ConditionFactory $conditionFactory */
$conditionFactory = $this->container->get('thelia.condition.factory');
$conditionsReceived = json_decode($this->getRequest()->get('conditions'));
foreach ($conditionsReceived as $conditionReceived) {
$condition = $conditionFactory->build(
$conditionReceived->serviceId,
(array) $conditionReceived->operators,
(array) $conditionReceived->values
);
$rules->add(clone $rule);
$conditions->add(clone $condition);
}
$coupon->setSerializedRules(
$constraintFactory->serializeCouponRuleCollection($rules)
);
// $coupon->setSerializedConditions(
// $conditionFactory->serializeCouponConditionCollection($conditions)
// );
$couponEvent = new CouponCreateOrUpdateEvent(
$coupon->getCode(),
$coupon->getTitle(),
$coupon->getAmount(),
$coupon->getType(),
$coupon->getShortDescription(),
$coupon->getDescription(),
$coupon->getIsEnabled(),
$coupon->getExpirationDate(),
$coupon->getIsAvailableOnSpecialOffers(),
$coupon->getIsCumulative(),
$coupon->getIsRemovingPostage(),
$coupon->getMaxUsage(),
$rules,
$coupon->getLocale()
$conditionEvent = new ConditionCreateOrUpdateEvent(
$conditions
);
$couponEvent->setCoupon($coupon);
$conditionEvent->setCouponModel($coupon);
$eventToDispatch = TheliaEvents::COUPON_RULE_UPDATE;
$eventToDispatch = TheliaEvents::COUPON_CONDITION_UPDATE;
// Dispatch Event to the Action
$this->dispatch(
$eventToDispatch,
$couponEvent
$conditionEvent
);
$this->adminLogAppend(
sprintf(
'Coupon %s (ID %s) rules updated',
$couponEvent->getTitle(),
$couponEvent->getCoupon()->getId()
'Coupon %s (ID %s) conditions updated',
$conditionEvent->getCouponModel()->getTitle(),
$conditionEvent->getCouponModel()->getServiceId()
)
);
$cleanedRules = $this->cleanRuleForTemplate($rules);
$cleanedConditions = $this->cleanConditionForTemplate($conditions);
return $this->render(
'coupon/rules',
'coupon/conditions',
array(
'couponId' => $couponId,
'rules' => $cleanedRules,
'conditions' => $cleanedConditions,
'urlEdit' => $couponId,
'urlDelete' => $couponId
)
@@ -395,6 +377,8 @@ class CouponController extends BaseAdminController
*
* @param string $couponCode Coupon code
*
* @todo remove (event dispatcher testing purpose)
*
*/
public function consumeAction($couponCode)
{
@@ -431,8 +415,8 @@ class CouponController extends BaseAdminController
$couponBeingCreated->setAmount($data['amount']);
$couponBeingCreated->setIsEnabled($data['isEnabled']);
$couponBeingCreated->setExpirationDate($data['expirationDate']);
$couponBeingCreated->setSerializedRules(
new CouponRuleCollection(
$couponBeingCreated->setSerializedConditions(
new ConditionCollection(
array()
)
);
@@ -488,26 +472,14 @@ class CouponController extends BaseAdminController
$message = false;
try {
// Check the form against constraints violations
// Check the form against conditions violations
$form = $this->validateForm($creationForm, 'POST');
// Get the form field values
$data = $form->getData();
$couponEvent = new CouponCreateOrUpdateEvent(
$data['code'],
$data['title'],
$data['amount'],
$data['effect'],
$data['shortDescription'],
$data['description'],
$data['isEnabled'],
\DateTime::createFromFormat('Y-m-d', $data['expirationDate']),
$data['isAvailableOnSpecialOffers'],
$data['isCumulative'],
$data['isRemovingPostage'],
$data['maxUsage'],
new CouponRuleCollection(array()),
$data['locale']
$data['code'], $data['title'], $data['amount'], $data['type'], $data['shortDescription'], $data['description'], $data['isEnabled'], \DateTime::createFromFormat('Y-m-d', $data['expirationDate']), $data['isAvailableOnSpecialOffers'], $data['isCumulative'], $data['isRemovingPostage'], $data['maxUsage'], $data['locale']
);
// Dispatch Event to the Action
@@ -535,7 +507,6 @@ class CouponController extends BaseAdminController
} catch (FormValidationException $e) {
// Invalid data entered
$message = 'Please check your input:';
$this->logError($action, $message, $e);
} catch (\Exception $e) {
// Any other error
@@ -557,26 +528,26 @@ class CouponController extends BaseAdminController
}
/**
* Get all available rules
* Get all available conditions
*
* @return array
*/
protected function getAvailableRules()
protected function getAvailableConditions()
{
/** @var CouponManager $couponManager */
$couponManager = $this->container->get('thelia.coupon.manager');
$availableRules = $couponManager->getAvailableRules();
$cleanedRules = array();
/** @var CouponRuleInterface $availableRule */
foreach ($availableRules as $availableRule) {
$rule = array();
$rule['serviceId'] = $availableRule->getServiceId();
$rule['name'] = $availableRule->getName();
$rule['toolTip'] = $availableRule->getToolTip();
$cleanedRules[] = $rule;
$availableConditions = $couponManager->getAvailableConditions();
$cleanedConditions = array();
/** @var ConditionManagerInterface $availableCondition */
foreach ($availableConditions as $availableCondition) {
$condition = array();
$condition['serviceId'] = $availableCondition->getServiceId();
$condition['name'] = $availableCondition->getName();
$condition['toolTip'] = $availableCondition->getToolTip();
$cleanedConditions[] = $condition;
}
return $cleanedRules;
return $cleanedConditions;
}
/**
@@ -592,48 +563,51 @@ class CouponController extends BaseAdminController
$cleanedCoupons = array();
/** @var CouponInterface $availableCoupon */
foreach ($availableCoupons as $availableCoupon) {
$rule = array();
$rule['serviceId'] = $availableCoupon->getServiceId();
$rule['name'] = $availableCoupon->getName();
$rule['toolTip'] = $availableCoupon->getToolTip();
$cleanedCoupons[] = $rule;
$condition = array();
$condition['serviceId'] = $availableCoupon->getServiceId();
$condition['name'] = $availableCoupon->getName();
$condition['toolTip'] = $availableCoupon->getToolTip();
$cleanedCoupons[] = $condition;
}
return $cleanedCoupons;
}
/**
* @param $rules
* Clean condition for template
*
* @param ConditionCollection $conditions Condition collection
*
* @return array
*/
protected function cleanRuleForTemplate($rules)
protected function cleanConditionForTemplate(ConditionCollection $conditions)
{
$cleanedRules = array();
/** @var $rule CouponRuleInterface */
foreach ($rules->getRules() as $rule) {
$cleanedRules[] = $rule->getToolTip();
$cleanedConditions = array();
/** @var $condition ConditionManagerInterface */
foreach ($conditions->getConditions() as $condition) {
$cleanedConditions[] = $condition->getToolTip();
}
return $cleanedRules;
return $cleanedConditions;
}
// /**
// * Validation Rule creation
// * Validation Condition creation
// *
// * @param string $type Rule class type
// * @param string $operator Rule operator (<, >, =, etc)
// * @param array $values Rules values
// * @param string $type Condition class type
// * @param string $operator Condition operator (<, >, =, etc)
// * @param array $values Condition values
// *
// * @return bool
// */
// protected function validateRulesCreation($type, $operator, $values)
// protected function validateConditionsCreation($type, $operator, $values)
// {
// /** @var CouponAdapterInterface $adapter */
// /** @var AdapterInterface $adapter */
// $adapter = $this->container->get('thelia.adapter');
// $validator = new PriceParam()
// try {
// $rule = new AvailableForTotalAmount($adapter, $validators);
// $rule = new $type($adapter, $validators);
// $condition = new AvailableForTotalAmount($adapter, $validators);
// $condition = new $type($adapter, $validators);
// } catch (\Exception $e) {
// return false;
// }

View File

@@ -21,76 +21,86 @@
/* */
/**********************************************************************************/
namespace Thelia\Constraint\Validator;
namespace Thelia\Core\Event\Condition;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Core\Event\ActionEvent;
use Thelia\Coupon\ConditionCollection;
use Thelia\Coupon\Type\CouponInterface;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
* Date: 8/29/13
* Time: 3:45 PM
*
* Represent a Quantity
* Occurring when a Condition is created or updated
*
* @package Constraint
* @package Coupon
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class QuantityParam extends IntegerParam
class ConditionCreateOrUpdateEvent extends ActionEvent
{
/** @var ConditionCollection Array of ConditionManagerInterface */
protected $conditions = null;
/** @var CouponInterface Coupon model associated with this conditions */
protected $couponModel = null;
/**
* Constructor
*
* @param CouponAdapterInterface $adapter Provide necessary value from Thelia
* @param int $integer Integer
* @param ConditionCollection $conditions Array of ConditionManagerInterface
*/
public function __construct(CouponAdapterInterface $adapter, $integer)
public function __construct(ConditionCollection $conditions)
{
$this->integer = $integer;
$this->adapter = $adapter;
$this->conditions = $conditions;
}
/**
* Compare the current object to the passed $other.
* Get Conditions
*
* Returns 0 if they are semantically equal, 1 if the other object
* is less than the current one, or -1 if its more than the current one.
*
* This method should not check for identity using ===, only for semantically equality for example
* when two different DateTime instances point to the exact same Date + TZ.
*
* @param mixed $other Object
*
* @throws \InvalidArgumentException
* @return int
* @return null|ConditionCollection Array of ConditionManagerInterface
*/
public function compareTo($other)
public function getConditions()
{
if (!is_integer($other) || $other < 0) {
throw new \InvalidArgumentException(
'IntegerParam can compare only positive int'
);
}
return parent::compareTo($other);
return $this->conditions;
}
/**
* Get I18n tooltip
* Set Conditions
*
* @return string
* @param ConditionCollection $conditions Array of ConditionManagerInterface
*
* @return $this
*/
public function getToolTip()
public function setConditions(ConditionCollection $conditions)
{
return $this->adapter
->getTranslator()
->trans(
'A positive quantity (ex: 42)',
null,
'constraint'
);
$this->conditions = $conditions;
return $this;
}
/**
* Set Coupon Model associated to this condition
*
* @param CouponInterface $couponModel Coupon Model
*
* @return $this
*/
public function setCouponModel($couponModel)
{
$this->couponModel = $couponModel;
return $this;
}
/**
* Get Coupon Model associated to this condition
*
* @return null|CouponInterface
*/
public function getCouponModel()
{
return $this->couponModel;
}
}

View File

@@ -23,8 +23,6 @@
namespace Thelia\Core\Event\Coupon;
use Thelia\Core\Event\ActionEvent;
use Thelia\Coupon\CouponRuleCollection;
use Thelia\Model\Coupon;
/**
* Created by JetBrains PhpStorm.
@@ -56,7 +54,7 @@ class CouponConsumeEvent extends ActionEvent
* @param bool $isValid If Coupon is valid or
* if Customer meets coupon conditions
*/
function __construct($code, $discount = null, $isValid = null)
public function __construct($code, $discount = null, $isValid = null)
{
$this->code = $code;
$this->discount = $discount;
@@ -136,7 +134,4 @@ class CouponConsumeEvent extends ActionEvent
return $this->isValid;
}
}

View File

@@ -23,7 +23,7 @@
namespace Thelia\Core\Event\Coupon;
use Thelia\Core\Event\ActionEvent;
use Thelia\Coupon\CouponRuleCollection;
use Thelia\Coupon\ConditionCollection;
use Thelia\Model\Coupon;
/**
@@ -39,8 +39,8 @@ use Thelia\Model\Coupon;
*/
class CouponCreateOrUpdateEvent extends ActionEvent
{
/** @var CouponRuleCollection Array of CouponRuleInterface */
protected $rules = null;
/** @var ConditionCollection Array of ConditionManagerInterface */
protected $conditions = null;
/** @var string Coupon code (ex: XMAS) */
protected $code = null;
@@ -78,8 +78,8 @@ class CouponCreateOrUpdateEvent extends ActionEvent
/** @var Coupon Coupon model */
protected $coupon = null;
/** @var string Coupon effect */
protected $effect;
/** @var string Coupon type */
protected $type;
/** @var string Language code ISO (ex: fr_FR) */
protected $locale = null;
@@ -87,37 +87,24 @@ class CouponCreateOrUpdateEvent extends ActionEvent
/**
* Constructor
*
* @param string $code Coupon Code
* @param string $title Coupon title
* @param float $amount Amount removed from the Total Checkout
* @param string $effect Coupon effect
* @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 boolean $isRemovingPostage Is removing Postage
* @param int $maxUsage Coupon quantity
* @param CouponRuleCollection $rules CouponRuleInterface to add
* @param string $locale Coupon Language code ISO (ex: fr_FR)
* @param string $code Coupon Code
* @param string $title Coupon title
* @param float $amount Amount removed from the Total Checkout
* @param string $type Coupon type
* @param string $shortDescription Coupon short description
* @param string $description Coupon description
* @param bool $isEnabled Enable/Disable
* @param \DateTime $expirationDate Coupon expiration date
* @param boolean $isAvailableOnSpecialOffers Is available on special offers
* @param boolean $isCumulative Is cumulative
* @param boolean $isRemovingPostage Is removing Postage
* @param int $maxUsage Coupon quantity
* @param string $locale Coupon Language code ISO (ex: fr_FR)
*/
public function __construct(
$code,
$title,
$amount,
$effect,
$shortDescription,
$description,
$isEnabled,
\DateTime $expirationDate,
$isAvailableOnSpecialOffers,
$isCumulative,
$isRemovingPostage,
$maxUsage,
$rules,
$locale
) {
$code, $title, $amount, $type, $shortDescription, $description, $isEnabled, \DateTime $expirationDate, $isAvailableOnSpecialOffers, $isCumulative, $isRemovingPostage, $maxUsage, $locale
)
{
$this->amount = $amount;
$this->code = $code;
$this->description = $description;
@@ -127,10 +114,9 @@ class CouponCreateOrUpdateEvent extends ActionEvent
$this->isEnabled = $isEnabled;
$this->isRemovingPostage = $isRemovingPostage;
$this->maxUsage = $maxUsage;
$this->rules = $rules;
$this->shortDescription = $shortDescription;
$this->title = $title;
$this->effect = $effect;
$this->type = $type;
$this->locale = $locale;
}
@@ -206,22 +192,6 @@ class CouponCreateOrUpdateEvent extends ActionEvent
return $this->amount;
}
/**
* Return condition to validate the Coupon or not
*
* @return CouponRuleCollection
*/
public function getRules()
{
if ($this->rules === null || !is_object($this->rules)) {
$rules = $this->rules;
} else {
$rules = clone $this->rules;
}
return $rules;
}
/**
* Return Coupon expiration date
*
@@ -264,13 +234,13 @@ class CouponCreateOrUpdateEvent extends ActionEvent
}
/**
* Get Coupon effect
* Get Coupon type (effect)
*
* @return string
*/
public function getEffect()
public function getType()
{
return $this->effect;
return $this->type;
}
/**
@@ -307,4 +277,28 @@ class CouponCreateOrUpdateEvent extends ActionEvent
return $this->coupon;
}
/**
* Get Rules
*
* @return null|ConditionCollection Array of ConditionManagerInterface
*/
public function getConditions()
{
return $this->conditions;
}
/**
* set Rules
*
* @param ConditionCollection $rules Array of ConditionManagerInterface
*
* @return $this
*/
public function setConditions(ConditionCollection $rules)
{
$this->conditions = $rules;
return $this;
}
}

View File

@@ -423,19 +423,19 @@ final class TheliaEvents
const AFTER_CONSUME_COUPON = "action.after_consume_coupon";
/**
* Sent when attempting to update Coupon Rule
* Sent when attempting to update Coupon Condition
*/
const COUPON_RULE_UPDATE = "action.update_coupon_rule";
const COUPON_CONDITION_UPDATE = "action.update_coupon_condition";
/**
* Sent just before an attempt to update a Coupon Rule
* Sent just before an attempt to update a Coupon Condition
*/
const BEFORE_COUPON_RULE_UPDATE = "action.before_update_coupon_rule";
const BEFORE_COUPON_CONDITION_UPDATE = "action.before_update_coupon_condition";
/**
* Sent just after an attempt to update a Coupon Rule
* Sent just after an attempt to update a Coupon Condition
*/
const AFTER_COUPON_RULE_UPDATE = "action.after_update_coupon_rule";
const AFTER_COUPON_CONDITION_UPDATE = "action.after_update_coupon_condition";
// -- Configuration management ---------------------------------------------

View File

@@ -25,19 +25,17 @@ namespace Thelia\Core\Template\Loop;
use Propel\Runtime\ActiveQuery\Criteria;
use Propel\Runtime\Util\PropelModelPager;
use Thelia\Constraint\ConstraintFactory;
use Thelia\Constraint\Rule\CouponRuleInterface;
use Thelia\Condition\ConditionFactory;
use Thelia\Condition\ConditionManagerInterface;
use Thelia\Core\HttpFoundation\Request;
use Thelia\Core\Template\Element\BaseI18nLoop;
use Thelia\Core\Template\Element\LoopResult;
use Thelia\Core\Template\Element\LoopResultRow;
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
use Thelia\Core\Template\Loop\Argument\Argument;
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
use Thelia\Coupon\Type\CouponInterface;
use Thelia\Model\CouponQuery;
use Thelia\Model\Coupon as MCoupon;
use Thelia\Model\CouponQuery;
use Thelia\Type;
use Thelia\Type\BooleanOrBothType;
@@ -63,14 +61,14 @@ class Coupon extends BaseI18nLoop
{
return new ArgumentCollection(
Argument::createIntListTypeArgument('id'),
Argument::createBooleanOrBothTypeArgument('is_enabled', 1)
Argument::createBooleanOrBothTypeArgument('is_enabled')
);
}
/**
* Execute Loop
*
* @param PropelModelPager $pagination
* @param PropelModelPager $pagination Pagination manager
*
* @return \Thelia\Core\Template\Element\LoopResult
*/
@@ -88,16 +86,16 @@ class Coupon extends BaseI18nLoop
$search->filterById($id, Criteria::IN);
}
if ($isEnabled != BooleanOrBothType::ANY) {
$search->filterByIsEnabled($isEnabled ? 1 : 0);
if (isset($isEnabled)) {
$search->filterByIsEnabled($isEnabled ? true : false);
}
// Perform search
$coupons = $this->search($search, $pagination);
$loopResult = new LoopResult();
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $this->container->get('thelia.constraint.factory');
/** @var ConditionFactory $conditionFactory */
$conditionFactory = $this->container->get('thelia.condition.factory');
/** @var Request $request */
$request = $this->container->get('request');
@@ -107,8 +105,8 @@ class Coupon extends BaseI18nLoop
/** @var MCoupon $coupon */
foreach ($coupons as $coupon) {
$loopResultRow = new LoopResultRow();
$rules = $constraintFactory->unserializeCouponRuleCollection(
$coupon->getSerializedRules()
$conditions = $conditionFactory->unserializeConditionCollection(
$coupon->getSerializedConditions()
);
/** @var CouponInterface $couponManager */
@@ -132,10 +130,10 @@ class Coupon extends BaseI18nLoop
$datediff = $coupon->getExpirationDate()->getTimestamp() - $now;
$daysLeftBeforeExpiration = floor($datediff/(60*60*24));
$cleanedRules = array();
/** @var CouponRuleInterface $rule */
foreach ($rules->getRules() as $rule) {
$cleanedRules[] = $rule->getToolTip();
$cleanedConditions = array();
/** @var ConditionManagerInterface $condition */
foreach ($conditions->getConditions() as $condition) {
$cleanedConditions[] = $condition->getToolTip();
}
$loopResultRow->set("ID", $coupon->getId())
->set("IS_TRANSLATED", $coupon->getVirtualColumn('IS_TRANSLATED'))
@@ -151,7 +149,7 @@ class Coupon extends BaseI18nLoop
->set("IS_AVAILABLE_ON_SPECIAL_OFFERS", $coupon->getIsAvailableOnSpecialOffers())
->set("IS_ENABLED", $coupon->getIsEnabled())
->set("AMOUNT", $coupon->getAmount())
->set("APPLICATION_CONDITIONS", $cleanedRules)
->set("APPLICATION_CONDITIONS", $cleanedConditions)
->set("TOOLTIP", $couponManager->getToolTip())
->set("DAY_LEFT_BEFORE_EXPIRATION", $daysLeftBeforeExpiration)
->set("SERVICE_ID", $couponManager->getServiceId());

View File

@@ -27,6 +27,8 @@ use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\TranslatorInterface;
use Thelia\Condition\ConditionEvaluator;
use Thelia\Core\HttpFoundation\Request;
use Thelia\Coupon\Type\CouponInterface;
use Thelia\Model\Coupon;
@@ -35,13 +37,13 @@ use Thelia\Model\Coupon;
* Date: 8/19/13
* Time: 3:24 PM
*
* Allow a CouponManager class to be fed with relevant Thelia data
* Allow to assist in getting relevant data on the current application state
*
* @package Coupon
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
interface CouponAdapterInterface
interface AdapterInterface
{
/**
@@ -163,10 +165,17 @@ interface CouponAdapterInterface
public function getRequest();
/**
* Return Constraint Validator
* Return Condition Evaluator
*
* @return ConstraintValidator
* @return ConditionEvaluator
*/
public function getConstraintValidator();
public function getConditionEvaluator();
/**
* Return all available currencies
*
* @return array of Currency
*/
public function getAvailableCurrencies();
}

View File

@@ -27,26 +27,27 @@ use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\TranslatorInterface;
use Thelia\Constraint\ConstraintValidator;
use Thelia\Core\HttpFoundation\Request;
use Thelia\Core\Security\SecurityContext;
use Thelia\Coupon\Type\CouponInterface;
use Thelia\Model\Coupon;
use Thelia\Model\CouponQuery;
use Thelia\Cart\CartTrait;
use Thelia\Model\Currency;
use Thelia\Model\CurrencyQuery;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Allow to assist in getting relevant data on the current application state
*
* @package Coupon
* @author Guillaume MOREL <gmorel@openstudio.fr>
* @todo implements
*
*/
class CouponBaseAdapter implements CouponAdapterInterface
class BaseAdapter implements AdapterInterface
{
use CartTrait {
CartTrait::getCart as getCartFromTrait;
@@ -260,11 +261,24 @@ class CouponBaseAdapter implements CouponAdapterInterface
/**
* Return Constraint Validator
*
* @return ConstraintValidator
* @return ConditionValidator
*/
public function getConstraintValidator()
public function getConditionEvaluator()
{
return $this->container->get('thelia.constraint.validator');
return $this->container->get('thelia.condition.validator');
}
/**
* Return all available currencies
*
* @return array of Currency
*/
public function getAvailableCurrencies()
{
$currencies = CurrencyQuery::create();
return $currencies->find();
}
/**

View File

@@ -24,6 +24,7 @@
namespace Thelia\Coupon;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Thelia\Condition\ConditionManagerInterface;
use Thelia\Constraint\Rule\CouponRuleInterface;
use Thelia\Constraint\Rule\SerializableRule;
@@ -32,70 +33,62 @@ use Thelia\Constraint\Rule\SerializableRule;
* Date: 8/19/13
* Time: 3:24 PM
*
* Manage a set of CouponRuleInterface
* Manage a set of ConditionManagerInterface
*
* @package Coupon
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class CouponRuleCollection
class ConditionCollection
{
/** @var array Array of CouponRuleInterface */
protected $rules = array();
/** @var array Array of ConditionManagerInterface */
protected $conditions = array();
/**
* Constructor
* Get Conditions
*
* @return array Array of ConditionManagerInterface
*/
function __construct()
public function getConditions()
{
return $this->conditions;
}
/**
* Get Rules
* Add a ConditionManagerInterface to the Collection
*
* @return array Array of CouponRuleInterface
*/
public function getRules()
{
return $this->rules;
}
/**
* Add a CouponRuleInterface to the Collection
*
* @param CouponRuleInterface $rule Rule
* @param ConditionManagerInterface $condition Condition
*
* @return $this
*/
public function add(CouponRuleInterface $rule)
public function add(ConditionManagerInterface $condition)
{
$this->rules[] = $rule;
$this->conditions[] = $condition;
return $this;
}
/**
* Check if there is at least one rule in the collection
* Check if there is at least one condition in the collection
*
* @return bool
*/
public function isEmpty()
{
return (empty($this->rules));
return (empty($this->conditions));
}
/**
* Allow to compare 2 set of rules
* Allow to compare 2 set of conditions
*
* @return string Jsoned data
*/
public function __toString()
{
$arrayToSerialize = array();
/** @var CouponRuleInterface $rule */
foreach ($this->getRules() as $rule) {
$arrayToSerialize[] = $rule->getSerializableRule();
/** @var ConditionManagerInterface $condition */
foreach ($this->getConditions() as $condition) {
$arrayToSerialize[] = $condition->getSerializableCondition();
}
return json_encode($arrayToSerialize);

View File

@@ -25,13 +25,11 @@ namespace Thelia\Coupon;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Translation\Exception\NotFoundResourceException;
use Thelia\Constraint\ConstraintFactory;
use Thelia\Constraint\Rule\CouponRuleInterface;
use Thelia\Condition\ConditionFactory;
use Thelia\Coupon\Type\CouponInterface;
use Thelia\Exception\CouponExpiredException;
use Thelia\Exception\InvalidRuleException;
use Thelia\Exception\InvalidConditionException;
use Thelia\Model\Coupon;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
/**
* Created by JetBrains PhpStorm.
@@ -49,7 +47,7 @@ class CouponFactory
/** @var ContainerInterface Service Container */
protected $container = null;
/** @var CouponAdapterInterface Provide necessary value from Thelia*/
/** @var AdapterInterface Provide necessary value from Thelia*/
protected $adapter;
/**
@@ -57,7 +55,7 @@ class CouponFactory
*
* @param ContainerInterface $container Service container
*/
function __construct(ContainerInterface $container)
public function __construct(ContainerInterface $container)
{
$this->container = $container;
$this->adapter = $container->get('thelia.adapter');
@@ -69,6 +67,7 @@ class CouponFactory
* @param string $couponCode Coupon code ex: XMAS
*
* @throws \Thelia\Exception\CouponExpiredException
* @throws \Thelia\Exception\InvalidConditionException
* @throws \Symfony\Component\Translation\Exception\NotFoundResourceException
* @return CouponInterface ready to be processed
*/
@@ -87,9 +86,9 @@ class CouponFactory
}
/** @var CouponInterface $couponInterface */
$couponInterface = $this->buildCouponInterfacFromModel($couponModel);
if ($couponInterface->getRules()->isEmpty()) {
throw new InvalidRuleException(
$couponInterface = $this->buildCouponInterfaceFromModel($couponModel);
if ($couponInterface->getConditions()->isEmpty()) {
throw new InvalidConditionException(
get_class($couponInterface)
);
}
@@ -104,7 +103,7 @@ class CouponFactory
*
* @return CouponInterface ready to use CouponInterface object instance
*/
protected function buildCouponInterfacFromModel(Coupon $model)
protected function buildCouponInterfaceFromModel(Coupon $model)
{
$isCumulative = ($model->getIsCumulative() == 1 ? true : false);
$isRemovingPostage = ($model->getIsRemovingPostage() == 1 ? true : false);
@@ -130,13 +129,13 @@ class CouponFactory
$model->getExpirationDate()
);
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $this->container->get('thelia.constraint.factory');
$rules = $constraintFactory->unserializeCouponRuleCollection(
$model->getSerializedRules()
/** @var ConditionFactory $conditionFactory */
$conditionFactory = $this->container->get('thelia.condition.factory');
$conditions = $conditionFactory->unserializeConditionCollection(
$model->getSerializedConditions()
);
$couponManager->setRules($rules);
$couponManager->setConditions($conditions);
return $couponManager;
}

View File

@@ -24,7 +24,7 @@
namespace Thelia\Coupon;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Thelia\Constraint\Rule\CouponRuleInterface;
use Thelia\Condition\ConditionManagerInterface;
use Thelia\Coupon\Type\CouponInterface;
/**
@@ -40,7 +40,7 @@ use Thelia\Coupon\Type\CouponInterface;
*/
class CouponManager
{
/** @var CouponAdapterInterface Provides necessary value from Thelia */
/** @var AdapterInterface Provides necessary value from Thelia */
protected $adapter = null;
/** @var ContainerInterface Service Container */
@@ -52,15 +52,15 @@ class CouponManager
/** @var array Available Coupons (Services) */
protected $availableCoupons = array();
/** @var array Available Rules (Services) */
protected $availableRules = array();
/** @var array Available Conditions (Services) */
protected $availableConditions = array();
/**
* Constructor
*
* @param ContainerInterface $container Service container
*/
function __construct(ContainerInterface $container)
public function __construct(ContainerInterface $container)
{
$this->container = $container;
$this->adapter = $container->get('thelia.adapter');
@@ -191,29 +191,29 @@ class CouponManager
}
/**
* Build a CouponRuleInterface from data coming from a form
* Build a ConditionManagerInterface from data coming from a form
*
* @param string $ruleServiceId Rule service id you want to instantiate
* @param array $operators Rule Operator set by the Admin
* @param array $values Rule Values set by the Admin
* @param string $conditionServiceId Condition service id you want to instantiate
* @param array $operators Condition Operator set by the Admin
* @param array $values Condition Values set by the Admin
*
* @return CouponRuleInterface
* @return ConditionManagerInterface
*/
public function buildRuleFromForm($ruleServiceId, array $operators, array $values)
public function buildRuleFromForm($conditionServiceId, array $operators, array $values)
{
$rule = false;
$condition = false;
try {
if ($this->container->has($ruleServiceId)) {
/** @var CouponRuleInterface $rule */
$rule = $this->container->get($ruleServiceId);
$rule->populateFromForm($operators, $values);
if ($this->container->has($conditionServiceId)) {
/** @var ConditionManagerInterface $condition */
$condition = $this->container->get($conditionServiceId);
$condition->populateFromForm($operators, $values);
}
} catch (\InvalidArgumentException $e) {
}
return $rule;
return $condition;
}
/**
@@ -239,11 +239,11 @@ class CouponManager
/**
* Add an available ConstraintManager (Services)
*
* @param CouponRuleInterface $rule CouponRuleInterface
* @param ConditionManagerInterface $condition ConditionManagerInterface
*/
public function addAvailableRule(CouponRuleInterface $rule)
public function addAvailableRule(ConditionManagerInterface $condition)
{
$this->availableRules[] = $rule;
$this->availableConditions[] = $condition;
}
/**
@@ -251,8 +251,8 @@ class CouponManager
*
* @return array
*/
public function getAvailableRules()
public function getAvailableConditions()
{
return $this->availableRules;
return $this->availableConditions;
}
}

View File

@@ -30,20 +30,20 @@ namespace Thelia\Coupon;
*
* Manage how Coupons could interact with a Checkout
*
* @package Coupon
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class RuleOrganizer implements RuleOrganizerInterface
{
/**
* Organize CouponRuleInterface
* Organize ConditionManagerInterface
*
* @param array $rules Array of CouponRuleInterface
* @param array $conditions Array of ConditionManagerInterface
*
* @return array Array of CouponRuleInterface sorted
* @return array Array of ConditionManagerInterface sorted
*/
public function organize(array $rules)
public function organize(array $conditions)
{
// TODO: Implement organize() method.
}

View File

@@ -28,20 +28,20 @@ namespace Thelia\Coupon;
* Date: 8/19/13
* Time: 3:24 PM
*
* Manage how Coupons could interact with a Checkout
* Manage how Condition could interact with a Checkout
*
* @package Coupon
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
interface RuleOrganizerInterface
{
/**
* Organize CouponRuleInterface
* Organize ConditionManagerInterface
*
* @param array $rules Array of CouponRuleInterface
* @param array $conditions Array of ConditionManagerInterface
*
* @return array Array of CouponRuleInterface sorted
* @return array Array of ConditionManagerInterface sorted
*/
public function organize(array $rules);
public function organize(array $conditions);
}

View File

@@ -24,13 +24,12 @@
namespace Thelia\Coupon\Type;
use Symfony\Component\Intl\Exception\NotImplementedException;
use Thelia\Constraint\ConstraintManager;
use Thelia\Constraint\ConstraintValidator;
use Thelia\Condition\ConditionEvaluator;
use Thelia\Core\Translation\Translator;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Coupon\CouponRuleCollection;
use Thelia\Coupon\AdapterInterface;
use Thelia\Coupon\ConditionCollection;
use Thelia\Coupon\RuleOrganizerInterface;
use Thelia\Exception\InvalidRuleException;
use Thelia\Exception\InvalidConditionException;
/**
* Created by JetBrains PhpStorm.
@@ -45,7 +44,7 @@ use Thelia\Exception\InvalidRuleException;
*/
abstract class CouponAbstract implements CouponInterface
{
/** @var CouponAdapterInterface Provide necessary value from Thelia */
/** @var AdapterInterface Provide necessary value from Thelia */
protected $adapter = null;
/** @var Translator Service Translator */
@@ -54,12 +53,11 @@ abstract class CouponAbstract implements CouponInterface
/** @var RuleOrganizerInterface */
protected $organizer = null;
/** @var CouponRuleCollection Array of CouponRuleInterface */
protected $rules = null;
/** @var ConstraintValidator Constraint validator */
protected $constraintValidator = null;
/** @var ConditionCollection Array of ConditionManagerInterface */
protected $conditions = null;
/** @var ConditionEvaluator Condition validator */
protected $conditionEvaluator = null;
/** @var string Service Id */
@@ -106,19 +104,19 @@ abstract class CouponAbstract implements CouponInterface
/**
* Constructor
*
* @param CouponAdapterInterface $adapter Service adapter
* @param AdapterInterface $adapter Service adapter
*/
function __construct(CouponAdapterInterface $adapter)
public function __construct(AdapterInterface $adapter)
{
$this->adapter = $adapter;
$this->translator = $adapter->getTranslator();
$this->constraintValidator = $adapter->getConstraintValidator();
$this->conditionEvaluator = $adapter->getConditionEvaluator();
}
/**
* Set Rule Organizer
* Set Condition Organizer
*
* @param RuleOrganizerInterface $organizer Manage Rule groups (&& and ||)
* @param RuleOrganizerInterface $organizer Manage Condition groups (&& and ||)
*
* @return $this
*/
@@ -205,25 +203,25 @@ abstract class CouponAbstract implements CouponInterface
/**
* Return condition to validate the Coupon or not
*
* @return CouponRuleCollection
* @return ConditionCollection
*/
public function getRules()
public function getConditions()
{
return clone $this->rules;
return clone $this->conditions;
}
/**
* Replace the existing Rules by those given in parameter
* If one Rule is badly implemented, no Rule will be added
* Replace the existing Conditions by those given in parameter
* If one Condition is badly implemented, no Condition will be added
*
* @param CouponRuleCollection $rules CouponRuleInterface to add
* @param ConditionCollection $conditions ConditionManagerInterface to add
*
* @return $this
* @throws \Thelia\Exception\InvalidRuleException
* @throws \Thelia\Exception\InvalidConditionException
*/
public function setRules(CouponRuleCollection $rules)
public function setConditions(ConditionCollection $conditions)
{
$this->rules = $rules;
$this->conditions = $conditions;
return $this;
}
@@ -249,7 +247,6 @@ abstract class CouponAbstract implements CouponInterface
return $this->isAvailableOnSpecialOffers;
}
/**
* Check if Coupon has been disabled by admin
*
@@ -300,14 +297,14 @@ abstract class CouponAbstract implements CouponInterface
/**
* Check if the current Coupon is matching its conditions (Rules)
* Thelia variables are given by the CouponAdapterInterface
* Check if the current state of the application is matching this Coupon conditions
* Thelia variables are given by the AdapterInterface
*
* @return bool
*/
public function isMatching()
{
return $this->constraintValidator->isMatching($this->rules);
return $this->conditionEvaluator->isMatching($this->conditions);
}

View File

@@ -23,8 +23,8 @@
namespace Thelia\Coupon\Type;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Coupon\CouponRuleCollection;
use Thelia\Coupon\AdapterInterface;
use Thelia\Coupon\ConditionCollection;
/**
* Created by JetBrains PhpStorm.
@@ -140,20 +140,20 @@ interface CouponInterface
/**
* Return condition to validate the Coupon or not
*
* @return CouponRuleCollection A set of CouponRuleInterface
* @return ConditionCollection A set of ConditionManagerInterface
*/
public function getRules();
public function getConditions();
/**
* Replace the existing Rules by those given in parameter
* If one Rule is badly implemented, no Rule will be added
*
* @param CouponRuleCollection $rules CouponRuleInterface to add
* @param ConditionCollection $rules ConditionManagerInterface to add
*
* @return $this
* @throws \Thelia\Exception\InvalidRuleException
* @throws \Thelia\Exception\InvalidConditionException
*/
public function setRules(CouponRuleCollection $rules);
public function setConditions(ConditionCollection $rules);
/**
* Return Coupon expiration date
@@ -209,7 +209,7 @@ interface CouponInterface
/**
* Check if the current Coupon is matching its conditions (Rules)
* Thelia variables are given by the CouponAdapterInterface
* Thelia variables are given by the AdapterInterface
*
* @return bool
*/

View File

@@ -23,7 +23,6 @@
namespace Thelia\Coupon\Type;
use Thelia\Constraint\ConstraintManager;
use Thelia\Coupon\Type\CouponAbstract;
/**

View File

@@ -23,7 +23,6 @@
namespace Thelia\Coupon\Type;
use Thelia\Coupon\CouponAdapterInterface;
use Thelia\Coupon\Type\CouponAbstract;
use Thelia\Exception\MissingAdapterException;

View File

@@ -30,23 +30,23 @@ use Thelia\Log\Tlog;
* Date: 8/19/13
* Time: 3:24 PM
*
* Thrown when a Rule is badly implemented
* Thrown when a Condition is badly implemented
*
* @package Coupon
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class InvalidRuleException extends \RuntimeException
class InvalidConditionException extends \RuntimeException
{
/**
* InvalidRuleOperatorException thrown when a Rule is badly implemented
* InvalidConditionOperatorException thrown when a Condition is badly implemented
*
* @param string $className Class name
*/
public function __construct($className)
{
$message = 'Invalid Rule given to ' . $className;
$message = 'Invalid Condition given to ' . $className;
Tlog::getInstance()->addError($message);
parent::__construct($message);

View File

@@ -30,24 +30,23 @@ use Thelia\Log\Tlog;
* Date: 8/19/13
* Time: 3:24 PM
*
* Thrown when a Rule receive an invalid Parameter
* Thrown when a Condition receive an invalid Operator
*
* @package Coupon
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class InvalidRuleValueException extends \RuntimeException
class InvalidConditionOperatorException extends \RuntimeException
{
/**
* InvalidRuleValueException thrown when a Rule is given a bad Parameter
* InvalidConditionOperatorException thrown when a Condition is given a bad Operator
*
* @param string $className Class name
* @param string $parameter array key parameter
*/
public function __construct($className, $parameter)
{
$message = 'Invalid Parameter for Rule ' . $className . ' on parameter ' . $parameter;
$message = 'Invalid Operator for Condition ' . $className . ' on parameter ' . $parameter;
Tlog::getInstance()->addError($message);
parent::__construct($message);

View File

@@ -30,16 +30,16 @@ use Thelia\Log\Tlog;
* Date: 8/19/13
* Time: 3:24 PM
*
* Thrown when a Rule receive an invalid Operator
* Thrown when a Condition receives an invalid Parameter
*
* @package Coupon
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class InvalidRuleOperatorException extends \RuntimeException
class InvalidConditionValueException extends \RuntimeException
{
/**
* InvalidRuleOperatorException thrown when a Rule is given a bad Operator
* InvalidConditionValueException thrown when a Condition is given a bad Parameter
*
* @param string $className Class name
* @param string $parameter array key parameter
@@ -47,7 +47,7 @@ class InvalidRuleOperatorException extends \RuntimeException
public function __construct($className, $parameter)
{
$message = 'Invalid Operator for Rule ' . $className . ' on parameter ' . $parameter;
$message = 'Invalid Parameter for Condition ' . $className . ' on parameter ' . $parameter;
Tlog::getInstance()->addError($message);
parent::__construct($message);

View File

@@ -87,7 +87,7 @@ class CouponCreationForm extends BaseForm
)
)
->add(
'effect',
'type',
'text',
array(
'constraints' => array(

View File

@@ -82,12 +82,6 @@ abstract class AttributeTemplate implements ActiveRecordInterface
*/
protected $position;
/**
* The value for the attribute_templatecol field.
* @var string
*/
protected $attribute_templatecol;
/**
* The value for the created_at field.
* @var string
@@ -416,17 +410,6 @@ abstract class AttributeTemplate implements ActiveRecordInterface
return $this->position;
}
/**
* Get the [attribute_templatecol] column value.
*
* @return string
*/
public function getAttributeTemplatecol()
{
return $this->attribute_templatecol;
}
/**
* Get the [optionally formatted] temporal [created_at] column value.
*
@@ -559,27 +542,6 @@ abstract class AttributeTemplate implements ActiveRecordInterface
return $this;
} // setPosition()
/**
* Set the value of [attribute_templatecol] column.
*
* @param string $v new value
* @return \Thelia\Model\AttributeTemplate The current object (for fluent API support)
*/
public function setAttributeTemplatecol($v)
{
if ($v !== null) {
$v = (string) $v;
}
if ($this->attribute_templatecol !== $v) {
$this->attribute_templatecol = $v;
$this->modifiedColumns[] = AttributeTemplateTableMap::ATTRIBUTE_TEMPLATECOL;
}
return $this;
} // setAttributeTemplatecol()
/**
* Sets the value of [created_at] column to a normalized version of the date/time value specified.
*
@@ -671,16 +633,13 @@ abstract class AttributeTemplate implements ActiveRecordInterface
$col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : AttributeTemplateTableMap::translateFieldName('Position', TableMap::TYPE_PHPNAME, $indexType)];
$this->position = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : AttributeTemplateTableMap::translateFieldName('AttributeTemplatecol', TableMap::TYPE_PHPNAME, $indexType)];
$this->attribute_templatecol = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : AttributeTemplateTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : AttributeTemplateTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
if ($col === '0000-00-00 00:00:00') {
$col = null;
}
$this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : AttributeTemplateTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)];
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : AttributeTemplateTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)];
if ($col === '0000-00-00 00:00:00') {
$col = null;
}
@@ -693,7 +652,7 @@ abstract class AttributeTemplate implements ActiveRecordInterface
$this->ensureConsistency();
}
return $startcol + 7; // 7 = AttributeTemplateTableMap::NUM_HYDRATE_COLUMNS.
return $startcol + 6; // 6 = AttributeTemplateTableMap::NUM_HYDRATE_COLUMNS.
} catch (Exception $e) {
throw new PropelException("Error populating \Thelia\Model\AttributeTemplate object", 0, $e);
@@ -952,9 +911,6 @@ abstract class AttributeTemplate implements ActiveRecordInterface
if ($this->isColumnModified(AttributeTemplateTableMap::POSITION)) {
$modifiedColumns[':p' . $index++] = 'POSITION';
}
if ($this->isColumnModified(AttributeTemplateTableMap::ATTRIBUTE_TEMPLATECOL)) {
$modifiedColumns[':p' . $index++] = 'ATTRIBUTE_TEMPLATECOL';
}
if ($this->isColumnModified(AttributeTemplateTableMap::CREATED_AT)) {
$modifiedColumns[':p' . $index++] = 'CREATED_AT';
}
@@ -984,9 +940,6 @@ abstract class AttributeTemplate implements ActiveRecordInterface
case 'POSITION':
$stmt->bindValue($identifier, $this->position, PDO::PARAM_INT);
break;
case 'ATTRIBUTE_TEMPLATECOL':
$stmt->bindValue($identifier, $this->attribute_templatecol, PDO::PARAM_STR);
break;
case 'CREATED_AT':
$stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR);
break;
@@ -1068,12 +1021,9 @@ abstract class AttributeTemplate implements ActiveRecordInterface
return $this->getPosition();
break;
case 4:
return $this->getAttributeTemplatecol();
break;
case 5:
return $this->getCreatedAt();
break;
case 6:
case 5:
return $this->getUpdatedAt();
break;
default:
@@ -1109,9 +1059,8 @@ abstract class AttributeTemplate implements ActiveRecordInterface
$keys[1] => $this->getAttributeId(),
$keys[2] => $this->getTemplateId(),
$keys[3] => $this->getPosition(),
$keys[4] => $this->getAttributeTemplatecol(),
$keys[5] => $this->getCreatedAt(),
$keys[6] => $this->getUpdatedAt(),
$keys[4] => $this->getCreatedAt(),
$keys[5] => $this->getUpdatedAt(),
);
$virtualColumns = $this->virtualColumns;
foreach($virtualColumns as $key => $virtualColumn)
@@ -1173,12 +1122,9 @@ abstract class AttributeTemplate implements ActiveRecordInterface
$this->setPosition($value);
break;
case 4:
$this->setAttributeTemplatecol($value);
break;
case 5:
$this->setCreatedAt($value);
break;
case 6:
case 5:
$this->setUpdatedAt($value);
break;
} // switch()
@@ -1209,9 +1155,8 @@ abstract class AttributeTemplate implements ActiveRecordInterface
if (array_key_exists($keys[1], $arr)) $this->setAttributeId($arr[$keys[1]]);
if (array_key_exists($keys[2], $arr)) $this->setTemplateId($arr[$keys[2]]);
if (array_key_exists($keys[3], $arr)) $this->setPosition($arr[$keys[3]]);
if (array_key_exists($keys[4], $arr)) $this->setAttributeTemplatecol($arr[$keys[4]]);
if (array_key_exists($keys[5], $arr)) $this->setCreatedAt($arr[$keys[5]]);
if (array_key_exists($keys[6], $arr)) $this->setUpdatedAt($arr[$keys[6]]);
if (array_key_exists($keys[4], $arr)) $this->setCreatedAt($arr[$keys[4]]);
if (array_key_exists($keys[5], $arr)) $this->setUpdatedAt($arr[$keys[5]]);
}
/**
@@ -1227,7 +1172,6 @@ abstract class AttributeTemplate implements ActiveRecordInterface
if ($this->isColumnModified(AttributeTemplateTableMap::ATTRIBUTE_ID)) $criteria->add(AttributeTemplateTableMap::ATTRIBUTE_ID, $this->attribute_id);
if ($this->isColumnModified(AttributeTemplateTableMap::TEMPLATE_ID)) $criteria->add(AttributeTemplateTableMap::TEMPLATE_ID, $this->template_id);
if ($this->isColumnModified(AttributeTemplateTableMap::POSITION)) $criteria->add(AttributeTemplateTableMap::POSITION, $this->position);
if ($this->isColumnModified(AttributeTemplateTableMap::ATTRIBUTE_TEMPLATECOL)) $criteria->add(AttributeTemplateTableMap::ATTRIBUTE_TEMPLATECOL, $this->attribute_templatecol);
if ($this->isColumnModified(AttributeTemplateTableMap::CREATED_AT)) $criteria->add(AttributeTemplateTableMap::CREATED_AT, $this->created_at);
if ($this->isColumnModified(AttributeTemplateTableMap::UPDATED_AT)) $criteria->add(AttributeTemplateTableMap::UPDATED_AT, $this->updated_at);
@@ -1296,7 +1240,6 @@ abstract class AttributeTemplate implements ActiveRecordInterface
$copyObj->setAttributeId($this->getAttributeId());
$copyObj->setTemplateId($this->getTemplateId());
$copyObj->setPosition($this->getPosition());
$copyObj->setAttributeTemplatecol($this->getAttributeTemplatecol());
$copyObj->setCreatedAt($this->getCreatedAt());
$copyObj->setUpdatedAt($this->getUpdatedAt());
if ($makeNew) {
@@ -1438,7 +1381,6 @@ abstract class AttributeTemplate implements ActiveRecordInterface
$this->attribute_id = null;
$this->template_id = null;
$this->position = null;
$this->attribute_templatecol = null;
$this->created_at = null;
$this->updated_at = null;
$this->alreadyInSave = false;

View File

@@ -25,7 +25,6 @@ use Thelia\Model\Map\AttributeTemplateTableMap;
* @method ChildAttributeTemplateQuery orderByAttributeId($order = Criteria::ASC) Order by the attribute_id column
* @method ChildAttributeTemplateQuery orderByTemplateId($order = Criteria::ASC) Order by the template_id column
* @method ChildAttributeTemplateQuery orderByPosition($order = Criteria::ASC) Order by the position column
* @method ChildAttributeTemplateQuery orderByAttributeTemplatecol($order = Criteria::ASC) Order by the attribute_templatecol column
* @method ChildAttributeTemplateQuery orderByCreatedAt($order = Criteria::ASC) Order by the created_at column
* @method ChildAttributeTemplateQuery orderByUpdatedAt($order = Criteria::ASC) Order by the updated_at column
*
@@ -33,7 +32,6 @@ use Thelia\Model\Map\AttributeTemplateTableMap;
* @method ChildAttributeTemplateQuery groupByAttributeId() Group by the attribute_id column
* @method ChildAttributeTemplateQuery groupByTemplateId() Group by the template_id column
* @method ChildAttributeTemplateQuery groupByPosition() Group by the position column
* @method ChildAttributeTemplateQuery groupByAttributeTemplatecol() Group by the attribute_templatecol column
* @method ChildAttributeTemplateQuery groupByCreatedAt() Group by the created_at column
* @method ChildAttributeTemplateQuery groupByUpdatedAt() Group by the updated_at column
*
@@ -56,7 +54,6 @@ use Thelia\Model\Map\AttributeTemplateTableMap;
* @method ChildAttributeTemplate findOneByAttributeId(int $attribute_id) Return the first ChildAttributeTemplate filtered by the attribute_id column
* @method ChildAttributeTemplate findOneByTemplateId(int $template_id) Return the first ChildAttributeTemplate filtered by the template_id column
* @method ChildAttributeTemplate findOneByPosition(int $position) Return the first ChildAttributeTemplate filtered by the position column
* @method ChildAttributeTemplate findOneByAttributeTemplatecol(string $attribute_templatecol) Return the first ChildAttributeTemplate filtered by the attribute_templatecol column
* @method ChildAttributeTemplate findOneByCreatedAt(string $created_at) Return the first ChildAttributeTemplate filtered by the created_at column
* @method ChildAttributeTemplate findOneByUpdatedAt(string $updated_at) Return the first ChildAttributeTemplate filtered by the updated_at column
*
@@ -64,7 +61,6 @@ use Thelia\Model\Map\AttributeTemplateTableMap;
* @method array findByAttributeId(int $attribute_id) Return ChildAttributeTemplate objects filtered by the attribute_id column
* @method array findByTemplateId(int $template_id) Return ChildAttributeTemplate objects filtered by the template_id column
* @method array findByPosition(int $position) Return ChildAttributeTemplate objects filtered by the position column
* @method array findByAttributeTemplatecol(string $attribute_templatecol) Return ChildAttributeTemplate objects filtered by the attribute_templatecol column
* @method array findByCreatedAt(string $created_at) Return ChildAttributeTemplate objects filtered by the created_at column
* @method array findByUpdatedAt(string $updated_at) Return ChildAttributeTemplate objects filtered by the updated_at column
*
@@ -155,7 +151,7 @@ abstract class AttributeTemplateQuery extends ModelCriteria
*/
protected function findPkSimple($key, $con)
{
$sql = 'SELECT ID, ATTRIBUTE_ID, TEMPLATE_ID, POSITION, ATTRIBUTE_TEMPLATECOL, CREATED_AT, UPDATED_AT FROM attribute_template WHERE ID = :p0';
$sql = 'SELECT ID, ATTRIBUTE_ID, TEMPLATE_ID, POSITION, CREATED_AT, UPDATED_AT FROM attribute_template WHERE ID = :p0';
try {
$stmt = $con->prepare($sql);
$stmt->bindValue(':p0', $key, PDO::PARAM_INT);
@@ -412,35 +408,6 @@ abstract class AttributeTemplateQuery extends ModelCriteria
return $this->addUsingAlias(AttributeTemplateTableMap::POSITION, $position, $comparison);
}
/**
* Filter the query on the attribute_templatecol column
*
* Example usage:
* <code>
* $query->filterByAttributeTemplatecol('fooValue'); // WHERE attribute_templatecol = 'fooValue'
* $query->filterByAttributeTemplatecol('%fooValue%'); // WHERE attribute_templatecol LIKE '%fooValue%'
* </code>
*
* @param string $attributeTemplatecol The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildAttributeTemplateQuery The current query, for fluid interface
*/
public function filterByAttributeTemplatecol($attributeTemplatecol = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($attributeTemplatecol)) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $attributeTemplatecol)) {
$attributeTemplatecol = str_replace('*', '%', $attributeTemplatecol);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(AttributeTemplateTableMap::ATTRIBUTE_TEMPLATECOL, $attributeTemplatecol, $comparison);
}
/**
* Filter the query on the created_at column
*

View File

@@ -84,15 +84,9 @@ abstract class Coupon implements ActiveRecordInterface
*/
protected $amount;
/**
* The value for the is_used field.
* @var int
*/
protected $is_used;
/**
* The value for the is_enabled field.
* @var int
* @var boolean
*/
protected $is_enabled;
@@ -102,36 +96,42 @@ abstract class Coupon implements ActiveRecordInterface
*/
protected $expiration_date;
/**
* The value for the serialized_rules field.
* @var string
*/
protected $serialized_rules;
/**
* The value for the is_cumulative field.
* @var int
*/
protected $is_cumulative;
/**
* The value for the is_removing_postage field.
* @var int
*/
protected $is_removing_postage;
/**
* The value for the max_usage field.
* @var int
*/
protected $max_usage;
/**
* The value for the is_cumulative field.
* @var boolean
*/
protected $is_cumulative;
/**
* The value for the is_removing_postage field.
* @var boolean
*/
protected $is_removing_postage;
/**
* The value for the is_available_on_special_offers field.
* @var boolean
*/
protected $is_available_on_special_offers;
/**
* The value for the is_used field.
* @var boolean
*/
protected $is_used;
/**
* The value for the serialized_conditions field.
* @var string
*/
protected $serialized_conditions;
/**
* The value for the created_at field.
* @var string
@@ -516,21 +516,10 @@ abstract class Coupon implements ActiveRecordInterface
return $this->amount;
}
/**
* Get the [is_used] column value.
*
* @return int
*/
public function getIsUsed()
{
return $this->is_used;
}
/**
* Get the [is_enabled] column value.
*
* @return int
* @return boolean
*/
public function getIsEnabled()
{
@@ -558,39 +547,6 @@ abstract class Coupon implements ActiveRecordInterface
}
}
/**
* Get the [serialized_rules] column value.
*
* @return string
*/
public function getSerializedRules()
{
return $this->serialized_rules;
}
/**
* Get the [is_cumulative] column value.
*
* @return int
*/
public function getIsCumulative()
{
return $this->is_cumulative;
}
/**
* Get the [is_removing_postage] column value.
*
* @return int
*/
public function getIsRemovingPostage()
{
return $this->is_removing_postage;
}
/**
* Get the [max_usage] column value.
*
@@ -602,6 +558,28 @@ abstract class Coupon implements ActiveRecordInterface
return $this->max_usage;
}
/**
* Get the [is_cumulative] column value.
*
* @return boolean
*/
public function getIsCumulative()
{
return $this->is_cumulative;
}
/**
* Get the [is_removing_postage] column value.
*
* @return boolean
*/
public function getIsRemovingPostage()
{
return $this->is_removing_postage;
}
/**
* Get the [is_available_on_special_offers] column value.
*
@@ -613,6 +591,28 @@ abstract class Coupon implements ActiveRecordInterface
return $this->is_available_on_special_offers;
}
/**
* Get the [is_used] column value.
*
* @return boolean
*/
public function getIsUsed()
{
return $this->is_used;
}
/**
* Get the [serialized_conditions] column value.
*
* @return string
*/
public function getSerializedConditions()
{
return $this->serialized_conditions;
}
/**
* Get the [optionally formatted] temporal [created_at] column value.
*
@@ -749,36 +749,23 @@ abstract class Coupon implements ActiveRecordInterface
} // setAmount()
/**
* Set the value of [is_used] column.
* Sets the value of the [is_enabled] column.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
*
* @param int $v new value
* @return \Thelia\Model\Coupon The current object (for fluent API support)
*/
public function setIsUsed($v)
{
if ($v !== null) {
$v = (int) $v;
}
if ($this->is_used !== $v) {
$this->is_used = $v;
$this->modifiedColumns[] = CouponTableMap::IS_USED;
}
return $this;
} // setIsUsed()
/**
* Set the value of [is_enabled] column.
*
* @param int $v new value
* @param boolean|integer|string $v The new value
* @return \Thelia\Model\Coupon The current object (for fluent API support)
*/
public function setIsEnabled($v)
{
if ($v !== null) {
$v = (int) $v;
if (is_string($v)) {
$v = in_array(strtolower($v), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
} else {
$v = (boolean) $v;
}
}
if ($this->is_enabled !== $v) {
@@ -811,69 +798,6 @@ abstract class Coupon implements ActiveRecordInterface
return $this;
} // setExpirationDate()
/**
* Set the value of [serialized_rules] column.
*
* @param string $v new value
* @return \Thelia\Model\Coupon The current object (for fluent API support)
*/
public function setSerializedRules($v)
{
if ($v !== null) {
$v = (string) $v;
}
if ($this->serialized_rules !== $v) {
$this->serialized_rules = $v;
$this->modifiedColumns[] = CouponTableMap::SERIALIZED_RULES;
}
return $this;
} // setSerializedRules()
/**
* Set the value of [is_cumulative] column.
*
* @param int $v new value
* @return \Thelia\Model\Coupon The current object (for fluent API support)
*/
public function setIsCumulative($v)
{
if ($v !== null) {
$v = (int) $v;
}
if ($this->is_cumulative !== $v) {
$this->is_cumulative = $v;
$this->modifiedColumns[] = CouponTableMap::IS_CUMULATIVE;
}
return $this;
} // setIsCumulative()
/**
* Set the value of [is_removing_postage] column.
*
* @param int $v new value
* @return \Thelia\Model\Coupon The current object (for fluent API support)
*/
public function setIsRemovingPostage($v)
{
if ($v !== null) {
$v = (int) $v;
}
if ($this->is_removing_postage !== $v) {
$this->is_removing_postage = $v;
$this->modifiedColumns[] = CouponTableMap::IS_REMOVING_POSTAGE;
}
return $this;
} // setIsRemovingPostage()
/**
* Set the value of [max_usage] column.
*
@@ -895,6 +819,64 @@ abstract class Coupon implements ActiveRecordInterface
return $this;
} // setMaxUsage()
/**
* Sets the value of the [is_cumulative] column.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
*
* @param boolean|integer|string $v The new value
* @return \Thelia\Model\Coupon The current object (for fluent API support)
*/
public function setIsCumulative($v)
{
if ($v !== null) {
if (is_string($v)) {
$v = in_array(strtolower($v), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
} else {
$v = (boolean) $v;
}
}
if ($this->is_cumulative !== $v) {
$this->is_cumulative = $v;
$this->modifiedColumns[] = CouponTableMap::IS_CUMULATIVE;
}
return $this;
} // setIsCumulative()
/**
* Sets the value of the [is_removing_postage] column.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
*
* @param boolean|integer|string $v The new value
* @return \Thelia\Model\Coupon The current object (for fluent API support)
*/
public function setIsRemovingPostage($v)
{
if ($v !== null) {
if (is_string($v)) {
$v = in_array(strtolower($v), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
} else {
$v = (boolean) $v;
}
}
if ($this->is_removing_postage !== $v) {
$this->is_removing_postage = $v;
$this->modifiedColumns[] = CouponTableMap::IS_REMOVING_POSTAGE;
}
return $this;
} // setIsRemovingPostage()
/**
* Sets the value of the [is_available_on_special_offers] column.
* Non-boolean arguments are converted using the following rules:
@@ -924,6 +906,56 @@ abstract class Coupon implements ActiveRecordInterface
return $this;
} // setIsAvailableOnSpecialOffers()
/**
* Sets the value of the [is_used] column.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
*
* @param boolean|integer|string $v The new value
* @return \Thelia\Model\Coupon The current object (for fluent API support)
*/
public function setIsUsed($v)
{
if ($v !== null) {
if (is_string($v)) {
$v = in_array(strtolower($v), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
} else {
$v = (boolean) $v;
}
}
if ($this->is_used !== $v) {
$this->is_used = $v;
$this->modifiedColumns[] = CouponTableMap::IS_USED;
}
return $this;
} // setIsUsed()
/**
* Set the value of [serialized_conditions] column.
*
* @param string $v new value
* @return \Thelia\Model\Coupon The current object (for fluent API support)
*/
public function setSerializedConditions($v)
{
if ($v !== null) {
$v = (string) $v;
}
if ($this->serialized_conditions !== $v) {
$this->serialized_conditions = $v;
$this->modifiedColumns[] = CouponTableMap::SERIALIZED_CONDITIONS;
}
return $this;
} // setSerializedConditions()
/**
* Sets the value of [created_at] column to a normalized version of the date/time value specified.
*
@@ -1040,33 +1072,33 @@ abstract class Coupon implements ActiveRecordInterface
$col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CouponTableMap::translateFieldName('Amount', TableMap::TYPE_PHPNAME, $indexType)];
$this->amount = (null !== $col) ? (double) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CouponTableMap::translateFieldName('IsUsed', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_used = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CouponTableMap::translateFieldName('IsEnabled', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_enabled = (null !== $col) ? (boolean) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CouponTableMap::translateFieldName('IsEnabled', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_enabled = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : CouponTableMap::translateFieldName('ExpirationDate', TableMap::TYPE_PHPNAME, $indexType)];
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CouponTableMap::translateFieldName('ExpirationDate', TableMap::TYPE_PHPNAME, $indexType)];
if ($col === '0000-00-00 00:00:00') {
$col = null;
}
$this->expiration_date = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : CouponTableMap::translateFieldName('SerializedRules', TableMap::TYPE_PHPNAME, $indexType)];
$this->serialized_rules = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 8 + $startcol : CouponTableMap::translateFieldName('IsCumulative', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_cumulative = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 9 + $startcol : CouponTableMap::translateFieldName('IsRemovingPostage', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_removing_postage = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 10 + $startcol : CouponTableMap::translateFieldName('MaxUsage', TableMap::TYPE_PHPNAME, $indexType)];
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : CouponTableMap::translateFieldName('MaxUsage', TableMap::TYPE_PHPNAME, $indexType)];
$this->max_usage = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 11 + $startcol : CouponTableMap::translateFieldName('IsAvailableOnSpecialOffers', TableMap::TYPE_PHPNAME, $indexType)];
$col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : CouponTableMap::translateFieldName('IsCumulative', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_cumulative = (null !== $col) ? (boolean) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 8 + $startcol : CouponTableMap::translateFieldName('IsRemovingPostage', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_removing_postage = (null !== $col) ? (boolean) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 9 + $startcol : CouponTableMap::translateFieldName('IsAvailableOnSpecialOffers', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_available_on_special_offers = (null !== $col) ? (boolean) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 10 + $startcol : CouponTableMap::translateFieldName('IsUsed', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_used = (null !== $col) ? (boolean) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 11 + $startcol : CouponTableMap::translateFieldName('SerializedConditions', TableMap::TYPE_PHPNAME, $indexType)];
$this->serialized_conditions = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 12 + $startcol : CouponTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
if ($col === '0000-00-00 00:00:00') {
$col = null;
@@ -1368,17 +1400,14 @@ abstract class Coupon implements ActiveRecordInterface
if ($this->isColumnModified(CouponTableMap::AMOUNT)) {
$modifiedColumns[':p' . $index++] = 'AMOUNT';
}
if ($this->isColumnModified(CouponTableMap::IS_USED)) {
$modifiedColumns[':p' . $index++] = 'IS_USED';
}
if ($this->isColumnModified(CouponTableMap::IS_ENABLED)) {
$modifiedColumns[':p' . $index++] = 'IS_ENABLED';
}
if ($this->isColumnModified(CouponTableMap::EXPIRATION_DATE)) {
$modifiedColumns[':p' . $index++] = 'EXPIRATION_DATE';
}
if ($this->isColumnModified(CouponTableMap::SERIALIZED_RULES)) {
$modifiedColumns[':p' . $index++] = 'SERIALIZED_RULES';
if ($this->isColumnModified(CouponTableMap::MAX_USAGE)) {
$modifiedColumns[':p' . $index++] = 'MAX_USAGE';
}
if ($this->isColumnModified(CouponTableMap::IS_CUMULATIVE)) {
$modifiedColumns[':p' . $index++] = 'IS_CUMULATIVE';
@@ -1386,12 +1415,15 @@ abstract class Coupon implements ActiveRecordInterface
if ($this->isColumnModified(CouponTableMap::IS_REMOVING_POSTAGE)) {
$modifiedColumns[':p' . $index++] = 'IS_REMOVING_POSTAGE';
}
if ($this->isColumnModified(CouponTableMap::MAX_USAGE)) {
$modifiedColumns[':p' . $index++] = 'MAX_USAGE';
}
if ($this->isColumnModified(CouponTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS)) {
$modifiedColumns[':p' . $index++] = 'IS_AVAILABLE_ON_SPECIAL_OFFERS';
}
if ($this->isColumnModified(CouponTableMap::IS_USED)) {
$modifiedColumns[':p' . $index++] = 'IS_USED';
}
if ($this->isColumnModified(CouponTableMap::SERIALIZED_CONDITIONS)) {
$modifiedColumns[':p' . $index++] = 'SERIALIZED_CONDITIONS';
}
if ($this->isColumnModified(CouponTableMap::CREATED_AT)) {
$modifiedColumns[':p' . $index++] = 'CREATED_AT';
}
@@ -1424,30 +1456,30 @@ abstract class Coupon implements ActiveRecordInterface
case 'AMOUNT':
$stmt->bindValue($identifier, $this->amount, PDO::PARAM_STR);
break;
case 'IS_USED':
$stmt->bindValue($identifier, $this->is_used, PDO::PARAM_INT);
break;
case 'IS_ENABLED':
$stmt->bindValue($identifier, $this->is_enabled, PDO::PARAM_INT);
$stmt->bindValue($identifier, (int) $this->is_enabled, PDO::PARAM_INT);
break;
case 'EXPIRATION_DATE':
$stmt->bindValue($identifier, $this->expiration_date ? $this->expiration_date->format("Y-m-d H:i:s") : null, PDO::PARAM_STR);
break;
case 'SERIALIZED_RULES':
$stmt->bindValue($identifier, $this->serialized_rules, PDO::PARAM_STR);
break;
case 'IS_CUMULATIVE':
$stmt->bindValue($identifier, $this->is_cumulative, PDO::PARAM_INT);
break;
case 'IS_REMOVING_POSTAGE':
$stmt->bindValue($identifier, $this->is_removing_postage, PDO::PARAM_INT);
break;
case 'MAX_USAGE':
$stmt->bindValue($identifier, $this->max_usage, PDO::PARAM_INT);
break;
case 'IS_CUMULATIVE':
$stmt->bindValue($identifier, (int) $this->is_cumulative, PDO::PARAM_INT);
break;
case 'IS_REMOVING_POSTAGE':
$stmt->bindValue($identifier, (int) $this->is_removing_postage, PDO::PARAM_INT);
break;
case 'IS_AVAILABLE_ON_SPECIAL_OFFERS':
$stmt->bindValue($identifier, (int) $this->is_available_on_special_offers, PDO::PARAM_INT);
break;
case 'IS_USED':
$stmt->bindValue($identifier, (int) $this->is_used, PDO::PARAM_INT);
break;
case 'SERIALIZED_CONDITIONS':
$stmt->bindValue($identifier, $this->serialized_conditions, PDO::PARAM_STR);
break;
case 'CREATED_AT':
$stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR);
break;
@@ -1532,29 +1564,29 @@ abstract class Coupon implements ActiveRecordInterface
return $this->getAmount();
break;
case 4:
return $this->getIsUsed();
break;
case 5:
return $this->getIsEnabled();
break;
case 6:
case 5:
return $this->getExpirationDate();
break;
case 7:
return $this->getSerializedRules();
break;
case 8:
return $this->getIsCumulative();
break;
case 9:
return $this->getIsRemovingPostage();
break;
case 10:
case 6:
return $this->getMaxUsage();
break;
case 11:
case 7:
return $this->getIsCumulative();
break;
case 8:
return $this->getIsRemovingPostage();
break;
case 9:
return $this->getIsAvailableOnSpecialOffers();
break;
case 10:
return $this->getIsUsed();
break;
case 11:
return $this->getSerializedConditions();
break;
case 12:
return $this->getCreatedAt();
break;
@@ -1597,14 +1629,14 @@ abstract class Coupon implements ActiveRecordInterface
$keys[1] => $this->getCode(),
$keys[2] => $this->getType(),
$keys[3] => $this->getAmount(),
$keys[4] => $this->getIsUsed(),
$keys[5] => $this->getIsEnabled(),
$keys[6] => $this->getExpirationDate(),
$keys[7] => $this->getSerializedRules(),
$keys[8] => $this->getIsCumulative(),
$keys[9] => $this->getIsRemovingPostage(),
$keys[10] => $this->getMaxUsage(),
$keys[11] => $this->getIsAvailableOnSpecialOffers(),
$keys[4] => $this->getIsEnabled(),
$keys[5] => $this->getExpirationDate(),
$keys[6] => $this->getMaxUsage(),
$keys[7] => $this->getIsCumulative(),
$keys[8] => $this->getIsRemovingPostage(),
$keys[9] => $this->getIsAvailableOnSpecialOffers(),
$keys[10] => $this->getIsUsed(),
$keys[11] => $this->getSerializedConditions(),
$keys[12] => $this->getCreatedAt(),
$keys[13] => $this->getUpdatedAt(),
$keys[14] => $this->getVersion(),
@@ -1669,29 +1701,29 @@ abstract class Coupon implements ActiveRecordInterface
$this->setAmount($value);
break;
case 4:
$this->setIsUsed($value);
break;
case 5:
$this->setIsEnabled($value);
break;
case 6:
case 5:
$this->setExpirationDate($value);
break;
case 7:
$this->setSerializedRules($value);
break;
case 8:
$this->setIsCumulative($value);
break;
case 9:
$this->setIsRemovingPostage($value);
break;
case 10:
case 6:
$this->setMaxUsage($value);
break;
case 11:
case 7:
$this->setIsCumulative($value);
break;
case 8:
$this->setIsRemovingPostage($value);
break;
case 9:
$this->setIsAvailableOnSpecialOffers($value);
break;
case 10:
$this->setIsUsed($value);
break;
case 11:
$this->setSerializedConditions($value);
break;
case 12:
$this->setCreatedAt($value);
break;
@@ -1729,14 +1761,14 @@ abstract class Coupon implements ActiveRecordInterface
if (array_key_exists($keys[1], $arr)) $this->setCode($arr[$keys[1]]);
if (array_key_exists($keys[2], $arr)) $this->setType($arr[$keys[2]]);
if (array_key_exists($keys[3], $arr)) $this->setAmount($arr[$keys[3]]);
if (array_key_exists($keys[4], $arr)) $this->setIsUsed($arr[$keys[4]]);
if (array_key_exists($keys[5], $arr)) $this->setIsEnabled($arr[$keys[5]]);
if (array_key_exists($keys[6], $arr)) $this->setExpirationDate($arr[$keys[6]]);
if (array_key_exists($keys[7], $arr)) $this->setSerializedRules($arr[$keys[7]]);
if (array_key_exists($keys[8], $arr)) $this->setIsCumulative($arr[$keys[8]]);
if (array_key_exists($keys[9], $arr)) $this->setIsRemovingPostage($arr[$keys[9]]);
if (array_key_exists($keys[10], $arr)) $this->setMaxUsage($arr[$keys[10]]);
if (array_key_exists($keys[11], $arr)) $this->setIsAvailableOnSpecialOffers($arr[$keys[11]]);
if (array_key_exists($keys[4], $arr)) $this->setIsEnabled($arr[$keys[4]]);
if (array_key_exists($keys[5], $arr)) $this->setExpirationDate($arr[$keys[5]]);
if (array_key_exists($keys[6], $arr)) $this->setMaxUsage($arr[$keys[6]]);
if (array_key_exists($keys[7], $arr)) $this->setIsCumulative($arr[$keys[7]]);
if (array_key_exists($keys[8], $arr)) $this->setIsRemovingPostage($arr[$keys[8]]);
if (array_key_exists($keys[9], $arr)) $this->setIsAvailableOnSpecialOffers($arr[$keys[9]]);
if (array_key_exists($keys[10], $arr)) $this->setIsUsed($arr[$keys[10]]);
if (array_key_exists($keys[11], $arr)) $this->setSerializedConditions($arr[$keys[11]]);
if (array_key_exists($keys[12], $arr)) $this->setCreatedAt($arr[$keys[12]]);
if (array_key_exists($keys[13], $arr)) $this->setUpdatedAt($arr[$keys[13]]);
if (array_key_exists($keys[14], $arr)) $this->setVersion($arr[$keys[14]]);
@@ -1755,14 +1787,14 @@ abstract class Coupon implements ActiveRecordInterface
if ($this->isColumnModified(CouponTableMap::CODE)) $criteria->add(CouponTableMap::CODE, $this->code);
if ($this->isColumnModified(CouponTableMap::TYPE)) $criteria->add(CouponTableMap::TYPE, $this->type);
if ($this->isColumnModified(CouponTableMap::AMOUNT)) $criteria->add(CouponTableMap::AMOUNT, $this->amount);
if ($this->isColumnModified(CouponTableMap::IS_USED)) $criteria->add(CouponTableMap::IS_USED, $this->is_used);
if ($this->isColumnModified(CouponTableMap::IS_ENABLED)) $criteria->add(CouponTableMap::IS_ENABLED, $this->is_enabled);
if ($this->isColumnModified(CouponTableMap::EXPIRATION_DATE)) $criteria->add(CouponTableMap::EXPIRATION_DATE, $this->expiration_date);
if ($this->isColumnModified(CouponTableMap::SERIALIZED_RULES)) $criteria->add(CouponTableMap::SERIALIZED_RULES, $this->serialized_rules);
if ($this->isColumnModified(CouponTableMap::MAX_USAGE)) $criteria->add(CouponTableMap::MAX_USAGE, $this->max_usage);
if ($this->isColumnModified(CouponTableMap::IS_CUMULATIVE)) $criteria->add(CouponTableMap::IS_CUMULATIVE, $this->is_cumulative);
if ($this->isColumnModified(CouponTableMap::IS_REMOVING_POSTAGE)) $criteria->add(CouponTableMap::IS_REMOVING_POSTAGE, $this->is_removing_postage);
if ($this->isColumnModified(CouponTableMap::MAX_USAGE)) $criteria->add(CouponTableMap::MAX_USAGE, $this->max_usage);
if ($this->isColumnModified(CouponTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS)) $criteria->add(CouponTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS, $this->is_available_on_special_offers);
if ($this->isColumnModified(CouponTableMap::IS_USED)) $criteria->add(CouponTableMap::IS_USED, $this->is_used);
if ($this->isColumnModified(CouponTableMap::SERIALIZED_CONDITIONS)) $criteria->add(CouponTableMap::SERIALIZED_CONDITIONS, $this->serialized_conditions);
if ($this->isColumnModified(CouponTableMap::CREATED_AT)) $criteria->add(CouponTableMap::CREATED_AT, $this->created_at);
if ($this->isColumnModified(CouponTableMap::UPDATED_AT)) $criteria->add(CouponTableMap::UPDATED_AT, $this->updated_at);
if ($this->isColumnModified(CouponTableMap::VERSION)) $criteria->add(CouponTableMap::VERSION, $this->version);
@@ -1832,14 +1864,14 @@ abstract class Coupon implements ActiveRecordInterface
$copyObj->setCode($this->getCode());
$copyObj->setType($this->getType());
$copyObj->setAmount($this->getAmount());
$copyObj->setIsUsed($this->getIsUsed());
$copyObj->setIsEnabled($this->getIsEnabled());
$copyObj->setExpirationDate($this->getExpirationDate());
$copyObj->setSerializedRules($this->getSerializedRules());
$copyObj->setMaxUsage($this->getMaxUsage());
$copyObj->setIsCumulative($this->getIsCumulative());
$copyObj->setIsRemovingPostage($this->getIsRemovingPostage());
$copyObj->setMaxUsage($this->getMaxUsage());
$copyObj->setIsAvailableOnSpecialOffers($this->getIsAvailableOnSpecialOffers());
$copyObj->setIsUsed($this->getIsUsed());
$copyObj->setSerializedConditions($this->getSerializedConditions());
$copyObj->setCreatedAt($this->getCreatedAt());
$copyObj->setUpdatedAt($this->getUpdatedAt());
$copyObj->setVersion($this->getVersion());
@@ -2365,14 +2397,14 @@ abstract class Coupon implements ActiveRecordInterface
$this->code = null;
$this->type = null;
$this->amount = null;
$this->is_used = null;
$this->is_enabled = null;
$this->expiration_date = null;
$this->serialized_rules = null;
$this->max_usage = null;
$this->is_cumulative = null;
$this->is_removing_postage = null;
$this->max_usage = null;
$this->is_available_on_special_offers = null;
$this->is_used = null;
$this->serialized_conditions = null;
$this->created_at = null;
$this->updated_at = null;
$this->version = null;
@@ -2669,14 +2701,14 @@ abstract class Coupon implements ActiveRecordInterface
$version->setCode($this->getCode());
$version->setType($this->getType());
$version->setAmount($this->getAmount());
$version->setIsUsed($this->getIsUsed());
$version->setIsEnabled($this->getIsEnabled());
$version->setExpirationDate($this->getExpirationDate());
$version->setSerializedRules($this->getSerializedRules());
$version->setMaxUsage($this->getMaxUsage());
$version->setIsCumulative($this->getIsCumulative());
$version->setIsRemovingPostage($this->getIsRemovingPostage());
$version->setMaxUsage($this->getMaxUsage());
$version->setIsAvailableOnSpecialOffers($this->getIsAvailableOnSpecialOffers());
$version->setIsUsed($this->getIsUsed());
$version->setSerializedConditions($this->getSerializedConditions());
$version->setCreatedAt($this->getCreatedAt());
$version->setUpdatedAt($this->getUpdatedAt());
$version->setVersion($this->getVersion());
@@ -2721,14 +2753,14 @@ abstract class Coupon implements ActiveRecordInterface
$this->setCode($version->getCode());
$this->setType($version->getType());
$this->setAmount($version->getAmount());
$this->setIsUsed($version->getIsUsed());
$this->setIsEnabled($version->getIsEnabled());
$this->setExpirationDate($version->getExpirationDate());
$this->setSerializedRules($version->getSerializedRules());
$this->setMaxUsage($version->getMaxUsage());
$this->setIsCumulative($version->getIsCumulative());
$this->setIsRemovingPostage($version->getIsRemovingPostage());
$this->setMaxUsage($version->getMaxUsage());
$this->setIsAvailableOnSpecialOffers($version->getIsAvailableOnSpecialOffers());
$this->setIsUsed($version->getIsUsed());
$this->setSerializedConditions($version->getSerializedConditions());
$this->setCreatedAt($version->getCreatedAt());
$this->setUpdatedAt($version->getUpdatedAt());
$this->setVersion($version->getVersion());

View File

@@ -26,14 +26,14 @@ use Thelia\Model\Map\CouponTableMap;
* @method ChildCouponQuery orderByCode($order = Criteria::ASC) Order by the code column
* @method ChildCouponQuery orderByType($order = Criteria::ASC) Order by the type column
* @method ChildCouponQuery orderByAmount($order = Criteria::ASC) Order by the amount column
* @method ChildCouponQuery orderByIsUsed($order = Criteria::ASC) Order by the is_used column
* @method ChildCouponQuery orderByIsEnabled($order = Criteria::ASC) Order by the is_enabled column
* @method ChildCouponQuery orderByExpirationDate($order = Criteria::ASC) Order by the expiration_date column
* @method ChildCouponQuery orderBySerializedRules($order = Criteria::ASC) Order by the serialized_rules column
* @method ChildCouponQuery orderByMaxUsage($order = Criteria::ASC) Order by the max_usage column
* @method ChildCouponQuery orderByIsCumulative($order = Criteria::ASC) Order by the is_cumulative column
* @method ChildCouponQuery orderByIsRemovingPostage($order = Criteria::ASC) Order by the is_removing_postage column
* @method ChildCouponQuery orderByMaxUsage($order = Criteria::ASC) Order by the max_usage column
* @method ChildCouponQuery orderByIsAvailableOnSpecialOffers($order = Criteria::ASC) Order by the is_available_on_special_offers column
* @method ChildCouponQuery orderByIsUsed($order = Criteria::ASC) Order by the is_used column
* @method ChildCouponQuery orderBySerializedConditions($order = Criteria::ASC) Order by the serialized_conditions column
* @method ChildCouponQuery orderByCreatedAt($order = Criteria::ASC) Order by the created_at column
* @method ChildCouponQuery orderByUpdatedAt($order = Criteria::ASC) Order by the updated_at column
* @method ChildCouponQuery orderByVersion($order = Criteria::ASC) Order by the version column
@@ -42,14 +42,14 @@ use Thelia\Model\Map\CouponTableMap;
* @method ChildCouponQuery groupByCode() Group by the code column
* @method ChildCouponQuery groupByType() Group by the type column
* @method ChildCouponQuery groupByAmount() Group by the amount column
* @method ChildCouponQuery groupByIsUsed() Group by the is_used column
* @method ChildCouponQuery groupByIsEnabled() Group by the is_enabled column
* @method ChildCouponQuery groupByExpirationDate() Group by the expiration_date column
* @method ChildCouponQuery groupBySerializedRules() Group by the serialized_rules column
* @method ChildCouponQuery groupByMaxUsage() Group by the max_usage column
* @method ChildCouponQuery groupByIsCumulative() Group by the is_cumulative column
* @method ChildCouponQuery groupByIsRemovingPostage() Group by the is_removing_postage column
* @method ChildCouponQuery groupByMaxUsage() Group by the max_usage column
* @method ChildCouponQuery groupByIsAvailableOnSpecialOffers() Group by the is_available_on_special_offers column
* @method ChildCouponQuery groupByIsUsed() Group by the is_used column
* @method ChildCouponQuery groupBySerializedConditions() Group by the serialized_conditions column
* @method ChildCouponQuery groupByCreatedAt() Group by the created_at column
* @method ChildCouponQuery groupByUpdatedAt() Group by the updated_at column
* @method ChildCouponQuery groupByVersion() Group by the version column
@@ -73,14 +73,14 @@ use Thelia\Model\Map\CouponTableMap;
* @method ChildCoupon findOneByCode(string $code) Return the first ChildCoupon filtered by the code column
* @method ChildCoupon findOneByType(string $type) Return the first ChildCoupon filtered by the type column
* @method ChildCoupon findOneByAmount(double $amount) Return the first ChildCoupon filtered by the amount column
* @method ChildCoupon findOneByIsUsed(int $is_used) Return the first ChildCoupon filtered by the is_used column
* @method ChildCoupon findOneByIsEnabled(int $is_enabled) Return the first ChildCoupon filtered by the is_enabled column
* @method ChildCoupon findOneByIsEnabled(boolean $is_enabled) Return the first ChildCoupon filtered by the is_enabled column
* @method ChildCoupon findOneByExpirationDate(string $expiration_date) Return the first ChildCoupon filtered by the expiration_date column
* @method ChildCoupon findOneBySerializedRules(string $serialized_rules) Return the first ChildCoupon filtered by the serialized_rules column
* @method ChildCoupon findOneByIsCumulative(int $is_cumulative) Return the first ChildCoupon filtered by the is_cumulative column
* @method ChildCoupon findOneByIsRemovingPostage(int $is_removing_postage) Return the first ChildCoupon filtered by the is_removing_postage column
* @method ChildCoupon findOneByMaxUsage(int $max_usage) Return the first ChildCoupon filtered by the max_usage column
* @method ChildCoupon findOneByIsCumulative(boolean $is_cumulative) Return the first ChildCoupon filtered by the is_cumulative column
* @method ChildCoupon findOneByIsRemovingPostage(boolean $is_removing_postage) Return the first ChildCoupon filtered by the is_removing_postage column
* @method ChildCoupon findOneByIsAvailableOnSpecialOffers(boolean $is_available_on_special_offers) Return the first ChildCoupon filtered by the is_available_on_special_offers column
* @method ChildCoupon findOneByIsUsed(boolean $is_used) Return the first ChildCoupon filtered by the is_used column
* @method ChildCoupon findOneBySerializedConditions(string $serialized_conditions) Return the first ChildCoupon filtered by the serialized_conditions column
* @method ChildCoupon findOneByCreatedAt(string $created_at) Return the first ChildCoupon filtered by the created_at column
* @method ChildCoupon findOneByUpdatedAt(string $updated_at) Return the first ChildCoupon filtered by the updated_at column
* @method ChildCoupon findOneByVersion(int $version) Return the first ChildCoupon filtered by the version column
@@ -89,14 +89,14 @@ use Thelia\Model\Map\CouponTableMap;
* @method array findByCode(string $code) Return ChildCoupon objects filtered by the code column
* @method array findByType(string $type) Return ChildCoupon objects filtered by the type column
* @method array findByAmount(double $amount) Return ChildCoupon objects filtered by the amount column
* @method array findByIsUsed(int $is_used) Return ChildCoupon objects filtered by the is_used column
* @method array findByIsEnabled(int $is_enabled) Return ChildCoupon objects filtered by the is_enabled column
* @method array findByIsEnabled(boolean $is_enabled) Return ChildCoupon objects filtered by the is_enabled column
* @method array findByExpirationDate(string $expiration_date) Return ChildCoupon objects filtered by the expiration_date column
* @method array findBySerializedRules(string $serialized_rules) Return ChildCoupon objects filtered by the serialized_rules column
* @method array findByIsCumulative(int $is_cumulative) Return ChildCoupon objects filtered by the is_cumulative column
* @method array findByIsRemovingPostage(int $is_removing_postage) Return ChildCoupon objects filtered by the is_removing_postage column
* @method array findByMaxUsage(int $max_usage) Return ChildCoupon objects filtered by the max_usage column
* @method array findByIsCumulative(boolean $is_cumulative) Return ChildCoupon objects filtered by the is_cumulative column
* @method array findByIsRemovingPostage(boolean $is_removing_postage) Return ChildCoupon objects filtered by the is_removing_postage column
* @method array findByIsAvailableOnSpecialOffers(boolean $is_available_on_special_offers) Return ChildCoupon objects filtered by the is_available_on_special_offers column
* @method array findByIsUsed(boolean $is_used) Return ChildCoupon objects filtered by the is_used column
* @method array findBySerializedConditions(string $serialized_conditions) Return ChildCoupon objects filtered by the serialized_conditions column
* @method array findByCreatedAt(string $created_at) Return ChildCoupon objects filtered by the created_at column
* @method array findByUpdatedAt(string $updated_at) Return ChildCoupon objects filtered by the updated_at column
* @method array findByVersion(int $version) Return ChildCoupon objects filtered by the version column
@@ -195,7 +195,7 @@ abstract class CouponQuery extends ModelCriteria
*/
protected function findPkSimple($key, $con)
{
$sql = 'SELECT ID, CODE, TYPE, AMOUNT, IS_USED, IS_ENABLED, EXPIRATION_DATE, SERIALIZED_RULES, IS_CUMULATIVE, IS_REMOVING_POSTAGE, MAX_USAGE, IS_AVAILABLE_ON_SPECIAL_OFFERS, CREATED_AT, UPDATED_AT, VERSION FROM coupon WHERE ID = :p0';
$sql = 'SELECT ID, CODE, TYPE, AMOUNT, IS_ENABLED, EXPIRATION_DATE, MAX_USAGE, IS_CUMULATIVE, IS_REMOVING_POSTAGE, IS_AVAILABLE_ON_SPECIAL_OFFERS, IS_USED, SERIALIZED_CONDITIONS, CREATED_AT, UPDATED_AT, VERSION FROM coupon WHERE ID = :p0';
try {
$stmt = $con->prepare($sql);
$stmt->bindValue(':p0', $key, PDO::PARAM_INT);
@@ -424,83 +424,28 @@ abstract class CouponQuery extends ModelCriteria
return $this->addUsingAlias(CouponTableMap::AMOUNT, $amount, $comparison);
}
/**
* Filter the query on the is_used column
*
* Example usage:
* <code>
* $query->filterByIsUsed(1234); // WHERE is_used = 1234
* $query->filterByIsUsed(array(12, 34)); // WHERE is_used IN (12, 34)
* $query->filterByIsUsed(array('min' => 12)); // WHERE is_used > 12
* </code>
*
* @param mixed $isUsed The value to use as filter.
* Use scalar values for equality.
* Use array values for in_array() equivalent.
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponQuery The current query, for fluid interface
*/
public function filterByIsUsed($isUsed = null, $comparison = null)
{
if (is_array($isUsed)) {
$useMinMax = false;
if (isset($isUsed['min'])) {
$this->addUsingAlias(CouponTableMap::IS_USED, $isUsed['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($isUsed['max'])) {
$this->addUsingAlias(CouponTableMap::IS_USED, $isUsed['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
}
}
return $this->addUsingAlias(CouponTableMap::IS_USED, $isUsed, $comparison);
}
/**
* Filter the query on the is_enabled column
*
* Example usage:
* <code>
* $query->filterByIsEnabled(1234); // WHERE is_enabled = 1234
* $query->filterByIsEnabled(array(12, 34)); // WHERE is_enabled IN (12, 34)
* $query->filterByIsEnabled(array('min' => 12)); // WHERE is_enabled > 12
* $query->filterByIsEnabled(true); // WHERE is_enabled = true
* $query->filterByIsEnabled('yes'); // WHERE is_enabled = true
* </code>
*
* @param mixed $isEnabled The value to use as filter.
* Use scalar values for equality.
* Use array values for in_array() equivalent.
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
* @param boolean|string $isEnabled The value to use as filter.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponQuery The current query, for fluid interface
*/
public function filterByIsEnabled($isEnabled = null, $comparison = null)
{
if (is_array($isEnabled)) {
$useMinMax = false;
if (isset($isEnabled['min'])) {
$this->addUsingAlias(CouponTableMap::IS_ENABLED, $isEnabled['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($isEnabled['max'])) {
$this->addUsingAlias(CouponTableMap::IS_ENABLED, $isEnabled['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
}
if (is_string($isEnabled)) {
$is_enabled = in_array(strtolower($isEnabled), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
}
return $this->addUsingAlias(CouponTableMap::IS_ENABLED, $isEnabled, $comparison);
@@ -549,117 +494,6 @@ abstract class CouponQuery extends ModelCriteria
return $this->addUsingAlias(CouponTableMap::EXPIRATION_DATE, $expirationDate, $comparison);
}
/**
* Filter the query on the serialized_rules column
*
* Example usage:
* <code>
* $query->filterBySerializedRules('fooValue'); // WHERE serialized_rules = 'fooValue'
* $query->filterBySerializedRules('%fooValue%'); // WHERE serialized_rules LIKE '%fooValue%'
* </code>
*
* @param string $serializedRules The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponQuery The current query, for fluid interface
*/
public function filterBySerializedRules($serializedRules = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($serializedRules)) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $serializedRules)) {
$serializedRules = str_replace('*', '%', $serializedRules);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(CouponTableMap::SERIALIZED_RULES, $serializedRules, $comparison);
}
/**
* Filter the query on the is_cumulative column
*
* Example usage:
* <code>
* $query->filterByIsCumulative(1234); // WHERE is_cumulative = 1234
* $query->filterByIsCumulative(array(12, 34)); // WHERE is_cumulative IN (12, 34)
* $query->filterByIsCumulative(array('min' => 12)); // WHERE is_cumulative > 12
* </code>
*
* @param mixed $isCumulative The value to use as filter.
* Use scalar values for equality.
* Use array values for in_array() equivalent.
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponQuery The current query, for fluid interface
*/
public function filterByIsCumulative($isCumulative = null, $comparison = null)
{
if (is_array($isCumulative)) {
$useMinMax = false;
if (isset($isCumulative['min'])) {
$this->addUsingAlias(CouponTableMap::IS_CUMULATIVE, $isCumulative['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($isCumulative['max'])) {
$this->addUsingAlias(CouponTableMap::IS_CUMULATIVE, $isCumulative['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
}
}
return $this->addUsingAlias(CouponTableMap::IS_CUMULATIVE, $isCumulative, $comparison);
}
/**
* Filter the query on the is_removing_postage column
*
* Example usage:
* <code>
* $query->filterByIsRemovingPostage(1234); // WHERE is_removing_postage = 1234
* $query->filterByIsRemovingPostage(array(12, 34)); // WHERE is_removing_postage IN (12, 34)
* $query->filterByIsRemovingPostage(array('min' => 12)); // WHERE is_removing_postage > 12
* </code>
*
* @param mixed $isRemovingPostage The value to use as filter.
* Use scalar values for equality.
* Use array values for in_array() equivalent.
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponQuery The current query, for fluid interface
*/
public function filterByIsRemovingPostage($isRemovingPostage = null, $comparison = null)
{
if (is_array($isRemovingPostage)) {
$useMinMax = false;
if (isset($isRemovingPostage['min'])) {
$this->addUsingAlias(CouponTableMap::IS_REMOVING_POSTAGE, $isRemovingPostage['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($isRemovingPostage['max'])) {
$this->addUsingAlias(CouponTableMap::IS_REMOVING_POSTAGE, $isRemovingPostage['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
}
}
return $this->addUsingAlias(CouponTableMap::IS_REMOVING_POSTAGE, $isRemovingPostage, $comparison);
}
/**
* Filter the query on the max_usage column
*
@@ -701,6 +535,60 @@ abstract class CouponQuery extends ModelCriteria
return $this->addUsingAlias(CouponTableMap::MAX_USAGE, $maxUsage, $comparison);
}
/**
* Filter the query on the is_cumulative column
*
* Example usage:
* <code>
* $query->filterByIsCumulative(true); // WHERE is_cumulative = true
* $query->filterByIsCumulative('yes'); // WHERE is_cumulative = true
* </code>
*
* @param boolean|string $isCumulative The value to use as filter.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponQuery The current query, for fluid interface
*/
public function filterByIsCumulative($isCumulative = null, $comparison = null)
{
if (is_string($isCumulative)) {
$is_cumulative = in_array(strtolower($isCumulative), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
}
return $this->addUsingAlias(CouponTableMap::IS_CUMULATIVE, $isCumulative, $comparison);
}
/**
* Filter the query on the is_removing_postage column
*
* Example usage:
* <code>
* $query->filterByIsRemovingPostage(true); // WHERE is_removing_postage = true
* $query->filterByIsRemovingPostage('yes'); // WHERE is_removing_postage = true
* </code>
*
* @param boolean|string $isRemovingPostage The value to use as filter.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponQuery The current query, for fluid interface
*/
public function filterByIsRemovingPostage($isRemovingPostage = null, $comparison = null)
{
if (is_string($isRemovingPostage)) {
$is_removing_postage = in_array(strtolower($isRemovingPostage), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
}
return $this->addUsingAlias(CouponTableMap::IS_REMOVING_POSTAGE, $isRemovingPostage, $comparison);
}
/**
* Filter the query on the is_available_on_special_offers column
*
@@ -728,6 +616,62 @@ abstract class CouponQuery extends ModelCriteria
return $this->addUsingAlias(CouponTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS, $isAvailableOnSpecialOffers, $comparison);
}
/**
* Filter the query on the is_used column
*
* Example usage:
* <code>
* $query->filterByIsUsed(true); // WHERE is_used = true
* $query->filterByIsUsed('yes'); // WHERE is_used = true
* </code>
*
* @param boolean|string $isUsed The value to use as filter.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponQuery The current query, for fluid interface
*/
public function filterByIsUsed($isUsed = null, $comparison = null)
{
if (is_string($isUsed)) {
$is_used = in_array(strtolower($isUsed), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
}
return $this->addUsingAlias(CouponTableMap::IS_USED, $isUsed, $comparison);
}
/**
* Filter the query on the serialized_conditions column
*
* Example usage:
* <code>
* $query->filterBySerializedConditions('fooValue'); // WHERE serialized_conditions = 'fooValue'
* $query->filterBySerializedConditions('%fooValue%'); // WHERE serialized_conditions LIKE '%fooValue%'
* </code>
*
* @param string $serializedConditions The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponQuery The current query, for fluid interface
*/
public function filterBySerializedConditions($serializedConditions = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($serializedConditions)) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $serializedConditions)) {
$serializedConditions = str_replace('*', '%', $serializedConditions);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(CouponTableMap::SERIALIZED_CONDITIONS, $serializedConditions, $comparison);
}
/**
* Filter the query on the created_at column
*

View File

@@ -79,15 +79,9 @@ abstract class CouponVersion implements ActiveRecordInterface
*/
protected $amount;
/**
* The value for the is_used field.
* @var int
*/
protected $is_used;
/**
* The value for the is_enabled field.
* @var int
* @var boolean
*/
protected $is_enabled;
@@ -97,36 +91,42 @@ abstract class CouponVersion implements ActiveRecordInterface
*/
protected $expiration_date;
/**
* The value for the serialized_rules field.
* @var string
*/
protected $serialized_rules;
/**
* The value for the is_cumulative field.
* @var int
*/
protected $is_cumulative;
/**
* The value for the is_removing_postage field.
* @var int
*/
protected $is_removing_postage;
/**
* The value for the max_usage field.
* @var int
*/
protected $max_usage;
/**
* The value for the is_cumulative field.
* @var boolean
*/
protected $is_cumulative;
/**
* The value for the is_removing_postage field.
* @var boolean
*/
protected $is_removing_postage;
/**
* The value for the is_available_on_special_offers field.
* @var boolean
*/
protected $is_available_on_special_offers;
/**
* The value for the is_used field.
* @var boolean
*/
protected $is_used;
/**
* The value for the serialized_conditions field.
* @var string
*/
protected $serialized_conditions;
/**
* The value for the created_at field.
* @var string
@@ -470,21 +470,10 @@ abstract class CouponVersion implements ActiveRecordInterface
return $this->amount;
}
/**
* Get the [is_used] column value.
*
* @return int
*/
public function getIsUsed()
{
return $this->is_used;
}
/**
* Get the [is_enabled] column value.
*
* @return int
* @return boolean
*/
public function getIsEnabled()
{
@@ -512,39 +501,6 @@ abstract class CouponVersion implements ActiveRecordInterface
}
}
/**
* Get the [serialized_rules] column value.
*
* @return string
*/
public function getSerializedRules()
{
return $this->serialized_rules;
}
/**
* Get the [is_cumulative] column value.
*
* @return int
*/
public function getIsCumulative()
{
return $this->is_cumulative;
}
/**
* Get the [is_removing_postage] column value.
*
* @return int
*/
public function getIsRemovingPostage()
{
return $this->is_removing_postage;
}
/**
* Get the [max_usage] column value.
*
@@ -556,6 +512,28 @@ abstract class CouponVersion implements ActiveRecordInterface
return $this->max_usage;
}
/**
* Get the [is_cumulative] column value.
*
* @return boolean
*/
public function getIsCumulative()
{
return $this->is_cumulative;
}
/**
* Get the [is_removing_postage] column value.
*
* @return boolean
*/
public function getIsRemovingPostage()
{
return $this->is_removing_postage;
}
/**
* Get the [is_available_on_special_offers] column value.
*
@@ -567,6 +545,28 @@ abstract class CouponVersion implements ActiveRecordInterface
return $this->is_available_on_special_offers;
}
/**
* Get the [is_used] column value.
*
* @return boolean
*/
public function getIsUsed()
{
return $this->is_used;
}
/**
* Get the [serialized_conditions] column value.
*
* @return string
*/
public function getSerializedConditions()
{
return $this->serialized_conditions;
}
/**
* Get the [optionally formatted] temporal [created_at] column value.
*
@@ -707,36 +707,23 @@ abstract class CouponVersion implements ActiveRecordInterface
} // setAmount()
/**
* Set the value of [is_used] column.
* Sets the value of the [is_enabled] column.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
*
* @param int $v new value
* @return \Thelia\Model\CouponVersion The current object (for fluent API support)
*/
public function setIsUsed($v)
{
if ($v !== null) {
$v = (int) $v;
}
if ($this->is_used !== $v) {
$this->is_used = $v;
$this->modifiedColumns[] = CouponVersionTableMap::IS_USED;
}
return $this;
} // setIsUsed()
/**
* Set the value of [is_enabled] column.
*
* @param int $v new value
* @param boolean|integer|string $v The new value
* @return \Thelia\Model\CouponVersion The current object (for fluent API support)
*/
public function setIsEnabled($v)
{
if ($v !== null) {
$v = (int) $v;
if (is_string($v)) {
$v = in_array(strtolower($v), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
} else {
$v = (boolean) $v;
}
}
if ($this->is_enabled !== $v) {
@@ -769,69 +756,6 @@ abstract class CouponVersion implements ActiveRecordInterface
return $this;
} // setExpirationDate()
/**
* Set the value of [serialized_rules] column.
*
* @param string $v new value
* @return \Thelia\Model\CouponVersion The current object (for fluent API support)
*/
public function setSerializedRules($v)
{
if ($v !== null) {
$v = (string) $v;
}
if ($this->serialized_rules !== $v) {
$this->serialized_rules = $v;
$this->modifiedColumns[] = CouponVersionTableMap::SERIALIZED_RULES;
}
return $this;
} // setSerializedRules()
/**
* Set the value of [is_cumulative] column.
*
* @param int $v new value
* @return \Thelia\Model\CouponVersion The current object (for fluent API support)
*/
public function setIsCumulative($v)
{
if ($v !== null) {
$v = (int) $v;
}
if ($this->is_cumulative !== $v) {
$this->is_cumulative = $v;
$this->modifiedColumns[] = CouponVersionTableMap::IS_CUMULATIVE;
}
return $this;
} // setIsCumulative()
/**
* Set the value of [is_removing_postage] column.
*
* @param int $v new value
* @return \Thelia\Model\CouponVersion The current object (for fluent API support)
*/
public function setIsRemovingPostage($v)
{
if ($v !== null) {
$v = (int) $v;
}
if ($this->is_removing_postage !== $v) {
$this->is_removing_postage = $v;
$this->modifiedColumns[] = CouponVersionTableMap::IS_REMOVING_POSTAGE;
}
return $this;
} // setIsRemovingPostage()
/**
* Set the value of [max_usage] column.
*
@@ -853,6 +777,64 @@ abstract class CouponVersion implements ActiveRecordInterface
return $this;
} // setMaxUsage()
/**
* Sets the value of the [is_cumulative] column.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
*
* @param boolean|integer|string $v The new value
* @return \Thelia\Model\CouponVersion The current object (for fluent API support)
*/
public function setIsCumulative($v)
{
if ($v !== null) {
if (is_string($v)) {
$v = in_array(strtolower($v), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
} else {
$v = (boolean) $v;
}
}
if ($this->is_cumulative !== $v) {
$this->is_cumulative = $v;
$this->modifiedColumns[] = CouponVersionTableMap::IS_CUMULATIVE;
}
return $this;
} // setIsCumulative()
/**
* Sets the value of the [is_removing_postage] column.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
*
* @param boolean|integer|string $v The new value
* @return \Thelia\Model\CouponVersion The current object (for fluent API support)
*/
public function setIsRemovingPostage($v)
{
if ($v !== null) {
if (is_string($v)) {
$v = in_array(strtolower($v), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
} else {
$v = (boolean) $v;
}
}
if ($this->is_removing_postage !== $v) {
$this->is_removing_postage = $v;
$this->modifiedColumns[] = CouponVersionTableMap::IS_REMOVING_POSTAGE;
}
return $this;
} // setIsRemovingPostage()
/**
* Sets the value of the [is_available_on_special_offers] column.
* Non-boolean arguments are converted using the following rules:
@@ -882,6 +864,56 @@ abstract class CouponVersion implements ActiveRecordInterface
return $this;
} // setIsAvailableOnSpecialOffers()
/**
* Sets the value of the [is_used] column.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
*
* @param boolean|integer|string $v The new value
* @return \Thelia\Model\CouponVersion The current object (for fluent API support)
*/
public function setIsUsed($v)
{
if ($v !== null) {
if (is_string($v)) {
$v = in_array(strtolower($v), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
} else {
$v = (boolean) $v;
}
}
if ($this->is_used !== $v) {
$this->is_used = $v;
$this->modifiedColumns[] = CouponVersionTableMap::IS_USED;
}
return $this;
} // setIsUsed()
/**
* Set the value of [serialized_conditions] column.
*
* @param string $v new value
* @return \Thelia\Model\CouponVersion The current object (for fluent API support)
*/
public function setSerializedConditions($v)
{
if ($v !== null) {
$v = (string) $v;
}
if ($this->serialized_conditions !== $v) {
$this->serialized_conditions = $v;
$this->modifiedColumns[] = CouponVersionTableMap::SERIALIZED_CONDITIONS;
}
return $this;
} // setSerializedConditions()
/**
* Sets the value of [created_at] column to a normalized version of the date/time value specified.
*
@@ -998,33 +1030,33 @@ abstract class CouponVersion implements ActiveRecordInterface
$col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CouponVersionTableMap::translateFieldName('Amount', TableMap::TYPE_PHPNAME, $indexType)];
$this->amount = (null !== $col) ? (double) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CouponVersionTableMap::translateFieldName('IsUsed', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_used = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CouponVersionTableMap::translateFieldName('IsEnabled', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_enabled = (null !== $col) ? (boolean) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CouponVersionTableMap::translateFieldName('IsEnabled', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_enabled = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : CouponVersionTableMap::translateFieldName('ExpirationDate', TableMap::TYPE_PHPNAME, $indexType)];
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CouponVersionTableMap::translateFieldName('ExpirationDate', TableMap::TYPE_PHPNAME, $indexType)];
if ($col === '0000-00-00 00:00:00') {
$col = null;
}
$this->expiration_date = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : CouponVersionTableMap::translateFieldName('SerializedRules', TableMap::TYPE_PHPNAME, $indexType)];
$this->serialized_rules = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 8 + $startcol : CouponVersionTableMap::translateFieldName('IsCumulative', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_cumulative = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 9 + $startcol : CouponVersionTableMap::translateFieldName('IsRemovingPostage', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_removing_postage = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 10 + $startcol : CouponVersionTableMap::translateFieldName('MaxUsage', TableMap::TYPE_PHPNAME, $indexType)];
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : CouponVersionTableMap::translateFieldName('MaxUsage', TableMap::TYPE_PHPNAME, $indexType)];
$this->max_usage = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 11 + $startcol : CouponVersionTableMap::translateFieldName('IsAvailableOnSpecialOffers', TableMap::TYPE_PHPNAME, $indexType)];
$col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : CouponVersionTableMap::translateFieldName('IsCumulative', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_cumulative = (null !== $col) ? (boolean) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 8 + $startcol : CouponVersionTableMap::translateFieldName('IsRemovingPostage', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_removing_postage = (null !== $col) ? (boolean) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 9 + $startcol : CouponVersionTableMap::translateFieldName('IsAvailableOnSpecialOffers', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_available_on_special_offers = (null !== $col) ? (boolean) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 10 + $startcol : CouponVersionTableMap::translateFieldName('IsUsed', TableMap::TYPE_PHPNAME, $indexType)];
$this->is_used = (null !== $col) ? (boolean) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 11 + $startcol : CouponVersionTableMap::translateFieldName('SerializedConditions', TableMap::TYPE_PHPNAME, $indexType)];
$this->serialized_conditions = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 12 + $startcol : CouponVersionTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
if ($col === '0000-00-00 00:00:00') {
$col = null;
@@ -1280,17 +1312,14 @@ abstract class CouponVersion implements ActiveRecordInterface
if ($this->isColumnModified(CouponVersionTableMap::AMOUNT)) {
$modifiedColumns[':p' . $index++] = 'AMOUNT';
}
if ($this->isColumnModified(CouponVersionTableMap::IS_USED)) {
$modifiedColumns[':p' . $index++] = 'IS_USED';
}
if ($this->isColumnModified(CouponVersionTableMap::IS_ENABLED)) {
$modifiedColumns[':p' . $index++] = 'IS_ENABLED';
}
if ($this->isColumnModified(CouponVersionTableMap::EXPIRATION_DATE)) {
$modifiedColumns[':p' . $index++] = 'EXPIRATION_DATE';
}
if ($this->isColumnModified(CouponVersionTableMap::SERIALIZED_RULES)) {
$modifiedColumns[':p' . $index++] = 'SERIALIZED_RULES';
if ($this->isColumnModified(CouponVersionTableMap::MAX_USAGE)) {
$modifiedColumns[':p' . $index++] = 'MAX_USAGE';
}
if ($this->isColumnModified(CouponVersionTableMap::IS_CUMULATIVE)) {
$modifiedColumns[':p' . $index++] = 'IS_CUMULATIVE';
@@ -1298,12 +1327,15 @@ abstract class CouponVersion implements ActiveRecordInterface
if ($this->isColumnModified(CouponVersionTableMap::IS_REMOVING_POSTAGE)) {
$modifiedColumns[':p' . $index++] = 'IS_REMOVING_POSTAGE';
}
if ($this->isColumnModified(CouponVersionTableMap::MAX_USAGE)) {
$modifiedColumns[':p' . $index++] = 'MAX_USAGE';
}
if ($this->isColumnModified(CouponVersionTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS)) {
$modifiedColumns[':p' . $index++] = 'IS_AVAILABLE_ON_SPECIAL_OFFERS';
}
if ($this->isColumnModified(CouponVersionTableMap::IS_USED)) {
$modifiedColumns[':p' . $index++] = 'IS_USED';
}
if ($this->isColumnModified(CouponVersionTableMap::SERIALIZED_CONDITIONS)) {
$modifiedColumns[':p' . $index++] = 'SERIALIZED_CONDITIONS';
}
if ($this->isColumnModified(CouponVersionTableMap::CREATED_AT)) {
$modifiedColumns[':p' . $index++] = 'CREATED_AT';
}
@@ -1336,30 +1368,30 @@ abstract class CouponVersion implements ActiveRecordInterface
case 'AMOUNT':
$stmt->bindValue($identifier, $this->amount, PDO::PARAM_STR);
break;
case 'IS_USED':
$stmt->bindValue($identifier, $this->is_used, PDO::PARAM_INT);
break;
case 'IS_ENABLED':
$stmt->bindValue($identifier, $this->is_enabled, PDO::PARAM_INT);
$stmt->bindValue($identifier, (int) $this->is_enabled, PDO::PARAM_INT);
break;
case 'EXPIRATION_DATE':
$stmt->bindValue($identifier, $this->expiration_date ? $this->expiration_date->format("Y-m-d H:i:s") : null, PDO::PARAM_STR);
break;
case 'SERIALIZED_RULES':
$stmt->bindValue($identifier, $this->serialized_rules, PDO::PARAM_STR);
break;
case 'IS_CUMULATIVE':
$stmt->bindValue($identifier, $this->is_cumulative, PDO::PARAM_INT);
break;
case 'IS_REMOVING_POSTAGE':
$stmt->bindValue($identifier, $this->is_removing_postage, PDO::PARAM_INT);
break;
case 'MAX_USAGE':
$stmt->bindValue($identifier, $this->max_usage, PDO::PARAM_INT);
break;
case 'IS_CUMULATIVE':
$stmt->bindValue($identifier, (int) $this->is_cumulative, PDO::PARAM_INT);
break;
case 'IS_REMOVING_POSTAGE':
$stmt->bindValue($identifier, (int) $this->is_removing_postage, PDO::PARAM_INT);
break;
case 'IS_AVAILABLE_ON_SPECIAL_OFFERS':
$stmt->bindValue($identifier, (int) $this->is_available_on_special_offers, PDO::PARAM_INT);
break;
case 'IS_USED':
$stmt->bindValue($identifier, (int) $this->is_used, PDO::PARAM_INT);
break;
case 'SERIALIZED_CONDITIONS':
$stmt->bindValue($identifier, $this->serialized_conditions, PDO::PARAM_STR);
break;
case 'CREATED_AT':
$stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR);
break;
@@ -1437,29 +1469,29 @@ abstract class CouponVersion implements ActiveRecordInterface
return $this->getAmount();
break;
case 4:
return $this->getIsUsed();
break;
case 5:
return $this->getIsEnabled();
break;
case 6:
case 5:
return $this->getExpirationDate();
break;
case 7:
return $this->getSerializedRules();
break;
case 8:
return $this->getIsCumulative();
break;
case 9:
return $this->getIsRemovingPostage();
break;
case 10:
case 6:
return $this->getMaxUsage();
break;
case 11:
case 7:
return $this->getIsCumulative();
break;
case 8:
return $this->getIsRemovingPostage();
break;
case 9:
return $this->getIsAvailableOnSpecialOffers();
break;
case 10:
return $this->getIsUsed();
break;
case 11:
return $this->getSerializedConditions();
break;
case 12:
return $this->getCreatedAt();
break;
@@ -1502,14 +1534,14 @@ abstract class CouponVersion implements ActiveRecordInterface
$keys[1] => $this->getCode(),
$keys[2] => $this->getType(),
$keys[3] => $this->getAmount(),
$keys[4] => $this->getIsUsed(),
$keys[5] => $this->getIsEnabled(),
$keys[6] => $this->getExpirationDate(),
$keys[7] => $this->getSerializedRules(),
$keys[8] => $this->getIsCumulative(),
$keys[9] => $this->getIsRemovingPostage(),
$keys[10] => $this->getMaxUsage(),
$keys[11] => $this->getIsAvailableOnSpecialOffers(),
$keys[4] => $this->getIsEnabled(),
$keys[5] => $this->getExpirationDate(),
$keys[6] => $this->getMaxUsage(),
$keys[7] => $this->getIsCumulative(),
$keys[8] => $this->getIsRemovingPostage(),
$keys[9] => $this->getIsAvailableOnSpecialOffers(),
$keys[10] => $this->getIsUsed(),
$keys[11] => $this->getSerializedConditions(),
$keys[12] => $this->getCreatedAt(),
$keys[13] => $this->getUpdatedAt(),
$keys[14] => $this->getVersion(),
@@ -1571,29 +1603,29 @@ abstract class CouponVersion implements ActiveRecordInterface
$this->setAmount($value);
break;
case 4:
$this->setIsUsed($value);
break;
case 5:
$this->setIsEnabled($value);
break;
case 6:
case 5:
$this->setExpirationDate($value);
break;
case 7:
$this->setSerializedRules($value);
break;
case 8:
$this->setIsCumulative($value);
break;
case 9:
$this->setIsRemovingPostage($value);
break;
case 10:
case 6:
$this->setMaxUsage($value);
break;
case 11:
case 7:
$this->setIsCumulative($value);
break;
case 8:
$this->setIsRemovingPostage($value);
break;
case 9:
$this->setIsAvailableOnSpecialOffers($value);
break;
case 10:
$this->setIsUsed($value);
break;
case 11:
$this->setSerializedConditions($value);
break;
case 12:
$this->setCreatedAt($value);
break;
@@ -1631,14 +1663,14 @@ abstract class CouponVersion implements ActiveRecordInterface
if (array_key_exists($keys[1], $arr)) $this->setCode($arr[$keys[1]]);
if (array_key_exists($keys[2], $arr)) $this->setType($arr[$keys[2]]);
if (array_key_exists($keys[3], $arr)) $this->setAmount($arr[$keys[3]]);
if (array_key_exists($keys[4], $arr)) $this->setIsUsed($arr[$keys[4]]);
if (array_key_exists($keys[5], $arr)) $this->setIsEnabled($arr[$keys[5]]);
if (array_key_exists($keys[6], $arr)) $this->setExpirationDate($arr[$keys[6]]);
if (array_key_exists($keys[7], $arr)) $this->setSerializedRules($arr[$keys[7]]);
if (array_key_exists($keys[8], $arr)) $this->setIsCumulative($arr[$keys[8]]);
if (array_key_exists($keys[9], $arr)) $this->setIsRemovingPostage($arr[$keys[9]]);
if (array_key_exists($keys[10], $arr)) $this->setMaxUsage($arr[$keys[10]]);
if (array_key_exists($keys[11], $arr)) $this->setIsAvailableOnSpecialOffers($arr[$keys[11]]);
if (array_key_exists($keys[4], $arr)) $this->setIsEnabled($arr[$keys[4]]);
if (array_key_exists($keys[5], $arr)) $this->setExpirationDate($arr[$keys[5]]);
if (array_key_exists($keys[6], $arr)) $this->setMaxUsage($arr[$keys[6]]);
if (array_key_exists($keys[7], $arr)) $this->setIsCumulative($arr[$keys[7]]);
if (array_key_exists($keys[8], $arr)) $this->setIsRemovingPostage($arr[$keys[8]]);
if (array_key_exists($keys[9], $arr)) $this->setIsAvailableOnSpecialOffers($arr[$keys[9]]);
if (array_key_exists($keys[10], $arr)) $this->setIsUsed($arr[$keys[10]]);
if (array_key_exists($keys[11], $arr)) $this->setSerializedConditions($arr[$keys[11]]);
if (array_key_exists($keys[12], $arr)) $this->setCreatedAt($arr[$keys[12]]);
if (array_key_exists($keys[13], $arr)) $this->setUpdatedAt($arr[$keys[13]]);
if (array_key_exists($keys[14], $arr)) $this->setVersion($arr[$keys[14]]);
@@ -1657,14 +1689,14 @@ abstract class CouponVersion implements ActiveRecordInterface
if ($this->isColumnModified(CouponVersionTableMap::CODE)) $criteria->add(CouponVersionTableMap::CODE, $this->code);
if ($this->isColumnModified(CouponVersionTableMap::TYPE)) $criteria->add(CouponVersionTableMap::TYPE, $this->type);
if ($this->isColumnModified(CouponVersionTableMap::AMOUNT)) $criteria->add(CouponVersionTableMap::AMOUNT, $this->amount);
if ($this->isColumnModified(CouponVersionTableMap::IS_USED)) $criteria->add(CouponVersionTableMap::IS_USED, $this->is_used);
if ($this->isColumnModified(CouponVersionTableMap::IS_ENABLED)) $criteria->add(CouponVersionTableMap::IS_ENABLED, $this->is_enabled);
if ($this->isColumnModified(CouponVersionTableMap::EXPIRATION_DATE)) $criteria->add(CouponVersionTableMap::EXPIRATION_DATE, $this->expiration_date);
if ($this->isColumnModified(CouponVersionTableMap::SERIALIZED_RULES)) $criteria->add(CouponVersionTableMap::SERIALIZED_RULES, $this->serialized_rules);
if ($this->isColumnModified(CouponVersionTableMap::MAX_USAGE)) $criteria->add(CouponVersionTableMap::MAX_USAGE, $this->max_usage);
if ($this->isColumnModified(CouponVersionTableMap::IS_CUMULATIVE)) $criteria->add(CouponVersionTableMap::IS_CUMULATIVE, $this->is_cumulative);
if ($this->isColumnModified(CouponVersionTableMap::IS_REMOVING_POSTAGE)) $criteria->add(CouponVersionTableMap::IS_REMOVING_POSTAGE, $this->is_removing_postage);
if ($this->isColumnModified(CouponVersionTableMap::MAX_USAGE)) $criteria->add(CouponVersionTableMap::MAX_USAGE, $this->max_usage);
if ($this->isColumnModified(CouponVersionTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS)) $criteria->add(CouponVersionTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS, $this->is_available_on_special_offers);
if ($this->isColumnModified(CouponVersionTableMap::IS_USED)) $criteria->add(CouponVersionTableMap::IS_USED, $this->is_used);
if ($this->isColumnModified(CouponVersionTableMap::SERIALIZED_CONDITIONS)) $criteria->add(CouponVersionTableMap::SERIALIZED_CONDITIONS, $this->serialized_conditions);
if ($this->isColumnModified(CouponVersionTableMap::CREATED_AT)) $criteria->add(CouponVersionTableMap::CREATED_AT, $this->created_at);
if ($this->isColumnModified(CouponVersionTableMap::UPDATED_AT)) $criteria->add(CouponVersionTableMap::UPDATED_AT, $this->updated_at);
if ($this->isColumnModified(CouponVersionTableMap::VERSION)) $criteria->add(CouponVersionTableMap::VERSION, $this->version);
@@ -1742,14 +1774,14 @@ abstract class CouponVersion implements ActiveRecordInterface
$copyObj->setCode($this->getCode());
$copyObj->setType($this->getType());
$copyObj->setAmount($this->getAmount());
$copyObj->setIsUsed($this->getIsUsed());
$copyObj->setIsEnabled($this->getIsEnabled());
$copyObj->setExpirationDate($this->getExpirationDate());
$copyObj->setSerializedRules($this->getSerializedRules());
$copyObj->setMaxUsage($this->getMaxUsage());
$copyObj->setIsCumulative($this->getIsCumulative());
$copyObj->setIsRemovingPostage($this->getIsRemovingPostage());
$copyObj->setMaxUsage($this->getMaxUsage());
$copyObj->setIsAvailableOnSpecialOffers($this->getIsAvailableOnSpecialOffers());
$copyObj->setIsUsed($this->getIsUsed());
$copyObj->setSerializedConditions($this->getSerializedConditions());
$copyObj->setCreatedAt($this->getCreatedAt());
$copyObj->setUpdatedAt($this->getUpdatedAt());
$copyObj->setVersion($this->getVersion());
@@ -1840,14 +1872,14 @@ abstract class CouponVersion implements ActiveRecordInterface
$this->code = null;
$this->type = null;
$this->amount = null;
$this->is_used = null;
$this->is_enabled = null;
$this->expiration_date = null;
$this->serialized_rules = null;
$this->max_usage = null;
$this->is_cumulative = null;
$this->is_removing_postage = null;
$this->max_usage = null;
$this->is_available_on_special_offers = null;
$this->is_used = null;
$this->serialized_conditions = null;
$this->created_at = null;
$this->updated_at = null;
$this->version = null;

View File

@@ -25,14 +25,14 @@ use Thelia\Model\Map\CouponVersionTableMap;
* @method ChildCouponVersionQuery orderByCode($order = Criteria::ASC) Order by the code column
* @method ChildCouponVersionQuery orderByType($order = Criteria::ASC) Order by the type column
* @method ChildCouponVersionQuery orderByAmount($order = Criteria::ASC) Order by the amount column
* @method ChildCouponVersionQuery orderByIsUsed($order = Criteria::ASC) Order by the is_used column
* @method ChildCouponVersionQuery orderByIsEnabled($order = Criteria::ASC) Order by the is_enabled column
* @method ChildCouponVersionQuery orderByExpirationDate($order = Criteria::ASC) Order by the expiration_date column
* @method ChildCouponVersionQuery orderBySerializedRules($order = Criteria::ASC) Order by the serialized_rules column
* @method ChildCouponVersionQuery orderByMaxUsage($order = Criteria::ASC) Order by the max_usage column
* @method ChildCouponVersionQuery orderByIsCumulative($order = Criteria::ASC) Order by the is_cumulative column
* @method ChildCouponVersionQuery orderByIsRemovingPostage($order = Criteria::ASC) Order by the is_removing_postage column
* @method ChildCouponVersionQuery orderByMaxUsage($order = Criteria::ASC) Order by the max_usage column
* @method ChildCouponVersionQuery orderByIsAvailableOnSpecialOffers($order = Criteria::ASC) Order by the is_available_on_special_offers column
* @method ChildCouponVersionQuery orderByIsUsed($order = Criteria::ASC) Order by the is_used column
* @method ChildCouponVersionQuery orderBySerializedConditions($order = Criteria::ASC) Order by the serialized_conditions column
* @method ChildCouponVersionQuery orderByCreatedAt($order = Criteria::ASC) Order by the created_at column
* @method ChildCouponVersionQuery orderByUpdatedAt($order = Criteria::ASC) Order by the updated_at column
* @method ChildCouponVersionQuery orderByVersion($order = Criteria::ASC) Order by the version column
@@ -41,14 +41,14 @@ use Thelia\Model\Map\CouponVersionTableMap;
* @method ChildCouponVersionQuery groupByCode() Group by the code column
* @method ChildCouponVersionQuery groupByType() Group by the type column
* @method ChildCouponVersionQuery groupByAmount() Group by the amount column
* @method ChildCouponVersionQuery groupByIsUsed() Group by the is_used column
* @method ChildCouponVersionQuery groupByIsEnabled() Group by the is_enabled column
* @method ChildCouponVersionQuery groupByExpirationDate() Group by the expiration_date column
* @method ChildCouponVersionQuery groupBySerializedRules() Group by the serialized_rules column
* @method ChildCouponVersionQuery groupByMaxUsage() Group by the max_usage column
* @method ChildCouponVersionQuery groupByIsCumulative() Group by the is_cumulative column
* @method ChildCouponVersionQuery groupByIsRemovingPostage() Group by the is_removing_postage column
* @method ChildCouponVersionQuery groupByMaxUsage() Group by the max_usage column
* @method ChildCouponVersionQuery groupByIsAvailableOnSpecialOffers() Group by the is_available_on_special_offers column
* @method ChildCouponVersionQuery groupByIsUsed() Group by the is_used column
* @method ChildCouponVersionQuery groupBySerializedConditions() Group by the serialized_conditions column
* @method ChildCouponVersionQuery groupByCreatedAt() Group by the created_at column
* @method ChildCouponVersionQuery groupByUpdatedAt() Group by the updated_at column
* @method ChildCouponVersionQuery groupByVersion() Group by the version column
@@ -68,14 +68,14 @@ use Thelia\Model\Map\CouponVersionTableMap;
* @method ChildCouponVersion findOneByCode(string $code) Return the first ChildCouponVersion filtered by the code column
* @method ChildCouponVersion findOneByType(string $type) Return the first ChildCouponVersion filtered by the type column
* @method ChildCouponVersion findOneByAmount(double $amount) Return the first ChildCouponVersion filtered by the amount column
* @method ChildCouponVersion findOneByIsUsed(int $is_used) Return the first ChildCouponVersion filtered by the is_used column
* @method ChildCouponVersion findOneByIsEnabled(int $is_enabled) Return the first ChildCouponVersion filtered by the is_enabled column
* @method ChildCouponVersion findOneByIsEnabled(boolean $is_enabled) Return the first ChildCouponVersion filtered by the is_enabled column
* @method ChildCouponVersion findOneByExpirationDate(string $expiration_date) Return the first ChildCouponVersion filtered by the expiration_date column
* @method ChildCouponVersion findOneBySerializedRules(string $serialized_rules) Return the first ChildCouponVersion filtered by the serialized_rules column
* @method ChildCouponVersion findOneByIsCumulative(int $is_cumulative) Return the first ChildCouponVersion filtered by the is_cumulative column
* @method ChildCouponVersion findOneByIsRemovingPostage(int $is_removing_postage) Return the first ChildCouponVersion filtered by the is_removing_postage column
* @method ChildCouponVersion findOneByMaxUsage(int $max_usage) Return the first ChildCouponVersion filtered by the max_usage column
* @method ChildCouponVersion findOneByIsCumulative(boolean $is_cumulative) Return the first ChildCouponVersion filtered by the is_cumulative column
* @method ChildCouponVersion findOneByIsRemovingPostage(boolean $is_removing_postage) Return the first ChildCouponVersion filtered by the is_removing_postage column
* @method ChildCouponVersion findOneByIsAvailableOnSpecialOffers(boolean $is_available_on_special_offers) Return the first ChildCouponVersion filtered by the is_available_on_special_offers column
* @method ChildCouponVersion findOneByIsUsed(boolean $is_used) Return the first ChildCouponVersion filtered by the is_used column
* @method ChildCouponVersion findOneBySerializedConditions(string $serialized_conditions) Return the first ChildCouponVersion filtered by the serialized_conditions column
* @method ChildCouponVersion findOneByCreatedAt(string $created_at) Return the first ChildCouponVersion filtered by the created_at column
* @method ChildCouponVersion findOneByUpdatedAt(string $updated_at) Return the first ChildCouponVersion filtered by the updated_at column
* @method ChildCouponVersion findOneByVersion(int $version) Return the first ChildCouponVersion filtered by the version column
@@ -84,14 +84,14 @@ use Thelia\Model\Map\CouponVersionTableMap;
* @method array findByCode(string $code) Return ChildCouponVersion objects filtered by the code column
* @method array findByType(string $type) Return ChildCouponVersion objects filtered by the type column
* @method array findByAmount(double $amount) Return ChildCouponVersion objects filtered by the amount column
* @method array findByIsUsed(int $is_used) Return ChildCouponVersion objects filtered by the is_used column
* @method array findByIsEnabled(int $is_enabled) Return ChildCouponVersion objects filtered by the is_enabled column
* @method array findByIsEnabled(boolean $is_enabled) Return ChildCouponVersion objects filtered by the is_enabled column
* @method array findByExpirationDate(string $expiration_date) Return ChildCouponVersion objects filtered by the expiration_date column
* @method array findBySerializedRules(string $serialized_rules) Return ChildCouponVersion objects filtered by the serialized_rules column
* @method array findByIsCumulative(int $is_cumulative) Return ChildCouponVersion objects filtered by the is_cumulative column
* @method array findByIsRemovingPostage(int $is_removing_postage) Return ChildCouponVersion objects filtered by the is_removing_postage column
* @method array findByMaxUsage(int $max_usage) Return ChildCouponVersion objects filtered by the max_usage column
* @method array findByIsCumulative(boolean $is_cumulative) Return ChildCouponVersion objects filtered by the is_cumulative column
* @method array findByIsRemovingPostage(boolean $is_removing_postage) Return ChildCouponVersion objects filtered by the is_removing_postage column
* @method array findByIsAvailableOnSpecialOffers(boolean $is_available_on_special_offers) Return ChildCouponVersion objects filtered by the is_available_on_special_offers column
* @method array findByIsUsed(boolean $is_used) Return ChildCouponVersion objects filtered by the is_used column
* @method array findBySerializedConditions(string $serialized_conditions) Return ChildCouponVersion objects filtered by the serialized_conditions column
* @method array findByCreatedAt(string $created_at) Return ChildCouponVersion objects filtered by the created_at column
* @method array findByUpdatedAt(string $updated_at) Return ChildCouponVersion objects filtered by the updated_at column
* @method array findByVersion(int $version) Return ChildCouponVersion objects filtered by the version column
@@ -183,7 +183,7 @@ abstract class CouponVersionQuery extends ModelCriteria
*/
protected function findPkSimple($key, $con)
{
$sql = 'SELECT ID, CODE, TYPE, AMOUNT, IS_USED, IS_ENABLED, EXPIRATION_DATE, SERIALIZED_RULES, IS_CUMULATIVE, IS_REMOVING_POSTAGE, MAX_USAGE, IS_AVAILABLE_ON_SPECIAL_OFFERS, CREATED_AT, UPDATED_AT, VERSION FROM coupon_version WHERE ID = :p0 AND VERSION = :p1';
$sql = 'SELECT ID, CODE, TYPE, AMOUNT, IS_ENABLED, EXPIRATION_DATE, MAX_USAGE, IS_CUMULATIVE, IS_REMOVING_POSTAGE, IS_AVAILABLE_ON_SPECIAL_OFFERS, IS_USED, SERIALIZED_CONDITIONS, CREATED_AT, UPDATED_AT, VERSION FROM coupon_version WHERE ID = :p0 AND VERSION = :p1';
try {
$stmt = $con->prepare($sql);
$stmt->bindValue(':p0', $key[0], PDO::PARAM_INT);
@@ -426,83 +426,28 @@ abstract class CouponVersionQuery extends ModelCriteria
return $this->addUsingAlias(CouponVersionTableMap::AMOUNT, $amount, $comparison);
}
/**
* Filter the query on the is_used column
*
* Example usage:
* <code>
* $query->filterByIsUsed(1234); // WHERE is_used = 1234
* $query->filterByIsUsed(array(12, 34)); // WHERE is_used IN (12, 34)
* $query->filterByIsUsed(array('min' => 12)); // WHERE is_used > 12
* </code>
*
* @param mixed $isUsed The value to use as filter.
* Use scalar values for equality.
* Use array values for in_array() equivalent.
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponVersionQuery The current query, for fluid interface
*/
public function filterByIsUsed($isUsed = null, $comparison = null)
{
if (is_array($isUsed)) {
$useMinMax = false;
if (isset($isUsed['min'])) {
$this->addUsingAlias(CouponVersionTableMap::IS_USED, $isUsed['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($isUsed['max'])) {
$this->addUsingAlias(CouponVersionTableMap::IS_USED, $isUsed['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
}
}
return $this->addUsingAlias(CouponVersionTableMap::IS_USED, $isUsed, $comparison);
}
/**
* Filter the query on the is_enabled column
*
* Example usage:
* <code>
* $query->filterByIsEnabled(1234); // WHERE is_enabled = 1234
* $query->filterByIsEnabled(array(12, 34)); // WHERE is_enabled IN (12, 34)
* $query->filterByIsEnabled(array('min' => 12)); // WHERE is_enabled > 12
* $query->filterByIsEnabled(true); // WHERE is_enabled = true
* $query->filterByIsEnabled('yes'); // WHERE is_enabled = true
* </code>
*
* @param mixed $isEnabled The value to use as filter.
* Use scalar values for equality.
* Use array values for in_array() equivalent.
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
* @param boolean|string $isEnabled The value to use as filter.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponVersionQuery The current query, for fluid interface
*/
public function filterByIsEnabled($isEnabled = null, $comparison = null)
{
if (is_array($isEnabled)) {
$useMinMax = false;
if (isset($isEnabled['min'])) {
$this->addUsingAlias(CouponVersionTableMap::IS_ENABLED, $isEnabled['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($isEnabled['max'])) {
$this->addUsingAlias(CouponVersionTableMap::IS_ENABLED, $isEnabled['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
}
if (is_string($isEnabled)) {
$is_enabled = in_array(strtolower($isEnabled), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
}
return $this->addUsingAlias(CouponVersionTableMap::IS_ENABLED, $isEnabled, $comparison);
@@ -551,117 +496,6 @@ abstract class CouponVersionQuery extends ModelCriteria
return $this->addUsingAlias(CouponVersionTableMap::EXPIRATION_DATE, $expirationDate, $comparison);
}
/**
* Filter the query on the serialized_rules column
*
* Example usage:
* <code>
* $query->filterBySerializedRules('fooValue'); // WHERE serialized_rules = 'fooValue'
* $query->filterBySerializedRules('%fooValue%'); // WHERE serialized_rules LIKE '%fooValue%'
* </code>
*
* @param string $serializedRules The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponVersionQuery The current query, for fluid interface
*/
public function filterBySerializedRules($serializedRules = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($serializedRules)) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $serializedRules)) {
$serializedRules = str_replace('*', '%', $serializedRules);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(CouponVersionTableMap::SERIALIZED_RULES, $serializedRules, $comparison);
}
/**
* Filter the query on the is_cumulative column
*
* Example usage:
* <code>
* $query->filterByIsCumulative(1234); // WHERE is_cumulative = 1234
* $query->filterByIsCumulative(array(12, 34)); // WHERE is_cumulative IN (12, 34)
* $query->filterByIsCumulative(array('min' => 12)); // WHERE is_cumulative > 12
* </code>
*
* @param mixed $isCumulative The value to use as filter.
* Use scalar values for equality.
* Use array values for in_array() equivalent.
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponVersionQuery The current query, for fluid interface
*/
public function filterByIsCumulative($isCumulative = null, $comparison = null)
{
if (is_array($isCumulative)) {
$useMinMax = false;
if (isset($isCumulative['min'])) {
$this->addUsingAlias(CouponVersionTableMap::IS_CUMULATIVE, $isCumulative['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($isCumulative['max'])) {
$this->addUsingAlias(CouponVersionTableMap::IS_CUMULATIVE, $isCumulative['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
}
}
return $this->addUsingAlias(CouponVersionTableMap::IS_CUMULATIVE, $isCumulative, $comparison);
}
/**
* Filter the query on the is_removing_postage column
*
* Example usage:
* <code>
* $query->filterByIsRemovingPostage(1234); // WHERE is_removing_postage = 1234
* $query->filterByIsRemovingPostage(array(12, 34)); // WHERE is_removing_postage IN (12, 34)
* $query->filterByIsRemovingPostage(array('min' => 12)); // WHERE is_removing_postage > 12
* </code>
*
* @param mixed $isRemovingPostage The value to use as filter.
* Use scalar values for equality.
* Use array values for in_array() equivalent.
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponVersionQuery The current query, for fluid interface
*/
public function filterByIsRemovingPostage($isRemovingPostage = null, $comparison = null)
{
if (is_array($isRemovingPostage)) {
$useMinMax = false;
if (isset($isRemovingPostage['min'])) {
$this->addUsingAlias(CouponVersionTableMap::IS_REMOVING_POSTAGE, $isRemovingPostage['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($isRemovingPostage['max'])) {
$this->addUsingAlias(CouponVersionTableMap::IS_REMOVING_POSTAGE, $isRemovingPostage['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
}
}
return $this->addUsingAlias(CouponVersionTableMap::IS_REMOVING_POSTAGE, $isRemovingPostage, $comparison);
}
/**
* Filter the query on the max_usage column
*
@@ -703,6 +537,60 @@ abstract class CouponVersionQuery extends ModelCriteria
return $this->addUsingAlias(CouponVersionTableMap::MAX_USAGE, $maxUsage, $comparison);
}
/**
* Filter the query on the is_cumulative column
*
* Example usage:
* <code>
* $query->filterByIsCumulative(true); // WHERE is_cumulative = true
* $query->filterByIsCumulative('yes'); // WHERE is_cumulative = true
* </code>
*
* @param boolean|string $isCumulative The value to use as filter.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponVersionQuery The current query, for fluid interface
*/
public function filterByIsCumulative($isCumulative = null, $comparison = null)
{
if (is_string($isCumulative)) {
$is_cumulative = in_array(strtolower($isCumulative), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
}
return $this->addUsingAlias(CouponVersionTableMap::IS_CUMULATIVE, $isCumulative, $comparison);
}
/**
* Filter the query on the is_removing_postage column
*
* Example usage:
* <code>
* $query->filterByIsRemovingPostage(true); // WHERE is_removing_postage = true
* $query->filterByIsRemovingPostage('yes'); // WHERE is_removing_postage = true
* </code>
*
* @param boolean|string $isRemovingPostage The value to use as filter.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponVersionQuery The current query, for fluid interface
*/
public function filterByIsRemovingPostage($isRemovingPostage = null, $comparison = null)
{
if (is_string($isRemovingPostage)) {
$is_removing_postage = in_array(strtolower($isRemovingPostage), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
}
return $this->addUsingAlias(CouponVersionTableMap::IS_REMOVING_POSTAGE, $isRemovingPostage, $comparison);
}
/**
* Filter the query on the is_available_on_special_offers column
*
@@ -730,6 +618,62 @@ abstract class CouponVersionQuery extends ModelCriteria
return $this->addUsingAlias(CouponVersionTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS, $isAvailableOnSpecialOffers, $comparison);
}
/**
* Filter the query on the is_used column
*
* Example usage:
* <code>
* $query->filterByIsUsed(true); // WHERE is_used = true
* $query->filterByIsUsed('yes'); // WHERE is_used = true
* </code>
*
* @param boolean|string $isUsed The value to use as filter.
* Non-boolean arguments are converted using the following rules:
* * 1, '1', 'true', 'on', and 'yes' are converted to boolean true
* * 0, '0', 'false', 'off', and 'no' are converted to boolean false
* Check on string values is case insensitive (so 'FaLsE' is seen as 'false').
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponVersionQuery The current query, for fluid interface
*/
public function filterByIsUsed($isUsed = null, $comparison = null)
{
if (is_string($isUsed)) {
$is_used = in_array(strtolower($isUsed), array('false', 'off', '-', 'no', 'n', '0', '')) ? false : true;
}
return $this->addUsingAlias(CouponVersionTableMap::IS_USED, $isUsed, $comparison);
}
/**
* Filter the query on the serialized_conditions column
*
* Example usage:
* <code>
* $query->filterBySerializedConditions('fooValue'); // WHERE serialized_conditions = 'fooValue'
* $query->filterBySerializedConditions('%fooValue%'); // WHERE serialized_conditions LIKE '%fooValue%'
* </code>
*
* @param string $serializedConditions The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCouponVersionQuery The current query, for fluid interface
*/
public function filterBySerializedConditions($serializedConditions = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($serializedConditions)) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $serializedConditions)) {
$serializedConditions = str_replace('*', '%', $serializedConditions);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(CouponVersionTableMap::SERIALIZED_CONDITIONS, $serializedConditions, $comparison);
}
/**
* Filter the query on the created_at column
*

View File

@@ -87,10 +87,10 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
protected $attribute_description;
/**
* The value for the attribute_postscriptumn field.
* The value for the attribute_postscriptum field.
* @var string
*/
protected $attribute_postscriptumn;
protected $attribute_postscriptum;
/**
* The value for the attribute_av_title field.
@@ -451,14 +451,14 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
}
/**
* Get the [attribute_postscriptumn] column value.
* Get the [attribute_postscriptum] column value.
*
* @return string
*/
public function getAttributePostscriptumn()
public function getAttributePostscriptum()
{
return $this->attribute_postscriptumn;
return $this->attribute_postscriptum;
}
/**
@@ -655,25 +655,25 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
} // setAttributeDescription()
/**
* Set the value of [attribute_postscriptumn] column.
* Set the value of [attribute_postscriptum] column.
*
* @param string $v new value
* @return \Thelia\Model\OrderProductAttributeCombination The current object (for fluent API support)
*/
public function setAttributePostscriptumn($v)
public function setAttributePostscriptum($v)
{
if ($v !== null) {
$v = (string) $v;
}
if ($this->attribute_postscriptumn !== $v) {
$this->attribute_postscriptumn = $v;
$this->modifiedColumns[] = OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUMN;
if ($this->attribute_postscriptum !== $v) {
$this->attribute_postscriptum = $v;
$this->modifiedColumns[] = OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUM;
}
return $this;
} // setAttributePostscriptumn()
} // setAttributePostscriptum()
/**
* Set the value of [attribute_av_title] column.
@@ -853,8 +853,8 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : OrderProductAttributeCombinationTableMap::translateFieldName('AttributeDescription', TableMap::TYPE_PHPNAME, $indexType)];
$this->attribute_description = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : OrderProductAttributeCombinationTableMap::translateFieldName('AttributePostscriptumn', TableMap::TYPE_PHPNAME, $indexType)];
$this->attribute_postscriptumn = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : OrderProductAttributeCombinationTableMap::translateFieldName('AttributePostscriptum', TableMap::TYPE_PHPNAME, $indexType)];
$this->attribute_postscriptum = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : OrderProductAttributeCombinationTableMap::translateFieldName('AttributeAvTitle', TableMap::TYPE_PHPNAME, $indexType)];
$this->attribute_av_title = (null !== $col) ? (string) $col : null;
@@ -1138,8 +1138,8 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_DESCRIPTION)) {
$modifiedColumns[':p' . $index++] = 'ATTRIBUTE_DESCRIPTION';
}
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUMN)) {
$modifiedColumns[':p' . $index++] = 'ATTRIBUTE_POSTSCRIPTUMN';
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUM)) {
$modifiedColumns[':p' . $index++] = 'ATTRIBUTE_POSTSCRIPTUM';
}
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_TITLE)) {
$modifiedColumns[':p' . $index++] = 'ATTRIBUTE_AV_TITLE';
@@ -1185,8 +1185,8 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
case 'ATTRIBUTE_DESCRIPTION':
$stmt->bindValue($identifier, $this->attribute_description, PDO::PARAM_STR);
break;
case 'ATTRIBUTE_POSTSCRIPTUMN':
$stmt->bindValue($identifier, $this->attribute_postscriptumn, PDO::PARAM_STR);
case 'ATTRIBUTE_POSTSCRIPTUM':
$stmt->bindValue($identifier, $this->attribute_postscriptum, PDO::PARAM_STR);
break;
case 'ATTRIBUTE_AV_TITLE':
$stmt->bindValue($identifier, $this->attribute_av_title, PDO::PARAM_STR);
@@ -1284,7 +1284,7 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
return $this->getAttributeDescription();
break;
case 5:
return $this->getAttributePostscriptumn();
return $this->getAttributePostscriptum();
break;
case 6:
return $this->getAttributeAvTitle();
@@ -1338,7 +1338,7 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
$keys[2] => $this->getAttributeTitle(),
$keys[3] => $this->getAttributeChapo(),
$keys[4] => $this->getAttributeDescription(),
$keys[5] => $this->getAttributePostscriptumn(),
$keys[5] => $this->getAttributePostscriptum(),
$keys[6] => $this->getAttributeAvTitle(),
$keys[7] => $this->getAttributeAvChapo(),
$keys[8] => $this->getAttributeAvDescription(),
@@ -1406,7 +1406,7 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
$this->setAttributeDescription($value);
break;
case 5:
$this->setAttributePostscriptumn($value);
$this->setAttributePostscriptum($value);
break;
case 6:
$this->setAttributeAvTitle($value);
@@ -1455,7 +1455,7 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
if (array_key_exists($keys[2], $arr)) $this->setAttributeTitle($arr[$keys[2]]);
if (array_key_exists($keys[3], $arr)) $this->setAttributeChapo($arr[$keys[3]]);
if (array_key_exists($keys[4], $arr)) $this->setAttributeDescription($arr[$keys[4]]);
if (array_key_exists($keys[5], $arr)) $this->setAttributePostscriptumn($arr[$keys[5]]);
if (array_key_exists($keys[5], $arr)) $this->setAttributePostscriptum($arr[$keys[5]]);
if (array_key_exists($keys[6], $arr)) $this->setAttributeAvTitle($arr[$keys[6]]);
if (array_key_exists($keys[7], $arr)) $this->setAttributeAvChapo($arr[$keys[7]]);
if (array_key_exists($keys[8], $arr)) $this->setAttributeAvDescription($arr[$keys[8]]);
@@ -1478,7 +1478,7 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_TITLE)) $criteria->add(OrderProductAttributeCombinationTableMap::ATTRIBUTE_TITLE, $this->attribute_title);
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_CHAPO)) $criteria->add(OrderProductAttributeCombinationTableMap::ATTRIBUTE_CHAPO, $this->attribute_chapo);
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_DESCRIPTION)) $criteria->add(OrderProductAttributeCombinationTableMap::ATTRIBUTE_DESCRIPTION, $this->attribute_description);
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUMN)) $criteria->add(OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUMN, $this->attribute_postscriptumn);
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUM)) $criteria->add(OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUM, $this->attribute_postscriptum);
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_TITLE)) $criteria->add(OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_TITLE, $this->attribute_av_title);
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_CHAPO)) $criteria->add(OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_CHAPO, $this->attribute_av_chapo);
if ($this->isColumnModified(OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_DESCRIPTION)) $criteria->add(OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_DESCRIPTION, $this->attribute_av_description);
@@ -1552,7 +1552,7 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
$copyObj->setAttributeTitle($this->getAttributeTitle());
$copyObj->setAttributeChapo($this->getAttributeChapo());
$copyObj->setAttributeDescription($this->getAttributeDescription());
$copyObj->setAttributePostscriptumn($this->getAttributePostscriptumn());
$copyObj->setAttributePostscriptum($this->getAttributePostscriptum());
$copyObj->setAttributeAvTitle($this->getAttributeAvTitle());
$copyObj->setAttributeAvChapo($this->getAttributeAvChapo());
$copyObj->setAttributeAvDescription($this->getAttributeAvDescription());
@@ -1648,7 +1648,7 @@ abstract class OrderProductAttributeCombination implements ActiveRecordInterface
$this->attribute_title = null;
$this->attribute_chapo = null;
$this->attribute_description = null;
$this->attribute_postscriptumn = null;
$this->attribute_postscriptum = null;
$this->attribute_av_title = null;
$this->attribute_av_chapo = null;
$this->attribute_av_description = null;

View File

@@ -26,7 +26,7 @@ use Thelia\Model\Map\OrderProductAttributeCombinationTableMap;
* @method ChildOrderProductAttributeCombinationQuery orderByAttributeTitle($order = Criteria::ASC) Order by the attribute_title column
* @method ChildOrderProductAttributeCombinationQuery orderByAttributeChapo($order = Criteria::ASC) Order by the attribute_chapo column
* @method ChildOrderProductAttributeCombinationQuery orderByAttributeDescription($order = Criteria::ASC) Order by the attribute_description column
* @method ChildOrderProductAttributeCombinationQuery orderByAttributePostscriptumn($order = Criteria::ASC) Order by the attribute_postscriptumn column
* @method ChildOrderProductAttributeCombinationQuery orderByAttributePostscriptum($order = Criteria::ASC) Order by the attribute_postscriptum column
* @method ChildOrderProductAttributeCombinationQuery orderByAttributeAvTitle($order = Criteria::ASC) Order by the attribute_av_title column
* @method ChildOrderProductAttributeCombinationQuery orderByAttributeAvChapo($order = Criteria::ASC) Order by the attribute_av_chapo column
* @method ChildOrderProductAttributeCombinationQuery orderByAttributeAvDescription($order = Criteria::ASC) Order by the attribute_av_description column
@@ -39,7 +39,7 @@ use Thelia\Model\Map\OrderProductAttributeCombinationTableMap;
* @method ChildOrderProductAttributeCombinationQuery groupByAttributeTitle() Group by the attribute_title column
* @method ChildOrderProductAttributeCombinationQuery groupByAttributeChapo() Group by the attribute_chapo column
* @method ChildOrderProductAttributeCombinationQuery groupByAttributeDescription() Group by the attribute_description column
* @method ChildOrderProductAttributeCombinationQuery groupByAttributePostscriptumn() Group by the attribute_postscriptumn column
* @method ChildOrderProductAttributeCombinationQuery groupByAttributePostscriptum() Group by the attribute_postscriptum column
* @method ChildOrderProductAttributeCombinationQuery groupByAttributeAvTitle() Group by the attribute_av_title column
* @method ChildOrderProductAttributeCombinationQuery groupByAttributeAvChapo() Group by the attribute_av_chapo column
* @method ChildOrderProductAttributeCombinationQuery groupByAttributeAvDescription() Group by the attribute_av_description column
@@ -63,7 +63,7 @@ use Thelia\Model\Map\OrderProductAttributeCombinationTableMap;
* @method ChildOrderProductAttributeCombination findOneByAttributeTitle(string $attribute_title) Return the first ChildOrderProductAttributeCombination filtered by the attribute_title column
* @method ChildOrderProductAttributeCombination findOneByAttributeChapo(string $attribute_chapo) Return the first ChildOrderProductAttributeCombination filtered by the attribute_chapo column
* @method ChildOrderProductAttributeCombination findOneByAttributeDescription(string $attribute_description) Return the first ChildOrderProductAttributeCombination filtered by the attribute_description column
* @method ChildOrderProductAttributeCombination findOneByAttributePostscriptumn(string $attribute_postscriptumn) Return the first ChildOrderProductAttributeCombination filtered by the attribute_postscriptumn column
* @method ChildOrderProductAttributeCombination findOneByAttributePostscriptum(string $attribute_postscriptum) Return the first ChildOrderProductAttributeCombination filtered by the attribute_postscriptum column
* @method ChildOrderProductAttributeCombination findOneByAttributeAvTitle(string $attribute_av_title) Return the first ChildOrderProductAttributeCombination filtered by the attribute_av_title column
* @method ChildOrderProductAttributeCombination findOneByAttributeAvChapo(string $attribute_av_chapo) Return the first ChildOrderProductAttributeCombination filtered by the attribute_av_chapo column
* @method ChildOrderProductAttributeCombination findOneByAttributeAvDescription(string $attribute_av_description) Return the first ChildOrderProductAttributeCombination filtered by the attribute_av_description column
@@ -76,7 +76,7 @@ use Thelia\Model\Map\OrderProductAttributeCombinationTableMap;
* @method array findByAttributeTitle(string $attribute_title) Return ChildOrderProductAttributeCombination objects filtered by the attribute_title column
* @method array findByAttributeChapo(string $attribute_chapo) Return ChildOrderProductAttributeCombination objects filtered by the attribute_chapo column
* @method array findByAttributeDescription(string $attribute_description) Return ChildOrderProductAttributeCombination objects filtered by the attribute_description column
* @method array findByAttributePostscriptumn(string $attribute_postscriptumn) Return ChildOrderProductAttributeCombination objects filtered by the attribute_postscriptumn column
* @method array findByAttributePostscriptum(string $attribute_postscriptum) Return ChildOrderProductAttributeCombination objects filtered by the attribute_postscriptum column
* @method array findByAttributeAvTitle(string $attribute_av_title) Return ChildOrderProductAttributeCombination objects filtered by the attribute_av_title column
* @method array findByAttributeAvChapo(string $attribute_av_chapo) Return ChildOrderProductAttributeCombination objects filtered by the attribute_av_chapo column
* @method array findByAttributeAvDescription(string $attribute_av_description) Return ChildOrderProductAttributeCombination objects filtered by the attribute_av_description column
@@ -171,7 +171,7 @@ abstract class OrderProductAttributeCombinationQuery extends ModelCriteria
*/
protected function findPkSimple($key, $con)
{
$sql = 'SELECT ID, ORDER_PRODUCT_ID, ATTRIBUTE_TITLE, ATTRIBUTE_CHAPO, ATTRIBUTE_DESCRIPTION, ATTRIBUTE_POSTSCRIPTUMN, ATTRIBUTE_AV_TITLE, ATTRIBUTE_AV_CHAPO, ATTRIBUTE_AV_DESCRIPTION, ATTRIBUTE_AV_POSTSCRIPTUM, CREATED_AT, UPDATED_AT FROM order_product_attribute_combination WHERE ID = :p0';
$sql = 'SELECT ID, ORDER_PRODUCT_ID, ATTRIBUTE_TITLE, ATTRIBUTE_CHAPO, ATTRIBUTE_DESCRIPTION, ATTRIBUTE_POSTSCRIPTUM, ATTRIBUTE_AV_TITLE, ATTRIBUTE_AV_CHAPO, ATTRIBUTE_AV_DESCRIPTION, ATTRIBUTE_AV_POSTSCRIPTUM, CREATED_AT, UPDATED_AT FROM order_product_attribute_combination WHERE ID = :p0';
try {
$stmt = $con->prepare($sql);
$stmt->bindValue(':p0', $key, PDO::PARAM_INT);
@@ -432,32 +432,32 @@ abstract class OrderProductAttributeCombinationQuery extends ModelCriteria
}
/**
* Filter the query on the attribute_postscriptumn column
* Filter the query on the attribute_postscriptum column
*
* Example usage:
* <code>
* $query->filterByAttributePostscriptumn('fooValue'); // WHERE attribute_postscriptumn = 'fooValue'
* $query->filterByAttributePostscriptumn('%fooValue%'); // WHERE attribute_postscriptumn LIKE '%fooValue%'
* $query->filterByAttributePostscriptum('fooValue'); // WHERE attribute_postscriptum = 'fooValue'
* $query->filterByAttributePostscriptum('%fooValue%'); // WHERE attribute_postscriptum LIKE '%fooValue%'
* </code>
*
* @param string $attributePostscriptumn The value to use as filter.
* @param string $attributePostscriptum The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildOrderProductAttributeCombinationQuery The current query, for fluid interface
*/
public function filterByAttributePostscriptumn($attributePostscriptumn = null, $comparison = null)
public function filterByAttributePostscriptum($attributePostscriptum = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($attributePostscriptumn)) {
if (is_array($attributePostscriptum)) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $attributePostscriptumn)) {
$attributePostscriptumn = str_replace('*', '%', $attributePostscriptumn);
} elseif (preg_match('/[\%\*]/', $attributePostscriptum)) {
$attributePostscriptum = str_replace('*', '%', $attributePostscriptum);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUMN, $attributePostscriptumn, $comparison);
return $this->addUsingAlias(OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUM, $attributePostscriptum, $comparison);
}
/**

View File

@@ -86,6 +86,12 @@ abstract class OrderProductTax implements ActiveRecordInterface
*/
protected $amount;
/**
* The value for the promo_amount field.
* @var double
*/
protected $promo_amount;
/**
* The value for the created_at field.
* @var string
@@ -420,6 +426,17 @@ abstract class OrderProductTax implements ActiveRecordInterface
return $this->amount;
}
/**
* Get the [promo_amount] column value.
*
* @return double
*/
public function getPromoAmount()
{
return $this->promo_amount;
}
/**
* Get the [optionally formatted] temporal [created_at] column value.
*
@@ -569,6 +586,27 @@ abstract class OrderProductTax implements ActiveRecordInterface
return $this;
} // setAmount()
/**
* Set the value of [promo_amount] column.
*
* @param double $v new value
* @return \Thelia\Model\OrderProductTax The current object (for fluent API support)
*/
public function setPromoAmount($v)
{
if ($v !== null) {
$v = (double) $v;
}
if ($this->promo_amount !== $v) {
$this->promo_amount = $v;
$this->modifiedColumns[] = OrderProductTaxTableMap::PROMO_AMOUNT;
}
return $this;
} // setPromoAmount()
/**
* Sets the value of [created_at] column to a normalized version of the date/time value specified.
*
@@ -663,13 +701,16 @@ abstract class OrderProductTax implements ActiveRecordInterface
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : OrderProductTaxTableMap::translateFieldName('Amount', TableMap::TYPE_PHPNAME, $indexType)];
$this->amount = (null !== $col) ? (double) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : OrderProductTaxTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : OrderProductTaxTableMap::translateFieldName('PromoAmount', TableMap::TYPE_PHPNAME, $indexType)];
$this->promo_amount = (null !== $col) ? (double) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : OrderProductTaxTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
if ($col === '0000-00-00 00:00:00') {
$col = null;
}
$this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : OrderProductTaxTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)];
$col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : OrderProductTaxTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)];
if ($col === '0000-00-00 00:00:00') {
$col = null;
}
@@ -682,7 +723,7 @@ abstract class OrderProductTax implements ActiveRecordInterface
$this->ensureConsistency();
}
return $startcol + 7; // 7 = OrderProductTaxTableMap::NUM_HYDRATE_COLUMNS.
return $startcol + 8; // 8 = OrderProductTaxTableMap::NUM_HYDRATE_COLUMNS.
} catch (Exception $e) {
throw new PropelException("Error populating \Thelia\Model\OrderProductTax object", 0, $e);
@@ -933,6 +974,9 @@ abstract class OrderProductTax implements ActiveRecordInterface
if ($this->isColumnModified(OrderProductTaxTableMap::AMOUNT)) {
$modifiedColumns[':p' . $index++] = 'AMOUNT';
}
if ($this->isColumnModified(OrderProductTaxTableMap::PROMO_AMOUNT)) {
$modifiedColumns[':p' . $index++] = 'PROMO_AMOUNT';
}
if ($this->isColumnModified(OrderProductTaxTableMap::CREATED_AT)) {
$modifiedColumns[':p' . $index++] = 'CREATED_AT';
}
@@ -965,6 +1009,9 @@ abstract class OrderProductTax implements ActiveRecordInterface
case 'AMOUNT':
$stmt->bindValue($identifier, $this->amount, PDO::PARAM_STR);
break;
case 'PROMO_AMOUNT':
$stmt->bindValue($identifier, $this->promo_amount, PDO::PARAM_STR);
break;
case 'CREATED_AT':
$stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR);
break;
@@ -1049,9 +1096,12 @@ abstract class OrderProductTax implements ActiveRecordInterface
return $this->getAmount();
break;
case 5:
return $this->getCreatedAt();
return $this->getPromoAmount();
break;
case 6:
return $this->getCreatedAt();
break;
case 7:
return $this->getUpdatedAt();
break;
default:
@@ -1088,8 +1138,9 @@ abstract class OrderProductTax implements ActiveRecordInterface
$keys[2] => $this->getTitle(),
$keys[3] => $this->getDescription(),
$keys[4] => $this->getAmount(),
$keys[5] => $this->getCreatedAt(),
$keys[6] => $this->getUpdatedAt(),
$keys[5] => $this->getPromoAmount(),
$keys[6] => $this->getCreatedAt(),
$keys[7] => $this->getUpdatedAt(),
);
$virtualColumns = $this->virtualColumns;
foreach($virtualColumns as $key => $virtualColumn)
@@ -1151,9 +1202,12 @@ abstract class OrderProductTax implements ActiveRecordInterface
$this->setAmount($value);
break;
case 5:
$this->setCreatedAt($value);
$this->setPromoAmount($value);
break;
case 6:
$this->setCreatedAt($value);
break;
case 7:
$this->setUpdatedAt($value);
break;
} // switch()
@@ -1185,8 +1239,9 @@ abstract class OrderProductTax implements ActiveRecordInterface
if (array_key_exists($keys[2], $arr)) $this->setTitle($arr[$keys[2]]);
if (array_key_exists($keys[3], $arr)) $this->setDescription($arr[$keys[3]]);
if (array_key_exists($keys[4], $arr)) $this->setAmount($arr[$keys[4]]);
if (array_key_exists($keys[5], $arr)) $this->setCreatedAt($arr[$keys[5]]);
if (array_key_exists($keys[6], $arr)) $this->setUpdatedAt($arr[$keys[6]]);
if (array_key_exists($keys[5], $arr)) $this->setPromoAmount($arr[$keys[5]]);
if (array_key_exists($keys[6], $arr)) $this->setCreatedAt($arr[$keys[6]]);
if (array_key_exists($keys[7], $arr)) $this->setUpdatedAt($arr[$keys[7]]);
}
/**
@@ -1203,6 +1258,7 @@ abstract class OrderProductTax implements ActiveRecordInterface
if ($this->isColumnModified(OrderProductTaxTableMap::TITLE)) $criteria->add(OrderProductTaxTableMap::TITLE, $this->title);
if ($this->isColumnModified(OrderProductTaxTableMap::DESCRIPTION)) $criteria->add(OrderProductTaxTableMap::DESCRIPTION, $this->description);
if ($this->isColumnModified(OrderProductTaxTableMap::AMOUNT)) $criteria->add(OrderProductTaxTableMap::AMOUNT, $this->amount);
if ($this->isColumnModified(OrderProductTaxTableMap::PROMO_AMOUNT)) $criteria->add(OrderProductTaxTableMap::PROMO_AMOUNT, $this->promo_amount);
if ($this->isColumnModified(OrderProductTaxTableMap::CREATED_AT)) $criteria->add(OrderProductTaxTableMap::CREATED_AT, $this->created_at);
if ($this->isColumnModified(OrderProductTaxTableMap::UPDATED_AT)) $criteria->add(OrderProductTaxTableMap::UPDATED_AT, $this->updated_at);
@@ -1272,6 +1328,7 @@ abstract class OrderProductTax implements ActiveRecordInterface
$copyObj->setTitle($this->getTitle());
$copyObj->setDescription($this->getDescription());
$copyObj->setAmount($this->getAmount());
$copyObj->setPromoAmount($this->getPromoAmount());
$copyObj->setCreatedAt($this->getCreatedAt());
$copyObj->setUpdatedAt($this->getUpdatedAt());
if ($makeNew) {
@@ -1363,6 +1420,7 @@ abstract class OrderProductTax implements ActiveRecordInterface
$this->title = null;
$this->description = null;
$this->amount = null;
$this->promo_amount = null;
$this->created_at = null;
$this->updated_at = null;
$this->alreadyInSave = false;

View File

@@ -26,6 +26,7 @@ use Thelia\Model\Map\OrderProductTaxTableMap;
* @method ChildOrderProductTaxQuery orderByTitle($order = Criteria::ASC) Order by the title column
* @method ChildOrderProductTaxQuery orderByDescription($order = Criteria::ASC) Order by the description column
* @method ChildOrderProductTaxQuery orderByAmount($order = Criteria::ASC) Order by the amount column
* @method ChildOrderProductTaxQuery orderByPromoAmount($order = Criteria::ASC) Order by the promo_amount column
* @method ChildOrderProductTaxQuery orderByCreatedAt($order = Criteria::ASC) Order by the created_at column
* @method ChildOrderProductTaxQuery orderByUpdatedAt($order = Criteria::ASC) Order by the updated_at column
*
@@ -34,6 +35,7 @@ use Thelia\Model\Map\OrderProductTaxTableMap;
* @method ChildOrderProductTaxQuery groupByTitle() Group by the title column
* @method ChildOrderProductTaxQuery groupByDescription() Group by the description column
* @method ChildOrderProductTaxQuery groupByAmount() Group by the amount column
* @method ChildOrderProductTaxQuery groupByPromoAmount() Group by the promo_amount column
* @method ChildOrderProductTaxQuery groupByCreatedAt() Group by the created_at column
* @method ChildOrderProductTaxQuery groupByUpdatedAt() Group by the updated_at column
*
@@ -53,6 +55,7 @@ use Thelia\Model\Map\OrderProductTaxTableMap;
* @method ChildOrderProductTax findOneByTitle(string $title) Return the first ChildOrderProductTax filtered by the title column
* @method ChildOrderProductTax findOneByDescription(string $description) Return the first ChildOrderProductTax filtered by the description column
* @method ChildOrderProductTax findOneByAmount(double $amount) Return the first ChildOrderProductTax filtered by the amount column
* @method ChildOrderProductTax findOneByPromoAmount(double $promo_amount) Return the first ChildOrderProductTax filtered by the promo_amount column
* @method ChildOrderProductTax findOneByCreatedAt(string $created_at) Return the first ChildOrderProductTax filtered by the created_at column
* @method ChildOrderProductTax findOneByUpdatedAt(string $updated_at) Return the first ChildOrderProductTax filtered by the updated_at column
*
@@ -61,6 +64,7 @@ use Thelia\Model\Map\OrderProductTaxTableMap;
* @method array findByTitle(string $title) Return ChildOrderProductTax objects filtered by the title column
* @method array findByDescription(string $description) Return ChildOrderProductTax objects filtered by the description column
* @method array findByAmount(double $amount) Return ChildOrderProductTax objects filtered by the amount column
* @method array findByPromoAmount(double $promo_amount) Return ChildOrderProductTax objects filtered by the promo_amount column
* @method array findByCreatedAt(string $created_at) Return ChildOrderProductTax objects filtered by the created_at column
* @method array findByUpdatedAt(string $updated_at) Return ChildOrderProductTax objects filtered by the updated_at column
*
@@ -151,7 +155,7 @@ abstract class OrderProductTaxQuery extends ModelCriteria
*/
protected function findPkSimple($key, $con)
{
$sql = 'SELECT ID, ORDER_PRODUCT_ID, TITLE, DESCRIPTION, AMOUNT, CREATED_AT, UPDATED_AT FROM order_product_tax WHERE ID = :p0';
$sql = 'SELECT ID, ORDER_PRODUCT_ID, TITLE, DESCRIPTION, AMOUNT, PROMO_AMOUNT, CREATED_AT, UPDATED_AT FROM order_product_tax WHERE ID = :p0';
try {
$stmt = $con->prepare($sql);
$stmt->bindValue(':p0', $key, PDO::PARAM_INT);
@@ -423,6 +427,47 @@ abstract class OrderProductTaxQuery extends ModelCriteria
return $this->addUsingAlias(OrderProductTaxTableMap::AMOUNT, $amount, $comparison);
}
/**
* Filter the query on the promo_amount column
*
* Example usage:
* <code>
* $query->filterByPromoAmount(1234); // WHERE promo_amount = 1234
* $query->filterByPromoAmount(array(12, 34)); // WHERE promo_amount IN (12, 34)
* $query->filterByPromoAmount(array('min' => 12)); // WHERE promo_amount > 12
* </code>
*
* @param mixed $promoAmount The value to use as filter.
* Use scalar values for equality.
* Use array values for in_array() equivalent.
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildOrderProductTaxQuery The current query, for fluid interface
*/
public function filterByPromoAmount($promoAmount = null, $comparison = null)
{
if (is_array($promoAmount)) {
$useMinMax = false;
if (isset($promoAmount['min'])) {
$this->addUsingAlias(OrderProductTaxTableMap::PROMO_AMOUNT, $promoAmount['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($promoAmount['max'])) {
$this->addUsingAlias(OrderProductTaxTableMap::PROMO_AMOUNT, $promoAmount['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
}
}
return $this->addUsingAlias(OrderProductTaxTableMap::PROMO_AMOUNT, $promoAmount, $comparison);
}
/**
* Filter the query on the created_at column
*

View File

@@ -25,7 +25,7 @@ namespace Thelia\Model;
use Propel\Runtime\Propel;
use Thelia\Constraint\Rule\CouponRuleInterface;
use Thelia\Coupon\CouponRuleCollection;
use Thelia\Coupon\ConditionCollection;
use Thelia\Model\Base\Coupon as BaseCoupon;
use Thelia\Model\Map\CouponTableMap;
@@ -54,7 +54,7 @@ class Coupon extends BaseCoupon
* @param string $code Coupon Code
* @param string $title Coupon title
* @param float $amount Amount removed from the Total Checkout
* @param string $effect Coupon effect
* @param string $type Coupon type
* @param bool $isRemovingPostage Is removing Postage
* @param string $shortDescription Coupon short description
* @param string $description Coupon description
@@ -63,17 +63,18 @@ class Coupon extends BaseCoupon
* @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)
*
* @throws \Exception
*/
function createOrUpdate($code, $title, $amount, $effect, $isRemovingPostage, $shortDescription, $description, $isEnabled, $expirationDate, $isAvailableOnSpecialOffers, $isCumulative, $maxUsage, $locale = null)
function createOrUpdate($code, $title, $amount, $type, $isRemovingPostage, $shortDescription, $description, $isEnabled, $expirationDate, $isAvailableOnSpecialOffers, $isCumulative, $maxUsage, $defaultSerializedRule, $locale = null)
{
$this->setCode($code)
->setTitle($title)
->setShortDescription($shortDescription)
->setDescription($description)
->setType($effect)
->setType($type)
->setAmount($amount)
->setIsRemovingPostage($isRemovingPostage)
->setIsEnabled($isEnabled)
@@ -82,6 +83,11 @@ class Coupon extends BaseCoupon
->setIsCumulative($isCumulative)
->setMaxUsage($maxUsage);
// If no rule given, set default rule
if (null === $this->getSerializedConditions()) {
$this->setSerializedConditions($defaultSerializedRule);
}
// Set object language (i18n)
if (!is_null($locale)) {
$this->setLocale($locale);
@@ -100,16 +106,16 @@ class Coupon extends BaseCoupon
}
/**
* Create or Update this coupon rule
* Create or Update this coupon condition
*
* @param string $serializableRules Serialized rules ready to be saved
* @param string $locale Coupon Language code ISO (ex: fr_FR)
* @param string $serializableConditions Serialized conditions ready to be saved
* @param string $locale Coupon Language code ISO (ex: fr_FR)
*
* @throws \Exception
*/
function createOrUpdateRules($serializableRules, $locale)
public function createOrUpdateConditions($serializableConditions, $locale)
{
$this->setSerializedRules($serializableRules);
$this->setSerializedConditions($serializableConditions);
// Set object language (i18n)
if (!is_null($locale)) {
@@ -121,13 +127,9 @@ class Coupon extends BaseCoupon
try {
$this->save($con);
$con->commit();
} catch(\Exception $e) {
$con->rollback();
throw $e;
}
}
}

View File

@@ -57,7 +57,7 @@ class AttributeTemplateTableMap extends TableMap
/**
* The total number of columns
*/
const NUM_COLUMNS = 7;
const NUM_COLUMNS = 6;
/**
* The number of lazy-loaded columns
@@ -67,7 +67,7 @@ class AttributeTemplateTableMap extends TableMap
/**
* The number of columns to hydrate (NUM_COLUMNS - NUM_LAZY_LOAD_COLUMNS)
*/
const NUM_HYDRATE_COLUMNS = 7;
const NUM_HYDRATE_COLUMNS = 6;
/**
* the column name for the ID field
@@ -89,11 +89,6 @@ class AttributeTemplateTableMap extends TableMap
*/
const POSITION = 'attribute_template.POSITION';
/**
* the column name for the ATTRIBUTE_TEMPLATECOL field
*/
const ATTRIBUTE_TEMPLATECOL = 'attribute_template.ATTRIBUTE_TEMPLATECOL';
/**
* the column name for the CREATED_AT field
*/
@@ -116,12 +111,12 @@ class AttributeTemplateTableMap extends TableMap
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
protected static $fieldNames = array (
self::TYPE_PHPNAME => array('Id', 'AttributeId', 'TemplateId', 'Position', 'AttributeTemplatecol', 'CreatedAt', 'UpdatedAt', ),
self::TYPE_STUDLYPHPNAME => array('id', 'attributeId', 'templateId', 'position', 'attributeTemplatecol', 'createdAt', 'updatedAt', ),
self::TYPE_COLNAME => array(AttributeTemplateTableMap::ID, AttributeTemplateTableMap::ATTRIBUTE_ID, AttributeTemplateTableMap::TEMPLATE_ID, AttributeTemplateTableMap::POSITION, AttributeTemplateTableMap::ATTRIBUTE_TEMPLATECOL, AttributeTemplateTableMap::CREATED_AT, AttributeTemplateTableMap::UPDATED_AT, ),
self::TYPE_RAW_COLNAME => array('ID', 'ATTRIBUTE_ID', 'TEMPLATE_ID', 'POSITION', 'ATTRIBUTE_TEMPLATECOL', 'CREATED_AT', 'UPDATED_AT', ),
self::TYPE_FIELDNAME => array('id', 'attribute_id', 'template_id', 'position', 'attribute_templatecol', 'created_at', 'updated_at', ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, )
self::TYPE_PHPNAME => array('Id', 'AttributeId', 'TemplateId', 'Position', 'CreatedAt', 'UpdatedAt', ),
self::TYPE_STUDLYPHPNAME => array('id', 'attributeId', 'templateId', 'position', 'createdAt', 'updatedAt', ),
self::TYPE_COLNAME => array(AttributeTemplateTableMap::ID, AttributeTemplateTableMap::ATTRIBUTE_ID, AttributeTemplateTableMap::TEMPLATE_ID, AttributeTemplateTableMap::POSITION, AttributeTemplateTableMap::CREATED_AT, AttributeTemplateTableMap::UPDATED_AT, ),
self::TYPE_RAW_COLNAME => array('ID', 'ATTRIBUTE_ID', 'TEMPLATE_ID', 'POSITION', 'CREATED_AT', 'UPDATED_AT', ),
self::TYPE_FIELDNAME => array('id', 'attribute_id', 'template_id', 'position', 'created_at', 'updated_at', ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, )
);
/**
@@ -131,12 +126,12 @@ class AttributeTemplateTableMap extends TableMap
* e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0
*/
protected static $fieldKeys = array (
self::TYPE_PHPNAME => array('Id' => 0, 'AttributeId' => 1, 'TemplateId' => 2, 'Position' => 3, 'AttributeTemplatecol' => 4, 'CreatedAt' => 5, 'UpdatedAt' => 6, ),
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'attributeId' => 1, 'templateId' => 2, 'position' => 3, 'attributeTemplatecol' => 4, 'createdAt' => 5, 'updatedAt' => 6, ),
self::TYPE_COLNAME => array(AttributeTemplateTableMap::ID => 0, AttributeTemplateTableMap::ATTRIBUTE_ID => 1, AttributeTemplateTableMap::TEMPLATE_ID => 2, AttributeTemplateTableMap::POSITION => 3, AttributeTemplateTableMap::ATTRIBUTE_TEMPLATECOL => 4, AttributeTemplateTableMap::CREATED_AT => 5, AttributeTemplateTableMap::UPDATED_AT => 6, ),
self::TYPE_RAW_COLNAME => array('ID' => 0, 'ATTRIBUTE_ID' => 1, 'TEMPLATE_ID' => 2, 'POSITION' => 3, 'ATTRIBUTE_TEMPLATECOL' => 4, 'CREATED_AT' => 5, 'UPDATED_AT' => 6, ),
self::TYPE_FIELDNAME => array('id' => 0, 'attribute_id' => 1, 'template_id' => 2, 'position' => 3, 'attribute_templatecol' => 4, 'created_at' => 5, 'updated_at' => 6, ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, )
self::TYPE_PHPNAME => array('Id' => 0, 'AttributeId' => 1, 'TemplateId' => 2, 'Position' => 3, 'CreatedAt' => 4, 'UpdatedAt' => 5, ),
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'attributeId' => 1, 'templateId' => 2, 'position' => 3, 'createdAt' => 4, 'updatedAt' => 5, ),
self::TYPE_COLNAME => array(AttributeTemplateTableMap::ID => 0, AttributeTemplateTableMap::ATTRIBUTE_ID => 1, AttributeTemplateTableMap::TEMPLATE_ID => 2, AttributeTemplateTableMap::POSITION => 3, AttributeTemplateTableMap::CREATED_AT => 4, AttributeTemplateTableMap::UPDATED_AT => 5, ),
self::TYPE_RAW_COLNAME => array('ID' => 0, 'ATTRIBUTE_ID' => 1, 'TEMPLATE_ID' => 2, 'POSITION' => 3, 'CREATED_AT' => 4, 'UPDATED_AT' => 5, ),
self::TYPE_FIELDNAME => array('id' => 0, 'attribute_id' => 1, 'template_id' => 2, 'position' => 3, 'created_at' => 4, 'updated_at' => 5, ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, )
);
/**
@@ -160,7 +155,6 @@ class AttributeTemplateTableMap extends TableMap
$this->addForeignKey('ATTRIBUTE_ID', 'AttributeId', 'INTEGER', 'attribute', 'ID', true, null, null);
$this->addForeignKey('TEMPLATE_ID', 'TemplateId', 'INTEGER', 'template', 'ID', true, null, null);
$this->addColumn('POSITION', 'Position', 'INTEGER', false, null, null);
$this->addColumn('ATTRIBUTE_TEMPLATECOL', 'AttributeTemplatecol', 'VARCHAR', false, 45, null);
$this->addColumn('CREATED_AT', 'CreatedAt', 'TIMESTAMP', false, null, null);
$this->addColumn('UPDATED_AT', 'UpdatedAt', 'TIMESTAMP', false, null, null);
} // initialize()
@@ -329,7 +323,6 @@ class AttributeTemplateTableMap extends TableMap
$criteria->addSelectColumn(AttributeTemplateTableMap::ATTRIBUTE_ID);
$criteria->addSelectColumn(AttributeTemplateTableMap::TEMPLATE_ID);
$criteria->addSelectColumn(AttributeTemplateTableMap::POSITION);
$criteria->addSelectColumn(AttributeTemplateTableMap::ATTRIBUTE_TEMPLATECOL);
$criteria->addSelectColumn(AttributeTemplateTableMap::CREATED_AT);
$criteria->addSelectColumn(AttributeTemplateTableMap::UPDATED_AT);
} else {
@@ -337,7 +330,6 @@ class AttributeTemplateTableMap extends TableMap
$criteria->addSelectColumn($alias . '.ATTRIBUTE_ID');
$criteria->addSelectColumn($alias . '.TEMPLATE_ID');
$criteria->addSelectColumn($alias . '.POSITION');
$criteria->addSelectColumn($alias . '.ATTRIBUTE_TEMPLATECOL');
$criteria->addSelectColumn($alias . '.CREATED_AT');
$criteria->addSelectColumn($alias . '.UPDATED_AT');
}

View File

@@ -89,11 +89,6 @@ class CouponTableMap extends TableMap
*/
const AMOUNT = 'coupon.AMOUNT';
/**
* the column name for the IS_USED field
*/
const IS_USED = 'coupon.IS_USED';
/**
* the column name for the IS_ENABLED field
*/
@@ -105,9 +100,9 @@ class CouponTableMap extends TableMap
const EXPIRATION_DATE = 'coupon.EXPIRATION_DATE';
/**
* the column name for the SERIALIZED_RULES field
* the column name for the MAX_USAGE field
*/
const SERIALIZED_RULES = 'coupon.SERIALIZED_RULES';
const MAX_USAGE = 'coupon.MAX_USAGE';
/**
* the column name for the IS_CUMULATIVE field
@@ -119,16 +114,21 @@ class CouponTableMap extends TableMap
*/
const IS_REMOVING_POSTAGE = 'coupon.IS_REMOVING_POSTAGE';
/**
* the column name for the MAX_USAGE field
*/
const MAX_USAGE = 'coupon.MAX_USAGE';
/**
* the column name for the IS_AVAILABLE_ON_SPECIAL_OFFERS field
*/
const IS_AVAILABLE_ON_SPECIAL_OFFERS = 'coupon.IS_AVAILABLE_ON_SPECIAL_OFFERS';
/**
* the column name for the IS_USED field
*/
const IS_USED = 'coupon.IS_USED';
/**
* the column name for the SERIALIZED_CONDITIONS field
*/
const SERIALIZED_CONDITIONS = 'coupon.SERIALIZED_CONDITIONS';
/**
* the column name for the CREATED_AT field
*/
@@ -165,11 +165,11 @@ class CouponTableMap extends TableMap
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
protected static $fieldNames = array (
self::TYPE_PHPNAME => array('Id', 'Code', 'Type', 'Amount', 'IsUsed', 'IsEnabled', 'ExpirationDate', 'SerializedRules', 'IsCumulative', 'IsRemovingPostage', 'MaxUsage', 'IsAvailableOnSpecialOffers', 'CreatedAt', 'UpdatedAt', 'Version', ),
self::TYPE_STUDLYPHPNAME => array('id', 'code', 'type', 'amount', 'isUsed', 'isEnabled', 'expirationDate', 'serializedRules', 'isCumulative', 'isRemovingPostage', 'maxUsage', 'isAvailableOnSpecialOffers', 'createdAt', 'updatedAt', 'version', ),
self::TYPE_COLNAME => array(CouponTableMap::ID, CouponTableMap::CODE, CouponTableMap::TYPE, CouponTableMap::AMOUNT, CouponTableMap::IS_USED, CouponTableMap::IS_ENABLED, CouponTableMap::EXPIRATION_DATE, CouponTableMap::SERIALIZED_RULES, CouponTableMap::IS_CUMULATIVE, CouponTableMap::IS_REMOVING_POSTAGE, CouponTableMap::MAX_USAGE, CouponTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS, CouponTableMap::CREATED_AT, CouponTableMap::UPDATED_AT, CouponTableMap::VERSION, ),
self::TYPE_RAW_COLNAME => array('ID', 'CODE', 'TYPE', 'AMOUNT', 'IS_USED', 'IS_ENABLED', 'EXPIRATION_DATE', 'SERIALIZED_RULES', 'IS_CUMULATIVE', 'IS_REMOVING_POSTAGE', 'MAX_USAGE', 'IS_AVAILABLE_ON_SPECIAL_OFFERS', 'CREATED_AT', 'UPDATED_AT', 'VERSION', ),
self::TYPE_FIELDNAME => array('id', 'code', 'type', 'amount', 'is_used', 'is_enabled', 'expiration_date', 'serialized_rules', 'is_cumulative', 'is_removing_postage', 'max_usage', 'is_available_on_special_offers', 'created_at', 'updated_at', 'version', ),
self::TYPE_PHPNAME => array('Id', 'Code', 'Type', 'Amount', 'IsEnabled', 'ExpirationDate', 'MaxUsage', 'IsCumulative', 'IsRemovingPostage', 'IsAvailableOnSpecialOffers', 'IsUsed', 'SerializedConditions', 'CreatedAt', 'UpdatedAt', 'Version', ),
self::TYPE_STUDLYPHPNAME => array('id', 'code', 'type', 'amount', 'isEnabled', 'expirationDate', 'maxUsage', 'isCumulative', 'isRemovingPostage', 'isAvailableOnSpecialOffers', 'isUsed', 'serializedConditions', 'createdAt', 'updatedAt', 'version', ),
self::TYPE_COLNAME => array(CouponTableMap::ID, CouponTableMap::CODE, CouponTableMap::TYPE, CouponTableMap::AMOUNT, CouponTableMap::IS_ENABLED, CouponTableMap::EXPIRATION_DATE, CouponTableMap::MAX_USAGE, CouponTableMap::IS_CUMULATIVE, CouponTableMap::IS_REMOVING_POSTAGE, CouponTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS, CouponTableMap::IS_USED, CouponTableMap::SERIALIZED_CONDITIONS, CouponTableMap::CREATED_AT, CouponTableMap::UPDATED_AT, CouponTableMap::VERSION, ),
self::TYPE_RAW_COLNAME => array('ID', 'CODE', 'TYPE', 'AMOUNT', 'IS_ENABLED', 'EXPIRATION_DATE', 'MAX_USAGE', 'IS_CUMULATIVE', 'IS_REMOVING_POSTAGE', 'IS_AVAILABLE_ON_SPECIAL_OFFERS', 'IS_USED', 'SERIALIZED_CONDITIONS', 'CREATED_AT', 'UPDATED_AT', 'VERSION', ),
self::TYPE_FIELDNAME => array('id', 'code', 'type', 'amount', 'is_enabled', 'expiration_date', 'max_usage', 'is_cumulative', 'is_removing_postage', 'is_available_on_special_offers', 'is_used', 'serialized_conditions', 'created_at', 'updated_at', 'version', ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, )
);
@@ -180,11 +180,11 @@ class CouponTableMap extends TableMap
* e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0
*/
protected static $fieldKeys = array (
self::TYPE_PHPNAME => array('Id' => 0, 'Code' => 1, 'Type' => 2, 'Amount' => 3, 'IsUsed' => 4, 'IsEnabled' => 5, 'ExpirationDate' => 6, 'SerializedRules' => 7, 'IsCumulative' => 8, 'IsRemovingPostage' => 9, 'MaxUsage' => 10, 'IsAvailableOnSpecialOffers' => 11, 'CreatedAt' => 12, 'UpdatedAt' => 13, 'Version' => 14, ),
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'code' => 1, 'type' => 2, 'amount' => 3, 'isUsed' => 4, 'isEnabled' => 5, 'expirationDate' => 6, 'serializedRules' => 7, 'isCumulative' => 8, 'isRemovingPostage' => 9, 'maxUsage' => 10, 'isAvailableOnSpecialOffers' => 11, 'createdAt' => 12, 'updatedAt' => 13, 'version' => 14, ),
self::TYPE_COLNAME => array(CouponTableMap::ID => 0, CouponTableMap::CODE => 1, CouponTableMap::TYPE => 2, CouponTableMap::AMOUNT => 3, CouponTableMap::IS_USED => 4, CouponTableMap::IS_ENABLED => 5, CouponTableMap::EXPIRATION_DATE => 6, CouponTableMap::SERIALIZED_RULES => 7, CouponTableMap::IS_CUMULATIVE => 8, CouponTableMap::IS_REMOVING_POSTAGE => 9, CouponTableMap::MAX_USAGE => 10, CouponTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS => 11, CouponTableMap::CREATED_AT => 12, CouponTableMap::UPDATED_AT => 13, CouponTableMap::VERSION => 14, ),
self::TYPE_RAW_COLNAME => array('ID' => 0, 'CODE' => 1, 'TYPE' => 2, 'AMOUNT' => 3, 'IS_USED' => 4, 'IS_ENABLED' => 5, 'EXPIRATION_DATE' => 6, 'SERIALIZED_RULES' => 7, 'IS_CUMULATIVE' => 8, 'IS_REMOVING_POSTAGE' => 9, 'MAX_USAGE' => 10, 'IS_AVAILABLE_ON_SPECIAL_OFFERS' => 11, 'CREATED_AT' => 12, 'UPDATED_AT' => 13, 'VERSION' => 14, ),
self::TYPE_FIELDNAME => array('id' => 0, 'code' => 1, 'type' => 2, 'amount' => 3, 'is_used' => 4, 'is_enabled' => 5, 'expiration_date' => 6, 'serialized_rules' => 7, 'is_cumulative' => 8, 'is_removing_postage' => 9, 'max_usage' => 10, 'is_available_on_special_offers' => 11, 'created_at' => 12, 'updated_at' => 13, 'version' => 14, ),
self::TYPE_PHPNAME => array('Id' => 0, 'Code' => 1, 'Type' => 2, 'Amount' => 3, 'IsEnabled' => 4, 'ExpirationDate' => 5, 'MaxUsage' => 6, 'IsCumulative' => 7, 'IsRemovingPostage' => 8, 'IsAvailableOnSpecialOffers' => 9, 'IsUsed' => 10, 'SerializedConditions' => 11, 'CreatedAt' => 12, 'UpdatedAt' => 13, 'Version' => 14, ),
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'code' => 1, 'type' => 2, 'amount' => 3, 'isEnabled' => 4, 'expirationDate' => 5, 'maxUsage' => 6, 'isCumulative' => 7, 'isRemovingPostage' => 8, 'isAvailableOnSpecialOffers' => 9, 'isUsed' => 10, 'serializedConditions' => 11, 'createdAt' => 12, 'updatedAt' => 13, 'version' => 14, ),
self::TYPE_COLNAME => array(CouponTableMap::ID => 0, CouponTableMap::CODE => 1, CouponTableMap::TYPE => 2, CouponTableMap::AMOUNT => 3, CouponTableMap::IS_ENABLED => 4, CouponTableMap::EXPIRATION_DATE => 5, CouponTableMap::MAX_USAGE => 6, CouponTableMap::IS_CUMULATIVE => 7, CouponTableMap::IS_REMOVING_POSTAGE => 8, CouponTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS => 9, CouponTableMap::IS_USED => 10, CouponTableMap::SERIALIZED_CONDITIONS => 11, CouponTableMap::CREATED_AT => 12, CouponTableMap::UPDATED_AT => 13, CouponTableMap::VERSION => 14, ),
self::TYPE_RAW_COLNAME => array('ID' => 0, 'CODE' => 1, 'TYPE' => 2, 'AMOUNT' => 3, 'IS_ENABLED' => 4, 'EXPIRATION_DATE' => 5, 'MAX_USAGE' => 6, 'IS_CUMULATIVE' => 7, 'IS_REMOVING_POSTAGE' => 8, 'IS_AVAILABLE_ON_SPECIAL_OFFERS' => 9, 'IS_USED' => 10, 'SERIALIZED_CONDITIONS' => 11, 'CREATED_AT' => 12, 'UPDATED_AT' => 13, 'VERSION' => 14, ),
self::TYPE_FIELDNAME => array('id' => 0, 'code' => 1, 'type' => 2, 'amount' => 3, 'is_enabled' => 4, 'expiration_date' => 5, 'max_usage' => 6, 'is_cumulative' => 7, 'is_removing_postage' => 8, 'is_available_on_special_offers' => 9, 'is_used' => 10, 'serialized_conditions' => 11, 'created_at' => 12, 'updated_at' => 13, 'version' => 14, ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, )
);
@@ -208,14 +208,14 @@ class CouponTableMap extends TableMap
$this->addColumn('CODE', 'Code', 'VARCHAR', true, 45, null);
$this->addColumn('TYPE', 'Type', 'VARCHAR', true, 255, null);
$this->addColumn('AMOUNT', 'Amount', 'FLOAT', true, null, null);
$this->addColumn('IS_USED', 'IsUsed', 'TINYINT', true, null, null);
$this->addColumn('IS_ENABLED', 'IsEnabled', 'TINYINT', true, null, null);
$this->addColumn('IS_ENABLED', 'IsEnabled', 'BOOLEAN', true, 1, null);
$this->addColumn('EXPIRATION_DATE', 'ExpirationDate', 'TIMESTAMP', true, null, null);
$this->addColumn('SERIALIZED_RULES', 'SerializedRules', 'LONGVARCHAR', true, null, null);
$this->addColumn('IS_CUMULATIVE', 'IsCumulative', 'TINYINT', true, null, null);
$this->addColumn('IS_REMOVING_POSTAGE', 'IsRemovingPostage', 'TINYINT', true, null, null);
$this->addColumn('MAX_USAGE', 'MaxUsage', 'INTEGER', true, null, null);
$this->addColumn('IS_CUMULATIVE', 'IsCumulative', 'BOOLEAN', true, 1, null);
$this->addColumn('IS_REMOVING_POSTAGE', 'IsRemovingPostage', 'BOOLEAN', true, 1, null);
$this->addColumn('IS_AVAILABLE_ON_SPECIAL_OFFERS', 'IsAvailableOnSpecialOffers', 'BOOLEAN', true, 1, null);
$this->addColumn('IS_USED', 'IsUsed', 'BOOLEAN', true, 1, null);
$this->addColumn('SERIALIZED_CONDITIONS', 'SerializedConditions', 'LONGVARCHAR', true, null, null);
$this->addColumn('CREATED_AT', 'CreatedAt', 'TIMESTAMP', false, null, null);
$this->addColumn('UPDATED_AT', 'UpdatedAt', 'TIMESTAMP', false, null, null);
$this->addColumn('VERSION', 'Version', 'INTEGER', false, null, 0);
@@ -397,14 +397,14 @@ class CouponTableMap extends TableMap
$criteria->addSelectColumn(CouponTableMap::CODE);
$criteria->addSelectColumn(CouponTableMap::TYPE);
$criteria->addSelectColumn(CouponTableMap::AMOUNT);
$criteria->addSelectColumn(CouponTableMap::IS_USED);
$criteria->addSelectColumn(CouponTableMap::IS_ENABLED);
$criteria->addSelectColumn(CouponTableMap::EXPIRATION_DATE);
$criteria->addSelectColumn(CouponTableMap::SERIALIZED_RULES);
$criteria->addSelectColumn(CouponTableMap::MAX_USAGE);
$criteria->addSelectColumn(CouponTableMap::IS_CUMULATIVE);
$criteria->addSelectColumn(CouponTableMap::IS_REMOVING_POSTAGE);
$criteria->addSelectColumn(CouponTableMap::MAX_USAGE);
$criteria->addSelectColumn(CouponTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS);
$criteria->addSelectColumn(CouponTableMap::IS_USED);
$criteria->addSelectColumn(CouponTableMap::SERIALIZED_CONDITIONS);
$criteria->addSelectColumn(CouponTableMap::CREATED_AT);
$criteria->addSelectColumn(CouponTableMap::UPDATED_AT);
$criteria->addSelectColumn(CouponTableMap::VERSION);
@@ -413,14 +413,14 @@ class CouponTableMap extends TableMap
$criteria->addSelectColumn($alias . '.CODE');
$criteria->addSelectColumn($alias . '.TYPE');
$criteria->addSelectColumn($alias . '.AMOUNT');
$criteria->addSelectColumn($alias . '.IS_USED');
$criteria->addSelectColumn($alias . '.IS_ENABLED');
$criteria->addSelectColumn($alias . '.EXPIRATION_DATE');
$criteria->addSelectColumn($alias . '.SERIALIZED_RULES');
$criteria->addSelectColumn($alias . '.MAX_USAGE');
$criteria->addSelectColumn($alias . '.IS_CUMULATIVE');
$criteria->addSelectColumn($alias . '.IS_REMOVING_POSTAGE');
$criteria->addSelectColumn($alias . '.MAX_USAGE');
$criteria->addSelectColumn($alias . '.IS_AVAILABLE_ON_SPECIAL_OFFERS');
$criteria->addSelectColumn($alias . '.IS_USED');
$criteria->addSelectColumn($alias . '.SERIALIZED_CONDITIONS');
$criteria->addSelectColumn($alias . '.CREATED_AT');
$criteria->addSelectColumn($alias . '.UPDATED_AT');
$criteria->addSelectColumn($alias . '.VERSION');

View File

@@ -89,11 +89,6 @@ class CouponVersionTableMap extends TableMap
*/
const AMOUNT = 'coupon_version.AMOUNT';
/**
* the column name for the IS_USED field
*/
const IS_USED = 'coupon_version.IS_USED';
/**
* the column name for the IS_ENABLED field
*/
@@ -105,9 +100,9 @@ class CouponVersionTableMap extends TableMap
const EXPIRATION_DATE = 'coupon_version.EXPIRATION_DATE';
/**
* the column name for the SERIALIZED_RULES field
* the column name for the MAX_USAGE field
*/
const SERIALIZED_RULES = 'coupon_version.SERIALIZED_RULES';
const MAX_USAGE = 'coupon_version.MAX_USAGE';
/**
* the column name for the IS_CUMULATIVE field
@@ -119,16 +114,21 @@ class CouponVersionTableMap extends TableMap
*/
const IS_REMOVING_POSTAGE = 'coupon_version.IS_REMOVING_POSTAGE';
/**
* the column name for the MAX_USAGE field
*/
const MAX_USAGE = 'coupon_version.MAX_USAGE';
/**
* the column name for the IS_AVAILABLE_ON_SPECIAL_OFFERS field
*/
const IS_AVAILABLE_ON_SPECIAL_OFFERS = 'coupon_version.IS_AVAILABLE_ON_SPECIAL_OFFERS';
/**
* the column name for the IS_USED field
*/
const IS_USED = 'coupon_version.IS_USED';
/**
* the column name for the SERIALIZED_CONDITIONS field
*/
const SERIALIZED_CONDITIONS = 'coupon_version.SERIALIZED_CONDITIONS';
/**
* the column name for the CREATED_AT field
*/
@@ -156,11 +156,11 @@ class CouponVersionTableMap extends TableMap
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
protected static $fieldNames = array (
self::TYPE_PHPNAME => array('Id', 'Code', 'Type', 'Amount', 'IsUsed', 'IsEnabled', 'ExpirationDate', 'SerializedRules', 'IsCumulative', 'IsRemovingPostage', 'MaxUsage', 'IsAvailableOnSpecialOffers', 'CreatedAt', 'UpdatedAt', 'Version', ),
self::TYPE_STUDLYPHPNAME => array('id', 'code', 'type', 'amount', 'isUsed', 'isEnabled', 'expirationDate', 'serializedRules', 'isCumulative', 'isRemovingPostage', 'maxUsage', 'isAvailableOnSpecialOffers', 'createdAt', 'updatedAt', 'version', ),
self::TYPE_COLNAME => array(CouponVersionTableMap::ID, CouponVersionTableMap::CODE, CouponVersionTableMap::TYPE, CouponVersionTableMap::AMOUNT, CouponVersionTableMap::IS_USED, CouponVersionTableMap::IS_ENABLED, CouponVersionTableMap::EXPIRATION_DATE, CouponVersionTableMap::SERIALIZED_RULES, CouponVersionTableMap::IS_CUMULATIVE, CouponVersionTableMap::IS_REMOVING_POSTAGE, CouponVersionTableMap::MAX_USAGE, CouponVersionTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS, CouponVersionTableMap::CREATED_AT, CouponVersionTableMap::UPDATED_AT, CouponVersionTableMap::VERSION, ),
self::TYPE_RAW_COLNAME => array('ID', 'CODE', 'TYPE', 'AMOUNT', 'IS_USED', 'IS_ENABLED', 'EXPIRATION_DATE', 'SERIALIZED_RULES', 'IS_CUMULATIVE', 'IS_REMOVING_POSTAGE', 'MAX_USAGE', 'IS_AVAILABLE_ON_SPECIAL_OFFERS', 'CREATED_AT', 'UPDATED_AT', 'VERSION', ),
self::TYPE_FIELDNAME => array('id', 'code', 'type', 'amount', 'is_used', 'is_enabled', 'expiration_date', 'serialized_rules', 'is_cumulative', 'is_removing_postage', 'max_usage', 'is_available_on_special_offers', 'created_at', 'updated_at', 'version', ),
self::TYPE_PHPNAME => array('Id', 'Code', 'Type', 'Amount', 'IsEnabled', 'ExpirationDate', 'MaxUsage', 'IsCumulative', 'IsRemovingPostage', 'IsAvailableOnSpecialOffers', 'IsUsed', 'SerializedConditions', 'CreatedAt', 'UpdatedAt', 'Version', ),
self::TYPE_STUDLYPHPNAME => array('id', 'code', 'type', 'amount', 'isEnabled', 'expirationDate', 'maxUsage', 'isCumulative', 'isRemovingPostage', 'isAvailableOnSpecialOffers', 'isUsed', 'serializedConditions', 'createdAt', 'updatedAt', 'version', ),
self::TYPE_COLNAME => array(CouponVersionTableMap::ID, CouponVersionTableMap::CODE, CouponVersionTableMap::TYPE, CouponVersionTableMap::AMOUNT, CouponVersionTableMap::IS_ENABLED, CouponVersionTableMap::EXPIRATION_DATE, CouponVersionTableMap::MAX_USAGE, CouponVersionTableMap::IS_CUMULATIVE, CouponVersionTableMap::IS_REMOVING_POSTAGE, CouponVersionTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS, CouponVersionTableMap::IS_USED, CouponVersionTableMap::SERIALIZED_CONDITIONS, CouponVersionTableMap::CREATED_AT, CouponVersionTableMap::UPDATED_AT, CouponVersionTableMap::VERSION, ),
self::TYPE_RAW_COLNAME => array('ID', 'CODE', 'TYPE', 'AMOUNT', 'IS_ENABLED', 'EXPIRATION_DATE', 'MAX_USAGE', 'IS_CUMULATIVE', 'IS_REMOVING_POSTAGE', 'IS_AVAILABLE_ON_SPECIAL_OFFERS', 'IS_USED', 'SERIALIZED_CONDITIONS', 'CREATED_AT', 'UPDATED_AT', 'VERSION', ),
self::TYPE_FIELDNAME => array('id', 'code', 'type', 'amount', 'is_enabled', 'expiration_date', 'max_usage', 'is_cumulative', 'is_removing_postage', 'is_available_on_special_offers', 'is_used', 'serialized_conditions', 'created_at', 'updated_at', 'version', ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, )
);
@@ -171,11 +171,11 @@ class CouponVersionTableMap extends TableMap
* e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0
*/
protected static $fieldKeys = array (
self::TYPE_PHPNAME => array('Id' => 0, 'Code' => 1, 'Type' => 2, 'Amount' => 3, 'IsUsed' => 4, 'IsEnabled' => 5, 'ExpirationDate' => 6, 'SerializedRules' => 7, 'IsCumulative' => 8, 'IsRemovingPostage' => 9, 'MaxUsage' => 10, 'IsAvailableOnSpecialOffers' => 11, 'CreatedAt' => 12, 'UpdatedAt' => 13, 'Version' => 14, ),
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'code' => 1, 'type' => 2, 'amount' => 3, 'isUsed' => 4, 'isEnabled' => 5, 'expirationDate' => 6, 'serializedRules' => 7, 'isCumulative' => 8, 'isRemovingPostage' => 9, 'maxUsage' => 10, 'isAvailableOnSpecialOffers' => 11, 'createdAt' => 12, 'updatedAt' => 13, 'version' => 14, ),
self::TYPE_COLNAME => array(CouponVersionTableMap::ID => 0, CouponVersionTableMap::CODE => 1, CouponVersionTableMap::TYPE => 2, CouponVersionTableMap::AMOUNT => 3, CouponVersionTableMap::IS_USED => 4, CouponVersionTableMap::IS_ENABLED => 5, CouponVersionTableMap::EXPIRATION_DATE => 6, CouponVersionTableMap::SERIALIZED_RULES => 7, CouponVersionTableMap::IS_CUMULATIVE => 8, CouponVersionTableMap::IS_REMOVING_POSTAGE => 9, CouponVersionTableMap::MAX_USAGE => 10, CouponVersionTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS => 11, CouponVersionTableMap::CREATED_AT => 12, CouponVersionTableMap::UPDATED_AT => 13, CouponVersionTableMap::VERSION => 14, ),
self::TYPE_RAW_COLNAME => array('ID' => 0, 'CODE' => 1, 'TYPE' => 2, 'AMOUNT' => 3, 'IS_USED' => 4, 'IS_ENABLED' => 5, 'EXPIRATION_DATE' => 6, 'SERIALIZED_RULES' => 7, 'IS_CUMULATIVE' => 8, 'IS_REMOVING_POSTAGE' => 9, 'MAX_USAGE' => 10, 'IS_AVAILABLE_ON_SPECIAL_OFFERS' => 11, 'CREATED_AT' => 12, 'UPDATED_AT' => 13, 'VERSION' => 14, ),
self::TYPE_FIELDNAME => array('id' => 0, 'code' => 1, 'type' => 2, 'amount' => 3, 'is_used' => 4, 'is_enabled' => 5, 'expiration_date' => 6, 'serialized_rules' => 7, 'is_cumulative' => 8, 'is_removing_postage' => 9, 'max_usage' => 10, 'is_available_on_special_offers' => 11, 'created_at' => 12, 'updated_at' => 13, 'version' => 14, ),
self::TYPE_PHPNAME => array('Id' => 0, 'Code' => 1, 'Type' => 2, 'Amount' => 3, 'IsEnabled' => 4, 'ExpirationDate' => 5, 'MaxUsage' => 6, 'IsCumulative' => 7, 'IsRemovingPostage' => 8, 'IsAvailableOnSpecialOffers' => 9, 'IsUsed' => 10, 'SerializedConditions' => 11, 'CreatedAt' => 12, 'UpdatedAt' => 13, 'Version' => 14, ),
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'code' => 1, 'type' => 2, 'amount' => 3, 'isEnabled' => 4, 'expirationDate' => 5, 'maxUsage' => 6, 'isCumulative' => 7, 'isRemovingPostage' => 8, 'isAvailableOnSpecialOffers' => 9, 'isUsed' => 10, 'serializedConditions' => 11, 'createdAt' => 12, 'updatedAt' => 13, 'version' => 14, ),
self::TYPE_COLNAME => array(CouponVersionTableMap::ID => 0, CouponVersionTableMap::CODE => 1, CouponVersionTableMap::TYPE => 2, CouponVersionTableMap::AMOUNT => 3, CouponVersionTableMap::IS_ENABLED => 4, CouponVersionTableMap::EXPIRATION_DATE => 5, CouponVersionTableMap::MAX_USAGE => 6, CouponVersionTableMap::IS_CUMULATIVE => 7, CouponVersionTableMap::IS_REMOVING_POSTAGE => 8, CouponVersionTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS => 9, CouponVersionTableMap::IS_USED => 10, CouponVersionTableMap::SERIALIZED_CONDITIONS => 11, CouponVersionTableMap::CREATED_AT => 12, CouponVersionTableMap::UPDATED_AT => 13, CouponVersionTableMap::VERSION => 14, ),
self::TYPE_RAW_COLNAME => array('ID' => 0, 'CODE' => 1, 'TYPE' => 2, 'AMOUNT' => 3, 'IS_ENABLED' => 4, 'EXPIRATION_DATE' => 5, 'MAX_USAGE' => 6, 'IS_CUMULATIVE' => 7, 'IS_REMOVING_POSTAGE' => 8, 'IS_AVAILABLE_ON_SPECIAL_OFFERS' => 9, 'IS_USED' => 10, 'SERIALIZED_CONDITIONS' => 11, 'CREATED_AT' => 12, 'UPDATED_AT' => 13, 'VERSION' => 14, ),
self::TYPE_FIELDNAME => array('id' => 0, 'code' => 1, 'type' => 2, 'amount' => 3, 'is_enabled' => 4, 'expiration_date' => 5, 'max_usage' => 6, 'is_cumulative' => 7, 'is_removing_postage' => 8, 'is_available_on_special_offers' => 9, 'is_used' => 10, 'serialized_conditions' => 11, 'created_at' => 12, 'updated_at' => 13, 'version' => 14, ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, )
);
@@ -199,14 +199,14 @@ class CouponVersionTableMap extends TableMap
$this->addColumn('CODE', 'Code', 'VARCHAR', true, 45, null);
$this->addColumn('TYPE', 'Type', 'VARCHAR', true, 255, null);
$this->addColumn('AMOUNT', 'Amount', 'FLOAT', true, null, null);
$this->addColumn('IS_USED', 'IsUsed', 'TINYINT', true, null, null);
$this->addColumn('IS_ENABLED', 'IsEnabled', 'TINYINT', true, null, null);
$this->addColumn('IS_ENABLED', 'IsEnabled', 'BOOLEAN', true, 1, null);
$this->addColumn('EXPIRATION_DATE', 'ExpirationDate', 'TIMESTAMP', true, null, null);
$this->addColumn('SERIALIZED_RULES', 'SerializedRules', 'LONGVARCHAR', true, null, null);
$this->addColumn('IS_CUMULATIVE', 'IsCumulative', 'TINYINT', true, null, null);
$this->addColumn('IS_REMOVING_POSTAGE', 'IsRemovingPostage', 'TINYINT', true, null, null);
$this->addColumn('MAX_USAGE', 'MaxUsage', 'INTEGER', true, null, null);
$this->addColumn('IS_CUMULATIVE', 'IsCumulative', 'BOOLEAN', true, 1, null);
$this->addColumn('IS_REMOVING_POSTAGE', 'IsRemovingPostage', 'BOOLEAN', true, 1, null);
$this->addColumn('IS_AVAILABLE_ON_SPECIAL_OFFERS', 'IsAvailableOnSpecialOffers', 'BOOLEAN', true, 1, null);
$this->addColumn('IS_USED', 'IsUsed', 'BOOLEAN', true, 1, null);
$this->addColumn('SERIALIZED_CONDITIONS', 'SerializedConditions', 'LONGVARCHAR', true, null, null);
$this->addColumn('CREATED_AT', 'CreatedAt', 'TIMESTAMP', false, null, null);
$this->addColumn('UPDATED_AT', 'UpdatedAt', 'TIMESTAMP', false, null, null);
$this->addPrimaryKey('VERSION', 'Version', 'INTEGER', true, null, 0);
@@ -411,14 +411,14 @@ class CouponVersionTableMap extends TableMap
$criteria->addSelectColumn(CouponVersionTableMap::CODE);
$criteria->addSelectColumn(CouponVersionTableMap::TYPE);
$criteria->addSelectColumn(CouponVersionTableMap::AMOUNT);
$criteria->addSelectColumn(CouponVersionTableMap::IS_USED);
$criteria->addSelectColumn(CouponVersionTableMap::IS_ENABLED);
$criteria->addSelectColumn(CouponVersionTableMap::EXPIRATION_DATE);
$criteria->addSelectColumn(CouponVersionTableMap::SERIALIZED_RULES);
$criteria->addSelectColumn(CouponVersionTableMap::MAX_USAGE);
$criteria->addSelectColumn(CouponVersionTableMap::IS_CUMULATIVE);
$criteria->addSelectColumn(CouponVersionTableMap::IS_REMOVING_POSTAGE);
$criteria->addSelectColumn(CouponVersionTableMap::MAX_USAGE);
$criteria->addSelectColumn(CouponVersionTableMap::IS_AVAILABLE_ON_SPECIAL_OFFERS);
$criteria->addSelectColumn(CouponVersionTableMap::IS_USED);
$criteria->addSelectColumn(CouponVersionTableMap::SERIALIZED_CONDITIONS);
$criteria->addSelectColumn(CouponVersionTableMap::CREATED_AT);
$criteria->addSelectColumn(CouponVersionTableMap::UPDATED_AT);
$criteria->addSelectColumn(CouponVersionTableMap::VERSION);
@@ -427,14 +427,14 @@ class CouponVersionTableMap extends TableMap
$criteria->addSelectColumn($alias . '.CODE');
$criteria->addSelectColumn($alias . '.TYPE');
$criteria->addSelectColumn($alias . '.AMOUNT');
$criteria->addSelectColumn($alias . '.IS_USED');
$criteria->addSelectColumn($alias . '.IS_ENABLED');
$criteria->addSelectColumn($alias . '.EXPIRATION_DATE');
$criteria->addSelectColumn($alias . '.SERIALIZED_RULES');
$criteria->addSelectColumn($alias . '.MAX_USAGE');
$criteria->addSelectColumn($alias . '.IS_CUMULATIVE');
$criteria->addSelectColumn($alias . '.IS_REMOVING_POSTAGE');
$criteria->addSelectColumn($alias . '.MAX_USAGE');
$criteria->addSelectColumn($alias . '.IS_AVAILABLE_ON_SPECIAL_OFFERS');
$criteria->addSelectColumn($alias . '.IS_USED');
$criteria->addSelectColumn($alias . '.SERIALIZED_CONDITIONS');
$criteria->addSelectColumn($alias . '.CREATED_AT');
$criteria->addSelectColumn($alias . '.UPDATED_AT');
$criteria->addSelectColumn($alias . '.VERSION');

View File

@@ -95,9 +95,9 @@ class OrderProductAttributeCombinationTableMap extends TableMap
const ATTRIBUTE_DESCRIPTION = 'order_product_attribute_combination.ATTRIBUTE_DESCRIPTION';
/**
* the column name for the ATTRIBUTE_POSTSCRIPTUMN field
* the column name for the ATTRIBUTE_POSTSCRIPTUM field
*/
const ATTRIBUTE_POSTSCRIPTUMN = 'order_product_attribute_combination.ATTRIBUTE_POSTSCRIPTUMN';
const ATTRIBUTE_POSTSCRIPTUM = 'order_product_attribute_combination.ATTRIBUTE_POSTSCRIPTUM';
/**
* the column name for the ATTRIBUTE_AV_TITLE field
@@ -141,11 +141,11 @@ class OrderProductAttributeCombinationTableMap extends TableMap
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
protected static $fieldNames = array (
self::TYPE_PHPNAME => array('Id', 'OrderProductId', 'AttributeTitle', 'AttributeChapo', 'AttributeDescription', 'AttributePostscriptumn', 'AttributeAvTitle', 'AttributeAvChapo', 'AttributeAvDescription', 'AttributeAvPostscriptum', 'CreatedAt', 'UpdatedAt', ),
self::TYPE_STUDLYPHPNAME => array('id', 'orderProductId', 'attributeTitle', 'attributeChapo', 'attributeDescription', 'attributePostscriptumn', 'attributeAvTitle', 'attributeAvChapo', 'attributeAvDescription', 'attributeAvPostscriptum', 'createdAt', 'updatedAt', ),
self::TYPE_COLNAME => array(OrderProductAttributeCombinationTableMap::ID, OrderProductAttributeCombinationTableMap::ORDER_PRODUCT_ID, OrderProductAttributeCombinationTableMap::ATTRIBUTE_TITLE, OrderProductAttributeCombinationTableMap::ATTRIBUTE_CHAPO, OrderProductAttributeCombinationTableMap::ATTRIBUTE_DESCRIPTION, OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUMN, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_TITLE, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_CHAPO, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_DESCRIPTION, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_POSTSCRIPTUM, OrderProductAttributeCombinationTableMap::CREATED_AT, OrderProductAttributeCombinationTableMap::UPDATED_AT, ),
self::TYPE_RAW_COLNAME => array('ID', 'ORDER_PRODUCT_ID', 'ATTRIBUTE_TITLE', 'ATTRIBUTE_CHAPO', 'ATTRIBUTE_DESCRIPTION', 'ATTRIBUTE_POSTSCRIPTUMN', 'ATTRIBUTE_AV_TITLE', 'ATTRIBUTE_AV_CHAPO', 'ATTRIBUTE_AV_DESCRIPTION', 'ATTRIBUTE_AV_POSTSCRIPTUM', 'CREATED_AT', 'UPDATED_AT', ),
self::TYPE_FIELDNAME => array('id', 'order_product_id', 'attribute_title', 'attribute_chapo', 'attribute_description', 'attribute_postscriptumn', 'attribute_av_title', 'attribute_av_chapo', 'attribute_av_description', 'attribute_av_postscriptum', 'created_at', 'updated_at', ),
self::TYPE_PHPNAME => array('Id', 'OrderProductId', 'AttributeTitle', 'AttributeChapo', 'AttributeDescription', 'AttributePostscriptum', 'AttributeAvTitle', 'AttributeAvChapo', 'AttributeAvDescription', 'AttributeAvPostscriptum', 'CreatedAt', 'UpdatedAt', ),
self::TYPE_STUDLYPHPNAME => array('id', 'orderProductId', 'attributeTitle', 'attributeChapo', 'attributeDescription', 'attributePostscriptum', 'attributeAvTitle', 'attributeAvChapo', 'attributeAvDescription', 'attributeAvPostscriptum', 'createdAt', 'updatedAt', ),
self::TYPE_COLNAME => array(OrderProductAttributeCombinationTableMap::ID, OrderProductAttributeCombinationTableMap::ORDER_PRODUCT_ID, OrderProductAttributeCombinationTableMap::ATTRIBUTE_TITLE, OrderProductAttributeCombinationTableMap::ATTRIBUTE_CHAPO, OrderProductAttributeCombinationTableMap::ATTRIBUTE_DESCRIPTION, OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUM, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_TITLE, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_CHAPO, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_DESCRIPTION, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_POSTSCRIPTUM, OrderProductAttributeCombinationTableMap::CREATED_AT, OrderProductAttributeCombinationTableMap::UPDATED_AT, ),
self::TYPE_RAW_COLNAME => array('ID', 'ORDER_PRODUCT_ID', 'ATTRIBUTE_TITLE', 'ATTRIBUTE_CHAPO', 'ATTRIBUTE_DESCRIPTION', 'ATTRIBUTE_POSTSCRIPTUM', 'ATTRIBUTE_AV_TITLE', 'ATTRIBUTE_AV_CHAPO', 'ATTRIBUTE_AV_DESCRIPTION', 'ATTRIBUTE_AV_POSTSCRIPTUM', 'CREATED_AT', 'UPDATED_AT', ),
self::TYPE_FIELDNAME => array('id', 'order_product_id', 'attribute_title', 'attribute_chapo', 'attribute_description', 'attribute_postscriptum', 'attribute_av_title', 'attribute_av_chapo', 'attribute_av_description', 'attribute_av_postscriptum', 'created_at', 'updated_at', ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, )
);
@@ -156,11 +156,11 @@ class OrderProductAttributeCombinationTableMap extends TableMap
* e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0
*/
protected static $fieldKeys = array (
self::TYPE_PHPNAME => array('Id' => 0, 'OrderProductId' => 1, 'AttributeTitle' => 2, 'AttributeChapo' => 3, 'AttributeDescription' => 4, 'AttributePostscriptumn' => 5, 'AttributeAvTitle' => 6, 'AttributeAvChapo' => 7, 'AttributeAvDescription' => 8, 'AttributeAvPostscriptum' => 9, 'CreatedAt' => 10, 'UpdatedAt' => 11, ),
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'orderProductId' => 1, 'attributeTitle' => 2, 'attributeChapo' => 3, 'attributeDescription' => 4, 'attributePostscriptumn' => 5, 'attributeAvTitle' => 6, 'attributeAvChapo' => 7, 'attributeAvDescription' => 8, 'attributeAvPostscriptum' => 9, 'createdAt' => 10, 'updatedAt' => 11, ),
self::TYPE_COLNAME => array(OrderProductAttributeCombinationTableMap::ID => 0, OrderProductAttributeCombinationTableMap::ORDER_PRODUCT_ID => 1, OrderProductAttributeCombinationTableMap::ATTRIBUTE_TITLE => 2, OrderProductAttributeCombinationTableMap::ATTRIBUTE_CHAPO => 3, OrderProductAttributeCombinationTableMap::ATTRIBUTE_DESCRIPTION => 4, OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUMN => 5, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_TITLE => 6, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_CHAPO => 7, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_DESCRIPTION => 8, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_POSTSCRIPTUM => 9, OrderProductAttributeCombinationTableMap::CREATED_AT => 10, OrderProductAttributeCombinationTableMap::UPDATED_AT => 11, ),
self::TYPE_RAW_COLNAME => array('ID' => 0, 'ORDER_PRODUCT_ID' => 1, 'ATTRIBUTE_TITLE' => 2, 'ATTRIBUTE_CHAPO' => 3, 'ATTRIBUTE_DESCRIPTION' => 4, 'ATTRIBUTE_POSTSCRIPTUMN' => 5, 'ATTRIBUTE_AV_TITLE' => 6, 'ATTRIBUTE_AV_CHAPO' => 7, 'ATTRIBUTE_AV_DESCRIPTION' => 8, 'ATTRIBUTE_AV_POSTSCRIPTUM' => 9, 'CREATED_AT' => 10, 'UPDATED_AT' => 11, ),
self::TYPE_FIELDNAME => array('id' => 0, 'order_product_id' => 1, 'attribute_title' => 2, 'attribute_chapo' => 3, 'attribute_description' => 4, 'attribute_postscriptumn' => 5, 'attribute_av_title' => 6, 'attribute_av_chapo' => 7, 'attribute_av_description' => 8, 'attribute_av_postscriptum' => 9, 'created_at' => 10, 'updated_at' => 11, ),
self::TYPE_PHPNAME => array('Id' => 0, 'OrderProductId' => 1, 'AttributeTitle' => 2, 'AttributeChapo' => 3, 'AttributeDescription' => 4, 'AttributePostscriptum' => 5, 'AttributeAvTitle' => 6, 'AttributeAvChapo' => 7, 'AttributeAvDescription' => 8, 'AttributeAvPostscriptum' => 9, 'CreatedAt' => 10, 'UpdatedAt' => 11, ),
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'orderProductId' => 1, 'attributeTitle' => 2, 'attributeChapo' => 3, 'attributeDescription' => 4, 'attributePostscriptum' => 5, 'attributeAvTitle' => 6, 'attributeAvChapo' => 7, 'attributeAvDescription' => 8, 'attributeAvPostscriptum' => 9, 'createdAt' => 10, 'updatedAt' => 11, ),
self::TYPE_COLNAME => array(OrderProductAttributeCombinationTableMap::ID => 0, OrderProductAttributeCombinationTableMap::ORDER_PRODUCT_ID => 1, OrderProductAttributeCombinationTableMap::ATTRIBUTE_TITLE => 2, OrderProductAttributeCombinationTableMap::ATTRIBUTE_CHAPO => 3, OrderProductAttributeCombinationTableMap::ATTRIBUTE_DESCRIPTION => 4, OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUM => 5, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_TITLE => 6, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_CHAPO => 7, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_DESCRIPTION => 8, OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_POSTSCRIPTUM => 9, OrderProductAttributeCombinationTableMap::CREATED_AT => 10, OrderProductAttributeCombinationTableMap::UPDATED_AT => 11, ),
self::TYPE_RAW_COLNAME => array('ID' => 0, 'ORDER_PRODUCT_ID' => 1, 'ATTRIBUTE_TITLE' => 2, 'ATTRIBUTE_CHAPO' => 3, 'ATTRIBUTE_DESCRIPTION' => 4, 'ATTRIBUTE_POSTSCRIPTUM' => 5, 'ATTRIBUTE_AV_TITLE' => 6, 'ATTRIBUTE_AV_CHAPO' => 7, 'ATTRIBUTE_AV_DESCRIPTION' => 8, 'ATTRIBUTE_AV_POSTSCRIPTUM' => 9, 'CREATED_AT' => 10, 'UPDATED_AT' => 11, ),
self::TYPE_FIELDNAME => array('id' => 0, 'order_product_id' => 1, 'attribute_title' => 2, 'attribute_chapo' => 3, 'attribute_description' => 4, 'attribute_postscriptum' => 5, 'attribute_av_title' => 6, 'attribute_av_chapo' => 7, 'attribute_av_description' => 8, 'attribute_av_postscriptum' => 9, 'created_at' => 10, 'updated_at' => 11, ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, )
);
@@ -185,7 +185,7 @@ class OrderProductAttributeCombinationTableMap extends TableMap
$this->addColumn('ATTRIBUTE_TITLE', 'AttributeTitle', 'VARCHAR', true, 255, null);
$this->addColumn('ATTRIBUTE_CHAPO', 'AttributeChapo', 'LONGVARCHAR', false, null, null);
$this->addColumn('ATTRIBUTE_DESCRIPTION', 'AttributeDescription', 'CLOB', false, null, null);
$this->addColumn('ATTRIBUTE_POSTSCRIPTUMN', 'AttributePostscriptumn', 'LONGVARCHAR', false, null, null);
$this->addColumn('ATTRIBUTE_POSTSCRIPTUM', 'AttributePostscriptum', 'LONGVARCHAR', false, null, null);
$this->addColumn('ATTRIBUTE_AV_TITLE', 'AttributeAvTitle', 'VARCHAR', true, 255, null);
$this->addColumn('ATTRIBUTE_AV_CHAPO', 'AttributeAvChapo', 'LONGVARCHAR', false, null, null);
$this->addColumn('ATTRIBUTE_AV_DESCRIPTION', 'AttributeAvDescription', 'CLOB', false, null, null);
@@ -358,7 +358,7 @@ class OrderProductAttributeCombinationTableMap extends TableMap
$criteria->addSelectColumn(OrderProductAttributeCombinationTableMap::ATTRIBUTE_TITLE);
$criteria->addSelectColumn(OrderProductAttributeCombinationTableMap::ATTRIBUTE_CHAPO);
$criteria->addSelectColumn(OrderProductAttributeCombinationTableMap::ATTRIBUTE_DESCRIPTION);
$criteria->addSelectColumn(OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUMN);
$criteria->addSelectColumn(OrderProductAttributeCombinationTableMap::ATTRIBUTE_POSTSCRIPTUM);
$criteria->addSelectColumn(OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_TITLE);
$criteria->addSelectColumn(OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_CHAPO);
$criteria->addSelectColumn(OrderProductAttributeCombinationTableMap::ATTRIBUTE_AV_DESCRIPTION);
@@ -371,7 +371,7 @@ class OrderProductAttributeCombinationTableMap extends TableMap
$criteria->addSelectColumn($alias . '.ATTRIBUTE_TITLE');
$criteria->addSelectColumn($alias . '.ATTRIBUTE_CHAPO');
$criteria->addSelectColumn($alias . '.ATTRIBUTE_DESCRIPTION');
$criteria->addSelectColumn($alias . '.ATTRIBUTE_POSTSCRIPTUMN');
$criteria->addSelectColumn($alias . '.ATTRIBUTE_POSTSCRIPTUM');
$criteria->addSelectColumn($alias . '.ATTRIBUTE_AV_TITLE');
$criteria->addSelectColumn($alias . '.ATTRIBUTE_AV_CHAPO');
$criteria->addSelectColumn($alias . '.ATTRIBUTE_AV_DESCRIPTION');

View File

@@ -57,7 +57,7 @@ class OrderProductTaxTableMap extends TableMap
/**
* The total number of columns
*/
const NUM_COLUMNS = 7;
const NUM_COLUMNS = 8;
/**
* The number of lazy-loaded columns
@@ -67,7 +67,7 @@ class OrderProductTaxTableMap extends TableMap
/**
* The number of columns to hydrate (NUM_COLUMNS - NUM_LAZY_LOAD_COLUMNS)
*/
const NUM_HYDRATE_COLUMNS = 7;
const NUM_HYDRATE_COLUMNS = 8;
/**
* the column name for the ID field
@@ -94,6 +94,11 @@ class OrderProductTaxTableMap extends TableMap
*/
const AMOUNT = 'order_product_tax.AMOUNT';
/**
* the column name for the PROMO_AMOUNT field
*/
const PROMO_AMOUNT = 'order_product_tax.PROMO_AMOUNT';
/**
* the column name for the CREATED_AT field
*/
@@ -116,12 +121,12 @@ class OrderProductTaxTableMap extends TableMap
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
protected static $fieldNames = array (
self::TYPE_PHPNAME => array('Id', 'OrderProductId', 'Title', 'Description', 'Amount', 'CreatedAt', 'UpdatedAt', ),
self::TYPE_STUDLYPHPNAME => array('id', 'orderProductId', 'title', 'description', 'amount', 'createdAt', 'updatedAt', ),
self::TYPE_COLNAME => array(OrderProductTaxTableMap::ID, OrderProductTaxTableMap::ORDER_PRODUCT_ID, OrderProductTaxTableMap::TITLE, OrderProductTaxTableMap::DESCRIPTION, OrderProductTaxTableMap::AMOUNT, OrderProductTaxTableMap::CREATED_AT, OrderProductTaxTableMap::UPDATED_AT, ),
self::TYPE_RAW_COLNAME => array('ID', 'ORDER_PRODUCT_ID', 'TITLE', 'DESCRIPTION', 'AMOUNT', 'CREATED_AT', 'UPDATED_AT', ),
self::TYPE_FIELDNAME => array('id', 'order_product_id', 'title', 'description', 'amount', 'created_at', 'updated_at', ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, )
self::TYPE_PHPNAME => array('Id', 'OrderProductId', 'Title', 'Description', 'Amount', 'PromoAmount', 'CreatedAt', 'UpdatedAt', ),
self::TYPE_STUDLYPHPNAME => array('id', 'orderProductId', 'title', 'description', 'amount', 'promoAmount', 'createdAt', 'updatedAt', ),
self::TYPE_COLNAME => array(OrderProductTaxTableMap::ID, OrderProductTaxTableMap::ORDER_PRODUCT_ID, OrderProductTaxTableMap::TITLE, OrderProductTaxTableMap::DESCRIPTION, OrderProductTaxTableMap::AMOUNT, OrderProductTaxTableMap::PROMO_AMOUNT, OrderProductTaxTableMap::CREATED_AT, OrderProductTaxTableMap::UPDATED_AT, ),
self::TYPE_RAW_COLNAME => array('ID', 'ORDER_PRODUCT_ID', 'TITLE', 'DESCRIPTION', 'AMOUNT', 'PROMO_AMOUNT', 'CREATED_AT', 'UPDATED_AT', ),
self::TYPE_FIELDNAME => array('id', 'order_product_id', 'title', 'description', 'amount', 'promo_amount', 'created_at', 'updated_at', ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, )
);
/**
@@ -131,12 +136,12 @@ class OrderProductTaxTableMap extends TableMap
* e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0
*/
protected static $fieldKeys = array (
self::TYPE_PHPNAME => array('Id' => 0, 'OrderProductId' => 1, 'Title' => 2, 'Description' => 3, 'Amount' => 4, 'CreatedAt' => 5, 'UpdatedAt' => 6, ),
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'orderProductId' => 1, 'title' => 2, 'description' => 3, 'amount' => 4, 'createdAt' => 5, 'updatedAt' => 6, ),
self::TYPE_COLNAME => array(OrderProductTaxTableMap::ID => 0, OrderProductTaxTableMap::ORDER_PRODUCT_ID => 1, OrderProductTaxTableMap::TITLE => 2, OrderProductTaxTableMap::DESCRIPTION => 3, OrderProductTaxTableMap::AMOUNT => 4, OrderProductTaxTableMap::CREATED_AT => 5, OrderProductTaxTableMap::UPDATED_AT => 6, ),
self::TYPE_RAW_COLNAME => array('ID' => 0, 'ORDER_PRODUCT_ID' => 1, 'TITLE' => 2, 'DESCRIPTION' => 3, 'AMOUNT' => 4, 'CREATED_AT' => 5, 'UPDATED_AT' => 6, ),
self::TYPE_FIELDNAME => array('id' => 0, 'order_product_id' => 1, 'title' => 2, 'description' => 3, 'amount' => 4, 'created_at' => 5, 'updated_at' => 6, ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, )
self::TYPE_PHPNAME => array('Id' => 0, 'OrderProductId' => 1, 'Title' => 2, 'Description' => 3, 'Amount' => 4, 'PromoAmount' => 5, 'CreatedAt' => 6, 'UpdatedAt' => 7, ),
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'orderProductId' => 1, 'title' => 2, 'description' => 3, 'amount' => 4, 'promoAmount' => 5, 'createdAt' => 6, 'updatedAt' => 7, ),
self::TYPE_COLNAME => array(OrderProductTaxTableMap::ID => 0, OrderProductTaxTableMap::ORDER_PRODUCT_ID => 1, OrderProductTaxTableMap::TITLE => 2, OrderProductTaxTableMap::DESCRIPTION => 3, OrderProductTaxTableMap::AMOUNT => 4, OrderProductTaxTableMap::PROMO_AMOUNT => 5, OrderProductTaxTableMap::CREATED_AT => 6, OrderProductTaxTableMap::UPDATED_AT => 7, ),
self::TYPE_RAW_COLNAME => array('ID' => 0, 'ORDER_PRODUCT_ID' => 1, 'TITLE' => 2, 'DESCRIPTION' => 3, 'AMOUNT' => 4, 'PROMO_AMOUNT' => 5, 'CREATED_AT' => 6, 'UPDATED_AT' => 7, ),
self::TYPE_FIELDNAME => array('id' => 0, 'order_product_id' => 1, 'title' => 2, 'description' => 3, 'amount' => 4, 'promo_amount' => 5, 'created_at' => 6, 'updated_at' => 7, ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, )
);
/**
@@ -160,6 +165,7 @@ class OrderProductTaxTableMap extends TableMap
$this->addColumn('TITLE', 'Title', 'VARCHAR', true, 255, null);
$this->addColumn('DESCRIPTION', 'Description', 'CLOB', false, null, null);
$this->addColumn('AMOUNT', 'Amount', 'FLOAT', true, null, null);
$this->addColumn('PROMO_AMOUNT', 'PromoAmount', 'FLOAT', false, null, null);
$this->addColumn('CREATED_AT', 'CreatedAt', 'TIMESTAMP', false, null, null);
$this->addColumn('UPDATED_AT', 'UpdatedAt', 'TIMESTAMP', false, null, null);
} // initialize()
@@ -328,6 +334,7 @@ class OrderProductTaxTableMap extends TableMap
$criteria->addSelectColumn(OrderProductTaxTableMap::TITLE);
$criteria->addSelectColumn(OrderProductTaxTableMap::DESCRIPTION);
$criteria->addSelectColumn(OrderProductTaxTableMap::AMOUNT);
$criteria->addSelectColumn(OrderProductTaxTableMap::PROMO_AMOUNT);
$criteria->addSelectColumn(OrderProductTaxTableMap::CREATED_AT);
$criteria->addSelectColumn(OrderProductTaxTableMap::UPDATED_AT);
} else {
@@ -336,6 +343,7 @@ class OrderProductTaxTableMap extends TableMap
$criteria->addSelectColumn($alias . '.TITLE');
$criteria->addSelectColumn($alias . '.DESCRIPTION');
$criteria->addSelectColumn($alias . '.AMOUNT');
$criteria->addSelectColumn($alias . '.PROMO_AMOUNT');
$criteria->addSelectColumn($alias . '.CREATED_AT');
$criteria->addSelectColumn($alias . '.UPDATED_AT');
}

View File

@@ -0,0 +1,461 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Condition\Implementation;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Thelia\Condition\ConditionEvaluator;
use Thelia\Condition\Operators;
use Thelia\Coupon\AdapterInterface;
use Thelia\Coupon\ConditionCollection;
use Thelia\Model\CurrencyQuery;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test ConditionEvaluator Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class ConditionEvaluatorTest extends \PHPUnit_Framework_TestCase
{
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
public function setUp()
{
}
public function testTestSuccess1Rules()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$currencies = CurrencyQuery::create();
$currencies = $currencies->find();
$stubAdapter->expects($this->any())
->method('getAvailableCurrencies')
->will($this->returnValue($currencies));
$stubContainer = $this->getMockBuilder('\Symfony\Component\DependencyInjection\Container')
->disableOriginalConstructor()
->getMock();
$stubMatchForTotalAmountManager = $this->getMockBuilder('\Thelia\Condition\Implementation\MatchForTotalAmountManager')
->disableOriginalConstructor()
->getMock();
$stubMatchForTotalAmountManager->expects($this->any())
->method('isMatching')
->will($this->returnValue(true));
$stubContainer->expects($this->any())
->method('get')
->will($this->returnValue($stubMatchForTotalAmountManager));
$stubContainer->expects($this->any())
->method('has')
->will($this->returnValue(true));
$stubAdapter->expects($this->any())
->method('getContainer')
->will($this->returnValue($stubContainer));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(401.00));
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => '>',
MatchForTotalAmountManager::INPUT2 => '=='
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$conditions = new ConditionCollection();
$conditions->add($condition1);
$conditionEvaluator = new ConditionEvaluator();
$isValid = $conditionEvaluator->isMatching($conditions);
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
public function testTestFail1Rules()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$currencies = CurrencyQuery::create();
$currencies = $currencies->find();
$stubAdapter->expects($this->any())
->method('getAvailableCurrencies')
->will($this->returnValue($currencies));
$stubContainer = $this->getMockBuilder('\Symfony\Component\DependencyInjection\Container')
->disableOriginalConstructor()
->getMock();
$stubMatchForTotalAmountManager = $this->getMockBuilder('\Thelia\Condition\Implementation\MatchForTotalAmountManager')
->disableOriginalConstructor()
->getMock();
$stubMatchForTotalAmountManager->expects($this->any())
->method('isMatching')
->will($this->returnValue(true));
$stubContainer->expects($this->any())
->method('get')
->will($this->returnValue($stubMatchForTotalAmountManager));
$stubContainer->expects($this->any())
->method('has')
->will($this->returnValue(true));
$stubAdapter->expects($this->any())
->method('getContainer')
->will($this->returnValue($stubContainer));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(400.00));
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => '>',
MatchForTotalAmountManager::INPUT2 => '=='
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$conditions = new ConditionCollection();
$conditions->add($condition1);
$conditionEvaluator = new ConditionEvaluator();
$isValid = $conditionEvaluator->isMatching($conditions);
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual, 'Conditions evaluator always think Customer is matching conditions');
}
public function testTestSuccess2Rules()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$currencies = CurrencyQuery::create();
$currencies = $currencies->find();
$stubAdapter->expects($this->any())
->method('getAvailableCurrencies')
->will($this->returnValue($currencies));
$stubContainer = $this->getMockBuilder('\Symfony\Component\DependencyInjection\Container')
->disableOriginalConstructor()
->getMock();
$stubMatchForTotalAmountManager = $this->getMockBuilder('\Thelia\Condition\Implementation\MatchForTotalAmountManager')
->disableOriginalConstructor()
->getMock();
$stubMatchForTotalAmountManager->expects($this->any())
->method('isMatching')
->will($this->returnValue(true));
$stubContainer->expects($this->any())
->method('get')
->will($this->returnValue($stubMatchForTotalAmountManager));
$stubContainer->expects($this->any())
->method('has')
->will($this->returnValue(true));
$stubAdapter->expects($this->any())
->method('getContainer')
->will($this->returnValue($stubContainer));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(401.00));
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(5));
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => '>',
MatchForTotalAmountManager::INPUT2 => '=='
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$condition2 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => '>'
);
$values = array(
MatchForXArticlesManager::INPUT1 => 4
);
$condition2->setValidatorsFromForm($operators, $values);
$conditions = new ConditionCollection();
$conditions->add($condition1);
$conditions->add($condition2);
$conditionEvaluator = new ConditionEvaluator();
$isValid = $conditionEvaluator->isMatching($conditions);
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
public function testTestFail2Rules()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$currencies = CurrencyQuery::create();
$currencies = $currencies->find();
$stubAdapter->expects($this->any())
->method('getAvailableCurrencies')
->will($this->returnValue($currencies));
$stubContainer = $this->getMockBuilder('\Symfony\Component\DependencyInjection\Container')
->disableOriginalConstructor()
->getMock();
$stubMatchForTotalAmountManager = $this->getMockBuilder('\Thelia\Condition\Implementation\MatchForTotalAmountManager')
->disableOriginalConstructor()
->getMock();
$stubMatchForTotalAmountManager->expects($this->any())
->method('isMatching')
->will($this->returnValue(true));
$stubContainer->expects($this->any())
->method('get')
->will($this->returnValue($stubMatchForTotalAmountManager));
$stubContainer->expects($this->any())
->method('has')
->will($this->returnValue(true));
$stubAdapter->expects($this->any())
->method('getContainer')
->will($this->returnValue($stubContainer));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(400.00));
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(5));
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => '>',
MatchForTotalAmountManager::INPUT2 => '=='
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$condition2 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => '>'
);
$values = array(
MatchForXArticlesManager::INPUT1 => 4
);
$condition2->setValidatorsFromForm($operators, $values);
$conditions = new ConditionCollection();
$conditions->add($condition1);
$conditions->add($condition2);
$conditionEvaluator = new ConditionEvaluator();
$isValid = $conditionEvaluator->isMatching($conditions);
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual, 'Conditions evaluator always think Customer is matching conditions');
}
public function testVariableOpComparisonSuccess()
{
$conditionEvaluator = new ConditionEvaluator();
$expected = true;
$actual = $conditionEvaluator->variableOpComparison(1, Operators::EQUAL, 1);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(1, Operators::DIFFERENT, 2);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(1, Operators::SUPERIOR, 0);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(1, Operators::INFERIOR, 2);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(1, Operators::INFERIOR_OR_EQUAL, 1);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(1, Operators::INFERIOR_OR_EQUAL, 2);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(1, Operators::SUPERIOR_OR_EQUAL, 1);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(1, Operators::SUPERIOR_OR_EQUAL, 0);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(1, Operators::IN, array(1, 2, 3));
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(1, Operators::OUT, array(0, 2, 3));
$this->assertEquals($expected, $actual);
}
public function testVariableOpComparisonFail()
{
$conditionEvaluator = new ConditionEvaluator();
$expected = false;
$actual = $conditionEvaluator->variableOpComparison(2, Operators::EQUAL, 1);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(2, Operators::DIFFERENT, 2);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(0, Operators::SUPERIOR, 0);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(3, Operators::INFERIOR, 2);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(2, Operators::INFERIOR_OR_EQUAL, 1);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(3, Operators::SUPERIOR_OR_EQUAL, 4);
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(0, Operators::IN, array(1, 2, 3));
$this->assertEquals($expected, $actual);
$actual = $conditionEvaluator->variableOpComparison(2, Operators::OUT, array(0, 2, 3));
$this->assertEquals($expected, $actual);
}
/**
* @expectedException \Exception
*/
public function testVariableOpComparisonException()
{
$conditionEvaluator = new ConditionEvaluator();
$expected = true;
$actual = $conditionEvaluator->variableOpComparison(1, 'bad', 1);
$this->assertEquals($expected, $actual);
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
}

View File

@@ -0,0 +1,403 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Condition\Implementation;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Thelia\Condition\ConditionEvaluator;
use Thelia\Condition\ConditionFactory;
use Thelia\Condition\Operators;
use Thelia\Coupon\AdapterInterface;
use Thelia\Coupon\ConditionCollection;
use Thelia\Model\CurrencyQuery;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test ConditionFactory Class
*
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class ConditionFactoryTest extends \PHPUnit_Framework_TestCase
{
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
public function setUp()
{
}
/**
* Check the Rules serialization module
*/
public function testBuild()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$currencies = CurrencyQuery::create();
$currencies = $currencies->find();
$stubAdapter->expects($this->any())
->method('getAvailableCurrencies')
->will($this->returnValue($currencies));
$stubContainer = $this->getMockBuilder('\Symfony\Component\DependencyInjection\Container')
->disableOriginalConstructor()
->getMock();
$stubContainer->expects($this->any())
->method('get')
->will($this->returnValue(new MatchForTotalAmountManager($stubAdapter)));
$stubContainer->expects($this->any())
->method('has')
->will($this->returnValue(true));
$stubAdapter->expects($this->any())
->method('getContainer')
->will($this->returnValue($stubContainer));
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 40.00,
MatchForTotalAmountManager::INPUT2 => 'EUR'
);
$condition1->setValidatorsFromForm($operators, $values);
$conditionFactory = new ConditionFactory($stubContainer);
$ruleManager1 = $conditionFactory->build($condition1->getServiceId(), $operators, $values);
$expected = $condition1;
$actual = $ruleManager1;
$this->assertEquals($expected, $actual);
$this->assertEquals($condition1->getServiceId(), $ruleManager1->getServiceId());
$this->assertEquals($condition1->getValidators(), $ruleManager1->getValidators());
}
/**
* Check the Rules serialization module
*/
public function testBuildFail()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$currencies = CurrencyQuery::create();
$currencies = $currencies->find();
$stubAdapter->expects($this->any())
->method('getAvailableCurrencies')
->will($this->returnValue($currencies));
$stubContainer = $this->getMockBuilder('\Symfony\Component\DependencyInjection\Container')
->disableOriginalConstructor()
->getMock();
$stubContainer->expects($this->any())
->method('get')
->will($this->returnValue(new MatchForTotalAmountManager($stubAdapter)));
$stubContainer->expects($this->any())
->method('has')
->will($this->returnValueMap(array('unset.service', false)));
$stubAdapter->expects($this->any())
->method('getContainer')
->will($this->returnValue($stubContainer));
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 40.00,
MatchForTotalAmountManager::INPUT2 => 'EUR'
);
$condition1->setValidatorsFromForm($operators, $values);
$conditionFactory = new ConditionFactory($stubContainer);
$conditionManager1 = $conditionFactory->build('unset.service', $operators, $values);
$expected = false;
$actual = $conditionManager1;
$this->assertEquals($expected, $actual);
}
/**
* Check the Rules serialization module
*/
public function testRuleSerialisation()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$currencies = CurrencyQuery::create();
$currencies = $currencies->find();
$stubAdapter->expects($this->any())
->method('getAvailableCurrencies')
->will($this->returnValue($currencies));
$stubContainer = $this->getMockBuilder('\Symfony\Component\DependencyInjection\Container')
->disableOriginalConstructor()
->getMock();
$stubContainer->expects($this->any())
->method('get')
->will($this->returnValue(new MatchForTotalAmountManager($stubAdapter)));
$stubContainer->expects($this->any())
->method('has')
->will($this->returnValue(true));
$stubAdapter->expects($this->any())
->method('getContainer')
->will($this->returnValue($stubContainer));
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 40.00,
MatchForTotalAmountManager::INPUT2 => 'EUR'
);
$condition1->setValidatorsFromForm($operators, $values);
$condition2 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR'
);
$condition2->setValidatorsFromForm($operators, $values);
$conditions = new ConditionCollection();
$conditions->add($condition1);
$conditions->add($condition2);
$conditionFactory = new ConditionFactory($stubContainer);
$serializedConditions = $conditionFactory->serializeConditionCollection($conditions);
$unserializedConditions = $conditionFactory->unserializeConditionCollection($serializedConditions);
$expected = (string) $conditions;
$actual = (string) $unserializedConditions;
$this->assertEquals($expected, $actual);
}
/**
* Check the getInputs method
*/
public function testGetInputs()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$currencies = CurrencyQuery::create();
$currencies = $currencies->find();
$stubAdapter->expects($this->any())
->method('getAvailableCurrencies')
->will($this->returnValue($currencies));
$stubContainer = $this->getMockBuilder('\Symfony\Component\DependencyInjection\Container')
->disableOriginalConstructor()
->getMock();
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$stubContainer->expects($this->any())
->method('get')
->will($this->returnValue($condition1));
$stubContainer->expects($this->any())
->method('has')
->will($this->returnValue(true));
$stubAdapter->expects($this->any())
->method('getContainer')
->will($this->returnValue($stubContainer));
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 40.00,
MatchForTotalAmountManager::INPUT2 => 'EUR'
);
$condition1->setValidatorsFromForm($operators, $values);
$conditions = new ConditionCollection();
$conditions->add($condition1);
$conditionFactory = new ConditionFactory($stubContainer);
$expected = $condition1->getValidators();
$actual = $conditionFactory->getInputs('thelia.condition.match_for_x_articles');
$this->assertEquals($expected, $actual);
}
/**
* Check the getInputs method
*/
public function testGetInputsFalse()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$currencies = CurrencyQuery::create();
$currencies = $currencies->find();
$stubAdapter->expects($this->any())
->method('getAvailableCurrencies')
->will($this->returnValue($currencies));
$stubContainer = $this->getMockBuilder('\Symfony\Component\DependencyInjection\Container')
->disableOriginalConstructor()
->getMock();
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$stubContainer->expects($this->any())
->method('get')
->will($this->returnValue($condition1));
$stubContainer->expects($this->any())
->method('has')
->will($this->returnValue(false));
$stubAdapter->expects($this->any())
->method('getContainer')
->will($this->returnValue($stubContainer));
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 40.00,
MatchForTotalAmountManager::INPUT2 => 'EUR'
);
$condition1->setValidatorsFromForm($operators, $values);
$conditions = new ConditionCollection();
$conditions->add($condition1);
$conditionFactory = new ConditionFactory($stubContainer);
$expected = false;
$actual = $conditionFactory->getInputs('thelia.condition.unknown');
$this->assertEquals($expected, $actual);
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
}

View File

@@ -0,0 +1,129 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Condition\Implementation;
use Thelia\Condition\ConditionEvaluator;
use Thelia\Condition\Operators;
use Thelia\Coupon\AdapterInterface;
use Thelia\Exception\InvalidConditionValueException;
use Thelia\Model\Currency;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test MatchForEveryoneManager Class
*
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class MatchForEveryoneManagerTest extends \PHPUnit_Framework_TestCase
{
/** @var AdapterInterface $stubTheliaAdapter */
protected $stubTheliaAdapter = null;
/**
* Generate adapter stub
*
* @param int $cartTotalPrice Cart total price
* @param string $checkoutCurrency Checkout currency
*
* @return \PHPUnit_Framework_MockObject_MockObject
*/
public function generateAdapterStub($cartTotalPrice = 400, $checkoutCurrency = 'EUR')
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue($cartTotalPrice));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue($checkoutCurrency));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$currency1 = new Currency();
$currency1->setCode('EUR');
$currency2 = new Currency();
$currency2->setCode('USD');
$stubAdapter->expects($this->any())
->method('getAvailableCurrencies')
->will($this->returnValue(array($currency1, $currency2)));
return $stubAdapter;
}
/**
* Check if validity test on BackOffice inputs are working
*
* @covers Thelia\Condition\Implementation\MatchForEveryoneManager::setValidators
*
*/
public function testValidBackOfficeInputOperator()
{
$stubAdapter = $this->generateAdapterStub(399, 'EUR');
/** @var AdapterInterface $stubAdapter */
$condition1 = new MatchForEveryoneManager($stubAdapter);
$operators = array();
$values = array();
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if condition is always matching
*
* @covers Thelia\Condition\Implementation\MatchForEveryoneManager::isMatching
*
*/
public function testIsMatching()
{
$stubAdapter = $this->generateAdapterStub(399, 'EUR');
/** @var AdapterInterface $stubAdapter */
$condition1 = new MatchForEveryoneManager($stubAdapter);
$isValid = $condition1->isMatching();
$expected = true;
$actual = $isValid;
$this->assertEquals($expected, $actual);
}
}

View File

@@ -0,0 +1,610 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Condition\Implementation;
use Thelia\Condition\ConditionEvaluator;
use Thelia\Condition\Operators;
use Thelia\Coupon\AdapterInterface;
use Thelia\Exception\InvalidConditionValueException;
use Thelia\Model\Currency;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test MatchForTotalAmountManager Class
*
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class MatchForTotalAmountManagerTest extends \PHPUnit_Framework_TestCase
{
/** @var AdapterInterface $stubTheliaAdapter */
protected $stubTheliaAdapter = null;
/**
* Generate adapter stub
*
* @param int $cartTotalPrice Cart total price
* @param string $checkoutCurrency Checkout currency
*
* @return \PHPUnit_Framework_MockObject_MockObject
*/
public function generateAdapterStub($cartTotalPrice = 400, $checkoutCurrency = 'EUR')
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue($cartTotalPrice));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue($checkoutCurrency));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$currency1 = new Currency();
$currency1->setCode('EUR');
$currency2 = new Currency();
$currency2->setCode('USD');
$stubAdapter->expects($this->any())
->method('getAvailableCurrencies')
->will($this->returnValue(array($currency1, $currency2)));
return $stubAdapter;
}
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp()
{
}
/**
* Check if validity test on BackOffice inputs are working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::setValidators
* @expectedException \Thelia\Exception\InvalidConditionOperatorException
*
*/
public function testInValidBackOfficeInputOperator()
{
$stubAdapter = $this->generateAdapterStub(399, 'EUR');
/** @var AdapterInterface $stubAdapter */
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::IN,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => '400',
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if validity test on BackOffice inputs are working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::setValidators
* @expectedException \Thelia\Exception\InvalidConditionOperatorException
*
*/
public function testInValidBackOfficeInputOperator2()
{
$stubAdapter = $this->generateAdapterStub(399, 'EUR');
/** @var AdapterInterface $stubAdapter */
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::INFERIOR
);
$values = array(
MatchForTotalAmountManager::INPUT1 => '400',
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if validity test on BackOffice inputs are working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::setValidators
* @expectedException \Thelia\Exception\InvalidConditionValueException
*
*/
public function testInValidBackOfficeInputValue()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(399, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 'X',
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if validity test on BackOffice inputs are working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::setValidators
* @expectedException \Thelia\Exception\InvalidConditionValueException
*
*/
public function testInValidBackOfficeInputValue2()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(399, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400,
MatchForTotalAmountManager::INPUT2 => 'FLA');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testMatchingConditionInferior()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(399, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::INFERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testNotMatchingConditionInferior()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(400, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::INFERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testMatchingConditionInferiorEquals()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(400, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::INFERIOR_OR_EQUAL,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testMatchingConditionInferiorEquals2()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(399, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::INFERIOR_OR_EQUAL,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testNotMatchingConditionInferiorEquals()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(401, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::INFERIOR_OR_EQUAL,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test equals operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testMatchingConditionEqual()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(400, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::EQUAL,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test equals operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testNotMatchingConditionEqual()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(399, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::EQUAL,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testMatchingConditionSuperiorEquals()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(401, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testMatchingConditionSuperiorEquals2()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(400, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testNotMatchingConditionSuperiorEquals()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(399, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testMatchingConditionSuperior()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(401, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testNotMatchingConditionSuperior()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(399, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check currency is checked
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testMatchingConditionCurrency()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(400, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::EQUAL,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check currency is checked
*
* @covers Thelia\Condition\Implementation\MatchForTotalAmountManager::isMatching
*
*/
public function testNotMatchingConditionCurrency()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->generateAdapterStub(400.00, 'EUR');
$condition1 = new MatchForTotalAmountManager($stubAdapter);
$operators = array(
MatchForTotalAmountManager::INPUT1 => Operators::EQUAL,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'USD');
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
}

View File

@@ -0,0 +1,670 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Condition\Implementation;
use Thelia\Condition\ConditionEvaluator;
use Thelia\Condition\Operators;
use Thelia\Condition\SerializableCondition;
use Thelia\Coupon\AdapterInterface;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test MatchForXArticlesManager Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class MatchForXArticlesManagerTest extends \PHPUnit_Framework_TestCase
{
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp()
{
}
/**
* Check if validity test on BackOffice inputs are working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::setValidators
* @expectedException \Thelia\Exception\InvalidConditionOperatorException
*/
public function testInValidBackOfficeInputOperator()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
/** @var AdapterInterface $stubAdapter */
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::IN
);
$values = array(
MatchForXArticlesManager::INPUT1 => 5
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if validity test on BackOffice inputs are working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::setValidators
* @expectedException \Thelia\Exception\InvalidConditionValueException
*/
public function testInValidBackOfficeInputValue()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::SUPERIOR
);
$values = array(
MatchForXArticlesManager::INPUT1 => 'X'
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testMatchingRuleInferior()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::INFERIOR
);
$values = array(
MatchForXArticlesManager::INPUT1 => 5
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testNotMatchingRuleInferior()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::INFERIOR
);
$values = array(
MatchForXArticlesManager::INPUT1 => 4,
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testMatchingRuleInferiorEquals()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::INFERIOR_OR_EQUAL,
);
$values = array(
MatchForXArticlesManager::INPUT1 => 5,
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testMatchingRuleInferiorEquals2()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::INFERIOR_OR_EQUAL
);
$values = array(
MatchForXArticlesManager::INPUT1 => 4
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testNotMatchingRuleInferiorEquals()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::INFERIOR_OR_EQUAL
);
$values = array(
MatchForXArticlesManager::INPUT1 => 3
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test equals operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testMatchingRuleEqual()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::EQUAL
);
$values = array(
MatchForXArticlesManager::INPUT1 => 4
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test equals operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testNotMatchingRuleEqual()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::EQUAL
);
$values = array(
MatchForXArticlesManager::INPUT1 => 5
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testMatchingRuleSuperiorEquals()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL
);
$values = array(
MatchForXArticlesManager::INPUT1 => 4
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testMatchingRuleSuperiorEquals2()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL
);
$values = array(
MatchForXArticlesManager::INPUT1 => 3
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testNotMatchingRuleSuperiorEquals()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL
);
$values = array(
MatchForXArticlesManager::INPUT1 => 5
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testMatchingRuleSuperior()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::SUPERIOR
);
$values = array(
MatchForXArticlesManager::INPUT1 => 3
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Condition\Implementation\MatchForXArticlesManager::isMatching
*
*/
public function testNotMatchingRuleSuperior()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::SUPERIOR
);
$values = array(
MatchForXArticlesManager::INPUT1 => 4
);
$condition1->setValidatorsFromForm($operators, $values);
$isValid = $condition1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
public function testGetSerializableRule()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::SUPERIOR
);
$values = array(
MatchForXArticlesManager::INPUT1 => 4
);
$condition1->setValidatorsFromForm($operators, $values);
$serializableRule = $condition1->getSerializableCondition();
$expected = new SerializableCondition();
$expected->conditionServiceId = $condition1->getServiceId();
$expected->operators = $operators;
$expected->values = $values;
$actual = $serializableRule;
$this->assertEquals($expected, $actual);
}
public function testGetAvailableOperators()
{
/** @var AdapterInterface $stubAdapter */
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConditionEvaluator')
->will($this->returnValue(new ConditionEvaluator()));
$condition1 = new MatchForXArticlesManager($stubAdapter);
$operators = array(
MatchForXArticlesManager::INPUT1 => Operators::SUPERIOR
);
$values = array(
MatchForXArticlesManager::INPUT1 => 4
);
$condition1->setValidatorsFromForm($operators, $values);
$expected = array(
MatchForXArticlesManager::INPUT1 => array(
Operators::INFERIOR,
Operators::INFERIOR_OR_EQUAL,
Operators::EQUAL,
Operators::SUPERIOR_OR_EQUAL,
Operators::SUPERIOR
)
);
$actual = $condition1->getAvailableOperators();
$this->assertEquals($expected, $actual);
}
// public function testGetValidators()
// {
// $stubAdapter = $this->getMockBuilder('\Thelia\Coupon\BaseAdapter')
// ->disableOriginalConstructor()
// ->getMock();
//
// $stubAdapter->expects($this->any())
// ->method('getNbArticlesInCart')
// ->will($this->returnValue(4));
//
// $condition1 = new MatchForXArticlesManager($stubAdapter);
// $operators = array(
// MatchForXArticlesManager::INPUT1 => Operators::SUPERIOR
// );
// $values = array(
// MatchForXArticlesManager::INPUT1 => 4
// );
// $condition1->setValidatorsFromForm($operators, $values);
//
// $expected = array(
// $operators,
// $values
// );
// $actual = $condition1->getValidators();
//
// $this->assertEquals($expected, $actual);
//
// }
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
}

View File

@@ -0,0 +1,114 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Condition;
use Thelia\Core\Translation\Translator;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test Operators Class
*
* @package Condition
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class OperatorsTest extends \PHPUnit_Framework_TestCase
{
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp()
{
}
public function testOperatorI18n()
{
/** @var Translator $stubTranslator */
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
$stubTranslator->expects($this->any())
->method('trans')
->will($this->returnCallback((array($this, 'callbackI18n'))));
$actual = Operators::getI18n($stubTranslator, Operators::INFERIOR);
$expected = 'inferior to';
$this->assertEquals($expected, $actual);
$actual = Operators::getI18n($stubTranslator, Operators::INFERIOR_OR_EQUAL);
$expected = 'inferior or equal to';
$this->assertEquals($expected, $actual);
$actual = Operators::getI18n($stubTranslator, Operators::EQUAL);
$expected = 'equal to';
$this->assertEquals($expected, $actual);
$actual = Operators::getI18n($stubTranslator, Operators::SUPERIOR_OR_EQUAL);
$expected = 'superior or equal to';
$this->assertEquals($expected, $actual);
$actual = Operators::getI18n($stubTranslator, Operators::SUPERIOR);
$expected = 'superior to';
$this->assertEquals($expected, $actual);
$actual = Operators::getI18n($stubTranslator, Operators::DIFFERENT);
$expected = 'different from';
$this->assertEquals($expected, $actual);
$actual = Operators::getI18n($stubTranslator, Operators::IN);
$expected = 'in';
$this->assertEquals($expected, $actual);
$actual = Operators::getI18n($stubTranslator, Operators::OUT);
$expected = 'not in';
$this->assertEquals($expected, $actual);
$actual = Operators::getI18n($stubTranslator, 'unexpected operator');
$expected = 'unexpected operator';
$this->assertEquals($expected, $actual);
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
function callbackI18n()
{
$args = func_get_args();
return $args[0];
}
}

View File

@@ -1,228 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Thelia\Constraint\Rule\AvailableForTotalAmountManager;
use Thelia\Constraint\Rule\AvailableForXArticlesManager;
use Thelia\Constraint\Rule\Operators;
use Thelia\Coupon\CouponBaseAdapter;
use Thelia\Coupon\CouponRuleCollection;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test ConstraintManager Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class ConstraintFactoryTest extends \PHPUnit_Framework_TestCase
{
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
public function setUp()
{
}
/**
* Check the Rules serialization module
*/
public function testBuild()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 40.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR'
);
$rule1->setValidatorsFromForm($operators, $values);
/** @var ConstraintManager $constraintManager */
$constraintFactory = new ConstraintFactory($this->getContainer());
$ruleManager1 = $constraintFactory->build($rule1->getServiceId(), $operators, $values);
$expected = $rule1;
$actual = $ruleManager1;
$this->assertEquals($expected, $actual);
$this->assertEquals($rule1->getServiceId(), $ruleManager1->getServiceId());
$this->assertEquals($rule1->getValidators(), $ruleManager1->getValidators());
}
/**
* Check the Rules serialization module
*/
public function testBuildFail()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 40.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR'
);
$rule1->setValidatorsFromForm($operators, $values);
/** @var ConstraintManager $constraintManager */
$constraintFactory = new ConstraintFactory($this->getContainer());
$ruleManager1 = $constraintFactory->build('unset.service', $operators, $values);
$expected = false;
$actual = $ruleManager1;
$this->assertEquals($expected, $actual);
}
/**
* Check the Rules serialization module
*/
public function testRuleSerialisation()
{
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 40.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR'
);
$rule1->setValidatorsFromForm($operators, $values);
$rule2 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR'
);
$rule2->setValidatorsFromForm($operators, $values);
$rules = new CouponRuleCollection();
$rules->add($rule1);
$rules->add($rule2);
/** @var ConstraintManager $constraintManager */
$constraintFactory = new ConstraintFactory($this->getContainer());
$serializedRules = $constraintFactory->serializeCouponRuleCollection($rules);
$unserializedRules = $constraintFactory->unserializeCouponRuleCollection($serializedRules);
$expected = (string) $rules;
$actual = (string) $unserializedRules;
$this->assertEquals($expected, $actual);
}
/**
* Get Mocked Container with 2 Rules
*
* @return ContainerBuilder
*/
public function getContainer()
{
$container = new ContainerBuilder();
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$rule2 = new AvailableForXArticlesManager($stubAdapter);
$adapter = new CouponBaseAdapter($container);
$container->set('thelia.constraint.rule.available_for_total_amount', $rule1);
$container->set('thelia.constraint.rule.available_for_x_articles', $rule2);
$container->set('thelia.adapter', $adapter);
return $container;
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
}

View File

@@ -1,346 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Constraint;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Thelia\Constraint\Rule\AvailableForTotalAmountManager;
use Thelia\Constraint\Rule\AvailableForXArticlesManager;
use Thelia\Constraint\Rule\Operators;
use Thelia\Coupon\CouponBaseAdapter;
use Thelia\Coupon\CouponRuleCollection;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test ConstraintValidator Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class ConstraintValidatorTest extends \PHPUnit_Framework_TestCase
{
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
public function setUp()
{
}
public function testTestSuccess1Rules()
{
$ConstraintValidator = new ConstraintValidator();
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(401));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue($ConstraintValidator));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => '>',
AvailableForTotalAmountManager::INPUT2 => '=='
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$rules = new CouponRuleCollection();
$rules->add($rule1);
$isValid = $ConstraintValidator->isMatching($rules);
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
public function testTestFail1Rules()
{
$ConstraintValidator = new ConstraintValidator();
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(400));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue($ConstraintValidator));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => '>',
AvailableForTotalAmountManager::INPUT2 => '=='
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$rules = new CouponRuleCollection();
$rules->add($rule1);
$isValid = $ConstraintValidator->isMatching($rules);
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual, 'Constraints validator always think Customer is matching rules');
}
public function testTestSuccess2Rules()
{
$ConstraintValidator = new ConstraintValidator();
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(401));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(5));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue($ConstraintValidator));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => '>',
AvailableForTotalAmountManager::INPUT2 => '=='
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$rule2 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => '>'
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 4
);
$rule2->setValidatorsFromForm($operators, $values);
$rules = new CouponRuleCollection();
$rules->add($rule1);
$rules->add($rule2);
$isValid = $ConstraintValidator->isMatching($rules);
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
public function testTestFail2Rules()
{
$ConstraintValidator = new ConstraintValidator();
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(400));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(5));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue($ConstraintValidator));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => '>',
AvailableForTotalAmountManager::INPUT2 => '=='
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$rule2 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => '>'
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 4
);
$rule2->setValidatorsFromForm($operators, $values);
$rules = new CouponRuleCollection();
$rules->add($rule1);
$rules->add($rule2);
$isValid = $ConstraintValidator->isMatching($rules);
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual, 'Constraints validator always think Customer is matching rules');
}
public function testVariableOpComparisonSuccess()
{
$ConstraintValidator = new ConstraintValidator();
$expected = true;
$actual = $ConstraintValidator->variableOpComparison(1, Operators::EQUAL, 1);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(1, Operators::DIFFERENT, 2);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(1, Operators::SUPERIOR, 0);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(1, Operators::INFERIOR, 2);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(1, Operators::INFERIOR_OR_EQUAL, 1);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(1, Operators::INFERIOR_OR_EQUAL, 2);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(1, Operators::SUPERIOR_OR_EQUAL, 1);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(1, Operators::SUPERIOR_OR_EQUAL, 0);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(1, Operators::IN, array(1, 2, 3));
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(1, Operators::OUT, array(0, 2, 3));
$this->assertEquals($expected, $actual);
}
public function testVariableOpComparisonFail()
{
$ConstraintValidator = new ConstraintValidator();
$expected = false;
$actual = $ConstraintValidator->variableOpComparison(2, Operators::EQUAL, 1);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(2, Operators::DIFFERENT, 2);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(0, Operators::SUPERIOR, 0);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(3, Operators::INFERIOR, 2);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(2, Operators::INFERIOR_OR_EQUAL, 1);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(3, Operators::SUPERIOR_OR_EQUAL, 4);
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(0, Operators::IN, array(1, 2, 3));
$this->assertEquals($expected, $actual);
$actual = $ConstraintValidator->variableOpComparison(2, Operators::OUT, array(0, 2, 3));
$this->assertEquals($expected, $actual);
}
/**
* @expectedException \Exception
*/
public function testVariableOpComparisonException()
{
$ConstraintValidator = new ConstraintValidator();
$expected = true;
$actual = $ConstraintValidator->variableOpComparison(1, 'bad', 1);
$this->assertEquals($expected, $actual);
}
/**
* Get Mocked Container with 2 Rules
*
* @return ContainerBuilder
*/
public function getContainer()
{
$container = new ContainerBuilder();
$stubTranslator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
->disableOriginalConstructor()
->getMock();
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getTranslator')
->will($this->returnValue($stubTranslator));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$rule2 = new AvailableForXArticlesManager($stubAdapter);
$adapter = new CouponBaseAdapter($container);
$container->set('thelia.constraint.rule.available_for_total_amount', $rule1);
$container->set('thelia.constraint.rule.available_for_x_articles', $rule2);
$container->set('thelia.adapter', $adapter);
return $container;
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
}

View File

@@ -1,709 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
use Thelia\Constraint\ConstraintValidator;
use Thelia\Constraint\Rule\AvailableForTotalAmountManager;
use Thelia\Constraint\Rule\Operators;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test AvailableForTotalAmount Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForTotalAmountTest extends \PHPUnit_Framework_TestCase
{
/** @var CouponAdapterInterface $stubTheliaAdapter */
protected $stubTheliaAdapter = null;
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp()
{
// /** @var CouponAdapterInterface $stubTheliaAdapter */
// $this->stubTheliaAdapter = $this->generateValidCouponBaseAdapterMock();
}
// /**
// * Generate valid CouponBaseAdapter
// *
// * @param float $cartTotalPrice Total amount of the current Cart
// *
// * @return CouponAdapterInterface
// */
// protected function generateValidCouponBaseAdapterMock($cartTotalPrice = 421.23)
// {
// /** @var CouponAdapterInterface $stubTheliaAdapter */
// $stubTheliaAdapter = $this->getMock(
// 'Thelia\Coupon\CouponBaseAdapter',
// array('getCartTotalPrice'),
// array()
// );
// $stubTheliaAdapter->expects($this->any())
// ->method('getCartTotalPrice')
// ->will($this->returnValue($cartTotalPrice));
//
// return $stubTheliaAdapter;
// }
// /**
// * Check if validity test on BackOffice inputs are working
// *
// * @covers Thelia\Coupon\Rule\AvailableForTotalAmount::checkBackOfficeInput
// *
// */
// public function testValidBackOfficeInput()
// {
// $adapter = new CouponBaseAdapter();
//
// $validators = array(
// AvailableForTotalAmount::PARAM1_PRICE => new RuleValidator(
// Operators::SUPERIOR,
// new PriceParam(
// $adapter, 421.23, 'EUR'
// )
// )
// );
// $rule = new AvailableForTotalAmount($adapter, $validators);
//
// $expected = true;
// $actual = $rule->checkBackOfficeInput();
// $this->assertEquals($expected, $actual);
// }
// /**
// * Check if validity test on BackOffice inputs are working
// *
// * @covers Thelia\Coupon\Rule\AvailableForTotalAmount::checkBackOfficeInput
// * @expectedException \Thelia\Exception\InvalidRuleOperatorException
// *
// */
// public function testInValidBackOfficeInputOperator()
// {
// $adapter = new CouponBaseAdapter();
//
// $validators = array(
// AvailableForTotalAmount::PARAM1_PRICE => new RuleValidator(
// 'X',
// new PriceParam(
// $adapter, 421.23, 'EUR'
// )
// )
// );
//
// $rule = new AvailableForTotalAmount($adapter, $validators);
//
// $expected = false;
// $actual = $rule->checkBackOfficeInput();
// $this->assertEquals($expected, $actual);
// }
// /**
// * Check if validity test on BackOffice inputs are working
// *
// * @covers Thelia\Coupon\Rule\AvailableForTotalAmount::checkBackOfficeInput
// * @expectedException \ErrorException
// *
// */
// public function testInValidBackOfficeInputValue()
// {
// $adapter = $this->generateValidCouponBaseAdapterMock();
//
// $validators = array(
// AvailableForTotalAmount::PARAM1_PRICE => new RuleValidator(
// Operators::SUPERIOR,
// 421
// )
// );
//
// $rule = new AvailableForTotalAmount($adapter, $validators);
//
// $expected = false;
// $actual = $rule->checkBackOfficeInput();
// $this->assertEquals($expected, $actual);
// }
/**
* Check if test inferior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testMatchingRuleInferior()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(399));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::INFERIOR,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testNotMatchingRuleInferior()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(400));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::INFERIOR,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testMatchingRuleInferiorEquals()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(400));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::INFERIOR_OR_EQUAL,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testMatchingRuleInferiorEquals2()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(399));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::INFERIOR_OR_EQUAL,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testNotMatchingRuleInferiorEquals()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(401));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::INFERIOR_OR_EQUAL,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test equals operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testMatchingRuleEqual()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(400));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::EQUAL,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test equals operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testNotMatchingRuleEqual()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(399));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::EQUAL,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testMatchingRuleSuperiorEquals()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(401));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testMatchingRuleSuperiorEquals2()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(400));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testNotMatchingRuleSuperiorEquals()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(399.00));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testMatchingRuleSuperior()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(401));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testNotMatchingRuleSuperior()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(399.00));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check currency is checked
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testMatchingRuleCurrency()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(400.00));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::EQUAL,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check currency is checked
*
* @covers Thelia\Constraint\Rule\AvailableForTotalAmountManager::isMatching
*
*/
public function testNotMatchingRuleCurrency()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getCartTotalPrice')
->will($this->returnValue(400.00));
$stubAdapter->expects($this->any())
->method('getCheckoutCurrency')
->will($this->returnValue('EUR'));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForTotalAmountManager($stubAdapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::EQUAL,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'USD');
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
}

View File

@@ -1,710 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
use Thelia\Constraint\ConstraintValidator;
use Thelia\Constraint\Rule\AvailableForXArticlesManager;
use Thelia\Constraint\Rule\Operators;
use Thelia\Constraint\Rule\SerializableRule;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test AvailableForXArticles Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class AvailableForXArticlesTest extends \PHPUnit_Framework_TestCase
{
// /** @var CouponAdapterInterface $stubTheliaAdapter */
// protected $stubTheliaAdapter = null;
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp()
{
// /** @var CouponAdapterInterface $stubTheliaAdapter */
// $this->stubTheliaAdapter = $this->generateValidCouponBaseAdapterMock();
}
// /**
// * Generate valid CouponBaseAdapter
// *
// * @param int $nbArticlesInCart Total articles in the current Cart
// *
// * @return CouponAdapterInterface
// */
// protected function generateValidCouponBaseAdapterMock($nbArticlesInCart = 4)
// {
// /** @var CouponAdapterInterface $stubTheliaAdapter */
// $stubTheliaAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
// ->disableOriginalConstructor()
// ->setMethods(array('getNbArticlesInCart'))
// ->getMock();
// $stubTheliaAdapter->expects($this->any())
// ->method('getNbArticlesInCart')
// ->will($this->returnValue($nbArticlesInCart));
//
// return $stubTheliaAdapter;
// }
// /**
// * Check if validity test on BackOffice inputs are working
// *
// * @covers Thelia\Coupon\Rule\AvailableForXArticles::checkBackOfficeInput
// *
// */
// public function testValidBackOfficeInput()
// {
// $translator = $this->getMockBuilder('\Thelia\Core\Translation\Translator')
// ->disableOriginalConstructor()
// ->getMock();
//
// $rule = new AvailableForXArticles($translator);
// $operators = array(AvailableForXArticles::PARAM1_QUANTITY => Operators::SUPERIOR);
// $values = array(
// AvailableForXArticles::PARAM1_QUANTITY => 4
// );
// $rule->populateFromForm($operators, $values);
//
// $expected = true;
// $actual = $rule->checkBackOfficeInput();
// $this->assertEquals($expected, $actual);
// }
// /**
// * Check if validity test on BackOffice inputs are working
// *
// * @covers Thelia\Coupon\Rule\AvailableForXArticles::checkBackOfficeInput
// * @expectedException \Thelia\Exception\InvalidRuleValueException
// */
// public function testInValidBackOfficeInputFloat()
// {
// $adapter = $this->stubTheliaAdapter;
//
// $validators = array(
// AvailableForXArticles::PARAM1_QUANTITY => new RuleValidator(
// Operators::SUPERIOR,
// new QuantityParam(
// $adapter,
// 4.5
// )
// )
// );
// $rule = new AvailableForXArticles($adapter, $validators);
//
// $expected = false;
// $actual = $rule->checkBackOfficeInput();
// $this->assertEquals($expected, $actual);
// }
// /**
// * Check if validity test on BackOffice inputs are working
// *
// * @covers Thelia\Coupon\Rule\AvailableForXArticles::checkBackOfficeInput
// * @expectedException \Thelia\Exception\InvalidRuleValueException
// */
// public function testInValidBackOfficeInputNegative()
// {
// $adapter = $this->stubTheliaAdapter;
//
// $validators = array(
// AvailableForXArticles::PARAM1_QUANTITY => new RuleValidator(
// Operators::SUPERIOR,
// new QuantityParam(
// $adapter,
// -1
// )
// )
// );
// $rule = new AvailableForXArticles($adapter, $validators);
//
// $expected = false;
// $actual = $rule->checkBackOfficeInput();
// $this->assertEquals($expected, $actual);
// }
// /**
// * Check if validity test on BackOffice inputs are working
// *
// * @covers Thelia\Coupon\Rule\AvailableForXArticles::checkBackOfficeInput
// * @expectedException \Thelia\Exception\InvalidRuleValueException
// */
// public function testInValidBackOfficeInputString()
// {
// $adapter = $this->stubTheliaAdapter;
//
// $validators = array(
// AvailableForXArticles::PARAM1_QUANTITY => new RuleValidator(
// Operators::SUPERIOR,
// new QuantityParam(
// $adapter,
// 'bad'
// )
// )
// );
// $rule = new AvailableForXArticles($adapter, $validators);
//
// $expected = false;
// $actual = $rule->checkBackOfficeInput();
// $this->assertEquals($expected, $actual);
// }
/**
* Check if test inferior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testMatchingRuleInferior()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::INFERIOR
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 5
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testNotMatchingRuleInferior()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::INFERIOR
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 4,
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testMatchingRuleInferiorEquals()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::INFERIOR_OR_EQUAL,
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 5,
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testMatchingRuleInferiorEquals2()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::INFERIOR_OR_EQUAL
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 4
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test inferior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testNotMatchingRuleInferiorEquals()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::INFERIOR_OR_EQUAL
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 3
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test equals operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testMatchingRuleEqual()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::EQUAL
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 4
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test equals operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testNotMatchingRuleEqual()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::EQUAL
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 5
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testMatchingRuleSuperiorEquals()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 4
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testMatchingRuleSuperiorEquals2()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 3
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testNotMatchingRuleSuperiorEquals()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::SUPERIOR_OR_EQUAL
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 5
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testMatchingRuleSuperior()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::SUPERIOR
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 3
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = true;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
/**
* Check if test superior operator is working
*
* @covers Thelia\Constraint\Rule\AvailableForXArticlesManager::isMatching
*
*/
public function testNotMatchingRuleSuperior()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::SUPERIOR
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 4
);
$rule1->setValidatorsFromForm($operators, $values);
$isValid = $rule1->isMatching();
$expected = false;
$actual =$isValid;
$this->assertEquals($expected, $actual);
}
public function testGetSerializableRule()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::SUPERIOR
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 4
);
$rule1->setValidatorsFromForm($operators, $values);
$serializableRule = $rule1->getSerializableRule();
$expected = new SerializableRule();
$expected->ruleServiceId = $rule1->getServiceId();
$expected->operators = $operators;
$expected->values = $values;
$actual = $serializableRule;
$this->assertEquals($expected, $actual);
}
public function testGetAvailableOperators()
{
$stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
->disableOriginalConstructor()
->getMock();
$stubAdapter->expects($this->any())
->method('getNbArticlesInCart')
->will($this->returnValue(4));
$stubAdapter->expects($this->any())
->method('getConstraintValidator')
->will($this->returnValue(new ConstraintValidator()));
$rule1 = new AvailableForXArticlesManager($stubAdapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::SUPERIOR
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 4
);
$rule1->setValidatorsFromForm($operators, $values);
$expected = array(
AvailableForXArticlesManager::INPUT1 => array(
Operators::INFERIOR,
Operators::INFERIOR_OR_EQUAL,
Operators::EQUAL,
Operators::SUPERIOR_OR_EQUAL,
Operators::SUPERIOR
)
);
$actual = $rule1->getAvailableOperators();
$this->assertEquals($expected, $actual);
}
// public function testGetValidators()
// {
// $stubAdapter = $this->getMockBuilder('\Thelia\Coupon\CouponBaseAdapter')
// ->disableOriginalConstructor()
// ->getMock();
//
// $stubAdapter->expects($this->any())
// ->method('getNbArticlesInCart')
// ->will($this->returnValue(4));
//
// $rule1 = new AvailableForXArticlesManager($stubAdapter);
// $operators = array(
// AvailableForXArticlesManager::INPUT1 => Operators::SUPERIOR
// );
// $values = array(
// AvailableForXArticlesManager::INPUT1 => 4
// );
// $rule1->setValidatorsFromForm($operators, $values);
//
// $expected = array(
// $operators,
// $values
// );
// $actual = $rule1->getValidators();
//
// $this->assertEquals($expected, $actual);
//
// }
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
}

View File

@@ -1,427 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
use Thelia\Constraint\Validator\QuantityParam;
use Thelia\Constraint\Rule\Operators;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test Operators Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class OperatorsTest extends \PHPUnit_Framework_TestCase
{
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp()
{
}
public function testSomething()
{
// Stop here and mark this test as incomplete.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorInferiorValidBefore()
// {
// $adapter = new CouponBaseAdapter();
// // Given
// $a = 11;
// $operator = Operators::INFERIOR;
// $b = new QuantityParam($adapter, 12);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertTrue($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorInferiorInvalidEquals()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 12;
// $operator = Operators::INFERIOR;
// $b = new QuantityParam($adapter, 12);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertFalse($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorInferiorInvalidAfter()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 13;
// $operator = Operators::INFERIOR;
// $b = new QuantityParam($adapter, 12);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertFalse($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorInferiorOrEqualValidEqual()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 11;
// $operator = Operators::INFERIOR_OR_EQUAL;
// $b = new QuantityParam($adapter, 11);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertTrue($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorInferiorOrEqualValidBefore()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 10;
// $operator = Operators::INFERIOR_OR_EQUAL;
// $b = new QuantityParam($adapter, 11);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertTrue($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorInferiorOrEqualInValidAfter()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 12;
// $operator = Operators::INFERIOR_OR_EQUAL;
// $b = new QuantityParam($adapter, 11);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertFalse($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorEqualValidEqual()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 12;
// $operator = Operators::EQUAL;
// $b = new QuantityParam($adapter, 12);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertTrue($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorEqualInValidBefore()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 11;
// $operator = Operators::EQUAL;
// $b = new QuantityParam($adapter, 12);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertFalse($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorEqualInValidAfter()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 13;
// $operator = Operators::EQUAL;
// $b = new QuantityParam($adapter, 12);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertFalse($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorSuperiorOrEqualValidEqual()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 13;
// $operator = Operators::SUPERIOR_OR_EQUAL;
// $b = new QuantityParam($adapter, 13);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertTrue($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorSuperiorOrEqualAfter()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 14;
// $operator = Operators::SUPERIOR_OR_EQUAL;
// $b = new QuantityParam($adapter, 13);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertTrue($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorSuperiorOrEqualInvalidBefore()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 12;
// $operator = Operators::SUPERIOR_OR_EQUAL;
// $b = new QuantityParam($adapter, 13);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertFalse($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorSuperiorValidAfter()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 13;
// $operator = Operators::SUPERIOR;
// $b = new QuantityParam($adapter, 12);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertTrue($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorSuperiorInvalidEqual()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 12;
// $operator = Operators::SUPERIOR;
// $b = new QuantityParam($adapter, 12);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertFalse($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorSuperiorInvalidBefore()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 11;
// $operator = Operators::SUPERIOR;
// $b = new QuantityParam($adapter, 12);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertFalse($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorDifferentValid()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 12;
// $operator = Operators::DIFFERENT;
// $b = new QuantityParam($adapter, 11);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertTrue($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorDifferentInvalidEquals()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 11;
// $operator = Operators::DIFFERENT;
// $b = new QuantityParam($adapter, 11);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertFalse($actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Rule\Operator::isValidAccordingToOperator
// *
// */
// public function testOperatorInValid()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $a = 12;
// $operator = 'X';
// $b = new QuantityParam($adapter, 11);
//
// // When
// $actual = Operators::isValid($a, $operator, $b);
//
// // Then
// $this->assertFalse($actual);
// }
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
}

View File

@@ -1,168 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
use InvalidArgumentException;
use Thelia\Constraint\Validator\CustomerParam;
use Thelia\Constraint\Validator\QuantityParam;
use Thelia\Model\Customer;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test CustomerParam Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class CustomerParamTest extends \PHPUnit_Framework_TestCase
{
public function testSomething()
{
// Stop here and mark this test as incomplete.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
// /** @var CouponAdapterInterface $stubTheliaAdapter */
// protected $stubTheliaAdapter = null;
//
// /**
// * Sets up the fixture, for example, opens a network connection.
// * This method is called before a test is executed.
// */
// protected function setUp()
// {
// /** @var CouponAdapterInterface $stubTheliaAdapter */
// $this->stubTheliaAdapter = $this->generateValidCouponBaseAdapterMock();
// }
//
// /**
// * Generate valid CouponBaseAdapter
// *
// * @param int $customerId Customer id
// *
// * @return CouponAdapterInterface
// */
// protected function generateValidCouponBaseAdapterMock($customerId = 4521)
// {
// $customer = new Customer();
// $customer->setId($customerId);
// $customer->setFirstname('Firstname');
// $customer->setLastname('Lastname');
// $customer->setEmail('em@il.com');
//
// /** @var CouponAdapterInterface $stubTheliaAdapter */
// $stubTheliaAdapter = $this->getMock(
// 'Thelia\Coupon\CouponBaseAdapter',
// array('getCustomer'),
// array()
// );
// $stubTheliaAdapter->expects($this->any())
// ->method('getCustomer')
// ->will($this->returnValue($customer));
//
// return $stubTheliaAdapter;
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\QuantityParam::compareTo
// *
// */
// public function testCanUseCoupon()
// {
// $customerId = 4521;
// $couponValidForCustomerId = 4521;
//
// $adapter = $this->generateValidCouponBaseAdapterMock($customerId);
//
// $customerParam = new CustomerParam($adapter, $couponValidForCustomerId);
//
// $expected = 0;
// $actual = $customerParam->compareTo($customerId);
// $this->assertEquals($expected, $actual);
// }
//
//// /**
//// *
//// * @covers Thelia\Coupon\Parameter\QuantityParam::compareTo
//// *
//// */
//// public function testCanNotUseCouponTest()
//// {
////
//// }
////
//// /**
//// *
//// * @covers Thelia\Coupon\Parameter\QuantityParam::compareTo
//// * @expectedException InvalidArgumentException
//// *
//// */
//// public function testCanNotUseCouponCustomerNotFoundTest()
//// {
////
//// }
//
//
//
//
//// /**
//// * Test is the object is serializable
//// * If no data is lost during the process
//// */
//// public function isSerializableTest()
//// {
//// $adapter = new CouponBaseAdapter();
//// $intValidator = 42;
//// $intToValidate = -1;
////
//// $param = new QuantityParam($adapter, $intValidator);
////
//// $serialized = base64_encode(serialize($param));
//// /** @var QuantityParam $unserialized */
//// $unserialized = base64_decode(serialize($serialized));
////
//// $this->assertEquals($param->getValue(), $unserialized->getValue());
//// $this->assertEquals($param->getInteger(), $unserialized->getInteger());
////
//// $new = new QuantityParam($adapter, $unserialized->getInteger());
//// $this->assertEquals($param->getInteger(), $new->getInteger());
//// }
//
// /**
// * Tears down the fixture, for example, closes a network connection.
// * This method is called after a test is executed.
// */
// protected function tearDown()
// {
// }
}

View File

@@ -1,158 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
use InvalidArgumentException;
use Thelia\Constraint\Validator\DateParam;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test DateParam Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class DateParamTest extends \PHPUnit_Framework_TestCase
{
public function testSomething()
{
// Stop here and mark this test as incomplete.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
// /**
// * Sets up the fixture, for example, opens a network connection.
// * This method is called before a test is executed.
// */
// protected function setUp()
// {
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\DateParam::compareTo
// *
// */
// public function testInferiorDate()
// {
// $adapter = new CouponBaseAdapter();
// $dateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-07-07");
//
// $dateParam = new DateParam($adapter, $dateValidator);
//
// $expected = 1;
// $actual = $dateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\DateParam::compareTo
// *
// */
// public function testEqualsDate()
// {
// $adapter = new CouponBaseAdapter();
// $dateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-07-08");
//
// $dateParam = new DateParam($adapter, $dateValidator);
//
// $expected = 0;
// $actual = $dateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\DateParam::compareTo
// *
// */
// public function testSuperiorDate()
// {
// $adapter = new CouponBaseAdapter();
// $dateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-07-09");
//
// $dateParam = new DateParam($adapter, $dateValidator);
//
// $expected = -1;
// $actual = $dateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * @covers Thelia\Coupon\Parameter\DateParam::compareTo
// * @expectedException InvalidArgumentException
// */
// public function testInvalidArgumentException()
// {
// $adapter = new CouponBaseAdapter();
// $dateValidator = new \DateTime("2012-07-08");
// $dateToValidate = 1377012588;
//
// $dateParam = new DateParam($adapter, $dateValidator);
//
// $dateParam->compareTo($dateToValidate);
// }
//
// /**
// * Test is the object is serializable
// * If no data is lost during the process
// */
// public function isSerializableTest()
// {
// $adapter = new CouponBaseAdapter();
// $dateValidator = new \DateTime("2012-07-08");
//
// $param = new DateParam($adapter, $dateValidator);
//
// $serialized = base64_encode(serialize($param));
// /** @var DateParam $unserialized */
// $unserialized = base64_decode(serialize($serialized));
//
// $this->assertEquals($param->getValue(), $unserialized->getValue());
// $this->assertEquals($param->getDateTime(), $unserialized->getDateTime());
//
// $new = new DateParam($adapter, $unserialized->getDateTime());
// $this->assertEquals($param->getDateTime(), $new->getDateTime());
// }
//
//
// /**
// * Tears down the fixture, for example, closes a network connection.
// * This method is called after a test is executed.
// */
// protected function tearDown()
// {
// }
}

View File

@@ -1,159 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
use InvalidArgumentException;
use Thelia\Constraint\Validator\IntegerParam;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test IntegerParam Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class IntegerParamTest extends \PHPUnit_Framework_TestCase
{
public function testSomething()
{
// Stop here and mark this test as incomplete.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
// /**
// * Sets up the fixture, for example, opens a network connection.
// * This method is called before a test is executed.
// */
// protected function setUp()
// {
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\IntegerParam::compareTo
// *
// */
// public function testInferiorInteger()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
// $intToValidate = 41;
//
// $integerParam = new IntegerParam($adapter, $intValidator);
//
// $expected = 1;
// $actual = $integerParam->compareTo($intToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\IntegerParam::compareTo
// *
// */
// public function testEqualsInteger()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
// $intToValidate = 42;
//
// $integerParam = new IntegerParam($adapter, $intValidator);
//
// $expected = 0;
// $actual = $integerParam->compareTo($intToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\IntegerParam::compareTo
// *
// */
// public function testSuperiorInteger()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
// $intToValidate = 43;
//
// $integerParam = new IntegerParam($adapter, $intValidator);
//
// $expected = -1;
// $actual = $integerParam->compareTo($intToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * @covers Thelia\Coupon\Parameter\IntegerParam::compareTo
// * @expectedException InvalidArgumentException
// */
// public function testInvalidArgumentException()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
// $intToValidate = '42';
//
// $integerParam = new IntegerParam($adapter, $intValidator);
//
// $expected = 0;
// $actual = $integerParam->compareTo($intToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * Test is the object is serializable
// * If no data is lost during the process
// */
// public function isSerializableTest()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
//
// $param = new IntegerParam($adapter, $intValidator);
//
// $serialized = base64_encode(serialize($param));
// /** @var IntegerParam $unserialized */
// $unserialized = base64_decode(serialize($serialized));
//
// $this->assertEquals($param->getValue(), $unserialized->getValue());
// $this->assertEquals($param->getInteger(), $unserialized->getInteger());
//
// $new = new IntegerParam($adapter, $unserialized->getInteger());
// $this->assertEquals($param->getInteger(), $new->getInteger());
// }
//
// /**
// * Tears down the fixture, for example, closes a network connection.
// * This method is called after a test is executed.
// */
// protected function tearDown()
// {
// }
}

View File

@@ -1,184 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
use InvalidArgumentException;
use Thelia\Constraint\Validator\IntervalParam;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test IntervalParam Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class IntervalParamTest extends \PHPUnit_Framework_TestCase
{
public function testSomething()
{
// Stop here and mark this test as incomplete.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
// /**
// * Sets up the fixture, for example, opens a network connection.
// * This method is called before a test is executed.
// */
// protected function setUp()
// {
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\IntervalParam::compareTo
// *
// */
// public function testInferiorDate()
// {
// $adapter = new CouponBaseAdapter();
// $dateValidatorStart = new \DateTime("2012-07-08");
// $dateValidatorInterval = new \DateInterval("P1M"); //1month
// $dateToValidate = new \DateTime("2012-07-07");
//
// $dateParam = new IntervalParam($adapter, $dateValidatorStart, $dateValidatorInterval);
//
// $expected = 1;
// $actual = $dateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\IntervalParam::compareTo
// *
// */
// public function testEqualsDate()
// {
// $adapter = new CouponBaseAdapter();
// $dateValidatorStart = new \DateTime("2012-07-08");
// $dateValidatorInterval = new \DateInterval("P1M"); //1month
// $dateToValidate = new \DateTime("2012-07-08");
//
// echo '1 ' . date_format($dateValidatorStart, 'g:ia \o\n l jS F Y') . "\n";
// echo '2 ' . date_format($dateToValidate, 'g:ia \o\n l jS F Y') . "\n";
//
// $dateParam = new IntervalParam($adapter, $dateValidatorStart, $dateValidatorInterval);
//
// $expected = 0;
// $actual = $dateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\IntervalParam::compareTo
// *
// */
// public function testEqualsDate2()
// {
// $adapter = new CouponBaseAdapter();
// $dateValidatorStart = new \DateTime("2012-07-08");
// $dateValidatorInterval = new \DateInterval("P1M"); //1month
// $dateToValidate = new \DateTime("2012-08-08");
//
// $dateParam = new IntervalParam($adapter, $dateValidatorStart, $dateValidatorInterval);
//
// $expected = 0;
// $actual = $dateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\IntervalParam::compareTo
// *
// */
// public function testSuperiorDate()
// {
// $adapter = new CouponBaseAdapter();
// $dateValidatorStart = new \DateTime("2012-07-08");
// $dateValidatorInterval = new \DateInterval("P1M"); //1month
// $dateToValidate = new \DateTime("2012-08-09");
//
// $dateParam = new IntervalParam($adapter, $dateValidatorStart, $dateValidatorInterval);
//
// $expected = -1;
// $actual = $dateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * @covers Thelia\Coupon\Parameter\DateParam::compareTo
// * @expectedException InvalidArgumentException
// */
// public function testInvalidArgumentException()
// {
// $adapter = new CouponBaseAdapter();
// $dateValidatorStart = new \DateTime("2012-07-08");
// $dateValidatorInterval = new \DateInterval("P1M"); //1month
// $dateToValidate = 1377012588;
//
// $dateParam = new IntervalParam($adapter, $dateValidatorStart, $dateValidatorInterval);
//
// $dateParam->compareTo($dateToValidate);
// }
//
// /**
// * Test is the object is serializable
// * If no data is lost during the process
// */
// public function isSerializableTest()
// {
// $adapter = new CouponBaseAdapter();
// $dateValidatorStart = new \DateTime("2012-07-08");
// $dateValidatorInterval = new \DateInterval("P1M"); //1month
//
// $param = new IntervalParam($adapter, $dateValidatorStart, $dateValidatorInterval);
//
// $serialized = base64_encode(serialize($param));
// /** @var IntervalParam $unserialized */
// $unserialized = base64_decode(serialize($serialized));
//
// $this->assertEquals($param->getValue(), $unserialized->getValue());
// $this->assertEquals($param->getDatePeriod(), $unserialized->getDatePeriod());
//
// $new = new IntervalParam($adapter, $unserialized->getStart(), $unserialized->getInterval());
// $this->assertEquals($param->getDatePeriod(), $new->getDatePeriod());
// }
//
// /**
// * Tears down the fixture, for example, closes a network connection.
// * This method is called after a test is executed.
// */
// protected function tearDown()
// {
// }
}

View File

@@ -1,237 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
use InvalidArgumentException;
use Thelia\Constraint\Validator\PriceParam;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test PriceParam Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class PriceParamTest extends \PHPUnit_Framework_TestCase
{
public function testSomething()
{
// Stop here and mark this test as incomplete.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
// /**
// * Sets up the fixture, for example, opens a network connection.
// * This method is called before a test is executed.
// */
// protected function setUp()
// {
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\PriceParam::compareTo
// *
// */
// public function testInferiorPrice()
// {
// $adapter = new CouponBaseAdapter();
//
// $priceValidator = 42.50;
// $priceToValidate = 1.00;
//
// $integerParam = new PriceParam($adapter, $priceValidator, 'EUR');
//
// $expected = 1;
// $actual = $integerParam->compareTo($priceToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\PriceParam::compareTo
// *
// */
// public function testInferiorPrice2()
// {
// $adapter = new CouponBaseAdapter();
//
// $priceValidator = 42.50;
// $priceToValidate = 42.49;
//
// $integerParam = new PriceParam($adapter, $priceValidator, 'EUR');
//
// $expected = 1;
// $actual = $integerParam->compareTo($priceToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\PriceParam::compareTo
// *
// */
// public function testEqualsPrice()
// {
// $adapter = new CouponBaseAdapter();
//
// $priceValidator = 42.50;
// $priceToValidate = 42.50;
//
// $integerParam = new PriceParam($adapter, $priceValidator, 'EUR');
//
// $expected = 0;
// $actual = $integerParam->compareTo($priceToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\PriceParam::compareTo
// *
// */
// public function testSuperiorPrice()
// {
// $adapter = new CouponBaseAdapter();
//
// $priceValidator = 42.50;
// $priceToValidate = 42.51;
//
// $integerParam = new PriceParam($adapter, $priceValidator, 'EUR');
//
// $expected = -1;
// $actual = $integerParam->compareTo($priceToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * @covers Thelia\Coupon\Parameter\PriceParam::compareTo
// * @expectedException InvalidArgumentException
// */
// public function testInvalidArgumentException()
// {
// $adapter = new CouponBaseAdapter();
//
// $priceValidator = 42.50;
// $priceToValidate = '42.50';
//
// $integerParam = new PriceParam($adapter, $priceValidator, 'EUR');
//
// $expected = 0;
// $actual = $integerParam->compareTo($priceToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * @covers Thelia\Coupon\Parameter\PriceParam::compareTo
// * @expectedException InvalidArgumentException
// */
// public function testInvalidArgumentException2()
// {
// $adapter = new CouponBaseAdapter();
//
// $priceValidator = 42.50;
// $priceToValidate = -1;
//
// $integerParam = new PriceParam($adapter, $priceValidator, 'EUR');
//
// $expected = 0;
// $actual = $integerParam->compareTo($priceToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * @covers Thelia\Coupon\Parameter\PriceParam::compareTo
// * @expectedException InvalidArgumentException
// */
// public function testInvalidArgumentException3()
// {
// $adapter = new CouponBaseAdapter();
//
// $priceValidator = 42.50;
// $priceToValidate = 0;
//
// $integerParam = new PriceParam($adapter, $priceValidator, 'EUR');
//
// $expected = 0;
// $actual = $integerParam->compareTo($priceToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * @covers Thelia\Coupon\Parameter\PriceParam::compareTo
// * @expectedException InvalidArgumentException
// */
// public function testInvalidArgumentException4()
// {
// $adapter = new CouponBaseAdapter();
// $priceValidator = 42.50;
// $priceToValidate = 1;
//
// $integerParam = new PriceParam($adapter, $priceValidator, 'GBP');
//
// $expected = 0;
// $actual = $integerParam->compareTo($priceToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * Test is the object is serializable
// * If no data is lost during the process
// */
// public function isSerializableTest()
// {
// $adapter = new CouponBaseAdapter();
// $priceValidator = 42.50;
//
// $param = new PriceParam($adapter, $priceValidator, 'GBP');
//
// $serialized = base64_encode(serialize($param));
// /** @var PriceParam $unserialized */
// $unserialized = base64_decode(serialize($serialized));
//
// $this->assertEquals($param->getValue(), $unserialized->getValue());
// $this->assertEquals($param->getPrice(), $unserialized->getPrice());
// $this->assertEquals($param->getCurrency(), $unserialized->getCurrency());
//
// $new = new PriceParam($adapter, $unserialized->getPrice(), $unserialized->getCurrency());
// $this->assertEquals($param->getPrice(), $new->getPrice());
// $this->assertEquals($param->getCurrency(), $new->getCurrency());
// }
//
// /**
// * Tears down the fixture, for example, closes a network connection.
// * This method is called after a test is executed.
// */
// protected function tearDown()
// {
// }
}

View File

@@ -1,195 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
use InvalidArgumentException;
use Thelia\Constraint\Validator\QuantityParam;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test QuantityParam Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class QuantityParamTest extends \PHPUnit_Framework_TestCase
{
public function testSomething()
{
// Stop here and mark this test as incomplete.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
// /**
// * Sets up the fixture, for example, opens a network connection.
// * This method is called before a test is executed.
// */
// protected function setUp()
// {
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\QuantityParam::compareTo
// *
// */
// public function testInferiorQuantity()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
// $intToValidate = 0;
//
// $integerParam = new QuantityParam($adapter, $intValidator);
//
// $expected = 1;
// $actual = $integerParam->compareTo($intToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\QuantityParam::compareTo
// *
// */
// public function testInferiorQuantity2()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
// $intToValidate = 41;
//
// $integerParam = new QuantityParam($adapter, $intValidator);
//
// $expected = 1;
// $actual = $integerParam->compareTo($intToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\QuantityParam::compareTo
// *
// */
// public function testEqualsQuantity()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
// $intToValidate = 42;
//
// $integerParam = new QuantityParam($adapter, $intValidator);
//
// $expected = 0;
// $actual = $integerParam->compareTo($intToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\QuantityParam::compareTo
// *
// */
// public function testSuperiorQuantity()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
// $intToValidate = 43;
//
// $integerParam = new QuantityParam($adapter, $intValidator);
//
// $expected = -1;
// $actual = $integerParam->compareTo($intToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * @covers Thelia\Coupon\Parameter\QuantityParam::compareTo
// * @expectedException InvalidArgumentException
// */
// public function testInvalidArgumentException()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
// $intToValidate = '42';
//
// $integerParam = new QuantityParam($adapter, $intValidator);
//
// $expected = 0;
// $actual = $integerParam->compareTo($intToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * @covers Thelia\Coupon\Parameter\QuantityParam::compareTo
// * @expectedException InvalidArgumentException
// */
// public function testInvalidArgumentException2()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
// $intToValidate = -1;
//
// $integerParam = new QuantityParam($adapter, $intValidator);
//
// $expected = 0;
// $actual = $integerParam->compareTo($intToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * Test is the object is serializable
// * If no data is lost during the process
// */
// public function isSerializableTest()
// {
// $adapter = new CouponBaseAdapter();
// $intValidator = 42;
// $intToValidate = -1;
//
// $param = new QuantityParam($adapter, $intValidator);
//
// $serialized = base64_encode(serialize($param));
// /** @var QuantityParam $unserialized */
// $unserialized = base64_decode(serialize($serialized));
//
// $this->assertEquals($param->getValue(), $unserialized->getValue());
// $this->assertEquals($param->getInteger(), $unserialized->getInteger());
//
// $new = new QuantityParam($adapter, $unserialized->getInteger());
// $this->assertEquals($param->getInteger(), $new->getInteger());
// }
//
// /**
// * Tears down the fixture, for example, closes a network connection.
// * This method is called after a test is executed.
// */
// protected function tearDown()
// {
// }
}

View File

@@ -1,309 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
use InvalidArgumentException;
use Thelia\Constraint\Validator\RepeatedDateParam;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test RepeatedDateParam Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class RepeatedDateParamTest extends \PHPUnit_Framework_TestCase
{
public function testSomething()
{
// Stop here and mark this test as incomplete.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
// /**
// * Sets up the fixture, for example, opens a network connection.
// * This method is called before a test is executed.
// */
// protected function setUp()
// {
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedDateParam::compareTo
// *
// */
// public function testInferiorDate()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-07-07");
//
// $repeatedDateParam = new RepeatedDateParam($adapter);
// $repeatedDateParam->setFrom($startDateValidator);
// $repeatedDateParam->repeatEveryMonth();
//
// $expected = -1;
// $actual = $repeatedDateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedDateParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthOneTimeFirstPeriod()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-07-08");
//
// $repeatedDateParam = new RepeatedDateParam($adapter);
// $repeatedDateParam->setFrom($startDateValidator);
// $repeatedDateParam->repeatEveryMonth();
//
// $expected = 0;
// $actual = $repeatedDateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedDateParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthOneTimeSecondPeriod()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-08-08");
//
// $repeatedDateParam = new RepeatedDateParam($adapter);
// $repeatedDateParam->setFrom($startDateValidator);
// $repeatedDateParam->repeatEveryMonth(1, 1);
//
// $expected = 0;
// $actual = $repeatedDateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedDateParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthTenTimesThirdPeriod()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-09-08");
//
// $repeatedDateParam = new RepeatedDateParam($adapter);
// $repeatedDateParam->setFrom($startDateValidator);
// $repeatedDateParam->repeatEveryMonth(1, 10);
//
// $expected = 0;
// $actual = $repeatedDateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedDateParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthTenTimesTensPeriod()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2013-05-08");
//
// $repeatedDateParam = new RepeatedDateParam($adapter);
// $repeatedDateParam->setFrom($startDateValidator);
// $repeatedDateParam->repeatEveryMonth(1, 10);
//
// $expected = 0;
// $actual = $repeatedDateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedDateParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryFourMonthTwoTimesSecondPeriod()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-11-08");
//
// $repeatedDateParam = new RepeatedDateParam($adapter);
// $repeatedDateParam->setFrom($startDateValidator);
// $repeatedDateParam->repeatEveryMonth(4, 2);
//
// $expected = 0;
// $actual = $repeatedDateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedDateParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryFourMonthTwoTimesLastPeriod()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2013-03-08");
//
// $repeatedDateParam = new RepeatedDateParam($adapter);
// $repeatedDateParam->setFrom($startDateValidator);
// $repeatedDateParam->repeatEveryMonth(4, 2);
//
// $expected = 0;
// $actual = $repeatedDateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedDateParam::compareTo
// *
// */
// public function testNotEqualsDateRepeatEveryFourMonthTwoTimes1()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-08-08");
//
// $repeatedDateParam = new RepeatedDateParam($adapter);
// $repeatedDateParam->setFrom($startDateValidator);
// $repeatedDateParam->repeatEveryMonth(4, 2);
//
// $expected = -1;
// $actual = $repeatedDateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedDateParam::compareTo
// *
// */
// public function testNotEqualsDateRepeatEveryFourMonthTwoTimes2()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-12-08");
//
// $repeatedDateParam = new RepeatedDateParam($adapter);
// $repeatedDateParam->setFrom($startDateValidator);
// $repeatedDateParam->repeatEveryMonth(4, 2);
//
// $expected = -1;
// $actual = $repeatedDateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedDateParam::compareTo
// *
// */
// public function testSuperiorDateRepeatEveryFourMonthTwoTimes()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2013-03-09");
//
// $repeatedDateParam = new RepeatedDateParam($adapter);
// $repeatedDateParam->setFrom($startDateValidator);
// $repeatedDateParam->repeatEveryMonth(4, 2);
//
// $expected = -1;
// $actual = $repeatedDateParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * @covers Thelia\Coupon\Parameter\DateParam::compareTo
// * @expectedException InvalidArgumentException
// */
// public function testInvalidArgumentException()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = 1377012588;
//
// $repeatedDateParam = new RepeatedDateParam($adapter);
// $repeatedDateParam->setFrom($startDateValidator);
// $repeatedDateParam->repeatEveryMonth(4, 2);
//
// $repeatedDateParam->compareTo($dateToValidate);
// }
//
// /**
// * Test is the object is serializable
// * If no data is lost during the process
// */
// public function isSerializableTest()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
//
// $param = new RepeatedDateParam($adapter);
// $param->setFrom($startDateValidator);
// $param->repeatEveryMonth(4, 2);
//
// $serialized = base64_encode(serialize($param));
// /** @var RepeatedDateParam $unserialized */
// $unserialized = base64_decode(serialize($serialized));
//
// $this->assertEquals($param->getValue(), $unserialized->getValue());
// $this->assertEquals($param->getDatePeriod(), $unserialized->getDatePeriod());
//
// $new = new RepeatedDateParam($adapter);
// $new->setFrom($unserialized->getFrom());
// $new->repeatEveryMonth($unserialized->getFrequency(), $unserialized->getNbRepetition());
// $this->assertEquals($param->getDatePeriod(), $new->getDatePeriod());
// }
//
// /**
// * Tears down the fixture, for example, closes a network connection.
// * This method is called after a test is executed.
// */
// protected function tearDown()
// {
// }
}

View File

@@ -1,426 +0,0 @@
<?php
/**********************************************************************************/
/* */
/* Thelia */
/* */
/* Copyright (c) OpenStudio */
/* email : info@thelia.net */
/* web : http://www.thelia.net */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* */
/**********************************************************************************/
namespace Thelia\Coupon;
use Thelia\Constraint\Validator\RepeatedIntervalParam;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test RepeatedIntervalParam Class
*
* @package Constraint
* @author Guillaume MOREL <gmorel@openstudio.fr>
*
*/
class RepeatedIntervalParamTest extends \PHPUnit_Framework_TestCase
{
public function testSomething()
{
// Stop here and mark this test as incomplete.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
// /**
// * Sets up the fixture, for example, opens a network connection.
// * This method is called before a test is executed.
// */
// protected function setUp()
// {
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testInferiorDate()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-07-07");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
//
// $RepeatedIntervalParam->repeatEveryMonth();
//
// $expected = -1;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthOneTimeFirstPeriodBeginning()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-07-08");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth();
//
// $expected = 0;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthOneTimeFirstPeriodMiddle()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-07-13");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth();
//
// $expected = 0;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthOneTimeFirstPeriodEnding()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-07-18");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth();
//
// $expected = 0;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthOneTimeSecondPeriodBeginning()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-08-08");
// $dateToValidate = new \DateTime("2012-08-08");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth();
//
// $expected = 0;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthOneTimeSecondPeriodMiddle()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-08-08");
// $dateToValidate = new \DateTime("2012-08-13");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth();
//
// $expected = 0;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthOneTimeSecondPeriodEnding()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-08-08");
// $dateToValidate = new \DateTime("2012-08-18");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth();
//
// $expected = 0;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthFourTimeLastPeriodBeginning()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-10-08");
// $dateToValidate = new \DateTime("2012-10-08");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth(1, 4);
//
// $expected = 0;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthFourTimeLastPeriodMiddle()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-10-08");
// $dateToValidate = new \DateTime("2012-10-13");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth(1, 4);
//
// $expected = 0;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testEqualsDateRepeatEveryMonthFourTimeLastPeriodEnding()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-10-08");
// $dateToValidate = new \DateTime("2012-10-18");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth(1, 4);
//
// $expected = 0;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testNotEqualsDateRepeatEveryMonthFourTimeInTheBeginning()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-10-08");
// $dateToValidate = new \DateTime("2012-07-19");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth(1, 4);
//
// $expected = -1;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testNotEqualsDateRepeatEveryMonthFourTimeInTheMiddle()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-10-08");
// $dateToValidate = new \DateTime("2012-08-01");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth(1, 4);
//
// $expected = -1;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testNotEqualsDateRepeatEveryMonthFourTimeInTheEnd()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-10-08");
// $dateToValidate = new \DateTime("2012-08-07");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth(1, 4);
//
// $expected = -1;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
//
//
// /**
// *
// * @covers Thelia\Coupon\Parameter\RepeatedIntervalParam::compareTo
// *
// */
// public function testSuperiorDateRepeatEveryMonthFourTime()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = new \DateTime("2012-10-19");
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth(1, 0);
//
// $expected = -1;
// $actual = $RepeatedIntervalParam->compareTo($dateToValidate);
// $this->assertEquals($expected, $actual);
// }
//
// /**
// * @covers Thelia\Coupon\Parameter\DateParam::compareTo
// * @expectedException \InvalidArgumentException
// */
// public function testInvalidArgumentException()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = 1377012588;
// $duration = 10;
//
// $RepeatedIntervalParam = new RepeatedIntervalParam($adapter);
// $RepeatedIntervalParam->setFrom($startDateValidator);
// $RepeatedIntervalParam->setDurationInDays($duration);
// $RepeatedIntervalParam->repeatEveryMonth(1, 4);
//
// $RepeatedIntervalParam->compareTo($dateToValidate);
// }
//
// /**
// * Test is the object is serializable
// * If no data is lost during the process
// */
// public function isSerializableTest()
// {
// $adapter = new CouponBaseAdapter();
// $startDateValidator = new \DateTime("2012-07-08");
// $dateToValidate = 1377012588;
// $duration = 10;
//
// $param = new RepeatedIntervalParam($adapter);
// $param->setFrom($startDateValidator);
// $param->setDurationInDays($duration);
// $param->repeatEveryMonth(1, 4);
//
// $serialized = base64_encode(serialize($param));
// /** @var RepeatedIntervalParam $unserialized */
// $unserialized = base64_decode(serialize($serialized));
//
// $this->assertEquals($param->getValue(), $unserialized->getValue());
// $this->assertEquals($param->getDatePeriod(), $unserialized->getDatePeriod());
//
// $new = new RepeatedIntervalParam($adapter);
// $new->setFrom($unserialized->getFrom());
// $new->repeatEveryMonth($unserialized->getFrequency(), $unserialized->getNbRepetition());
// $new->setDurationInDays($unserialized->getDurationInDays());
// $this->assertEquals($param->getDatePeriod(), $new->getDatePeriod());
// }
//
// /**
// * Tears down the fixture, for example, closes a network connection.
// * This method is called after a test is executed.
// */
// protected function tearDown()
// {
// }
}

View File

@@ -28,7 +28,7 @@ namespace Thelia\Coupon;
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test CouponBaseAdapter Class
* Unit Test BaseAdapter Class
*
* @package Coupon
* @author Guillaume MOREL <gmorel@openstudio.fr>
@@ -44,7 +44,7 @@ class CouponBaseAdapterTest extends \PHPUnit_Framework_TestCase
);
}
// /**
// * @var CouponBaseAdapter
// * @var BaseAdapter
// */
// protected $object;
//
@@ -54,7 +54,7 @@ class CouponBaseAdapterTest extends \PHPUnit_Framework_TestCase
// */
// protected function setUp()
// {
// $this->object = new CouponBaseAdapter;
// $this->object = new BaseAdapter;
// }
//
// /**
@@ -66,7 +66,7 @@ class CouponBaseAdapterTest extends \PHPUnit_Framework_TestCase
// }
//
// /**
// * @covers Thelia\Coupon\CouponBaseAdapter::getCart
// * @covers Thelia\Coupon\BaseAdapter::getCart
// * @todo Implement testGetCart().
// */
// public function testGetCart()
@@ -78,7 +78,7 @@ class CouponBaseAdapterTest extends \PHPUnit_Framework_TestCase
// }
//
// /**
// * @covers Thelia\Coupon\CouponBaseAdapter::getDeliveryAddress
// * @covers Thelia\Coupon\BaseAdapter::getDeliveryAddress
// * @todo Implement testGetDeliveryAddress().
// */
// public function testGetDeliveryAddress()
@@ -90,7 +90,7 @@ class CouponBaseAdapterTest extends \PHPUnit_Framework_TestCase
// }
//
// /**
// * @covers Thelia\Coupon\CouponBaseAdapter::getCustomer
// * @covers Thelia\Coupon\BaseAdapter::getCustomer
// * @todo Implement testGetCustomer().
// */
// public function testGetCustomer()

View File

@@ -74,7 +74,7 @@ class CouponFactoryTest extends \PHPUnit_Framework_TestCase
// * @param bool $isUsed If Coupon has been used yet
// * @param bool $isEnabled If Coupon is enabled
// * @param \DateTime $expirationDate When Coupon expires
// * @param CouponRuleCollection $rules Coupon rules
// * @param ConditionCollection $rules Coupon rules
// * @param bool $isCumulative If Coupon is cumulative
// * @param bool $isRemovingPostage If Coupon is removing postage
// *
@@ -109,9 +109,9 @@ class CouponFactoryTest extends \PHPUnit_Framework_TestCase
// $isRemovingPostage
// );
//
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->getMock(
// 'Thelia\Coupon\CouponBaseAdapter',
// 'Thelia\Coupon\BaseAdapter',
// array('findOneCouponByCode'),
// array()
// );
@@ -135,7 +135,7 @@ class CouponFactoryTest extends \PHPUnit_Framework_TestCase
// $date = new \DateTime();
// $date->setTimestamp(strtotime("today - 2 months"));
//
// /** @var CouponAdapterInterface $mockAdapter */
// /** @var AdapterInterface $mockAdapter */
// $mockAdapter = $this->generateCouponModelMock(null, null, null, null, null, null, null, null, $date);
// $couponFactory = new CouponFactory($mockAdapter);
// $coupon = $couponFactory->buildCouponFromCode('XMAS1');
@@ -151,7 +151,7 @@ class CouponFactoryTest extends \PHPUnit_Framework_TestCase
// {
// $date = new \DateTime();
//
// /** @var CouponAdapterInterface $mockAdapter */
// /** @var AdapterInterface $mockAdapter */
// $mockAdapter = $this->generateCouponModelMock(null, null, null, null, null, null, null, null, $date);
// $couponFactory = new CouponFactory($mockAdapter);
// $coupon = $couponFactory->buildCouponFromCode('XMAS1');
@@ -161,12 +161,12 @@ class CouponFactoryTest extends \PHPUnit_Framework_TestCase
// * Test if an expired Coupon is build or not (equal)
// *
// * @covers Thelia\Coupon\CouponFactory::buildCouponFromCode
// * @expectedException \Thelia\Exception\InvalidRuleException
// * @expectedException \Thelia\Exception\InvalidConditionException
// */
// public function testBuildCouponFromCodeWithoutRule()
// {
// /** @var CouponAdapterInterface $mockAdapter */
// $mockAdapter = $this->generateCouponModelMock(null, null, null, null, null, null, null, null, null, new CouponRuleCollection(array()));
// /** @var AdapterInterface $mockAdapter */
// $mockAdapter = $this->generateCouponModelMock(null, null, null, null, null, null, null, null, null, new ConditionCollection(array()));
// $couponFactory = new CouponFactory($mockAdapter);
// $coupon = $couponFactory->buildCouponFromCode('XMAS1');
// }
@@ -178,7 +178,7 @@ class CouponFactoryTest extends \PHPUnit_Framework_TestCase
// */
// public function testBuildCouponFromCode()
// {
// /** @var CouponAdapterInterface $mockAdapter */
// /** @var AdapterInterface $mockAdapter */
// $mockAdapter = $this->generateCouponModelMock();
// $couponFactory = new CouponFactory($mockAdapter);
// /** @var CouponInterface $coupon */
@@ -206,7 +206,7 @@ class CouponFactoryTest extends \PHPUnit_Framework_TestCase
// /**
// * Generate valid CouponRuleInterfaces
// *
// * @return CouponRuleCollection Set of CouponRuleInterface
// * @return ConditionCollection Set of ConditionManagerInterface
// */
// protected function generateValidRules()
// {
@@ -230,7 +230,7 @@ class CouponFactoryTest extends \PHPUnit_Framework_TestCase
//// )
//// )
//// );
//// $rules = new CouponRuleCollection(array($rule1, $rule2));
//// $rules = new ConditionCollection(array($rule1, $rule2));
////
//// return $rules;
// }
@@ -247,7 +247,7 @@ class CouponFactoryTest extends \PHPUnit_Framework_TestCase
// * @param bool $isUsed If Coupon has been used yet
// * @param bool $isEnabled If Coupon is enabled
// * @param \DateTime $expirationDate When Coupon expires
// * @param CouponRuleCollection $rules Coupon rules
// * @param ConditionCollection $rules Coupon rules
// * @param bool $isCumulative If Coupon is cumulative
// * @param bool $isRemovingPostage If Coupon is removing postage
// *
@@ -327,7 +327,7 @@ class CouponFactoryTest extends \PHPUnit_Framework_TestCase
// $rules = $this->generateValidRules();
// }
//
// $coupon->setSerializedRules(base64_encode(serialize($rules)));
// $coupon->setSerializedConditions(base64_encode(serialize($rules)));
//
// $coupon->setIsCumulative($isCumulative);
// $coupon->setIsRemovingPostage($isRemovingPostage);

View File

@@ -88,7 +88,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// /** @var CouponInterface $coupon */
// $coupon = self::generateValidCoupon();
//
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter(array($coupon), $cartTotalPrice, $checkoutTotalPrice);
//
// $couponManager = new CouponManager($stubCouponBaseAdapter);
@@ -108,7 +108,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// */
// public function testGetDiscountTwoCoupon()
// {
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $cartTotalPrice = 100.00;
// $checkoutTotalPrice = 120.00;
//
@@ -124,11 +124,11 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// )
// )
// );
// $rules = new CouponRuleCollection(array($rule1));
// $rules = new ConditionCollection(array($rule1));
// /** @var CouponInterface $coupon2 */
// $coupon2 = $this->generateValidCoupon('XMAS2', null, null, null, 15.00, null, null, $rules);
//
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter(array($coupon1, $coupon2), $cartTotalPrice, $checkoutTotalPrice);
//
// $couponManager = new CouponManager($stubCouponBaseAdapter);
@@ -148,7 +148,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// */
// public function testGetDiscountAlwaysInferiorToPrice()
// {
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $cartTotalPrice = 21.00;
// $checkoutTotalPrice = 26.00;
//
@@ -162,11 +162,11 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// )
// )
// );
// $rules = new CouponRuleCollection(array($rule1));
// $rules = new ConditionCollection(array($rule1));
// /** @var CouponInterface $coupon */
// $coupon = $this->generateValidCoupon('XMAS2', null, null, null, 30.00, null, null, $rules);
//
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter(array($coupon), $cartTotalPrice, $checkoutTotalPrice);
//
// $couponManager = new CouponManager($stubCouponBaseAdapter);
@@ -185,7 +185,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// */
// public function testIsCouponRemovingPostage()
// {
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $cartTotalPrice = 21.00;
// $checkoutTotalPrice = 27.00;
//
@@ -199,11 +199,11 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// )
// )
// );
// $rules = new CouponRuleCollection(array($rule1));
// $rules = new ConditionCollection(array($rule1));
// /** @var CouponInterface $coupon */
// $coupon = $this->generateValidCoupon('XMAS2', null, null, null, 30.00, null, null, $rules, null, true);
//
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter(array($coupon), $cartTotalPrice, $checkoutTotalPrice);
//
// $couponManager = new CouponManager($stubCouponBaseAdapter);
@@ -231,7 +231,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
//
// $coupons = array($couponCumulative1);
//
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -264,7 +264,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $couponCumulative1 = $this->generateValidCoupon(null, null, null, null, null, null, null, null, true);
//
// $coupons = array($couponCumulative1);
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -299,7 +299,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $couponCumulative2 = $this->generateValidCoupon('XMAS2', null, null, null, null, null, null, null, true);
//
// $coupons = array($couponCumulative1, $couponCumulative2);
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -334,7 +334,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $couponCumulative2 = $this->generateValidCoupon('XMAS2', null, null, null, null, null, null, null, false);
//
// $coupons = array($couponCumulative1, $couponCumulative2);
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -369,7 +369,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $couponCumulative2 = $this->generateValidCoupon('XMAS2', null, null, null, null, null, null, null, true);
//
// $coupons = array($couponCumulative1, $couponCumulative2);
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -404,7 +404,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $couponCumulative2 = $this->generateValidCoupon('XMAS2', null, null, null, null, null, null, null, false);
//
// $coupons = array($couponCumulative1, $couponCumulative2);
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -437,7 +437,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $couponCumulative1 = $this->generateValidCoupon('XMAS1', null, null, null, null, null, new \DateTime(), null, true);
//
// $coupons = array($couponCumulative1);
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -472,7 +472,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $couponCumulative2 = $this->generateValidCoupon('XMAS2', null, null, null, null, null, new \DateTime(), null, true);
//
// $coupons = array($couponCumulative1, $couponCumulative2);
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -507,7 +507,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $couponCumulative2 = $this->generateValidCoupon('XMAS2', null, null, null, null, null, null, null, true);
//
// $coupons = array($couponCumulative1, $couponCumulative2);
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -542,7 +542,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $couponCumulative2 = $this->generateValidCoupon('XMAS2', null, null, null, null, null, new \DateTime(), null, true);
//
// $coupons = array($couponCumulative1, $couponCumulative2);
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -581,7 +581,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $couponCumulative4 = $this->generateValidCoupon('XMAS4', null, null, null, null, null, null, null, true);
//
// $coupons = array($couponCumulative1, $couponCumulative2, $couponCumulative3, $couponCumulative4);
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -620,7 +620,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $couponCumulative4 = $this->generateValidCoupon('XMAS4', null, null, null, null, null, null, null, false);
//
// $coupons = array($couponCumulative1, $couponCumulative2, $couponCumulative3, $couponCumulative4);
// /** @var CouponAdapterInterface $stubCouponBaseAdapter */
// /** @var AdapterInterface $stubCouponBaseAdapter */
// $stubCouponBaseAdapter = $this->generateFakeAdapter($coupons, $cartTotalPrice, $checkoutTotalPrice);
//
// // When
@@ -641,11 +641,11 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// /**
// * Generate valid CouponRuleInterfaces
// *
// * @return array Array of CouponRuleInterface
// * @return array Array of ConditionManagerInterface
// */
// public static function generateValidRules()
// {
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $rule1 = new AvailableForTotalAmount(
// $adapter, array(
// AvailableForTotalAmount::PARAM1_PRICE => new RuleValidator(
@@ -666,7 +666,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// )
// )
// );
// $rules = new CouponRuleCollection(array($rule1, $rule2));
// $rules = new ConditionCollection(array($rule1, $rule2));
//
// return $rules;
// }
@@ -692,7 +692,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// public function generateFakeAdapter(array $coupons, $cartTotalPrice, $checkoutTotalPrice, $postagePrice = 6.00)
// {
// $stubCouponBaseAdapter = $this->getMock(
// 'Thelia\Coupon\CouponBaseAdapter',
// 'Thelia\Coupon\BaseAdapter',
// array(
// 'getCurrentCoupons',
// 'getCartTotalPrice',
@@ -734,7 +734,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// * @param float $amount Coupon discount
// * @param bool $isEnabled Is Coupon enabled
// * @param \DateTime $expirationDate Coupon expiration date
// * @param CouponRuleCollection $rules Coupon rules
// * @param ConditionCollection $rules Coupon rules
// * @param bool $isCumulative If is cumulative
// * @param bool $isRemovingPostage If is removing postage
// * @param bool $isAvailableOnSpecialOffers If is available on
@@ -758,7 +758,7 @@ class CouponManagerTest extends \PHPUnit_Framework_TestCase
// $isAvailableOnSpecialOffers = null,
// $maxUsage = null
// ) {
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// if ($code === null) {
// $code = self::VALID_CODE;
// }

View File

@@ -33,7 +33,7 @@ use Thelia\Constraint\Rule\Operators;
* Date: 8/19/13
* Time: 3:24 PM
*
* Unit Test CouponRuleCollection Class
* Unit Test ConditionCollection Class
*
* @package Coupon
* @author Guillaume MOREL <gmorel@openstudio.fr>
@@ -73,7 +73,7 @@ class CouponRuleCollectionTest extends \PHPUnit_Framework_TestCase
//// )
//// )
//// );
//// $rules = new CouponRuleCollection(array($rule1, $rule2));
//// $rules = new ConditionCollection(array($rule1, $rule2));
////
//// $serializedRules = base64_encode(serialize($rules));
//// $unserializedRules = unserialize(base64_decode($serializedRules));

View File

@@ -23,6 +23,7 @@
namespace Thelia\Coupon;
use Thelia\Coupon\RuleOrganizer;
/**
* Created by JetBrains PhpStorm.
* Date: 8/19/13
@@ -47,7 +48,7 @@ class RuleOrganizerTest extends \PHPUnit_Framework_TestCase
*/
protected function setUp()
{
$this->object = new RuleOrganizer;
$this->object = new RuleOrganizer();
}
/**

View File

@@ -153,7 +153,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// */
// public function testGetEffect()
// {
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $coupon = CouponManagerTest::generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// $expected = 10;
@@ -186,7 +186,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// $coupon = CouponManagerTest::generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0, $rule1, $rule2)));
// $coupon->setRules(new ConditionCollection(array($rule0, $rule1, $rule2)));
//
// // Then
// $expected = 3;
@@ -197,7 +197,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// * Test Coupon rule setter
// *
// * @covers Thelia\Coupon\type\RemoveXAmountManager::setRules
// * @expectedException \Thelia\Exception\InvalidRuleException
// * @expectedException \Thelia\Exception\InvalidConditionException
// *
// */
// public function testSetRulesInvalid()
@@ -216,7 +216,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// $coupon = CouponManagerTest::generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0, $rule1, $rule2)));
// $coupon->setRules(new ConditionCollection(array($rule0, $rule1, $rule2)));
// }
//
// /**
@@ -228,7 +228,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// public function testGetEffectIfTotalAmountInferiorTo400Valid()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $rule0 = $this->generateValidRuleAvailableForTotalAmountOperatorTo(
// Operators::INFERIOR,
// 400.00
@@ -236,7 +236,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// $coupon = CouponManagerTest::generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0)));
// $coupon->setRules(new ConditionCollection(array($rule0)));
//
// // Then
// $expected = 10.00;
@@ -253,7 +253,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// public function testGetEffectIfTotalAmountInferiorOrEqualTo400Valid()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $rule0 = $this->generateValidRuleAvailableForTotalAmountOperatorTo(
// Operators::INFERIOR_OR_EQUAL,
// 400.00
@@ -261,7 +261,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// $coupon = CouponManagerTest::generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0)));
// $coupon->setRules(new ConditionCollection(array($rule0)));
//
// // Then
// $expected = 10.00;
@@ -278,7 +278,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// public function testGetEffectIfTotalAmountEqualTo400Valid()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $rule0 = $this->generateValidRuleAvailableForTotalAmountOperatorTo(
// Operators::EQUAL,
// 400.00
@@ -286,7 +286,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// $coupon = CouponManagerTest::generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0)));
// $coupon->setRules(new ConditionCollection(array($rule0)));
//
// // Then
// $expected = 10.00;
@@ -303,7 +303,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// public function testGetEffectIfTotalAmountSuperiorOrEqualTo400Valid()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $rule0 = $this->generateValidRuleAvailableForTotalAmountOperatorTo(
// Operators::SUPERIOR_OR_EQUAL,
// 400.00
@@ -311,7 +311,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// $coupon = CouponManagerTest::generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0)));
// $coupon->setRules(new ConditionCollection(array($rule0)));
//
// // Then
// $expected = 10.00;
@@ -328,7 +328,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// public function testGetEffectIfTotalAmountSuperiorTo400Valid()
// {
// // Given
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $rule0 = $this->generateValidRuleAvailableForTotalAmountOperatorTo(
// Operators::SUPERIOR,
// 400.00
@@ -336,7 +336,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// $coupon = CouponManagerTest::generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0)));
// $coupon->setRules(new ConditionCollection(array($rule0)));
//
// // Then
// $expected = 10.00;
@@ -365,7 +365,7 @@ class RemoveXAmountTest extends \PHPUnit_Framework_TestCase
// */
// protected function generateValidRuleAvailableForTotalAmountOperatorTo($operator, $amount)
// {
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $validators = array(
// AvailableForTotalAmount::PARAM1_PRICE => new RuleValidator(
// $operator,

View File

@@ -158,7 +158,7 @@ class RemoveXPercentTest extends \PHPUnit_Framework_TestCase
// $coupon = $this->generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0, $rule1, $rule2)));
// $coupon->setRules(new ConditionCollection(array($rule0, $rule1, $rule2)));
//
// // Then
// $expected = 3;
@@ -169,7 +169,7 @@ class RemoveXPercentTest extends \PHPUnit_Framework_TestCase
// * Test Coupon rule setter
// *
// * @covers Thelia\Coupon\type\RemoveXPercentManager::setRules
// * @expectedException \Thelia\Exception\InvalidRuleException
// * @expectedException \Thelia\Exception\InvalidConditionException
// *
// */
// public function testSetRulesInvalid()
@@ -188,7 +188,7 @@ class RemoveXPercentTest extends \PHPUnit_Framework_TestCase
// $coupon = $this->generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0, $rule1, $rule2)));
// $coupon->setRules(new ConditionCollection(array($rule0, $rule1, $rule2)));
// }
//
// /**
@@ -207,7 +207,7 @@ class RemoveXPercentTest extends \PHPUnit_Framework_TestCase
// $coupon = $this->generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0)));
// $coupon->setRules(new ConditionCollection(array($rule0)));
//
// // Then
// $expected = 24.50;
@@ -231,7 +231,7 @@ class RemoveXPercentTest extends \PHPUnit_Framework_TestCase
// $coupon = $this->generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0)));
// $coupon->setRules(new ConditionCollection(array($rule0)));
//
// // Then
// $expected = 24.50;
@@ -255,7 +255,7 @@ class RemoveXPercentTest extends \PHPUnit_Framework_TestCase
// $coupon = $this->generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0)));
// $coupon->setRules(new ConditionCollection(array($rule0)));
//
// // Then
// $expected = 24.50;
@@ -279,7 +279,7 @@ class RemoveXPercentTest extends \PHPUnit_Framework_TestCase
// $coupon = $this->generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0)));
// $coupon->setRules(new ConditionCollection(array($rule0)));
//
// // Then
// $expected = 24.50;
@@ -303,7 +303,7 @@ class RemoveXPercentTest extends \PHPUnit_Framework_TestCase
// $coupon = $this->generateValidCoupon(null, null, null, null, null, null, null, null, false, false);
//
// // When
// $coupon->setRules(new CouponRuleCollection(array($rule0)));
// $coupon->setRules(new ConditionCollection(array($rule0)));
//
// // Then
// $expected = 24.50;
@@ -322,7 +322,7 @@ class RemoveXPercentTest extends \PHPUnit_Framework_TestCase
// * @param float $amount Coupon discount
// * @param bool $isEnabled Is Coupon enabled
// * @param \DateTime $expirationDate Coupon expiration date
// * @param CouponRuleCollection $rules Coupon rules
// * @param ConditionCollection $rules Coupon rules
// * @param bool $isCumulative If is cumulative
// * @param bool $isRemovingPostage If is removing postage
// * @param bool $isAvailableOnSpecialOffers If is available on
@@ -407,7 +407,7 @@ class RemoveXPercentTest extends \PHPUnit_Framework_TestCase
// */
// protected function generateValidRuleAvailableForTotalAmountOperatorTo($operator, $amount)
// {
// $adapter = new CouponBaseAdapter();
// $adapter = new BaseAdapter();
// $validators = array(
// AvailableForTotalAmount::PARAM1_PRICE => new RuleValidator(
// $operator,
@@ -432,7 +432,7 @@ class RemoveXPercentTest extends \PHPUnit_Framework_TestCase
// public function generateFakeAdapter($cartTotalPrice)
// {
// $stubCouponBaseAdapter = $this->getMock(
// 'Thelia\Coupon\CouponBaseAdapter',
// 'Thelia\Coupon\BaseAdapter',
// array(
// 'getCartTotalPrice'
// ),

View File

@@ -1,9 +1,12 @@
<?php
use Thelia\Constraint\ConstraintFactory;
use Thelia\Constraint\Rule\AvailableForTotalAmountManager;
use Thelia\Constraint\Rule\AvailableForXArticlesManager;
use Thelia\Constraint\Rule\Operators;
use Thelia\Coupon\CouponRuleCollection;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Thelia\Condition\ConditionFactory;
use Thelia\Condition\Implementation\MatchForEveryoneManager;
use Thelia\Condition\Implementation\MatchForTotalAmountManager;
use Thelia\Condition\Implementation\MatchForXArticlesManager;
use Thelia\Condition\Operators;
use Thelia\Coupon\AdapterInterface;
use Thelia\Coupon\ConditionCollection;
require __DIR__ . '/../core/bootstrap.php';
@@ -637,9 +640,11 @@ function setI18n($faker, &$object, $fields = array('Title' => 20, 'Description'
/**
* Generate Coupon fixtures
*/
function generateCouponFixtures($thelia)
function generateCouponFixtures(\Thelia\Core\Thelia $thelia)
{
/** @var $container ContainerInterface Service Container */
$container = $thelia->getContainer();
/** @var AdapterInterface $adapter */
$adapter = $container->get('thelia.adapter');
// Coupons
@@ -658,57 +663,48 @@ Praesent ligula lorem, faucibus ut metus quis, fermentum iaculis erat. Pellentes
Sed facilisis pellentesque nisl, eu tincidunt erat scelerisque a. Nullam malesuada tortor vel erat volutpat tincidunt. In vehicula diam est, a convallis eros scelerisque ut. Donec aliquet venenatis iaculis. Ut a arcu gravida, placerat dui eu, iaculis nisl. Quisque adipiscing orci sit amet dui dignissim lacinia. Sed vulputate lorem non dolor adipiscing ornare. Morbi ornare id nisl id aliquam. Ut fringilla elit ante, nec lacinia enim fermentum sit amet. Aenean rutrum lorem eu convallis pharetra. Cras malesuada varius metus, vitae gravida velit. Nam a varius ipsum, ac commodo dolor. Phasellus nec elementum elit. Etiam vel adipiscing leo.');
$coupon1->setAmount(10.00);
$coupon1->setIsUsed(1);
$coupon1->setIsEnabled(1);
$coupon1->setIsUsed(true);
$coupon1->setIsEnabled(true);
$date = new \DateTime();
$coupon1->setExpirationDate($date->setTimestamp(strtotime("today + 2 months")));
$coupon1->setExpirationDate($date->setTimestamp(strtotime("today + 3 months")));
$rule1 = new AvailableForTotalAmountManager($adapter);
$condition1 = new MatchForTotalAmountManager($adapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
MatchForTotalAmountManager::INPUT1 => Operators::SUPERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 40.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR'
MatchForTotalAmountManager::INPUT1 => 40.00,
MatchForTotalAmountManager::INPUT2 => 'EUR'
);
$rule1->setValidatorsFromForm($operators, $values);
$condition1->setValidatorsFromForm($operators, $values);
$rule2 = new AvailableForTotalAmountManager($adapter);
$condition2 = new MatchForTotalAmountManager($adapter);
$operators = array(
AvailableForTotalAmountManager::INPUT1 => Operators::INFERIOR,
AvailableForTotalAmountManager::INPUT2 => Operators::EQUAL
MatchForTotalAmountManager::INPUT1 => Operators::INFERIOR,
MatchForTotalAmountManager::INPUT2 => Operators::EQUAL
);
$values = array(
AvailableForTotalAmountManager::INPUT1 => 400.00,
AvailableForTotalAmountManager::INPUT2 => 'EUR'
MatchForTotalAmountManager::INPUT1 => 400.00,
MatchForTotalAmountManager::INPUT2 => 'EUR'
);
$rule2->setValidatorsFromForm($operators, $values);
$condition2->setValidatorsFromForm($operators, $values);
$rules = new CouponRuleCollection();
$rules->add($rule1);
$rules->add($rule2);
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $container->get('thelia.constraint.factory');
$serializedRules = $constraintFactory->serializeCouponRuleCollection($rules);
$coupon1->setSerializedRules($serializedRules);
$conditions = new ConditionCollection();
$conditions->add($condition1);
$conditions->add($condition2);
/** @var ConditionFactory $conditionFactory */
$conditionFactory = $container->get('thelia.condition.factory');
$serializedConditions = $conditionFactory->serializeConditionCollection($conditions);
$coupon1->setSerializedConditions($serializedConditions);
$coupon1->setMaxUsage(40);
$coupon1->setIsCumulative(1);
$coupon1->setIsRemovingPostage(0);
$coupon1->setIsAvailableOnSpecialOffers(1);
$coupon1->setIsCumulative(true);
$coupon1->setIsRemovingPostage(false);
$coupon1->setIsAvailableOnSpecialOffers(true);
$coupon1->save();
// Coupons
$coupon2 = new Thelia\Model\Coupon();
$coupon2->setCode('SPRINGBREAK');
@@ -725,33 +721,70 @@ Praesent ligula lorem, faucibus ut metus quis, fermentum iaculis erat. Pellentes
Sed facilisis pellentesque nisl, eu tincidunt erat scelerisque a. Nullam malesuada tortor vel erat volutpat tincidunt. In vehicula diam est, a convallis eros scelerisque ut. Donec aliquet venenatis iaculis. Ut a arcu gravida, placerat dui eu, iaculis nisl. Quisque adipiscing orci sit amet dui dignissim lacinia. Sed vulputate lorem non dolor adipiscing ornare. Morbi ornare id nisl id aliquam. Ut fringilla elit ante, nec lacinia enim fermentum sit amet. Aenean rutrum lorem eu convallis pharetra. Cras malesuada varius metus, vitae gravida velit. Nam a varius ipsum, ac commodo dolor. Phasellus nec elementum elit. Etiam vel adipiscing leo.');
$coupon2->setAmount(10.00);
$coupon2->setIsUsed(1);
$coupon2->setIsEnabled(1);
$coupon2->setIsUsed(true);
$coupon2->setIsEnabled(true);
$date = new \DateTime();
$coupon2->setExpirationDate($date->setTimestamp(strtotime("today + 2 months")));
$coupon2->setExpirationDate($date->setTimestamp(strtotime("today + 1 months")));
$rule1 = new AvailableForXArticlesManager($adapter);
$condition1 = new MatchForXArticlesManager($adapter);
$operators = array(
AvailableForXArticlesManager::INPUT1 => Operators::SUPERIOR,
MatchForXArticlesManager::INPUT1 => Operators::SUPERIOR,
);
$values = array(
AvailableForXArticlesManager::INPUT1 => 4,
MatchForXArticlesManager::INPUT1 => 4,
);
$rule1->setValidatorsFromForm($operators, $values);
$condition1->setValidatorsFromForm($operators, $values);
$conditions = new ConditionCollection();
$conditions->add($condition1);
$rules = new CouponRuleCollection();
$rules->add($rule1);
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $container->get('thelia.constraint.factory');
$serializedRules = $constraintFactory->serializeCouponRuleCollection($rules);
$coupon2->setSerializedRules($serializedRules);
/** @var ConditionFactory $conditionFactory */
$conditionFactory = $container->get('thelia.condition.factory');
$serializedConditions = $conditionFactory->serializeConditionCollection($conditions);
$coupon2->setSerializedConditions($serializedConditions);
$coupon2->setMaxUsage(-1);
$coupon2->setIsCumulative(0);
$coupon2->setIsRemovingPostage(1);
$coupon2->setIsAvailableOnSpecialOffers(1);
$coupon2->setIsCumulative(false);
$coupon2->setIsRemovingPostage(true);
$coupon2->setIsAvailableOnSpecialOffers(true);
$coupon2->save();
// Coupons
$coupon3 = new Thelia\Model\Coupon();
$coupon3->setCode('OLD');
$coupon3->setType('thelia.coupon.type.remove_x_percent');
$coupon3->setTitle('Old coupon');
$coupon3->setShortDescription('Coupon for Springbreak removing 10% if you have more than 4 articles in your cart');
$coupon3->setDescription('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras at luctus tellus. Integer turpis mauris, aliquet vitae risus tristique, pellentesque vestibulum urna. Vestibulum sodales laoreet lectus dictum suscipit. Praesent vulputate, sem id varius condimentum, quam magna tempor elit, quis venenatis ligula nulla eget libero. Cras egestas euismod tellus, id pharetra leo suscipit quis. Donec lacinia ac lacus et ultricies. Nunc in porttitor neque. Proin at quam congue, consectetur orci sed, congue nulla. Nulla eleifend nunc ligula, nec pharetra elit tempus quis. Vivamus vel mauris sed est dictum blandit. Maecenas blandit dapibus velit ut sollicitudin. In in euismod mauris, consequat viverra magna. Cras velit velit, sollicitudin commodo tortor gravida, tempus varius nulla.
Donec rhoncus leo mauris, id porttitor ante luctus tempus. Curabitur quis augue feugiat, ullamcorper mauris ac, interdum mi. Quisque aliquam lorem vitae felis lobortis, id interdum turpis mattis. Vestibulum diam massa, ornare congue blandit quis, facilisis at nisl. In tortor metus, venenatis non arcu nec, sollicitudin ornare nisl. Nunc erat risus, varius nec urna at, iaculis lacinia elit. Aenean ut felis tempus, tincidunt odio non, sagittis nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec vitae hendrerit elit. Nunc sit amet gravida risus, euismod lobortis massa. Nam a erat mauris. Nam a malesuada lorem. Nulla id accumsan dolor, sed rhoncus tellus. Quisque dictum felis sed leo auctor, at volutpat lectus viverra. Morbi rutrum, est ac aliquam imperdiet, nibh sem sagittis justo, ac mattis magna lacus eu nulla.
Duis interdum lectus nulla, nec pellentesque sapien condimentum at. Suspendisse potenti. Sed eu purus tellus. Nunc quis rhoncus metus. Fusce vitae tellus enim. Interdum et malesuada fames ac ante ipsum primis in faucibus. Etiam tempor porttitor erat vitae iaculis. Sed est elit, consequat non ornare vitae, vehicula eget lectus. Etiam consequat sapien mauris, eget consectetur magna imperdiet eget. Nunc sollicitudin luctus velit, in commodo nulla adipiscing fermentum. Fusce nisi sapien, posuere vitae metus sit amet, facilisis sollicitudin dui. Fusce ultricies auctor enim sit amet iaculis. Morbi at vestibulum enim, eget adipiscing eros.
Praesent ligula lorem, faucibus ut metus quis, fermentum iaculis erat. Pellentesque elit erat, lacinia sed semper ac, sagittis vel elit. Nam eu convallis est. Curabitur rhoncus odio vitae consectetur pellentesque. Nam vitae arcu nec ante scelerisque dignissim vel nec neque. Suspendisse augue nulla, mollis eget dui et, tempor facilisis erat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ac diam ipsum. Donec convallis dui ultricies velit auctor, non lobortis nulla ultrices. Morbi vitae dignissim ante, sit amet lobortis tortor. Nunc dapibus condimentum augue, in molestie neque congue non.
Sed facilisis pellentesque nisl, eu tincidunt erat scelerisque a. Nullam malesuada tortor vel erat volutpat tincidunt. In vehicula diam est, a convallis eros scelerisque ut. Donec aliquet venenatis iaculis. Ut a arcu gravida, placerat dui eu, iaculis nisl. Quisque adipiscing orci sit amet dui dignissim lacinia. Sed vulputate lorem non dolor adipiscing ornare. Morbi ornare id nisl id aliquam. Ut fringilla elit ante, nec lacinia enim fermentum sit amet. Aenean rutrum lorem eu convallis pharetra. Cras malesuada varius metus, vitae gravida velit. Nam a varius ipsum, ac commodo dolor. Phasellus nec elementum elit. Etiam vel adipiscing leo.');
$coupon3->setAmount(10.00);
$coupon3->setIsUsed(false);
$coupon3->setIsEnabled(false);
$date = new \DateTime();
$coupon3->setExpirationDate($date->setTimestamp(strtotime("today + 2 months")));
$condition1 = new MatchForEveryoneManager($adapter);
$operators = array();
$values = array();
$condition1->setValidatorsFromForm($operators, $values);
$conditions = new ConditionCollection();
$conditions->add($condition1);
/** @var ConditionFactory $constraintCondition */
$constraintCondition = $container->get('thelia.condition.factory');
$serializedConditions = $constraintCondition->serializeConditionCollection($conditions);
$coupon3->setSerializedConditions($serializedConditions);
$coupon3->setMaxUsage(-1);
$coupon3->setIsCumulative(true);
$coupon3->setIsRemovingPostage(false);
$coupon3->setIsAvailableOnSpecialOffers(false);
$coupon3->save();
}

View File

@@ -21,11 +21,8 @@
/* */
/*************************************************************************************/
use Thelia\Constraint\ConstraintFactory;
use Thelia\Constraint\Rule\AvailableForTotalAmountManager;
use Thelia\Constraint\Rule\AvailableForXArticlesManager;
use Thelia\Constraint\Rule\Operators;
use Thelia\Coupon\CouponRuleCollection;
use Thelia\Condition\Implementation\MatchForTotalAmountManager;
use Thelia\Condition\Implementation\MatchForXArticlesManager;
require __DIR__ . '/../core/bootstrap.php';

Some files were not shown because too many files have changed in this diff Show More