Example #1
0
 public static function CheckFields($ACTION, &$arFields, $ID = 0)
 {
     if ((is_set($arFields, "ORDER_ID") || $ACTION == "ADD") && IntVal($arFields["ORDER_ID"]) <= 0) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGOPV_EMPTY_ORDER_ID"), "EMPTY_ORDER_ID");
         return false;
     }
     if ((is_set($arFields, "ORDER_PROPS_ID") || $ACTION == "ADD") && IntVal($arFields["ORDER_PROPS_ID"]) <= 0) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGOPV_EMPTY_PROP_ID"), "EMPTY_ORDER_PROPS_ID");
         return false;
     }
     if (is_set($arFields, "ORDER_ID")) {
         if (!($arOrder = CSaleOrder::GetByID($arFields["ORDER_ID"]))) {
             $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["ORDER_ID"], GetMessage("SKGOPV_NO_ORDER_ID")), "ERROR_NO_ORDER");
             return false;
         }
     }
     if (is_set($arFields, "ORDER_PROPS_ID")) {
         if (!($arOrder = CSaleOrderProps::GetByID($arFields["ORDER_PROPS_ID"]))) {
             $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["ORDER_PROPS_ID"], GetMessage("SKGOPV_NO_PROP_ID")), "ERROR_NO_PROPERY");
             return false;
         }
         if (is_set($arFields, "ORDER_ID")) {
             $arFilter = array("ORDER_ID" => $arFields["ORDER_ID"], "ORDER_PROPS_ID" => $arFields["ORDER_PROPS_ID"]);
             if (IntVal($ID) > 0) {
                 $arFilter["!ID"] = $ID;
             }
             $dbP = CSaleOrderPropsValue::GetList(array(), $arFilter);
             if ($arP = $dbP->Fetch()) {
                 $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGOPV_DUPLICATE_PROP_ID", array("#ID#" => $arFields["ORDER_PROPS_ID"], "#ORDER_ID#" => $arFields["ORDER_ID"])), "ERROR_DUPLICATE_PROP_ID");
                 return false;
             }
         }
     }
     return True;
 }
Example #2
0
 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);
     }
 }
Example #3
0
 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;
 }
Example #4
0
 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;
 }
 protected static function translateLocationIDToCode($id, $orderPropId)
 {
     if (!CSaleLocation::isLocationProMigrated()) {
         return $id;
     }
     $prop = CSaleOrderProps::GetByID($orderPropId);
     if (isset($prop['TYPE']) && $prop['TYPE'] == 'LOCATION') {
         if ((string) $id === (string) intval($id)) {
             return CSaleLocation::tryTranslateIDToCode($id);
         }
     }
     return $id;
 }
 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);
 }
function AddOrderProperty($prop_id, $value, $order)
{
    if (!strlen($prop_id)) {
        return false;
    }
    if (CModule::IncludeModule('sale')) {
        if ($arOrderProps = CSaleOrderProps::GetByID($prop_id)) {
            $db_vals = CSaleOrderPropsValue::GetList(array(), array('ORDER_ID' => $order, 'ORDER_PROPS_ID' => $arOrderProps['ID']));
            if ($arVals = $db_vals->Fetch()) {
                return CSaleOrderPropsValue::Update($arVals['ID'], array('NAME' => $arVals['NAME'], 'CODE' => $arVals['CODE'], 'ORDER_PROPS_ID' => $arVals['ORDER_PROPS_ID'], 'ORDER_ID' => $arVals['ORDER_ID'], 'VALUE' => $value));
            } else {
                return CSaleOrderPropsValue::Add(array('NAME' => $arOrderProps['NAME'], 'CODE' => $arOrderProps['CODE'], 'ORDER_PROPS_ID' => $arOrderProps['ID'], 'ORDER_ID' => $order, 'VALUE' => $value));
            }
        }
    }
}
Example #8
0
    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;
    }
 function CheckFields($ACTION, &$arFields, $ID = 0)
 {
     global $DB, $USER;
     if ((is_set($arFields, "VALUE") || $ACTION == "ADD") && strlen($arFields["VALUE"]) <= 0) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGOPV_EMPTY_VAR"), "ERROR_NO_VALUE");
         return false;
     }
     if ((is_set($arFields, "NAME") || $ACTION == "ADD") && strlen($arFields["NAME"]) <= 0) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGOPV_EMPTY_NAME"), "ERROR_NO_NAME");
         return false;
     }
     if ((is_set($arFields, "ORDER_PROPS_ID") || $ACTION == "ADD") && IntVal($arFields["ORDER_PROPS_ID"]) <= 0) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGOPV_EMPTY_CODE"), "ERROR_NO_ORDER_PROPS_ID");
         return false;
     }
     if (is_set($arFields, "ORDER_PROPS_ID")) {
         if (!($arOrder = CSaleOrderProps::GetByID($arFields["ORDER_PROPS_ID"]))) {
             $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $arFields["ORDER_PROPS_ID"], GetMessage("SKGOPV_NO_PROP")), "ERROR_NO_PROPERY");
             return false;
         }
     }
     return True;
 }
