static function DoPayOrderFromAccount($userId, $currency, $orderId, $orderSum, $arOptions, &$arErrors) { if (!array_key_exists("ONLY_FULL_PAY_FROM_ACCOUNT", $arOptions)) { $arOptions["ONLY_FULL_PAY_FROM_ACCOUNT"] = COption::GetOptionString("sale", "ONLY_FULL_PAY_FROM_ACCOUNT", "N"); } $dbUserAccount = CSaleUserAccount::GetList(array(), array("USER_ID" => $userId, "CURRENCY" => $currency)); $arUserAccount = $dbUserAccount->Fetch(); if (!$arUserAccount) { return false; } if ($arUserAccount["CURRENT_BUDGET"] <= 0) { return false; } if ($arOptions["ONLY_FULL_PAY_FROM_ACCOUNT"] == "Y" && doubleval($arUserAccount["CURRENT_BUDGET"]) < doubleval($orderSum)) { return false; } $withdrawSum = CSaleUserAccount::Withdraw($userId, $orderSum, $currency, $orderId); if ($withdrawSum > 0) { $arFields = array("SUM_PAID" => $withdrawSum, "USER_ID" => $userId); CSaleOrder::Update($orderId, $arFields); if ($withdrawSum == $orderSum) { CSaleOrder::PayOrder($orderId, "Y", False, False); } return true; } return false; }
public function setPayed($value) { $value = (bool) $value ? 'Y' : 'N'; if ($value == 'Y') { \CSaleOrder::PayOrder($this['ID'], 'Y'); } else { $data = array('PAYED' => (bool) $value ? 'Y' : 'N', 'DATE_PAYED' => Date(\CDatabase::DateFormatToPHP(\CLang::GetDateFormat('FULL', LANG))), 'USER_ID' => $this['USER_ID']); return \CSaleOrder::Update($this['ID'], $data); } }
protected function mark_order_as_completed($order, array $data) { CSaleOrder::PayOrder($order['ID'], 'Y'); CSaleOrder::Update($order['ID'], array( 'PS_STATUS' => 'Y', 'PS_SUM' => $data['amount'], 'PS_CURRENCY' => $data['currency'], 'PS_STATUS_MESSAGE' => $data['message'], 'PS_RESPONSE_DATE' => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat('FULL', LANG))), )); }
function AutoPayOrder($_1756592745) { $_1756592745 = IntVal($_1756592745); $_1691926443 = CSaleOrder::$GLOBALS['_____964307792'][6]($_1756592745); if (!$_1691926443) { return false; } if ($_1691926443[___1555869721(428)] != ___1555869721(429)) { return false; } if ($_1691926443[___1555869721(430)] != ___1555869721(431)) { return false; } if ($_1691926443[___1555869721(432)] == $_1691926443[___1555869721(433)] && DoubleVal($_1691926443[___1555869721(434)]) == DoubleVal($_1691926443[___1555869721(435)])) { if (CSaleOrder::PayOrder($_77363853[___1555869721(436)], ___1555869721(437), True, False)) { return true; } } return false; }
function AutoPayOrder($ORDER_ID) { $ORDER_ID = IntVal($ORDER_ID); $arOrder = CSaleOrder::GetByID($ORDER_ID); if (!$arOrder) { return false; } if ($arOrder["PS_STATUS"] != "Y") { return false; } if ($arOrder["PAYED"] != "N") { return false; } if ($arOrder["CURRENCY"] == $arOrder["PS_CURRENCY"] && DoubleVal($arOrder["PRICE"]) == DoubleVal($arOrder["PS_SUM"])) { if (CSaleOrder::PayOrder($order["ID"], "Y", True, False)) { return true; } } return false; }
} if(!empty($arFields)) { CSaleOrder::Update($order['externalId'], $arFields); } if(isset($order['status']) && $order['status']) { if(isset($optionsPayStatuses[$order['status']]) && $optionsPayStatuses[$order['status']]) { // set STATUS_ID CSaleOrder::StatusOrder($order['externalId'], $optionsPayStatuses[$order['status']]); if($wasCanaceled && $optionsPayStatuses[ $order['status'] ] != 'YY') { CSaleOrder::CancelOrder($order['externalId'], "N", $order['statusComment']); } elseif ($optionsPayStatuses[ $order['status'] ] == 'YY') { CSaleOrder::CancelOrder($order['externalId'], "Y", $order['statusComment']); } } } // set PAYED if(isset($order['paymentStatus']) && $order['paymentStatus'] && $optionsPayment[$order['paymentStatus']]) { CSaleOrder::PayOrder($order['externalId'], $optionsPayment[$order['paymentStatus']]); } if(function_exists('intarocrm_order_post_persist')) { intarocrm_order_post_persist($order); } } $GLOBALS['INTARO_CRM_FROM_HISTORY'] = false; } ?>
function nodeHandler(CDataXML $value) { $value = $value->GetArray(); if(!empty($value[GetMessage("CC_BSC1_DOCUMENT")])) { $value = $value[GetMessage("CC_BSC1_DOCUMENT")]; $arOrder = $this->collectOrderInfo($value); if(!empty($arOrder)) { if(strlen($arOrder["ID"]) <= 0 && strlen($arOrder["ID_1C"]) > 0)//try to search order from 1C { $dbOrder = CSaleOrder::GetList(array("ID" => "DESC"), array("ID_1C" => $arOrder["ID_1C"]), false, false, array("ID", "ID_1C")); if($orderInfo = $dbOrder->Fetch()) { $arOrder["ID"] = $orderInfo["ID"]; } } if(strlen($arOrder["ID"]) > 0) // exists site order { $dbOrder = CSaleOrder::GetList(array(), array("ACCOUNT_NUMBER" => $arOrder["ID"]), false, false, array("ID", "LID", "PERSON_TYPE_ID", "PAYED", "DATE_PAYED", "CANCELED", "DATE_CANCELED", "REASON_CANCELED", "STATUS_ID", "DATE_STATUS", "PAY_VOUCHER_NUM", "PAY_VOUCHER_DATE", "PRICE_DELIVERY", "ALLOW_DELIVERY", "DATE_ALLOW_DELIVERY", "PRICE", "CURRENCY", "DISCOUNT_VALUE", "USER_ID", "PAY_SYSTEM_ID", "DELIVERY_ID", "DATE_INSERT", "DATE_INSERT_FORMAT", "DATE_UPDATE", "USER_DESCRIPTION", "ADDITIONAL_INFO", "COMMENTS", "TAX_VALUE", "DELIVERY_DOC_NUM", "DELIVERY_DOC_DATE", "STORE_ID", "ACCOUNT_NUMBER", "VERSION", "VERSION_1C", "ID_1C")); if($orderInfo = $dbOrder->Fetch()) { if($arOrder["VERSION_1C"] != $orderInfo["VERSION_1C"] || (strlen($orderInfo["VERSION_1C"]) <= 0 || strlen($arOrder["VERSION_1C"]) <= 0)) // skip update if the same version { $arOrderFields = array(); $orderId = $orderInfo["ID"]; CSaleOrderChange::AddRecord($orderId, "ORDER_1C_IMPORT"); if($arOrder["ID_1C"] != $orderInfo["ID_1C"]) $arOrderFields["ID_1C"] = $arOrder["ID_1C"]; $arOrderFields["VERSION_1C"] = $arOrder["VERSION_1C"]; if($orderInfo["PAYED"] != "Y" && $orderInfo["ALLOW_DELIVERY"] != "Y" && $orderInfo["STATUS_ID"] != "F") { $dbOrderTax = CSaleOrderTax::GetList( array(), array("ORDER_ID" => $orderId), false, false, array("ID", "TAX_NAME", "VALUE", "VALUE_MONEY", "CODE", "IS_IN_PRICE") ); $bTaxFound = false; if($arOrderTax = $dbOrderTax->Fetch()) { $bTaxFound = true; if(IntVal($arOrderTax["VALUE_MONEY"]) != IntVal($arOrder["TAX"]["VALUE_MONEY"]) || IntVal($arOrderTax["VALUE"]) != IntVal($arOrder["TAX"]["VALUE"]) || ($arOrderTax["IS_IN_PRICE"] != $arOrder["TAX"]["IS_IN_PRICE"])) { if(IntVal($arOrder["TAX"]["VALUE"])>0) { $arFields = Array( "TAX_NAME" => $arOrder["TAX"]["NAME"], "ORDER_ID" => $orderId, "VALUE" => $arOrder["TAX"]["VALUE"], "IS_PERCENT" => "Y", "IS_IN_PRICE" => $arOrder["TAX"]["IS_IN_PRICE"], "VALUE_MONEY" => $arOrder["TAX"]["VALUE_MONEY"], "CODE" => "VAT1C", "APPLY_ORDER" => "100" ); CSaleOrderTax::Update($arOrderTax["ID"], $arFields); $arOrderFields["TAX_VALUE"] = $arOrder["TAX"]["VALUE_MONEY"]; } else { CSaleOrderTax::Delete($arOrderTax["ID"]); $arOrderFields["TAX_VALUE"] = 0; } } } if(!$bTaxFound) { if(IntVal($arOrder["TAX"]["VALUE"])>0) { $arFields = Array( "TAX_NAME" => $arOrder["TAX"]["NAME"], "ORDER_ID" => $orderId, "VALUE" => $arOrder["TAX"]["VALUE"], "IS_PERCENT" => "Y", "IS_IN_PRICE" => $arOrder["TAX"]["IS_IN_PRICE"], "VALUE_MONEY" => $arOrder["TAX"]["VALUE_MONEY"] ); CSaleOrderTax::Add($arFields); $arOrderFields["TAX_VALUE"] = $arOrder["TAX"]["VALUE_MONEY"]; } } $arShoppingCart = array(); $bNeedUpdate = false; $dbBasket = CSaleBasket::GetList( array("NAME" => "ASC"), array("ORDER_ID" => $orderId), false, false, array( "ID", "QUANTITY", "CANCEL_CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "PRODUCT_PROVIDER_CLASS", "RESERVED", "RESERVE_QUANTITY", "TYPE", "SET_PARENT_ID", "PRICE", "VAT_RATE", "DISCOUNT_PRICE", "PRODUCT_XML_ID", ) ); while ($arBasket = $dbBasket->Fetch()) { $arFields = Array(); if(!empty($arOrder["items"][$arBasket["PRODUCT_XML_ID"]])) { if($arBasket["QUANTITY"] != $arOrder["items"][$arBasket["PRODUCT_XML_ID"]]["QUANTITY"]) $arFields["QUANTITY"] = $arOrder["items"][$arBasket["PRODUCT_XML_ID"]]["QUANTITY"]; if($arBasket["PRICE"] != $arOrder["items"][$arBasket["PRODUCT_XML_ID"]]["PRICE"]) $arFields["PRICE"] = $arOrder["items"][$arBasket["PRODUCT_XML_ID"]]["PRICE"]; if($arBasket["VAT_RATE"] != $arOrder["items"][$arBasket["PRODUCT_XML_ID"]]["VAT_RATE"]) $arFields["VAT_RATE"] = $arOrder["items"][$arBasket["PRODUCT_XML_ID"]]["VAT_RATE"]; if($arBasket["DISCOUNT_PRICE"] != $arOrder["items"][$arBasket["PRODUCT_XML_ID"]]["DISCOUNT_PRICE"]) $arFields["DISCOUNT_PRICE"] = $arOrder["items"][$arBasket["PRODUCT_XML_ID"]]["DISCOUNT_PRICE"]; if(count($arFields)>0) { $arFields["ID"] = $arBasket["ID"]; if(DoubleVal($arFields["QUANTITY"]) <= 0) $arFields["QUANTITY"] = $arBasket["QUANTITY"]; $bNeedUpdate = true; $arShoppingCart[] = $arFields; } else { $arShoppingCart[] = $arBasket; } //CSaleBasket::Update($arBasket["ID"], $arFields); $arOrder["items"][$arBasket["PRODUCT_XML_ID"]]["CHECKED"] = "Y"; } else { if($arOrder["TRAITS"][GetMessage("CC_BSC1_CANCELED")] != "true" && $orderInfo["CANCELED"] == "N") { $bNeedUpdate = true; //CSaleBasket::Delete($arBasket["ID"]); } } } if(!empty($arOrder["items"])) { foreach ($arOrder["items"] as $itemID => $arItem) { if ($arItem["CHECKED"] != "Y") { if ($arItem["TYPE"] == GetMessage("CC_BSC1_ITEM")) { if ($arBasketFields = $this->prepareProduct4Basket($itemID, $arItem, $orderId, $orderInfo)) { $arShoppingCart[] = $arBasketFields; $bNeedUpdate = true; } } elseif ($arItem["TYPE"] == GetMessage("CC_BSC1_SERVICE")) { if (IntVal($arItem["PRICE"]) != IntVal($orderInfo["PRICE_DELIVERY"])) $arOrderFields["PRICE_DELIVERY"] = $arItem["PRICE"]; } } } } if($bNeedUpdate) { $arErrors = array(); CSaleBasket::DoSaveOrderBasket($orderId, $orderInfo["LID"], $orderInfo["USER_ID"], $arShoppingCart, $arErrors); } if(DoubleVal($arOrder["AMOUNT"]) > 0 && $arOrder["AMOUNT"] != $orderInfo["PRICE"]) $arOrderFields["PRICE"] = $arOrder["AMOUNT"]; if(DoubleVal($orderInfo["DISCOUNT_VALUE"]) > 0) $arOrderFields["DISCOUNT_VALUE"] = 0; if(strlen($arOrder["COMMENT"]) > 0 && $arOrder["COMMENT"] != $orderInfo["COMMENTS"]) $arOrderFields["COMMENTS"] = $arOrder["COMMENT"]; $arOrderFields["UPDATED_1C"] = "Y"; if(!empty($arOrderFields)) CSaleOrder::Update($orderId, $arOrderFields); } else { $this->strError .= "\n".GetMessage("CC_BSC1_FINAL_NOT_EDIT", Array("#ID#" => $orderId)); } } $arAditFields = Array(); if($arOrder["TRAITS"][GetMessage("CC_BSC1_CANCELED")] == "true") { if($orderInfo["CANCELED"] == "N") CSaleOrder::CancelOrder($orderInfo["ID"], "Y", $arOrder["COMMENT"]); $arAditFields["UPDATED_1C"] = "Y"; } else { if(strlen($arOrder["TRAITS"][GetMessage("CC_BSC1_1C_PAYED_DATE")])>1) { if($orderInfo["PAYED"]=="N") CSaleOrder::PayOrder($orderInfo["ID"], "Y"); $arAditFields["PAY_VOUCHER_DATE"] = CDatabase::FormatDate(str_replace("T", " ", $arOrder["TRAITS"][GetMessage("CC_BSC1_1C_PAYED_DATE")]), "YYYY-MM-DD HH:MI:SS", CLang::GetDateFormat("FULL", LANG)); if(strlen($arOrder["TRAITS"][GetMessage("CC_BSC1_1C_PAYED_NUM")])>0) $arAditFields["PAY_VOUCHER_NUM"] = $arOrder["TRAITS"][GetMessage("CC_BSC1_1C_PAYED_NUM")]; $arAditFields["UPDATED_1C"] = "Y"; } if(strlen($arOrder["TRAITS"][GetMessage("CC_BSC1_1C_DELIVERY_DATE")])>1) { if($orderInfo["ALLOW_DELIVERY"]=="N") CSaleOrder::DeliverOrder($orderInfo["ID"], "Y"); $arAditFields["DATE_ALLOW_DELIVERY"] = CDatabase::FormatDate(str_replace("T", " ", $arOrder["TRAITS"][GetMessage("CC_BSC1_1C_DELIVERY_DATE")]), "YYYY-MM-DD HH:MI:SS", CLang::GetDateFormat("FULL", LANG)); if(strlen($this->arParams["FINAL_STATUS_ON_DELIVERY"])>0 && $orderInfo["STATUS_ID"] != "F" && $orderInfo["STATUS_ID"] != $this->arParams["FINAL_STATUS_ON_DELIVERY"]) CSaleOrder::StatusOrder($orderInfo["ID"], $this->arParams["FINAL_STATUS_ON_DELIVERY"]); $arAditFields["UPDATED_1C"] = "Y"; } } if(count($arAditFields)>0) CSaleOrder::Update($orderInfo["ID"], $arAditFields); } else $this->strError .= "\n".GetMessage("CC_BSC1_ORDER_NOT_FOUND", Array("#ID#" => $arOrder["ID"])); } elseif($this->arParams["IMPORT_NEW_ORDERS"] == "Y") // create new order (ofline 1C) { if(!empty($arOrder["AGENT"]) && strlen($arOrder["AGENT"]["ID"]) > 0) { $arOrder["PERSON_TYPE_ID"] = 0; $arOrder["USER_ID"] = 0; $arErrors = array(); $dbUProp = CSaleOrderUserProps::GetList(array(), array("XML_ID" => $arOrder["AGENT"]["ID"]), false, false, array("ID", "NAME", "USER_ID", "PERSON_TYPE_ID", "XML_ID", "VERSION_1C")); if($arUProp = $dbUProp->Fetch()) { $arOrder["USER_ID"] = $arUProp["USER_ID"]; $arOrder["PERSON_TYPE_ID"] = $arUProp["PERSON_TYPE_ID"]; $arOrder["USER_PROFILE_ID"] = $arUProp["ID"]; $arOrder["USER_PROFILE_VERSION"] = $arUProp["VERSION_1C"]; $dbUPropValue = CSaleOrderUserPropsValue::GetList(array(), array("USER_PROPS_ID" => $arUProp["ID"])); while($arUPropValue = $dbUPropValue->Fetch()) { $arOrder["USER_PROPS"][$arUPropValue["ORDER_PROPS_ID"]] = $arUPropValue["VALUE"]; } } else { if(strlen($arOrder["AGENT"]["ID"]) > 0) { $arAI = explode("#", $arOrder["AGENT"]["ID"]); if(IntVal($arAI[0]) > 0) { $dbUser = CUser::GetByID($arAI[0]); if($arU = $dbUser->Fetch()) { if(htmlspecialcharsback(substr(htmlspecialcharsbx($arU["ID"]."#".$arU["LOGIN"]."#".$arU["LAST_NAME"]." ".$arU["NAME"]." ".$arU["SECOND_NAME"]), 0, 80)) == $arOrder["AGENT"]["ID"]) { $arOrder["USER_ID"] = $arU["ID"]; } } } } if(IntVal($arOrder["USER_ID"]) <= 0) { //create new user $arUser = array( "NAME" => $arOrder["AGENT"]["ITEM_NAME"], "EMAIL" => $arOrder["AGENT"]["CONTACT"]["MAIL_NEW"], ); if (strlen($arUser["NAME"]) <= 0) $arUser["NAME"] = $arOrder["AGENT"]["CONTACT"]["CONTACT_PERSON"]; if (strlen($arUser["EMAIL"]) <= 0) $arUser["EMAIL"] = "buyer".time().GetRandomCode(2)."@".$_SERVER["SERVER_NAME"]; $arOrder["USER_ID"] = CSaleUser::DoAutoRegisterUser($arUser["EMAIL"], $arUser["NAME"], $this->arParams["SITE_NEW_ORDERS"], $arErrors); } } if(empty($this->arPersonTypesIDs)) { $dbPT = CSalePersonType::GetList(array(), array("ACTIVE" => "Y", "LIDS" => $this->arParams["SITE_NEW_ORDERS"])); while($arPT = $dbPT->Fetch()) { $this->arPersonTypesIDs[] = $arPT["ID"]; } } if(empty($this->arExportInfo)) { $dbExport = CSaleExport::GetList(array(), array("PERSON_TYPE_ID" => $this->arPersonTypesIDs)); while($arExport = $dbExport->Fetch()) { $this->arExportInfo[$arExport["PERSON_TYPE_ID"]] = unserialize($arExport["VARS"]); } } if(IntVal($arOrder["PERSON_TYPE_ID"]) <= 0) { foreach($this->arExportInfo as $pt => $value) { if( (($value["IS_FIZ"] == "Y" && $arOrder["AGENT"]["TYPE"] == "FIZ") || ($value["IS_FIZ"] == "N" && $arOrder["AGENT"]["TYPE"] != "FIZ")) ) $arOrder["PERSON_TYPE_ID"] = $pt; } } if(IntVal($arOrder["PERSON_TYPE_ID"]) > 0) { $arAgent = $this->arExportInfo[$arOrder["PERSON_TYPE_ID"]]; foreach($arAgent as $k => $v) { if((strlen($v["VALUE"]) <= 0 || $v["TYPE"] != "PROPERTY") && (empty($arOrder["USER_PROPS"]) || empty($arOrder["USER_PROPS"][$v["VALUE"]]))) unset($arAgent[$k]); } if(IntVal($arOrder["USER_ID"]) > 0) { $orderFields = array( "SITE_ID" => $this->arParams["SITE_NEW_ORDERS"], "PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"], "PAYED" => "N", "CANCELED" => "N", "STATUS_ID" => "N", "PRICE" => $arOrder["AMOUNT"], "CURRENCY" => CSaleLang::GetLangCurrency($this->arParams["SITE_NEW_ORDERS"]), "USER_ID" => $arOrder["USER_ID"], "TAX_VALUE" => doubleval($arOrder["TAX"]["VALUE_MONEY"]), "COMMENTS" => $arOrder["COMMENT"], "BASKET_ITEMS" => array(), "TAX_LIST" => array(), "ORDER_PROP" => array(), ); $arAditFields = array( "EXTERNAL_ORDER" => "Y", "ID_1C" => $arOrder["ID_1C"], "VERSION_1C" => $arOrder["VERSION_1C"], "UPDATED_1C" => "Y", "DATE_INSERT" => CDatabase::FormatDate($arOrder["DATE"]." ".$arOrder["TIME"], "YYYY-MM-DD HH:MI:SS", CLang::GetDateFormat("FULL", LANG)), ); foreach($arOrder["items"] as $productID => $val) { $orderFields["BASKET_ITEMS"][] = $this->prepareProduct4Basket($productID, $val, false, $orderFields); } if(!empty($arOrder["TAX"])) { $orderFields["TAX_LIST"][] = array( "NAME" => $arOrder["TAX"]["NAME"], "IS_PERCENT" => "Y", "VALUE" => $arOrder["TAX"]["VALUE"], "VALUE_MONEY" => $arOrder["TAX"]["VALUE_MONEY"], "IS_IN_PRICE" => $arOrder["TAX"]["IS_IN_PRICE"], ); } foreach($arAgent as $k => $v) { if(!empty($arOrder["ORDER_PROPS"][$k])) { $orderFields["ORDER_PROP"][$v["VALUE"]] = $arOrder["ORDER_PROPS"][$k]; } if(empty($orderFields["ORDER_PROP"][$v["VALUE"]]) && !empty($arOrder["USER_PROPS"][$v["VALUE"]])) { $orderFields["ORDER_PROP"][$v["VALUE"]] = $arOrder["USER_PROPS"][$v["VALUE"]]; } } if($arOrder["ID"] = CSaleOrder::DoSaveOrder($orderFields, $arAditFields, 0, $arErrors)) { $arAditFields = array("UPDATED_1C" => "Y"); CSaleOrder::Update($arOrder["ID"], $arAditFields); //add/update user profile if(IntVal($arOrder["USER_PROFILE_ID"]) > 0) { if($arOrder["USER_PROFILE_VERSION"] != $arOrder["AGENT"]["VERSION"]) CSaleOrderUserProps::Update($arOrder["USER_PROFILE_ID"], array("VERSION_1C" => $arOrder["AGENT"]["VERSION"], "NAME" => $arOrder["AGENT"]["AGENT_NAME"])); $dbUPV = CSaleOrderUserPropsValue::GetList(array(), array("USER_PROPS_ID" =>$arOrder["USER_PROFILE_ID"])); while($arUPV = $dbUPV->Fetch()) { $arOrder["AGENT"]["PROFILE_PROPS_VALUE"][$arUPV["ORDER_PROPS_ID"]] = array("ID" => $arUPV["ID"], "VALUE" => $arUPV["VALUE"]); } } if(IntVal($arOrder["USER_PROFILE_ID"]) <= 0 || (IntVal($arOrder["USER_PROFILE_ID"]) > 0 && $arOrder["USER_PROFILE_VERSION"] != $arOrder["AGENT"]["VERSION"])) { $dbOrderProperties = CSaleOrderProps::GetList( array("SORT" => "ASC"), array( "PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"], "ACTIVE" => "Y", "UTIL" => "N", "USER_PROPS" => "Y", ), false, false, array("ID", "TYPE", "NAME", "CODE", "USER_PROPS", "SORT", "MULTIPLE") ); while ($arOrderProperties = $dbOrderProperties->Fetch()) { $curVal = $orderFields["ORDER_PROP"][$arOrderProperties["ID"]]; if (strlen($curVal) > 0) { if (IntVal($arOrder["USER_PROFILE_ID"]) <= 0) { $arFields = array( "NAME" => $arOrder["AGENT"]["AGENT_NAME"], "USER_ID" => $arOrder["USER_ID"], "PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"], "XML_ID" => $arOrder["AGENT"]["ID"], "VERSION_1C" => $arOrder["AGENT"]["VERSION"], ); $arOrder["USER_PROFILE_ID"] = CSaleOrderUserProps::Add($arFields); } if(IntVal($arOrder["USER_PROFILE_ID"]) > 0) { $arFields = array( "USER_PROPS_ID" => $arOrder["USER_PROFILE_ID"], "ORDER_PROPS_ID" => $arOrderProperties["ID"], "NAME" => $arOrderProperties["NAME"], "VALUE" => $curVal ); if(empty($arOrder["AGENT"]["PROFILE_PROPS_VALUE"][$arOrderProperties["ID"]])) { CSaleOrderUserPropsValue::Add($arFields); } elseif($arOrder["AGENT"]["PROFILE_PROPS_VALUE"][$arOrderProperties["ID"]]["VALUE"] != $curVal) { CSaleOrderUserPropsValue::Update($arOrder["AGENT"]["PROFILE_PROPS_VALUE"][$arOrderProperties["ID"]]["ID"], $arFields); } } } } } } else { $this->strError .= "\n".GetMessage("CC_BSC1_ORDER_ADD_PROBLEM", Array("#ID#" => $arOrder["ID_1C"])); } } else { $this->strError .= "\n".GetMessage("CC_BSC1_ORDER_USER_PROBLEM", Array("#ID#" => $arOrder["ID_1C"])); if(!empty($arErrors)) { foreach($arErrors as $v) { $this->strError .= "\n".$v["TEXT"]; } } } } else { $this->strError .= "\n".GetMessage("CC_BSC1_ORDER_PERSON_TYPE_PROBLEM", Array("#ID#" => $arOrder["ID_1C"])); } } else { $this->strError .= "\n".GetMessage("CC_BSC1_ORDER_NO_AGENT_ID", Array("#ID#" => $arOrder["ID_1C"])); } } } } elseif($this->arParams["IMPORT_NEW_ORDERS"] == "Y") { $value = $value[GetMessage("CC_BSC1_AGENT")]["#"]; $arAgentInfo = $this->collectAgentInfo($value); if(!empty($arAgentInfo["AGENT"])) { $mode = false; $arErrors = array(); $dbUProp = CSaleOrderUserProps::GetList(array(), array("XML_ID" => $arAgentInfo["AGENT"]["ID"]), false, false, array("ID", "NAME", "USER_ID", "PERSON_TYPE_ID", "XML_ID", "VERSION_1C")); if($arUProp = $dbUProp->Fetch()) { if($arUProp["VERSION_1C"] != $arAgentInfo["AGENT"]["VERSION"]) { $mode = "update"; $arAgentInfo["PROFILE_ID"] = $arUProp["ID"]; $arAgentInfo["PERSON_TYPE_ID"] = $arUProp["PERSON_TYPE_ID"]; } } else { $arUser = array( "NAME" => $arAgentInfo["AGENT"]["ITEM_NAME"], "EMAIL" => $arAgentInfo["AGENT"]["CONTACT"]["MAIL_NEW"], ); if(strlen($arUser["NAME"]) <= 0) $arUser["NAME"] = $arAgentInfo["AGENT"]["CONTACT"]["CONTACT_PERSON"]; $emServer = $_SERVER["SERVER_NAME"]; if(strpos($_SERVER["SERVER_NAME"], ".") === false) $emServer .= ".bx"; if(strlen($arUser["EMAIL"]) <= 0) $arUser["EMAIL"] = "buyer".time().GetRandomCode(2)."@".$emServer; $arAgentInfo["USER_ID"] = CSaleUser::DoAutoRegisterUser($arUser["EMAIL"], $arUser["NAME"], $this->arParams["SITE_NEW_ORDERS"], $arErrors); if(IntVal($arAgentInfo["USER_ID"]) > 0) { $mode = "add"; } else { $this->strError .= "\n".GetMessage("CC_BSC1_AGENT_USER_PROBLEM", Array("#ID#" => $arAgentInfo["AGENT"]["ID"])); if(!empty($arErrors)) { foreach($arErrors as $v) { $this->strError .= "\n".$v["TEXT"]; } } } } if($mode) { if(empty($this->arPersonTypesIDs)) { $dbPT = CSalePersonType::GetList(array(), array("ACTIVE" => "Y", "LIDS" => $this->arParams["SITE_NEW_ORDERS"])); while($arPT = $dbPT->Fetch()) { $this->arPersonTypesIDs[] = $arPT["ID"]; } } if(empty($this->arExportInfo)) { $dbExport = CSaleExport::GetList(array(), array("PERSON_TYPE_ID" => $this->arPersonTypesIDs)); while($arExport = $dbExport->Fetch()) { $this->arExportInfo[$arExport["PERSON_TYPE_ID"]] = unserialize($arExport["VARS"]); } } if(IntVal($arAgentInfo["PERSON_TYPE_ID"]) <= 0) { foreach($this->arExportInfo as $pt => $value) { if(($value["IS_FIZ"] == "Y" && $arAgentInfo["AGENT"]["TYPE"] == "FIZ") || ($value["IS_FIZ"] == "N" && $arAgentInfo["AGENT"]["TYPE"] != "FIZ") ) $arAgentInfo["PERSON_TYPE_ID"] = $pt; } } if(IntVal($arAgentInfo["PERSON_TYPE_ID"]) > 0) { $arAgentInfo["ORDER_PROPS_VALUE"] = array(); $arAgentInfo["PROFILE_PROPS_VALUE"] = array(); $arAgent = $this->arExportInfo[$arAgentInfo["PERSON_TYPE_ID"]]; foreach($arAgent as $k => $v) { if(strlen($v["VALUE"]) <= 0 || $v["TYPE"] != "PROPERTY") unset($arAgent[$k]); } foreach($arAgent as $k => $v) { if(!empty($arAgentInfo["ORDER_PROPS"][$k])) $arAgentInfo["ORDER_PROPS_VALUE"][$v["VALUE"]] = $arAgentInfo["ORDER_PROPS"][$k]; } if (IntVal($arAgentInfo["PROFILE_ID"]) > 0) { CSaleOrderUserProps::Update($arUProp["ID"], array("VERSION_1C" => $arAgentInfo["AGENT"]["VERSION"], "NAME" => $arAgentInfo["AGENT"]["AGENT_NAME"])); $dbUPV = CSaleOrderUserPropsValue::GetList(array(), array("USER_PROPS_ID" => $arAgentInfo["PROFILE_ID"])); while($arUPV = $dbUPV->Fetch()) { $arAgentInfo["PROFILE_PROPS_VALUE"][$arUPV["ORDER_PROPS_ID"]] = array("ID" => $arUPV["ID"], "VALUE" => $arUPV["VALUE"]); } } if(empty($this->arOrderProps[$arAgentInfo["PERSON_TYPE_ID"]])) { $dbOrderProperties = CSaleOrderProps::GetList( array("SORT" => "ASC"), array( "PERSON_TYPE_ID" => $arAgentInfo["PERSON_TYPE_ID"], "ACTIVE" => "Y", "UTIL" => "N", "USER_PROPS" => "Y", ), false, false, array("ID", "TYPE", "NAME", "CODE", "USER_PROPS", "SORT", "MULTIPLE") ); while ($arOrderProperties = $dbOrderProperties->Fetch()) { $this->arOrderProps[$arAgentInfo["PERSON_TYPE_ID"]][] = $arOrderProperties; } } foreach($this->arOrderProps[$arAgentInfo["PERSON_TYPE_ID"]] as $arOrderProperties) { $curVal = $arAgentInfo["ORDER_PROPS_VALUE"][$arOrderProperties["ID"]]; if (strlen($curVal) > 0) { if (IntVal($arAgentInfo["PROFILE_ID"]) <= 0) { $arFields = array( "NAME" => $arAgentInfo["AGENT"]["AGENT_NAME"], "USER_ID" => $arAgentInfo["USER_ID"], "PERSON_TYPE_ID" => $arAgentInfo["PERSON_TYPE_ID"], "XML_ID" => $arAgentInfo["AGENT"]["ID"], "VERSION_1C" => $arAgentInfo["AGENT"]["VERSION"], ); $arAgentInfo["PROFILE_ID"] = CSaleOrderUserProps::Add($arFields); } if(IntVal($arAgentInfo["PROFILE_ID"]) > 0) { $arFields = array( "USER_PROPS_ID" => $arAgentInfo["PROFILE_ID"], "ORDER_PROPS_ID" => $arOrderProperties["ID"], "NAME" => $arOrderProperties["NAME"], "VALUE" => $curVal ); if(empty($arAgentInfo["PROFILE_PROPS_VALUE"][$arOrderProperties["ID"]])) { CSaleOrderUserPropsValue::Add($arFields); } elseif($arAgentInfo["PROFILE_PROPS_VALUE"][$arOrderProperties["ID"]]["VALUE"] != $curVal) { CSaleOrderUserPropsValue::Update($arAgentInfo["PROFILE_PROPS_VALUE"][$arOrderProperties["ID"]]["ID"], $arFields); } } } } } else { $this->strError .= "\n".GetMessage("CC_BSC1_AGENT_PERSON_TYPE_PROBLEM", Array("#ID#" => $arAgentInfo["AGENT"]["ID"])); } } } else { $this->strError .= "\n".GetMessage("CC_BSC1_AGENT_NO_AGENT_ID"); } } }
$arAdditionalFields = array("DELIVERY_DOC_NUM" => strlen($DELIVERY_DOC_NUM) > 0 ? $DELIVERY_DOC_NUM : False, "DELIVERY_DOC_DATE" => strlen($DELIVERY_DOC_DATE) > 0 ? $DELIVERY_DOC_DATE : False); if (!CSaleOrder::DeliverOrder($arIDs[$i], $ALLOW_DELIVERY, 0, $arAdditionalFields)) { if ($ex = $APPLICATION->GetException()) { $errorMessage .= $ex->GetString(); } else { $errorMessage .= GetMessage("SOE_ERROR_DELIVERY_EDIT") . ". "; } } } } } if (StrLen($errorMessage) <= 0) { for ($i = 0; $i < count($arIDs); $i++) { if (IntVal($arIDs[$i]) > 0 && $bUserCanPayOrder && $arOrder["PAYED"] != $PAYED) { $arAdditionalFields = array("PAY_VOUCHER_NUM" => strlen($PAY_VOUCHER_NUM) > 0 ? $PAY_VOUCHER_NUM : False, "PAY_VOUCHER_DATE" => strlen($PAY_VOUCHER_DATE) > 0 ? $PAY_VOUCHER_DATE : False); if (!CSaleOrder::PayOrder($arIDs[$i], $PAYED, false, false, 0, $arAdditionalFields)) { if ($ex = $APPLICATION->GetException()) { $errorMessage .= $ex->GetString(); } else { $errorMessage .= GetMessage("SOE_ERROR_PAY_EDIT") . ". "; } } } } } if (strlen($errorMessage) <= 0) { $arOldBasketList = array(); $dbBasket = CSaleBasket::GetList(array("NAME" => "ASC"), array("ORDER_ID" => $ID), false, false, array("ID", "NAME", "CANCEL_CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY")); while ($arBasket = $dbBasket->Fetch()) { $arOldBasketList[IntVal($arBasket["ID"])] = $arBasket; }
else { $lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SOA_PERMS_PAY_GROUP")), $ID); } } else { $lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SOA_PERMS_PAY_GROUP_PAY")), $ID); } break; case "pay_n": if($arAffectedOrders[$ID]["PAYED"] == "Y") { if (CSaleOrder::CanUserChangeOrderFlag($ID, "PERM_PAYMENT", $arUserGroups)) { if (!CSaleOrder::PayOrder($ID, "N")) { if ($ex = $APPLICATION->GetException()) $lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SOA_ERROR_PAY_GROUP")).": ".$ex->GetString(), $ID); else $lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SOA_ERROR_PAY_GROUP")), $ID); } } else { $lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SOA_PERMS_PAY_GROUP")), $ID); } } else { $lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SOA_PERMS_PAY_GROUP_PAY_N")), $ID);
public function SetStatus($ID, $statusID, $statusParams = false, $options = array()) { global $USER; if (!CModule::IncludeModule('sale')) { return false; } $currentUserId = 0; if (isset($USER) && (get_class($USER) === 'CUser' || $USER instanceof CUser)) { $currentUserId = $USER->GetID(); } $result = true; if (!self::$INVOICE_STATUSES) { self::$INVOICE_STATUSES = CCrmStatus::GetStatus('INVOICE_STATUS'); } if (!is_array(self::$INVOICE_STATUSES) || count(self::$INVOICE_STATUSES) <= 2 || !array_key_exists('P', self::$INVOICE_STATUSES) || !array_key_exists('D', self::$INVOICE_STATUSES) || self::$INVOICE_STATUSES['P']['SORT'] >= self::$INVOICE_STATUSES['D']['SORT']) { $result = false; } if ($result) { $CSaleOrder = new CSaleOrder(); // get current state if (!($arOrder = CSaleOrder::GetByID($ID))) { $result = false; } if ($result) { $curPay = $arOrder['PAYED']; $curCancel = $arOrder['CANCELED']; $curMarked = $arOrder['MARKED']; $curStatusID = $arOrder['STATUS_ID']; $pay = $cancel = 'N'; $marked = isset($statusParams['REASON_MARKED']) || isset($statusParams['DATE_MARKED']) ? 'Y' : 'N'; if (self::$INVOICE_STATUSES[$statusID]['SORT'] >= self::$INVOICE_STATUSES['P']['SORT']) { $pay = 'Y'; } if (self::$INVOICE_STATUSES[$statusID]['SORT'] >= self::$INVOICE_STATUSES['D']['SORT']) { $pay = 'N'; $cancel = 'Y'; } if ($curPay != $pay) { $result = $CSaleOrder->PayOrder($ID, $pay, true, true, 0, array('NOT_CHANGE_STATUS' => 'Y')); } if ($result && $curCancel != $cancel) { $result = $CSaleOrder->CancelOrder($ID, $cancel); } if ($result && $marked === 'Y') { $result = $CSaleOrder->SetMark($ID, isset($statusParams['REASON_MARKED']) ? $statusParams['REASON_MARKED'] : '', $currentUserId); } if ($result) { $arUpdate = array(); if (isset($statusParams['DATE_MARKED'])) { $arUpdate['DATE_MARKED'] = $statusParams['DATE_MARKED']; } if ($pay === 'Y') { if (isset($statusParams['PAY_VOUCHER_NUM'])) { $arUpdate['PAY_VOUCHER_NUM'] = $statusParams['PAY_VOUCHER_NUM']; } if (isset($statusParams['PAY_VOUCHER_DATE'])) { $arUpdate['PAY_VOUCHER_DATE'] = $statusParams['PAY_VOUCHER_DATE']; } } if (count($arUpdate) > 0) { $result = self::Update($ID, $arUpdate); } unset($arUpdate); } if ($result && $curStatusID != $statusID) { $result = $CSaleOrder->StatusOrder($ID, $statusID) === $ID; } } } if ($result && is_array($options) && isset($options['SYNCHRONIZE_LIVE_FEED']) && $options['SYNCHRONIZE_LIVE_FEED']) { self::SynchronizeLiveFeedEvent($ID, array('PROCESS_PARENTS' => false, 'REFRESH_DATE' => true)); } return $result; }
if ($lmi_payee_purse != $IdM) { $err = 3; $err_text = 'ERR: НЕВЕРЕН ID МАГАЗИНА : ' . $lmi_payee_purse; } if ($lmi_prerequest == 1) { if ($err != 0) { echo $err_text; } else { echo 'YES'; } } else { $common_string = $lmi_payee_purse . $lmi_payment_amount . $lmi_payment_no . $lmi_mode . $lmi_sys_invs_no . $lmi_sys_trans_no . $lmi_sys_trans_date . $sk . $lmi_payer_purse . $lmi_payer_wm; $hash = ToUpper(md5($common_string)); if ($err == 0) { if ($hash == $lmi_hash) { $strPS_STATUS_DESCRIPTION = ""; $strPS_STATUS_DESCRIPTION .= "Идентификатор магазина - " . $lmi_payee_purse . "; "; $strPS_STATUS_DESCRIPTION .= "Внутренний номер платежа в системе Z-PAYMENT - " . $lmi_sys_invs_no . "; "; $strPS_STATUS_DESCRIPTION .= "Внутренний номер счета в системе Z-PAYMENT - " . $lmi_sys_trans_no . "; "; $strPS_STATUS_DESCRIPTION .= "дата платежа - " . $lmi_sys_trans_date . ""; $strPS_STATUS_MESSAGE = ""; $strPS_STATUS_MESSAGE .= "кошелек покупателя или его e-mail - " . $lmi_payer_purse . "; "; $arFields = array("PS_STATUS" => "Y", "PS_STATUS_CODE" => "-", "PS_STATUS_DESCRIPTION" => $strPS_STATUS_DESCRIPTION, "PS_STATUS_MESSAGE" => $strPS_STATUS_MESSAGE, "PS_SUM" => $lmi_payment_amount, "PS_CURRENCY" => $arOrder["CURRENCY"], "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))), "USER_ID" => $arOrder["USER_ID"]); // You can comment this code if you want PAYED flag not to be set automatically CSaleOrder::PayOrder($arOrder["ID"], "Y"); CSaleOrder::Update($arOrder["ID"], $arFields); } } } } require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php";
$arResult["ORDER_ID"] = CSaleOrder::DoSaveOrder($arOrderDat, $arFields, 0, $arResult["ERROR"]); $arResult["ORDER_ID"] = IntVal($arResult["ORDER_ID"]); if ($arResult["ORDER_ID"] > 0 && empty($arResult["ERROR"])) { $arOrder = CSaleOrder::GetByID($arResult["ORDER_ID"]); CSaleBasket::OrderBasket($arResult["ORDER_ID"], CSaleBasket::GetBasketUserID(), SITE_ID, false); $arResult["ACCOUNT_NUMBER"] = $arResult["ORDER_ID"] <= 0 ? $arResult["ORDER_ID"] : $arOrder["ACCOUNT_NUMBER"]; } $withdrawSum = 0.0; if (empty($arResult["ERROR"])) { if ($arResult["PAY_FROM_ACCOUNT"] == "Y" && $arUserResult["PAY_CURRENT_ACCOUNT"] == "Y" && ($arParams["ONLY_FULL_PAY_FROM_ACCOUNT"] == "Y" && DoubleVal($arResult["USER_ACCOUNT"]["CURRENT_BUDGET"]) >= DoubleVal($orderTotalSum) || $arParams["ONLY_FULL_PAY_FROM_ACCOUNT"] != "Y")) { $withdrawSum = CSaleUserAccount::Withdraw($USER->GetID(), $orderTotalSum, $arResult["BASE_LANG_CURRENCY"], $arResult["ORDER_ID"]); if ($withdrawSum > 0) { $arFields = array("SUM_PAID" => $withdrawSum, "USER_ID" => $USER->GetID()); CSaleOrder::Update($arResult["ORDER_ID"], $arFields); if ($withdrawSum == $orderTotalSum) { CSaleOrder::PayOrder($arResult["ORDER_ID"], "Y", False, False); } } } if ($arResult["HAVE_PREPAYMENT"]) { if ($psPreAction && $psPreAction->IsAction()) { $psPreAction->orderId = $arResult["ORDER_ID"]; $psPreAction->orderAmount = $orderTotalSum; $psPreAction->deliveryAmount = $arResult["DELIVERY_PRICE"]; $psPreAction->taxAmount = $arResult["TAX_PRICE"]; $orderData = array(); $dbBasketItems = CSaleBasket::GetList(array("ID" => "ASC"), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => $arResult["ORDER_ID"]), false, false, array("ID", "QUANTITY", "PRICE", "WEIGHT", "NAME", "CURRENCY", "PRODUCT_ID", "DETAIL_PAGE_URL")); while ($arItem = $dbBasketItems->Fetch()) { $orderData['BASKET_ITEMS'][] = $arItem; } $psPreAction->payOrder($orderData);
if (strlen($errorMessageTmp) <= 0) { $ORDER_ID = IntVal($ORDER_ID); $arOrder = CSaleOrder::GetByID($ORDER_ID); if (!$arOrder) $errorMessageTmp .= str_replace("#ID#", $ORDER_ID, GetMessage("SOD_NO_ORDER")).". "; } if (strlen($errorMessageTmp) <= 0) { if ($arOrder["PS_STATUS"] == "Y" && $arOrder["PAYED"] == "N") { if ($arOrder["CURRENCY"] == $arOrder["PS_CURRENCY"] && doubleval($arOrder["PRICE"]) == doubleval($arOrder["PS_SUM"])) { if (!CSaleOrder::PayOrder($arOrder["ID"], "Y", True, True)) { if ($ex = $APPLICATION->GetException()) $errorMessageTmp .= $ex->GetString(); else $errorMessageTmp .= str_replace("#ID#", $ORDER_ID, GetMessage("SOD_CANT_PAY")).". "; } } } } if ($errorMessageTmp != "") $errorMessage .= $errorMessageTmp; if (strlen($errorMessage) <= 0) {
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("Оплата заказа"); if (CModule::IncludeModule("sale")) { if ( $_REQUEST['wsb_tid'] ){ ?> Счет <?php echo $_REQUEST['wsb_order_num']; ?> оплачен. <br/> Код транзакции <?php echo $_REQUEST['wsb_tid']; ?> <br/> <br/> Информация об оплате в скором времени будет подтвеждена администратором. <br/> <br/> <a href="<?php echo SITE_DIR; ?> /personal">Перейти в линый кабинет</a> <? if (!CSaleOrder::PayOrder($_REQUEST['wsb_order_num'], "Y", True, True, 0, array("PAY_VOUCHER_NUM" => $_REQUEST['wsb_tid']))) { echo "Ошибка обновления информации о заказе."; } } else echo 'Не переданы параметры.'; } ?> <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
elseif($key == "PHONE") $arProp["VALUE"] = "8 495 2312121"; elseif($key == "ZIP") $arProp["VALUE"] = "101000"; elseif($key == "LOCATION") $arProp["VALUE"] = $location; elseif($key == "CITY") $arProp["VALUE"] = $shopLocation; $arData["PROPS"][] = $arProp; } $orderID = __MakeOrder(3, $arData); CSaleOrder::DeliverOrder($orderID, "Y"); CSaleOrder::PayOrder($orderID, "Y"); CSaleOrder::StatusOrder($orderID, "F"); $orderID = __MakeOrder(4, $arData); CSaleOrder::DeliverOrder($orderID, "Y"); CSaleOrder::PayOrder($orderID, "Y"); CSaleOrder::StatusOrder($orderID, "F"); $orderID = __MakeOrder(2, $arData); CSaleOrder::PayOrder($orderID, "Y"); CSaleOrder::StatusOrder($orderID, "P"); $orderID = __MakeOrder(1, $arData); $orderID = __MakeOrder(3, $arData); CSaleOrder::CancelOrder($orderID, "Y"); CAgent::RemoveAgent("CSaleProduct::RefreshProductList();", "sale"); CAgent::AddAgent("CSaleProduct::RefreshProductList();", "sale", "N", 60*60*24*4, "", "Y"); } } return true; ?>
if($response->getTrackingId() == $tracking_id) { $arOrder = CSaleOrder::GetByID($order_id); $message = array(); $message []= Loc::getMessage("SALE_BEGATEWAY_STATUS_MESSAGE_UID") . ' ' . $response->getUid(). ". " . Loc::getMessage("SALE_BEGATEWAY_STATUS_MESSAGE_TIME") . ' ' . $response->getResponse()->transaction->paid_at; if(isset($response->getResponse()->transaction->three_d_secure_verification->pa_status)) { $message[] = "3-D Secure: " .$response->getResponse()->transaction->three_d_secure_verification->pa_status; } $arFields = array( "PS_STATUS" => ($response->isSuccess() ? "Y" : "N"), "PS_STATUS_DESCRIPTION" => implode("\n",$message), "PS_SUM" => $money->getAmount(), "PS_CURRENCY" => $money->getCurrency(), "PS_RESPONSE_DATE" => new \Bitrix\Main\Type\DateTime(), "USER_ID" => $arOrder["USER_ID"] ); if (CSalePaySystemAction::GetParamValue("PAYED") != "Y" && $arFields["PS_STATUS"] == "Y" && $arOrder["PRICE"] == $money->getAmount()) { CSaleOrder::PayOrder($arOrder["ID"], "Y", True, True, 0, $arFields); CSaleOrder::StatusOrder($arOrder["ID"], "P"); } return true; } } return false;
$content .= fgets($fp, 128); } fclose($fp); if (strlen($content) > 0) { require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/xml.php"; $objXML = new CDataXML(); $objXML->LoadString($content); $arResult = $objXML->GetArray(); if (!empty($arResult)) { $method = $arResult["Envelope"]["#"]["Body"][0]["#"]["checkBillResponse"]; if (!empty($method)) { if ($arOrder = CSaleOrder::GetByID($orderID)) { $phone = $method[0]["#"]["user"][0]["#"]; $amount = $method[0]["#"]["amount"][0]["#"]; $date = $method[0]["#"]["date"][0]["#"]; $status = $method[0]["#"]["status"][0]["#"]; //$strPS_STATUS_DESCRIPTION = GetMessage("SALE_STATUS")." - ".$status." (".GetMessage("CLASS_STATUS_".$status).")"." ; "; $strPS_STATUS_DESCRIPTION = GetMessage("SALE_STATUS_PHONE") . " - " . $phone . "; "; $strPS_STATUS_DESCRIPTION .= GetMessage("SALE_STATUS_AMOUNT") . " - " . $amount . "; "; $strPS_STATUS_DESCRIPTION .= GetMessage("SALE_STATUS_DATE") . " - " . $date . "; "; $strPS_STATUS_MESSAGE = GetMessage("CLASS_STATUS_" . $status); $arFields = array("PS_STATUS" => $status == 60 ? "Y" : "N", "PS_STATUS_CODE" => $status, "PS_STATUS_DESCRIPTION" => $strPS_STATUS_DESCRIPTION, "PS_STATUS_MESSAGE" => $strPS_STATUS_MESSAGE, "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG)))); if ($status == 60 && DoubleVal($arOrder["PRICE"]) == DoubleVal($amount)) { CSaleOrder::PayOrder($orderID, "Y", true, true); } CSaleOrder::Update($orderID, $arFields); } } } } }
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?> <? CModule::IncludeModule('sale'); $ORDER_ID = $GLOBALS['ORDER_ID']; $resProp = CSaleOrderPropsValue::GetList(array(), array('ORDER_ID' => $ORDER_ID, 'CODE'=>CSalePaySystemAction::GetParamValue('ORDER_BANK')), false, false, array()); if ($arProp = $resProp->GetNext()) { $orderId = $arProp['VALUE']; $url = CSalePaySystemAction::GetParamValue('URL_API').'getOrderStatus.do?'; $json = file_get_contents( $url.'userName='******'LOGIN') ).'&password='******'PASS') ).'&orderId='.urlencode($orderId) ); $obj = json_decode($json); if($obj->{'errorCode'} == 0 && $obj->{'OrderStatus'} == 2) { // оплачено CSaleOrder::PayOrder($ORDER_ID, 'Y'); if (CSalePaySystemAction::GetParamValue('STATUS_PAY')) { CSaleOrder::Update($ORDER_ID, array('STATUS_ID'=>CSalePaySystemAction::GetParamValue('STATUS_PAY'))); } return true; } } return false;
function AutoPayOrder($ORDER_ID) { $ORDER_ID = (int)$ORDER_ID; if ($ORDER_ID <= 0) return false; $arOrder = CSaleOrder::GetByID($ORDER_ID); if (!$arOrder) return false; if ($arOrder["PS_STATUS"] != "Y") return false; if ($arOrder["PAYED"] != "N") return false; if ($arOrder["CURRENCY"] == $arOrder["PS_CURRENCY"] && DoubleVal($arOrder["PRICE"]) == DoubleVal($arOrder["PS_SUM"])) { if (CSaleOrder::PayOrder($arOrder["ID"], "Y", true, false)) return true; } return false; }
<? $GLOBALS['_____1282105777']= array(base64_decode(''.'SW5jbHVkZ'.'U1'.'vZHVsZ'.'U'.'xhbmdGaWxl'),base64_decode('SW'.'5jbH'.'VkZU1vZHVsZQ=='),base64_decode('QWR'.'kQXV0b2xvYWRD'.'b'.'GFz'.'c2'.'V'.'z'),base64_decode(''.'R2V0TGlzdA=='),base64_decode('R2V'.'0'.'TGlz'.'dA=='),base64_decode(''.'R'.'2V0TmV4dA=='),base64_decode('R2V0Q'.'n'.'lJRA'.'=='),base64_decode('R2'.'V'.'0'.'QnlJR'.'A='.'='),base64_decode('VGhyb3dF'.'eGN'.'lcHRp'.'b24='),base64_decode('R2V0'.'Qn'.'lJRA='.'='),base64_decode(''.'R'.'2V0'.'T3B0'.'aW'.'9uU3RyaW5n'),base64_decode('R2V0Q'.'nl'.'JRA=='),base64_decode('Rm'.'V0'.'Y2g='),base64_decode('S'.'W'.'5j'.'bHVkZU1vZ'.'HVsZ'.'Q=='),base64_decode('R2V'.'0TGl'.'zdA='.'='),base64_decode('RmV0Y2g='),base64_decode('R2'.'V0TGl'.'zdA=='),base64_decode('Rm'.'V0Y'.'2g='),base64_decode('SW5'.'jbH'.'VkZU1vZHVsZQ=='),base64_decode('R2'.'V0TGl'.'zdA=='),base64_decode('R2V0Tm'.'V4dA=='),base64_decode(''.'SW5jbHVkZU'.'1'.'vZHVsZQ='.'='),base64_decode(''.'R2V0TGlzdA'.'=='),base64_decode('R'.'mV'.'0Y2g'.'='),base64_decode('R2V0TGl'.'zdA=='),base64_decode('R2V0TmV4dA=='));?><? $GLOBALS['____22046643']= array(base64_decode(''.'ZGVm'.'aW5l'),base64_decode('ZGVmaW5l'),base64_decode('ZGVmaW5'.'l'),base64_decode(''.'Z'.'GVmaW'.'5l'),base64_decode(''.'c'.'3RybGV'.'u'),base64_decode('c'.'3RybGVu'),base64_decode(''.'Zml'.'sZV9'.'l'.'eGl'.'z'.'dH'.'M'.'='),base64_decode(''.'dW5zZXJ'.'pYWxp'.'emU='),base64_decode(''.'YXJyY'.'X'.'lfa'.'2V5X2V4aX'.'N0cw'.'=='),base64_decode('aXNfYXJyYXk='),base64_decode('YXJyYXlfa2V5'.'cw=='),base64_decode('YXJyY'.'XlfdW5p'.'cXVl'),base64_decode('YXJyYXlfZmlsdGVy'),base64_decode('YXJyY'.'XlfdW5pcXVl'),base64_decode('aX'.'NfYXJy'.'YXk'.'='),base64_decode(''.'a'.'W5fYXJyYXk='),base64_decode('ZXh'.'wbG9kZQ='.'='));?><? function ___235676882($_1524664495){static $_975833971= false; if($_975833971 == false) $_975833971=array('U0F'.'M'.'RV'.'9'.'ERUJVRw==','U0F'.'MRV9G'.'SUVMRF9UW'.'VBFUw==',''.'Q'.'0hFQ0'.'tCT1g'.'=','U'.'0FMR'.'V9UWVBF'.'X0'.'NIRUNLQk9Y',''.'VEVYVA==','U0FMR'.'V9UWVB'.'FX1R'.'FW'.'FQ=','U'.'0VMRUNU',''.'U0FMRV9UWVB'.'FX1NFTEV'.'DVA==','TV'.'VMVElTRUxF'.'Q1Q=','U0'.'FM'.'RV9'.'UW'.'VBFX0'.'1VTFRJU'.'0VMRUNU','VEVYVEF'.'S'.'R'.'UE=',''.'U0FM'.'RV9UWVBF'.'X1'.'R'.'FW'.'FR'.'BUkVB',''.'TE9DQVRJT04=','U0FMRV'.'9UW'.'VBFX0xPQ0FU'.'S'.'U9O','UkF'.'ESU8'.'=','U0FMRV'.'9UWV'.'BFX1JBRElP',''.'R'.'klM'.'RQ='.'=',''.'U0F'.'MRV'.'9UWVBFX0ZJTEU=','Y'.'3Vy'.'cmV'.'uY'.'3k=','U0'.'F'.'MR'.'V9Q'.'Uk9DX1JFQ19O'.'VU0'.'=',''.'U0'.'FM'.'RV'.'9QUk9DX1J'.'FQ19B'.'VF'.'RFTVBUUw==','U0'.'F'.'MR'.'V'.'9Q'.'U'.'k9DX1J'.'FQ19USU1F','U0FMRV'.'9QUk9'.'DX'.'1JFQ19GUkVRV'.'UVOQ1'.'k=','U0FMRV9SRVBPU'.'lRfT1dORVJfSUQ=',''.'c2'.'FsZQ==','Q'.'0F'.'DSEVE'.'X2Jfc2'.'FsZV9'.'v'.'cmRlcg==','SA'.'==','S'.'V9QRV'.'JJT0Rf'.'S'.'E9'.'VUg='.'=','R'.'A==','SV9Q'.'R'.'VJJ'.'T0RfR'.'EFZ','Vw==','SV9QRV'.'J'.'JT0R'.'fV0'.'VF'.'Sw==',''.'TQ==','SV9QRVJJ'.'T'.'0'.'R'.'fTU9OVEg'.'=','UQ='.'=',''.'S'.'V9QRVJJT'.'0Rf'.'UVVBUl'.'Q=',''.'Uw'.'==','SV9QRVJ'.'J'.'T0RfU0VNSVlF'.'QVI'.'=',''.'WQ==','SV9'.'Q'.'RVJJT0RfWUVB'.'Ug'.'==','U0FMRV9WQ'.'U'.'xVRV'.'9'.'QUk'.'VD'.'SVNJ'.'T04=','U0'.'FM'.'RV'.'9XRUl'.'HSFRfUFJ'.'FQ0lTSU9'.'O','QlhfU'.'0'.'F'.'MR'.'V'.'9N'.'RU5'.'VX0NBV'.'EFM'.'T0d'.'fQ0'.'xFQVI=','WQ'.'==','QVZB'.'SUxBQkxFX0'.'9S'.'REVSX'.'0ZJRUx'.'EUw==','SUQ=','Q09MVU1OX05'.'B'.'TUU=','SUQ=','TkFN'.'R'.'Q'.'==','U'.'0'.'lfT1JERV'.'JfSUQ=',''.'U0VMRUNU','SUQs'.'REFU'.'RV9JTl'.'NFUlQ=','Q1VTVE9N','WQ==','U09SVA'.'==','SUQ'.'=','TElE','Q0'.'9MVU1OX05BTUU'.'=','U0l'.'fU0lURQ'.'==','Tk'.'FNR'.'Q==','U0'.'lfU0lURQ==','U0VMRUNU','TElE','Q1V'.'T'.'VE9N','T'.'g'.'==','U09SVA==','TElE',''.'UEVSU09OX'.'1RZ'.'UEU'.'=',''.'Q09M'.'V'.'U'.'1OX05BT'.'UU=','U0lfUEFZRV'.'JfVFlQR'.'Q==','T'.'kFNRQ==',''.'U0lf'.'UE'.'FZRVJ'.'fVFlQRQ==','U'.'0VMRUNU','U'.'EVSU09O'.'X1RZUEVfSUQ=','Q1'.'VTVE9N','WQ==',''.'U09S'.'VA==','UEV'.'SU09OX1R'.'ZUEV'.'fSUQ=',''.'UE'.'FZR'.'UQ=',''.'Q'.'09MVU1OX'.'0'.'5'.'BTUU=',''.'U0lfUEFJRA'.'==','TkFNRQ==','U0lfUEFJRF9'.'PUkRF'.'Ug==','U0VMRUNU','UE'.'FZRUQsREFURV'.'9QQ'.'V'.'lFRCxFTVBfUEFZ'.'RUR'.'fS'.'UQ=','Q1VTVE9N','WQ==','U09S'.'VA==','UE'.'FZR'.'UQ=','UEFZX1ZP'.'VUNIRVJ'.'fTlV'.'N',''.'Q09MVU1OX'.'05BT'.'U'.'U=','U'.'0lf'.'Tk'.'9f'.'UFA=','Tk'.'FN'.'RQ='.'=','U0lfTk9fUFBfR'.'E9D',''.'U0VM'.'RUN'.'U','U'.'E'.'FZ'.'X1ZPVUNI'.'R'.'VJfTlVN','Q1VT'.'VE9N',''.'Tg'.'==','U09'.'S'.'VA'.'==',''.'UEFZX1'.'Z'.'PVUNIR'.'VJ'.'fTlV'.'N',''.'UEFZX1'.'ZPVUN'.'IR'.'VJfREFURQ==','Q09'.'MVU'.'1O'.'X05'.'BTUU=','U'.'0lfREFURV'.'9Q'.'UA='.'=','TkFNRQ==',''.'U0lfREFURV9'.'QUF9E'.'T0M=','U0VMRUNU','UEFZX1'.'Z'.'PVUNIR'.'VJ'.'fREFUR'.'Q'.'==','Q1VTVE'.'9N','T'.'g==',''.'U09SVA==','UEFZX1ZPV'.'UNIRVJfRE'.'FURQ='.'=','REVMSVZFUllf'.'RE9DX'.'05VTQ'.'='.'=','Q09M'.'VU1O'.'X0'.'5BTUU=','U0'.'lfREFURV9Q'.'UF9ERUxJ'.'VkVSWV'.'9ET0N'.'f'.'T'.'lVN','TkF'.'NRQ'.'==','U'.'0lfR'.'EFURV9QUF'.'9'.'E'.'T0'.'N'.'fRE'.'VMS'.'VZF'.'UllfRE9D'.'X05VTQ==','U0VMRUNU',''.'R'.'EVMSVZF'.'UllfRE'.'9'.'DX05VTQ'.'==','Q1VT'.'VE9N','Tg==',''.'U'.'09SVA==','R'.'E'.'VMSVZFUllfR'.'E9DX05VT'.'Q==','REVMSVZFUl'.'lfR'.'E9DX0'.'RBVEU'.'=','Q0'.'9MVU1OX05BTU'.'U=','U0lfRE'.'FU'.'RV'.'9QUF'.'9ERUxJVkVSWV9ET0N'.'f'.'REF'.'U'.'RQ==',''.'TkF'.'N'.'RQ==','U0'.'lfRE'.'FURV9'.'QUF9E'.'T0NfREVM'.'SVZFUllf'.'RE9DX0R'.'BVEU'.'=','U0VMRUNU',''.'REV'.'MSV'.'ZFU'.'llfRE9D'.'X0R'.'BVEU=',''.'Q1V'.'TV'.'E'.'9N','Tg='.'=','U'.'09SV'.'A'.'==','REVMSV'.'ZF'.'Ul'.'lfR'.'E9DX0'.'R'.'BV'.'EU=','Q0FO'.'Q0'.'VMRUQ=','Q09MV'.'U1OX05'.'BTUU'.'=','U0'.'lfQ'.'0FOQ0VMRUQ=','TkFNRQ==','U0'.'lf'.'Q0FO'.'Q0VMR'.'UR'.'fT'.'1JE',''.'U0VMR'.'UNU','Q0FOQ0VMRUQsREFURV9DQU5'.'DRUx'.'FR'.'CxFTVBfQ0F'.'OQ0'.'VMRURf'.'SU'.'Q=','Q1VTVE9N','W'.'Q='.'=','U'.'09S'.'VA='.'=',''.'Q'.'0FOQ0VM'.'RUQ'.'=','U1RBV'.'F'.'VT','Q0'.'9MV'.'U'.'1'.'OX05'.'B'.'T'.'UU=',''.'U0'.'lf'.'U1R'.'BVFVT','Tk'.'FNRQ'.'='.'=','U0lfU'.'1RBVFVTX09SR'.'A==','U0V'.'MR'.'UNU','U1RBVFVTX0lELERB'.'VEVf'.'U1RB'.'VF'.'VTLEV'.'NUF9T'.'VEFUV'.'VNfSUQ=','Q1VTVE9N','WQ==','U09SV'.'A==',''.'U1RBVFVTX0l'.'E','UFJ'.'JQ0VfR'.'EVMSVZFUlk=','Q09MVU1'.'OX05B'.'TUU=','U0'.'lfREVM'.'S'.'VZFUlk'.'=','TkFNRQ==','U0l'.'fR'.'EVMSV'.'Z'.'FUlk'.'=','U0'.'V'.'MRUNU','UFJ'.'JQ0Vf'.'REVMSVZF'.'Ulk'.'sQ'.'1VSUk'.'VOQ'.'1k=','Q'.'1VT'.'VE9N',''.'WQ==','U'.'09SVA==','U'.'FJJQ0'.'VfREVMSV'.'ZFUlk'.'=','QUxMT1'.'d'.'fREVM'.'SVZFUlk=','Q09MVU1'.'OX05BTUU=','U'.'0lfQU'.'xMT1dfREVM'.'SVZFUlk=','TkFNR'.'Q'.'==','U0'.'lfQUx'.'MT1dfREVMS'.'VZFUlk'.'x','U0VMRUN'.'U','QU'.'xMT1dfREVMS'.'VZFU'.'lks'.'REFU'.'RV9BTEx'.'P'.'V1'.'9E'.'RUx'.'J'.'VkV'.'S'.'WSxFT'.'VBfQUxMT'.'1dfREVMSVZ'.'FUl'.'lfSU'.'Q=','Q1VTVE9N','W'.'Q'.'==',''.'U09SVA==','Q'.'UxMT1dfRE'.'VMSV'.'Z'.'FUlk=','U'.'FJJQ'.'0'.'U'.'=','Q0'.'9M'.'V'.'U'.'1OX0'.'5'.'BTUU=','U0lfU1'.'V'.'N','TkFNR'.'Q='.'=','U0l'.'f'.'U1VN'.'X09SRA==','U0V'.'MRUNU','UFJJQ0Us'.'Q'.'1VSU'.'kVOQ1k=',''.'Q1'.'VTVE9N',''.'W'.'Q==',''.'U'.'09SVA==','U'.'F'.'JJQ'.'0U'.'=',''.'U'.'1VNX1BBSUQ=','Q09MVU1OX05BTU'.'U'.'=','U0'.'lfU1VNX1BBSU'.'Q=','Tk'.'FN'.'RQ==','U0lf'.'U1VNX1BBSUQx','U'.'0'.'VMR'.'UNU','U1V'.'NX1BBS'.'UQsQ1VSUkVOQ1k=','Q'.'1VTVE9N',''.'W'.'Q==','U0'.'9'.'SVA'.'==','U1VNX1B'.'BS'.'UQ=','VVNFUg='.'=','Q09M'.'VU1OX05BTUU'.'=',''.'U0lfQl'.'VZRV'.'I=','Tk'.'FNRQ==','U0lfQlVZRVI=','U0'.'V'.'MRU'.'N'.'U','VV'.'NFUl'.'9JRA==','Q'.'1VTVE9N','WQ==','U0'.'9S'.'VA'.'==','VVNF'.'U'.'l'.'9J'.'RA==','UEFZX'.'1NZU'.'1RFTQ==','Q'.'09MVU'.'1OX'.'0'.'5BTUU=','U'.'0'.'lfU'.'EFZ'.'X1NZUw==','T'.'kFNRQ==',''.'U0lfUE'.'FZX'.'1NZUw==','U0VMRUNU','U'.'EF'.'Z'.'X'.'1NZU'.'1RFTV9'.'J'.'RA='.'=','Q1VTVE9N','WQ==',''.'U0'.'9SV'.'A==',''.'U'.'EFZX'.'1'.'NZ'.'U1RFT'.'V9J'.'RA==',''.'RE'.'VMSVZFU'.'lk=','Q09MVU1'.'OX0'.'5BTU'.'U=','U'.'0lfREVMS'.'VZFUllfU1'.'lT','TkFNRQ==',''.'U0lfREVMSV'.'ZFUllfU'.'1lT','U0VMRUNU','REVM'.'SVZFUllfSUQ=','Q1VTVE9N',''.'WQ==',''.'U09SVA==',''.'REV'.'MSVZF'.'Ul'.'lfS'.'UQ=','REF'.'URV9VUER'.'BVEU=','Q0'.'9MV'.'U1OX0'.'5'.'BTUU=','U0lfREFURV'.'9VU'.'ER'.'BVEU'.'=','TkFNR'.'Q==','U0lfREFURV9V'.'UERBV'.'E'.'U'.'=','U0'.'VMRUNU',''.'REFUR'.'V9VU'.'ERBVEU=','Q1VTVE9N','Tg==','U09S'.'VA==','REF'.'U'.'RV9V'.'UE'.'RBVE'.'U=','UFNfU'.'1'.'R'.'B'.'V'.'FVT','Q09MVU1OX05B'.'TUU=','U0lf'.'UEFZTUVO'.'VF9QUw==','Tk'.'FNRQ==','U0lfUFNf'.'U1RBVF'.'VT','U0VM'.'RUN'.'U','UF'.'N'.'fU1RB'.'VFV'.'TLFBTX1JFU1BPTlNFX0RBVEU=','Q1VTV'.'E9'.'N','T'.'g==','U'.'09SVA==',''.'UFNfU1'.'RBVF'.'VT','UFNfU1V'.'N','Q09MVU1OX0'.'5B'.'TU'.'U=',''.'U'.'0lfU'.'FNf'.'U1VN','T'.'kFNRQ==',''.'U0lfUF'.'NfU1V'.'NMQ==','U'.'0VM'.'R'.'UNU','UFNfU1VNLFBTX0'.'NVUlJF'.'T'.'kN'.'Z',''.'Q1VTV'.'E'.'9N','W'.'Q==','U'.'09SVA==',''.'U'.'F'.'N'.'fU1VN',''.'VEFYX'.'1ZB'.'TFV'.'F','Q09MVU1OX0'.'5BTUU=','U0lfV'.'EFY','TkFNRQ==','U0lfVE'.'FYX'.'1NVTQ='.'=',''.'U'.'0VMR'.'UNU','VEFY'.'X1ZBTFVFLENVUl'.'JFTkN'.'Z','Q1V'.'T'.'VE9N','WQ==',''.'U09'.'S'.'VA'.'==','V'.'EF'.'YX'.'1ZBTFVF','Qk'.'FT'.'S'.'0V'.'U','Q'.'09MVU1OX05BTUU=','U'.'0lfSVRFTVM=','TkFNR'.'Q==','U0l'.'fSV'.'RFTVNfT1J'.'E','U0'.'VMRUN'.'U','',''.'Q1VTVE'.'9'.'N','WQ==','U0'.'9S'.'VA'.'==','','c2F'.'sZ'.'Q'.'==','Q1N'.'h'.'bGVEZWxpdmV'.'yeQ==','L'.'2Rlb'.'Gl2ZXJ'.'5L'.'nBo'.'cA==','Q1Nhb'.'G'.'VEZWxpdmV'.'y'.'eU'.'hh'.'bmRsZXI=',''.'L2Rlb'.'Gl'.'2ZXJ5X'.'2hh'.'bmRsZXIuc'.'Ghw',''.'Q1'.'NhbGVEZWxpdmVyeUhl'.'bH'.'Blcg'.'==',''.'Z'.'2VuZXJhbC9kZ'.'Wxp'.'d'.'mVyeV9oZWxwZX'.'IucG'.'hw',''.'Q'.'1N'.'hbGVEZW'.'xpdm'.'VyeT'.'JQ'.'YX'.'lTeX'.'N'.'0ZW0=','Z2V'.'u'.'ZX'.'JhbC9k'.'ZWxp'.'dmVyeV8'.'y'.'X'.'3'.'BheV9zeXN0ZW0u'.'cGh'.'w','Q'.'1NhbGVMb'.'2NhdGlv'.'bg==','L'.'2xvY2F0aW9uLnBocA'.'==','Q'.'1NhbGV'.'Mb2Nhd'.'G'.'lv'.'bkdyb3'.'V'.'w',''.'L2x'.'vY2F0aW'.'9uX2'.'dyb3V'.'wLn'.'BocA==',''.'Q1N'.'hbGVCYXNr'.'ZX'.'Q'.'=','L2Jh'.'c2tld'.'C5wa'.'HA=','Q1N'.'hb'.'GVCY'.'XNrZXRIZWxwZ'.'XI=',''.'Z2'.'VuZXJ'.'hb'.'C9iY'.'XNrZXR'.'faGVscGVyLn'.'BocA==','Q1N'.'hbGVVc2Vy','L2Jhc'.'2tldC5'.'waHA=','Q1'.'Nhb'.'GVPcmRlcg'.'==','L29yZGVyLnBoc'.'A==','Q1N'.'hbGVPcmRlclB'.'yb'.'3Bz','L2'.'9yZ'.'G'.'VyX3Byb'.'3BzLnBocA==',''.'Q1NhbGVPc'.'mRlclB'.'yb3Bz'.'R3'.'J'.'vdXA=','L2'.'9yZGV'.'y'.'X3Byb3Bz'.'X2dyb3VwLn'.'Boc'.'A='.'=',''.'Q1N'.'hbGVPc'.'m'.'RlclByb3BzVmF'.'sdW'.'U'.'=','L'.'29'.'yZG'.'V'.'yX'.'3Byb3BzX3ZhbHVl'.'cy5waHA'.'=','Q1NhbGVP'.'cmRlclByb3Bz'.'VmFyaWFu'.'dA='.'=','L'.'2'.'9'.'yZGVyX'.'3Byb3B'.'zX'.'3'.'Zhc'.'ml'.'h'.'bnQ'.'ucGhw','Q1NhbGVPcmRlcl'.'VzZ'.'X'.'JQ'.'cm9'.'wcw==','L29y'.'ZG'.'VyX3VzZXJfcHJv'.'cHMucGhw','Q1NhbGVPcmRl'.'cl'.'Vz'.'ZX'.'J'.'Qcm9wc1Zh'.'b'.'HVl','L29yZGVyX3VzZX'.'J'.'fcHJ'.'vcHNfdmFsdW'.'UucG'.'h'.'w',''.'Q1NhbGVPcm'.'R'.'lclRheA==','L29'.'yZG'.'Vy'.'X3Rhe'.'C5waHA=','Q1'.'NhbGVP'.'c'.'mRl'.'ckh'.'lb'.'H'.'Blcg==','Z2VuZX'.'Jh'.'b'.'C9'.'vc'.'mRlcl'.'9oZ'.'Wxw'.'ZX'.'IucGhw','Q1N'.'h'.'bGVQYX'.'l'.'TeXN0ZW0=','L3Bh'.'eV9zeX'.'N0'.'ZW0u'.'cGhw',''.'Q'.'1N'.'hbG'.'VQYX'.'lTeXN'.'0ZW1BY3'.'Rpb24=','L3Bhe'.'V9'.'zeXN0ZW1fYWN0'.'aW'.'9uLn'.'B'.'o'.'c'.'A'.'==',''.'Q'.'1N'.'hb'.'GVQYXlTeXN0ZW1zSGVs'.'cG'.'Vy','Z2VuZ'.'XJhbC9wYXlfc3lzdGVtX2hlb'.'HBlc'.'i5wa'.'HA=','Q1NhbG'.'V'.'QYXlTeXN0ZW1'.'U'.'YXJpZg'.'==','Z2VuZXJh'.'bC'.'9'.'wYXlfc3l'.'z'.'dG'.'VtX3'.'Rhc'.'m'.'lm'.'LnBoc'.'A==','Q'.'1Nhb'.'GVUYXg'.'=','L3RheC5waHA=','Q1'.'NhbGV'.'UY'.'X'.'hSYXRl','L'.'3Rhe'.'F9y'.'YXRl'.'Ln'.'BocA==',''.'Q1'.'NhbGVQZ'.'XJ'.'zb25UeXBl','L3BlcnNvbl9'.'0eXBlLnBocA==','Q1N'.'hbGVE'.'aXN'.'jb3Vu'.'d'.'A='.'=','L2R'.'p'.'c2NvdW50LnB'.'oc'.'A='.'=','Q1Nh'.'bGV'.'Vc2'.'VyQWNjb3'.'Vu'.'dA==',''.'L3VzZXIucGhw',''.'Q'.'1Nhb'.'GVV'.'c'.'2VyVHJhbnNhY'.'3'.'Q=','L3Vz'.'ZXJfdHJhbnNhY3'.'QucGh'.'w','Q1Nh'.'b'.'GVVc2VyQ'.'2FyZHM'.'=','L3VzZXJfY2F'.'yZHMucGhw','Q'.'1Nh'.'bGVSZWN1cnJpbmc=','L'.'3'.'JlY3VycmluZy5w'.'aHA=','Q'.'1NhbG'.'VT'.'dGF0d'.'XM=','L3'.'N'.'0'.'YXR1cy5waHA=',''.'Q1'.'Nh'.'bGVM'.'Y'.'W5n','L3'.'NldH'.'RpbmdzLnBocA==','Q1NhbGVHcm91c'.'EFjY2Vzc1R'.'vU2l0Z'.'Q'.'==','L3NldHRpb'.'mdz'.'L'.'n'.'Boc'.'A==','Q1Nh'.'bGVHcm91cE'.'Fj'.'Y2'.'Vzc1RvRmx'.'h'.'Z'.'w==','L3'.'NldHRpbmdzLnBocA==','Q1NhbGVBd'.'XhpbGlh'.'c'.'nk=','L2F1eGlsaWFyeS5w'.'aHA=','Q1Nhb'.'GVB'.'ZmZpbGl'.'hdG'.'U=','L2FmZmlsaW'.'F0ZS5wa'.'H'.'A=','Q1NhbGVBZmZpb'.'GlhdGVQ'.'bGF'.'u','L2FmZmlsaW'.'F0'.'ZV9'.'wbGFuL'.'nBocA'.'==','Q1'.'NhbGVBZmZpbGlhdGV'.'QbGFuU2Vjd'.'Glvbg'.'==','L2FmZmlsaWF0ZV'.'9wbGFuX3Nl'.'Y3'.'Rp'.'b24uc'.'Ghw','Q1'.'NhbG'.'VBZm'.'ZpbG'.'lhdGVUaWVy','L2Fm'.'Z'.'m'.'lsa'.'WF'.'0ZV90aW'.'VyLnB'.'ocA==',''.'Q1'.'N'.'hbGVBZm'.'ZpbGlh'.'dGV'.'UcmF'.'u'.'c2FjdA==','L2FmZmlsaWF'.'0'.'Z'.'V9'.'0c'.'mF'.'uc2'.'FjdC5wa'.'HA=','Q1N'.'hbGVF'.'eHBvcn'.'Q=',''.'L2V4c'.'G'.'9ydC5waHA=','Q1NhbGVPcmRl'.'ckxvYWRlcg==','Z2'.'VuZX'.'Jhb'.'C9vcmRlcl9sb2FkZ'.'XIucGhw',''.'Q1'.'Nhb'.'GVNZWFz'.'d'.'X'.'Jl','Z2VuZXJhbC9tZ'.'WFzd'.'XJlbWV'.'udC5'.'waHA=','Q1N'.'hbGVQ'.'cm9k'.'d'.'WN0','L3'.'Byb'.'2R1'.'Y3Q'.'u'.'cGhw','Q1NhbGVW'.'aWV3Z'.'WRQcm9kdWN0','L3Byb'.'2R1'.'Y3QucGhw','Q1NhbGVIZWxwZX'.'I=','Z2VuZXJhbC9oZWxwZXIuc'.'Ghw','Q1NhbGVNb2JpbGV'.'Pc'.'mRlc'.'l'.'V0a'.'Wxz',''.'Z'.'2VuZ'.'XJhbC9tb2Jp'.'bGVfb'.'3JkZ'.'XIu'.'cGhw','Q1NhbGVNb2'.'JpbGVPcmRlclB1bG'.'w=',''.'Z2VuZXJ'.'hbC9tb2JpbGVfb3J'.'kZXIucG'.'hw','Q'.'1Nh'.'bGVNb2JpbGVPcmRlcl'.'B1'.'c2g=','Z'.'2'.'V'.'uZXJhbC9'.'tb2J'.'pbGVfb3'.'J'.'k'.'ZXIucGhw','Q1NhbGVNb2JpbG'.'VPcmRlckZ'.'pbHRl'.'cg='.'=','Z2VuZXJhb'.'C'.'9tb2JpbGVfb'.'3JkZXIuc'.'Ghw','Q0J'.'hc2VTY'.'W'.'xlUmVwb'.'3'.'J0SGVscG'.'Vy',''.'Z'.'2'.'VuZX'.'Jh'.'bC9z'.'Y'.'Wx'.'lX3'.'JlcG9y'.'d'.'F9oZ'.'WxwZXIuc'.'Ghw','Q1NhbGVSZXBvcn'.'RTYWxlT3JkZXJIZWxwZXI=','Z2VuZXJhbC'.'9zYWxlX3Jlc'.'G9y'.'dF9oZWxw'.'Z'.'X'.'Iuc'.'Ghw','Q1Nhb'.'GVSZX'.'Bvc'.'nR'.'Vc2Vy'.'SGVsc'.'G'.'Vy','Z2Vu'.'ZXJ'.'hbC'.'9zYWxl'.'X3JlcG9'.'ydF'.'9'.'oZW'.'xwZXIucGh'.'w','Q1Nhb'.'GVS'.'ZXBvcnRTYWx'.'lRnVzZXJIZW'.'xwZX'.'I=','Z2VuZXJhb'.'C9zYWxlX3'.'Jl'.'cG9ydF9o'.'ZWx'.'w'.'ZXIucGhw','SUJYU2FsZVB'.'yb'.'2R1'.'Y3'.'RQcm92'.'aWRlcg==','Z'.'2VuZXJhbC9wcm9kdWN0X3Byb3ZpZ'.'GVy'.'LnBo'.'cA==','Q1'.'N'.'hbGV'.'Td'.'G9yZUJhcm'.'N'.'vZGU'.'=','L3N0'.'b'.'3J'.'lX'.'2Jhc'.'mNvZGUucGh'.'w',''.'Q1N'.'hbGVPcmRl'.'ckNo'.'Y'.'W5nZ'.'Q'.'='.'=','L'.'29yZGVyX2'.'No'.'YW5nZS5waHA=','Q1NhbG'.'VPcmRlc'.'kN'.'oY'.'W5nZUZvcm1hdA==','Z'.'2Vu'.'ZXJhbC9'.'v'.'c'.'mRlcl9ja'.'GFu'.'Z2UucG'.'hw','Qml0'.'cml4XFNhbGVcT3'.'JkZX'.'JUYWJsZQ==','bGl'.'iL29yZG'.'V'.'yL'.'nBocA==','Q'.'ml0cml4X'.'FN'.'h'.'bGVc'.'Q'.'mFza2'.'V0'.'VGF'.'i'.'bGU'.'=','bG'.'li'.'L2'.'Jhc'.'2'.'tldC5waHA'.'=','Qm'.'l'.'0c'.'ml4XFNhbGVcRnVzZX'.'JU'.'YW'.'JsZ'.'Q==','b'.'GliL2Z1'.'c'.'2'.'V'.'y'.'L'.'nBo'.'cA='.'=','Qml0cm'.'l4XFNh'.'bGVcU3RhdHV'.'zTGFuZ1RhYmxl','bGliL'.'3'.'N0YXR1c'.'2'.'xhbmcu'.'cGhw','Q'.'ml0cml4XFN'.'h'.'bGV'.'cUGF'.'5U3lzdG'.'VtVGFibGU=','bG'.'liL'.'3BheXN5c'.'3RlbS5w'.'aHA=','Q'.'ml0cml'.'4'.'XFN'.'hb'.'GVcR'.'G'.'Vsa'.'XZ'.'lcnlUYWJ'.'sZQ==','bGl'.'iL2Rl'.'bGl2'.'ZXJ'.'5LnBo'.'cA='.'=','Q'.'ml'.'0cml4XFNhbGVcRGVsa'.'XZlcnl'.'IY'.'W'.'5kbG'.'VyV'.'GFi'.'bGU=','b'.'GliL'.'2Rl'.'bG'.'l2ZXJ5a'.'GFuZGxlc'.'i5w'.'a'.'H'.'A=','Q'.'ml0cm'.'l4'.'XF'.'NhbGV'.'cU'.'GV'.'yc'.'2'.'9uVHlwZ'.'VR'.'hY'.'m'.'x'.'l',''.'bGl'.'iL3Bl'.'cnN'.'v'.'bn'.'R5cG'.'UucG'.'hw','XEJp'.'dHJpe'.'FxTYW'.'x'.'lXE9y'.'Z'.'GVyVG'.'FibGU=','bGli'.'L29'.'yZGV'.'y'.'LnBo'.'cA==','XEJ'.'p'.'dHJpeFxTYWxlXE'.'Jh'.'c2tldFRhY'.'mxl','bGliL2Jh'.'c2'.'tld'.'C'.'5wa'.'HA'.'=','X'.'EJpdHJpe'.'F'.'xTYWxlXE'.'Z1c2VyVGF'.'ib'.'GU'.'=','bGliL'.'2Z1c2Vy'.'Ln'.'Boc'.'A==','X'.'EJpdHJpeFx'.'TYWxlX'.'FN'.'0YXR1c0'.'x'.'h'.'bmd'.'UYWJs'.'ZQ==','b'.'GliL3N0YXR1c2xh'.'bm'.'cucGh'.'w','X'.'EJpdHJ'.'pe'.'FxTYWx'.'lXFBh'.'eVN5c3RlbVRh'.'Ymxl',''.'bGliL'.'3BheXN5c'.'3RlbS'.'5w'.'aHA=','X'.'E'.'Jp'.'dH'.'Jp'.'eFx'.'TYW'.'xlXERlbGl2ZXJ'.'5VGFibGU=','bGliL2RlbGl'.'2Z'.'XJ5LnB'.'oc'.'A='.'=','XEJpdHJpe'.'FxTYWxlX'.'ERlbGl2ZXJ5S'.'GFuZG'.'xlc'.'lRhYmxl','bGliL2Rl'.'bGl'.'2'.'ZXJ'.'5aGF'.'uZGxlci5w'.'aH'.'A=','XEJ'.'pdH'.'JpeFxTY'.'Wx'.'l'.'XF'.'Bl'.'cn'.'N'.'vblR5'.'cG'.'VUY'.'WJsZQ==','bGliL'.'3Blc'.'n'.'NvbnR'.'5c'.'GUucGhw','Q1NhbGV'.'SZXB'.'vcnRTY'.'Wxl'.'R'.'2'.'9vZHNIZWxw'.'ZXI=','Z2VuZXJhbC'.'9zYWxlX3JlcG9'.'y'.'d'.'F9o'.'Z'.'WxwZ'.'XIucGh'.'w','Q1Nh'.'bGV'.'SZ'.'XBv'.'cnRTYW'.'xlUH'.'JvZHVjdEhlbHBlc'.'g==','Z'.'2VuZXJhbC9zYW'.'xlX3'.'JlcG9y'.'dF'.'9oZWx'.'wZXI'.'uc'.'Gh'.'w','Q'.'ml0cm'.'l4XFNhbGVcUHJvZH'.'V'.'jd'.'FRhYmxl','b'.'Gl'.'iL'.'3'.'Byb2R1'.'Y3QucGhw','Qm'.'l0cml4X'.'FNh'.'bGVcR'.'29v'.'ZHNTZWN0aW9u'.'VGFib'.'GU'.'=','bGli'.'L2'.'dv'.'b2R'.'zc2VjdGlvbi5w'.'aHA'.'=','Qml0c'.'m'.'l'.'4X'.'FNhbGVc'.'U2V'.'j'.'dGl'.'vblR'.'hYmxl','bG'.'l'.'iL'.'3Nl'.'Y3Rpb24'.'ucGh'.'w','Qml0'.'cm'.'l4X'.'FN'.'h'.'bGVc'.'U3Rvcm'.'VQc'.'m9k'.'d'.'W'.'N0'.'VGF'.'ibG'.'U=','bGliL3N0b3J'.'lcHJvZHVj'.'dC5waH'.'A=',''.'XEJpdHJpeFxTYWxlXFByb2R1Y3'.'RUYWJsZ'.'Q==','bGliL3'.'By'.'b2R1Y'.'3QucGhw','XE'.'JpdH'.'Jpe'.'FxTYWxlXEdvb2R'.'zU2VjdGl'.'vblRhYmxl','bGl'.'iL2'.'d'.'vb2Rzc2Vj'.'dGlvbi5'.'waHA'.'=','XE'.'JpdHJpeFxTY'.'Wx'.'l'.'XF'.'N'.'lY3Rpb25'.'UYWJsZQ==','bGliL'.'3N'.'lY3Rpb24u'.'cGhw','XEJpdHJpeFxTYWxlXFN0'.'b3JlUHJvZHVjdF'.'Rh'.'Y'.'mxl','bGliL3'.'N0'.'b'.'3'.'JlcHJv'.'ZH'.'VjdC5waHA=',''.'XEJpdHJpeFxTYWxlXFNhbGVz'.'Wm'.'9uZ'.'Q==','b'.'GliL3NhbGVzem9'.'uZS5w'.'aH'.'A=',''.'Qml0cml4XFNh'.'bG'.'Vc'.'RGV'.'saXZlcnlcT'.'3Jk'.'ZXJEZWxpdmVyeVRh'.'Y'.'mxl','bGl'.'iL2R'.'lbG'.'l2Z'.'XJ5L'.'29y'.'ZG'.'VyZGVs'.'aXZlcnkucGhw','Qml'.'0c'.'ml4'.'XFN'.'hb'.'GVc'.'UH'.'Jv'.'ZHV'.'jd'.'DJ'.'Qc'.'m'.'9kd'.'WN0VG'.'Fi'.'b'.'GU=','bGl'.'iL3'.'Byb'.'2R1Y3QycHJ'.'vZHVjd'.'C5'.'waHA=','Qml'.'0'.'cml4'.'XFNhbG'.'V'.'cT3JkZXJQcm9'.'jZ'.'XNzaW'.'5'.'nVGFibG'.'U=','b'.'GliL29yZGVyc'.'HJvY2'.'Vzc'.'2lu'.'Z'.'y5waHA=','Q1NhbGVCYXNrZ'.'XRGaW'.'x0ZXI=','Z2VuZXJhbC9zYWxlX'.'2N'.'vbmQ'.'ucGhw','Q1Nh'.'b'.'GVD'.'b25kQ3'.'Ry'.'b'.'Edyb'.'3'.'Vw','Z2VuZX'.'Jh'.'bC9'.'zYWx'.'l'.'X2N'.'vbmQucGhw','Q1NhbG'.'VDb2'.'5k'.'Q3'.'Ry'.'bEJhc2'.'tl'.'dE'.'dy'.'b3Vw',''.'Z'.'2VuZ'.'XJhbC'.'9z'.'Y'.'Wx'.'l'.'X2NvbmQucGhw','Q1'.'Nhb'.'GVDb25kQ3RybEJhc2tld'.'EZ'.'pZ'.'Wxkcw==',''.'Z'.'2V'.'uZXJhbC9zYWxlX2'.'NvbmQucGhw','Q1Nhb'.'GVDb25kQ3'.'RybEJhc2tld'.'FByb3Bz','Z2V'.'uZXJhbC9zY'.'WxlX2NvbmQ'.'ucGh'.'w','Q1Nh'.'bGV'.'Db'.'25'.'k'.'Q3'.'Ry'.'bE9yZ'.'GVyRmllbGRz','Z2Vu'.'Z'.'XJ'.'hbC'.'9zYW'.'xlX2'.'Nvb'.'mQu'.'cG'.'hw','Q1N'.'hbGVDb'.'25'.'kQ'.'3RybENvb'.'W1vb'.'g==',''.'Z'.'2V'.'uZXJhbC9zYWxlX2Nvb'.'mQucGhw','Q1NhbGVDb25kVHJlZQ'.'==','Z2VuZXJ'.'hbC9zYWxlX2N'.'vbm'.'Q'.'ucGhw','Q1Nh'.'b'.'GV'.'EaX'.'Njb3V'.'udEFjdGlvbkFwc'.'Gx5',''.'Z2VuZXJhb'.'C9zYW'.'xlX2'.'FjdC5'.'waHA=','Q1NhbG'.'VBY3Rpb'.'25Dd'.'HJs'.'R3'.'JvdX'.'A=','Z2VuZ'.'X'.'JhbC'.'9zYWx'.'lX2'.'FjdC5waHA'.'=','Q1NhbGVBY'.'3Rpb25DdH'.'J'.'sRGVs'.'aX'.'Zlc'.'nk=','Z2V'.'uZXJhb'.'C9z'.'YWxlX2Fj'.'dC5w'.'aHA=','Q1'.'NhbGVBY'.'3Rpb25DdHJsQmFza2V0R3JvdXA=','Z'.'2VuZXJhbC9zYWxl'.'X2F'.'j'.'d'.'C5waHA'.'=','Q1N'.'hb'.'GVBY3Rpb25DdHJsU3'.'ViR3JvdXA=','Z2'.'VuZXJhbC9z'.'YWxlX'.'2F'.'jdC'.'5'.'waHA=','Q1Nh'.'bGV'.'BY3'.'Rpb25Db25kQ'.'3Ry'.'bEJhc'.'2tldEZp'.'ZWxkcw'.'==','Z2Vu'.'ZXJhb'.'C9zYW'.'xl'.'X'.'2Fj'.'dC'.'5'.'waHA=','Q1NhbGVBY3Rpb25'.'UcmVl','Z2VuZXJh'.'bC9z'.'YWxlX2F'.'jd'.'C5waHA=','Q1NhbGV'.'EaXNj'.'b3Vud'.'ENvbnZlcnQ=','Z2V'.'u'.'ZXJ'.'hbC'.'9kaXN'.'jb3VudF9jb252ZXJ'.'0Ln'.'Bo'.'cA==','Q1'.'N'.'hbGVQZGY=','Z'.'2VuZXJhbC9wZGYucGh'.'w','Q1'.'NhbGVZTUh'.'hbmRsZXI=','Z2Vu'.'ZXJhbC9'.'5bV9oYW'.'5'.'kb'.'GVyLn'.'B'.'ocA==','Q'.'ml0c'.'ml4XFNhbGVcVHJhZG'.'luZ1BsYXR'.'m'.'b3JtV'.'GFibGU=','bGliL3Ry'.'YW'.'R'.'p'.'bmdwbGF'.'0'.'Z'.'m9ybS5waHA=','Q1NhbGVZTUx'.'vY2F0aW9'.'u','Z2'.'VuZX'.'Jh'.'bC9'.'5bV'.'9sb2Nhd'.'G'.'lvbi5waHA'.'=',''.'T'.'kFNRQ'.'==',''.'QVND','Rl'.'V'.'TRVJfSUQ=','TEl'.'E','T'.'1'.'JERVJfSUQ=','T'.'l'.'VM'.'TA'.'==','T'.'k'.'FNRQ==',''.'Q'.'VND','RlVT'.'RVJfSUQ=','TElE',''.'T1JERVJf'.'SUQ=','TlV'.'MTA='.'=','Q0FM'.'TEJBQ0tfRlVOQw'.'='.'=','UFJPRFVDVF'.'9Q'.'Uk9'.'WSURFUl'.'9'.'DT'.'EFTUw==','SU'.'Q=','Q'.'0FMTEJBQ0'.'tfRlVOQw==','TU9EVUxF','UF'.'J'.'PRF'.'VDV'.'F9JRA='.'=','UV'.'VB'.'TlRJ'.'VFk'.'=','UFJPRF'.'V'.'DVF9QUk9WSURFUl9DTEF'.'TUw='.'=','S'.'UQ=','UFNfU1RBV'.'FVT','WQ==','UEFZ'.'RUQ'.'=','Tg'.'==','Q1'.'VSU'.'k'.'VOQ1'.'k=','UFNfQ1VSUkV'.'OQ1k=','UFJJQ0U=','UFNf'.'U1VN','SUQ=','W'.'Q==','QVBQTElDQVRJT0'.'4'.'=','U0FMRV'.'9'.'J'.'TkN'.'MVU'.'RFX0NVUl'.'JFTkNZ',''.'U0FMRV9ERVBFTkR'.'FU19DV'.'VJSRU5DW'.'Q==','RE'.'9DVU1'.'F'.'TlRfUk9PV'.'A==','L2Jp'.'dHJpeC9t'.'b2R1'.'b'.'G'.'V'.'zL'.'3NhbGUvcnUvaW5jb'.'HVkZS5w'.'a'.'HA=','RE9DV'.'U1FTlRfU'.'k9PVA==','L2JpdHJ'.'p'.'e'.'C9tb'.'2R'.'1bGVzL3'.'NhbGU'.'vcn'.'UvaW5jbH'.'VkZS5waHA=','TEl'.'E',''.'c2F'.'sZQ'.'==','cG'.'F5X2Ftb3VudA==','YTo0OntpOjE'.'7YT'.'oyO'.'ntzO'.'jY6I'.'kFNT1VOVC'.'I'.'7'.'cz'.'oyOiIx'.'MCI'.'7'.'czo4OiJDVVJSRU5DWSI7czozOiJFVVIiO31p'.'OjI7YToy'.'OntzOjY'.'6IkFNT1'.'VOVC'.'I7czoyOiIyM'.'CI'.'7'.'c'.'zo4OiJDVVJSRU'.'5DWSI7c'.'zo'.'zOiJFV'.'V'.'Ii'.'O31p'.'O'.'jM7YToyOn'.'tzOjY6'.'IkFN'.'T1VOVCI7cz'.'oy'.'OiIzMC'.'I7c'.'zo4'.'OiJDVVJ'.'S'.'R'.'U5DWSI7czozOiJFVVIiO31pOjQ'.'7YToyOntzOj'.'Y6IkFNT'.'1'.'VO'.'VCI7c'.'zoy'.'OiI0MCI7czo4OiJD'.'VVJSRU5DWSI7c'.'z'.'oz'.'OiJFVVIi'.'O319','QU1PVU'.'5U','Q1VSUkV'.'OQ1k=',''.'Q1VS'.'UkVO'.'Q1k'.'=','QU'.'1PV'.'U5U','Q'.'1'.'VSUkV'.'OQ'.'1k=','TUFOV'.'UFM','UGF5bWVudCB0'.'byB1c2VyI'.'GFjY291bnQ'.'=','','TkFNRQ='.'=','TkFNRQ='.'=','TEFTVF9OQU1'.'F','TE'.'FTV'.'F9OQU1F',''.'U0VDT'.'05EX05BT'.'UU=','U'.'0V'.'DT'.'05EX'.'0'.'5B'.'TUU'.'=','TE'.'9HSU'.'4=','TE'.'9HSU4'.'=','W'.'zxhIGhyZ'.'WY9Ii9ia'.'XRyaX'.'gvYWRtaW4'.'vdXNlc'.'l9'.'l'.'ZGl'.'0L'.'nBocD9JRD0=',''.'Jmxhb'.'mc9','Ij4=','PC9hPl'.'0g',''.'U2FsZ'.'U'.'FjY291bnR'.'z','PG'.'Eg'.'aH'.'JlZ'.'j0iL2JpdHJpeC9'.'hZG'.'1pbi9zYWx'.'l'.'X2'.'J1eWVyc1'.'9wcm9maWxl'.'L'.'nBocD9'.'VU0VSX'.'0'.'lEPQ==','Jm'.'xhbm'.'c'.'9',''.'I'.'j'.'4=','PGE'.'gaH'.'Jl'.'Z'.'j0iL2JpdHJp'.'eC9hZG'.'1pbi91c2Vy'.'X2Vk'.'aXQucG'.'hw'.'P'.'0lE'.'PQ==','Jmxhb'.'mc9','Ij4=','P'.'C'.'9hPg==',''.'Y2'.'F0YWxvZw='.'=','U'.'FJ'.'PR'.'F'.'VDVF9JRA==','T'.'UVB'.'U'.'1VSRV9URVhU','flNZTUJ'.'PTF9SVVM=','TUVBU1VSRQ'.'==','SUQ'.'=','S'.'UQ=','T'.'UVB'.'U1VS'.'RQ'.'==','S'.'UQ=','SU'.'Q'.'=','TUV'.'BU1VS'.'RQ='.'=','TUVBU1VSRQ==','TUV'.'BU1VSR'.'Q'.'==','TUVBU1VSRQ'.'='.'=',''.'TUVBU1'.'VSRQ'.'==','SUQ=','SUQ=','SUQ=',''.'U1lNQ'.'k'.'9'.'M'.'X1J'.'V'.'U'.'w==',''.'SU'.'Q=','SUQ'.'=',''.'SUQ=','SU'.'Q=','SUQ=',''.'T'.'U'.'V'.'BU'.'1V'.'SRV9URVhU','U1lNQ'.'k9MX1JVU'.'w==','T'.'U'.'VBU1VS'.'RQ='.'=','S'.'UQ=','Y'.'2F0Y'.'WxvZw==','UF'.'JPRFVDVF'.'9JR'.'A==','UF'.'JPRFVD'.'VF9JRA==','UFJ'.'P'.'RF'.'VDVF'.'9JRA==',''.'T'.'UVBU1'.'VSRV9SQVR'.'JT'.'w'.'==','UkF'.'U'.'SU'.'8=',''.'aWJsb2N'.'r','Y'.'2hlY'.'2tQcm9kdWN0UHJv'.'cE'.'NvZ'.'GU=',''.'P'.'UlE','S'.'U'.'Q'.'=','S'.'UJMT0NL'.'X0l'.'E','S'.'UJM'.'T0NL'.'X0lE',''.'SUQ=','S'.'UJMT0NL'.'X'.'0lE',''.'PUlE','SUQ'.'=','LCA=','LCA=','','U'.'FJPU'.'E'.'VS'.'V'.'F'.'lf');return base64_decode($_975833971[$_1524664495]);}?><? $GLOBALS['____22046643'][0](___235676882(0), false); global $DBType; $GLOBALS['_____1282105777'][0](__FILE__); $GLOBALS[___235676882(1)]= array( ___235676882(2) => GetMessage(___235676882(3)), ___235676882(4) => GetMessage(___235676882(5)), ___235676882(6) => GetMessage(___235676882(7)), ___235676882(8) => GetMessage(___235676882(9)), ___235676882(10) => GetMessage(___235676882(11)), ___235676882(12) => GetMessage(___235676882(13)), ___235676882(14) => GetMessage(___235676882(15)), ___235676882(16) => GetMessage(___235676882(17))); if(!CModule::$GLOBALS['_____1282105777'][1](___235676882(18))){ return false;} Define(___235676882(19), round(0+0.6+0.6+0.6+0.6+0.6)); Define(___235676882(20), round(0+1+1+1)); Define(___235676882(21), round(0+21600+21600)); Define(___235676882(22), round(0+3600+3600)); Define(___235676882(23), ___235676882(24)); Define(___235676882(25), round(0+1200+1200+1200)*round(0+12+12)); global $SALE_TIME_PERIOD_TYPES; $SALE_TIME_PERIOD_TYPES= array( ___235676882(26) => GetMessage(___235676882(27)), ___235676882(28) => GetMessage(___235676882(29)), ___235676882(30) => GetMessage(___235676882(31)), ___235676882(32) => GetMessage(___235676882(33)), ___235676882(34) => GetMessage(___235676882(35)), ___235676882(36) => GetMessage(___235676882(37)), ___235676882(38) => GetMessage(___235676882(39))); $GLOBALS['____22046643'][1](___235676882(40), round(0+0.66666666666667+0.66666666666667+0.66666666666667)); $GLOBALS['____22046643'][2](___235676882(41), round(0+0.75+0.75+0.75+0.75)); $GLOBALS['____22046643'][3](___235676882(42), ___235676882(43)); $GLOBALS[___235676882(44)]= array( ___235676882(45) => array(___235676882(46) => ___235676882(47), ___235676882(48) => GetMessage(___235676882(49)), ___235676882(50) => ___235676882(51), ___235676882(52) => ___235676882(53), ___235676882(54) => ___235676882(55)), ___235676882(56) => array(___235676882(57) => GetMessage(___235676882(58)), ___235676882(59) => GetMessage(___235676882(60)), ___235676882(61) => ___235676882(62), ___235676882(63) => ___235676882(64), ___235676882(65) => ___235676882(66)), ___235676882(67) => array(___235676882(68) => GetMessage(___235676882(69)), ___235676882(70) => GetMessage(___235676882(71)), ___235676882(72) => ___235676882(73), ___235676882(74) => ___235676882(75), ___235676882(76) => ___235676882(77)), ___235676882(78) => array(___235676882(79) => GetMessage(___235676882(80)), ___235676882(81) => GetMessage(___235676882(82)), ___235676882(83) => ___235676882(84), ___235676882(85) => ___235676882(86), ___235676882(87) => ___235676882(88)), ___235676882(89) => array(___235676882(90) => GetMessage(___235676882(91)), ___235676882(92) => GetMessage(___235676882(93)), ___235676882(94) => ___235676882(95), ___235676882(96) => ___235676882(97), ___235676882(98) => ___235676882(99)), ___235676882(100) => array(___235676882(101) => GetMessage(___235676882(102)), ___235676882(103) => GetMessage(___235676882(104)), ___235676882(105) => ___235676882(106), ___235676882(107) => ___235676882(108), ___235676882(109) => ___235676882(110)), ___235676882(111) => array(___235676882(112) => GetMessage(___235676882(113)), ___235676882(114) => GetMessage(___235676882(115)), ___235676882(116) => ___235676882(117), ___235676882(118) => ___235676882(119), ___235676882(120) => ___235676882(121)), ___235676882(122) => array(___235676882(123) => GetMessage(___235676882(124)), ___235676882(125) => GetMessage(___235676882(126)), ___235676882(127) => ___235676882(128), ___235676882(129) => ___235676882(130), ___235676882(131) => ___235676882(132)), ___235676882(133) => array(___235676882(134) => GetMessage(___235676882(135)), ___235676882(136) => GetMessage(___235676882(137)), ___235676882(138) => ___235676882(139), ___235676882(140) => ___235676882(141), ___235676882(142) => ___235676882(143)), ___235676882(144) => array(___235676882(145) => GetMessage(___235676882(146)), ___235676882(147) => GetMessage(___235676882(148)), ___235676882(149) => ___235676882(150), ___235676882(151) => ___235676882(152), ___235676882(153) => ___235676882(154)), ___235676882(155) => array(___235676882(156) => GetMessage(___235676882(157)), ___235676882(158) => GetMessage(___235676882(159)), ___235676882(160) => ___235676882(161), ___235676882(162) => ___235676882(163), ___235676882(164) => ___235676882(165)), ___235676882(166) => array(___235676882(167) => GetMessage(___235676882(168)), ___235676882(169) => GetMessage(___235676882(170)), ___235676882(171) => ___235676882(172), ___235676882(173) => ___235676882(174), ___235676882(175) => ___235676882(176)), ___235676882(177) => array(___235676882(178) => GetMessage(___235676882(179)), ___235676882(180) => GetMessage(___235676882(181)), ___235676882(182) => ___235676882(183), ___235676882(184) => ___235676882(185), ___235676882(186) => ___235676882(187)), ___235676882(188) => array(___235676882(189) => GetMessage(___235676882(190)), ___235676882(191) => GetMessage(___235676882(192)), ___235676882(193) => ___235676882(194), ___235676882(195) => ___235676882(196), ___235676882(197) => ___235676882(198)), ___235676882(199) => array(___235676882(200) => GetMessage(___235676882(201)), ___235676882(202) => GetMessage(___235676882(203)), ___235676882(204) => ___235676882(205), ___235676882(206) => ___235676882(207), ___235676882(208) => ___235676882(209)), ___235676882(210) => array(___235676882(211) => GetMessage(___235676882(212)), ___235676882(213) => GetMessage(___235676882(214)), ___235676882(215) => ___235676882(216), ___235676882(217) => ___235676882(218), ___235676882(219) => ___235676882(220)), ___235676882(221) => array(___235676882(222) => GetMessage(___235676882(223)), ___235676882(224) => GetMessage(___235676882(225)), ___235676882(226) => ___235676882(227), ___235676882(228) => ___235676882(229), ___235676882(230) => ___235676882(231)), ___235676882(232) => array(___235676882(233) => GetMessage(___235676882(234)), ___235676882(235) => GetMessage(___235676882(236)), ___235676882(237) => ___235676882(238), ___235676882(239) => ___235676882(240), ___235676882(241) => ___235676882(242)), ___235676882(243) => array(___235676882(244) => GetMessage(___235676882(245)), ___235676882(246) => GetMessage(___235676882(247)), ___235676882(248) => ___235676882(249), ___235676882(250) => ___235676882(251), ___235676882(252) => ___235676882(253)), ___235676882(254) => array(___235676882(255) => GetMessage(___235676882(256)), ___235676882(257) => GetMessage(___235676882(258)), ___235676882(259) => ___235676882(260), ___235676882(261) => ___235676882(262), ___235676882(263) => ___235676882(264)), ___235676882(265) => array(___235676882(266) => GetMessage(___235676882(267)), ___235676882(268) => GetMessage(___235676882(269)), ___235676882(270) => ___235676882(271), ___235676882(272) => ___235676882(273), ___235676882(274) => ___235676882(275)), ___235676882(276) => array(___235676882(277) => GetMessage(___235676882(278)), ___235676882(279) => GetMessage(___235676882(280)), ___235676882(281) => ___235676882(282), ___235676882(283) => ___235676882(284), ___235676882(285) => ___235676882(286))); CModule::$GLOBALS['_____1282105777'][2]( ___235676882(287), array( ___235676882(288) => $DBType.___235676882(289), ___235676882(290) => $DBType.___235676882(291), ___235676882(292) => ___235676882(293), ___235676882(294) => ___235676882(295), ___235676882(296) => $DBType.___235676882(297), ___235676882(298) => $DBType.___235676882(299), ___235676882(300) => $DBType.___235676882(301), ___235676882(302) => ___235676882(303), ___235676882(304) => $DBType.___235676882(305), ___235676882(306) => $DBType.___235676882(307), ___235676882(308) => $DBType.___235676882(309), ___235676882(310) => $DBType.___235676882(311), ___235676882(312) => $DBType.___235676882(313), ___235676882(314) => $DBType.___235676882(315), ___235676882(316) => $DBType.___235676882(317), ___235676882(318) => $DBType.___235676882(319), ___235676882(320) => $DBType.___235676882(321), ___235676882(322) => ___235676882(323), ___235676882(324) => $DBType.___235676882(325), ___235676882(326) => $DBType.___235676882(327), ___235676882(328) => ___235676882(329), ___235676882(330) => ___235676882(331), ___235676882(332) => $DBType.___235676882(333), ___235676882(334) => $DBType.___235676882(335), ___235676882(336) => $DBType.___235676882(337), ___235676882(338) => $DBType.___235676882(339), ___235676882(340) => $DBType.___235676882(341), ___235676882(342) => $DBType.___235676882(343), ___235676882(344) => $DBType.___235676882(345), ___235676882(346) => $DBType.___235676882(347), ___235676882(348) => $DBType.___235676882(349), ___235676882(350) => $DBType.___235676882(351), ___235676882(352) => $DBType.___235676882(353), ___235676882(354) => $DBType.___235676882(355), ___235676882(356) => $DBType.___235676882(357), ___235676882(358) => $DBType.___235676882(359), ___235676882(360) => $DBType.___235676882(361), ___235676882(362) => $DBType.___235676882(363), ___235676882(364) => $DBType.___235676882(365), ___235676882(366) => $DBType.___235676882(367), ___235676882(368) => $DBType.___235676882(369), ___235676882(370) => ___235676882(371), ___235676882(372) => ___235676882(373), ___235676882(374) => $DBType.___235676882(375), ___235676882(376) => $DBType.___235676882(377), ___235676882(378) => ___235676882(379), ___235676882(380) => ___235676882(381), ___235676882(382) => ___235676882(383), ___235676882(384) => ___235676882(385), ___235676882(386) => ___235676882(387), ___235676882(388) => ___235676882(389), ___235676882(390) => ___235676882(391), ___235676882(392) => ___235676882(393), ___235676882(394) => ___235676882(395), ___235676882(396) => ___235676882(397), ___235676882(398) => $DBType.___235676882(399), ___235676882(400) => $DBType.___235676882(401), ___235676882(402) => ___235676882(403), ___235676882(404) => ___235676882(405), ___235676882(406) => ___235676882(407), ___235676882(408) => ___235676882(409), ___235676882(410) => ___235676882(411), ___235676882(412) => ___235676882(413), ___235676882(414) => ___235676882(415), ___235676882(416) => ___235676882(417), ___235676882(418) => ___235676882(419), ___235676882(420) => ___235676882(421), ___235676882(422) => ___235676882(423), ___235676882(424) => ___235676882(425), ___235676882(426) => ___235676882(427), ___235676882(428) => ___235676882(429), ___235676882(430) => ___235676882(431), ___235676882(432) => ___235676882(433), ___235676882(434) => ___235676882(435), ___235676882(436) => ___235676882(437), ___235676882(438) => ___235676882(439), ___235676882(440) => ___235676882(441), ___235676882(442) => ___235676882(443), ___235676882(444) => ___235676882(445), ___235676882(446) => ___235676882(447), ___235676882(448) => ___235676882(449), ___235676882(450) => ___235676882(451), ___235676882(452) => ___235676882(453), ___235676882(454) => ___235676882(455), ___235676882(456) => ___235676882(457), ___235676882(458) => ___235676882(459), ___235676882(460) => ___235676882(461), ___235676882(462) => ___235676882(463), ___235676882(464) => ___235676882(465), ___235676882(466) => ___235676882(467), ___235676882(468) => ___235676882(469), ___235676882(470) => ___235676882(471), ___235676882(472) => ___235676882(473), ___235676882(474) => ___235676882(475), ___235676882(476) => ___235676882(477), ___235676882(478) => ___235676882(479), ___235676882(480) => ___235676882(481), ___235676882(482) => ___235676882(483), ___235676882(484) => ___235676882(485), ___235676882(486) => ___235676882(487), ___235676882(488) => ___235676882(489), ___235676882(490) => ___235676882(491), ___235676882(492) => ___235676882(493), ___235676882(494) => ___235676882(495), ___235676882(496) => ___235676882(497), ___235676882(498) => ___235676882(499), ___235676882(500) => ___235676882(501), ___235676882(502) => ___235676882(503))); function GetBasketListSimple($_776936337= False){ $_1565306292= CSaleBasket::GetBasketUserID($_776936337); if($_1565306292>(776-2*388)) return CSaleBasket::$GLOBALS['_____1282105777'][3]( array(___235676882(504) => ___235676882(505)), array(___235676882(506) => $_1565306292, ___235676882(507) => SITE_ID, ___235676882(508) => ___235676882(509))); else return False;} function GetBasketList($_776936337= False){ $_1565306292= CSaleBasket::GetBasketUserID($_776936337); $_1716398923= array(); if($_1565306292> min(78,0,26)){ $_1650393563= CSaleBasket::$GLOBALS['_____1282105777'][4]( array(___235676882(510) => ___235676882(511)), array(___235676882(512) => $_1565306292, ___235676882(513) => SITE_ID, ___235676882(514) => ___235676882(515))); while($_59417835= $_1650393563->$GLOBALS['_____1282105777'][5]()){ if($GLOBALS['____22046643'][4]($_59417835[___235676882(516)])>(168*2-336) || $GLOBALS['____22046643'][5]($_59417835[___235676882(517)])>(1152/2-576)){ CSaleBasket::UpdatePrice($_59417835[___235676882(518)], $_59417835[___235676882(519)], $_59417835[___235676882(520)], $_59417835[___235676882(521)], $_59417835[___235676882(522)], $_59417835[___235676882(523)]); $_59417835= CSaleBasket::$GLOBALS['_____1282105777'][6]($_59417835[___235676882(524)]);} $_1716398923[]= $_59417835;}} return $_1716398923;} function SaleFormatCurrency($_1997147511, $_604679138, $_1359775739= false){ return CCurrencyLang::CurrencyFormat($_1997147511, $_604679138,!($_1359775739 === true));} function AutoPayOrder($_482265164){ $_482265164= (int)$_482265164; if($_482265164 <=(1300/2-650)) return false; $_638491738= CSaleOrder::$GLOBALS['_____1282105777'][7]($_482265164); if(!$_638491738) return false; if($_638491738[___235676882(525)] != ___235676882(526)) return false; if($_638491738[___235676882(527)] != ___235676882(528)) return false; if($_638491738[___235676882(529)] == $_638491738[___235676882(530)] && DoubleVal($_638491738[___235676882(531)]) == DoubleVal($_638491738[___235676882(532)])){ if(CSaleOrder::PayOrder($_638491738[___235676882(533)], ___235676882(534), true, false)) return true;} return false;} function CurrencyModuleUnInstallSale(){ $GLOBALS[___235676882(535)]->$GLOBALS['_____1282105777'][8](GetMessage(___235676882(536)), ___235676882(537)); return false;} if($GLOBALS['____22046643'][6]($_SERVER[___235676882(538)].___235676882(539))) include($_SERVER[___235676882(540)].___235676882(541)); function PayUserAccountDeliveryOrderCallback($_1497994248, $_1025479703, $_998371442, $_391139049, $_1130343874= 1){ global $DB; $_1497994248= IntVal($_1497994248); $_1025479703= IntVal($_1025479703); $_998371442=($_998371442? True: False); $_391139049= IntVal($_391139049); if($_1025479703 <= min(202,0,67.333333333333)) return False; if($_391139049 <= min(212,0,70.666666666667)) return False; if(!($_638491738= CSaleOrder::$GLOBALS['_____1282105777'][9]($_391139049))) return False; $_1591734238= CSaleLang::GetLangCurrency($_638491738[___235676882(542)]); $_1663215846= $GLOBALS['____22046643'][7](COption::$GLOBALS['_____1282105777'][10](___235676882(543), ___235676882(544), ___235676882(545))); if(!$GLOBALS['____22046643'][8]($_1497994248, $_1663215846)) return False; $_1484605098= $_1663215846[$_1497994248][___235676882(546)]* $_1130343874; $_1563884325= $_1663215846[$_1497994248][___235676882(547)]; if($_1663215846[$_1497994248][___235676882(548)] != $_1591734238){ $_1484605098= CCurrencyRates::ConvertCurrency($_1663215846[$_1497994248][___235676882(549)], $_1663215846[$_1497994248][___235676882(550)], $_1591734238)* $_1130343874; $_1563884325= $_1591734238;} if(!CSaleUserAccount::UpdateAccount($_1025479703,($_998371442? $_1484605098:-$_1484605098), $_1563884325, ___235676882(551), $_391139049, ___235676882(552))) return False; return True;} function GetFormatedUserName($_1817622884, $_502221729= true){ $_244421456= ___235676882(553); $_1817622884= IntVal($_1817622884); if($_1817622884>(212*2-424)){ if(!isset($_2076110432[$_1817622884]) ||!$GLOBALS['____22046643'][9]($_2076110432[$_1817622884])){ $_1631632678= CUser::$GLOBALS['_____1282105777'][11]($_1817622884); if($_352008160= $_1631632678->$GLOBALS['_____1282105777'][12]()){ $_2076110432[$_1817622884]= CUser::FormatName( CSite::GetNameFormat(false), array( ___235676882(554) => $_352008160[___235676882(555)], ___235676882(556) => $_352008160[___235676882(557)], ___235676882(558) => $_352008160[___235676882(559)], ___235676882(560) => $_352008160[___235676882(561)]), true, true);}} if($_502221729) $_244421456 .= ___235676882(562).$_1817622884.___235676882(563).LANGUAGE_ID.___235676882(564).$_1817622884.___235676882(565); if(CBXFeatures::IsFeatureEnabled(___235676882(566))) $_244421456 .= ___235676882(567).$_1817622884.___235676882(568).LANGUAGE_ID.___235676882(569); else $_244421456 .= ___235676882(570).$_1817622884.___235676882(571).LANGUAGE_ID.___235676882(572); $_244421456 .= $_2076110432[$_1817622884]; $_244421456 .= ___235676882(573);} return $_244421456;} function getMeasures($_6121167){ if(CModule::$GLOBALS['_____1282105777'][13](___235676882(574))){ $_1042780166= CCatalogMeasure::getDefaultMeasure(true, true); $_1961657287= array(); $_1142064415= array(); foreach($_6121167 as $_155943633 => $_1268822353){ $_1497994248= (int)$_1268822353[___235676882(575)]; if(!isset($_1142064415[$_1497994248])) $_1142064415[$_1497994248][]= $_155943633; $_1961657287[]= $_1497994248; $_6121167[$_155943633][___235676882(576)]= $_1042780166[___235676882(577)]; $_6121167[$_155943633][___235676882(578)]=(854-2*427);} unset($_1497994248, $_155943633, $_1268822353); if(!empty($_1961657287)){ $_1450283703= array(); $_2111772175= CCatalogProduct::$GLOBALS['_____1282105777'][14]( array(), array(___235676882(579) => $_1961657287), false, false, array(___235676882(580), ___235676882(581))); while($_1716398923= $_2111772175->$GLOBALS['_____1282105777'][15]()){ $_1716398923[___235676882(582)]= (int)$_1716398923[___235676882(583)]; $_1716398923[___235676882(584)]= (int)$_1716398923[___235676882(585)]; if(!isset($_1450283703[$_1716398923[___235676882(586)]])) $_1450283703[$_1716398923[___235676882(587)]]= array(); $_1450283703[$_1716398923[___235676882(588)]][]= $_1716398923[___235676882(589)];} unset($_1716398923, $_2111772175); if(!empty($_1450283703)){ $_1641266948= CCatalogMeasure::$GLOBALS['_____1282105777'][16]( array(), array(___235676882(590) => $GLOBALS['____22046643'][10]($_1450283703)), false, false, array(___235676882(591), ___235676882(592))); while($_1986602539= $_1641266948->$GLOBALS['_____1282105777'][17]()){ $_1986602539[___235676882(593)]= (int)$_1986602539[___235676882(594)]; if(isset($_1450283703[$_1986602539[___235676882(595)]]) &&!empty($_1450283703[$_1986602539[___235676882(596)]])){ foreach($_1450283703[$_1986602539[___235676882(597)]] as&$_1497994248){ if(isset($_1142064415[$_1497994248]) &&!empty($_1142064415[$_1497994248])){ foreach($_1142064415[$_1497994248] as&$_155943633){ $_6121167[$_155943633][___235676882(598)]= $_1986602539[___235676882(599)]; $_6121167[$_155943633][___235676882(600)]= $_1986602539[___235676882(601)];} unset($_155943633);}} unset($_1497994248);}}}} return $_6121167;} else return false;} function getRatio($_6121167){ if(CModule::$GLOBALS['_____1282105777'][18](___235676882(602))){ $_1961657287= array(); foreach($_6121167 as $_1268822353) $_1961657287[]= $_1268822353[___235676882(603)]; if(!empty($_1961657287)){ $_1693590091= CCatalogMeasureRatio::$GLOBALS['_____1282105777'][19](array(), $GLOBALS['____22046643'][11]($_1961657287)); while($_167103222= $_1693590091->$GLOBALS['_____1282105777'][20]()){ foreach($_6121167 as&$_280419804){ if($_167103222[___235676882(604)] == $_280419804[___235676882(605)]) $_280419804[___235676882(606)]= $_167103222[___235676882(607)];}} unset($_280419804); return $_6121167;}}} function getProductProps($_1961657287, $_1906068973){ if(!CModule::$GLOBALS['_____1282105777'][21](___235676882(608))) return array(); if(empty($_1961657287)) return array(); $_1906068973= $GLOBALS['____22046643'][12]($_1906068973, ___235676882(609)); $_633545976= array(); $_1549582466= array(); $_59417835= CIBlockElement::$GLOBALS['_____1282105777'][22]( array(), array(___235676882(610) => $GLOBALS['____22046643'][13]($_1961657287)), false, false, array(___235676882(611), ___235676882(612))); while($_1522978085= $_59417835->$GLOBALS['_____1282105777'][23]()) $_1549582466[$_1522978085[___235676882(613)]][]= $_1522978085[___235676882(614)]; foreach($_1549582466 as $_66102774 => $_82694648) { $_59417835= CIBlockElement::$GLOBALS['_____1282105777'][24]( array(), array(___235676882(615) => $_66102774, ___235676882(616) => $_82694648), false, false, $_1906068973); while($_1522978085= $_59417835->$GLOBALS['_____1282105777'][25]()){ $_1690643474= $_1522978085[___235676882(617)]; foreach($_1522978085 as $_1904493370 => $_1108731414){ if(!isset($_633545976[$_1690643474])) $_633545976[$_1690643474]= array(); if(isset($_633545976[$_1690643474][$_1904493370]) &&!$GLOBALS['____22046643'][14]($_633545976[$_1690643474][$_1904493370]) &&!$GLOBALS['____22046643'][15]($_1108731414, $GLOBALS['____22046643'][16](___235676882(618), $_633545976[$_1690643474][$_1904493370]))) { $_633545976[$_1690643474][$_1904493370] .= ___235676882(619).$_1108731414;} elseif(empty($_633545976[$_1690643474][$_1904493370])){ $_633545976[$_1690643474][$_1904493370]= $_1108731414;}}}} return $_633545976;} function checkProductPropCode($_1646845836){ return($_1646845836 !== null && $_1646845836 !== ___235676882(620) && $_1646845836 !== ___235676882(621));} ?>
function CancelOrder($ID, $val, $description = "") { global $DB, $USER, $APPLICATION; $isOrderConverted = \Bitrix\Main\Config\Option::get("main", "~sale_converted_15", 'N'); $ID = IntVal($ID); $val = $val != "Y" ? "N" : "Y"; $description = Trim($description); if ($ID <= 0) { $APPLICATION->ThrowException(Loc::getMessage("SKGO_NO_ORDER_ID1"), "NO_ORDER_ID"); return false; } $arOrder = CSaleOrder::GetByID($ID); if (!$arOrder) { $APPLICATION->ThrowException(str_replace("#ID#", $ID, Loc::getMessage("SKGO_NO_ORDER")), "NO_ORDER"); return false; } if ($arOrder["CANCELED"] == $val) { $APPLICATION->ThrowException(str_replace("#ID#", $ID, Loc::getMessage("SKGO_DUB_CANCEL")), "ALREADY_FLAG"); return false; } if ($isOrderConverted == "Y") { $r = \Bitrix\Sale\Compatible\OrderCompatibility::cancel($ID, $val, $description); if ($r->isSuccess(true)) { $res = true; } else { $errorMessage = ""; foreach ($r->getErrorMessages() as $error) { $errorMessage .= " " . $error; } $APPLICATION->ThrowException(Loc::getMessage("SKGO_CANCEL_ERROR", array("#MESSAGE#" => $errorMessage)), "CANCEL_ERROR"); return false; } } else { foreach (GetModuleEvents("sale", "OnSaleBeforeCancelOrder", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID, $val)) === false) { return false; } } if ($val == "Y") { if ($arOrder["DEDUCTED"] == "Y") { if (!CSaleOrder::DeductOrder($ID, "N")) { return false; } } if ($arOrder["RESERVED"] == "Y") { if (!CSaleOrder::ReserveOrder($ID, "N")) { return false; } } if ($arOrder["PAYED"] == "Y") { if (!CSaleOrder::PayOrder($ID, "N", True, True)) { return False; } } else { $arOrder["SUM_PAID"] = DoubleVal($arOrder["SUM_PAID"]); if ($arOrder["SUM_PAID"] > 0) { if (!CSaleUserAccount::UpdateAccount($arOrder["USER_ID"], $arOrder["SUM_PAID"], $arOrder["CURRENCY"], "ORDER_CANCEL_PART", $ID)) { return False; } CSaleOrder::Update($arOrder["ID"], array("SUM_PAID" => 0)); } } if ($arOrder["ALLOW_DELIVERY"] == "Y") { if (!CSaleOrder::DeliverOrder($ID, "N")) { return False; } } } else { if (COption::GetOptionString("sale", "product_reserve_condition", "O") == "O" && $arOrder["RESERVED"] != "Y") { if (!CSaleOrder::ReserveOrder($ID, "Y")) { return false; } } } $arFields = array("CANCELED" => $val, "=DATE_CANCELED" => $DB->GetNowFunction(), "REASON_CANCELED" => strlen($description) > 0 ? $description : false, "EMP_CANCELED_ID" => IntVal($USER->GetID()) > 0 ? IntVal($USER->GetID()) : false); $res = CSaleOrder::Update($ID, $arFields); } unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID]); if ($isOrderConverted != "Y") { //this method is used only for catalogs without reservation and deduction support CSaleBasket::OrderCanceled($ID, $val == "Y" ? True : False); foreach (GetModuleEvents("sale", "OnSaleCancelOrder", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $val, $description)); } } if ($val == "Y") { CTimeZone::Disable(); $arOrder = CSaleOrder::GetByID($ID); CTimeZone::Enable(); $userEmail = ""; $dbOrderProp = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $ID, "PROP_IS_EMAIL" => "Y")); if ($arOrderProp = $dbOrderProp->Fetch()) { $userEmail = $arOrderProp["VALUE"]; } if (strlen($userEmail) <= 0) { $dbUser = CUser::GetByID($arOrder["USER_ID"]); if ($arUser = $dbUser->Fetch()) { $userEmail = $arUser["EMAIL"]; } } if (CModule::IncludeModule("statistic")) { CStatEvent::AddByEvents("eStore", "order_cancel", $ID, "", $arOrder["STAT_GID"]); } } return $res; }
} } else { qiwiWalletXmlResponse(QIWI_WALLET_ERROR_CODE_AUTH); } } if ($order = CSaleOrder::getById($_POST['bill_id'])) { $paidInfo = array("PS_STATUS" => $_POST['status'] == "paid" ? "Y" : "N", "PS_STATUS_CODE" => substr($_POST['status'], 0, 5), "PS_STATUS_MESSAGE" => Loc::getMessage("SALE_QWH_STATUS_MESSAGE_" . strtoupper($_POST['status'])), "PS_RESPONSE_DATE" => \Bitrix\Main\Type\DateTime::createFromTimestamp(time()), "PS_SUM" => (double) $_POST['amount'], "PS_CURRENCY" => $_POST['ccy'], "PS_STATUS_DESCRIPTION" => ""); if ((int) $_POST['error']) { $paidInfo['PS_STATUS_DESCRIPTION'] = "Error: " . Loc::getMessage("SALE_QWH_ERROR_CODE_" . $_POST['error']); CSaleOrder::Update($order['ID'], $paidInfo); qiwiWalletXmlResponse(QIWI_WALLET_ERROR_CODE_OTHER); } foreach ($_POST as $key => $value) { $paidInfo['PS_STATUS_DESCRIPTION'] .= "{$key}:{$value}, "; } CSaleOrder::Update($order['ID'], $paidInfo); $changeStatusPay = CSalePaySystemAction::GetParamValue("CHANGE_STATUS_PAY") == "Y"; $difference = (double) $_POST['amount'] - (double) $order['PRICE']; if ($difference < 0) { qiwiWalletXmlResponse(QIWI_WALLET_ERROR_CODE_TOO_LOW); } elseif ($difference > 0) { qiwiWalletXmlResponse(QIWI_WALLET_ERROR_CODE_TOO_HIGH); } else { if ($_POST['status'] == "paid" && $changeStatusPay) { CSaleOrder::PayOrder($order['ID'], "Y", true, true); } qiwiWalletXmlResponse(QIWI_WALLET_ERROR_CODE_NONE); } } else { qiwiWalletXmlResponse(QIWI_WALLET_ERROR_CODE_NOT_FOUND); }
function nodeHandler(CDataXML $value) { $value = $value->GetArray(); $value = $value[GetMessage("CC_BSC1_DOCUMENT")]; if ($value["#"][GetMessage("CC_BSC1_OPERATION")][0]["#"] == GetMessage("CC_BSC1_ORDER")) { $orderId = IntVal($value["#"][GetMessage("CC_BSC1_NUMBER")][0]["#"]); $arOrder = array(); $arItem = array(); $arOrder["AMOUNT"] = $value["#"][GetMessage("CC_BSC1_SUMM")][0]["#"]; $arOrder["AMOUNT"] = str_replace($SumFormat, ".", $arOrder["AMOUNT"]); $arOrder["COMMENT"] = $value["#"][GetMessage("CC_BSC1_COMMENT")][0]["#"]; foreach ($value["#"][GetMessage("CC_BSC1_REK_VALUES")][0]["#"][GetMessage("CC_BSC1_REK_VALUE")] as $val) { $arOrder["TRAITS"][$val["#"][GetMessage("CC_BSC1_NAME")][0]["#"]] = $val["#"][GetMessage("CC_BSC1_VALUE")][0]["#"]; } $taxValue = 0; $taxValueTmp = 0; $taxName = ""; if (is_array($value["#"][GetMessage("CC_BSC1_ITEMS")][0]["#"][GetMessage("CC_BSC1_ITEM")])) { foreach ($value["#"][GetMessage("CC_BSC1_ITEMS")][0]["#"][GetMessage("CC_BSC1_ITEM")] as $val) { $val = $val["#"]; $productID = $val[GetMessage("CC_BSC1_ID")][0]["#"]; $bGood = false; $discountPrice = ""; $priceAll = str_replace($SumFormat, ".", $val[GetMessage("CC_BSC1_SUMM")][0]["#"]); $priceone = str_replace($SumFormat, ".", $val[GetMessage("CC_BSC1_PRICE_PER_UNIT")][0]["#"]); $quantity = str_replace($QuantityFormat, ".", $val[GetMessage("CC_BSC1_QUANTITY")][0]["#"]); $price = $priceAll / $quantity; if ($priceone != $price) { $discountPrice = $priceone - $price; } //DISCOUNTS! $arItem[$productID] = array("NAME" => $val[GetMessage("CC_BSC1_NAME")][0]["#"], "PRICE" => $price, "QUANTITY" => $quantity, "DISCOUNT_PRICE" => $discountPrice); if (is_array($val[GetMessage("CC_BSC1_PROPS_ITEMS")][0]["#"][GetMessage("CC_BSC1_PROP_ITEM")])) { foreach ($val[GetMessage("CC_BSC1_PROPS_ITEMS")][0]["#"][GetMessage("CC_BSC1_PROP_ITEM")] as $val1) { $arItem[$productID]["ATTRIBUTES"][$val1["#"][GetMessage("CC_BSC1_NAME")][0]["#"]] = $val1["#"][GetMessage("CC_BSC1_VALUE")][0]["#"]; } } if (is_array($val[GetMessage("CC_BSC1_REK_VALUES")][0]["#"][GetMessage("CC_BSC1_REK_VALUE")])) { foreach ($val[GetMessage("CC_BSC1_REK_VALUES")][0]["#"][GetMessage("CC_BSC1_REK_VALUE")] as $val1) { if ($val1["#"][GetMessage("CC_BSC1_NAME")][0]["#"] == GetMessage("CC_BSC1_ITEM_TYPE")) { $arItem[$productID]["TYPE"] = $val1["#"][GetMessage("CC_BSC1_VALUE")][0]["#"]; } } } if (strlen($value["#"][GetMessage("CC_BSC1_TAXES")][0]["#"][GetMessage("CC_BSC1_TAX")][0]["#"][GetMessage("CC_BSC1_NAME")][0]["#"]) > 0) { $taxValueTmp = $val[GetMessage("CC_BSC1_TAXES")][0]["#"][GetMessage("CC_BSC1_TAX")][0]["#"][GetMessage("CC_BSC1_TAX_VALUE")][0]["#"]; $arItem[$productID]["VAT_RATE"] = $taxValueTmp / 100; if (IntVal($taxValueTmp) > IntVal($taxValue)) { $taxName = $val[GetMessage("CC_BSC1_TAXES")][0]["#"][GetMessage("CC_BSC1_TAX")][0]["#"][GetMessage("CC_BSC1_NAME")][0]["#"]; $taxValue = $taxValueTmp; } } } } if (IntVal($taxValue) > 0) { $price = str_replace($SumFormat, ".", $value["#"][GetMessage("CC_BSC1_TAXES")][0]["#"][GetMessage("CC_BSC1_TAX")][0]["#"][GetMessage("CC_BSC1_SUMM")][0]["#"]); $arOrder["TAX"] = array("NAME" => $taxName, "VALUE" => $taxValue, "IS_IN_PRICE" => $value["#"][GetMessage("CC_BSC1_TAXES")][0]["#"][GetMessage("CC_BSC1_TAX")][0]["#"][GetMessage("CC_BSC1_IN_PRICE")][0]["#"] == "true" ? "Y" : "N", "VALUE_MONEY" => $price); } $arOrder["items"] = $arItem; $v = $arOrder; if ($orderInfo = CSaleOrder::GetByID($orderId)) { if ($orderInfo["PAYED"] != "Y" && $orderInfo["ALLOW_DELIVERY"] != "Y" && $orderInfo["STATUS_ID"] != "F") { $dbOrderTax = CSaleOrderTax::GetList(array(), array("ORDER_ID" => $orderId), false, false, array("ID", "TAX_NAME", "VALUE", "VALUE_MONEY", "CODE", "IS_IN_PRICE")); $bTaxFound = false; if ($arOrderTax = $dbOrderTax->Fetch()) { $bTaxFound = true; if (IntVal($arOrderTax["VALUE_MONEY"]) != IntVal($v["TAX"]["VALUE_MONEY"]) || IntVal($arOrderTax["VALUE"]) != IntVal($v["TAX"]["VALUE"]) || $arOrderTax["IS_IN_PRICE"] != $v["TAX"]["IS_IN_PRICE"]) { if (IntVal($v["TAX"]["VALUE"]) > 0) { $arFields = array("TAX_NAME" => $v["TAX"]["NAME"], "ORDER_ID" => $orderId, "VALUE" => $v["TAX"]["VALUE"], "IS_PERCENT" => "Y", "IS_IN_PRICE" => $v["TAX"]["IS_IN_PRICE"], "VALUE_MONEY" => $v["TAX"]["VALUE_MONEY"], "CODE" => "VAT1C", "APPLY_ORDER" => "100"); CSaleOrderTax::Update($arOrderTax["ID"], $arFields); CSaleOrder::Update($orderId, array("TAX_VALUE" => $v["TAX"]["VALUE_MONEY"])); } else { CSaleOrderTax::Delete($arOrderTax["ID"]); CSaleOrder::Update($orderId, array("TAX_VALUE" => 0)); } } } if (!$bTaxFound) { if (IntVal($v["TAX"]["VALUE"]) > 0) { $arFields = array("TAX_NAME" => $v["TAX"]["NAME"], "ORDER_ID" => $orderId, "VALUE" => $v["TAX"]["VALUE"], "IS_PERCENT" => "Y", "IS_IN_PRICE" => $v["TAX"]["IS_IN_PRICE"], "VALUE_MONEY" => $v["TAX"]["VALUE_MONEY"]); CSaleOrderTax::Add($arFields); CSaleOrder::Update($orderId, array("TAX_VALUE" => $v["TAX"]["VALUE_MONEY"])); } } $dbBasket = CSaleBasket::GetList(array("NAME" => "ASC"), array("ORDER_ID" => $orderId)); $basketSum = 0; while ($arBasket = $dbBasket->Fetch()) { $arFields = array(); if (!empty($v["items"][$arBasket["PRODUCT_XML_ID"]])) { if ($arBasket["QUANTITY"] != $v["items"][$arBasket["PRODUCT_XML_ID"]]["QUANTITY"]) { $arFields["QUANTITY"] = $v["items"][$arBasket["PRODUCT_XML_ID"]]["QUANTITY"]; } if ($arBasket["PRICE"] != $v["items"][$arBasket["PRODUCT_XML_ID"]]["PRICE"]) { $arFields["PRICE"] = $v["items"][$arBasket["PRODUCT_XML_ID"]]["PRICE"]; } if ($arBasket["VAT_RATE"] != $v["items"][$arBasket["PRODUCT_XML_ID"]]["VAT_RATE"]) { $arFields["VAT_RATE"] = $v["items"][$arBasket["PRODUCT_XML_ID"]]["VAT_RATE"]; } if ($arBasket["DISCOUNT_PRICE"] != $v["items"][$arBasket["PRODUCT_XML_ID"]]["DISCOUNT_PRICE"]) { $arFields["DISCOUNT_PRICE"] = $v["items"][$arBasket["PRODUCT_XML_ID"]]["DISCOUNT_PRICE"]; } if (count($arFields) > 0) { CSaleBasket::Update($arBasket["ID"], $arFields); } $v["items"][$arBasket["PRODUCT_XML_ID"]]["CHECKED"] = "Y"; } else { CSaleBasket::Delete($arBasket["ID"]); } } foreach ($v["items"] as $itemID => $arItem) { if ($arItem["CHECKED"] != "Y") { if ($arItem["TYPE"] == GetMessage("CC_BSC1_ITEM")) { CModule::IncludeModule("iblock"); $dbIBlockElement = CIBlockElement::GetList(array(), array("XML_ID" => $itemID, "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y"), false, false, array("ID", "IBLOCK_ID", "XML_ID", "NAME", "DETAIL_PAGE_URL")); if ($arIBlockElement = $dbIBlockElement->GetNext()) { $dbIBlock = CIBlock::GetList(array(), array("ID" => $arIBlockElement["IBLOCK_ID"])); if ($arIBlock = $dbIBlock->Fetch()) { $arProps[] = array("NAME" => "Catalog XML_ID", "CODE" => "CATALOG.XML_ID", "VALUE" => $arIBlock["XML_ID"]); } $arProps[] = array("NAME" => "Product XML_ID", "CODE" => "PRODUCT.XML_ID", "VALUE" => $arIBlockElement["XML_ID"]); $arProduct = CCatalogProduct::GetByID($arIBlockElement["ID"]); $arFields = array("ORDER_ID" => $orderId, "PRODUCT_ID" => $arIBlockElement["ID"], "PRICE" => $arItem["PRICE"], "CURRENCY" => $orderInfo["CURRENCY"], "WEIGHT" => $arProduct["WEIGHT"], "QUANTITY" => $arItem["QUANTITY"], "LID" => $orderInfo["LID"], "DELAY" => "N", "CAN_BUY" => "Y", "NAME" => $arIBlockElement["~NAME"], "CALLBACK_FUNC" => "CatalogBasketCallback", "MODULE" => "catalog", "NOTES" => $arProduct["CATALOG_GROUP_NAME"], "ORDER_CALLBACK_FUNC" => "CatalogBasketOrderCallback", "CANCEL_CALLBACK_FUNC" => "CatalogBasketCancelCallback", "PAY_CALLBACK_FUNC" => "CatalogPayOrderCallback", "DETAIL_PAGE_URL" => $arIBlockElement["DETAIL_PAGE_URL"], "CATALOG_XML_ID" => $arIBlock["XML_ID"], "PRODUCT_XML_ID" => $arIBlockElement["XML_ID"], "IGNORE_CALLBACK_FUNC" => "Y", "VAT_RATE" => $arItem["VAT_RATE"]); CSaleBasket::Add($arFields); } else { $this->strError .= "\n" . GetMessage("CC_BSC1_PRODUCT_NOT_FOUND") . $orderId . " - [" . $itemID . "] " . $arItem["NAME"]; } } elseif ($arItem["TYPE"] == GetMessage("CC_BSC1_SERVICE")) { if (IntVal($arItem["PRICE"]) != IntVal($orderInfo["PRICE_DELIVERY"])) { CSaleOrder::Update($orderId, array("PRICE_DELIVERY" => $arItem["PRICE"])); } } } } $arOrderFields = array(); if ($v["AMOUNT"] != $orderInfo["PRICE"]) { $arOrderFields = array("PRICE" => $v["AMOUNT"]); } if (DoubleVal($orderInfo["DISCOUNT_VALUE"]) > 0) { $arOrderFields["DISCOUNT_VALUE"] = 0; } $arOrderFields["UPDATED_1C"] = "Y"; if (!empty($arOrderFields)) { CSaleOrder::Update($orderId, $arOrderFields); } } else { $this->strError .= "\n" . GetMessage("CC_BSC1_FINAL_NOT_EDIT", array("#ID#" => $orderId)); } $arAditFields = array(); if ($v["TRAITS"][GetMessage("CC_BSC1_CANCELED")] == "true") { if ($orderInfo["CANCELED"] == "N") { CSaleOrder::CancelOrder($orderId, "Y", $v["COMMENT"]); } $arAditFields["UPDATED_1C"] = "Y"; } else { if ($orderInfo["CANCELED"] == "Y") { CSaleOrder::CancelOrder($orderId, "N", $v["COMMENT"]); } $arAditFields["UPDATED_1C"] = "Y"; if (strlen($v["TRAITS"][GetMessage("CC_BSC1_1C_PAYED_DATE")]) > 1) { if ($orderInfo["PAYED"] == "N") { CSaleOrder::PayOrder($orderId, "Y"); } $arAditFields["PAY_VOUCHER_DATE"] = CDatabase::FormatDate(str_replace("T", " ", $v["TRAITS"][GetMessage("CC_BSC1_1C_PAYED_DATE")]), "YYYY-MM-DD HH:MI:SS", CLang::GetDateFormat("FULL", LANG)); if (strlen($v["TRAITS"][GetMessage("CC_BSC1_1C_PAYED_NUM")]) > 0) { $arAditFields["PAY_VOUCHER_NUM"] = $v["TRAITS"][GetMessage("CC_BSC1_1C_PAYED_NUM")]; } $arAditFields["UPDATED_1C"] = "Y"; } if (strlen($v["TRAITS"][GetMessage("CC_BSC1_1C_DELIVERY_DATE")]) > 1) { if ($orderInfo["ALLOW_DELIVERY"] == "N") { CSaleOrder::DeliverOrder($orderId, "Y"); } $arAditFields["DATE_ALLOW_DELIVERY"] = CDatabase::FormatDate(str_replace("T", " ", $v["TRAITS"][GetMessage("CC_BSC1_1C_DELIVERY_DATE")]), "YYYY-MM-DD HH:MI:SS", CLang::GetDateFormat("FULL", LANG)); if (strlen($arParams["FINAL_STATUS_ON_DELIVERY"]) > 0 && $orderInfo["STATUS_ID"] != "F" && $orderInfo["STATUS_ID"] != $arParams["FINAL_STATUS_ON_DELIVERY"]) { CSaleOrder::StatusOrder($orderId, $arParams["FINAL_STATUS_ON_DELIVERY"]); } $arAditFields["UPDATED_1C"] = "Y"; } } if (count($arAditFields) > 0) { CSaleOrder::Update($orderId, $arAditFields); } } else { $this->strError .= "\n" . GetMessage("CC_BSC1_ORDER_NOT_FOUND", array("#ID#" => $orderId)); } } }
$strPS_STATUS_DESCRIPTION .= "RC: " . $p_rc . "; "; $strPS_STATUS_DESCRIPTION .= "APPROVAL: " . $p_approval . "; "; $strPS_STATUS_DESCRIPTION .= "RRN: " . $p_rrn . "; "; $strPS_STATUS_DESCRIPTION .= "INT_REF: " . $p_int_ref . "; "; $arFields = array("PS_STATUS" => "N", "PS_STATUS_CODE" => $p_action, "PS_STATUS_DESCRIPTION" => $strPS_STATUS_DESCRIPTION, "PS_STATUS_MESSAGE" => "", "PS_SUM" => $p_amount, "PS_CURRENCY" => $p_currency, "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG)))); if (strlen($p_extcode) > 0 && $p_extcode != "NONE") { $arFields["PS_STATUS_MESSAGE"] .= GetMessage("EXTCODE_" . $p_extcode) . ". "; } if ($sign == $p_sign) { if ($p_action == "0" && ($p_rc = "00")) { if (DoubleVal($p_amount) == DoubleVal($arOrder["PRICE"]) && $p_currency == $currency) { echo $PAY_OK; $bError = false; $arFields["PS_STATUS"] = "Y"; if ($arOrder["PAYED"] != "Y") { CSaleOrder::PayOrder($arOrder["ID"], "Y", true, true); } if ($arOrder["ALLOW_DELIVERY"] != "Y" && $ALLOW_DELIVERY == "Y") { CSaleOrder::DeliverOrder($arOrder["ID"], "Y"); } $trtype = 21; $time = gmdate("YmdHis", time()); $var = unpack("H*r", ToUpper(substr(md5(uniqid(30)), 0, 8))); $nonce = $var[r]; $signew = bx_hmac("sha1", strlen($order) . $order . strlen($amount) . $amount . strlen($currency) . $currency . strlen($p_rrn) . $p_rrn . strlen($p_int_ref) . $p_int_ref . strlen($trtype) . $trtype . strlen($terminal) . $terminal . strlen($time) . $time . strlen($nonce) . $nonce, $key); $res = ""; $res .= "TRTYPE=" . $trtype; $res .= "&ORDER=" . $order; $res .= "&AMOUNT=" . $amount; $res .= "&CURRENCY=" . $currency; $res .= "&RRN=" . $p_rrn;
array(), array( "USER_ID" => $arOrder["USER_ID"], "CURRENCY" => $arOrder["CURRENCY"], ) ); if ($arUserAccount = $dbUserAccount->Fetch()) { if (floatval($arUserAccount["CURRENT_BUDGET"]) >= $arOrder["PRICE"]) $bPay = false; } } if ($PAYED == "N" && $PAY_FROM_ACCOUNT_BACK != "Y") $bWithdraw = false; if (!CSaleOrder::PayOrder($ID, $PAYED, $bWithdraw, $bPay, 0, $arAdditionalFields)) { if ($ex = $APPLICATION->GetException()) { if ($ex->GetID() != "ALREADY_FLAG") $errorMessageTmp .= $ex->GetString(); } else $errorMessageTmp .= GetMessage("ERROR_PAY_ORDER").". "; } } if ($errorMessageTmp != "") $arErrors[] = $errorMessageTmp; } else {
/** * <p>Метод осуществляет продление подписки с кодом ID.</p> <p><b>Примечание</b>. Метод использует внутреннюю транзакцию. Если у вас используется <b>MySQL</b> и <b>InnoDB</b>, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.</p> * * * * * @param int $ID Код записи с информацией о продлении. * * * * @return bool <p>Метод возвращает <i>true</i> в случае успешного продления или <i>false</i> * в случае ошибки.</p><br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalerecurring/csalerecurring.nextpayment.php * @author Bitrix */ public static function NextPayment($ID) { global $DB; global $USER; $ID = IntVal($ID); if ($ID <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGR_NO_RECID"), "NO_RECORD_ID"); return False; } $arRecur = CSaleRecurring::GetByID($ID); if (!$arRecur) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $ID, GetMessage("SKGR_NO_RECID1")), "NO_RECORD"); return False; } $arOrder = CSaleOrder::GetByID($arRecur["ORDER_ID"]); if (!$arOrder) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arRecur["ORDER_ID"], GetMessage("SKGR_NO_ORDER1")), "NO_ORDER"); return False; } $bSuccess = True; $newOrderID = IntVal($arRecur["ORDER_ID"]); /** @var $productProvider IBXSaleProductProvider */ if ($productProvider = CSaleBasket::GetProductProvider($arRecur)) { $arProduct = $productProvider::RecurringOrderProduct(array( "PRODUCT_ID" => $arRecur["PRODUCT_ID"], "USER_ID" => $arOrder["USER_ID"] )); } else { $arProduct = CSaleRecurring::ExecuteCallbackFunction( $arRecur["CALLBACK_FUNC"], $arRecur["MODULE"], $arRecur["PRODUCT_ID"], $arOrder["USER_ID"] ); } if (!$arProduct || !is_array($arProduct) || count($arProduct) <= 0) { CSaleRecurring::CancelRecurring($arRecur["ID"], "Y", "Product is not found"); /* $arFields = array( "CANCELED" => "Y", "DATE_CANCELED" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))), "CANCELED_REASON" => "Product is not found" ); CSaleRecurring::Update($arRecur["ID"], $arFields); */ //CSaleRecurring::Delete($arRecur["ID"]); return True; } if ($arProduct["WITHOUT_ORDER"] == "Y" || $arRecur["SUCCESS_PAYMENT"] == "Y") { $baseSiteCurrency = CSaleLang::GetLangCurrency($arOrder["LID"]); $productPrice = roundEx(CCurrencyRates::ConvertCurrency($arProduct["PRICE"], $arProduct["CURRENCY"], $baseSiteCurrency), SALE_VALUE_PRECISION); // Delivery $deliveryPrice = 0; $deliveryID = 0; $arOrder["DELIVERY_ID"] = IntVal($arOrder["DELIVERY_ID"]); if ($arOrder["DELIVERY_ID"] > 0) { $deliveryLocation = 0; $dbOrderPropValues = CSaleOrderPropsValue::GetList( array(), array( "ORDER_ID" => $arRecur["ORDER_ID"], "PROP_IS_LOCATION" => "Y" ), false, false, array("VALUE") ); if ($arOrderPropValues = $dbOrderPropValues->Fetch()) $deliveryLocation = IntVal($arOrderPropValues["VALUE"]); $dbDelivery = CSaleDelivery::GetList( array("SORT" => "ASC", "NAME" => "ASC"), array( "LID" => $arOrder["LID"], "WEIGHT" => DoubleVal($arProduct["WEIGHT"]) * DoubleVal($arProduct["QUANTITY"]), // Changed by Sigurd, 2007-08-16 "ORDER_PRICE" => $productPrice * DoubleVal($arProduct["QUANTITY"]), "ACTIVE" => "Y", "LOCATION" => $deliveryLocation ) ); while ($arDelivery = $dbDelivery->Fetch()) { $deliveryPriceTmp = roundEx(CCurrencyRates::ConvertCurrency($arDelivery["PRICE"], $arDelivery["CURRENCY"], $baseSiteCurrency), SALE_VALUE_PRECISION); if (IntVal($arDelivery["ID"]) == $arOrder["DELIVERY_ID"]) { $deliveryID = IntVal($arDelivery["ID"]); $deliveryPrice = $deliveryPriceTmp; break; } if ($deliveryPriceTmp < $deliveryPrice || $deliveryID <= 0) { $deliveryID = IntVal($arDelivery["ID"]); $deliveryPrice = $deliveryPriceTmp; } } if ($deliveryID <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGR_NO_DELIVERY"), "NO_DELIVERY"); return False; } } // Sale discounts $discount = 0; $discountPrice = $productPrice; $discountProduct = 0; $dbDiscount = CSaleDiscount::GetList( array("SORT" => "ASC"), array( "LID" => $arOrder["LID"], "ACTIVE" => "Y", "!>ACTIVE_FROM" => Date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL"))), "!<ACTIVE_TO" => Date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL"))), "<=PRICE_FROM" => $productPrice, ">=PRICE_TO" => $productPrice, "USER_GROUPS" => $USER->GetUserGroup($arOrder['USER_ID']), ) ); if ($arDiscount = $dbDiscount->Fetch()) { if ($arDiscount["DISCOUNT_TYPE"] == "P") { $discountProduct = roundEx($productPrice * $arDiscount["DISCOUNT_VALUE"] / 100, SALE_VALUE_PRECISION); $discount = roundEx($discountProduct * DoubleVal($arProduct["QUANTITY"]), SALE_VALUE_PRECISION); // Changed by Sigurd, 2007-08-16 $discountPrice = $productPrice - $discountProduct; } else { $discountValue = CCurrencyRates::ConvertCurrency($arDiscount["DISCOUNT_VALUE"], $arDiscount["CURRENCY"], $baseSiteCurrency); $discountValue = roundEx($discountValue, SALE_VALUE_PRECISION); $discountProduct = roundEx(1.0 * $discountValue / DoubleVal($arProduct["QUANTITY"]), SALE_VALUE_PRECISION);// Changed by Sigurd, 2007-08-16 $discount = roundEx($curDiscount * DoubleVal($arProduct["QUANTITY"]), SALE_VALUE_PRECISION); $discountPrice = $productPrice - $discountProduct; } } $bUseVat = false; $vatRate = 0; if(DoubleVal($arProduct["VAT_RATE"]) > 0) { $bUseVat = true; $vatRate = $arProduct["VAT_RATE"]; } // Tax $arTaxExempt = array(); $dbUserGroups = CUser::GetUserGroupEx($arOrder["USER_ID"]); while ($arUserGroups = $dbUserGroups->Fetch()) { $dbTaxExemptTmp = CSaleTax::GetExemptList(array("GROUP_ID" => $arUserGroups["GROUP_ID"])); while ($arTaxExemptTmp = $dbTaxExemptTmp->Fetch()) { $arTaxExemptTmp["TAX_ID"] = IntVal($arTaxExemptTmp["TAX_ID"]); if (!in_array($arTaxExemptTmp["TAX_ID"], $arTaxExempt)) $arTaxExempt[] = $arTaxExemptTmp["TAX_ID"]; } } $taxPrice = 0; $taxVatPrice = 0; if(!$bUseVat) { $taxLocation = 0; $dbOrderPropValues = CSaleOrderPropsValue::GetList( array(), array( "ORDER_ID" => $arRecur["ORDER_ID"], "PROP_IS_LOCATION4TAX" => "Y" ), false, false, array("VALUE") ); if ($arOrderPropValues = $dbOrderPropValues->Fetch()) $taxLocation = IntVal($arOrderPropValues["VALUE"]); $arTaxList = array(); $dbTaxRateTmp = CSaleTaxRate::GetList( array("APPLY_ORDER" => "ASC"), array( "LID" => $arOrder["LID"], "PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"], "ACTIVE" => "Y", "LOCATION" => $taxLocation ) ); while ($arTaxRateTmp = $dbTaxRateTmp->Fetch()) { if (!in_array(IntVal($arTaxRateTmp["TAX_ID"]), $arTaxExempt)) { $arTaxList[] = $arTaxRateTmp; } } } else { $arTaxList[] = Array( "ID" => 0, "TAX_NAME" => GetMessage("SKGR_VAT"), "IS_PERCENT" => "Y", "VALUE" => $vatRate*100, "VALUE_MONEY" => 0, "APPLY_ORDER" => 100, "IS_IN_PRICE" => "Y", "CODE" => "VAT" ); } $arTaxSums = array(); if (!empty($arTaxList)) { if(!$bUseVat) { $taxPriceTmp = CSaleOrderTax::CountTaxes( $discountPrice * DoubleVal($arProduct["QUANTITY"]), $arTaxList, $baseSiteCurrency ); for ($di = 0, $intCount = count($arTaxList); $di < $intCount; $di++) { $arTaxList[$di]["VALUE_MONEY"] += $arTaxList[$di]["TAX_VAL"]; } for ($di = 0, $intCount = count($arTaxList); $di < $intCount; $di++) { $arTaxSums[$arTaxList[$di]["TAX_ID"]]["VALUE"] = $arTaxList[$di]["VALUE_MONEY"]; $arTaxSums[$arTaxList[$di]["TAX_ID"]]["NAME"] = $arTaxList[$di]["NAME"]; if ($arTaxList[$di]["IS_IN_PRICE"] != "Y") { $taxPrice += $arTaxList[$di]["VALUE_MONEY"]; } } } else { $arTaxList[0]["VALUE_MONEY"] = (($discountPrice / ($vatRate +1)) * $vatRate) * DoubleVal($arProduct["QUANTITY"]); $taxVatPrice = $arTaxList[0]["VALUE_MONEY"]; } } // Changed by Sigurd, 2007-08-16 $totalOrderPrice = $discountPrice * DoubleVal($arProduct["QUANTITY"]) + $deliveryPrice + $taxPrice; $arProduct["WITHOUT_ORDER"] = (($arProduct["WITHOUT_ORDER"]=="Y") ? "Y" : "N"); if ($arProduct["WITHOUT_ORDER"] == "N") { $DB->StartTransaction(); // Saving $arSaleUser = CSaleUser::GetList(Array(), Array("USER_ID" => $arOrder["USER_ID"])); if(!empty($arSaleUser)) { $currentFUser = $arSaleUser["ID"]; } else { $currentFUser = CSaleUser::_Add( array( "=DATE_INSERT" => $DB->GetNowFunction(), "=DATE_UPDATE" => $DB->GetNowFunction(), "USER_ID" => $arOrder["USER_ID"] ) ); } $arFields = array( "FUSER_ID" => $currentFUser, "PRODUCT_ID" => $arProduct["PRODUCT_ID"], "PRODUCT_NAME" => $arProduct["PRODUCT_NAME"], "PRODUCT_URL" => $arProduct["PRODUCT_URL"], "PRODUCT_PRICE_ID" => $arProduct["PRODUCT_PRICE_ID"], "PRICE" => $arProduct["PRICE"], "CURRENCY" => $arProduct["CURRENCY"], "WEIGHT" => $arProduct["WEIGHT"], "QUANTITY" => $arProduct["QUANTITY"], "LID" => $arOrder["LID"], "DELAY" => "N", "CAN_BUY" => "Y", "NAME" => $arProduct["NAME"], "CALLBACK_FUNC" => $arProduct["CALLBACK_FUNC"], "ORDER_CALLBACK_FUNC" => $arProduct["ORDER_CALLBACK_FUNC"], "CANCEL_CALLBACK_FUNC" => $arProduct["CANCEL_CALLBACK_FUNC"], "PAY_CALLBACK_FUNC" => $arProduct["PAY_CALLBACK_FUNC"], "PRODUCT_PROVIDER_CLASS" => $arProduct["PRODUCT_PROVIDER_CLASS"], "MODULE" => $arRecur["MODULE"], "NOTES" => $arProduct["CATALOG_GROUP_NAME"], "DETAIL_PAGE_URL" => $arProduct["DETAIL_PAGE_URL"], "VATE_RATE" => $arProduct["VATE_RATE"], "PRODUCT_XML_ID" => $arProduct["PRODUCT_XML_ID"], "RENEWAL" => "Y" ); $basketID = CSaleBasket::Add($arFields); $basketID = IntVal($basketID); if ($basketID <= 0) $bSuccess = False; if ($bSuccess) { if (CModule::IncludeModule("statistic")) CStatistic::Set_Event("eStore", "add2basket", $arFields["PRODUCT_ID"]); $arFields = array( "LID" => $arOrder["LID"], "PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"], "PAYED" => "N", "CANCELED" => "N", "STATUS_ID" => "N", "PRICE_DELIVERY" => $deliveryPrice, "ALLOW_DELIVERY" => "N", "PRICE" => $totalOrderPrice, "CURRENCY" => $baseSiteCurrency, "DISCOUNT_VALUE" => $discount, "USER_ID" => $arOrder["USER_ID"], "PAY_SYSTEM_ID" => $arOrder["PAY_SYSTEM_ID"], "DELIVERY_ID" => $deliveryID, "USER_DESCRIPTION" => $arOrder["USER_DESCRIPTION"], "TAX_VALUE" => (($bUseVat)? $taxVatPrice : $taxPrice), "STAT_GID" => $arOrder["STAT_GID"], "RECURRING_ID" => $arRecur["ID"] ); $newOrderID = CSaleOrder::Add($arFields); $newOrderID = IntVal($newOrderID); if ($newOrderID <= 0) $bSuccess = False; } if ($bSuccess) { $arDiscounts = array(); $arDiscounts[$basketID] = $discountProduct; CSaleBasket::OrderBasket($newOrderID, $currentFUser, $arOrder["LID"], $arDiscounts); } if ($bSuccess) { for ($it = 0, $intCount = count($arTaxList); $it < $intCount; $it++) { $arFields = array( "ORDER_ID" => $newOrderID, "TAX_NAME" => $arTaxList[$it]["TAX_NAME"], "IS_PERCENT" => $arTaxList[$it]["IS_PERCENT"], "VALUE" => ($arTaxList[$it]["IS_PERCENT"]=="Y") ? $arTaxList[$it]["VALUE"] : RoundEx(CCurrencyRates::ConvertCurrency($arTaxList[$it]["VALUE"], $arTaxList[$it]["CURRENCY"], $baseSiteCurrency), 2), "VALUE_MONEY" => $arTaxList[$it]["VALUE_MONEY"], "APPLY_ORDER" => $arTaxList[$it]["APPLY_ORDER"], "IS_IN_PRICE" => $arTaxList[$it]["IS_IN_PRICE"], "CODE" => $arTaxList[$it]["CODE"] ); CSaleOrderTax::Add($arFields); } $dbOrderPropValues = CSaleOrderPropsValue::GetList( array(), array("ORDER_ID" => $arRecur["ORDER_ID"]), false, false, array("ORDER_PROPS_ID", "NAME", "CODE", "VALUE", "PROP_IS_PAYER", "PROP_IS_EMAIL") ); while ($arOrderPropValues = $dbOrderPropValues->Fetch()) { $arFields = array( "ORDER_ID" => $newOrderID, "ORDER_PROPS_ID" => $arOrderPropValues["ORDER_PROPS_ID"], "NAME" => $arOrderPropValues["NAME"], "CODE" => $arOrderPropValues["CODE"], "VALUE" => $arOrderPropValues["VALUE"] ); CSaleOrderPropsValue::Add($arFields); if ($arOrderPropValues["PROP_IS_PAYER"] == "Y") $payerName = $arOrderPropValues["VALUE"]; if ($arOrderPropValues["PROP_IS_EMAIL"] == "Y") $payerEMail = $arOrderPropValues["VALUE"]; } } if ($bSuccess) { if (CModule::IncludeModule("statistic")) CStatistic::Set_Event("eStore", "order_create", $newOrderID); } if ($bSuccess) { $strOrderList = ""; $dbBasketTmp = CSaleBasket::GetList( array("NAME" => "ASC"), array("ORDER_ID" => $newOrderID) ); while ($arBasketTmp = $dbBasketTmp->Fetch()) { $strOrderList .= $arBasketTmp["NAME"]." - ".$arBasketTmp["QUANTITY"]." ".GetMessage("SALE_QUANTITY_UNIT"); $strOrderList .= "\n"; } if (strlen($payerName) <= 0 || strlen($payerEMail) <= 0) { $dbUser = CUser::GetByID($arOrder["USER_ID"]); if ($arUser = $dbUser->Fetch()) { if (strlen($payerName) <= 0) $payerName = $arUser["NAME"].((strlen($arUser["NAME"])<=0 || strlen($arUser["LAST_NAME"])<=0) ? "" : " ").$arUser["LAST_NAME"]; if (strlen($payerEMail) <= 0) $payerEMail = $arUser["EMAIL"]; } } $arFields = Array( "ORDER_ID" => $newOrderID, "ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", $arOrder["LID"]))), "ORDER_USER" => $payerName, "PRICE" => SaleFormatCurrency($totalOrderPrice, $baseSiteCurrency), "BCC" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME), "EMAIL" => $payerEMail, "ORDER_LIST" => $strOrderList, "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME) ); $eventName = "SALE_NEW_ORDER_RECURRING"; $bSend = true; foreach(GetModuleEvents("sale", "OnOrderRecurringSendEmail", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, Array($newOrderID, &$eventName, &$arFields))===false) $bSend = false; } if($bSend) { $event = new CEvent; $event->Send($eventName, $arOrder["LID"], $arFields, "N"); } } if ($bSuccess) $DB->Commit(); else $DB->Rollback(); } } else { $totalOrderPrice = $arOrder["PRICE"]; $baseSiteCurrency = $arOrder["CURRENCY"]; } $res = False; if ($bSuccess) { $res = CSaleUserAccount::Pay($arOrder["USER_ID"], $totalOrderPrice, $baseSiteCurrency, $newOrderID, True); if ($res) { if ($arProduct["WITHOUT_ORDER"] == "N") { CSaleOrder::PayOrder($newOrderID, "Y", False, False, $arRecur["ID"]); CSaleOrder::DeliverOrder($newOrderID, "Y", $arRecur["ID"]); CSaleOrder::DeductOrder($newOrderID, "Y", "", true, array(), $arRecur["ID"]); } else { /** @var $productProvider IBXSaleProductProvider */ if ($productProvider = CSaleBasket::GetProductProvider($arProduct)) { $r = $productProvider::DeliverProduct(array( "PRODUCT_ID" => $arProduct["PRODUCT_ID"], "USER_ID" => $arOrder["USER_ID"], "PAID" => true )); } else { $r = CSaleBasket::ExecuteCallbackFunction( $arProduct["PAY_CALLBACK_FUNC"], $arRecur["MODULE"], $arProduct["PRODUCT_ID"], $arOrder["USER_ID"], true ); } } $arFields = array( "ORDER_ID" => $newOrderID, "PRODUCT_NAME" => $arProduct["PRODUCT_NAME"], "PRODUCT_URL" => $arProduct["PRODUCT_URL"], "PRICE_TYPE" => $arProduct["PRICE_TYPE"], "RECUR_SCHEME_TYPE" => $arProduct["RECUR_SCHEME_TYPE"], "RECUR_SCHEME_LENGTH" => $arProduct["RECUR_SCHEME_LENGTH"], "WITHOUT_ORDER" => $arProduct["WITHOUT_ORDER"], "PRIOR_DATE" => Date($GLOBALS["DB"]->DateFormatToPHP(CLang::GetDateFormat("FULL", SITE_ID))), "NEXT_DATE" => $arProduct["NEXT_DATE"], "REMAINING_ATTEMPTS" => (Defined("SALE_PROC_REC_ATTEMPTS") ? SALE_PROC_REC_ATTEMPTS : 3), "SUCCESS_PAYMENT" => "Y" ); CSaleRecurring::Update($arRecur["ID"], $arFields); } else { $arFields = array( "ORDER_ID" => $newOrderID, "PRODUCT_NAME" => $arProduct["PRODUCT_NAME"], "PRODUCT_URL" => $arProduct["PRODUCT_URL"], "PRICE_TYPE" => $arProduct["PRICE_TYPE"], "RECUR_SCHEME_LENGTH" => $arProduct["RECUR_SCHEME_LENGTH"], "RECUR_SCHEME_TYPE" => $arProduct["RECUR_SCHEME_TYPE"], "WITHOUT_ORDER" => $arProduct["WITHOUT_ORDER"], "NEXT_DATE" => Date($GLOBALS["DB"]->DateFormatToPHP(CLang::GetDateFormat("FULL", SITE_ID)), time() + SALE_PROC_REC_TIME + CTimeZone::GetOffset()), "REMAINING_ATTEMPTS" => (IntVal($arRecur["REMAINING_ATTEMPTS"]) - 1), "SUCCESS_PAYMENT" => "N" ); CSaleRecurring::Update($arRecur["ID"], $arFields); if ((IntVal($arRecur["REMAINING_ATTEMPTS"]) - 1) <= 0) { CSaleRecurring::CancelRecurring($arRecur["ID"], "Y", "Can't pay order"); /* $arFields["CANCELED"] = "Y"; $arFields["DATE_CANCELED"] = Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))); $arFields["CANCELED_REASON"] = "Can't pay order"; */ } } } return $res; }
function CancelOrder($ID, $val, $description = "") { global $DB, $USER; $ID = IntVal($ID); $val = $val != "Y" ? "N" : "Y"; $description = Trim($description); if ($ID <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGO_NO_ORDER_ID1"), "NO_ORDER_ID"); return False; } $arOrder = CSaleOrder::GetByID($ID); if (!$arOrder) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $ID, GetMessage("SKGO_NO_ORDER")), "NO_ORDER"); return False; } if ($arOrder["CANCELED"] == $val) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $ID, GetMessage("SKGO_DUB_CANCEL")), "ALREADY_FLAG"); return False; } foreach (GetModuleEvents("sale", "OnSaleBeforeCancelOrder", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID, $val)) === false) { return false; } } if ($val == "Y") { if ($arOrder["PAYED"] == "Y") { if (!CSaleOrder::PayOrder($ID, "N", True, True)) { return False; } } else { $arOrder["SUM_PAID"] = DoubleVal($arOrder["SUM_PAID"]); if ($arOrder["SUM_PAID"] > 0) { if (!CSaleUserAccount::UpdateAccount($arOrder["USER_ID"], $arOrder["SUM_PAID"], $arOrder["CURRENCY"], "ORDER_CANCEL_PART", $ID)) { return False; } } } if ($arOrder["ALLOW_DELIVERY"] == "Y") { if (!CSaleOrder::DeliverOrder($ID, "N")) { return False; } } } $arFields = array("CANCELED" => $val, "=DATE_CANCELED" => $DB->GetNowFunction(), "REASON_CANCELED" => strlen($description) > 0 ? $description : false, "EMP_CANCELED_ID" => IntVal($USER->GetID()) > 0 ? IntVal($USER->GetID()) : false); $res = CSaleOrder::Update($ID, $arFields); unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID]); //this method is used only for catalogs without reservation and deduction support CSaleBasket::OrderCanceled($ID, $val == "Y" ? True : False); foreach (GetModuleEvents("sale", "OnSaleCancelOrder", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $val, $description)); } if ($val == "Y") { CTimeZone::Disable(); $arOrder = CSaleOrder::GetByID($ID); CTimeZone::Enable(); $userEmail = ""; $dbOrderProp = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $ID, "PROP_IS_EMAIL" => "Y")); if ($arOrderProp = $dbOrderProp->Fetch()) { $userEmail = $arOrderProp["VALUE"]; } if (strlen($userEmail) <= 0) { $dbUser = CUser::GetByID($arOrder["USER_ID"]); if ($arUser = $dbUser->Fetch()) { $userEmail = $arUser["EMAIL"]; } } $event = new CEvent(); $arFields = array("ORDER_ID" => $ID, "ORDER_DATE" => $arOrder["DATE_INSERT_FORMAT"], "EMAIL" => $userEmail, "ORDER_CANCEL_DESCRIPTION" => $description, "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@" . $_SERVER["SERVER_NAME"])); $eventName = "SALE_ORDER_CANCEL"; $bSend = true; foreach (GetModuleEvents("sale", "OnOrderCancelSendEmail", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID, &$eventName, &$arFields)) === false) { $bSend = false; } } if ($bSend) { $event = new CEvent(); $event->Send($eventName, $arOrder["LID"], $arFields, "N"); } if (CModule::IncludeModule("statistic")) { CStatEvent::AddByEvents("eStore", "order_cancel", $ID, "", $arOrder["STAT_GID"]); } } if ($val == "Y") { if ($arOrder["DEDUCTED"] == "Y") { $rs = CSaleOrder::DeductOrder($ID, "N"); if (!$rs) { return false; } } if ($arOrder["RESERVED"] == "Y") { if (!CSaleOrder::ReserveOrder($ID, "N")) { } return false; } } else { if (COption::GetOptionString("sale", "product_reserve_condition", "O") == "O" && $arOrder["RESERVED"] != "Y") { if (!CSaleOrder::ReserveOrder($ID, "Y")) { } return false; } } return $res; }
if ($deliver) { $result = CSaleOrder::DeliverOrder($id, $deliver, 0, $arAdditionalFields); } elseif (!empty($arAdditionalFields)) { $result = CSaleOrder::Update($id, $arAdditionalFields); } break; case "order_pay": $bUserCanPayOrder = CSaleOrder::CanUserChangeOrderFlag($id, "PERM_PAYMENT", $GLOBALS["USER"]->GetUserGroupArray()); if (!$bUserCanPayOrder) { break; } $payed = isset($_REQUEST['payed']) ? trim($_REQUEST['payed']) : 'N'; $pay_from_account = isset($_REQUEST['pay_from_account']) ? trim($_REQUEST['pay_from_account']) : 'N'; $pay_from_account_back = isset($_REQUEST['pay_from_account_back']) ? trim($_REQUEST['pay_from_account_back']) : 'N'; $arAdditionalFields = array(); if ($status_id && CSaleOrder::CanUserChangeOrderStatus($id, $status_id, $GLOBALS["USER"]->GetUserGroupArray())) { $arAdditionalFields = array("STATUS_ID" => $status_id); } $bWithdraw = true; $bPay = true; if ($_REQUEST["pay_from_account"] == "Y") { $bPay = false; } if ($payed == "N" && $_REQUEST["pay_from_account_back"] != "Y") { $bWithdraw = false; } $result = CSaleOrder::PayOrder($id, $payed, $bWithdraw, $bPay, 0, $arAdditionalFields); break; } echo $result; }
// Zip $parms .= "&STREET=" . urlencode($address1); // Address $parms .= "&COMMENT1=" . urlencode($ORDER_ID); $parms .= "&COMMENT2=" . urlencode($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"]); $ret_com = "{$strExePath} {$PF_HOST} {$PF_PORT} \"{$parms}\" 30"; putenv("PFPRO_CERT_PATH=" . $PFPRO_CERT_PATH); putenv("LD_LIBRARY_PATH=" . $strExeDir); exec($ret_com, $arOutput, $ret_var); $strOutput = $arOutput[0]; parse_str($strOutput, $arResult); if (is_array($arResult) && strlen($arResult["RESULT"]) > 0) { $arFields = array("PS_STATUS" => $arResult["RESULT"] == 0 ? "Y" : "N", "PS_STATUS_CODE" => $arResult["RESULT"], "PS_STATUS_DESCRIPTION" => $arResult["RESPMSG"] . " - " . $arResult["PREFPSMSG"], "PS_STATUS_MESSAGE" => $arResult["PNREF"], "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG)))); $arResult["RESULT"] = IntVal($arResult["RESULT"]); if ($arResult["RESULT"] == 0) { CSaleOrder::PayOrder($ORDER_ID, "Y"); } CSaleOrder::Update($ORDER_ID, $arFields); $arResult["RESULT"] = IntVal($arResult["RESULT"]); if ($arResult["RESULT"] == 0) { $bNonePay = False; } else { if ($arResult["RESULT"] < 0) { $strErrorTmp .= "Communication Error: [" . $arResult["RESULT"] . "] " . $arResult["RESPMSG"] . " - " . $arResult["PREFPSMSG"] . ". "; } elseif ($arPaySysRes_tmp["RESULT"] == 125) { $strErrorTmp .= "Your payment is declined by Fraud Service. Please contact us to make payment. "; } elseif ($arResult["RESULT"] == 126) { $strErrorTmp .= "Your payment is under review by Fraud Service. We contact you in 48 hours to get more specific information. "; } elseif (is_set($arErrorCodes, $arResult["RESULT"])) { $strErrorTmp .= $arErrorCodes[$arResult["RESULT"]] . ". "; } else {
protected function mapYandexStatusToOrder($order, $yandexStatus, $cancelReason = "") { global $APPLICATION; if (!is_array($order) || !isset($order["ID"]) || strlen($yandexStatus) <= 0) { return false; } $settings = $this->getSettingsBySiteId($order["LID"]); if (!isset($settings["STATUS_IN"][$yandexStatus]) || strlen($settings["STATUS_IN"][$yandexStatus]) <= 0) { return false; } $result = false; $bitrixStatus = $settings["STATUS_IN"][$yandexStatus]; switch ($bitrixStatus) { /* flags */ case "CANCELED": $errorMessageTmp = ""; $result = CSaleOrder::CancelOrder($order["ID"], "Y", $cancelReason); if (!$result) { if ($ex = $APPLICATION->GetException()) { if ($ex->GetID() != "ALREADY_FLAG") { $errorMessageTmp .= $ex->GetString(); } } else { $errorMessageTmp .= GetMessage("ERROR_CANCEL_ORDER") . ". "; } } if ($errorMessageTmp != "") { $this->log(self::LOG_LEVEL_ERROR, "YMARKET_INCOMING_ORDER_STATUS", $order["XML_ID"], $errorMessageTmp); } else { $this->log(self::LOG_LEVEL_INFO, "YMARKET_INCOMING_ORDER_STATUS", $order["XML_ID"], GetMessage("SALE_YMH_INCOMING_ORDER_STATUS_CANCELED") . ": " . $order["ID"]); } break; case "ALLOW_DELIVERY": $result = CSaleOrder::DeliverOrder($order["ID"], "Y"); break; case "PAYED": $result = CSaleOrder::PayOrder($order["ID"], "Y"); break; case "DEDUCTED": $result = CSaleOrder::DeductOrder($order["ID"], "Y"); break; /* statuses */ /* statuses */ default: if (CSaleStatus::GetByID($bitrixStatus)) { $result = CSaleOrder::StatusOrder($order["ID"], $bitrixStatus); } break; } $this->log($result ? self::LOG_LEVEL_INFO : self::LOG_LEVEL_ERROR, "YMARKET_ORDER_STATUS_CHANGE", $order["ID"], ($result ? GetMessage("SALE_YMH_LOG_TYPE_ORDER_STATUS_CHANGE_OK") : GetMessage("SALE_YMH_LOG_TYPE_ORDER_STATUS_CHANGE_ERROR")) . " (" . $bitrixStatus . ")"); return $result; }