Conflicts:
	core/lib/Thelia/Form/CustomerCreation.php
	templates/admin/default/customers.html
This commit is contained in:
mespeche
2013-09-10 16:44:24 +02:00
27 changed files with 1331 additions and 552 deletions

View File

@@ -184,8 +184,9 @@ class CouponController extends BaseAdminController
);
/** @var CouponRuleInterface $rule */
foreach ($rules as $rule) {
foreach ($rules->getRules() as $rule) {
$args['rulesObject'][] = array(
'serviceId' => $rule->getServiceId(),
'name' => $rule->getName(),
'tooltip' => $rule->getToolTip(),
'validators' => $rule->getValidators()
@@ -201,13 +202,18 @@ class CouponController extends BaseAdminController
$args['availableCoupons'] = $this->getAvailableCoupons();
$args['availableRules'] = $this->getAvailableRules();
$args['urlAjaxGetRuleInput'] = $this->getRouteFromRouter(
'router.admin',
$args['urlAjaxGetRuleInput'] = $this->getRoute(
'admin.coupon.rule.input',
array('ruleId' => 'ruleId'),
Router::ABSOLUTE_URL
);
$args['urlAjaxUpdateRules'] = $this->getRoute(
'admin.coupon.rule.update',
array('couponId' => $couponId),
Router::ABSOLUTE_URL
);
$args['formAction'] = 'admin/coupon/update/' . $couponId;
return $this->render(
@@ -288,6 +294,8 @@ class CouponController extends BaseAdminController
);
}
// $args['rules'] = $this->cleanRuleForTemplate($coupon->getRules()->getRules());
// Setup the object form
$changeForm = new CouponCreationForm($this->getRequest(), 'form', $data);
@@ -338,14 +346,16 @@ class CouponController extends BaseAdminController
{
$this->checkAuth('ADMIN', 'admin.coupon.read');
if (!$this->getRequest()->isXmlHttpRequest()) {
$this->redirect(
$this->getRoute(
'admin',
array(),
Router::ABSOLUTE_URL
)
);
if ($this->isDebug()) {
if (!$this->getRequest()->isXmlHttpRequest()) {
$this->redirect(
$this->getRoute(
'admin',
array(),
Router::ABSOLUTE_URL
)
);
}
}
/** @var ConstraintFactory $constraintFactory */
@@ -365,6 +375,102 @@ class CouponController extends BaseAdminController
);
}
/**
* Manage Coupons read display
*
* @param int $couponId Coupon id
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function updateRulesAction($couponId)
{
$this->checkAuth('ADMIN', 'admin.coupon.read');
if ($this->isDebug()) {
if (!$this->getRequest()->isXmlHttpRequest()) {
$this->redirect(
$this->getRoute(
'admin',
array(),
Router::ABSOLUTE_URL
)
);
}
}
$search = CouponQuery::create();
/** @var Coupon $coupon */
$coupon = $search->findOneById($couponId);
if (!$coupon) {
return $this->pageNotFound();
}
$rules = new CouponRuleCollection();
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $this->container->get('thelia.constraint.factory');
$rulesReceived = json_decode($this->getRequest()->get('rules'));
foreach ($rulesReceived as $ruleReceived) {
var_dump('building ', $ruleReceived->values);
$rule = $constraintFactory->build(
$ruleReceived->serviceId,
(array) $ruleReceived->operators,
(array) $ruleReceived->values
);
$rules->add(clone $rule);
}
$coupon->setSerializedRules(
$constraintFactory->serializeCouponRuleCollection($rules)
);
$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()
);
$eventToDispatch = TheliaEvents::COUPON_RULE_UPDATE;
// Dispatch Event to the Action
$this->dispatch(
$eventToDispatch,
$couponEvent
);
$this->adminLogAppend(
sprintf(
'Coupon %s (ID %s) rules updated',
$couponEvent->getTitle(),
$couponEvent->getCoupon()->getId()
)
);
$cleanedRules = $this->cleanRuleForTemplate($rules);
return $this->render(
'coupon/rules',
array(
'couponId' => $couponId,
'rules' => $cleanedRules,
'urlEdit' => $couponId,
'urlDelete' => $couponId
)
);
}
/**
* Build a Coupon from its form
*
@@ -554,6 +660,21 @@ class CouponController extends BaseAdminController
return $cleanedRules;
}
/**
* @param $rules
* @return array
*/
protected function cleanRuleForTemplate($rules)
{
$cleanedRules = array();
/** @var $rule CouponRuleInterface */
foreach ($rules->getRules() as $rule) {
$cleanedRules[] = $rule->getToolTip();
}
return $cleanedRules;
}
// /**
// * Validation Rule creation
// *