show coupon codes in back office
This commit is contained in:
@@ -37,6 +37,7 @@ use Thelia\Condition\ConditionCollection;
|
|||||||
use Thelia\Coupon\Type\CouponInterface;
|
use Thelia\Coupon\Type\CouponInterface;
|
||||||
use Thelia\Model\Coupon as CouponModel;
|
use Thelia\Model\Coupon as CouponModel;
|
||||||
use Thelia\Model\CouponQuery;
|
use Thelia\Model\CouponQuery;
|
||||||
|
use Thelia\Model\OrderCoupon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by JetBrains PhpStorm.
|
* Created by JetBrains PhpStorm.
|
||||||
@@ -129,6 +130,11 @@ class Coupon extends BaseAction implements EventSubscriberInterface
|
|||||||
->getCart()
|
->getCart()
|
||||||
->setDiscount($totalDiscount)
|
->setDiscount($totalDiscount)
|
||||||
->save();
|
->save();
|
||||||
|
$request
|
||||||
|
->getSession()
|
||||||
|
->getOrder()
|
||||||
|
->setDiscount($totalDiscount)
|
||||||
|
->save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,7 +228,7 @@ class Coupon extends BaseAction implements EventSubscriberInterface
|
|||||||
/**
|
/**
|
||||||
* @param \Thelia\Core\Event\Order\OrderEvent $event
|
* @param \Thelia\Core\Event\Order\OrderEvent $event
|
||||||
*/
|
*/
|
||||||
public function decreaseCouponQuantity(OrderEvent $event)
|
public function afterOrder(OrderEvent $event)
|
||||||
{
|
{
|
||||||
$request = $this->container->get('request');
|
$request = $this->container->get('request');
|
||||||
|
|
||||||
@@ -233,10 +239,31 @@ class Coupon extends BaseAction implements EventSubscriberInterface
|
|||||||
|
|
||||||
if (is_array($consumedCoupons)) {
|
if (is_array($consumedCoupons)) {
|
||||||
foreach($consumedCoupons as $couponCode) {
|
foreach($consumedCoupons as $couponCode) {
|
||||||
// Decrement coupon quantity
|
|
||||||
$couponQuery = CouponQuery::create();
|
$couponQuery = CouponQuery::create();
|
||||||
$couponModel = $couponQuery->findOneByCode($couponCode);
|
$couponModel = $couponQuery->findOneByCode($couponCode);
|
||||||
|
$couponModel->setLocale($request->getSession()->getLang()->getLocale());
|
||||||
|
|
||||||
|
/* decrease coupon quantity */
|
||||||
$couponManager->decrementQuantity($couponModel);
|
$couponManager->decrementQuantity($couponModel);
|
||||||
|
|
||||||
|
/* memorize coupon */
|
||||||
|
$orderCoupon = new OrderCoupon();
|
||||||
|
$orderCoupon->setOrder($event->getOrder())
|
||||||
|
->setCode($couponModel->getCode())
|
||||||
|
->setType($couponModel->getType())
|
||||||
|
->setAmount($couponModel->getAmount())
|
||||||
|
|
||||||
|
->setTitle($couponModel->getTitle())
|
||||||
|
->setShortDescription($couponModel->getShortDescription())
|
||||||
|
->setDescription($couponModel->getDescription())
|
||||||
|
|
||||||
|
->setExpirationDate($couponModel->getExpirationDate())
|
||||||
|
->setIsCumulative($couponModel->getIsCumulative())
|
||||||
|
->setIsRemovingPostage($couponModel->getIsRemovingPostage())
|
||||||
|
->setIsAvailableOnSpecialOffers($couponModel->getIsAvailableOnSpecialOffers())
|
||||||
|
->setSerializedConditions($couponModel->getSerializedConditions())
|
||||||
|
;
|
||||||
|
$orderCoupon->save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -269,7 +296,7 @@ class Coupon extends BaseAction implements EventSubscriberInterface
|
|||||||
TheliaEvents::COUPON_CONSUME => array("consume", 128),
|
TheliaEvents::COUPON_CONSUME => array("consume", 128),
|
||||||
TheliaEvents::COUPON_CONDITION_UPDATE => array("updateCondition", 128),
|
TheliaEvents::COUPON_CONDITION_UPDATE => array("updateCondition", 128),
|
||||||
TheliaEvents::ORDER_SET_POSTAGE => array("testFreePostage", 256),
|
TheliaEvents::ORDER_SET_POSTAGE => array("testFreePostage", 256),
|
||||||
TheliaEvents::ORDER_BEFORE_PAYMENT => array("decreaseCouponQuantity", 128),
|
TheliaEvents::ORDER_BEFORE_PAYMENT => array("afterOrder", 128),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ use Thelia\Core\Event\Cart\CartEvent;
|
|||||||
use Thelia\Core\Event\Order\OrderAddressEvent;
|
use Thelia\Core\Event\Order\OrderAddressEvent;
|
||||||
use Thelia\Core\Event\Order\OrderEvent;
|
use Thelia\Core\Event\Order\OrderEvent;
|
||||||
use Thelia\Core\Event\TheliaEvents;
|
use Thelia\Core\Event\TheliaEvents;
|
||||||
|
use Thelia\Coupon\CouponManager;
|
||||||
use Thelia\Exception\TheliaProcessException;
|
use Thelia\Exception\TheliaProcessException;
|
||||||
use Thelia\Model\AddressQuery;
|
use Thelia\Model\AddressQuery;
|
||||||
use Thelia\Model\ConfigQuery;
|
use Thelia\Model\ConfigQuery;
|
||||||
@@ -189,8 +190,6 @@ class Order extends BaseAction implements EventSubscriberInterface
|
|||||||
OrderStatusQuery::create()->findOneByCode(OrderStatus::CODE_NOT_PAID)->getId()
|
OrderStatusQuery::create()->findOneByCode(OrderStatus::CODE_NOT_PAID)->getId()
|
||||||
);
|
);
|
||||||
|
|
||||||
/* refresh discount @todo */
|
|
||||||
|
|
||||||
/* memorize discount */
|
/* memorize discount */
|
||||||
$placedOrder->setDiscount(
|
$placedOrder->setDiscount(
|
||||||
$cart->getDiscount()
|
$cart->getDiscount()
|
||||||
@@ -280,8 +279,6 @@ class Order extends BaseAction implements EventSubscriberInterface
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* memorize coupons @todo */
|
|
||||||
|
|
||||||
$con->commit();
|
$con->commit();
|
||||||
|
|
||||||
$this->getDispatcher()->dispatch(TheliaEvents::ORDER_BEFORE_PAYMENT, new OrderEvent($placedOrder));
|
$this->getDispatcher()->dispatch(TheliaEvents::ORDER_BEFORE_PAYMENT, new OrderEvent($placedOrder));
|
||||||
|
|||||||
@@ -211,6 +211,8 @@ class DataAccessFunctions extends AbstractSmartyPlugin
|
|||||||
switch ($attribute) {
|
switch ($attribute) {
|
||||||
case 'postage':
|
case 'postage':
|
||||||
return $order->getPostage();
|
return $order->getPostage();
|
||||||
|
case 'discount':
|
||||||
|
return $order->getDiscount();
|
||||||
case 'delivery_address':
|
case 'delivery_address':
|
||||||
return $order->chosenDeliveryAddress;
|
return $order->chosenDeliveryAddress;
|
||||||
case 'invoice_address':
|
case 'invoice_address':
|
||||||
|
|||||||
@@ -1275,7 +1275,6 @@
|
|||||||
<column name="short_description" required="true" type="LONGVARCHAR" />
|
<column name="short_description" required="true" type="LONGVARCHAR" />
|
||||||
<column name="description" required="true" type="CLOB" />
|
<column name="description" required="true" type="CLOB" />
|
||||||
<column name="expiration_date" required="true" type="TIMESTAMP" />
|
<column name="expiration_date" required="true" type="TIMESTAMP" />
|
||||||
<column name="max_usage" required="true" type="INTEGER" />
|
|
||||||
<column name="is_cumulative" required="true" type="BOOLEAN" />
|
<column name="is_cumulative" required="true" type="BOOLEAN" />
|
||||||
<column name="is_removing_postage" required="true" type="BOOLEAN" />
|
<column name="is_removing_postage" required="true" type="BOOLEAN" />
|
||||||
<column name="is_available_on_special_offers" required="true" type="BOOLEAN" />
|
<column name="is_available_on_special_offers" required="true" type="BOOLEAN" />
|
||||||
|
|||||||
@@ -118,13 +118,9 @@
|
|||||||
<td colspan="2" class="td-unstyled"></td>
|
<td colspan="2" class="td-unstyled"></td>
|
||||||
<td colspan="3"><strong>{intl l="Coupon code"}</strong></td>
|
<td colspan="3"><strong>{intl l="Coupon code"}</strong></td>
|
||||||
<td>
|
<td>
|
||||||
{ifloop rel="couponcode"}
|
|
||||||
<ul>
|
|
||||||
{loop type="order_coupon" name="couponcode" order=$ID}
|
{loop type="order_coupon" name="couponcode" order=$ID}
|
||||||
<li>{$CODE}</li>
|
{$CODE}{if $LOOP_COUNT != $LOOP_TOTAL}, {/if}
|
||||||
{/loop}
|
{/loop}
|
||||||
</ul>
|
|
||||||
{/ifloop}
|
|
||||||
{elseloop rel="couponcode"}
|
{elseloop rel="couponcode"}
|
||||||
<strong>Ø</strong>
|
<strong>Ø</strong>
|
||||||
{/elseloop}
|
{/elseloop}
|
||||||
|
|||||||
@@ -122,8 +122,17 @@
|
|||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
<tfoot>
|
<tfoot>
|
||||||
|
|
||||||
|
<tr >
|
||||||
|
<td rowspan="4" colspan="3" class="empty"> </td>
|
||||||
|
<th class="shipping">{intl l="Discount"}</th>
|
||||||
|
<td class="shipping">
|
||||||
|
<div class="shipping-price">
|
||||||
|
<span class="price">{order attr="discount"} {currency attr="symbol"}</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr >
|
<tr >
|
||||||
<td rowspan="3" colspan="3" class="empty"> </td>
|
|
||||||
<th class="shipping">{intl l="Shipping Tax"}</th>
|
<th class="shipping">{intl l="Shipping Tax"}</th>
|
||||||
<td class="shipping">
|
<td class="shipping">
|
||||||
<div class="shipping-price">
|
<div class="shipping-price">
|
||||||
|
|||||||
Reference in New Issue
Block a user