From 6ba51b365f7c6ada9c188fbb7b3f0851a922076b Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Tue, 22 Jan 2013 17:56:03 +0100 Subject: [PATCH] Version 1.1.0: Allow ShippingWithTax in assignments --- .../en-GB.plg_vmshipment_rules_shipping.ini | 4 +- ...hipment_rules_shipping_advanced_v1.1.0.zip | Bin 15406 -> 16080 bytes .../plg_vmshipment_rules_shipping_v1.1.0.zip | Bin 12356 -> 13030 bytes rules_shipping.php | 56 +++++++++++++++++- 4 files changed, 56 insertions(+), 4 deletions(-) diff --git a/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini b/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini index 6547cb7..61c4685 100644 --- a/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini +++ b/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini @@ -16,7 +16,7 @@ VMSHIPMENT_RULES_HELP="<div style='background: #DDDDDD; padding:5px; margin:3px; <li>All rule parts with <b>comparison operators (<, <=, =<, ==, !=, <>, >=, =>, >)</b> are conditions.</li> <li> Supported <b>variables (case-insensitive)</b>: <b><tt>Amount</tt></b>, <b><tt>Weight</tt></b>, <b><tt>ZIP</tt></b>, <b><tt>Products</tt></b> (number of different products), <b><tt>Articles</tt></b> (counted with quantity), <b><tt>Volume</tt></b> (total volume of the order) and <b><tt>MinVolume</tt>, <tt>MinLength</tt>, <tt>MinWidth</tt>, <tt>MinHeight</tt></b> as well as the same variables with <tt>Max</tt> instead of <tt>Min</tt>.</li> <li>A condition can consist of multiple chained comparisons.</li> -<li>All rule parts of the form <b><tt>[VARIABLE]=VALUE</tt> are assignments</b>, with <tt>[VARIABLE]</tt> being one of <b><tt>Name</tt></b> (optional name of the rule, displayed in the cart and invoice), <b><tt>Shipping</tt></b> (shipping cost if the rule matches). The <tt>Shipping=</tt> can be left out. I.e. a rule part consisting only of a numerical value is understood as shipping cost.</li> +<li>All rule parts of the form <b><tt>[VARIABLE]=VALUE</tt> are assignments</b>, with <tt>[VARIABLE]</tt> being one of <b><tt>Name</tt></b> (optional name of the rule, displayed in the cart and invoice), <b><tt>Shipping</tt></b> (shipping cost without tax if the rule matches) and <b><tt>ShippingWithTax</tt></b> (shipping cost including taxes if the rule matches). The <tt>Shipping=</tt> can be left out (<tt>ShippingWithTax=</tt> can not be left out). I.e. a rule part consisting only of a numerical value is understood as net shipping cost without tax.</li> </ul> <p>EXAMPLE: A rule named "Europe" that sets shipping costs of 4.50 for order amounts from 50 to less than 100, and free shipping from 100€ on would be:</p><blockquote><tt>Name=Europe; 50<=Amount<100; Shipping=4.50<br>Name=Free Shipping; 100<= Amount; 0</tt></blockquote> </div>" @@ -26,7 +26,7 @@ VMSHIPMENT_RULES_HELP_ADV="<div style='background: #DDDDDD; padding:5px; margin: <li>All rule parts with <b>comparison operators (<, <=, =<, ==, !=, <>, >=, =>, >)</b> are conditions.</li> <li> Supported <b>variables (case-insensitive)</b>: <b><tt>Amount</tt></b>, <b><tt>Weight</tt></b>, <b><tt>ZIP</tt></b>, <b><tt>Products</tt></b> (number of different products), <b><tt>Articles</tt></b> (counted with quantity), <b><tt>Volume</tt></b> (total volume of the order) and <b><tt>MinVolume</tt>, <tt>MinLength</tt>, <tt>MinWidth</tt>, <tt>MinHeight</tt></b> as well as the same variables with <tt>Max</tt> instead of <tt>Min</tt>.</li> <li>A condition can consist of multiple chained comparisons.</li> -<li>All rule parts of the form <b><tt>[VARIABLE]=VALUE</tt> are assignments</b>, with <tt>[VARIABLE]</tt> being one of <b><tt>Name</tt></b> (optional name of the rule, displayed in the cart and invoice), <b><tt>Shipping</tt></b> (shipping cost if the rule matches). The <tt>Shipping=</tt> can be left out. I.e. a rule part consisting only of a numerical value is understood as shipping cost.</li> +<li>All rule parts of the form <b><tt>[VARIABLE]=VALUE</tt> are assignments</b>, with <tt>[VARIABLE]</tt> being one of <b><tt>Name</tt></b> (optional name of the rule, displayed in the cart and invoice), <b><tt>Shipping</tt></b> (shipping cost without tax if the rule matches) and <b><tt>ShippingWithTax</tt></b> (shipping cost including taxes if the rule matches). The <tt>Shipping=</tt> can be left out (<tt>ShippingWithTax=</tt> can not be left out). I.e. a rule part consisting only of a numerical value is understood as net shipping cost without tax.</li> <li>In the advanced version, all expressions (conditions and shipping costs) may contain <b>arbitrary basic arithmetic expressions (+, -, *, /, %, ^ and parentheses)</b> of the above variables.</li> </ul> <p>EXAMPLE: A rule named "Europe" that sets shipping costs of 5€ plus 1.50€ per article for order amounts from 50 to less than 100, and free shipping from 100€ on would be:</p><blockquote><tt>Name=Europe; 50<=Amount<100; Shipping=5+1.50*Articles<br>Name=Free Shipping; 100<= Amount; 0</blockquote> diff --git a/releases/plg_vmshipment_rules_shipping_advanced_v1.1.0.zip b/releases/plg_vmshipment_rules_shipping_advanced_v1.1.0.zip index 71c2698fe8ca2c5d4845c37e5e472481a0c1a01b..bc8194d2c78effe96a515be99d637d0c52a1b353 100644 GIT binary patch delta 9006 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 C`5Y|( delta 8301 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 Gkm~^-apb`O diff --git a/releases/plg_vmshipment_rules_shipping_v1.1.0.zip b/releases/plg_vmshipment_rules_shipping_v1.1.0.zip index 97ee94ce54995548e32170d87491efefb4ec0be4..4e48f0e5155014a3d69236c4796f41a724009750 100644 GIT binary patch delta 8895 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%0A%3<9C?DxU6OauUUZ2 z(;06IX4n7xGU=S2{(~pZlX}<ka+gP?wa+zqEN^?pvD`$dewqC21K)c$>L1N`aWTh5 z=|<*UwM4l;ans_Z+-uHT@V6}dbDuRl^O*gE>6$Z*y|;$!n|~z!(8GGfB95d&GpBkv z#iVzWC#ZR`zv%xL@S^|U=7(yNS@}@ccT8^5(Pp}Fbn<!~YbGwK$!~P*LG`+>t_+iw z>|}3UNv2Qzlh^BrPp;KfVNy|?yja&j5w((MU@&8lU;qI|1_p*LjTwpzlLO@~Sy>sF z=YoutRfM~Rfq|ilk%7SqMZLTxNWIDAb84I*Jug7k$xc46C&$#NHTk_>1k*{~$)5V* d%tm?)lh<m?Ox~~Wz_d_rGNXYl8<#%FS^z6q@_zsT delta 8217 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 MT}Enb89E@_0a%8{5dZ)H diff --git a/rules_shipping.php b/rules_shipping.php index e11f970..6c3265d 100644 --- a/rules_shipping.php +++ b/rules_shipping.php @@ -226,6 +226,7 @@ class plgVmShipmentRules_Shipping extends vmPSPlugin { $method->matched_rule = $r; $method->rule_name = $r->name; $method->cost = $r->getShippingCosts($cartvals); + $method->includes_tax = $r->includes_tax; return $method->cost; } } @@ -234,6 +235,57 @@ class plgVmShipmentRules_Shipping extends vmPSPlugin { return 0; } + /** + * update the plugin cart_prices ( + * + * @author Valérie Isaksen (original), Reinhold Kainhofer (tax calculations from shippingWithTax) + * + * @param $cart_prices: $cart_prices['salesPricePayment'] and $cart_prices['paymentTax'] updated. Displayed in the cart. + * @param $value : fee + * @param $tax_id : tax id + */ + + function setCartPrices (VirtueMartCart $cart, &$cart_prices, $method) { + + if (!class_exists ('calculationHelper')) { + require(JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'calculationh.php'); + } + + $calculator = calculationHelper::getInstance (); + + $value = $calculator->roundInternal ($this->getCosts ($cart, $method, $cart_prices), 'salesPrice'); + + $_psType = ucfirst ($this->_psType); + $cart_prices[$this->_psType . 'Value'] = $value; + + $taxrules = array(); + if (!empty($method->tax_id)) { + $cart_prices[$this->_psType . '_calc_id'] = $method->tax_id; + + $db = JFactory::getDBO (); + $q = 'SELECT * FROM #__virtuemart_calcs WHERE `virtuemart_calc_id`="' . $method->tax_id . '" '; + $db->setQuery ($q); + $taxrules = $db->loadAssocList (); + } + + if (count ($taxrules) > 0) { + if ($method->includes_tax) { + $cart_prices['salesPrice' . $_psType] = $calculator->roundInternal ($cart_prices[$this->_psType . 'Value'], 'salesPrice'); + // Calculate the tax from the final sales price: + $calculator->setRevert (true); + $cart_prices[$this->_psType . 'Tax'] = $cart_prices['salesPrice' . $_psType] - $calculator->roundInternal ($calculator->executeCalculation($taxrules, $cart_prices[$this->_psType . 'Value'], true)); + $calculator->setRevert (false); + } else { + $cart_prices['salesPrice' . $_psType] = $calculator->roundInternal ($calculator->executeCalculation ($taxrules, $cart_prices[$this->_psType . 'Value']), 'salesPrice'); + $cart_prices[$this->_psType . 'Tax'] = $calculator->roundInternal (($cart_prices['salesPrice' . $_psType] - $cart_prices[$this->_psType . 'Value']), 'salesPrice'); + } + $cart_prices[$this->_psType . '_calc_id'] = $taxrules[0]['virtuemart_calc_id']; + } else { + $cart_prices['salesPrice' . $_psType] = $value; + $cart_prices[$this->_psType . 'Tax'] = 0; + $cart_prices[$this->_psType . '_calc_id'] = 0; + } + } private function parseMethodRule ($rulestring, $countries, $tax, &$method) { $rules1 = preg_split("/(\r\n|\n|\r)/", $rulestring); @@ -478,7 +530,7 @@ class ShippingRule { var $tax_id = 0; var $conditions = array(); var $shipping = 0; - var $shippingWithTax = 0; + var $includes_tax = 0; var $name = ''; function __construct ($rule, $countries, $tax_id) { @@ -495,7 +547,7 @@ class ShippingRule { function handleAssignment ($variable, $value, $rulepart) { switch ($variable) { case 'shipping': $this->shipping = $this->parseShippingTerm($value); break; - case 'shippingwithtax': $this->shippingWithTax = $this->parseShippingTerm($value); break; + case 'shippingwithtax': $this->shipping = $this->parseShippingTerm($value); $this->includes_tax = True; break; case 'name': $this->name = $value; break; default: JFactory::getApplication()->enqueueMessage(JText::sprintf('VMSHIPMENT_RULES_UNKNOWN_VARIABLE', $variable, $rulepart), 'error'); } -- GitLab