diff --git a/plugins/awocoupon/awocoupon.php b/plugins/awocoupon/awocoupon.php index 9c5082306b80c166b27c86431a4bf943187d7be4..f61692cf58a782f3ba2c6b764a8731adda327b61 100644 --- a/plugins/awocoupon/awocoupon.php +++ b/plugins/awocoupon/awocoupon.php @@ -6,7 +6,7 @@ defined ('_JEXEC') or die('Restricted access'); * AwoCoupon variables for VM Shipping by Rules * * @subpackage Plugins - VmShipmentRules - * @copyright Copyright (C) 2014 Reinhold Kainhofer, office@open-tools.net + * @copyright Copyright (C) 2015 Reinhold Kainhofer, office@open-tools.net * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.txt * VirtueMart is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or @@ -23,22 +23,53 @@ if (!class_exists ('VmPlugin')) { /** Extension plugin for the "Shipping by Rules" shipping plugin for VirtueMart */ -class plgVmShipmentRulesRules_AwoCoupon extends VmPlugin { +class plgVmShipmentRulesAwoCoupon extends VmPlugin { /** Trigger to add variables to the cart values * You can add new variables to the $cartvals array or modify existing ones. They will be directly * available in all rules. * Please notice that this function might also be called for only a subset of products of the cart. */ function onVmShippingRulesGetCartValues(&$cartvals, $cart, $products, $method, $cart_prices) { + // First, make sure coupons are processes (VM core processes third-party coupons AFTER the shipping) + // This does NOT update the cart_prices array, but at least it makes sure Awocoupon has processed the coupon + JPluginHelper::importPlugin('vmcoupon'); + if (!empty($cart->couponCode)) { + $dispatcher = JDispatcher::getInstance(); + // TODO: This does not yet work... +// $returnValues = $dispatcher->trigger('plgVmCouponHandler', array($cart->couponCode, &$cart->cartData, $cart->cartPrices)); + } + $coupon_discount = 0; $session = JFactory::getSession(); $coupon_row = $session->get('coupon', '', 'awocoupon'); + + $cartvals['awoproductdiscount'] = 0.0; + $cartvals['awoproductdiscountnotax'] = 0.0; +// $cartvals['awoproductdiscounttax'] = 0.0; + $cartvals['awoshippingdiscount'] = 0.0; + $cartvals['awoshippingdiscountnotax'] = 0.0; +// $cartvals['awoshippingdiscounttax'] = 0.0; + $cartvals['awodiscount'] = 0.0; if(!empty($coupon_row)) { $coupon_row = unserialize($coupon_row); - $coupon_discount = $coupon_row['product_discount'] + $coupon_row['shipping_discount']; +// JFactory::getApplication()->enqueueMessage("<pre>AwoCoupon row: ".print_r($coupon_row,1)."</pre>", 'error'); + + $cartvals['awoproductdiscount'] = $coupon_row['product_discount']; + $cartvals['awoproductdiscountnotax'] = $coupon_row['product_discount_notax']; +// $cartvals['awoproductdiscounttax'] = $coupon_row['product_discount_tax']; + $cartvals['awoshippingdiscount'] = $coupon_row['shipping_discount']; + $cartvals['awoshippingdiscountnotax'] = $coupon_row['shipping_discount_notax']; +// $cartvals['awoshippingdiscounttax'] = $coupon_row['shipping_discount_tax']; + $cartvals['awodiscount'] = $coupon_row['product_discount'] + $coupon_row['shipping_discount']; } - $cartvals['awodiscount'] = $coupon_discount; - } + $cartvals['amountaftercoupon'] = $cartvals['amount'] - $cartvals['awoproductdiscount']; + $cartvals['amountwithtaxaftercoupon'] = $cartvals['amountaftercoupon']; + $cartvals['taxamountaftercoupon'] = $cartvals['taxamount'] - ($cartvals['awoproductdiscount'] - $cartvals['awoproductdiscountnotax']); + $cartvals['amountwithouttaxaftercoupon'] = $cartvals['amountaftercoupon'] - $cartvals['taxamountaftercoupon']; + + // TODO: Apply shipping coupon discounts + } } + // No closing tag diff --git a/plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_rules_awocoupon.ini b/plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_awocoupon.ini similarity index 100% rename from plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_rules_awocoupon.ini rename to plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_awocoupon.ini diff --git a/plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_rules_awocoupon.sys.ini b/plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_awocoupon.sys.ini similarity index 100% rename from plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_rules_awocoupon.sys.ini rename to plugins/awocoupon/language/en-GB/en-GB.plg_vmshipmentrules_awocoupon.sys.ini diff --git a/plugins/awocoupon/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip b/plugins/awocoupon/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip deleted file mode 100644 index ed5ed0583478b367f58854f562f6d28bb46be6f3..0000000000000000000000000000000000000000 Binary files a/plugins/awocoupon/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip and /dev/null differ diff --git a/plugins/awocoupon/releases/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip b/plugins/awocoupon/releases/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..9b214a6697e2662e5bcbb6238ccb03df277a8a12 Binary files /dev/null and b/plugins/awocoupon/releases/plg_opentools_vmshipmentrules_awocoupon_v1.0.zip differ