Example #10
0
  */
 $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"])];
Example #11
0
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;
}
$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);
Example #13
0
						<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))
Example #14
0
        $val["PRICE"] -= $val["DISCOUNT_RATION_VALUE"];
        $arBasket[$key] = $val;
    }
    return $arBasket;
}
if (CModule::IncludeModule("sale")) {
    if ($arOrder = CSaleOrder::GetByID($ORDER_ID)) {
        $rep_file_name = GetRealPath2Report($doc . ".php");
        if (strlen($rep_file_name) <= 0) {
            ShowError("PRINT TEMPLATE NOT FOUND");
            die;
        }
        $arOrderProps = array();
        $dbOrderPropVals = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $ORDER_ID), false, false, array("ID", "CODE", "VALUE", "ORDER_PROPS_ID", "PROP_TYPE"));
        while ($arOrderPropVals = $dbOrderPropVals->Fetch()) {
            $arCurOrderPropsTmp = CSaleOrderProps::GetRealValue($arOrderPropVals["ORDER_PROPS_ID"], $arOrderPropVals["CODE"], $arOrderPropVals["PROP_TYPE"], $arOrderPropVals["VALUE"], LANGUAGE_ID);
            foreach ($arCurOrderPropsTmp as $key => $value) {
                $arOrderProps[$key] = $value;
            }
        }
        if (CSaleLocation::isLocationProMigrated()) {
            if (strlen($arOrderProps['LOCATION_VILLAGE']) && !strlen($arOrderProps['LOCATION_CITY'])) {
                $arOrderProps['LOCATION_CITY'] = $arOrderProps['LOCATION_VILLAGE'];
            }
            // street added to the beginning of address, as it used to be before
            if (strlen($arOrderProps['LOCATION_STREET']) && isset($arOrderProps['ADDRESS'])) {
                $arOrderProps['ADDRESS'] = $arOrderProps['LOCATION_STREET'] . (strlen($arOrderProps['ADDRESS']) ? ', ' . $arOrderProps['ADDRESS'] : '');
            }
        }
        $arBasketIDs = array();
        $arQuantities = array();
Example #15
0
/**
 * функция по собыитию изминению закааза
 * функция добавляет значения-заглушку  в свойство Адрес доставки
 */
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'
                ));
            }


        }
    }


}
Example #16
0
 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;
 }
Example #17
0
    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 />";
                    }
                }
            }
        }
    }
