function CheckFields($ACTION, &$arFields) { global $DB, $USER; if ((is_set($arFields, "NAME") || $ACTION=="ADD") && strlen($arFields["NAME"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGPSA_NO_NAME"), "ERROR_NO_NAME"); return false; } if ((is_set($arFields, "PAY_SYSTEM_ID") || $ACTION=="ADD") && IntVal($arFields["PAY_SYSTEM_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGPSA_NO_CODE"), "ERROR_NO_PAY_SYSTEM_ID"); return false; } if ((is_set($arFields, "PERSON_TYPE_ID") || $ACTION=="ADD") && IntVal($arFields["PERSON_TYPE_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGPSA_NO_ID_TYPE"), "ERROR_NO_PERSON_TYPE_ID"); return false; } if (is_set($arFields, "NEW_WINDOW") && $arFields["NEW_WINDOW"] != "Y") $arFields["NEW_WINDOW"] = "N"; if (is_set($arFields, "HAVE_PAYMENT") && $arFields["HAVE_PAYMENT"] != "Y") $arFields["HAVE_PAYMENT"] = "N"; if (is_set($arFields, "HAVE_ACTION") && $arFields["HAVE_ACTION"] != "Y") $arFields["HAVE_ACTION"] = "N"; if (is_set($arFields, "HAVE_RESULT") && $arFields["HAVE_RESULT"] != "Y") $arFields["HAVE_RESULT"] = "N"; if (is_set($arFields, "HAVE_PREPAY") && $arFields["HAVE_PREPAY"] != "Y") $arFields["HAVE_PREPAY"] = "N"; if (is_set($arFields, "HAVE_RESULT_RECEIVE") && $arFields["HAVE_RESULT_RECEIVE"] != "Y") $arFields["HAVE_RESULT_RECEIVE"] = "N"; if (is_set($arFields, "ENCODING") && strlen($arFields["ENCODING"]) <= 0) $arFields["ENCODING"] = false; if (is_set($arFields, "PAY_SYSTEM_ID")) { if (!($arPaySystem = CSalePaySystem::GetByID($arFields["PAY_SYSTEM_ID"]))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["PAY_SYSTEM_ID"], GetMessage("SKGPSA_NO_PS")), "ERROR_NO_PAY_SYSTEM"); return false; } } if (is_set($arFields, "PERSON_TYPE_ID")) { if (!($arPersonType = CSalePersonType::GetByID($arFields["PERSON_TYPE_ID"]))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["PERSON_TYPE_ID"], GetMessage("SKGPSA_NO_PERS_TYPE")), "ERROR_NO_PERSON_TYPE"); return false; } } return True; }
public static function FormatInvoicePaymentSystemChanged($arData) { $info = GetMessage("CRM_INVOICE_EVENT_INFO_PAYMENT_SYSTEM_CHANGED"); foreach ($arData as $param => $value) { if ($param == "PAY_SYSTEM_ID") { $res = CSalePaySystem::GetByID($value); $value = "\"" . $res["NAME"] . "\""; } $info = str_replace("#" . $param . "#", $value, $info); } return array("INFO" => $info); }
function getOrderInfoDetail($orderId) { if (!$orderId) { return false; } if (!$GLOBALS["USER"]->IsAuthorized()) { return false; } $arFilter["ID"] = $orderId; $saleModulePermissions = $GLOBALS["APPLICATION"]->GetGroupRight("sale"); if ($saleModulePermissions == "D") { $arFilter["USER_ID"] = IntVal($GLOBALS["USER"]->GetID()); } elseif ($saleModulePermissions != "W") { $arFilter["STATUS_PERMS_GROUP_ID"] = $GLOBALS["USER"]->GetUserGroupArray(); $arFilter[">=STATUS_PERMS_PERM_VIEW"] = "Y"; } $arOrder = array(); $dbOrder = CSaleOrder::GetList(array(), $arFilter); $arOrder = $dbOrder->GetNext(); if (!$arOrder) { return false; } $arOrder["STATUS"] = CSaleStatus::GetLangByID($arOrder["STATUS_ID"]); $arOrder["STATUS_NAME"] = $arOrder["STATUS"]["NAME"]; $arOrder["PRICE_IN_ALL_NUM"] = floatval($arOrder["~PRICE"] + floatval($arOrder["~PRICE_DELIVERY"])); $arOrder["PRICE_IN_ALL"] = SaleFormatCurrency($arOrder["PRICE_IN_ALL_NUM"], $arOrder["CURRENCY"]); $arOrder["PRICE_STR"] = SaleFormatCurrency($arOrder["PRICE"], $arOrder["CURRENCY"]); $arOrder["PERSON_TYPE"] = CSalePersonType::GetByID($arOrder["PERSON_TYPE_ID"]); $arOrder["PERSON_TYPE_NAME"] = htmlspecialcharsbx($arOrder["PERSON_TYPE"]["NAME"]); $arOrder = self::getOrderProps($arOrder); $arOrder["DELIVERY_NAME"] = self::getDeliveriesInfo(array($arOrder["DELIVERY_ID"])); $arOrder["DELIVERY_NAME"] = $arOrder["DELIVERY_NAME"][$arOrder["DELIVERY_ID"]]; $arPaySys = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"], $arOrder["PERSON_TYPE_ID"]); $arOrder["PAY_SYSTEM_NAME"] = $arPaySys["NAME"]; $dbUserAccount = CSaleUserAccount::GetList(array(), array("USER_ID" => $arOrder["USER_ID"], "CURRENCY" => $arOrder["CURRENCY"], "LOCKED" => "N")); $arUserAccount = $dbUserAccount->GetNext(); $arOrder["CURRENT_BUDGET"] = $arUserAccount["CURRENT_BUDGET"] ? $arUserAccount["CURRENT_BUDGET"] : 0; $arOrder["CURRENT_BUDGET_STRING"] = SaleFormatCurrency($arOrder["CURRENT_BUDGET"], $arOrder["CURRENCY"]); return $arOrder; }
function CheckFields($ACTION, &$arFields, $ID = 0) { global $USER_FIELD_MANAGER, $DB, $APPLICATION; if (is_set($arFields, "SITE_ID") && strlen($arFields["SITE_ID"]) > 0) { $arFields["LID"] = $arFields["SITE_ID"]; } if ((is_set($arFields, "LID") || $ACTION == "ADD") && strlen($arFields["LID"]) <= 0) { $APPLICATION->ThrowException(Loc::getMessage("SKGO_EMPTY_SITE"), "EMPTY_SITE_ID"); return false; } if ((is_set($arFields, "PERSON_TYPE_ID") || $ACTION == "ADD") && IntVal($arFields["PERSON_TYPE_ID"]) <= 0) { $APPLICATION->ThrowException(Loc::getMessage("SKGO_EMPTY_PERS_TYPE"), "EMPTY_PERSON_TYPE_ID"); return false; } if ((is_set($arFields, "USER_ID") || $ACTION == "ADD") && IntVal($arFields["USER_ID"]) <= 0) { $APPLICATION->ThrowException(Loc::getMessage("SKGO_EMPTY_USER_ID"), "EMPTY_USER_ID"); return false; } if (is_set($arFields, "PAYED") && $arFields["PAYED"] != "Y") { $arFields["PAYED"] = "N"; } if (is_set($arFields, "CANCELED") && $arFields["CANCELED"] != "Y") { $arFields["CANCELED"] = "N"; } if (is_set($arFields, "STATUS_ID") && strlen($arFields["STATUS_ID"]) <= 0) { $arFields["STATUS_ID"] = "N"; } if (is_set($arFields, "ALLOW_DELIVERY") && $arFields["ALLOW_DELIVERY"] != "Y") { $arFields["ALLOW_DELIVERY"] = "N"; } if (is_set($arFields, "EXTERNAL_ORDER") && $arFields["EXTERNAL_ORDER"] != "Y") { $arFields["EXTERNAL_ORDER"] = "N"; } if (is_set($arFields, "PRICE") || $ACTION == "ADD") { $arFields["PRICE"] = str_replace(",", ".", $arFields["PRICE"]); $arFields["PRICE"] = DoubleVal($arFields["PRICE"]); } if (is_set($arFields, "PRICE_DELIVERY") || $ACTION == "ADD") { $arFields["PRICE_DELIVERY"] = str_replace(",", ".", $arFields["PRICE_DELIVERY"]); $arFields["PRICE_DELIVERY"] = DoubleVal($arFields["PRICE_DELIVERY"]); } if (is_set($arFields, "SUM_PAID") || $ACTION == "ADD") { $arFields["SUM_PAID"] = str_replace(",", ".", $arFields["SUM_PAID"]); $arFields["SUM_PAID"] = DoubleVal($arFields["SUM_PAID"]); } if (is_set($arFields, "DISCOUNT_VALUE") || $ACTION == "ADD") { $arFields["DISCOUNT_VALUE"] = str_replace(",", ".", $arFields["DISCOUNT_VALUE"]); $arFields["DISCOUNT_VALUE"] = DoubleVal($arFields["DISCOUNT_VALUE"]); } if (is_set($arFields, "TAX_VALUE") || $ACTION == "ADD") { $arFields["TAX_VALUE"] = str_replace(",", ".", $arFields["TAX_VALUE"]); $arFields["TAX_VALUE"] = DoubleVal($arFields["TAX_VALUE"]); } if (!is_set($arFields, "LOCKED_BY") && (!is_set($arFields, "UPDATED_1C") || is_set($arFields, "UPDATED_1C") && $arFields["UPDATED_1C"] != "Y")) { $arFields["UPDATED_1C"] = "N"; $arFields["~VERSION"] = "VERSION+0+1"; } if ((is_set($arFields, "CURRENCY") || $ACTION == "ADD") && strlen($arFields["CURRENCY"]) <= 0) { $APPLICATION->ThrowException(Loc::getMessage("SKGO_EMPTY_CURRENCY"), "EMPTY_CURRENCY"); return false; } if (is_set($arFields, "CURRENCY")) { if (!($arCurrency = CCurrency::GetByID($arFields["CURRENCY"]))) { $APPLICATION->ThrowException(str_replace("#ID#", $arFields["CURRENCY"], Loc::getMessage("SKGO_WRONG_CURRENCY")), "ERROR_NO_CURRENCY"); return false; } } if (is_set($arFields, "LID")) { $dbSite = CSite::GetByID($arFields["LID"]); if (!$dbSite->Fetch()) { $APPLICATION->ThrowException(str_replace("#ID#", $arFields["LID"], Loc::getMessage("SKGO_WRONG_SITE")), "ERROR_NO_SITE"); return false; } } if (is_set($arFields, "USER_ID")) { $dbUser = CUser::GetByID($arFields["USER_ID"]); if (!$dbUser->Fetch()) { $APPLICATION->ThrowException(str_replace("#ID#", $arFields["USER_ID"], Loc::getMessage("SKGO_WRONG_USER")), "ERROR_NO_USER_ID"); return false; } } if (is_set($arFields, "PERSON_TYPE_ID")) { if (!($arPersonType = CSalePersonType::GetByID($arFields["PERSON_TYPE_ID"]))) { $APPLICATION->ThrowException(str_replace("#ID#", $arFields["PERSON_TYPE_ID"], Loc::getMessage("SKGO_WRONG_PERSON_TYPE")), "ERROR_NO_PERSON_TYPE"); return false; } } if (is_set($arFields, "PAY_SYSTEM_ID") && IntVal($arFields["PAY_SYSTEM_ID"]) > 0) { if (!($arPaySystem = CSalePaySystem::GetByID(IntVal($arFields["PAY_SYSTEM_ID"])))) { $APPLICATION->ThrowException(str_replace("#ID#", $arFields["PAY_SYSTEM_ID"], Loc::getMessage("SKGO_WRONG_PS")), "ERROR_NO_PAY_SYSTEM"); return false; } } if (is_set($arFields, "DELIVERY_ID") && IntVal($arFields["DELIVERY_ID"]) > 0) { if (!($delivery = \Bitrix\Sale\Delivery\Services\Table::getById($arFields["DELIVERY_ID"]))) { $APPLICATION->ThrowException(str_replace("#ID#", $arFields["DELIVERY_ID"], Loc::getMessage("SKGO_WRONG_DELIVERY")), "ERROR_NO_DELIVERY"); return false; } } if (is_set($arFields, "STATUS_ID")) { if (!($arStatus = CSaleStatus::GetByID($arFields["STATUS_ID"]))) { $APPLICATION->ThrowException(str_replace("#ID#", $arFields["STATUS_ID"], Loc::getMessage("SKGO_WRONG_STATUS")), "ERROR_NO_STATUS_ID"); return false; } } if (is_set($arFields, "ACCOUNT_NUMBER") && $ACTION == "UPDATE") { if (strlen($arFields["ACCOUNT_NUMBER"]) <= 0) { $APPLICATION->ThrowException(Loc::getMessage("SKGO_EMPTY_ACCOUNT_NUMBER"), "EMPTY_ACCOUNT_NUMBER"); return false; } else { $dbres = $DB->Query("SELECT ID, ACCOUNT_NUMBER FROM b_sale_order WHERE ACCOUNT_NUMBER = '" . $DB->ForSql($arFields["ACCOUNT_NUMBER"]) . "'", true); if ($arRes = $dbres->GetNext()) { if (is_array($arRes) && $arRes["ID"] != $ID) { $APPLICATION->ThrowException(Loc::getMessage("SKGO_EXISTING_ACCOUNT_NUMBER"), "EXISTING_ACCOUNT_NUMBER"); return false; } } } } if ($ACTION == "ADD") { $arFields["VERSION"] = 1; } if (!$USER_FIELD_MANAGER->CheckFields("ORDER", $ID, $arFields)) { return false; } return True; }
if ($bNeedReCount) { $arTaxExempt = array(); $arUserGroups = CUser::GetUserGroup($USER_ID); $dbTaxExemptList = CSaleTax::GetExemptList(array("GROUP_ID" => $arUserGroups)); while ($arTaxExemptList = $dbTaxExemptList->Fetch()) { if (!in_array(IntVal($arTaxExemptList["TAX_ID"]), $arTaxExempt)) { $arTaxExempt[] = IntVal($arTaxExemptList["TAX_ID"]); } } } // PAY SYSTEM ----------------------------------------------> $PAY_SYSTEM_ID = IntVal($PAY_SYSTEM_ID); if ($PAY_SYSTEM_ID <= 0) { $errorMessage .= GetMessage("SOE_PAYSYS_EMPTY") . "<br>"; } if ($PAY_SYSTEM_ID > 0 && !($arPaySys = CSalePaySystem::GetByID($PAY_SYSTEM_ID, $PERSON_TYPE_ID))) { $errorMessage .= GetMessage("SOE_PAYSYS_NOT_FOUND") . "<br>"; } // DISCOUNT ----------------------------------------------> for ($i = 0; $i < count($arBasketList); $i++) { for ($j = 0; $j < count($arBasketList[$i]); $j++) { $arBasketList[$i][$j]["REAL_PRICE"] = $arBasketList[$i][$j]["PRICE"]; } } $arDiscountPrice = array(); for ($i = 0; $i < count($arBasketList); $i++) { $arDiscountPrice[$i] = 0; } if ($bNeedReCount) { if ($bFullOrderDivision) { for ($i = 0; $i < count($arBasketList); $i++) {
$row->AddField("SUM_PAID", htmlspecialcharsex(SaleFormatCurrency($arOrder["SUM_PAID"], $arOrder["CURRENCY"]))); $fieldValue = ""; if (in_array("USER", $arVisibleColumns)) $fieldValue = GetFormatedUserName($arOrder["USER_ID"], true); $row->AddField("USER", $fieldValue); $fieldValue = ""; if (in_array("PAY_SYSTEM", $arVisibleColumns)) { if (IntVal($arOrder["PAY_SYSTEM_ID"]) > 0) { if (!isset($LOCAL_PAY_SYSTEM_CACHE[$arOrder["PAY_SYSTEM_ID"]]) || empty($LOCAL_PAY_SYSTEM_CACHE[$arOrder["PAY_SYSTEM_ID"]])) { if ($arPaySys = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"])) $LOCAL_PAY_SYSTEM_CACHE[$arOrder["PAY_SYSTEM_ID"]] = htmlspecialcharsEx($arPaySys["NAME"]); } $fieldValue .= "["; if ($saleModulePermissions >= "W") $fieldValue .= '<a href="/bitrix/admin/sale_pay_system_edit.php?ID='.$arOrder["PAY_SYSTEM_ID"].'&lang='.LANGUAGE_ID.'">'; $fieldValue .= $arOrder["PAY_SYSTEM_ID"]; if ($saleModulePermissions >= "W") $fieldValue .= "</a>"; $fieldValue .= "] ".$LOCAL_PAY_SYSTEM_CACHE[$arOrder["PAY_SYSTEM_ID"]]; } } $row->AddField("PAY_SYSTEM", $fieldValue);
<br> Телефон: <?php echo CSalePaySystemAction::GetParamValue("BUYER_PHONE"); ?> <br> Факс: <?php echo CSalePaySystemAction::GetParamValue("BUYER_FAX"); ?> <br> Контактное лицо: <?php echo CSalePaySystemAction::GetParamValue("BUYER_PAYER_NAME"); ?> <br> <?php $arPaySys_tmp = CSalePaySystem::GetByID($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PAY_SYSTEM_ID"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PERSON_TYPE_ID"]); echo "<br>Платежная система: [" . $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PAY_SYSTEM_ID"] . "] " . $arPaySys_tmp["PSA_NAME"]; ?> </p> <p><b>СЧЕТ N:</b> <?php echo $ORDER_ID; ?> от <?php echo CSalePaySystemAction::GetParamValue("DATE_INSERT"); ?> </p> <?php $dbBasket = CSaleBasket::GetList(array("NAME" => "ASC"), array("ORDER_ID" => $ORDER_ID)); if ($arBasket = $dbBasket->Fetch()) {
/** * [getPaySystemName description] * @param int $PAY_SYSTEM_ID * @return str */ function getPaySystemName($PAY_SYSTEM_ID) { if (CModule::IncludeModule('sale')) { $arPaySys = CSalePaySystem::GetByID($PAY_SYSTEM_ID); return $arPaySys["NAME"]; } }
function CheckFields($ACTION, &$arFields, $ID = 0) { if (is_set($arFields, "SITE_ID") && strlen($arFields["SITE_ID"]) > 0) { $arFields["LID"] = $arFields["SITE_ID"]; } if ((is_set($arFields, "LID") || $ACTION == "ADD") && strlen($arFields["LID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_SITE"), "EMPTY_SITE_ID"); return false; } if ((is_set($arFields, "PERSON_TYPE_ID") || $ACTION == "ADD") && IntVal($arFields["PERSON_TYPE_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_PERS_TYPE"), "EMPTY_PERSON_TYPE_ID"); return false; } if ((is_set($arFields, "USER_ID") || $ACTION == "ADD") && IntVal($arFields["USER_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_USER_ID"), "EMPTY_USER_ID"); return false; } if (is_set($arFields, "PAYED") && $arFields["PAYED"] != "Y") { $arFields["PAYED"] = "N"; } if (is_set($arFields, "CANCELED") && $arFields["CANCELED"] != "Y") { $arFields["CANCELED"] = "N"; } if (is_set($arFields, "STATUS_ID") && strlen($arFields["STATUS_ID"]) <= 0) { $arFields["STATUS_ID"] = "N"; } if (is_set($arFields, "ALLOW_DELIVERY") && $arFields["ALLOW_DELIVERY"] != "Y") { $arFields["ALLOW_DELIVERY"] = "N"; } if (is_set($arFields, "PRICE") || $ACTION == "ADD") { $arFields["PRICE"] = str_replace(",", ".", $arFields["PRICE"]); $arFields["PRICE"] = DoubleVal($arFields["PRICE"]); } if (is_set($arFields, "PRICE_DELIVERY") || $ACTION == "ADD") { $arFields["PRICE_DELIVERY"] = str_replace(",", ".", $arFields["PRICE_DELIVERY"]); $arFields["PRICE_DELIVERY"] = DoubleVal($arFields["PRICE_DELIVERY"]); } if (is_set($arFields, "SUM_PAID") || $ACTION == "ADD") { $arFields["SUM_PAID"] = str_replace(",", ".", $arFields["SUM_PAID"]); $arFields["SUM_PAID"] = DoubleVal($arFields["SUM_PAID"]); } if (is_set($arFields, "DISCOUNT_VALUE") || $ACTION == "ADD") { $arFields["DISCOUNT_VALUE"] = str_replace(",", ".", $arFields["DISCOUNT_VALUE"]); $arFields["DISCOUNT_VALUE"] = DoubleVal($arFields["DISCOUNT_VALUE"]); } if (is_set($arFields, "TAX_VALUE") || $ACTION == "ADD") { $arFields["TAX_VALUE"] = str_replace(",", ".", $arFields["TAX_VALUE"]); $arFields["TAX_VALUE"] = DoubleVal($arFields["TAX_VALUE"]); } if (!is_set($arFields, "LOCKED_BY") && (!is_set($arFields, "UPDATED_1C") || is_set($arFields, "UPDATED_1C") && $arFields["UPDATED_1C"] != "Y")) { $arFields["UPDATED_1C"] = "N"; } if ((is_set($arFields, "CURRENCY") || $ACTION == "ADD") && strlen($arFields["CURRENCY"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_CURRENCY"), "EMPTY_CURRENCY"); return false; } if (is_set($arFields, "CURRENCY")) { if (!($arCurrency = CCurrency::GetByID($arFields["CURRENCY"]))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["CURRENCY"], GetMessage("SKGO_WRONG_CURRENCY")), "ERROR_NO_CURRENCY"); return false; } } if (is_set($arFields, "LID")) { $dbSite = CSite::GetByID($arFields["LID"]); if (!$dbSite->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["LID"], GetMessage("SKGO_WRONG_SITE")), "ERROR_NO_SITE"); return false; } } if (is_set($arFields, "USER_ID")) { $dbUser = CUser::GetByID($arFields["USER_ID"]); if (!$dbUser->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["USER_ID"], GetMessage("SKGO_WRONG_USER")), "ERROR_NO_USER_ID"); return false; } } if (is_set($arFields, "PERSON_TYPE_ID")) { if (!($arPersonType = CSalePersonType::GetByID($arFields["PERSON_TYPE_ID"]))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["PERSON_TYPE_ID"], GetMessage("SKGO_WRONG_PERSON_TYPE")), "ERROR_NO_PERSON_TYPE"); return false; } } if (is_set($arFields, "PAY_SYSTEM_ID") && IntVal($arFields["PAY_SYSTEM_ID"]) > 0) { if (!($arPaySystem = CSalePaySystem::GetByID(IntVal($arFields["PAY_SYSTEM_ID"])))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["PAY_SYSTEM_ID"], GetMessage("SKGO_WRONG_PS")), "ERROR_NO_PAY_SYSTEM"); return false; } } if (is_set($arFields, "DELIVERY_ID") && (strpos($arFields["DELIVERY_ID"], ":") !== false || IntVal($arFields["DELIVERY_ID"]) > 0)) { if (strpos($arFields["DELIVERY_ID"], ":") !== false) { $arId = explode(":", $arFields["DELIVERY_ID"]); $obDelivery = new CSaleDeliveryHandler(); if ($arDelivery = $obDelivery->GetBySID($arId[0])) { if ($arDelivery = $arDelivery->Fetch()) { if (!is_set($arDelivery["PROFILES"], $arId[1])) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["DELIVERY_ID"], GetMessage("SKGO_WRONG_DELIVERY")), "ERROR_NO_DELIVERY"); return false; } } } else { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["DELIVERY_ID"], GetMessage("SKGO_WRONG_DELIVERY")), "ERROR_NO_DELIVERY"); return false; } } else { if (!($arDelivery = CSaleDelivery::GetByID(IntVal($arFields["DELIVERY_ID"])))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["DELIVERY_ID"], GetMessage("SKGO_WRONG_DELIVERY")), "ERROR_NO_DELIVERY"); return false; } } } if (is_set($arFields, "STATUS_ID")) { if (!($arStatus = CSaleStatus::GetByID($arFields["STATUS_ID"]))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["STATUS_ID"], GetMessage("SKGO_WRONG_STATUS")), "ERROR_NO_STATUS_ID"); return false; } } return True; }
* PS_ID_PAR_NAME */ $arParams['PATH_TO_PS_LIST'] = CrmCheckPath('PATH_TO_PS_LIST', $arParams['PATH_TO_PS_LIST'], ''); $arParams['PATH_TO_PS_EDIT'] = CrmCheckPath('PATH_TO_PS_EDIT', $arParams['PATH_TO_PS_EDIT'], '?ps_id=#ps_id#&edit'); $psID = isset($arParams['PS_ID']) ? intval($arParams['PS_ID']) : 0; if ($psID <= 0) { $psIDParName = isset($arParams['PS_ID_PAR_NAME']) ? strval($arParams['PS_ID_PAR_NAME']) : ''; if (strlen($psIDParName) == 0) { $psIDParName = 'ps_id'; } $psID = isset($_REQUEST[$psIDParName]) ? intval($_REQUEST[$psIDParName]) : 0; } $arPaySys = array(); $actionID = 0; if ($psID > 0) { if (!($arPaySys = CSalePaySystem::GetByID($psID))) { ShowError(GetMessage('CRM_PS_NOT_FOUND')); @define('ERROR_404', 'Y'); if ($arParams['SET_STATUS_404'] === 'Y') { CHTTP::SetStatus("404 Not Found"); } return; } $dbPSAction = CSalePaySystemAction::GetList(array(), array("PAY_SYSTEM_ID" => $psID)); if ($arPSAction = $dbPSAction->Fetch()) { $actionID = IntVal($arPSAction["ID"]); $arPaySys['ACTION'] = $arPSAction; } } $arResult['PS_ID'] = $psID; $arResult['PAY_SYSTEM'] = $arPaySys;
public static function CheckFields($ACTION, &$arFields, $ID = 0) { global $USER_FIELD_MANAGER, $DB; if (is_set($arFields, "SITE_ID") && strlen($arFields["SITE_ID"]) > 0) $arFields["LID"] = $arFields["SITE_ID"]; if ((is_set($arFields, "LID") || $ACTION=="ADD") && strlen($arFields["LID"])<=0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_SITE"), "EMPTY_SITE_ID"); return false; } if ((is_set($arFields, "PERSON_TYPE_ID") || $ACTION=="ADD") && IntVal($arFields["PERSON_TYPE_ID"])<=0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_PERS_TYPE"), "EMPTY_PERSON_TYPE_ID"); return false; } if ((is_set($arFields, "USER_ID") || $ACTION=="ADD") && IntVal($arFields["USER_ID"])<=0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_USER_ID"), "EMPTY_USER_ID"); return false; } if (is_set($arFields, "PAYED") && $arFields["PAYED"]!="Y") $arFields["PAYED"]="N"; if (is_set($arFields, "CANCELED") && $arFields["CANCELED"]!="Y") $arFields["CANCELED"]="N"; if (is_set($arFields, "STATUS_ID") && strlen($arFields["STATUS_ID"])<=0) $arFields["STATUS_ID"]="N"; if (is_set($arFields, "ALLOW_DELIVERY") && $arFields["ALLOW_DELIVERY"]!="Y") $arFields["ALLOW_DELIVERY"]="N"; if (is_set($arFields, "PRICE") || $ACTION=="ADD") { $arFields["PRICE"] = str_replace(",", ".", $arFields["PRICE"]); $arFields["PRICE"] = DoubleVal($arFields["PRICE"]); } if (is_set($arFields, "PRICE_DELIVERY") || $ACTION=="ADD") { $arFields["PRICE_DELIVERY"] = str_replace(",", ".", $arFields["PRICE_DELIVERY"]); $arFields["PRICE_DELIVERY"] = DoubleVal($arFields["PRICE_DELIVERY"]); } if (is_set($arFields, "SUM_PAID") || $ACTION=="ADD") { $arFields["SUM_PAID"] = str_replace(",", ".", $arFields["SUM_PAID"]); $arFields["SUM_PAID"] = DoubleVal($arFields["SUM_PAID"]); } if (is_set($arFields, "DISCOUNT_VALUE") || $ACTION=="ADD") { $arFields["DISCOUNT_VALUE"] = str_replace(",", ".", $arFields["DISCOUNT_VALUE"]); $arFields["DISCOUNT_VALUE"] = DoubleVal($arFields["DISCOUNT_VALUE"]); } if (is_set($arFields, "TAX_VALUE") || $ACTION=="ADD") { $arFields["TAX_VALUE"] = str_replace(",", ".", $arFields["TAX_VALUE"]); $arFields["TAX_VALUE"] = DoubleVal($arFields["TAX_VALUE"]); } if(!is_set($arFields, "LOCKED_BY") && (!is_set($arFields, "UPDATED_1C") || (is_set($arFields, "UPDATED_1C") && $arFields["UPDATED_1C"] != "Y"))) { $arFields["UPDATED_1C"] = "N"; } if ((is_set($arFields, "CURRENCY") || $ACTION=="ADD") && strlen($arFields["CURRENCY"])<=0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_CURRENCY"), "EMPTY_CURRENCY"); return false; } if (is_set($arFields, "CURRENCY")) { if (!($arCurrency = CCurrency::GetByID($arFields["CURRENCY"]))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["CURRENCY"], GetMessage("SKGO_WRONG_CURRENCY")), "ERROR_NO_CURRENCY"); return false; } } if (is_set($arFields, "LID")) { $dbSite = CSite::GetByID($arFields["LID"]); if (!$dbSite->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["LID"], GetMessage("SKGO_WRONG_SITE")), "ERROR_NO_SITE"); return false; } } if (is_set($arFields, "USER_ID")) { $dbUser = CUser::GetByID($arFields["USER_ID"]); if (!$dbUser->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["USER_ID"], GetMessage("SKGO_WRONG_USER")), "ERROR_NO_USER_ID"); return false; } } if (is_set($arFields, "PERSON_TYPE_ID")) { if (!($arPersonType = CSalePersonType::GetByID($arFields["PERSON_TYPE_ID"]))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["PERSON_TYPE_ID"], GetMessage("SKGO_WRONG_PERSON_TYPE")), "ERROR_NO_PERSON_TYPE"); return false; } } if (is_set($arFields, "PAY_SYSTEM_ID") && IntVal($arFields["PAY_SYSTEM_ID"]) > 0) { if (!($arPaySystem = CSalePaySystem::GetByID(IntVal($arFields["PAY_SYSTEM_ID"])))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["PAY_SYSTEM_ID"], GetMessage("SKGO_WRONG_PS")), "ERROR_NO_PAY_SYSTEM"); return false; } } if (is_set($arFields, "DELIVERY_ID") && ( strpos($arFields["DELIVERY_ID"], ":") !== false || IntVal($arFields["DELIVERY_ID"]) > 0 ) ) { if (strpos($arFields["DELIVERY_ID"], ":") !== false) { $arId = explode(":", $arFields["DELIVERY_ID"]); $obDelivery = new CSaleDeliveryHandler(); if ($arDelivery = $obDelivery->GetBySID($arId[0])) { if ($arDelivery = $arDelivery->Fetch()) { if (!is_set($arDelivery["PROFILES"], $arId[1])) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["DELIVERY_ID"], GetMessage("SKGO_WRONG_DELIVERY")), "ERROR_NO_DELIVERY"); return false; } } } else { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["DELIVERY_ID"], GetMessage("SKGO_WRONG_DELIVERY")), "ERROR_NO_DELIVERY"); return false; } } else { if (!($arDelivery = CSaleDelivery::GetByID(IntVal($arFields["DELIVERY_ID"])))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["DELIVERY_ID"], GetMessage("SKGO_WRONG_DELIVERY")), "ERROR_NO_DELIVERY"); return false; } } } if (is_set($arFields, "STATUS_ID")) { if (!($arStatus = CSaleStatus::GetByID($arFields["STATUS_ID"]))) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["STATUS_ID"], GetMessage("SKGO_WRONG_STATUS")), "ERROR_NO_STATUS_ID"); return false; } } if (is_set($arFields, "ACCOUNT_NUMBER") && $ACTION=="UPDATE") { if (strlen($arFields["ACCOUNT_NUMBER"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EMPTY_ACCOUNT_NUMBER"), "EMPTY_ACCOUNT_NUMBER"); return false; } else { $dbres = $DB->Query("SELECT ID, ACCOUNT_NUMBER FROM b_sale_order WHERE ACCOUNT_NUMBER = '".$DB->ForSql($arFields["ACCOUNT_NUMBER"])."'", true); if ($arRes = $dbres->GetNext()) { if (is_array($arRes) && $arRes["ID"] != $ID) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_EXISTING_ACCOUNT_NUMBER"), "EXISTING_ACCOUNT_NUMBER"); return false; } } } } if (!$USER_FIELD_MANAGER->CheckFields("ORDER", $ID, $arFields)) { return false; } return True; }
function CheckPPPaySystem($iPSID, $iPTID) { $arPS = CSalePaySystem::GetByID($iPSID, $iPTID); if (substr_count($arPS["PSA_ACTION_FILE"], "epages.pickpoint")) { return 1; } return 0; }
function OnOrderNewSendEmailHandler($orderID, &$eventName, &$arFields) { // Поменять вид списка товаров if (!CModule::IncludeModule('sale') || !CModule::IncludeModule('catalog')) return; //global $pre_defined_variables, $DB; $arOrder = CSaleOrder::GetById($orderID); $dbBasketItems = CSaleBasket::GetList(array("NAME" => "ASC"), array("ORDER_ID" => $orderID), false, false, array("ID", "NAME", "QUANTITY", "PRICE", "CURRENCY", "DETAIL_PAGE_URL")); $strOrderList = ""; $strOrderList .= '<table width="100%">'; $strOrderList .= '<thead><tr>'; foreach(array("Название","Количество","Цена","Сумма") as $th) $strOrderList .= '<th>'.$th.'</th>'; $strOrderList .= '</tr></thead>'; $strOrderList .= '<tbody>'; $price_total = 0; $arBasketItems = array(); while ($arBasketItem = $dbBasketItems->Fetch()) { $dbProp = CSaleBasket::GetPropsList(Array("SORT" => "ASC", "NAME" => "ASC"), Array("BASKET_ID" => $arBasketItem["ID"], "!CODE" => array("CATALOG.XML_ID", "PRODUCT.XML_ID"))); while($arProp = $dbProp -> GetNext()) $arBasketItem["PROPS"][] = $arProp; $arBasketItems[] = $arBasketItem; $strOrderList .= '<tr>'; $strOrderList .= '<td>'; $strOrderList .= '<a href="http://www.zakrepi.ru'.$arBasketItem["DETAIL_PAGE_URL"].'" target="_blank">'.$arBasketItem["NAME"].'</a>'; // Из свойств товара заказа показать лишь стандартные и название филиала foreach($arBasketItem['PROPS'] as &$arProp) { $strOrderList .= '<div style="font-size:80%">'.$arProp['NAME'].': '.$arProp['VALUE'].'</div>'; } $strOrderList .= '</td>'; $strOrderList .= '<td style="text-align: center;">'.$arBasketItem["QUANTITY"].' шт.</td>'; $strOrderList .= '<td style="text-align: center;">'.SaleFormatCurrency($arBasketItem["PRICE"], $arBasketItem["CURRENCY"]).'</td>'; $strOrderList .= '<td style="text-align: center;">'.SaleFormatCurrency($arBasketItem["PRICE"] * $arBasketItem["QUANTITY"], $arBasketItem["CURRENCY"]).'</td>'; $strOrderList .= '</tr>'; $price_total += $arBasketItem["PRICE"] * $arBasketItem["QUANTITY"]; $price_currency = $arBasketItem["CURRENCY"]; } $price_total_formatted = $price_currency? SaleFormatCurrency($price_total, $price_currency): '0'; $strOrderList .= '<tr><td colspan="3" style="text-align:right;">Общая стоимость: </td><td style="text-align: center;">'.$price_total_formatted.'</td></tr>'; //Получаем стоимость доставки цену и общую сумму вместе с ценой доставки // Указываем способ доставки // $arOrder['PRICE'] - Общая стоимость $arFields['DELIVERY'] = ''; if (strlen($arOrder['DELIVERY_ID'])) { if (is_string($arOrder['DELIVERY_ID'])) { $sid = explode(":", $arOrder['DELIVERY_ID']); $dbDeliv = CSaleDeliveryHandler::GetBySID($sid[0]); $arDeliv = $dbDeliv->GetNext(); $arFields['DELIVERY'] = '<p><b>Способ доставки:</b> '.$arDeliv['NAME'].'</p>'; $price_total += $arOrder['PRICE_DELIVERY']; $strOrderList .= '<tr><td colspan="3" style="text-align:right;">Стоимость доставки: </td><td style="text-align: center;">'.SaleFormatCurrency($arOrder['PRICE_DELIVERY'], $price_currency).'</td></tr>'; $strOrderList .= '<tr><td colspan="3" style="text-align:right;">Итого: </td><td style="text-align: center;">'.SaleFormatCurrency($price_total, $price_currency).'</td></tr>'; $arFields['ALL_PRICE'] = '<p><b>Итого: </b>'.SaleFormatCurrency($price_total, $price_currency).'</p>'; } else{ $arDelivery = CSaleDelivery::GetById($arOrder['DELIVERY_ID']); if ($arDelivery) { $value = $arDelivery['NAME']; $value_name = $arDelivery['NAME']; $value_price = ''; if ($arDelivery['PRICE']<=0) { $value .= ', Бесплатно'; $value_price = 'Бесплатно'; } else { $value .= ', '.SaleFormatCurrency($arDelivery['PRICE'], $arDelivery['CURRENCY']); $value_price = SaleFormatCurrency($arDelivery['PRICE'], $arDelivery['CURRENCY']); $strOrderList .= '<tr><td colspan="3" style="text-align:right;">Стоимость доставки: </td><td style="text-align: center;">'.$value_price.'</td></tr>'; } $arFields['DELIVERY'] = '<p><b>Способ доставки:</b> '.$value_name.'</p>'; $price_total += $arDelivery['PRICE']; $strOrderList .= '<tr><td colspan="3" style="text-align:right;">Итого: </td><td style="text-align: center;">'.SaleFormatCurrency($price_total, $price_currency).'</td></tr>'; $arFields['ALL_PRICE'] = '<p><b>Итого: </b>'.SaleFormatCurrency($price_total, $price_currency).'</p>'; } } } $strOrderList .= '</tbody>'; $strOrderList .= '</table>'; $arFields["ORDER_LIST_NEW"] = $strOrderList; // Указываем свойства заказа - Начало /* $arProps = array(); $dbProps = CSaleOrderPropsValue::GetOrderProps($orderID); while ($arProp = $dbProps->Fetch()) { $arProps[$arProp['CODE']] = $arProp; $val = $arProp['VALUE']; if ($arProp['TYPE']=="LOCATION") { $v = CSaleLocation::GetByID($val); $val = $v['CITY_NAME_LANG']; } elseif (in_array($arProp['TYPE'], array("SELECT", "MULTISELECT", "RADIO"))) { $v = CSaleOrderPropsVariant::GetByValue($arProp['ORDER_PROPS_ID'], $val); $val = $v['NAME']; } $arProp['VALUE_FORMATTED'] = $val; }*/ // Получаем список исключенных свойств в зависимости от выбранной службы доставки /*$delivery_id = $arOrder['DELIVERY_ID']; $EXCLUDE_PROPS = $pre_defined_variables['ORDER_MAKE']["EXCLUDE_PROP_ON_DELIVERY_ID"]; if (array_key_exists($delivery_id, $EXCLUDE_PROPS)) $EXCLUDE_PROP = $EXCLUDE_PROPS[$delivery_id]; else $EXCLUDE_PROP = array(); $EXCLUDE_PROP = array_merge(array('AGREE'), $EXCLUDE_PROP); // Выводим свойства $strPropsList = ''; foreach($arProps as $prop_code=>&$arProp) { if (in_array($prop_code, $EXCLUDE_PROP)) continue; $strPropsList .= '<p>'; $value = strlen(trim($arProp['VALUE']))? $arProp['VALUE']: '<i>не указано</i>'; $strPropsList .= '<b>'.$arProp['NAME'].':</b> '.$value; $strPropsList .= '</p>'; } $arFields['PROPS_LIST'] = $strPropsList;*/ // Указываем свойства заказа - Конец // Указываем способ оплаты $arFields['PAY_SYSTEM'] = ''; if (strlen($arOrder['PAY_SYSTEM_ID'])) { $arPaySystem = CSalePaySystem::GetByID($arOrder['PAY_SYSTEM_ID'], $arOrder['PERSON_TYPE_ID']); if ($arPaySystem) { $value = strlen(trim($arPaySystem['PSA_NAME']))? $arPaySystem['PSA_NAME']: $arPaySystem['NAME']; if($arOrder['PAY_SYSTEM_ID'] == 1 || $arOrder['PAY_SYSTEM_ID'] == 2) { $arFields['PAY_SYSTEM'] = '<p><b>Способ оплаты:</b> <a href="http://www.zakrepi.ru/checkout/?ORDER_ID='.$orderID.'" target="_blank">'.$value.'</a></p>'; } else { $arFields['PAY_SYSTEM'] = '<p><b>Способ оплаты:</b> '.$value.'</p>'; } } } // Получаем склад, указанный при доставке $arFields['STORE_LIST'] = ''; $arFields['STORE_LIST_NEUTRAL'] = ''; $arFields['STORE_EMAIL'] = ''; $arStores = array(); if ($arOrder['DELIVERY_ID'] == 1) { $dbStores = CCatalogStore::GetList(array(), array('ID'=>1), false, false, array()); $arStore = $dbStores->Fetch(); $strStoreList = ''; if ($arStore) { // Получаем свойства склада в нужном порядке $prop_codes = array('TITLE'=>'', 'ADDRESS'=>'Адрес', 'PHONE'=>'Телефон', 'SCHEDULE'=>'Время работы'); // Выводим склад $strStoreList = '<span style="font-size: 90%">'; $have_value = false; $prev_value = false; foreach($prop_codes as $prop_code=>&$name) { if ($prev_value) { $strStoreList .= ', '; $prev_value = false; } if (strlen(trim($arStore[$prop_code]))) { $have_value = true; if (strlen($name)) { $strStoreList .= $name.': '; } $strStoreList .= trim($arStore[$prop_code]); $prev_value = true; } } $strStoreList .= '</span><br />'; // Добавляем поле списка складов в почтовый шаблон //$arFields['STORE_LIST_NEUTRAL'] = '<p>Указанный '$strStoreList; if (strlen($have_value)) { $arFields['STORE_LIST_NEUTRAL'] = '<p><b>Пункт выдачи:</b></p>' . $strStoreList; $arFields['STORE_LIST'] = '<p><b>Пожалуйста, сообщите номер вашего заказа для оплаты по адресу:</b></p>' . $strStoreList; } } } else if($arOrder['DELIVERY_ID'] > 1) { $strStoreList = ''; $arOrderProps = CSaleOrderPropsValue::GetOrderProps($arOrder['ID']); while ($arProps = $arOrderProps->Fetch()) { switch ($arProps['CODE']) { case 'CITY': $strStoreList .= $arProps['NAME'].': '.$arProps['VALUE']; break; case 'STREET': $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'HOUSE': $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'KORPUS': if($arProps['VALUE']!='') $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'FLAT': if($arProps['VALUE']!='') $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; } } $arFields['STORE_LIST_NEUTRAL'] = '<div><p><b>Доставка по адресу:</b></p>' . $strStoreList.'</div>'; } else if(is_string($arOrder['DELIVERY_ID'])) { $strStoreList = ''; $arOrderProps = CSaleOrderPropsValue::GetOrderProps($arOrder['ID']); while ($arProps = $arOrderProps->Fetch()) { switch ($arProps['CODE']) { case 'CITY': $strStoreList .= $arProps['NAME'].': '.$arProps['VALUE']; break; case 'STREET': $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'HOUSE': $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'KORPUS': if($arProps['VALUE']!='') $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; case 'FLAT': if($arProps['VALUE']!='') $strStoreList .= '<br/>'.$arProps['NAME'].': '.$arProps['VALUE']; break; } } $arFields['STORE_LIST_NEUTRAL'] = '<div><p><b>Доставка по адресу:</b></p>' . $strStoreList.'</div>'; } //Получение данных пользователя $rsUser = CUser::GetByID($arOrder['USER_ID']); $arUser = $rsUser->Fetch(); if(in_array(5, CUser::GetUserGroup($arOrder['USER_ID']))) { $arFields['STORE_PHONE'] = $arUser['WORK_PHONE']; $arFields['STORE_NAME_USER'] = '******'.$arUser['NAME'].' '.$arUser['LAST_NAME']; } else if(in_array(6, CUser::GetUserGroup($arOrder['USER_ID']))) { $arFields['STORE_PHONE'] = $arUser['WORK_PHONE']; $arFields['STORE_NAME_USER'] = '******'.$arUser['WORK_COMPANY'].' Контактное лицо '.$arUser['UF_CONTACT_MANAGER']; } }
public static function FormatOrderPaymentSystemChanged($data) { $info = GetMessage("SOC_ORDER_PAYMENT_SYSTEM_CHANGED_INFO"); if (is_array($data)) { foreach ($data as $param => $value) { if ($param == "PAY_SYSTEM_ID") { $res = CSalePaySystem::GetByID($value); $value = "\"" . $res["NAME"] . "\""; } $info = str_replace("#" . $param . "#", $value, $info); } } else { $info = $data; } return array("NAME" => GetMessage("SOC_ORDER_PAYMENT_SYSTEM_CHANGED"), "INFO" => $info); }
formAllowPay.close(); } } }) ]); formAllowPay.show(); BX('FORM_PAY_VOUCHER_NUM').focus(); } </script> </td> </tr> <? $tabControl->EndCustomField("ORDER_PAYED", ''); $arPaySys = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"], $arOrder["PERSON_TYPE_ID"]); if (strlen($arOrder["PS_STATUS"]) > 0) { $tabControl->AddSection("ps_stat", GetMessage("P_ORDER_PS_STATUS")); $tabControl->BeginCustomField("ORDER_PS_STATUS", GetMessage("P_ORDER_PS_STATUS")); ?> <tr> <td><?echo $tabControl->GetCustomLabelHTML()?>:</td> <td> <? echo (($arOrder["PS_STATUS"]=="Y") ? "OK" : "N"); if (!$boolLocked) { if (!$crmMode && $arPaySys["PSA_HAVE_RESULT"] == "Y" || strlen($arPaySys["PSA_RESULT_FILE"]) > 0) { ?>
), array("ID", "MAX" => "PERM_STATUS"), false, array("ID") ); if (!$dbStatusList->Fetch()) $errorMessage .= str_replace("#STATUS_ID#", $str_STATUS_ID, GetMessage("SOE_NO_STATUS_PERMS"))."<br>"; } } $str_PAY_SYSTEM_ID = intval($PAY_SYSTEM_ID); if ($str_PAY_SYSTEM_ID <= 0) $errorMessage .= GetMessage("SOE_PAYSYS_EMPTY")."<br>"; if (($str_PAY_SYSTEM_ID > 0) && !($arPaySys = CSalePaySystem::GetByID($str_PAY_SYSTEM_ID, $str_PERSON_TYPE_ID))) $errorMessage .= GetMessage("SOE_PAYSYS_NOT_FOUND")."<br>"; if (empty($_POST["PRODUCT"])) $errorMessage .= GetMessage("SOE_EMPTY_ITEMS")."<br>"; if (isset($DELIVERY_ID) AND $DELIVERY_ID != "") { $str_DELIVERY_ID = trim($DELIVERY_ID); $PRICE_DELIVERY = floatval($PRICE_DELIVERY); } $arCoupon = fGetCoupon($_POST["COUPON"]); if (!empty($arCoupon) && is_array($arCoupon)) $recalcOrder = "Y";
$arResult["DELIVERY_PROFILE"] = $arResult["DELIVERY_ID"][1]; $arOrderTmpDel = array("PRICE" => $arResult["ORDER_PRICE"], "WEIGHT" => $arResult["ORDER_WEIGHT"], "LOCATION_FROM" => COption::GetOptionInt('sale', 'location'), "LOCATION_TO" => $arResult["DELIVERY_LOCATION"], "LOCATION_ZIP" => $arResult["DELIVERY_LOCATION_ZIP"]); $arDeliveryPrice = CSaleDeliveryHandler::CalculateFull($arResult["DELIVERY_ID"][0], $arResult["DELIVERY_ID"][1], $arOrderTmpDel, $arResult["BASE_LANG_CURRENCY"]); if ($arDeliveryPrice["RESULT"] == "ERROR") { $arResult["ERROR_MESSAGE"] = $arDeliveryPrice["TEXT"]; } else { $arResult["DELIVERY_PRICE"] = roundEx($arDeliveryPrice["VALUE"], SALE_VALUE_PRECISION); } } elseif (IntVal($arResult["DELIVERY_ID"]) > 0 && ($arDeliv = CSaleDelivery::GetByID($arResult["DELIVERY_ID"]))) { $arDeliv["NAME"] = htmlspecialcharsEx($arDeliv["NAME"]); $arResult["DELIVERY"] = $arDeliv; $arResult["DELIVERY_PRICE"] = roundEx(CCurrencyRates::ConvertCurrency($arDeliv["PRICE"], $arDeliv["CURRENCY"], $arResult["BASE_LANG_CURRENCY"]), SALE_VALUE_PRECISION); } elseif (IntVal($DELIVERY_ID) > 0) { $arResult["DELIVERY"] = "ERROR"; } if (IntVal($arResult["PAY_SYSTEM_ID"]) > 0 && ($arPaySys = CSalePaySystem::GetByID($arResult["PAY_SYSTEM_ID"], $arResult["PERSON_TYPE"]))) { $arResult["PAY_SYSTEM"] = $arPaySys; $arResult["PAY_SYSTEM"]["PSA_NAME"] = htmlspecialcharsEx($arResult["PAY_SYSTEM"]["PSA_NAME"]); $arResult["PAY_SYSTEM"]["~PSA_NAME"] = $arResult["PAY_SYSTEM"]["PSA_NAME"]; } elseif (IntVal($arResult["PAY_SYSTEM_ID"]) > 0) { $arResult["PAY_SYSTEM"] = "ERROR"; } $arResult["BASKET_ITEMS"] = array(); $arResult["ORDER_WEIGHT"] = 0; CSaleBasket::UpdateBasketPrices(CSaleBasket::GetBasketUserID(), SITE_ID); $dbBasketItems = CSaleBasket::GetList(array("NAME" => "ASC"), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL")); while ($arBasketItems = $dbBasketItems->Fetch()) { if ($arBasketItems["DELAY"] == "N" && $arBasketItems["CAN_BUY"] == "Y") { $arBasketItems['NAME'] = htmlspecialcharsEx($arBasketItems['NAME']); $arBasketItems['NOTES'] = htmlspecialcharsEx($arBasketItems['NOTES']); $arResult["ORDER_WEIGHT"] += $arBasketItems["WEIGHT"] * $arBasketItems["QUANTITY"];
/** * Function gets pay system info from database, no cache is used here * @return void */ protected function obtainDataPaySystem() { if (empty($this->dbResult["ID"])) { return; } if (intval($this->dbResult["PAY_SYSTEM_ID"])) { $this->dbResult["PAY_SYSTEM"] = CSalePaySystem::GetByID($this->dbResult["PAY_SYSTEM_ID"], $this->dbResult["PERSON_TYPE_ID"]); } if ($this->dbResult["PAYED"] != "Y" && $this->dbResult["CANCELED"] != "Y") { if (intval($this->dbResult["PAY_SYSTEM_ID"])) { $dbPaySysAction = CSalePaySystemAction::GetList(array(), array("PAY_SYSTEM_ID" => $this->dbResult["PAY_SYSTEM_ID"], "PERSON_TYPE_ID" => $this->dbResult["PERSON_TYPE_ID"]), false, false, array("NAME", "ACTION_FILE", "NEW_WINDOW", "PARAMS", "ENCODING")); if ($arPaySysAction = $dbPaySysAction->Fetch()) { if (strlen($arPaySysAction["ACTION_FILE"])) { $this->dbResult["CAN_REPAY"] = "Y"; if ($arPaySysAction["NEW_WINDOW"] == "Y") { $this->dbResult["PAY_SYSTEM"]["PSA_ACTION_FILE"] = htmlspecialcharsbx($this->arParams["PATH_TO_PAYMENT"]) . '?ORDER_ID=' . urlencode(urlencode($this->dbResult["ACCOUNT_NUMBER"])); } else { CSalePaySystemAction::InitParamArrays($this->dbResult, $this->requestData["ID"], $arPaySysAction["PARAMS"]); $pathToAction = $_SERVER["DOCUMENT_ROOT"] . $arPaySysAction["ACTION_FILE"]; $pathToAction = str_replace("\\", "/", $pathToAction); while (substr($pathToAction, strlen($pathToAction) - 1, 1) == "/") { $pathToAction = substr($pathToAction, 0, strlen($pathToAction) - 1); } if (file_exists($pathToAction)) { if (is_dir($pathToAction) && file_exists($pathToAction . "/payment.php")) { $pathToAction .= "/payment.php"; } $this->dbResult["PAY_SYSTEM"]["PSA_ACTION_FILE"] = $pathToAction; } if (strlen($arPaySysAction["ENCODING"])) { define("BX_SALE_ENCODING", $arPaySysAction["ENCODING"]); AddEventHandler("main", "OnEndBufferContent", array($this, "changeBodyEncoding")); } } } } } } }
if ($rsEl = $dbEl->GetNext()) { $arResult["PHOTOS"][$rsEl["ID"]] = CFile::GetPath($rsEl["PREVIEW_PICTURE"]); if (empty($arResult["PHOTOS"][$rsEl["ID"]])) { $dbPhoto = CIBlockElement::GetProperty($rsEl["IBLOCK_ID"], $rsEl["ID"], "id", "asc", array("CODE" => $arParams["IMG_PROPERTY"])); if ($arPhoto = $dbPhoto->GetNext()) { $photo = CFile::ResizeImageGet($arPhoto["VALUE"], array("width" => 36, "height" => 36)); $arResult["PHOTOS"][$rsEl["ID"]] = $photo['src']; } } if (empty($arResult["PHOTOS"][$rsEl["ID"]])) { $arResult["PHOTOS"][$rsEl["ID"]] = SITE_TEMPLATE_PATH . "/images/no_photo.png"; } } else { $arResult["PHOTOS"][$vval["PRODUCT_ID"]] = SITE_TEMPLATE_PATH . "/images/no_photo.png"; } } if ($arPaySys = CSalePaySystem::GetByID($val['ORDER']['PAY_SYSTEM_ID'], $val['ORDER']['PERSON_TYPE_ID'])) { $pathToAction = $_SERVER["DOCUMENT_ROOT"] . $arPaySys["PSA_ACTION_FILE"]; $pathToAction = str_replace("\\", "/", $pathToAction); while (substr($pathToAction, strlen($pathToAction) - 1, 1) == "/") { $pathToAction = substr($pathToAction, 0, strlen($pathToAction) - 1); } if (file_exists($pathToAction)) { if (is_dir($pathToAction) && file_exists($pathToAction . "/payment.php")) { $pathToAction .= "/payment.php"; } $val['ORDER']['PSA_ACTION_FILE'] = $pathToAction; } } } }