static function DoSaveUserProfile($userId, $profileId, $profileName, $personTypeId, $orderProps, &$arErrors) { $profileId = intval($profileId); $arIDs = array(); if ($profileId > 0) { $dbProfile = CSaleOrderUserProps::GetList(array(), array("ID" => $profileId), false, false, array("ID", "NAME", "USER_ID", "PERSON_TYPE_ID")); $arProfile = $dbProfile->Fetch(); if (!$arProfile) { $arErrors[] = array("CODE" => "PROFILE_NOT_FOUND", "TEXT" => GetMessage('SKGOUP_PROFILE_NOT_FOUND')); return false; } if ($arProfile["USER_ID"] != $userId || $arProfile["PERSON_TYPE_ID"] != $personTypeId) { $arErrors[] = array("CODE" => "PARAM", "TEXT" => GetMessage('SKGOUP_PARRAMS_ERROR')); return false; } //if (strlen($profileName) > 0 && $profileName != $arProfile["NAME"]) if (strlen($profileName) > 0) { $arFields = array("NAME" => $profileName, "USER_ID" => $userId); CSaleOrderUserProps::Update($profileId, $arFields); } $dbUserPropsValues = CSaleOrderUserPropsValue::GetList(array(), array("USER_PROPS_ID" => $profileId), false, false, array("ID", "ORDER_PROPS_ID")); while ($arUserPropsValue = $dbUserPropsValues->Fetch()) { $arIDs[$arUserPropsValue["ORDER_PROPS_ID"]] = $arUserPropsValue["ID"]; } } if (!is_array($orderProps)) { $dbOrderPropsValues = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => intval($orderProps)), false, false, array("ORDER_PROPS_ID", "VALUE")); $orderProps = array(); while ($arOrderPropsValue = $dbOrderPropsValues->Fetch()) { $orderProps[$arOrderPropsValue["ORDER_PROPS_ID"]] = $arOrderPropsValue["VALUE"]; } } $dbOrderProperties = CSaleOrderProps::GetList(array(), array("PERSON_TYPE_ID" => $personTypeId, "ACTIVE" => "Y", "UTIL" => "N", "USER_PROPS" => "Y"), false, false, array("ID", "TYPE", "NAME", "CODE")); while ($arOrderProperty = $dbOrderProperties->Fetch()) { $curVal = $orderProps[$arOrderProperty["ID"]]; if ($arOrderProperty["TYPE"] == "MULTISELECT" && is_array($curVal)) { $curVal = implode(",", $curVal); } if (strlen($curVal) > 0) { if ($profileId <= 0) { if (strlen($profileName) <= 0) { $profileName = GetMessage("SOA_PROFILE") . " " . Date("Y-m-d"); } $arFields = array("NAME" => $profileName, "USER_ID" => $userId, "PERSON_TYPE_ID" => $personTypeId); $profileId = CSaleOrderUserProps::Add($arFields); } if (array_key_exists($arOrderProperty["ID"], $arIDs)) { $arFields = array("NAME" => $arOrderProperty["NAME"], "VALUE" => $curVal); CSaleOrderUserPropsValue::Update($arIDs[$arOrderProperty["ID"]], $arFields); unset($arIDs[$arOrderProperty["ID"]]); } else { $arFields = array("USER_PROPS_ID" => $profileId, "ORDER_PROPS_ID" => $arOrderProperty["ID"], "NAME" => $arOrderProperty["NAME"], "VALUE" => $curVal); CSaleOrderUserPropsValue::Add($arFields); } } } foreach ($arIDs as $id) { CSaleOrderUserPropsValue::Delete($id); } }
public static function GetOrderPropId($code) { $id = 0; if (CModule::IncludeModule('sale')) { $db_props = CSaleOrderProps::GetList(array("SORT" => "ASC"), array("CODE" => $code), false, false, array("ID")); if ($props = $db_props->Fetch()) { $id = $props["ID"]; } } else { Trace("Error: can't include module sale"); } return $id; }
protected function getOrderProps() { if ($this->orderProps === null) { $this->orderProps = array(); if (isset($this->formData["PERSON_TYPE"])) { $db_props = CSaleOrderProps::GetList(array(), array("PERSON_TYPE_ID" => $this->formData["PERSON_TYPE"])); while ($prop = $db_props->Fetch()) { $this->orderProps[] = $prop; } } } return $this->orderProps; }
function Delete($ID) { global $DB; $ID = IntVal($ID); $db_orderProps = CSaleOrderProps::GetList($by = "PROPS_GROUP_ID", $order = "ASC", array("PROPS_GROUP_ID" => $ID)); while ($arOrderProps = $db_orderProps->Fetch()) { $DB->Query("DELETE FROM b_sale_order_props_variant WHERE ORDER_PROPS_ID = " . $arOrderProps["ID"] . "", true); $DB->Query("UPDATE b_sale_order_props_value SET ORDER_PROPS_ID = NULL WHERE ORDER_PROPS_ID = " . $arOrderProps["ID"] . "", true); $DB->Query("DELETE FROM b_sale_user_props_value WHERE ORDER_PROPS_ID = " . $arOrderProps["ID"] . "", true); } $DB->Query("DELETE FROM b_sale_order_props WHERE PROPS_GROUP_ID = " . $ID . "", true); CSaleOrderUserProps::ClearEmpty(); return $DB->Query("DELETE FROM b_sale_order_props_group WHERE ID = " . $ID . "", true); }
public static function getOrderProps($id = false) { static $result = null; static $resultById = null; static $resultByCode = null; if($result === null) { $rs = \CSaleOrderProps::GetList(array(), array(), false, false, array('ID', 'NAME', 'CODE')); while($ar = $rs->GetNext(true, false)) { $obj = new OrderProp($ar); $resultById[ $ar['ID'] ] = &$obj; $resultByCode[ $ar['CODE'] ] = &$obj; $result[] = &$obj; unset($obj); } } return $id ? (isset($resultById[$id]) ? $resultById[$id] : (isset($resultByCode[$id]) ? $resultByCode[$id] : false)) : $result; }
static function Update($profileID, $arFields) { global $DB; $result = new WS_SaleUserProfilesErrorsContainer(); if (empty($profileID)) { return $result->addErrorString(GetMessage("ws.saleuserprofiles_save_error_required_id")); } $DB->StartTransaction(); if (!empty($arFields["PROPS"])) { $props = $arFields["PROPS"]; unset($arFields["PROPS"]); } // сохраняем поля if (!empty($arFields)) { if(!$profileID = CSaleOrderUserProps::Update($profileID, $arFields)){ $result->addErrorString(GetMessage("ws.saleuserprofiles_save_error_save_fields")); } else { $arFields = CSaleOrderUserProps::GetByID($profileID); } } // сохраняем свойства if (!empty($props) && !$result->getErrorsAsString()) { // удаляем все свойства CSaleOrderUserPropsValue::DeleteAll($profileID); $res = CSaleOrderProps::GetList(array(), array("PERSON_TYPE_ID" => $arFields["PERSON_TYPE_ID"], "USER_PROPS" => "Y"), false, false, array()); while ($arRes = $res->Fetch()) { if ($arRes['REQUIED'] === 'Y' && empty($props[$arRes['ID']])) { $result->addErrorString(GetMessage("ws.saleuserprofiles_save_error_required_field") . "\"" . $arRes["NAME"] . "\""); continue; } $arValueTemp = $props[$arRes['ID']]; if (is_array($arValueTemp)) { $arValueTemp = ""; for ($i = 0; $i < count($props[$arRes['ID']]); $i++) { if ($i > 0) { $arValueTemp .= ","; } $arValueTemp .= $props[$arRes['ID']][$i]; } } $arProp = array( "VALUE" => $arValueTemp, "NAME" => $arRes["NAME"], "ORDER_PROPS_ID" => $arRes['ID'], "USER_PROPS_ID" => $profileID ); CSaleOrderUserPropsValue::Add($arProp); } } if ($result->getErrorsAsString()) { $DB->Rollback(); } else { $DB->Commit(); } return $result; }
public static function getLocationPropertyInfo() { static $info; if ($info === null) { $info = array(); if (CSaleLocation::isLocationProMigrated()) { $res = CSaleOrderProps::GetList(array(), array('TYPE' => 'LOCATION'), false, false, array('ID', 'CODE')); while ($item = $res->fetch()) { $info['ID'][$item['ID']] = $item['CODE']; $info['CODE'][$item['CODE']] = $item['ID']; } } } return $info; }
<?php $arPropValues = array(); if (!$bVarsFromForm || $PARTIAL_SUBMIT == "Y") { $dbPropValuesList = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $ID), false, false, array("ID", "ORDER_PROPS_ID", "NAME", "VALUE", "CODE")); while ($arPropValuesList = $dbPropValuesList->Fetch()) { $arPropValues[IntVal($arPropValuesList["ORDER_PROPS_ID"])] = $arPropValuesList["VALUE"]; } } else { foreach ($_REQUEST as $key => $value) { if (substr($key, 0, strlen("ORDER_PROP_")) == "ORDER_PROP_") { $arPropValues[IntVal(substr($key, strlen("ORDER_PROP_")))] = htmlspecialcharsEx($value); } } } $propertyGroupID = -1; $dbProperties = CSaleOrderProps::GetList(array("GROUP_SORT" => "ASC", "PROPS_GROUP_ID" => "ASC", "SORT" => "ASC", "NAME" => "ASC"), array("PERSON_TYPE_ID" => $str_PERSON_TYPE_ID), false, false, array("*")); while ($arProperties = $dbProperties->Fetch()) { if (IntVal($arProperties["PROPS_GROUP_ID"]) != $propertyGroupID) { ?> <tr class="heading"> <td colspan="2"> <?php echo htmlspecialcharsEx($arProperties["GROUP_NAME"]); ?> </td> </tr> <?php $propertyGroupID = IntVal($arProperties["PROPS_GROUP_ID"]); } ?> <tr>
function ShowStep() { $wizard =& $this->GetWizard(); $paySystem = $wizard->GetVar("paySystem"); $siteID = $wizard->GetVar("siteID"); $personType = $wizard->GetVar("personType"); CModule::IncludeModule("sale"); function LocalGetPSActionParams($fileName) { $arPSCorrespondence = array(); if (file_exists($fileName) && is_file($fileName)) { include $fileName; } return $arPSCorrespondence; } $dbPaySystem = CSalePaySystem::GetList(array("SORT" => "ASC"), array("ACTIVE" => "Y", "LID" => $siteID)); while ($arPaySystem = $dbPaySystem->GetNext()) { $arPaySystems[$arPaySystem["ID"]] = $arPaySystem["NAME"]; } $dbPersonType = CSalePersonType::GetList(array("SORT" => "ASC"), array("ACTIVE" => "Y", "LID" => $siteID)); while ($arPersonType = $dbPersonType->GetNext()) { $arPersons[$arPersonType["ID"]] = $arPersonType["NAME"]; } $arFieldsList["USER"] = array("ID" => GetMessage("SPS_USER_ID"), "LOGIN" => GetMessage("SPS_USER_LOGIN"), "NAME" => GetMessage("SPS_USER_NAME"), "LAST_NAME" => GetMessage("SPS_USER_LAST_NAME"), "EMAIL" => "EMail", "LID" => GetMessage("SPS_USER_SITE"), "PERSONAL_PROFESSION" => GetMessage("SPS_USER_PROF"), "PERSONAL_WWW" => GetMessage("SPS_USER_WEB"), "PERSONAL_ICQ" => GetMessage("SPS_USER_ICQ"), "PERSONAL_GENDER" => GetMessage("SPS_USER_SEX"), "PERSONAL_FAX" => GetMessage("SPS_USER_FAX"), "PERSONAL_MOBILE" => GetMessage("SPS_USER_PHONE"), "PERSONAL_STREET" => GetMessage("SPS_USER_ADDRESS"), "PERSONAL_MAILBOX" => GetMessage("SPS_USER_POST"), "PERSONAL_CITY" => GetMessage("SPS_USER_CITY"), "PERSONAL_STATE" => GetMessage("SPS_USER_STATE"), "PERSONAL_ZIP" => GetMessage("SPS_USER_ZIP"), "PERSONAL_COUNTRY" => GetMessage("SPS_USER_COUNTRY"), "WORK_COMPANY" => GetMessage("SPS_USER_COMPANY"), "WORK_DEPARTMENT" => GetMessage("SPS_USER_DEPT"), "WORK_POSITION" => GetMessage("SPS_USER_DOL"), "WORK_WWW" => GetMessage("SPS_USER_COM_WEB"), "WORK_PHONE" => GetMessage("SPS_USER_COM_PHONE"), "WORK_FAX" => GetMessage("SPS_USER_COM_FAX"), "WORK_STREET" => GetMessage("SPS_USER_COM_ADDRESS"), "WORK_MAILBOX" => GetMessage("SPS_USER_COM_POST"), "WORK_CITY" => GetMessage("SPS_USER_COM_CITY"), "WORK_STATE" => GetMessage("SPS_USER_COM_STATE"), "WORK_ZIP" => GetMessage("SPS_USER_COM_ZIP"), "WORK_COUNTRY" => GetMessage("SPS_USER_COM_COUNTRY")); $arFieldsList["ORDER"] = array("ID" => GetMessage("SPS_ORDER_ID"), "DATE_INSERT" => GetMessage("SPS_ORDER_DATETIME"), "DATE_INSERT_DATE" => GetMessage("SPS_ORDER_DATE"), "SHOULD_PAY" => GetMessage("SPS_ORDER_PRICE"), "CURRENCY" => GetMessage("SPS_ORDER_CURRENCY"), "PRICE" => GetMessage("SPS_ORDER_SUM"), "LID" => GetMessage("SPS_ORDER_SITE"), "PRICE_DELIVERY" => GetMessage("SPS_ORDER_PRICE_DELIV"), "DISCOUNT_VALUE" => GetMessage("SPS_ORDER_DESCOUNT"), "USER_ID" => GetMessage("SPS_ORDER_USER_ID"), "PAY_SYSTEM_ID" => GetMessage("SPS_ORDER_PS"), "DELIVERY_ID" => GetMessage("SPS_ORDER_DELIV"), "TAX_VALUE" => GetMessage("SPS_ORDER_TAX")); foreach ($personType as $personID) { $dbOrderProps = CSaleOrderProps::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array("PERSON_TYPE_ID" => $personID), false, false, array("ID", "CODE", "NAME", "TYPE", "SORT", "PERSON_TYPE_ID")); while ($arOrderProps = $dbOrderProps->GetNext()) { $arFieldsList["PROPERTY"][$arOrderProps["PERSON_TYPE_ID"]][strlen($arOrderProps["CODE"]) > 0 ? $arOrderProps["CODE"] : $arOrderProps["ID"]] = $arOrderProps["NAME"]; if ($arOrderProps["TYPE"] == "LOCATION") { $arFieldsList["PROPERTY"][$arOrderProps["PERSON_TYPE_ID"]][(strlen($arOrderProps["CODE"]) > 0 ? $arOrderProps["CODE"] : $arOrderProps["ID"]) . "_COUNTRY"] = $arOrderProps["NAME"] . " (" . GetMessage("SPS_JCOUNTRY") . ")"; $arFieldsList["PROPERTY"][$arOrderProps["PERSON_TYPE_ID"]][(strlen($arOrderProps["CODE"]) > 0 ? $arOrderProps["CODE"] : $arOrderProps["ID"]) . "_CITY"] = $arOrderProps["NAME"] . " (" . GetMessage("SPS_JCITY") . ")"; } } } ?> <script type="text/javascript"> var arUserFieldsList = new Array(); var arUserFieldsNameList = new Array(); var arOrderFieldsList = new Array(); var arOrderFieldsNameList = new Array(); var arPropFieldsList = new Array(); var arPropFieldsNameList = new Array(); <?php $i = -1; foreach ($arFieldsList["USER"] as $k => $v) { $i++; ?> arUserFieldsList[<?php echo $i; ?> ] = "<?php echo $k; ?> "; arUserFieldsNameList[<?php echo $i; ?> ] = "<?php echo $v; ?> "; <?php } $i = -1; foreach ($arFieldsList["ORDER"] as $k => $v) { $i++; ?> arOrderFieldsList[<?php echo $i; ?> ] = "<?php echo $k; ?> "; arOrderFieldsNameList[<?php echo $i; ?> ] = "<?php echo $v; ?> "; <?php } $i = -1; foreach ($arFieldsList["PROPERTY"] as $k => $v) { ?> arPropFieldsList[<?php echo $k; ?> ] = new Array(); arPropFieldsNameList[<?php echo $k; ?> ] = new Array(); <?php foreach ($v as $k1 => $v1) { $i++; ?> arPropFieldsList[<?php echo $k; ?> ][<?php echo $i; ?> ] = "<?php echo $k1; ?> "; arPropFieldsNameList[<?php echo $k; ?> ][<?php echo $i; ?> ] = "<?php echo $v1; ?> "; <?php } } ?> function changeVariantList(id, value, ind) { var oValue1 = document.getElementById("VALUE1_" + id); var oValue2 = document.getElementById("VALUE2_" + id); var value1_length = oValue1.length; while (value1_length > 0) { value1_length--; oValue1.options[value1_length] = null; } value1_length = 0; if (value == "USER") { oValue2.style["display"] = "none"; oValue1.style["display"] = "block"; for (i = 0; i < arUserFieldsList.length; i++) { var newoption = new Option(arUserFieldsNameList[i], arUserFieldsList[i], false, false); oValue1.options[value1_length] = newoption; value1_length++; } } else { if (value == "ORDER") { oValue2.style["display"] = "none"; oValue1.style["display"] = "block"; for (i = 0; i < arOrderFieldsList.length; i++) { var newoption = new Option(arOrderFieldsNameList[i], arOrderFieldsList[i], false, false); oValue1.options[value1_length] = newoption; value1_length++; } } else { if (value == "PROPERTY") { oValue2.style["display"] = "none"; oValue1.style["display"] = "block"; for (i = 0; i < arPropFieldsList[ind].length; i++) { var newoption = new Option(arPropFieldsNameList[ind][i], arPropFieldsList[ind][i], false, false); oValue1.options[value1_length] = newoption; value1_length++; } } else { oValue1.style["display"] = "none"; oValue2.style["display"] = "block"; oValue2.value = ""; } } } } function ShowSet(id, action) { if(action == "show") { document.getElementById(id).style['display'] = "block"; document.getElementById(id+"-set").style['display'] = "none"; document.getElementById(id+"-unset").style['display'] = "block"; } else if(action == "hide") { document.getElementById(id).style['display'] = "none"; document.getElementById(id+"-set").style['display'] = "block"; document.getElementById(id+"-unset").style['display'] = "none"; } } </script> <?php $this->content .= GetMessage("WW_STEP4_1") . "<br /><br />"; $wizard =& $this->GetWizard(); foreach ($paySystem as $k => $v) { if (in_array($k, $personType)) { foreach ($v as $v1) { $dbPaySystemAction = CSalePaySystemAction::GetList(array("NAME" => "ASC"), array("PAY_SYSTEM_ID" => $v1)); if ($arPaySystemAction = $dbPaySystemAction->Fetch()) { $adit = array(); $this->content .= "<b>" . $arPaySystems[$v1] . "</b> - " . $arPersons[$k] . "<br />"; $arPSCorrespondence = LocalGetPSActionParams($_SERVER["DOCUMENT_ROOT"] . $arPaySystemAction["ACTION_FILE"] . "/.description.php"); $this->content .= "<div id=\"" . $v1 . "-" . $k . "-set\"><a href=\"javascript:ShowSet('" . $v1 . "-" . $k . "', 'show')\">" . GetMessage("WW_STEP4_2") . "</a></div>"; $this->content .= "<div id=\"" . $v1 . "-" . $k . "-unset\" style=\"display:none;\"><a href=\"javascript:ShowSet('" . $v1 . "-" . $k . "', 'hide')\">" . GetMessage("WW_STEP4_3") . "</a></div>"; $this->content .= "<div id=\"" . $v1 . "-" . $k . "\" style=\"display: none;\">"; $this->content .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"/bitrix/wizards/bitrix/sale.install/styles.css\">"; $this->content .= "<table class=\"data-table\">"; $this->content .= "<tr><th>" . GetMessage("WW_STEP4_4") . "</th><td>" . $this->ShowCheckboxField("paySystemPopup[" . $v1 . "][" . $k . "]", "Y") . "</td></tr>"; foreach ($arPSCorrespondence as $k2 => $v2) { $arFList = array(); $this->content .= "<tr><th>"; $this->content .= $v2["NAME"] . "<br /><small>" . $v2["DESCR"] . "</small>"; $this->content .= "</th><td>"; $arTypes = array("PROPERTY" => GetMessage("WW_STEP4_5"), "ORDER" => GetMessage("WW_STEP4_6"), "USER" => GetMessage("WW_STEP4_7"), "" => GetMessage("WW_STEP4_8")); $this->content .= $this->ShowSelectField($v1 . "_" . $k2 . "_" . $k, $arTypes, array("onChange" => "changeVariantList('" . $v1 . "_" . $k2 . "_" . $k . "', this.value, '" . $k . "')", "id" => $v1 . "_" . $k2 . "_" . $k)); ${$v1 . "_" . $k2 . "_" . $k} = $wizard->GetVar($v1 . "_" . $k2 . "_" . $k, true); $this->content .= "<br />"; if (strlen(${$v1 . "_" . $k2 . "_" . $k}) > 0) { if (${$v1 . "_" . $k2 . "_" . $k} == "PROPERTY") { $arFList = $arFieldsList["PROPERTY"][$k]; } else { $arFList = $arFieldsList[${$v1 . "_" . $k2 . "_" . $k}]; } $this->content .= $this->ShowSelectField("VALUE1_" . $v1 . "_" . $k2 . "_" . $k, $arFList, array("id" => "VALUE1_" . $v1 . "_" . $k2 . "_" . $k)); $this->content .= $this->ShowInputField("text", "VALUE2_" . $v1 . "_" . $k2 . "_" . $k, array("id" => "VALUE2_" . $v1 . "_" . $k2 . "_" . $k, "style" => "display:none;", "size" => "20")); } else { $this->content .= $this->ShowSelectField("VALUE1_" . $v1 . "_" . $k2 . "_" . $k, array(), array("id" => "VALUE1_" . $v1 . "_" . $k2 . "_" . $k, "style" => "display:none;")); if ($k2 == "PATH_TO_STAMP") { $this->content .= $this->ShowHiddenField("stamp_img[]", "VALUE2_" . $v1 . "_" . $k2 . "_" . $k); $this->content .= $this->ShowFileField("VALUE2_" . $v1 . "_" . $k2 . "_" . $k . "_img", array("id" => "VALUE2_" . $v1 . "_" . $k2 . "_" . $k, "size" => "20")); $img = $wizard->GetVar("VALUE2_" . $v1 . "_" . $k2 . "_" . $k, true); if (strlen($img) > 0) { $this->content .= "<br />" . CFile::ShowImage($img, 50, 50, "border=\"0\"", "", true) . "<br />"; } } else { $this->content .= $this->ShowInputField("text", "VALUE2_" . $v1 . "_" . $k2 . "_" . $k, array("id" => "VALUE2_" . $v1 . "_" . $k2 . "_" . $k, "size" => "20")); } } $this->content .= "</td></tr>"; } $this->content .= "</table></div><br />"; } } } } }
*/ $userProfile = $arResultProps["USER_PROFILES"]; $arPropValues = array(); $arPropValues = $userProfile[$PROFILE_ID]["VALUES"]; $arFilter = array("PERSON_TYPE_ID" => $PERSON_TYPE, "ACTIVE" => "Y", "UTIL" => "N"); $dbProperties = CSaleOrderProps::GetList(array("SORT" => "ASC"), $arFilter, false, false, array("ID", "NAME", "TYPE", "REQUIED", "DEFAULT_VALUE", "IS_LOCATION", "PROPS_GROUP_ID", "SIZE1", "SIZE2", "DESCRIPTION", "IS_EMAIL", "IS_PROFILE_NAME", "IS_PAYER", "IS_LOCATION4TAX", "CODE", "GROUP_NAME", "GROUP_SORT", "SORT", "USER_PROPS", "IS_ZIP", "INPUT_FIELD_LOCATION", "SUBSCRIBE")); $locationZipID = ""; $locationID = ""; $profileName = ""; $payerName = ""; $payerEMail = ""; //load location for the index if isset index $locationForZip = ""; if (isset($_REQUEST["CHANGE_ZIP"]) && $_REQUEST["CHANGE_ZIP"] == "Y") { $arFilterZip = array("PERSON_TYPE_ID" => $PERSON_TYPE, "IS_ZIP" => "Y", "ACTIVE" => "Y", "UTIL" => "N"); $dbPropertiesZip = CSaleOrderProps::GetList(array("SORT" => "ASC"), $arFilterZip, false, false, array("ID")); $arPropZip = $dbPropertiesZip->GetNext(); $zipCode = htmlspecialcharsEx($_POST["ORDER_PROP_" . $arPropZip["ID"]]); $arZip = CSaleLocation::GetByZIP($zipCode); if (is_array($arZip) && count($arZip) > 1) { $locationForZip = intval($arZip["ID"]); } } while ($arProperties = $dbProperties->GetNext()) { if ((isset($_POST["BasketOrder"]) || $requestAjax || $_REQUEST["form"] == "Y") && $PROFILE_ID_OLD == $PROFILE_ID) { $curVal = htmlspecialcharsEx($_REQUEST["ORDER_PROP_" . $arProperties["ID"]]); if (intval($_REQUEST["NEW_LOCATION_" . $arProperties["ID"]]) > 0) { $curVal = intval($_POST["NEW_LOCATION_" . $arProperties["ID"]]); } } else { $curVal = $arPropValues[intval($arProperties["ID"])];
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } $arYesNo = array("Y" => GetMessage("SOF_DESC_YES"), "N" => GetMessage("SOF_DESC_NO")); $arComponentParameters = array("PARAMETERS" => array("PATH_TO_BASKET" => array("NAME" => GetMessage("SOF_PATH_TO_BASKET"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "basket.php", "COLS" => 25, "PARENT" => "ADDITIONAL_SETTINGS"), "PATH_TO_PERSONAL" => array("NAME" => GetMessage("SOF_PATH_TO_PERSONAL"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "index.php", "COLS" => 25, "PARENT" => "ADDITIONAL_SETTINGS"), "PATH_TO_AUTH" => array("NAME" => GetMessage("SOF_PATH_TO_AUTH"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "/auth.php", "COLS" => 25, "PARENT" => "ADDITIONAL_SETTINGS"), "PATH_TO_PAYMENT" => array("NAME" => GetMessage("SOF_PATH_TO_PAYMENT"), "TYPE" => "STRING", "MULTIPLE" => "N", "DEFAULT" => "payment.php", "COLS" => 25, "PARENT" => "ADDITIONAL_SETTINGS"), "ALLOW_PAY_FROM_ACCOUNT" => array("NAME" => GetMessage("SOF_ALLOW_PAY_FROM_ACCOUNT"), "TYPE" => "LIST", "MULTIPLE" => "N", "VALUES" => array("N" => GetMessage("SOF_DESC_NO"), "Y" => GetMessage("SOF_DESC_YES")), "DEFAULT" => "Y", "ADDITIONAL_VALUES" => "N", "PARENT" => "BASE"), "SHOW_MENU" => array("NAME" => GetMessage("SOF_SHOW_MENU"), "TYPE" => "LIST", "MULTIPLE" => "N", "VALUES" => array("N" => GetMessage("SOF_DESC_NO"), "Y" => GetMessage("SOF_DESC_YES")), "DEFAULT" => "Y", "ADDITIONAL_VALUES" => "N", "PARENT" => "BASE"), "USE_AJAX_LOCATIONS" => array("NAME" => GetMessage("SOF_USE_AJAX_LOCATIONS"), "TYPE" => "CHECKBOX", "MULTIPLE" => "N", "DEFAULT" => "Y", "PARENT" => "ADDITIONAL_SETTINGS"), "SHOW_AJAX_DELIVERY_LINK" => array("NAME" => GetMessage('SOF_SHOW_AJAX_DELIVERY_LINK'), "TYPE" => "LIST", "MULTIPLE" => "N", "VALUES" => array("Y" => GetMessage('SOF_SHOW_AJAX_DELIVERY_LINK_Y'), "N" => GetMessage('SOF_SHOW_AJAX_DELIVERY_LINK_N'), "S" => GetMessage('SOF_SHOW_AJAX_DELIVERY_LINK_S')), "DEFAULT" => "Y", "PARENT" => "ADDITIONAL_SETTINGS"), "CITY_OUT_LOCATION" => array("NAME" => GetMessage("SALE_SOF_PARAM_CITY_OUT_LOCATION"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", "ADDITIONAL_VALUES" => "N", "MULTIPLE" => "N", "PARENT" => "BASE"), "COUNT_DELIVERY_TAX" => array("NAME" => GetMessage("SOF_COUNT_DELIVERY_TAX"), "TYPE" => "LIST", "MULTIPLE" => "N", "VALUES" => array("N" => GetMessage("SOF_DESC_NO"), "Y" => GetMessage("SOF_DESC_YES")), "DEFAULT" => "N", "ADDITIONAL_VALUES" => "N", "PARENT" => "BASE"), "COUNT_DISCOUNT_4_ALL_QUANTITY" => array("NAME" => GetMessage("SOF_COUNT_DISCOUNT_4_ALL_QUANTITY"), "TYPE" => "LIST", "MULTIPLE" => "N", "VALUES" => array("N" => GetMessage("SOF_DESC_NO"), "Y" => GetMessage("SOF_DESC_YES")), "DEFAULT" => "N", "ADDITIONAL_VALUES" => "N", "PARENT" => "BASE"), "SET_TITLE" => array(), "PRICE_VAT_INCLUDE" => array("NAME" => GetMessage('SOF_VAT_INCLUDE'), "TYPE" => "CHECKBOX", "MULTIPLE" => "N", "DEFAULT" => "Y", "ADDITIONAL_VALUES" => "N", "PARENT" => "ADDITIONAL_SETTINGS"), "PRICE_VAT_SHOW_VALUE" => array("NAME" => GetMessage('SOF_VAT_SHOW_VALUE'), "TYPE" => "CHECKBOX", "MULTIPLE" => "N", "DEFAULT" => "Y", "ADDITIONAL_VALUES" => "N", "PARENT" => "ADDITIONAL_SETTINGS"), "ONLY_FULL_PAY_FROM_ACCOUNT" => array("NAME" => GetMessage("SOF_ONLY_FULL_PAY_FROM_ACCOUNT"), "TYPE" => "LIST", "MULTIPLE" => "N", "VALUES" => array("N" => GetMessage("SOF_DESC_NO"), "Y" => GetMessage("SOF_DESC_YES")), "DEFAULT" => "N", "ADDITIONAL_VALUES" => "N", "PARENT" => "BASE"), "SEND_NEW_USER_NOTIFY" => array("NAME" => GetMessage("SOA_SEND_NEW_USER_NOTIFY"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", "PARENT" => "BASE"), "DELIVERY_NO_SESSION" => array("NAME" => GetMessage("SOA_DELIVERY_NO_SESSION"), "TYPE" => "CHECKBOX", "MULTIPLE" => "N", "DEFAULT" => "N", "PARENT" => "BASE"))); if (CModule::IncludeModule("sale")) { $dbPerson = CSalePersonType::GetList(array("SORT" => "ASC", "NAME" => "ASC")); while ($arPerson = $dbPerson->GetNext()) { $arPers2Prop = array("" => GetMessage("SOF_SHOW_ALL")); $bProp = false; $dbProp = CSaleOrderProps::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array("PERSON_TYPE_ID" => $arPerson["ID"])); while ($arProp = $dbProp->GetNext()) { $arPers2Prop[$arProp["ID"]] = $arProp["NAME"]; $bProp = true; } if ($bProp) { $arComponentParameters["PARAMETERS"]["PROP_" . $arPerson["ID"]] = array("NAME" => GetMessage("SOF_PROPS_NOT_SHOW") . " \"" . $arPerson["NAME"] . "\" (" . $arPerson["LID"] . ")", "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arPers2Prop, "DEFAULT" => "", "COLS" => 25, "ADDITIONAL_VALUES" => "N", "PARENT" => "BASE"); } } }
static function DoSaveOrderProps($orderId, $personTypeId, $arOrderProps, &$arErrors) { $arIDs = array(); $dbResult = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $orderId), false, false, array("ID", "ORDER_PROPS_ID")); while ($arResult = $dbResult->Fetch()) { $arIDs[$arResult["ORDER_PROPS_ID"]] = $arResult["ID"]; } $dbOrderProperties = CSaleOrderProps::GetList(array("SORT" => "ASC"), array("PERSON_TYPE_ID" => $personTypeId, "ACTIVE" => "Y"), false, false, array("ID", "TYPE", "NAME", "CODE", "USER_PROPS", "SORT")); while ($arOrderProperty = $dbOrderProperties->Fetch()) { $curVal = $arOrderProps[$arOrderProperty["ID"]]; if ($arOrderProperty["TYPE"] == "MULTISELECT" && is_array($curVal)) { $curVal = implode(",", $curVal); } if (strlen($curVal) > 0) { $arFields = array("ORDER_ID" => $orderId, "ORDER_PROPS_ID" => $arOrderProperty["ID"], "NAME" => $arOrderProperty["NAME"], "CODE" => $arOrderProperty["CODE"], "VALUE" => $curVal); if (array_key_exists($arOrderProperty["ID"], $arIDs)) { CSaleOrderPropsValue::Update($arIDs[$arOrderProperty["ID"]], $arFields); unset($arIDs[$arOrderProperty["ID"]]); } else { CSaleOrderPropsValue::Add($arFields); } } } foreach ($arIDs as $id) { CSaleOrderPropsValue::Delete($id); } }
$tabControl->Begin(array("FORM_ACTION" => $APPLICATION->GetCurPage() . "?lang=" . LANG . $urlForm)); //TAB EDIT PROFILE $tabControl->BeginNextFormTab(); if (!empty($arProfile) && !empty($arUser)) { $dbPersonType = CSalePersonType::GetList(array(), array("ACTIVE" => "Y", "ID" => $PERSON_TYPE)); $arPersonType = $dbPersonType->GetNext(); $LID = $arPersonType["LID"]; $arFilterProps = array("PERSON_TYPE_ID" => $PERSON_TYPE, "ACTIVE" => "Y"); if ($saleModulePermissions >= "U" && $saleModulePermissions < "W") { $arFilterProps["USER_PROPS"] = "Y"; $arFilterProps["UTIL"] = "N"; } $tabControl->AddViewField("CODE_USER", GetMessage("BUYER_PE_USER") . ":", "[<a href=\"/bitrix/admin/user_edit.php?ID=" . $arUser["ID"] . "&lang=" . LANGUAGE_ID . "\">" . $arUser["ID"] . "</a>] (" . $arUser["LOGIN"] . ") " . $userFIO); $tabControl->AddEditField("CODE_PROFILE_NAME", GetMessage("BUYER_PE_PROFILE_NAME") . ":", false, array("size" => 30, "maxlength" => 255), htmlspecialcharsEx($profileName)); $propertyGroupID = ""; $dbProperties = CSaleOrderProps::GetList(array("GROUP_SORT" => "ASC", "PROPS_GROUP_ID" => "ASC", "SORT" => "ASC", "NAME" => "ASC"), $arFilterProps, false, false, array("*")); $userProfile = CSaleOrderUserProps::DoLoadProfiles($USER_ID, $PERSON_TYPE); $curVal = ""; while ($arProperties = $dbProperties->Fetch()) { $curVal = $userProfile[$ID]["VALUES"][IntVal($arProperties["ID"])]; $fieldValue = $curVal != "" ? $curVal : $arProperties["DEFAULT_VALUE"]; if (IntVal($arProperties["PROPS_GROUP_ID"]) != $propertyGroupID) { $tabControl->AddSection("SECTION_" . $arProperties["PROPS_GROUP_ID"], $arProperties["GROUP_NAME"]); } $shure = false; if ($arProperties["REQUIED"] == "Y" || $arProperties["IS_PROFILE_NAME"] == "Y" || $arProperties["IS_LOCATION"] == "Y" || $arProperties["IS_LOCATION4TAX"] == "Y" || $arProperties["IS_PAYER"] == "Y" || $arProperties["IS_ZIP"] == "Y") { $shure = true; } /*fields*/ if ($arProperties["TYPE"] == "TEXT") { $tabControl->AddEditField("CODE_" . IntVal($arProperties["ID"]), $arProperties["NAME"] . ":", $shure, array("size" => 30, "maxlength" => 255), $fieldValue);
static function DoSaveOrderProps($orderId, $personTypeId, $arOrderProps, &$arErrors, $paysystemId = 0, $deliveryId = "") { $arIDs = array(); $dbResult = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $orderId), false, false, array("ID", "ORDER_PROPS_ID")); while ($arResult = $dbResult->Fetch()) { $arIDs[$arResult["ORDER_PROPS_ID"]] = $arResult["ID"]; } $arFilter = array("PERSON_TYPE_ID" => $personTypeId, "ACTIVE" => "Y"); if ($paysystemId != 0) { $arFilter["RELATED"]["PAYSYSTEM_ID"] = $paysystemId; $arFilter["RELATED"]["TYPE"] = "WITH_NOT_RELATED"; } if (strlen($deliveryId) > 0) { $arFilter["RELATED"]["DELIVERY_ID"] = $deliveryId; $arFilter["RELATED"]["TYPE"] = "WITH_NOT_RELATED"; } $dbOrderProperties = CSaleOrderProps::GetList(array("SORT" => "ASC"), $arFilter, false, false, array("ID", "TYPE", "NAME", "CODE", "USER_PROPS", "SORT")); while ($arOrderProperty = $dbOrderProperties->Fetch()) { $curVal = $arOrderProps[$arOrderProperty["ID"]]; if ($arOrderProperty["TYPE"] == "MULTISELECT" && is_array($curVal)) { $curVal = implode(",", $curVal); } if ($arOrderProperty["TYPE"] == "FILE" && is_array($curVal)) { $tmpVal = ""; foreach ($curVal as $index => $fileData) { $bModify = true; if (isset($fileData["file_id"])) { if (isset($fileData["del"])) { $arFile = CFile::MakeFileArray($fileData["file_id"]); $arFile["del"] = $fileData["del"]; $arFile["old_file"] = $fileData["file_id"]; } else { $bModify = false; if (strlen($tmpVal) > 0) { $tmpVal .= ", " . $fileData["file_id"]; } else { $tmpVal = $fileData["file_id"]; } } } else { // new file array $arFile = $fileData; } if (isset($arFile["name"]) && strlen($arFile["name"]) > 0 && $bModify) { $arFile["MODULE_ID"] = "sale"; $fid = CFile::SaveFile($arFile, "sale"); if (intval($fid) > 0) { if (strlen($tmpVal) > 0) { $tmpVal .= ", " . $fid; } else { $tmpVal = $fid; } } } } $curVal = $tmpVal; } if (strlen($curVal) > 0) { $arFields = array("ORDER_ID" => $orderId, "ORDER_PROPS_ID" => $arOrderProperty["ID"], "NAME" => $arOrderProperty["NAME"], "CODE" => $arOrderProperty["CODE"], "VALUE" => $curVal); if (array_key_exists($arOrderProperty["ID"], $arIDs)) { CSaleOrderPropsValue::Update($arIDs[$arOrderProperty["ID"]], $arFields); unset($arIDs[$arOrderProperty["ID"]]); } else { CSaleOrderPropsValue::Add($arFields); } } } foreach ($arIDs as $id) { CSaleOrderPropsValue::Delete($id); } }
function getOrderPropFormated($arProperties, $arResult, &$arUserResult, &$arDeleteFieldLocation = array()) { global $USER; $curVal = $arUserResult["ORDER_PROP"][$arProperties["ID"]]; $curLocation = false; static $propertyGroupID = 0; static $propertyUSER_PROPS = ""; // take data from user profile if ($arUserResult["PROFILE_CHANGE"] == "Y" && intval($arUserResult["PROFILE_ID"]) > 0 && !($arResult["HAVE_PREPAYMENT"] && $arUserResult["PROFILE_DEFAULT"] == "Y" && !empty($arResult["PREPAY_ORDER_PROPS"][$arProperties["CODE"]]))) { $dbUserPropsValues = CSaleOrderUserPropsValue::GetList(array("SORT" => "ASC"), array("USER_PROPS_ID" => $arUserResult["PROFILE_ID"], "ORDER_PROPS_ID" => $arProperties["ID"], "USER_ID" => intval($USER->GetID())), false, false, array("VALUE", "PROP_TYPE", "VARIANT_NAME", "SORT", "ORDER_PROPS_ID")); if ($arUserPropsValues = $dbUserPropsValues->Fetch()) { $valueTmp = ""; if ($arUserPropsValues["PROP_TYPE"] == "MULTISELECT") { $arUserPropsValues["VALUE"] = explode(",", $arUserPropsValues["VALUE"]); } $curVal = $arUserPropsValues["VALUE"]; } } elseif ($arUserResult["PROFILE_CHANGE"] == "Y" && intval($arUserResult["PROFILE_ID"]) <= 0) { if (isset($curVal)) { unset($curVal); } } elseif (isset($arUserResult["ORDER_PROP"][$arProperties["ID"]])) { $curVal = $arUserResult["ORDER_PROP"][$arProperties["ID"]]; } elseif ($arResult["HAVE_PREPAYMENT"] && !empty($arResult["PREPAY_ORDER_PROPS"][$arProperties["CODE"]])) { $curVal = $arResult["PREPAY_ORDER_PROPS"][$arProperties["CODE"]]; if ($arProperties["TYPE"] == "LOCATION") { $curLocation = $curVal; } } if (intval($_REQUEST["NEW_LOCATION_" . $arProperties["ID"]]) > 0) { $curVal = intval($_REQUEST["NEW_LOCATION_" . $arProperties["ID"]]); } $arProperties["FIELD_NAME"] = "ORDER_PROP_" . $arProperties["ID"]; if (strlen($arProperties["CODE"]) > 0) { $arProperties["FIELD_ID"] = "ORDER_PROP_" . $arProperties["CODE"]; } else { $arProperties["FIELD_ID"] = "ORDER_PROP_" . $arProperties["ID"]; } if (intval($arProperties["PROPS_GROUP_ID"]) != $propertyGroupID || $propertyUSER_PROPS != $arProperties["USER_PROPS"]) { $arProperties["SHOW_GROUP_NAME"] = "Y"; } $propertyGroupID = $arProperties["PROPS_GROUP_ID"]; $propertyUSER_PROPS = $arProperties["USER_PROPS"]; if ($arProperties["REQUIED"] == "Y" || $arProperties["IS_EMAIL"] == "Y" || $arProperties["IS_PROFILE_NAME"] == "Y" || $arProperties["IS_LOCATION"] == "Y" || $arProperties["IS_LOCATION4TAX"] == "Y" || $arProperties["IS_PAYER"] == "Y" || $arProperties["IS_ZIP"] == "Y") { $arProperties["REQUIED_FORMATED"] = "Y"; } if ($arProperties["TYPE"] == "CHECKBOX") { if ($curVal == "Y" || !isset($curVal) && $arProperties["DEFAULT_VALUE"] == "Y") { $arProperties["CHECKED"] = "Y"; $arProperties["VALUE_FORMATED"] = GetMessage("SOA_Y"); } else { $arProperties["VALUE_FORMATED"] = GetMessage("SOA_N"); } $arProperties["SIZE1"] = intval($arProperties["SIZE1"]) > 0 ? $arProperties["SIZE1"] : 30; } elseif ($arProperties["TYPE"] == "TEXT") { if (strlen($curVal) <= 0) { if (strlen($arProperties["DEFAULT_VALUE"]) > 0 && !isset($curVal)) { $arProperties["VALUE"] = $arProperties["DEFAULT_VALUE"]; } elseif ($arProperties["IS_EMAIL"] == "Y") { $arProperties["VALUE"] = $USER->GetEmail(); } elseif ($arProperties["IS_PAYER"] == "Y") { //$arProperties["VALUE"] = $USER->GetFullName(); $rsUser = CUser::GetByID($USER->GetID()); $fio = ""; if ($arUser = $rsUser->Fetch()) { $fio = CUser::FormatName(CSite::GetNameFormat(false), array("NAME" => $arUser["NAME"], "LAST_NAME" => $arUser["LAST_NAME"], "SECOND_NAME" => $arUser["SECOND_NAME"]), false, false); } $arProperties["VALUE"] = $fio; } } else { $arProperties["VALUE"] = $curVal; } //select ZIP for LOCATION if ($arProperties["IS_ZIP"] == "Y" && $arUserResult["PROFILE_CHANGE"] == "N") { $dbPropertiesLoc = CSaleOrderProps::GetList(array("ID" => "DESC"), array("PERSON_TYPE_ID" => $arUserResult["PERSON_TYPE_ID"], "ACTIVE" => "Y", "UTIL" => "N", "IS_LOCATION" => "Y"), false, false, array("ID")); $arPropertiesLoc = $dbPropertiesLoc->Fetch(); if ($arPropertiesLoc["ID"] > 0) { $arZipLocation = array(); if (strlen($curVal) > 0) { $arZipLocation = CSaleLocation::GetByZIP($curVal); } $rsZipList = CSaleLocation::GetLocationZIP($arUserResult["ORDER_PROP"][$arPropertiesLoc["ID"]]); if ($arZip = $rsZipList->Fetch()) { if (strlen($arZip["ZIP"]) > 0 && (empty($arZipLocation) || $arZipLocation["ID"] != $arUserResult["ORDER_PROP"][$arPropertiesLoc["ID"]])) { $arProperties["VALUE"] = $arZip["ZIP"]; } } } } if ($arProperties["IS_ZIP"] == "Y") { $arUserResult["DELIVERY_LOCATION_ZIP"] = $arProperties["VALUE"]; } $arProperties["VALUE"] = htmlspecialcharsEx($arProperties["VALUE"]); $arProperties["VALUE_FORMATED"] = $arProperties["VALUE"]; } elseif ($arProperties["TYPE"] == "SELECT") { $arProperties["SIZE1"] = intval($arProperties["SIZE1"]) > 0 ? $arProperties["SIZE1"] : 1; $dbVariants = CSaleOrderPropsVariant::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*")); $flagDefault = "N"; $nameProperty = ""; while ($arVariants = $dbVariants->GetNext()) { if ($flagDefault == "N" && $nameProperty == "") { $nameProperty = $arVariants["NAME"]; } if ($arVariants["VALUE"] == $curVal || (!isset($curVal) || $curVal == "") && $arVariants["VALUE"] == $arProperties["DEFAULT_VALUE"]) { $arVariants["SELECTED"] = "Y"; $arProperties["VALUE_FORMATED"] = $arVariants["NAME"]; $flagDefault = "Y"; } $arProperties["VARIANTS"][] = $arVariants; } if ($flagDefault == "N") { $arProperties["VARIANTS"][0]["SELECTED"] = "Y"; $arProperties["VARIANTS"][0]["VALUE_FORMATED"] = $nameProperty; } } elseif ($arProperties["TYPE"] == "MULTISELECT") { $arProperties["FIELD_NAME"] = "ORDER_PROP_" . $arProperties["ID"] . '[]'; $arProperties["SIZE1"] = intval($arProperties["SIZE1"]) > 0 ? $arProperties["SIZE1"] : 5; $arDefVal = explode(",", $arProperties["DEFAULT_VALUE"]); $countDefVal = count($arDefVal); for ($i = 0; $i < $countDefVal; $i++) { $arDefVal[$i] = Trim($arDefVal[$i]); } $dbVariants = CSaleOrderPropsVariant::GetList(array("SORT" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*")); $i = 0; while ($arVariants = $dbVariants->GetNext()) { if (is_array($curVal) && in_array($arVariants["VALUE"], $curVal) || !isset($curVal) && in_array($arVariants["VALUE"], $arDefVal)) { $arVariants["SELECTED"] = "Y"; if ($i > 0) { $arProperties["VALUE_FORMATED"] .= ", "; } $arProperties["VALUE_FORMATED"] .= $arVariants["NAME"]; $i++; } $arProperties["VARIANTS"][] = $arVariants; } } elseif ($arProperties["TYPE"] == "TEXTAREA") { $arProperties["SIZE2"] = intval($arProperties["SIZE2"]) > 0 ? $arProperties["SIZE2"] : 4; $arProperties["SIZE1"] = intval($arProperties["SIZE1"]) > 0 ? $arProperties["SIZE1"] : 40; $arProperties["VALUE"] = htmlspecialcharsEx(isset($curVal) ? $curVal : $arProperties["DEFAULT_VALUE"]); $arProperties["VALUE_FORMATED"] = $arProperties["VALUE"]; } elseif ($arProperties["TYPE"] == "LOCATION") { //enable location town text if ($_REQUEST["is_ajax_post"] == "Y" && $arProperties["IS_LOCATION"] == "Y" && intval($arProperties["INPUT_FIELD_LOCATION"]) > 0 && isset($_REQUEST["ORDER_PROP_" . $arProperties["ID"]])) { $rsLocationsList = CSaleLocation::GetList(array(), array("ID" => $curVal), false, false, array("ID", "CITY_ID")); $arCity = $rsLocationsList->GetNext(); if (intval($arCity["CITY_ID"]) <= 0) { unset($arDeleteFieldLocation[$arProperties["ID"]]); } else { $arDeleteFieldLocation[$arProperties["ID"]] = $arProperties["INPUT_FIELD_LOCATION"]; } } elseif ($arProperties["IS_LOCATION"] == "Y" && intval($arProperties["INPUT_FIELD_LOCATION"]) > 0) { $arDeleteFieldLocation[$arProperties["ID"]] = $arProperties["INPUT_FIELD_LOCATION"]; } $arProperties["SIZE1"] = intval($arProperties["SIZE1"]) > 0 ? $arProperties["SIZE1"] : 1; $dbVariants = CSaleLocation::GetList(array("SORT" => "ASC", "COUNTRY_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), array("LID" => LANGUAGE_ID), false, false, array("ID", "COUNTRY_NAME", "CITY_NAME", "SORT", "COUNTRY_NAME_LANG", "CITY_NAME_LANG")); while ($arVariants = $dbVariants->GetNext()) { if (intval($arVariants["ID"]) == intval($curVal) || !isset($curVal) && intval($arVariants["ID"]) == intval($arProperties["DEFAULT_VALUE"]) || strlen($curLocation) > 0 && ToUpper($curLocation) == ToUpper($arVariants["CITY_NAME"])) { $arVariants["SELECTED"] = "Y"; $arProperties["VALUE_FORMATED"] = $arVariants["COUNTRY_NAME"] . (strlen($arVariants["CITY_NAME"]) > 0 ? " - " : "") . $arVariants["CITY_NAME"]; $arProperties["VALUE"] = $arVariants["ID"]; if ($arProperties["IS_LOCATION"] == "Y") { $arUserResult["DELIVERY_LOCATION"] = $arProperties["VALUE"]; } if ($arProperties["IS_LOCATION4TAX"] == "Y") { $arUserResult["TAX_LOCATION"] = $arProperties["VALUE"]; } } $arVariants["NAME"] = $arVariants["COUNTRY_NAME"] . (strlen($arVariants["CITY_NAME"]) > 0 ? " - " : "") . $arVariants["CITY_NAME"]; $arProperties["VARIANTS"][] = $arVariants; } if (count($arProperties["VARIANTS"]) == 1) { $arProperties["VALUE"] = $arProperties["VARIANTS"][0]["ID"]; if ($arProperties["IS_LOCATION"] == "Y") { $arUserResult["DELIVERY_LOCATION"] = $arProperties["VALUE"]; } if ($arProperties["IS_LOCATION4TAX"] == "Y") { $arUserResult["TAX_LOCATION"] = $arProperties["VALUE"]; } } } elseif ($arProperties["TYPE"] == "RADIO") { $dbVariants = CSaleOrderPropsVariant::GetList(array("SORT" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*")); while ($arVariants = $dbVariants->GetNext()) { if ($arVariants["VALUE"] == $curVal || !isset($curVal) && $arVariants["VALUE"] == $arProperties["DEFAULT_VALUE"]) { $arVariants["CHECKED"] = "Y"; $arProperties["VALUE_FORMATED"] = $arVariants["NAME"]; } $arProperties["VARIANTS"][] = $arVariants; } } elseif ($arProperties["TYPE"] == "FILE") { $arProperties["SIZE1"] = intval($arProperties["SIZE1"]); $arProperties["VALUE"] = isset($curVal) ? CSaleHelper::getFileInfo($curVal) : $arProperties["DEFAULT_VALUE"]; } return $arProperties; }
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"); } } }
/** * Sends product subscription letter * * @param integer $ID - code product * @param string $MODULE - module product * @return bool */ function ProductSubscribe($ID, $MODULE) { $ID = (int) $ID; $MODULE = trim($MODULE); if ($ID <= 0 || $MODULE == '') { return false; } $arSubscribeProd = array(); $subscribeProd = COption::GetOptionString("sale", "subscribe_prod", ""); if ($subscribeProd != '') { $arSubscribeProd = unserialize($subscribeProd); } $rsItemsBasket = CSaleBasket::GetList(array("USER_ID" => "DESC", "LID" => "ASC"), array("PRODUCT_ID" => $ID, "SUBSCRIBE" => "Y", "CAN_BUY" => "N", "ORDER_ID" => "NULL", ">USER_ID" => "0", "MODULE" => $MODULE), false, false, array('ID', 'FUSER_ID', 'USER_ID', 'MODULE', 'PRODUCT_ID', 'CURRENCY', 'DATE_INSERT', 'QUANTITY', 'LID', 'DELAY', 'CALLBACK_FUNC', 'SUBSCRIBE', 'PRODUCT_PROVIDER_CLASS')); while ($arItemsBasket = $rsItemsBasket->Fetch()) { $LID = $arItemsBasket["LID"]; if (isset($arSubscribeProd[$LID]) && $arSubscribeProd[$LID]["use"] == "Y") { $sendEmailList = array(); $USER_ID = $arItemsBasket['USER_ID']; $arMailProp = array(); $arPayerProp = array(); // select person type $dbPersonType = CSalePersonType::GetList(array("SORT" => "ASC"), array("LID" => $LID), false, false, array('ID')); while ($arPersonType = $dbPersonType->Fetch()) { // select ID props is mail $dbProperties = CSaleOrderProps::GetList(array(), array("PERSON_TYPE_ID" => $arPersonType["ID"], "IS_EMAIL" => "Y", "ACTIVE" => "Y"), false, false, array('ID', 'PERSON_TYPE_ID')); while ($arProperties = $dbProperties->Fetch()) { $arMailProp[$arProperties["PERSON_TYPE_ID"]] = $arProperties["ID"]; } // select ID props is name $arPayerProp = array(); $dbProperties = CSaleOrderProps::GetList(array(), array("PERSON_TYPE_ID" => $arPersonType["ID"], "IS_PAYER" => "Y", "ACTIVE" => "Y"), false, false, array('ID', 'PERSON_TYPE_ID')); while ($arProperties = $dbProperties->Fetch()) { $arPayerProp[$arProperties["PERSON_TYPE_ID"]] = $arProperties["ID"]; } } //end while // load user profiles $arUserProfiles = CSaleOrderUserProps::DoLoadProfiles($USER_ID); $rsUser = CUser::GetByID($USER_ID); $arUser = $rsUser->Fetch(); $userName = $arUser["LAST_NAME"]; if ($userName != '') { $userName .= " "; } $userName .= $arUser["NAME"]; // select of user name to be sent $arUserSendName = array(); if (!empty($arUserProfiles) && !empty($arPayerProp)) { foreach ($arPayerProp as $personType => $namePropID) { if (isset($arUserProfiles[$personType])) { foreach ($arUserProfiles[$personType] as $profiles) { if (isset($profiles["VALUES"][$namePropID]) && $profiles["VALUES"][$namePropID] != '') { $arUserSendName[$personType] = trim($profiles["VALUES"][$namePropID]); break; } } } } } else { $arUserSendName[] = $userName; } // select of e-mail to be sent $arUserSendMail = array(); if (!empty($arUserProfiles) && !empty($arMailProp)) { foreach ($arMailProp as $personType => $mailPropID) { if (isset($arUserProfiles[$personType])) { foreach ($arUserProfiles[$personType] as $profiles) { if (isset($profiles["VALUES"][$mailPropID]) && $profiles["VALUES"][$mailPropID] != '') { $arUserSendMail[$personType] = trim($profiles["VALUES"][$mailPropID]); break; } } } else { $arUserSendMail[$personType] = $arUser["EMAIL"]; } } } else { $arUserSendMail[] = $arUser["EMAIL"]; } /** @var $productProvider IBXSaleProductProvider */ if ($productProvider = CSaleBasket::GetProductProvider($arItemsBasket)) { $arCallback = $productProvider::GetProductData(array("PRODUCT_ID" => $ID, "QUANTITY" => 1, "RENEWAL" => "N", "USER_ID" => $USER_ID, "SITE_ID" => $LID, "BASKET_ID" => $arItemsBasket["ID"])); } elseif (isset($arItemsBasket["CALLBACK_FUNC"]) && !empty($arItemsBasket["CALLBACK_FUNC"])) { $arCallback = CSaleBasket::ExecuteCallbackFunction(trim($arItemsBasket["CALLBACK_FUNC"]), $MODULE, $ID, 1, "N", $USER_ID, $LID); } if (!empty($arCallback)) { $arCallback["QUANTITY"] = 1; $arCallback["DELAY"] = "N"; $arCallback["SUBSCRIBE"] = "N"; CSaleBasket::Update($arItemsBasket["ID"], $arCallback); } //send mail if (!empty($arUserSendMail) && !empty($arCallback)) { $eventName = "SALE_SUBSCRIBE_PRODUCT"; $event = new CEvent(); foreach ($arUserSendMail as $personType => $mail) { $checkMail = strtolower($mail); if (isset($sendEmailList[$checkMail])) { continue; } $sendName = $userName; if (isset($arUserSendName[$personType]) && $arUserSendName[$personType] != '') { $sendName = $arUserSendName[$personType]; } $arFields = array("EMAIL" => $mail, "USER_NAME" => $sendName, "NAME" => $arCallback["NAME"], "PAGE_URL" => CHTTP::URN2URI($arCallback["DETAIL_PAGE_URL"]), "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@" . $_SERVER["SERVER_NAME"])); $event->Send($eventName, $LID, $arFields, "N"); $sendEmailList[$checkMail] = true; } } } // end if bSend } // end while $arItemsBasket return true; }
array( "USER_PROPS_ID" => $arUserResult["PROFILE_ID"], ), false, false, array("ORDER_PROPS_ID", "ID", "SORT") ); while($arUserPropsValues = $dbUserPropsValues->Fetch()) { $arTmpUserPropsVal[$arUserPropsValues["ORDER_PROPS_ID"]] = $arUserPropsValues["ID"]; } } $dbOrderProperties = CSaleOrderProps::GetList( array("SORT" => "ASC"), array("PERSON_TYPE_ID" => $arUserResult["PERSON_TYPE_ID"], "ACTIVE" => "Y", "UTIL" => "N"), false, false, array("ID", "TYPE", "NAME", "CODE", "USER_PROPS", "SORT") ); while ($arOrderProperties = $dbOrderProperties->Fetch()) { $curVal = $arUserResult["ORDER_PROP"][$arOrderProperties["ID"]]; if ($arOrderProperties["TYPE"] == "MULTISELECT") { $curVal = ""; $countUserResult = count($arUserResult["ORDER_PROP"][$arOrderProperties["ID"]]); for ($i = 0; $i < $countUserResult; $i++) { if ($i > 0) $curVal .= ",";
/** * функция по собыитию изминению закааза * функция добавляет значения-заглушку в свойство Адрес доставки */ function OnOrderAddHandler($ORDER_ID,$arOrder) { if(CModule::IncludeModule("sale")){ $db_props = CSaleOrderPropsValue::GetOrderProps($ORDER_ID); while ($arProps = $db_props->Fetch()) { if($arProps['CODE']=='ADDRESS'){ $address=true; } } if(!$address){ if ($arProp = CSaleOrderProps::GetList(array(), array('ORDER_ID'=>$ORDER_ID,'CODE' => 'ADDRESS'))->Fetch()) { CSaleOrderPropsValue::Add(array( 'NAME' => $arProp['NAME'], 'CODE' => $arProp['CODE'], 'ORDER_PROPS_ID' => $arProp['ID'], 'ORDER_ID' => $ORDER_ID, 'VALUE' => '777' )); } } } }
$order['location'] = $order['delivery']['address']['city']; } if (isset($order['orderType']) && isset($optionsOrderTypes[ $order['orderType'] ])) { if (isset($optionsOrderProps[$arFields['PERSON_TYPE_ID']])) { foreach ($optionsOrderProps[$arFields['PERSON_TYPE_ID']] as $code => $value) { if (in_array($code, array_keys($order)) === false && isset($optionsOrderProps[$optionsOrderTypes[$order['orderType']]][$code])) { $order[ $code ] = $arUpdateProps[$optionsOrderProps[$arFields['PERSON_TYPE_ID']][$code]]['VALUE']; } } } //update ordertype CSaleOrder::Update($order['externalId'], array('PERSON_TYPE_ID' => $optionsOrderTypes[ $order['orderType'] ])); $arProp = CSaleOrderProps::GetList(array(), array('PERSON_TYPE_ID' => $optionsOrderTypes[ $order['orderType'] ])); $typeParam = array(); while ($ar = $arProp->Fetch()) { $typeParam[ $ar['CODE'] ] = $ar['CODE']; } foreach (array_diff_key($arUpdateProps, $typeParam) as $code => $param) { if (isset($arUpdateProps[$code])) { CSaleOrderPropsValue::Delete($param['ID']); } } $arFields['PERSON_TYPE_ID'] = $optionsOrderTypes[ $order['orderType'] ]; } array_walk_recursive( ICrmOrderActions::clearArr($order), 'ICrmOrderActions::recursiveUpdate',
<td valign="middle"><? $arPersonType = CSalePersonType::GetByID($arOrder["PERSON_TYPE_ID"]); echo htmlspecialcharsEx($arPersonType["NAME"]); ?> </td> </tr> <? //disabled town $arTownOrderProps = array(); $dbProperties = CSaleOrderProps::GetList( array(), array( "ORDER_ID" => $ID, "PERSON_TYPE_ID" => $arPersonType["ID"], "ACTIVE" => "Y", ">INPUT_FIELD_LOCATION" => 0 ), false, false, array("INPUT_FIELD_LOCATION") ); while ($arProperties = $dbProperties->Fetch()) $arTownOrderProps[$arProperties["INPUT_FIELD_LOCATION"]] = $arProperties["INPUT_FIELD_LOCATION"]; $arEnableTownProps = array(); $arOrderPropsValue = array(); $dbOrderProps = CSaleOrderPropsValue::GetOrderProps($ID); while ($arOrderProps = $dbOrderProps->Fetch()) { $arOrderPropsValue[] = $arOrderProps; if ($arOrderProps["TYPE"] == "LOCATION" && $arOrderProps["ACTIVE"] == "Y" && $arOrderProps["IS_LOCATION"] == "Y" && in_array($arOrderProps["INPUT_FIELD_LOCATION"], $arTownOrderProps))
$dbOrderPropsGroup = CSaleOrderPropsGroup::GetList( array("SORT" => "ASC", "NAME" => "ASC"), array("PERSON_TYPE_ID" => $arUserProps["PERSON_TYPE_ID"]), false, false, array("ID", "PERSON_TYPE_ID", "NAME", "SORT") ); while ($arOrderPropsGroup = $dbOrderPropsGroup->GetNext()) { $arrayTmp[$arOrderPropsGroup["ID"]] = $arOrderPropsGroup; $dbOrderProps = CSaleOrderProps::GetList( array("SORT" => "ASC", "NAME" => "ASC"), array( "PERSON_TYPE_ID" => $arUserProps["PERSON_TYPE_ID"], "PROPS_GROUP_ID" => $arOrderPropsGroup["ID"], "USER_PROPS" => "Y", "ACTIVE" => "Y", "UTIL" => "N" ), false, false, array("ID", "PERSON_TYPE_ID", "NAME", "TYPE", "REQUIED", "DEFAULT_VALUE", "SORT", "USER_PROPS", "IS_LOCATION", "PROPS_GROUP_ID", "SIZE1", "SIZE2", "DESCRIPTION", "IS_EMAIL", "IS_PROFILE_NAME", "IS_PAYER", "IS_LOCATION4TAX", "CODE", "SORT") ); while($arOrderProps = $dbOrderProps->GetNext()) { if ($arOrderProps["REQUIED"]=="Y" || $arOrderProps["IS_EMAIL"]=="Y" || $arOrderProps["IS_PROFILE_NAME"]=="Y" || $arOrderProps["IS_LOCATION"]=="Y" || $arOrderProps["IS_PAYER"]=="Y") $arOrderProps["REQUIED"] = "Y"; if (in_array($arOrderProps["TYPE"], Array("SELECT", "MULTISELECT", "RADIO"))) { $dbVars = CSaleOrderPropsVariant::GetList(($by="SORT"), ($order="ASC"), Array("ORDER_PROPS_ID"=>$arOrderProps["ID"])); while ($vars = $dbVars->GetNext()) $arOrderProps["VALUES"][] = $vars; }
function fGetLocationID($PERSON_TYPE_ID) { $arResult = array(); $dbProperties = CSaleOrderProps::GetList( array("SORT" => "ASC"), array("PERSON_TYPE_ID" => $PERSON_TYPE_ID), false, false, array("TYPE", "IS_ZIP", "ID", "SORT") ); while ($arProperties = $dbProperties->Fetch()) { if ($arProperties["TYPE"] == "TEXT") { if ($arProperties["IS_ZIP"] == "Y") { $arResult["LOCATION_ZIP_ID"] = $arProperties["ID"]; } } elseif ($arProperties["TYPE"] == "LOCATION") { $arResult["LOCATION_ID"] = $arProperties["ID"]; } } return $arResult; }
protected function makeAdditionalOrderProps($address, $buyer, $psId, $deliveryId, $locationId) { $psId = intval($psId); $arResult = array(); $arPropFilter = array("PERSON_TYPE_ID" => $this->personTypeId, "ACTIVE" => "Y"); if ($psId != 0) { $arPropFilter["RELATED"]["PAYSYSTEM_ID"] = $psId; $arPropFilter["RELATED"]["TYPE"] = "WITH_NOT_RELATED"; } if (strlen($deliveryId) > 0) { $arPropFilter["RELATED"]["DELIVERY_ID"] = $deliveryId; $arPropFilter["RELATED"]["TYPE"] = "WITH_NOT_RELATED"; } $dbOrderProps = CSaleOrderProps::GetList(array(), $arPropFilter, false, false, array("ID", "CODE")); while ($arOrderProps = $dbOrderProps->Fetch()) { if ($arOrderProps["CODE"] == $this->orderProps["FIO"] && !empty($buyer)) { $fio = $buyer["firstName"]; if (isset($buyer["middleName"])) { $fio .= ' ' . $buyer["middleName"]; } if (isset($buyer["lastName"])) { $fio .= ' ' . $buyer["lastName"]; } $arResult[$arOrderProps["ID"]] = $fio; } elseif ($arOrderProps["CODE"] == $this->orderProps["EMAIL"] && isset($buyer["email"])) { $arResult[$arOrderProps["ID"]] = $buyer["email"]; } elseif ($arOrderProps["CODE"] == $this->orderProps["PHONE"] && isset($buyer["phone"])) { $arResult[$arOrderProps["ID"]] = $buyer["phone"]; } elseif ($arOrderProps["CODE"] == $this->orderProps["ZIP"] && isset($address["postcode"])) { $arResult[$arOrderProps["ID"]] = $address["postcode"]; } elseif ($arOrderProps["CODE"] == $this->orderProps["CITY"]) { $arResult[$arOrderProps["ID"]] = $address["city"]; } elseif ($arOrderProps["CODE"] == $this->orderProps["LOCATION"]) { $arResult[$arOrderProps["ID"]] = $locationId; } elseif ($arOrderProps["CODE"] == $this->orderProps["ADDRESS"]) { $strAddr = ""; if (isset($address["postcode"])) { $strAddr .= $address["postcode"] . ", "; } $strAddr .= $address["country"] . ", " . $address["city"] . ", "; if (isset($address["street"])) { $strAddr .= GetMessage("SALE_YMH_ADDRESS_STREET") . " " . $address["street"] . ", "; } if (isset($address["subway"])) { $strAddr .= GetMessage("SALE_YMH_ADDRESS_SUBWAY") . " " . $address["subway"] . ", "; } $strAddr .= GetMessage("SALE_YMH_ADDRESS_HOUSE") . " " . $address["house"]; if (isset($address["block"])) { $strAddr .= ", " . GetMessage("SALE_YMH_ADDRESS_BLOCK") . " " . $address["block"]; } if (isset($address["entrance"])) { $strAddr .= ", " . GetMessage("SALE_YMH_ADDRESS_ENTRANCE") . " " . $address["entrance"]; } if (isset($address["entryphone"])) { $strAddr .= ", " . GetMessage("SALE_YMH_ADDRESS_ENTRYPHONE") . " " . $address["entryphone"]; } if (isset($address["floor"])) { $strAddr .= ", " . GetMessage("SALE_YMH_ADDRESS_FLOOR") . " " . $address["floor"]; } if (isset($address["apartment"])) { $strAddr .= ", " . GetMessage("SALE_YMH_ADDRESS_APARTMENT") . " " . $address["apartment"]; } if (isset($address["recipient"])) { $strAddr .= ", " . GetMessage("SALE_YMH_ADDRESS_RECIPIENT") . " " . $address["recipient"]; } if (isset($address["phone"])) { $strAddr .= ", " . GetMessage("SALE_YMH_ADDRESS_PHONE") . " " . $address["phone"]; } $arResult[$arOrderProps["ID"]] = $strAddr; } } return $arResult; }
</td> </tr> <? $tabControl->EndCustomField("ORDER_PAYED"); } // order properties related to the delivery and payment systems $html = ""; $arRelFilter = array(); $arRelFilter["RELATED"]["DELIVERY_ID"] = $str_DELIVERY_ID; $arRelFilter["RELATED"]["PAYSYSTEM_ID"] = $str_PAY_SYSTEM_ID; if (isset($arRelFilter["RELATED"]) && (strlen($arRelFilter["RELATED"]["DELIVERY_ID"]) > 0 || intval($arRelFilter["RELATED"]["PAYSYSTEM_ID"]) > 0)) { $dbRelatedProps = CSaleOrderProps::GetList(array(), $arRelFilter, false, false, array("*")); while ($arRelatedProps = $dbRelatedProps->GetNext()) $arProps[] = $arRelatedProps; $arPropsValues = array(); if (!$bVarsFromForm) { $dbPropValue = CSaleOrderPropsValue::GetOrderRelatedProps($ID, $arRelFilter["RELATED"]); while ($arValue = $dbPropValue->GetNext()) $arPropsValues[$arValue["ORDER_PROPS_ID"]] = $arValue["VALUE"]; } $propsHTML = getOrderPropertiesHTML($arProps, $arPropsValues, $LID, $str_USER_ID, $ID, $bVarsFromForm); } $tabControl->AddSection("RELATED_PROPS", GetMessage("NEW_ORDER_RELATED_PROPS"));
{ $dbPS = CSalePaySystem::GetList(Array(), Array("LID" => WIZARD_SITE_ID)); if($arPS = $dbPS->Fetch()) $paySystem = $arPS["ID"]; } if(IntVal($location) <= 0) { $dbLocation = CSaleLocation::GetList(Array("ID" => "ASC"), Array("LID" => $lang)); if($arLocation = $dbLocation->Fetch()) { $location = $arLocation["ID"]; } } if(empty($arGeneralInfo["properies"][$personType])) { $dbProp = CSaleOrderProps::GetList(array(), Array("PERSON_TYPE_ID" => $personType)); while($arProp = $dbProp->Fetch()) $arGeneralInfo["properies"][$personType][$arProp["CODE"]] = $arProp; } if(WIZARD_INSTALL_DEMO_DATA) { $db_sales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), array("LID" => WIZARD_SITE_ID), false, false, array("ID")); while ($ar_sales = $db_sales->Fetch()) { CSaleOrder::Delete($ar_sales["ID"]); } } $arData = Array(
$tabControl1->Begin(); foreach ($arPersonTypeList as $arPersonType) { $tabControl1->BeginNextTab(); ?> <script language="JavaScript"> <!-- arPropFieldsList[<?php echo $arPersonType["ID"]; ?> ] = new Array(); arPropFieldsNameList[<?php echo $arPersonType["ID"]; ?> ] = new Array(); <?php $dbOrderProps = CSaleOrderProps::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array("PERSON_TYPE_ID" => $arPersonType["ID"]), false, false, array("ID", "CODE", "NAME", "TYPE", "SORT")); $i = -1; while ($arOrderProps = $dbOrderProps->Fetch()) { $i++; ?> arPropFieldsList[<?php echo $arPersonType["ID"]; ?> ][<?php echo $i; ?> ] = '<?php echo CUtil::JSEscape(strlen($arOrderProps["CODE"]) > 0 ? $arOrderProps["CODE"] : $arOrderProps["ID"]); ?> '; arPropFieldsNameList[<?php
"filter_discount_coupon", "filter_person_type", "filter_user_id", "filter_user_login", "filter_user_email", "filter_group_id", "filter_sum_paid", "filter_delivery_request_sent", ); $arOrderProps = array(); $arOrderPropsCode = array(); $dbProps = CSaleOrderProps::GetList( array("PERSON_TYPE_ID" => "ASC", "SORT" => "ASC"), array(), false, false, array("ID", "NAME", "PERSON_TYPE_NAME", "PERSON_TYPE_ID", "SORT", "IS_FILTERED", "TYPE", "CODE") ); while ($arProps = $dbProps->GetNext()) { if(strlen($arProps["CODE"]) > 0) { if(empty($arOrderPropsCode[$arProps["CODE"]])) $arOrderPropsCode[$arProps["CODE"]] = $arProps; } else { $arOrderProps[IntVal($arProps["ID"])] = $arProps; } }
/** * <p>Функция удаляет тип плательщика с кодом ID. Так же удаляются все связанные данные. Если есть заказы, привязанные к этому типу плательщика, то тип плательщика не может быть удален. </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/csalepersontype/csalepersontype__delete.c2566ed3.php * @author Bitrix */ public static function Delete($ID) { global $DB; $ID = IntVal($ID); $db_orders = CSaleOrder::GetList( array("DATE_UPDATE" => "DESC"), array("PERSON_TYPE_ID" => $ID), false, array("nTopCount" => 1), array("ID") ); if ($db_orders->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGP_ERROR_PERSON_HAS_ORDER").$ID, "ERROR_PERSON_HAS_ORDER"); return False; } $db_events = GetModuleEvents("sale", "OnBeforePersonTypeDelete"); while ($arEvent = $db_events->Fetch()) if (ExecuteModuleEventEx($arEvent, Array($ID))===false) return false; $events = GetModuleEvents("sale", "OnPersonTypeDelete"); while ($arEvent = $events->Fetch()) ExecuteModuleEventEx($arEvent, Array($ID)); $DB->Query("DELETE FROM b_sale_pay_system_action WHERE PERSON_TYPE_ID = ".$ID."", true); $db_orderProps = CSaleOrderProps::GetList( array("PROPS_GROUP_ID" => "ASC"), array("PERSON_TYPE_ID" => $ID) ); while ($arOrderProps = $db_orderProps->Fetch()) { $DB->Query("DELETE FROM b_sale_order_props_variant WHERE ORDER_PROPS_ID = ".$arOrderProps["ID"]."", true); $DB->Query("DELETE FROM b_sale_order_props_value WHERE ORDER_PROPS_ID = ".$arOrderProps["ID"]."", true); $DB->Query("DELETE FROM b_sale_user_props_value WHERE ORDER_PROPS_ID = ".$arOrderProps["ID"]."", true); } $DB->Query("DELETE FROM b_sale_order_props WHERE PERSON_TYPE_ID = ".$ID."", true); $db_orderUserProps = CSaleOrderUserProps::GetList( array("NAME" => "ASC"), array("PERSON_TYPE_ID" => $ID) ); while ($arOrderUserProps = $db_orderUserProps->Fetch()) { $DB->Query("DELETE FROM b_sale_user_props_value WHERE USER_PROPS_ID = ".$arOrderUserProps["ID"]."", true); } $DB->Query("DELETE FROM b_sale_user_props WHERE PERSON_TYPE_ID = ".$ID."", true); $DB->Query("DELETE FROM b_sale_order_props_group WHERE PERSON_TYPE_ID = ".$ID."", true); $DB->Query("DELETE FROM b_sale_person_type_site WHERE PERSON_TYPE_ID=".$ID, true); unset($GLOBALS["SALE_PERSON_TYPE_LIST_CACHE"]); return $DB->Query("DELETE FROM b_sale_person_type WHERE ID = ".$ID."", true); }
if ($str_IS_LOCATION == "Y") { echo "checked"; } echo $disMulti; ?> ><br> <small><?php echo GetMessage("F_IS_LOCATION_DESCR"); ?> </small><br> </td> </tr> <?php $arFilter = array("PERSON_TYPE_ID" => IntVal($arPersonType["ID"]), "TYPE" => "TEXT", "ACTIVE" => "Y"); $dbAlterLocList = CSaleOrderProps::GetList(array(), $arFilter, false, false, array("ID", "NAME")); ?> <tr id="SHOW_TEXT_LOCATION"> <td width="40%"><?php echo GetMessage("F_ANOTHER_LOCATION"); ?> :</td> <td width="60%"> <select name="INPUT_FIELD_LOCATION" id="INPUT_FIELD_LOCATION"> <option value=""><?php echo GetMessage("NULL_ANOTHER_LOCATION"); ?> </option> <?php while ($arAlterLocList = $dbAlterLocList->Fetch()) { ?>