protected static function _getScoreQuery($id_product, $id_shop, $id_currency, $id_country, $id_group) { $select = '(IF (NOW() >= `from` AND NOW() <= `to`, 1, 0) + '; foreach (array_reverse(SpecificPrice::getPriority((int) $id_product)) as $k => $field) { if ($field != 'id_shop') { $select .= ' IF (`' . bqSQL($field) . '` = ' . (int) ${$field} . ', ' . pow(2, $k + 1) . ', 0) + '; } } return rtrim($select, ' +') . ') `score`'; }
protected static function _getScoreQuery($id_product, $id_shop, $id_currency, $id_country, $id_group) { $select = '('; $now = date('Y-m-d H:i:s'); $select .= ' IF (\'' . $now . '\' >= `from` AND \'' . $now . '\' <= `to`, ' . pow(2, 0) . ', 0) + '; $priority = SpecificPrice::getPriority($id_product); foreach (array_reverse($priority) as $k => $field) { $select .= ' IF (`' . $field . '` = ' . (int) ${$field} . ', ' . pow(2, $k + 1) . ', 0) + '; } return rtrim($select, ' +') . ') AS `score`'; }
protected function _displaySpecificPriceModificationForm($defaultCurrency, $shops, $currencies, $countries, $groups) { $content = ''; if (!($obj = $this->loadObject())) { return; } $specific_prices = SpecificPrice::getByProductId((int) $obj->id); $specific_price_priorities = SpecificPrice::getPriority((int) $obj->id); $tax_rate = $obj->getTaxesRate(Address::initialize()); $tmp = array(); foreach ($shops as $shop) { $tmp[$shop['id_shop']] = $shop; } $shops = $tmp; $tmp = array(); foreach ($currencies as $currency) { $tmp[$currency['id_currency']] = $currency; } $currencies = $tmp; $tmp = array(); foreach ($countries as $country) { $tmp[$country['id_country']] = $country; } $countries = $tmp; $tmp = array(); foreach ($groups as $group) { $tmp[$group['id_group']] = $group; } $groups = $tmp; if (!is_array($specific_prices) || !count($specific_prices)) { $content .= ' <tr> <td class="text-center" colspan="13"><i class="icon-warning-sign"></i> ' . $this->l('No specific prices.') . '</td> </tr>'; } else { $i = 0; foreach ($specific_prices as $specific_price) { $current_specific_currency = $currencies[$specific_price['id_currency'] ? $specific_price['id_currency'] : $defaultCurrency->id]; if ($specific_price['reduction_type'] == 'percentage') { $impact = '- ' . $specific_price['reduction'] * 100 . ' %'; } elseif ($specific_price['reduction'] > 0) { $impact = '- ' . Tools::displayPrice(Tools::ps_round($specific_price['reduction'], 2), $current_specific_currency); } else { $impact = '--'; } if ($specific_price['from'] == '0000-00-00 00:00:00' && $specific_price['to'] == '0000-00-00 00:00:00') { $period = $this->l('Unlimited'); } else { $period = $this->l('From') . ' ' . ($specific_price['from'] != '0000-00-00 00:00:00' ? $specific_price['from'] : '0000-00-00 00:00:00') . '<br />' . $this->l('To') . ' ' . ($specific_price['to'] != '0000-00-00 00:00:00' ? $specific_price['to'] : '0000-00-00 00:00:00'); } if ($specific_price['id_product_attribute']) { $combination = new Combination((int) $specific_price['id_product_attribute']); $attributes = $combination->getAttributesName((int) $this->context->language->id); $attributes_name = ''; foreach ($attributes as $attribute) { $attributes_name .= $attribute['name'] . ' - '; } $attributes_name = rtrim($attributes_name, ' - '); } else { $attributes_name = $this->l('All combinations'); } $rule = new SpecificPriceRule((int) $specific_price['id_specific_price_rule']); $rule_name = $rule->id ? $rule->name : '--'; if ($specific_price['id_customer']) { $customer = new Customer((int) $specific_price['id_customer']); if (Validate::isLoadedObject($customer)) { $customer_full_name = $customer->firstname . ' ' . $customer->lastname; } unset($customer); } if (!$specific_price['id_shop'] || in_array($specific_price['id_shop'], Shop::getContextListShopID())) { $content .= ' <tr ' . ($i % 2 ? 'class="alt_row"' : '') . '> <td>' . $rule_name . '</td> <td>' . $attributes_name . '</td>'; $can_delete_specific_prices = true; if (Shop::isFeatureActive()) { $id_shop_sp = $specific_price['id_shop']; $can_delete_specific_prices = count($this->context->employee->getAssociatedShops()) > 1 && !$id_shop_sp || $id_shop_sp; $content .= ' <td>' . ($id_shop_sp ? $shops[$id_shop_sp]['name'] : $this->l('All shops')) . '</td>'; } $price = Tools::ps_round($specific_price['price'], 2); $fixed_price = $price == Tools::ps_round($obj->price, 2) || $specific_price['price'] == -1 ? '--' : Tools::displayPrice($price, $current_specific_currency); $content .= ' <td>' . ($specific_price['id_currency'] ? $currencies[$specific_price['id_currency']]['name'] : $this->l('All currencies')) . '</td> <td>' . ($specific_price['id_country'] ? $countries[$specific_price['id_country']]['name'] : $this->l('All countries')) . '</td> <td>' . ($specific_price['id_group'] ? $groups[$specific_price['id_group']]['name'] : $this->l('All groups')) . '</td> <td title="' . $this->l('ID:') . ' ' . $specific_price['id_customer'] . '">' . (isset($customer_full_name) ? $customer_full_name : $this->l('All customers')) . '</td> <td>' . $fixed_price . '</td> <td>' . $impact . '</td> <td>' . $period . '</td> <td>' . $specific_price['from_quantity'] . '</th> <td>' . (!$rule->id && $can_delete_specific_prices ? '<a class="btn btn-default" name="delete_link" href="' . self::$currentIndex . '&id_product=' . (int) Tools::getValue('id_product') . '&action=deleteSpecificPrice&id_specific_price=' . (int) $specific_price['id_specific_price'] . '&token=' . Tools::getValue('token') . '"><i class="icon-trash"></i></a>' : '') . '</td> </tr>'; $i++; unset($customer_full_name); } } } $content .= ' </tbody> </table> </div> <div class="panel-footer"> <a href="' . $this->context->link->getAdminLink('AdminProducts') . '" class="btn btn-default"><i class="process-icon-cancel"></i> ' . $this->l('Cancel') . '</a> <button id="product_form_submit_btn" type="submit" name="submitAddproduct" class="btn btn-default pull-right"><i class="process-icon-save"></i> ' . $this->l('Save') . '</button> <button id="product_form_submit_btn" type="submit" name="submitAddproductAndStay" class="btn btn-default pull-right"><i class="process-icon-save"></i> ' . $this->l('Save and stay') . '</button> </div> </div>'; $content .= ' <script type="text/javascript"> var currencies = new Array(); currencies[0] = new Array(); currencies[0]["sign"] = "' . $defaultCurrency->sign . '"; currencies[0]["format"] = ' . $defaultCurrency->format . '; '; foreach ($currencies as $currency) { $content .= ' currencies[' . $currency['id_currency'] . '] = new Array(); currencies[' . $currency['id_currency'] . ']["sign"] = "' . $currency['sign'] . '"; currencies[' . $currency['id_currency'] . ']["format"] = ' . $currency['format'] . '; '; } $content .= ' </script> '; // Not use id_customer if ($specific_price_priorities[0] == 'id_customer') { unset($specific_price_priorities[0]); } // Reindex array starting from 0 $specific_price_priorities = array_values($specific_price_priorities); $content .= '<div class="panel"> <h3>' . $this->l('Priority management') . '</h3> <div class="alert alert-info"> ' . $this->l('Sometimes one customer can fit into multiple price rules. Priorities allow you to define which rule applies to the customer.') . ' </div>'; $content .= ' <div class="form-group"> <label class="control-label col-lg-3" for="specificPricePriority1">' . $this->l('Priorities') . '</label> <div class="input-group col-lg-9"> <select id="specificPricePriority1" name="specificPricePriority[]"> <option value="id_shop"' . ($specific_price_priorities[0] == 'id_shop' ? ' selected="selected"' : '') . '>' . $this->l('Shop') . '</option> <option value="id_currency"' . ($specific_price_priorities[0] == 'id_currency' ? ' selected="selected"' : '') . '>' . $this->l('Currency') . '</option> <option value="id_country"' . ($specific_price_priorities[0] == 'id_country' ? ' selected="selected"' : '') . '>' . $this->l('Country') . '</option> <option value="id_group"' . ($specific_price_priorities[0] == 'id_group' ? ' selected="selected"' : '') . '>' . $this->l('Group') . '</option> </select> <span class="input-group-addon"><i class="icon-chevron-right"></i></span> <select name="specificPricePriority[]"> <option value="id_shop"' . ($specific_price_priorities[1] == 'id_shop' ? ' selected="selected"' : '') . '>' . $this->l('Shop') . '</option> <option value="id_currency"' . ($specific_price_priorities[1] == 'id_currency' ? ' selected="selected"' : '') . '>' . $this->l('Currency') . '</option> <option value="id_country"' . ($specific_price_priorities[1] == 'id_country' ? ' selected="selected"' : '') . '>' . $this->l('Country') . '</option> <option value="id_group"' . ($specific_price_priorities[1] == 'id_group' ? ' selected="selected"' : '') . '>' . $this->l('Group') . '</option> </select> <span class="input-group-addon"><i class="icon-chevron-right"></i></span> <select name="specificPricePriority[]"> <option value="id_shop"' . ($specific_price_priorities[2] == 'id_shop' ? ' selected="selected"' : '') . '>' . $this->l('Shop') . '</option> <option value="id_currency"' . ($specific_price_priorities[2] == 'id_currency' ? ' selected="selected"' : '') . '>' . $this->l('Currency') . '</option> <option value="id_country"' . ($specific_price_priorities[2] == 'id_country' ? ' selected="selected"' : '') . '>' . $this->l('Country') . '</option> <option value="id_group"' . ($specific_price_priorities[2] == 'id_group' ? ' selected="selected"' : '') . '>' . $this->l('Group') . '</option> </select> <span class="input-group-addon"><i class="icon-chevron-right"></i></span> <select name="specificPricePriority[]"> <option value="id_shop"' . ($specific_price_priorities[3] == 'id_shop' ? ' selected="selected"' : '') . '>' . $this->l('Shop') . '</option> <option value="id_currency"' . ($specific_price_priorities[3] == 'id_currency' ? ' selected="selected"' : '') . '>' . $this->l('Currency') . '</option> <option value="id_country"' . ($specific_price_priorities[3] == 'id_country' ? ' selected="selected"' : '') . '>' . $this->l('Country') . '</option> <option value="id_group"' . ($specific_price_priorities[3] == 'id_group' ? ' selected="selected"' : '') . '>' . $this->l('Group') . '</option> </select> </div> </div> <div class="form-group"> <div class="col-lg-9 col-lg-offset-3"> <p class="checkbox"> <label for="specificPricePriorityToAll"><input type="checkbox" name="specificPricePriorityToAll" id="specificPricePriorityToAll" />' . $this->l('Apply to all products') . '</label> </p> </div> </div> <div class="panel-footer"> <a href="' . $this->context->link->getAdminLink('AdminProducts') . '" class="btn btn-default"><i class="process-icon-cancel"></i> ' . $this->l('Cancel') . '</a> <button id="product_form_submit_btn" type="submit" name="submitAddproduct" class="btn btn-default pull-right"><i class="process-icon-save"></i> ' . $this->l('Save') . '</button> <button id="product_form_submit_btn" type="submit" name="submitAddproductAndStay" class="btn btn-default pull-right"><i class="process-icon-save"></i> ' . $this->l('Save and stay') . '</button> </div> </div> '; return $content; }
protected function _displaySpecificPriceModificationForm($defaultCurrency, $shops, $currencies, $countries, $groups) { $lpdesmvcrvu = "specific_price_priorities"; ${"GLOBALS"}["gwvlvnhgf"] = "group"; $plkmtiqjex = "specific_price_priorities"; ${"GLOBALS"}["ertbhqqwavl"] = "tmp"; ${"GLOBALS"}["glybiybrjmv"] = "group"; ${"GLOBALS"}["nihfjn"] = "tmp"; $ivhgohevles = "taxRate"; ${${"GLOBALS"}["nkvjzc"]} = ""; ${"GLOBALS"}["ukanssy"] = "currencies"; if (!$this->object) { return; } ${"GLOBALS"}["tfufwuqnbgxc"] = "tmp"; ${${"GLOBALS"}["ixsaqwcye"]} = SpecificPrice::getByProductId((int) $this->object->id); $rarsexno = "shop"; $vrcmtksat = "shop"; $gedaion = "specific_price_priorities"; ${"GLOBALS"}["xsrbwsm"] = "shops"; ${$lpdesmvcrvu} = SpecificPrice::getPriority((int) $this->object->id); ${$ivhgohevles} = $this->object->getTaxesRate(Address::initialize()); $uhzkmfbqi = "shop"; $ahuedic = "specific_price_priorities"; ${${"GLOBALS"}["bdtyklee"]} = array(); foreach (${${"GLOBALS"}["xsrbwsm"]} as ${$uhzkmfbqi}) { ${${"GLOBALS"}["bdtyklee"]}[${$rarsexno}["id_shop"]] = ${$vrcmtksat}; } $rbdspr = "currencies"; ${"GLOBALS"}["ruiubiwy"] = "countries"; $nyuyhmkcene = "content"; ${${"GLOBALS"}["lazfnitt"]} = ${${"GLOBALS"}["bdtyklee"]}; $hcdvvpbef = "tmp"; $wdrtujtw = "currency"; ${${"GLOBALS"}["nihfjn"]} = array(); foreach (${$rbdspr} as ${${"GLOBALS"}["qwffcfylwvlg"]}) { ${${"GLOBALS"}["bdtyklee"]}[${$wdrtujtw}["id_currency"]] = ${${"GLOBALS"}["qwffcfylwvlg"]}; } ${${"GLOBALS"}["ukanssy"]} = ${${"GLOBALS"}["ertbhqqwavl"]}; ${${"GLOBALS"}["tfufwuqnbgxc"]} = array(); foreach (${${"GLOBALS"}["ruiubiwy"]} as ${${"GLOBALS"}["dtehljxk"]}) { ${${"GLOBALS"}["bdtyklee"]}[${${"GLOBALS"}["dtehljxk"]}["id_country"]] = ${${"GLOBALS"}["dtehljxk"]}; } $tclsxk = "specific_price_priorities"; ${${"GLOBALS"}["kroabu"]} = ${${"GLOBALS"}["bdtyklee"]}; ${$hcdvvpbef} = array(); foreach (${${"GLOBALS"}["myyouyoez"]} as ${${"GLOBALS"}["gwvlvnhgf"]}) { ${${"GLOBALS"}["bdtyklee"]}[${${"GLOBALS"}["oxbcew"]}["id_group"]] = ${${"GLOBALS"}["glybiybrjmv"]}; } ${"GLOBALS"}["cptxpwqsgzo"] = "content"; ${${"GLOBALS"}["myyouyoez"]} = ${${"GLOBALS"}["bdtyklee"]}; if (!is_array(${${"GLOBALS"}["ixsaqwcye"]}) || !count(${${"GLOBALS"}["ixsaqwcye"]})) { ${${"GLOBALS"}["nkvjzc"]} .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan=\"13\">" . $this->l('No specific prices') . "</td>\n\t\t\t\t</tr>"; } else { ${"GLOBALS"}["ixvreqo"] = "specific_prices"; ${${"GLOBALS"}["eqiehjn"]} = 0; ${"GLOBALS"}["xwjpok"] = "specific_price"; foreach (${${"GLOBALS"}["ixvreqo"]} as ${${"GLOBALS"}["xwjpok"]}) { ${"GLOBALS"}["jgkoendjlpt"] = "specific_price"; $sdpwvfzmwy = "current_specific_currency"; ${"GLOBALS"}["drapxqkxjfw"] = "customer_full_name"; ${"GLOBALS"}["wrefbrz"] = "specific_price"; $ywnqxjizw = "impact"; $pmhlqxsivhg = "currencies"; ${"GLOBALS"}["lnqbpvxxuw"] = "i"; $qndkwpcllv = "specific_price"; ${"GLOBALS"}["cfbvjzjfz"] = "specific_price"; ${"GLOBALS"}["hyijedlreo"] = "specific_price"; ${"GLOBALS"}["bdnvmedpllw"] = "customer_full_name"; ${"GLOBALS"}["yonxxgguvyc"] = "shops"; ${"GLOBALS"}["brpkiqjctz"] = "specific_price"; ${"GLOBALS"}["cubiilo"] = "customer_full_name"; $msgvsejfwpg = "specific_price"; ${"GLOBALS"}["ihxryxdypi"] = "groups"; $frcvwum = "rule"; $fpsxqukp = "price"; ${"GLOBALS"}["ucfgiwdbfvge"] = "period"; ${"GLOBALS"}["pjigladsg"] = "fixed_price"; ${"GLOBALS"}["qrcsyna"] = "specific_price"; $nwumqlplzzwc = "specific_price"; $tihycjulltff = "impact"; ${$sdpwvfzmwy} = ${$pmhlqxsivhg}[${${"GLOBALS"}["oudwfbvcvoj"]}["id_currency"] ? ${${"GLOBALS"}["cfbvjzjfz"]}["id_currency"] : $defaultCurrency->id]; ${"GLOBALS"}["wxttwnsgf"] = "specific_price"; if (${${"GLOBALS"}["oudwfbvcvoj"]}["reduction_type"] == "percentage") { ${$ywnqxjizw} = "- " . ${${"GLOBALS"}["oudwfbvcvoj"]}["reduction"] * 100 . " %"; } elseif (${${"GLOBALS"}["oudwfbvcvoj"]}["reduction"] > 0) { ${${"GLOBALS"}["uaxmvunoy"]} = "- " . Tools::displayPrice(Tools::ps_round(${$nwumqlplzzwc}["reduction"], 2), ${${"GLOBALS"}["lbhedgts"]}); } else { ${$tihycjulltff} = "--"; } ${"GLOBALS"}["nwsoorkiv"] = "impact"; if (${${"GLOBALS"}["jgkoendjlpt"]}["from"] == "0000-00-00 00:00:00" && ${${"GLOBALS"}["oudwfbvcvoj"]}["to"] == "0000-00-00 00:00:00") { ${${"GLOBALS"}["zcpltzs"]} = $this->l('Unlimited'); } else { ${${"GLOBALS"}["zcpltzs"]} = $this->l('From') . " " . (${${"GLOBALS"}["wxttwnsgf"]}["from"] != "0000-00-00 00:00:00" ? ${${"GLOBALS"}["oudwfbvcvoj"]}["from"] : "0000-00-00 00:00:00") . "<br />" . $this->l('To') . " " . (${${"GLOBALS"}["oudwfbvcvoj"]}["to"] != "0000-00-00 00:00:00" ? ${${"GLOBALS"}["oudwfbvcvoj"]}["to"] : "0000-00-00 00:00:00"); } if (${${"GLOBALS"}["oudwfbvcvoj"]}["id_product_attribute"]) { ${"GLOBALS"}["ysyybwjtlnlr"] = "attributes_name"; $supdob = "attributes_name"; $nwznli = "attribute"; ${"GLOBALS"}["ucovwpfrg"] = "specific_price"; $ghrcpselphnv = "combination"; $gyrrgbrm = "attributes"; ${$ghrcpselphnv} = new Combination((int) ${${"GLOBALS"}["ucovwpfrg"]}["id_product_attribute"]); ${$gyrrgbrm} = $combination->getAttributesName((int) $this->context->language->id); ${${"GLOBALS"}["ysyybwjtlnlr"]} = ""; foreach (${${"GLOBALS"}["tecppiwmy"]} as ${${"GLOBALS"}["nmduzbby"]}) { ${${"GLOBALS"}["dkpnrhqmdel"]} .= ${$nwznli}["name"] . " - "; } ${$supdob} = rtrim(${${"GLOBALS"}["dkpnrhqmdel"]}, " - "); } else { ${${"GLOBALS"}["dkpnrhqmdel"]} = $this->l('All combinations'); } $seqiqveynpjq = "specific_price"; ${$frcvwum} = new SpecificPriceRule((int) ${${"GLOBALS"}["oudwfbvcvoj"]}["id_specific_price_rule"]); ${${"GLOBALS"}["qwfludjdg"]} = $rule->id ? $rule->name : "--"; if (${${"GLOBALS"}["oudwfbvcvoj"]}["id_customer"]) { ${"GLOBALS"}["oyqwsagds"] = "customer"; $zdwishb = "customer"; ${${"GLOBALS"}["mcehpjcdvu"]} = new Customer((int) ${${"GLOBALS"}["oudwfbvcvoj"]}["id_customer"]); if (Validate::isLoadedObject(${$zdwishb})) { ${${"GLOBALS"}["valsyupb"]} = $customer->firstname . " " . $customer->lastname; } unset(${${"GLOBALS"}["oyqwsagds"]}); } ${${"GLOBALS"}["judupfn"]} = Tools::ps_round(${$qndkwpcllv}["price"], 2); ${${"GLOBALS"}["pjigladsg"]} = ${${"GLOBALS"}["judupfn"]} == Tools::ps_round($this->object->price, 2) || ${${"GLOBALS"}["oudwfbvcvoj"]}["price"] == -1 ? "--" : Tools::displayPrice(${$fpsxqukp}); ${"GLOBALS"}["rtvaytzbs"] = "specific_price"; ${${"GLOBALS"}["nkvjzc"]} .= "\n\t\t\t\t<tr " . (${${"GLOBALS"}["eqiehjn"]} % 2 ? "class=\"alt_row\"" : "") . ">\n\t\t\t\t\t<td class=\"cell border\">" . ${${"GLOBALS"}["qwfludjdg"]} . "</td>\n\t\t\t\t\t<td class=\"cell border\">" . ${${"GLOBALS"}["dkpnrhqmdel"]} . "</td>\n\t\t\t\t\t" . (Shop::isFeatureActive() ? "<td class=\"cell border\">" . (${${"GLOBALS"}["rtvaytzbs"]}["id_shop"] ? ${${"GLOBALS"}["yonxxgguvyc"]}[${$msgvsejfwpg}["id_shop"]]["name"] : $this->l('All shops')) . "</td>" : "") . "\n\t\t\t\t\t<td class=\"cell border\">" . (${${"GLOBALS"}["oudwfbvcvoj"]}["id_currency"] ? ${${"GLOBALS"}["qeyondtkko"]}[${$seqiqveynpjq}["id_currency"]]["name"] : $this->l('All currencies')) . "</td>\n\t\t\t\t\t<td class=\"cell border\">" . (${${"GLOBALS"}["oudwfbvcvoj"]}["id_country"] ? ${${"GLOBALS"}["kroabu"]}[${${"GLOBALS"}["wrefbrz"]}["id_country"]]["name"] : $this->l('All countries')) . "</td>\n\t\t\t\t\t<td class=\"cell border\">" . (${${"GLOBALS"}["brpkiqjctz"]}["id_group"] ? ${${"GLOBALS"}["ihxryxdypi"]}[${${"GLOBALS"}["oudwfbvcvoj"]}["id_group"]]["name"] : $this->l('All groups')) . "</td>\n\t\t\t\t\t<td class=\"cell border\" title=\"" . $this->l('ID:') . " " . ${${"GLOBALS"}["oudwfbvcvoj"]}["id_customer"] . "\">" . (isset(${${"GLOBALS"}["cubiilo"]}) ? ${${"GLOBALS"}["bdnvmedpllw"]} : $this->l('All customers')) . "</td>\n\t\t\t\t\t<td class=\"cell border\">" . ${${"GLOBALS"}["ojfggiuyn"]} . "</td>\n\t\t\t\t\t<td class=\"cell border\">" . ${${"GLOBALS"}["nwsoorkiv"]} . "</td>\n\t\t\t\t\t<td class=\"cell border\">" . ${${"GLOBALS"}["ucfgiwdbfvge"]} . "</td>\n\t\t\t\t\t<td class=\"cell border\">" . ${${"GLOBALS"}["hyijedlreo"]}["from_quantity"] . "</th>\n\t\t\t\t\t<td class=\"cell border\">" . (!$rule->id ? "<a name=\"delete_link\" href=\"" . __PS_BASE_URI__ . "modules/agilemultipleseller/ajax_products.php?action=DeleteSpecificPrice&id_product=" . $this->id_object . "&id_specific_price=" . (int) ${${"GLOBALS"}["qrcsyna"]}["id_specific_price"] . "\"><img src=\"" . __PS_BASE_URI__ . "img/admin/delete.gif\" alt=\"" . $this->l('Delete') . "\" /></a>" : "") . "</td>\n\t\t\t\t</tr>"; ${${"GLOBALS"}["lnqbpvxxuw"]}++; unset(${${"GLOBALS"}["drapxqkxjfw"]}); } } $dvylzfofp = "currency"; ${${"GLOBALS"}["nkvjzc"]} .= "\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>"; ${${"GLOBALS"}["nkvjzc"]} .= "\n\t\t<script type=\"text/javascript\">\n\t\t\tvar currencies = new Array();\n\t\t\tcurrencies[0] = new Array();\n\t\t\tcurrencies[0][\"sign\"] = \"" . $defaultCurrency->sign . "\";\n\t\t\tcurrencies[0][\"format\"] = " . $defaultCurrency->format . ";\n\t\t\t"; foreach (${${"GLOBALS"}["qeyondtkko"]} as ${$dvylzfofp}) { ${"GLOBALS"}["orynunkni"] = "currency"; $glvdhrwfpl = "currency"; $dnugvdxrefxp = "currency"; $jtxjbwyjntp = "content"; $gocuffop = "currency"; ${$jtxjbwyjntp} .= "\n\t\t\t\tcurrencies[" . ${$glvdhrwfpl}["id_currency"] . "] = new Array();\n\t\t\t\tcurrencies[" . ${${"GLOBALS"}["orynunkni"]}["id_currency"] . "][\"sign\"] = \"" . ${${"GLOBALS"}["qwffcfylwvlg"]}["sign"] . "\";\n\t\t\t\tcurrencies[" . ${$dnugvdxrefxp}["id_currency"] . "][\"format\"] = " . ${$gocuffop}["format"] . ";\n\t\t\t\t"; } ${${"GLOBALS"}["nkvjzc"]} .= "\n\t\t</script>\n\t\t"; $djpchkks = "specific_price_priorities"; ${"GLOBALS"}["bkvknwhmmk"] = "specific_price_priorities"; $pecvkmoo = "specific_price_priorities"; ${"GLOBALS"}["csovwwlu"] = "specific_price_priorities"; if (${$plkmtiqjex}[0] == "id_customer") { unset(${$djpchkks}[0]); } ${${"GLOBALS"}["tupdle"]} = array_values(${${"GLOBALS"}["tupdle"]}); ${$nyuyhmkcene} .= "<div id=\"agile\"class=\"panel\">\n\t\t<h3>" . $this->l('Priority management') . "</h3>\n\t\t<div class=\"alert alert-info\">\n\t\t\t\t" . $this->l('Sometimes one customer can fit into multiple price rules. Priorities allow you to define which rule applies to the customer.') . "\n\t\t</div>"; ${${"GLOBALS"}["cptxpwqsgzo"]} .= "\n\t\t<div class=\"form-group\">\n\t\t\t<label class=\"control-label agile-col-sm-3 agile-col-md-3 agile-col-lg-3 agile-col-xl-3\" for=\"specificPricePriority1\">" . $this->l('Priorities:') . "</label>\n\t\t\t<div class=\"input-group agile-col-sm-9 agile-col-md9 col-lg-9 agile-col-xl-9\">\n\t\t\t\t<select id=\"specificPricePriority1\" name=\"specificPricePriority[]\">\n\t\t\t\t\t<option value=\"id_shop\"" . (${${"GLOBALS"}["tupdle"]}[0] == "id_shop" ? " selected=\"selected\"" : "") . ">" . $this->l('Shop') . "</option>\n\t\t\t\t\t<option value=\"id_currency\"" . (${$gedaion}[0] == "id_currency" ? " selected=\"selected\"" : "") . ">" . $this->l('Currency') . "</option>\n\t\t\t\t\t<option value=\"id_country\"" . (${${"GLOBALS"}["tupdle"]}[0] == "id_country" ? " selected=\"selected\"" : "") . ">" . $this->l('Country') . "</option>\n\t\t\t\t\t<option value=\"id_group\"" . (${${"GLOBALS"}["tupdle"]}[0] == "id_group" ? " selected=\"selected\"" : "") . ">" . $this->l('Group') . "</option>\n\t\t\t\t</select>\n\t\t\t\t<span class=\"input-group-addon\"><i class=\"icon-chevron-right\"></i></span>\n\t\t\t\t<select name=\"specificPricePriority[]\">\n\t\t\t\t\t<option value=\"id_shop\"" . (${$pecvkmoo}[1] == "id_shop" ? " selected=\"selected\"" : "") . ">" . $this->l('Shop') . "</option>\n\t\t\t\t\t<option value=\"id_currency\"" . (${${"GLOBALS"}["csovwwlu"]}[1] == "id_currency" ? " selected=\"selected\"" : "") . ">" . $this->l('Currency') . "</option>\n\t\t\t\t\t<option value=\"id_country\"" . (${${"GLOBALS"}["tupdle"]}[1] == "id_country" ? " selected=\"selected\"" : "") . ">" . $this->l('Country') . "</option>\n\t\t\t\t\t<option value=\"id_group\"" . (${${"GLOBALS"}["tupdle"]}[1] == "id_group" ? " selected=\"selected\"" : "") . ">" . $this->l('Group') . "</option>\n\t\t\t\t</select>\n\t\t\t\t<span class=\"input-group-addon\"><i class=\"icon-chevron-right\"></i></span>\n\t\t\t\t<select name=\"specificPricePriority[]\">\n\t\t\t\t\t<option value=\"id_shop\"" . (${${"GLOBALS"}["tupdle"]}[2] == "id_shop" ? " selected=\"selected\"" : "") . ">" . $this->l('Shop') . "</option>\n\t\t\t\t\t<option value=\"id_currency\"" . (${${"GLOBALS"}["tupdle"]}[2] == "id_currency" ? " selected=\"selected\"" : "") . ">" . $this->l('Currency') . "</option>\n\t\t\t\t\t<option value=\"id_country\"" . (${${"GLOBALS"}["tupdle"]}[2] == "id_country" ? " selected=\"selected\"" : "") . ">" . $this->l('Country') . "</option>\n\t\t\t\t\t<option value=\"id_group\"" . (${${"GLOBALS"}["tupdle"]}[2] == "id_group" ? " selected=\"selected\"" : "") . ">" . $this->l('Group') . "</option>\n\t\t\t\t</select>\n\t\t\t\t<span class=\"input-group-addon\"><i class=\"icon-chevron-right\"></i></span>\n\t\t\t\t<select name=\"specificPricePriority[]\">\n\t\t\t\t\t<option value=\"id_shop\"" . (${${"GLOBALS"}["bkvknwhmmk"]}[3] == "id_shop" ? " selected=\"selected\"" : "") . ">" . $this->l('Shop') . "</option>\n\t\t\t\t\t<option value=\"id_currency\"" . (${$ahuedic}[3] == "id_currency" ? " selected=\"selected\"" : "") . ">" . $this->l('Currency') . "</option>\n\t\t\t\t\t<option value=\"id_country\"" . (${${"GLOBALS"}["tupdle"]}[3] == "id_country" ? " selected=\"selected\"" : "") . ">" . $this->l('Country') . "</option>\n\t\t\t\t\t<option value=\"id_group\"" . (${$tclsxk}[3] == "id_group" ? " selected=\"selected\"" : "") . ">" . $this->l('Group') . "</option>\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"form-group\">\n\t\t\t<div class=\" agile-col-sm-9 agile-sm-offset-3 agile-col-md-9 agile-md-offset-3 col-lg-9 col-lg-offset-3 agile-col-xl-9 agile-xl-ooffset-3\">\n\t\t\t\t<p class=\"checkbox\">\n\t\t\t\t\t<label for=\"specificPricePriorityToAll\"><input type=\"checkbox\" name=\"specificPricePriorityToAll\" id=\"specificPricePriorityToAll\" />" . $this->l('Apply to all products') . "</label>\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</div>\n\t\t</div>\n\t\t"; return ${${"GLOBALS"}["nkvjzc"]}; }
protected function _displaySpecificPriceModificationForm($defaultCurrency, $shops, $currencies, $countries, $groups) { global $currentIndex; if (!($obj = $this->loadObject())) { return; } $specificPrices = SpecificPrice::getByProductId((int) $obj->id); $specificPricePriorities = SpecificPrice::getPriority((int) $obj->id); $default_country = new Country((int) Configuration::get('PS_COUNTRY_DEFAULT')); $taxRate = TaxRulesGroup::getTaxesRate($obj->id_tax_rules_group, Configuration::get('PS_COUNTRY_DEFAULT'), 0, 0); $tmp = array(); foreach ($shops as $shop) { $tmp[$shop['id_shop']] = $shop; } $shops = $tmp; $tmp = array(); foreach ($currencies as $currency) { $tmp[$currency['id_currency']] = $currency; } $currencies = $tmp; $tmp = array(); foreach ($countries as $country) { $tmp[$country['id_country']] = $country; } $countries = $tmp; $tmp = array(); foreach ($groups as $group) { $tmp[$group['id_group']] = $group; } $groups = $tmp; echo ' <h4>' . $this->l('Current specific prices') . '</h4> <table style="text-align: center;width:100%" class="table" cellpadding="0" cellspacing="0"> <thead> <tr> <th class="cell border" style="width: 12%;">' . $this->l('Currency') . '</th> <th class="cell border" style="width: 11%;">' . $this->l('Country') . '</th> <th class="cell border" style="width: 13%;">' . $this->l('Group') . '</th> <th class="cell border" style="width: 12%;">' . $this->l('Price') . ' ' . ($default_country->display_tax_label ? $this->l('(tax excl.)') : '') . '</th> <th class="cell border" style="width: 10%;">' . $this->l('Reduction') . '</th> <th class="cell border" style="width: 15%;">' . $this->l('Period') . '</th> <th class="cell border" style="width: 10%;">' . $this->l('From (quantity)') . '</th> <th class="cell border" style="width: 15%;">' . $this->l('Final price') . ' ' . ($default_country->display_tax_label ? $this->l('(tax excl.)') : '') . '</th> <th class="cell border" style="width: 2%;">' . $this->l('Action') . '</th> </tr> </thead> <tbody>'; if (!is_array($specificPrices) or !sizeof($specificPrices)) { echo ' <tr> <td colspan="9">' . $this->l('No specific prices') . '</td> </tr>'; } else { $i = 0; foreach ($specificPrices as $specificPrice) { $current_specific_currency = $currencies[$specificPrice['id_currency'] ? $specificPrice['id_currency'] : $defaultCurrency->id]; if ($specificPrice['reduction_type'] == 'percentage') { $reduction = $specificPrice['reduction'] * 100 . ' %'; } else { $reduction = Tools::displayPrice(Tools::ps_round($specificPrice['reduction'], 2), $current_specific_currency); } if ($specificPrice['from'] == '0000-00-00 00:00:00' and $specificPrice['to'] == '0000-00-00 00:00:00') { $period = $this->l('Unlimited'); } else { $period = $this->l('From') . ' ' . ($specificPrice['from'] != '0000-00-00 00:00:00' ? $specificPrice['from'] : '0000-00-00 00:00:00') . '<br />' . $this->l('To') . ' ' . ($specificPrice['to'] != '0000-00-00 00:00:00' ? $specificPrice['to'] : '0000-00-00 00:00:00'); } echo ' <tr ' . ($i % 2 ? 'class="alt_row"' : '') . '> <td class="cell border">' . ($specificPrice['id_currency'] ? $currencies[$specificPrice['id_currency']]['name'] : $this->l('All currencies')) . '</td> <td class="cell border">' . ($specificPrice['id_country'] ? $countries[$specificPrice['id_country']]['name'] : $this->l('All countries')) . '</td> <td class="cell border">' . ($specificPrice['id_group'] ? $groups[$specificPrice['id_group']]['name'] : $this->l('All groups')) . '</td> <td class="cell border">' . Tools::displayPrice((double) $specificPrice['price'], $current_specific_currency) . '</td> <td class="cell border">' . $reduction . '</td> <td class="cell border">' . $period . '</td> <td class="cell border">' . $specificPrice['from_quantity'] . '</th> <td class="cell border"><b>' . Tools::displayPrice(Tools::ps_round((double) $this->_getFinalPrice($specificPrice, (double) $obj->price, $taxRate), 2), $current_specific_currency) . '</b></td> <td class="cell border"><a href="' . $currentIndex . (Tools::getValue('id_category') ? '&id_category=' . Tools::getValue('id_category') : '') . '&id_product=' . (int) Tools::getValue('id_product') . '&updateproduct&deleteSpecificPrice&id_specific_price=' . (int) $specificPrice['id_specific_price'] . '&token=' . Tools::getValue('token') . '"><img src="../img/admin/delete.gif" alt="' . $this->l('Delete') . '" /></a></td> </tr>'; $i++; } } echo ' </tbody> </table>'; echo ' <script type="text/javascript"> var currencies = new Array(); currencies[0] = new Array(); currencies[0]["sign"] = "' . $defaultCurrency->sign . '"; currencies[0]["format"] = ' . $defaultCurrency->format . '; '; foreach ($currencies as $currency) { echo ' currencies[' . $currency['id_currency'] . '] = new Array(); currencies[' . $currency['id_currency'] . ']["sign"] = "' . $currency['sign'] . '"; currencies[' . $currency['id_currency'] . ']["format"] = ' . $currency['format'] . '; '; } echo ' </script> '; echo ' <hr /> <h4>' . $this->l('Priorities management') . '</h4> <div class="hint clear" style="display:block;"> ' . $this->l('Sometimes one customer could fit in multiple rules, priorities allows you to define which rule to apply.') . ' </div> <br /> <label>' . $this->l('Priorities:') . '</label> <div class="margin-form"> <input type="hidden" name="specificPricePriority[]" value="id_shop" /> <select name="specificPricePriority[]"> <option value="id_currency"' . ($specificPricePriorities[1] == 'id_currency' ? ' selected="selected"' : '') . '>' . $this->l('Currency') . '</option> <option value="id_country"' . ($specificPricePriorities[1] == 'id_country' ? ' selected="selected"' : '') . '>' . $this->l('Country') . '</option> <option value="id_group"' . ($specificPricePriorities[1] == 'id_group' ? ' selected="selected"' : '') . '>' . $this->l('Group') . '</option> </select> > <select name="specificPricePriority[]"> <option value="id_currency"' . ($specificPricePriorities[2] == 'id_currency' ? ' selected="selected"' : '') . '>' . $this->l('Currency') . '</option> <option value="id_country"' . ($specificPricePriorities[2] == 'id_country' ? ' selected="selected"' : '') . '>' . $this->l('Country') . '</option> <option value="id_group"' . ($specificPricePriorities[2] == 'id_group' ? ' selected="selected"' : '') . '>' . $this->l('Group') . '</option> </select> > <select name="specificPricePriority[]"> <option value="id_currency"' . ($specificPricePriorities[3] == 'id_currency' ? ' selected="selected"' : '') . '>' . $this->l('Currency') . '</option> <option value="id_country"' . ($specificPricePriorities[3] == 'id_country' ? ' selected="selected"' : '') . '>' . $this->l('Country') . '</option> <option value="id_group"' . ($specificPricePriorities[3] == 'id_group' ? ' selected="selected"' : '') . '>' . $this->l('Group') . '</option> </select> </div> <div class="margin-form"> <input type="checkbox" name="specificPricePriorityToAll" id="specificPricePriorityToAll" /> <label class="t" for="specificPricePriorityToAll">' . $this->l('Apply to all products') . '</label> </div> <div class="margin-form"> <input class="button" type="submit" name="submitSpecificPricePriorities" value="' . $this->l('Apply') . '" /> </div> '; }
/** * score generation for quantity discount */ protected static function _getScoreQuery($id_product, $id_shop, $id_currency, $id_country, $id_group, $id_customer) { $select = '('; $priority = SpecificPrice::getPriority($id_product); foreach (array_reverse($priority) as $k => $field) { if (!empty($field)) { $select .= ' IF (`' . bqSQL($field) . '` = ' . (int) ${$field} . ', ' . pow(2, $k + 1) . ', 0) + '; } } return rtrim($select, ' +') . ') AS `score`'; }