Example #18
0
		{
			$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(
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()) {
    ?>
Example #20
0
		</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"));
Example #21
0
            $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',
Example #22
0
 function Update($ID, $arFields)
 {
     global $DB;
     $ID = IntVal($ID);
     if (!CSaleOrderProps::CheckFields("UPDATE", $arFields, $ID)) {
         return false;
     }
     $strUpdate = $DB->PrepareUpdate("b_sale_order_props", $arFields);
     $strSql = "UPDATE b_sale_order_props SET " . $strUpdate . " WHERE ID = " . $ID . "";
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     return $ID;
 }
Example #23
0
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;
}
Example #24
0
	/**
	 * <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);
	}
Example #25
0
    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;
    }
Example #26
0
 function Add($arFields)
 {
     global $DB;
     if (!CSaleOrderProps::CheckFields("ADD", $arFields)) {
         return false;
     }
     $arInsert = $DB->PrepareInsert("b_sale_order_props", $arFields);
     $strSql = "INSERT INTO b_sale_order_props(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")";
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     $ID = IntVal($DB->LastID());
     return $ID;
 }
Example #27
0
	$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;
			}
$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 
Example #29
0
<?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");
        }
    }
}
Example #30
-1
 static function DoSaveOrder(&$arOrder, $arAdditionalFields, $orderId, &$arErrors, $arCoupons = array(), $arStoreBarcodeOrderFormData = array(), $bSaveBarcodes = false)
 {
     global $APPLICATION;
     $orderId = intval($orderId);
     $arFields = array("LID" => $arOrder["SITE_ID"], "PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"], "PRICE" => $arOrder["PRICE"], "CURRENCY" => $arOrder["CURRENCY"], "USER_ID" => $arOrder["USER_ID"], "PAY_SYSTEM_ID" => $arOrder["PAY_SYSTEM_ID"], "PRICE_DELIVERY" => $arOrder["DELIVERY_PRICE"], "DELIVERY_ID" => strlen($arOrder["DELIVERY_ID"]) > 0 ? $arOrder["DELIVERY_ID"] : false, "DISCOUNT_VALUE" => $arOrder["DISCOUNT_PRICE"], "TAX_VALUE" => $arOrder["TAX_VALUE"]);
     if ($orderId <= 0) {
         $arFields["PAYED"] = "N";
         $arFields["CANCELED"] = "N";
         $arFields["STATUS_ID"] = "N";
     }
     $arFields = array_merge($arFields, $arAdditionalFields);
     if ($orderId > 0) {
         $orderId = CSaleOrder::Update($orderId, $arFields);
     } else {
         if (COption::GetOptionString("sale", "product_reserve_condition", "O") == "O") {
             $arFields["RESERVED"] = "Y";
         }
         $orderId = CSaleOrder::Add($arFields);
     }
     $orderId = intval($orderId);
     if ($orderId <= 0) {
         if ($ex = $APPLICATION->GetException()) {
             $arErrors[] = $ex->GetString();
         } else {
             $arErrors[] = GetMessage("SOA_ERROR_ORDER");
         }
     }
     if (count($arErrors) > 0) {
         return null;
     }
     CSaleBasket::DoSaveOrderBasket($orderId, $arOrder["SITE_ID"], $arOrder["USER_ID"], $arOrder["BASKET_ITEMS"], $arErrors, $arCoupons, $arStoreBarcodeOrderFormData, $bSaveBarcodes);
     CSaleTax::DoSaveOrderTax($orderId, $arOrder["TAX_LIST"], $arErrors);
     CSaleOrderProps::DoSaveOrderProps($orderId, $arOrder["PERSON_TYPE_ID"], $arOrder["ORDER_PROP"], $arErrors);
     /*
     			// mail message
     			if (empty($arResult["ERROR"]))
     			{
     				$strOrderList = "";
     				$dbBasketItems = CSaleBasket::GetList(
     						array("NAME" => "ASC"),
     						array("ORDER_ID" => $arResult["ORDER_ID"]),
     						false,
     						false,
     						array("ID", "NAME", "QUANTITY", "PRICE", "CURRENCY")
     					);
     				while ($arBasketItems = $dbBasketItems->Fetch())
     				{
     					$strOrderList .= $arBasketItems["NAME"]." - ".$arBasketItems["QUANTITY"]." ".GetMessage("SOA_SHT").": ".SaleFormatCurrency($arBasketItems["PRICE"], $arBasketItems["CURRENCY"]);
     					$strOrderList .= "\n";
     				}
     
     				$arFields = Array(
     					"ORDER_ID" => $arResult["ORDER_ID"],
     					"ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", SITE_ID))),
     					"ORDER_USER" => ( (strlen($arUserResult["PAYER_NAME"]) > 0) ? $arUserResult["PAYER_NAME"] : $USER->GetFullName() ),
     					"PRICE" => SaleFormatCurrency($totalOrderPrice, $arResult["BASE_LANG_CURRENCY"]),
     					"BCC" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME),
     					"EMAIL" => (strlen($arUserResult["USER_EMAIL"])>0 ? $arUserResult["USER_EMAIL"] : $USER->GetEmail()),
     					"ORDER_LIST" => $strOrderList,
     					"SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME),
     					"DELIVERY_PRICE" => $arResult["DELIVERY_PRICE"],
     				);
     				$eventName = "SALE_NEW_ORDER";
     
     				$bSend = true;
     				foreach(GetModuleEvents("sale", "OnOrderNewSendEmail", true) as $arEvent)
     					if (ExecuteModuleEventEx($arEvent, Array($arResult["ORDER_ID"], &$eventName, &$arFields))===false)
     						$bSend = false;
     
     				if($bSend)
     				{
     					$event = new CEvent;
     					$event->Send($eventName, SITE_ID, $arFields, "N");
     				}
     			}
     
     			if(CModule::IncludeModule("statistic"))
     			{
     				$event1 = "eStore";
     				$event2 = "order_confirm";
     				$event3 = $arResult["ORDER_ID"];
     
     				$e = $event1."/".$event2."/".$event3;
     
     				if(!is_array($_SESSION["ORDER_EVENTS"]) || (is_array($_SESSION["ORDER_EVENTS"]) && !in_array($e, $_SESSION["ORDER_EVENTS"])))
     				{
     						CStatistic::Set_Event($event1, $event2, $event3);
     						$_SESSION["ORDER_EVENTS"][] = $e;
     				}
     			}
     			$arOrder = CSaleOrder::GetByID($arResult["ORDER_ID"]);
     			foreach(GetModuleEvents("sale", "OnSaleComponentOrderOneStepComplete", true) as $arEvent)
     				ExecuteModuleEventEx($arEvent, Array($arResult["ORDER_ID"], $arOrder));
     */
     return $orderId;
 }