Fixed date input format and conversion

This commit is contained in:
Franck Allimant
2014-05-02 16:54:49 +02:00
parent 2647c62838
commit 8ce6cdbae0

View File

@@ -34,6 +34,7 @@ use Thelia\Log\Tlog;
use Thelia\Model\Coupon; use Thelia\Model\Coupon;
use Thelia\Model\CouponQuery; use Thelia\Model\CouponQuery;
use Thelia\Model\Lang; use Thelia\Model\Lang;
use Thelia\Model\LangQuery;
use Thelia\Tools\I18n; use Thelia\Tools\I18n;
use Thelia\Tools\Rest\ResponseRest; use Thelia\Tools\Rest\ResponseRest;
@@ -53,7 +54,7 @@ class CouponController extends BaseAdminController
*/ */
public function browseAction() public function browseAction()
{ {
if (null !== $response = $this->checkAuth(AdminResources::COUPON, array(), AccessManager::VIEW)) { if (null !== $response = $this->checkAuth(AdminResources::COUPON, [], AccessManager::VIEW)) {
return $response; return $response;
} }
@@ -69,12 +70,12 @@ class CouponController extends BaseAdminController
*/ */
public function createAction() public function createAction()
{ {
if (null !== $response = $this->checkAuth(AdminResources::COUPON, array(), AccessManager::CREATE)) { if (null !== $response = $this->checkAuth(AdminResources::COUPON, [], AccessManager::CREATE)) {
return $response; return $response;
} }
// Parameters given to the template // Parameters given to the template
$args = array(); $args = [];
$i18n = new I18n(); $i18n = new I18n();
/** @var Lang $lang */ /** @var Lang $lang */
@@ -92,15 +93,14 @@ class CouponController extends BaseAdminController
} else { } else {
// If no input for expirationDate, now + 2 months // If no input for expirationDate, now + 2 months
$defaultDate = new \DateTime(); $defaultDate = new \DateTime();
$args['defaultDate'] = $defaultDate->modify('+2 month') $args['defaultDate'] = $defaultDate->modify('+2 month')->format($this->getDefaultDateFormat());
->format('Y-m-d');
} }
$args['dateFormat'] = $this->getSession()->getLang()->getDateFormat(); $args['dateFormat'] = $this->getDefaultDateFormat();
$args['availableCoupons'] = $this->getAvailableCoupons(); $args['availableCoupons'] = $this->getAvailableCoupons();
$args['urlAjaxAdminCouponDrawInputs'] = $this->getRoute( $args['urlAjaxAdminCouponDrawInputs'] = $this->getRoute(
'admin.coupon.draw.inputs.ajax', 'admin.coupon.draw.inputs.ajax',
array('couponServiceId' => 'couponServiceId'), ['couponServiceId' => 'couponServiceId'],
Router::ABSOLUTE_URL Router::ABSOLUTE_URL
); );
$args['formAction'] = 'admin/coupon/create'; $args['formAction'] = 'admin/coupon/create';
@@ -120,7 +120,7 @@ class CouponController extends BaseAdminController
*/ */
public function updateAction($couponId) public function updateAction($couponId)
{ {
if (null !== $response = $this->checkAuth(AdminResources::COUPON, array(), AccessManager::UPDATE)) { if (null !== $response = $this->checkAuth(AdminResources::COUPON, [], AccessManager::UPDATE)) {
return $response; return $response;
} }
@@ -138,7 +138,7 @@ class CouponController extends BaseAdminController
$couponManager = $couponFactory->buildCouponFromModel($coupon); $couponManager = $couponFactory->buildCouponFromModel($coupon);
// Parameters given to the template // Parameters given to the template
$args = array(); $args = [];
$i18n = new I18n(); $i18n = new I18n();
/** @var Lang $lang */ /** @var Lang $lang */
@@ -164,7 +164,7 @@ class CouponController extends BaseAdminController
$coupon->getSerializedConditions() $coupon->getSerializedConditions()
); );
$data = array( $data = [
'code' => $coupon->getCode(), 'code' => $coupon->getCode(),
'title' => $coupon->getTitle(), 'title' => $coupon->getTitle(),
'amount' => $coupon->getAmount(), 'amount' => $coupon->getAmount(),
@@ -172,14 +172,14 @@ class CouponController extends BaseAdminController
'shortDescription' => $coupon->getShortDescription(), 'shortDescription' => $coupon->getShortDescription(),
'description' => $coupon->getDescription(), 'description' => $coupon->getDescription(),
'isEnabled' => $coupon->getIsEnabled(), 'isEnabled' => $coupon->getIsEnabled(),
'expirationDate' => $coupon->getExpirationDate('Y-m-d'), 'expirationDate' => $coupon->getExpirationDate(),
'isAvailableOnSpecialOffers' => $coupon->getIsAvailableOnSpecialOffers(), 'isAvailableOnSpecialOffers' => $coupon->getIsAvailableOnSpecialOffers(),
'isCumulative' => $coupon->getIsCumulative(), 'isCumulative' => $coupon->getIsCumulative(),
'isRemovingPostage' => $coupon->getIsRemovingPostage(), 'isRemovingPostage' => $coupon->getIsRemovingPostage(),
'maxUsage' => $coupon->getMaxUsage(), 'maxUsage' => $coupon->getMaxUsage(),
'conditions' => $conditions, 'conditions' => $conditions,
'locale' => $this->getCurrentEditionLocale(), 'locale' => $this->getCurrentEditionLocale(),
); ];
$args['conditions'] = $this->cleanConditionForTemplate($conditions); $args['conditions'] = $this->cleanConditionForTemplate($conditions);
@@ -194,45 +194,47 @@ class CouponController extends BaseAdminController
$args['couponInputsHtml'] = $couponManager->drawBackOfficeInputs(); $args['couponInputsHtml'] = $couponManager->drawBackOfficeInputs();
$args['urlAjaxAdminCouponDrawInputs'] = $this->getRoute( $args['urlAjaxAdminCouponDrawInputs'] = $this->getRoute(
'admin.coupon.draw.inputs.ajax', 'admin.coupon.draw.inputs.ajax',
array('couponServiceId' => 'couponServiceId'), ['couponServiceId' => 'couponServiceId'],
Router::ABSOLUTE_URL Router::ABSOLUTE_URL
); );
$args['availableConditions'] = $this->getAvailableConditions(); $args['availableConditions'] = $this->getAvailableConditions();
$args['urlAjaxGetConditionInputFromServiceId'] = $this->getRoute( $args['urlAjaxGetConditionInputFromServiceId'] = $this->getRoute(
'admin.coupon.draw.condition.read.inputs.ajax', 'admin.coupon.draw.condition.read.inputs.ajax',
array('conditionId' => 'conditionId'), ['conditionId' => 'conditionId'],
Router::ABSOLUTE_URL Router::ABSOLUTE_URL
); );
$args['urlAjaxGetConditionInputFromConditionInterface'] = $this->getRoute( $args['urlAjaxGetConditionInputFromConditionInterface'] = $this->getRoute(
'admin.coupon.draw.condition.update.inputs.ajax', 'admin.coupon.draw.condition.update.inputs.ajax',
array( [
'couponId' => $couponId, 'couponId' => $couponId,
'conditionIndex' => 8888888 'conditionIndex' => 8888888
), ],
Router::ABSOLUTE_URL Router::ABSOLUTE_URL
); );
$args['urlAjaxSaveConditions'] = $this->getRoute( $args['urlAjaxSaveConditions'] = $this->getRoute(
'admin.coupon.condition.save', 'admin.coupon.condition.save',
array('couponId' => $couponId), ['couponId' => $couponId],
Router::ABSOLUTE_URL Router::ABSOLUTE_URL
); );
$args['urlAjaxDeleteConditions'] = $this->getRoute( $args['urlAjaxDeleteConditions'] = $this->getRoute(
'admin.coupon.condition.delete', 'admin.coupon.condition.delete',
array( [
'couponId' => $couponId, 'couponId' => $couponId,
'conditionIndex' => 8888888 'conditionIndex' => 8888888
), ],
Router::ABSOLUTE_URL Router::ABSOLUTE_URL
); );
$args['urlAjaxGetConditionSummaries'] = $this->getRoute( $args['urlAjaxGetConditionSummaries'] = $this->getRoute(
'admin.coupon.draw.condition.summaries.ajax', 'admin.coupon.draw.condition.summaries.ajax',
array('couponId' => $couponId), ['couponId' => $couponId],
Router::ABSOLUTE_URL Router::ABSOLUTE_URL
); );
$args['formAction'] = 'admin/coupon/update/' . $couponId; $args['formAction'] = 'admin/coupon/update/' . $couponId;
$args['dateFormat'] = $this->getDefaultDateFormat();
return $this->render('coupon-update', $args); return $this->render('coupon-update', $args);
} }
@@ -245,7 +247,7 @@ class CouponController extends BaseAdminController
*/ */
public function getConditionEmptyInputAjaxAction($conditionId) public function getConditionEmptyInputAjaxAction($conditionId)
{ {
if (null !== $response = $this->checkAuth(AdminResources::COUPON, array(), AccessManager::VIEW)) if (null !== $response = $this->checkAuth(AdminResources::COUPON, [], AccessManager::VIEW))
return $response; return $response;
$this->checkXmlHttpRequest(); $this->checkXmlHttpRequest();
@@ -277,11 +279,11 @@ class CouponController extends BaseAdminController
return $this->render( return $this->render(
'coupon/condition-input-ajax', 'coupon/condition-input-ajax',
array( [
'inputsDrawn' => $html, 'inputsDrawn' => $html,
'conditionServiceId' => $serviceId, 'conditionServiceId' => $serviceId,
'conditionIndex' => '', 'conditionIndex' => '',
) ]
); );
} }
@@ -295,7 +297,7 @@ class CouponController extends BaseAdminController
*/ */
public function getConditionToUpdateInputAjaxAction($couponId, $conditionIndex) public function getConditionToUpdateInputAjaxAction($couponId, $conditionIndex)
{ {
if (null !== $response = $this->checkAuth(AdminResources::COUPON, array(), AccessManager::VIEW)) { if (null !== $response = $this->checkAuth(AdminResources::COUPON, [], AccessManager::VIEW)) {
return $response; return $response;
} }
@@ -332,13 +334,11 @@ class CouponController extends BaseAdminController
} }
return $this->render( return $this->render(
'coupon/condition-input-ajax', 'coupon/condition-input-ajax', [
array(
'inputsDrawn' => $condition->drawBackOfficeInputs(), 'inputsDrawn' => $condition->drawBackOfficeInputs(),
'conditionServiceId' => $condition->getServiceId(), 'conditionServiceId' => $condition->getServiceId(),
'conditionIndex' => $conditionIndex, 'conditionIndex' => $conditionIndex,
]
)
); );
} }
@@ -351,7 +351,7 @@ class CouponController extends BaseAdminController
*/ */
public function saveConditionsAction($couponId) public function saveConditionsAction($couponId)
{ {
if (null !== $response = $this->checkAuth(AdminResources::COUPON, array(), AccessManager::UPDATE)) { if (null !== $response = $this->checkAuth(AdminResources::COUPON, [], AccessManager::UPDATE)) {
return $response; return $response;
} }
@@ -400,7 +400,7 @@ class CouponController extends BaseAdminController
*/ */
public function deleteConditionsAction($couponId, $conditionIndex) public function deleteConditionsAction($couponId, $conditionIndex)
{ {
if (null !== $response = $this->checkAuth(AdminResources::COUPON, array(), AccessManager::UPDATE)) { if (null !== $response = $this->checkAuth(AdminResources::COUPON, [], AccessManager::UPDATE)) {
return $response; return $response;
} }
@@ -430,41 +430,6 @@ class CouponController extends BaseAdminController
return new Response(); return new Response();
} }
/**
* Build a Coupon from its form
*
* @param array $data Form data
*
* @return Coupon
*/
protected function buildCouponFromForm(array $data)
{
$couponBeingCreated = new Coupon();
$couponBeingCreated->setCode($data['code']);
$couponBeingCreated->setType($data['type']);
$couponBeingCreated->setTitle($data['title']);
$couponBeingCreated->setShortDescription($data['shortDescription']);
$couponBeingCreated->setDescription($data['description']);
$couponBeingCreated->setAmount($data['amount']);
$couponBeingCreated->setIsEnabled($data['isEnabled']);
$couponBeingCreated->setExpirationDate($data['expirationDate']);
$couponBeingCreated->setSerializedConditions(
new ConditionCollection(
array()
)
);
$couponBeingCreated->setIsCumulative($data['isCumulative']);
$couponBeingCreated->setIsRemovingPostage(
$data['isRemovingPostage']
);
$couponBeingCreated->setMaxUsage($data['maxUsage']);
$couponBeingCreated->setIsAvailableOnSpecialOffers(
$data['isAvailableOnSpecialOffers']
);
return $couponBeingCreated;
}
/** /**
* Log error message * Log error message
* *
@@ -567,10 +532,10 @@ class CouponController extends BaseAdminController
/** @var CouponManager $couponManager */ /** @var CouponManager $couponManager */
$couponManager = $this->container->get('thelia.coupon.manager'); $couponManager = $this->container->get('thelia.coupon.manager');
$availableConditions = $couponManager->getAvailableConditions(); $availableConditions = $couponManager->getAvailableConditions();
$cleanedConditions = array(); $cleanedConditions = [];
/** @var ConditionInterface $availableCondition */ /** @var ConditionInterface $availableCondition */
foreach ($availableConditions as $availableCondition) { foreach ($availableConditions as $availableCondition) {
$condition = array(); $condition = [];
$condition['serviceId'] = $availableCondition->getServiceId(); $condition['serviceId'] = $availableCondition->getServiceId();
$condition['name'] = $availableCondition->getName(); $condition['name'] = $availableCondition->getName();
$condition['toolTip'] = $availableCondition->getToolTip(); $condition['toolTip'] = $availableCondition->getToolTip();
@@ -590,10 +555,10 @@ class CouponController extends BaseAdminController
/** @var CouponManager $couponManager */ /** @var CouponManager $couponManager */
$couponManager = $this->container->get('thelia.coupon.manager'); $couponManager = $this->container->get('thelia.coupon.manager');
$availableCoupons = $couponManager->getAvailableCoupons(); $availableCoupons = $couponManager->getAvailableCoupons();
$cleanedCoupons = array(); $cleanedCoupons = [];
/** @var CouponInterface $availableCoupon */ /** @var CouponInterface $availableCoupon */
foreach ($availableCoupons as $availableCoupon) { foreach ($availableCoupons as $availableCoupon) {
$condition = array(); $condition = [];
$condition['serviceId'] = $availableCoupon->getServiceId(); $condition['serviceId'] = $availableCoupon->getServiceId();
$condition['name'] = $availableCoupon->getName(); $condition['name'] = $availableCoupon->getName();
$condition['toolTip'] = $availableCoupon->getToolTip(); $condition['toolTip'] = $availableCoupon->getToolTip();
@@ -613,17 +578,17 @@ class CouponController extends BaseAdminController
*/ */
protected function cleanConditionForTemplate(ConditionCollection $conditions) protected function cleanConditionForTemplate(ConditionCollection $conditions)
{ {
$cleanedConditions = array(); $cleanedConditions = [];
/** @var $condition ConditionInterface */ /** @var $condition ConditionInterface */
foreach ($conditions as $index => $condition) { foreach ($conditions as $index => $condition) {
$temp = array( $temp = [
'serviceId' => $condition->getServiceId(), 'serviceId' => $condition->getServiceId(),
'index' => $index, 'index' => $index,
'name' => $condition->getName(), 'name' => $condition->getName(),
'toolTip' => $condition->getToolTip(), 'toolTip' => $condition->getToolTip(),
'summary' => $condition->getSummary(), 'summary' => $condition->getSummary(),
'validators' => $condition->getValidators() 'validators' => $condition->getValidators()
); ];
$cleanedConditions[] = $temp; $cleanedConditions[] = $temp;
} }
@@ -640,7 +605,7 @@ class CouponController extends BaseAdminController
*/ */
public function getBackOfficeInputsAjaxAction($couponServiceId) public function getBackOfficeInputsAjaxAction($couponServiceId)
{ {
if (null !== $response = $this->checkAuth(AdminResources::COUPON, array(), AccessManager::VIEW)) { if (null !== $response = $this->checkAuth(AdminResources::COUPON, [], AccessManager::VIEW)) {
return $response; return $response;
} }
@@ -668,7 +633,7 @@ class CouponController extends BaseAdminController
*/ */
public function getBackOfficeConditionSummariesAjaxAction($couponId) public function getBackOfficeConditionSummariesAjaxAction($couponId)
{ {
if (null !== $response = $this->checkAuth(AdminResources::COUPON, array(), AccessManager::VIEW)) { if (null !== $response = $this->checkAuth(AdminResources::COUPON, [], AccessManager::VIEW)) {
return $response; return $response;
} }
@@ -689,7 +654,7 @@ class CouponController extends BaseAdminController
return $this->pageNotFound(); return $this->pageNotFound();
} }
$args = array(); $args = [];
$args['conditions'] = $this->cleanConditionForTemplate($couponManager->getConditions()); $args['conditions'] = $this->cleanConditionForTemplate($couponManager->getConditions());
return $this->render('coupon/conditions', $args); return $this->render('coupon/conditions', $args);
@@ -740,7 +705,7 @@ class CouponController extends BaseAdminController
$serviceId = $data['type']; $serviceId = $data['type'];
/** @var CouponInterface $couponManager */ /** @var CouponInterface $couponManager */
$couponManager = $this->container->get($serviceId); $couponManager = $this->container->get($serviceId);
$effects = array(CouponAbstract::INPUT_AMOUNT_NAME => $data[CouponAbstract::INPUT_AMOUNT_NAME]); $effects = [CouponAbstract::INPUT_AMOUNT_NAME => $data[CouponAbstract::INPUT_AMOUNT_NAME]];
$effects = $this->addExtendedLogic($effects, $couponManager->getExtendedInputs()); $effects = $this->addExtendedLogic($effects, $couponManager->getExtendedInputs());
$couponEvent = new CouponCreateOrUpdateEvent( $couponEvent = new CouponCreateOrUpdateEvent(
@@ -751,7 +716,7 @@ class CouponController extends BaseAdminController
$data['shortDescription'], $data['shortDescription'],
$data['description'], $data['description'],
$data['isEnabled'], $data['isEnabled'],
\DateTime::createFromFormat('Y-m-d', $data['expirationDate']), $data['expirationDate'],
$data['isAvailableOnSpecialOffers'], $data['isAvailableOnSpecialOffers'],
$data['isCumulative'], $data['isCumulative'],
$data['isRemovingPostage'], $data['isRemovingPostage'],
@@ -777,8 +742,8 @@ class CouponController extends BaseAdminController
$request = $this->getRequest(); $request = $this->getRequest();
$post = $request->request->getIterator(); $post = $request->request->getIterator();
$serviceId = $request->request->get('categoryCondition'); $serviceId = $request->request->get('categoryCondition');
$operators = array(); $operators = [];
$values = array(); $values = [];
foreach ($post as $key => $input) { foreach ($post as $key => $input) {
if (isset($input['operator']) && isset($input['value'])) { if (isset($input['operator']) && isset($input['value'])) {
$operators[$key] = $input['operator']; $operators[$key] = $input['operator'];
@@ -835,4 +800,9 @@ class CouponController extends BaseAdminController
) )
); );
} }
protected function getDefaultDateFormat()
{
return LangQuery::create()->findOneByByDefault(true)->getDateFormat();
}
} }