/** * Loads values from database. * Returns true on success. * * @return boolean */ protected function loadFromDatabase() { if (!isset($this->fields)) { $pricesList = \CPrice::getListEx(array(), array("=PRODUCT_ID" => $this->id, "+<=QUANTITY_FROM" => 1, "+>=QUANTITY_TO" => 1), false, false, array("PRICE", "CURRENCY", "CATALOG_GROUP_ID", "CATALOG_GROUP_CODE")); $this->fields = array(); while ($priceInfo = $pricesList->fetch()) { $priceId = $priceInfo["CATALOG_GROUP_ID"]; $price = \CCurrencyLang::currencyFormat($priceInfo["PRICE"], $priceInfo["CURRENCY"], true); $this->addField($priceId, $priceId, $price); $this->addField($priceInfo["CATALOG_GROUP_CODE"], $priceId, $price); } } return is_array($this->fields); }
public function getTotalHtml($needRecalculate = true) { $currency = $this->order->getCurrency(); $basket = $this->order->getBasket(); $totalPrices = OrderEdit::getTotalPrices($this->order, $this, $needRecalculate); if ($basket) { $weight = $basket->getWeight(); } else { $weight = 0; } return ' <div class="adm-s-result-container-itog"> <table class="adm-s-result-container-itog-table"> <tr> <tr> <td>' . Loc::getMessage("SALE_ORDER_BASKET_PRICE") . '</td> <td id="' . $this->idPrefix . 'sale_order_edit_basket_price_basket">' . \CCurrencyLang::currencyFormat(floatval($totalPrices["PRICE_BASKET"]), $currency, true) . '</td> </tr> <tr> <td>' . Loc::getMessage("SALE_ORDER_BASKET_PRICE_DISCOUNT") . '</td> <td id="' . $this->idPrefix . 'sale_order_edit_basket_price_discount">' . \CCurrencyLang::currencyFormat(floatval($totalPrices["PRICE_BASKET_DISCOUNTED"]), $currency, true) . '</td> </tr> <tr> <td>' . Loc::getMessage("SALE_ORDER_BASKET_PRICE_DELIVERY") . '</td> <td id="' . $this->idPrefix . 'sale_order_edit_basket_price_delivery">' . \CCurrencyLang::currencyFormat(floatval($totalPrices["PRICE_DELIVERY"]), $currency, true) . '</td> </tr> <tr> <td>' . Loc::getMessage("SALE_ORDER_BASKET_PRICE_DELIVERY_DISCOUNT") . '</td> <td id="' . $this->idPrefix . 'sale_order_edit_basket_price_delivery_discount">' . \CCurrencyLang::currencyFormat(floatval($totalPrices["PRICE_DELIVERY_DISCOUNTED"]), $currency, true) . '</td> </tr> <tr> <td>' . Loc::getMessage("SALE_ORDER_BASKET_TAX") . '</td> <td id="' . $this->idPrefix . 'sale_order_edit_basket_tax">' . \CCurrencyLang::currencyFormat(floatval($totalPrices["TAX_VALUE"]), $currency, true) . '</td> </tr> <tr> <td>' . Loc::getMessage("SALE_ORDER_BASKET_WEIGHT") . '</td> <td id="' . $this->idPrefix . 'sale_order_edit_basket_weight">' . roundEx(floatval($weight / $this->weightKoef), SALE_WEIGHT_PRECISION) . " " . $this->weightUnit . '</td> </tr> <tr> <td>' . Loc::getMessage("SALE_ORDER_BASKET_PAID") . '</td> <td id="' . $this->idPrefix . 'sale_order_edit_summ_paid">' . \CCurrencyLang::currencyFormat(floatval($totalPrices["SUM_PAID"]), $currency, true) . '</td> </tr> <tr class="adm-s-result-container-itog-table-result"> <td>' . Loc::getMessage("SALE_ORDER_BASKET_PRICE_TOTAL") . '</td> <td id="' . $this->idPrefix . 'sale_order_edit_basket_price_total">' . \CCurrencyLang::currencyFormat(floatval($totalPrices["SUM_UNPAID"]), $currency, true) . '</td> </tr> </tr> </table> </div> '; }
/** * Format discount description. * * @param array $data Discount description. * @return Result */ public static function formatDiscountDescription($data) { $result = new Result(); $process = true; if (empty($data) || !is_array($data) || empty($data['TYPE'])) { $process = true; $result->addError(new Main\Entity\EntityError(Loc::getMessage('SALE_ORDER_DISCOUNT_DESCR_ERR_FORMAT_DESCR_BAD'), self::ERROR_ID)); } $resultData = array('DESCRIPTION' => ''); if ($process) { switch ($data['TYPE']) { case self::DESCR_TYPE_SIMPLE: $resultData['DESCRIPTION'] = $data['DESCR']; break; case self::DESCR_TYPE_VALUE: if ($data['VALUE_TYPE'] == self::DESCR_VALUE_TYPE_PERCENT) { $value = $data['VALUE'] . '%'; if (isset($data['RESULT_VALUE']) && isset($data['RESULT_UNIT'])) { $value .= ' (' . \CCurrencyLang::currencyFormat($data['RESULT_VALUE'], $data['RESULT_UNIT'], true) . ')'; } } else { if ($data['VALUE_TYPE'] == self::DESCR_VALUE_TYPE_CURRENCY) { $value = \CCurrencyLang::currencyFormat($data['VALUE'], $data['VALUE_UNIT'], true); } else { $subMessageID = $data['VALUE_TYPE'] == self::DESCR_VALUE_TYPE_SUMM ? 'SALE_ORDER_DISCOUNT_DESCR_MESS_SUMM_FORMAT' : 'SALE_ORDER_DISCOUNT_DESCR_MESS_SUMM_BASKET_FORMAT'; $value = Loc::getMessage($subMessageID, array('#VALUE#' => \CCurrencyLang::currencyFormat($data['VALUE'], $data['VALUE_UNIT'], true))); unset($subMessageID); } if (isset($data['RESULT_VALUE']) && isset($data['RESULT_UNIT']) && $data['VALUE_UNIT'] != $data['RESULT_UNIT']) { $value .= ' (' . \CCurrencyLang::currencyFormat($data['RESULT_VALUE'], $data['RESULT_UNIT'], true) . ')'; } } $messageId = 'SALE_ORDER_DISCOUNT_DESCR_MESS_TYPE_DISCOUNT'; if (isset($data['VALUE_ACTION'])) { switch ($data['VALUE_ACTION']) { case self::DESCR_VALUE_ACTION_EXTRA: $messageId = 'SALE_ORDER_DISCOUNT_DESCR_MESS_TYPE_EXTRA'; break; case self::DESCR_VALUE_ACTION_ACCUMULATE: $messageId = 'SALE_ORDER_DISCOUNT_DESCR_MESS_TYPE_ACCUMULATE'; break; } } $resultData['DESCRIPTION'] = Loc::getMessage($messageId, array('#VALUE#' => $value)); unset($value, $messageId); break; case self::DESCR_TYPE_LIMIT_VALUE: $messageId = isset($data['LIMIT_TYPE']) && $data['LIMIT_TYPE'] == self::DESCR_LIMIT_MIN ? 'SALE_ORDER_DISCOUNT_DESCR_MESS_LIMIT_MIN_FORMAT' : 'SALE_ORDER_DISCOUNT_DESCR_MESS_LIMIT_MAX_FORMAT'; $value = Loc::getMessage($messageId, array('#PERCENT#' => $data['VALUE'] . '%', '#LIMIT#' => \CCurrencyLang::currencyFormat($data['LIMIT_VALUE'], $data['LIMIT_UNIT'], true))); if (isset($data['RESULT_VALUE']) && isset($data['RESULT_UNIT'])) { $value .= ' (' . \CCurrencyLang::currencyFormat($data['RESULT_VALUE'], $data['RESULT_UNIT'], true) . ')'; } $messageId = isset($data['VALUE_ACTION']) && $data['VALUE_ACTION'] == self::DESCR_VALUE_ACTION_EXTRA ? 'SALE_ORDER_DISCOUNT_DESCR_MESS_TYPE_EXTRA' : 'SALE_ORDER_DISCOUNT_DESCR_MESS_TYPE_DISCOUNT'; $resultData['DESCRIPTION'] = Loc::getMessage($messageId, array('#VALUE#' => $value)); unset($value, $messageId); break; case self::DESCR_TYPE_FIXED: $resultData['DESCRIPTION'] = Loc::getMessage('SALE_ORDER_DISCOUNT_DESCR_MESS_FIXED_FORMAT', array('#VALUE#' => \CCurrencyLang::currencyFormat($data['VALUE'], $data['VALUE_UNIT'], true))); break; case self::DESCR_TYPE_MAX_BOUND: $value = \CCurrencyLang::currencyFormat($data['VALUE'], $data['VALUE_UNIT'], true); if (isset($data['RESULT_VALUE']) && isset($data['RESULT_UNIT'])) { $value .= ' (' . \CCurrencyLang::currencyFormat($data['RESULT_VALUE'], $data['RESULT_UNIT'], true) . ')'; } else { $value .= ' (' . $value . ')'; } $resultData['DESCRIPTION'] = Loc::getMessage('SALE_ORDER_DISCOUNT_DESCR_MESS_MAX_BOUND_FORMAT', array('#VALUE#' => $value)); unset($value); break; default: break; } } if ($process) { $result->setData($resultData); } return $result; }