static function migrate() { $errors = ''; $result = Application::getConnection()->query('SELECT * FROM b_sale_order_props'); while ($oldProperty = $result->fetch()) { $newProperty = self::convertOldToNew($oldProperty); $newProperty['IS_ADDRESS'] = 'N'; // fix oracle's mb default $update = OrderPropsTable::update($newProperty['ID'], array_intersect_key($newProperty, self::$allFields)); if ($update->isSuccess()) { //////CSaleOrderPropsValueAdapter::migrate($oldProperty); } else { $errors .= 'cannot update property: ' . $oldProperty['ID'] . "\n" . implode("\n", $update->getErrorMessages()) . "\n\n"; } } if ($errors) { throw new SystemException($errors, 0, __FILE__, __LINE__); } }
/** * @param int $personTypeId Person type Id. * @return array Orders properties. */ public static function getOrderPropsList($personTypeId) { if (intval($personTypeId) <= 0) { throw new ArgumentNullException('personTypeId'); } $res = OrderPropsTable::getList(array('filter' => array('=PERSON_TYPE_ID' => $personTypeId), 'order' => array('SORT' => 'ASC', 'NAME' => 'ASC'), 'select' => array('ID', 'CODE', 'NAME'))); return $res->fetchAll(); }
public static function getBusinessValueProviders() { return array('ORDER' => array('NAME' => Loc::getMessage('BIZVAL_PROVIDER_ORDER'), 'SORT' => 200, 'FIELDS' => array('ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_ID')), 'ACCOUNT_NUMBER' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_NUMBER')), 'DATE_INSERT' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_DATETIME')), 'DATE_INSERT_DATE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_DATE')), 'DATE_PAY_BEFORE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_PAY_BEFORE')), 'SHOULD_PAY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_PRICE')), 'CURRENCY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_CURRENCY')), 'PRICE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_SUM')), 'LID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_SITE_ID')), 'PRICE_DELIVERY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_PRICE_DELIV')), 'DISCOUNT_VALUE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_DESCOUNT')), 'USER_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_USER_ID')), 'PAY_SYSTEM_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_PAY_SYSTEM_ID')), 'DELIVERY_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_DELIVERY_ID')), 'TAX_VALUE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_TAX')))), 'USER' => array('NAME' => Loc::getMessage('BIZVAL_PROVIDER_USER'), 'SORT' => 100, 'FIELDS' => array('ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_USER_ID'), 'GROUP' => 'CLIENT'), 'LOGIN' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_USER_LOGIN'), 'GROUP' => 'CLIENT'), 'NAME' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_FIRST_NAME'), 'GROUP' => 'CLIENT'), 'SECOND_NAME' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_SECOND_NAME'), 'GROUP' => 'CLIENT'), 'LAST_NAME' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_LAST_NAME'), 'GROUP' => 'CLIENT'), 'EMAIL' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_EMAIL'), 'GROUP' => 'CLIENT'), 'LID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_USER_SITE_ID'), 'GROUP' => 'CLIENT'), 'PERSONAL_PROFESSION' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_PROFESSION'), 'GROUP' => 'CLIENT'), 'PERSONAL_WWW' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_WEBSITE'), 'GROUP' => 'CLIENT'), 'PERSONAL_ICQ' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_ICQ'), 'GROUP' => 'CLIENT'), 'PERSONAL_GENDER' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_SEX'), 'GROUP' => 'CLIENT'), 'PERSONAL_FAX' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_FAX'), 'GROUP' => 'CLIENT'), 'PERSONAL_MOBILE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_PHONE'), 'GROUP' => 'CLIENT'), 'PERSONAL_STREET' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_ADDRESS'), 'GROUP' => 'CLIENT'), 'PERSONAL_MAILBOX' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_POSTAL_ADDRESS'), 'GROUP' => 'CLIENT'), 'PERSONAL_CITY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_CITY'), 'GROUP' => 'CLIENT'), 'PERSONAL_STATE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_REGION'), 'GROUP' => 'CLIENT'), 'PERSONAL_ZIP' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_ZIP'), 'GROUP' => 'CLIENT'), 'PERSONAL_COUNTRY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COUNTRY'), 'GROUP' => 'CLIENT'), 'WORK_COMPANY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_NAME'), 'GROUP' => 'CLIENT_COMPANY'), 'WORK_DEPARTMENT' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_DEPARTMENT'), 'GROUP' => 'CLIENT_COMPANY'), 'WORK_POSITION' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_POSITION'), 'GROUP' => 'CLIENT_COMPANY'), 'WORK_WWW' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_WEBSITE'), 'GROUP' => 'CLIENT_COMPANY'), 'WORK_PHONE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_PHONE'), 'GROUP' => 'CLIENT_COMPANY'), 'WORK_FAX' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_FAX'), 'GROUP' => 'CLIENT_COMPANY'), 'WORK_STREET' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_ADDRESS'), 'GROUP' => 'CLIENT_COMPANY'), 'WORK_MAILBOX' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_POSTAL_ADDRESS'), 'GROUP' => 'CLIENT_COMPANY'), 'WORK_CITY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_CITY'), 'GROUP' => 'CLIENT_COMPANY'), 'WORK_STATE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_REGION'), 'GROUP' => 'CLIENT_COMPANY'), 'WORK_ZIP' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_ZIP'), 'GROUP' => 'CLIENT_COMPANY'), 'WORK_COUNTRY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CLIENT_COMPANY_COUNTRY'), 'GROUP' => 'CLIENT_COMPANY')), 'FIELDS_GROUPS' => array('CLIENT' => array('NAME' => Loc::getMessage('BIZVAL_GROUP_CLIENT'), 'SORT' => 100), 'CLIENT_COMPANY' => array('NAME' => Loc::getMessage('BIZVAL_GROUP_CLIENT_COMPANY'), 'SORT' => 200))), 'PROPERTY' => array('NAME' => Loc::getMessage('BIZVAL_PROVIDER_PROPERTY'), 'SORT' => 300, 'FIELDS' => call_user_func(function () { $data = array(); $result = Internals\OrderPropsTable::getList(array('select' => array('ID', 'NAME', 'PERSON_TYPE_ID'), 'filter' => array('=PERSON_TYPE_ID' => array_keys(BusinessValue::getActivePersonTypeIds())), 'order' => array('PERSON_TYPE_ID', 'SORT'))); while ($row = $result->fetch()) { $data[$row['ID']] = array('NAME' => $row['NAME'], 'GROUP' => $row['PERSON_TYPE_ID']); } return $data; }), 'FIELDS_GROUPS' => call_user_func(function () { $data = array(); foreach (BusinessValue::getActivePersonTypeIds() as $personTypeId => $row) { $data[$personTypeId] = array('NAME' => $row['NAME']); } return $data; }))); }
$propertyForDB['SETTINGS'] = array_intersect_key($propertyForDB, $inputSettings); $propertyForDB = array_diff_key($propertyForDB, $propertyForDB['SETTINGS']); // 1. update property if ($propertyId) { $update = OrderPropsTable::update($propertyId, array_diff_key($propertyForDB, array('ID' => 1))); if ($update->isSuccess()) { $propertyCode = ($v = $property['CODE']) ? $v : false; $result = CSaleOrderPropsValue::GetList($b = 'ID', $o = 'ASC', array('ORDER_PROPS_ID' => $propertyId, '!CODE' => $propertyCode)); while ($row = $result->Fetch()) { CSaleOrderPropsValue::Update($row['ID'], array('CODE' => $propertyCode)); } } else { $errors[] = loc::getMessage('ERROR_EDIT_PROP') . ': ' . implode(', ', $update->getErrorMessages()); } } else { $insert = OrderPropsTable::add($propertyForDB); if ($insert->isSuccess()) { $propertyId = $property['ID'] = $insert->getId(); } else { $errors[] = loc::getMessage('ERROR_ADD_PROP') . ': ' . implode(', ', $insert->getErrorMessages()); } } // cleanup files if ($errors) { if (isset($savedFiles)) { $filesToDelete = $savedFiles; } } else { if ($existentProperty && $existentProperty['TYPE'] == 'FILE') { $filesToDelete = Input\File::asMultiple(Input\File::getValue($existentProperty, $existentProperty['DEFAULT_VALUE'])); if (isset($files)) {
public static function loadForOrder(Order $order) { $objects = array(); $propertyValues = array(); $propertyValuesMap = array(); $properties = array(); if ($order->getId() > 0) { $result = OrderPropsValueTable::getList(array('select' => array('ID', 'NAME', 'VALUE', 'CODE', 'ORDER_PROPS_ID'), 'filter' => array('ORDER_ID' => $order->getId()))); while ($row = $result->fetch()) { $propertyValues[$row['ID']] = $row; $propertyValuesMap[$row['ORDER_PROPS_ID']] = $row['ID']; } } $filter = array(); if ($order->getPersonTypeId() > 0) { $filter[] = array('=PERSON_TYPE_ID' => $order->getPersonTypeId()); } $result = OrderPropsTable::getList(array('select' => array('ID', 'PERSON_TYPE_ID', 'NAME', 'TYPE', 'REQUIRED', 'DEFAULT_VALUE', 'SORT', 'USER_PROPS', 'IS_LOCATION', 'PROPS_GROUP_ID', 'DESCRIPTION', 'IS_EMAIL', 'IS_PROFILE_NAME', 'IS_PAYER', 'IS_LOCATION4TAX', 'IS_FILTERED', 'CODE', 'IS_ZIP', 'IS_PHONE', 'IS_ADDRESS', 'ACTIVE', 'UTIL', 'INPUT_FIELD_LOCATION', 'MULTIPLE', 'SETTINGS'), 'filter' => $filter, 'order' => array('SORT' => 'ASC'))); while ($row = $result->fetch()) { $properties[$row['ID']] = $row; } $result = OrderPropsRelationTable::getList(array('select' => array('PROPERTY_ID', 'ENTITY_ID', 'ENTITY_TYPE'), 'filter' => array('PROPERTY_ID' => array_keys($properties)))); $propRelation = array(); while ($row = $result->fetch()) { if (empty($row)) { continue; } if (!isset($propRelation[$row['PROPERTY_ID']])) { $propRelation[$row['PROPERTY_ID']] = array(); } $propRelation[$row['PROPERTY_ID']][] = $row; } foreach ($properties as $property) { $id = $property['ID']; if (isset($propertyValuesMap[$id])) { $fields = $propertyValues[$propertyValuesMap[$id]]; unset($propertyValues[$propertyValuesMap[$id]]); unset($propertyValuesMap[$id]); } else { if ($property['ACTIVE'] == 'N' || $property['UTIL'] == 'Y') { continue; } $fields = null; } if (isset($propRelation[$id])) { $objects[] = new static($property, $fields, $propRelation[$id]); } else { $objects[] = new static($property, $fields); } } foreach ($propertyValues as $propertyValue) { $objects[] = new static(null, $propertyValue); } return $objects; }
$arAccessibleSites = array(); $dbAccessibleSites = CSaleGroupAccessToSite::GetList(array(), array("GROUP_ID" => $arUserGroups), false, false, array("SITE_ID")); while ($arAccessibleSite = $dbAccessibleSites->Fetch()) { if (!in_array($arAccessibleSite["SITE_ID"], $arAccessibleSites)) { $arAccessibleSites[] = $arAccessibleSite["SITE_ID"]; } } $bExport = isset($_REQUEST['mode']) && $_REQUEST['mode'] == 'excel'; $sTableID = "tbl_sale_order"; $oSort = new CAdminSorting($sTableID, "ID", "desc"); $lAdmin = new CAdminList($sTableID, $oSort); $runtimeFields = array(); $arFilterFields = array("filter_universal", "filter_id_from", "filter_id_to", "filter_account_number", "filter_date_from", "filter_date_to", "filter_date_update_from", "filter_date_update_to", "filter_date_paid_from", "filter_date_paid_to", "filter_lang", "filter_currency", "filter_price_from", "filter_price_to", "filter_status", "filter_date_status_from", "filter_by_recommendation", "filter_date_status_to", "filter_payed", "filter_canceled", "filter_deducted", "filter_allow_delivery", "filter_date_allow_delivery_to", "filter_date_allow_delivery_from", "filter_marked", "filter_buyer", "filter_product_id", "filter_product_xml_id", "filter_affiliate_id", "filter_discount_coupon", "filter_person_type", "filter_user_id", "filter_user_login", "filter_user_email", "filter_group_id", "filter_sum_paid", "filter_pay_system", "filter_xml_id", "filter_tracking_number", "filtrer_source"); $arOrderProps = array(); $arOrderPropsCode = array(); $dbProps = \Bitrix\Sale\Internals\OrderPropsTable::getList(array('order' => array("PERSON_TYPE_ID" => "ASC", "SORT" => "ASC"), 'select' => array("ID", "NAME", "PERSON_TYPE_NAME" => "PERSON_TYPE.NAME", "PERSON_TYPE_ID", "SORT", "IS_FILTERED", "TYPE", "CODE", "SETTINGS"))); while ($arProps = $dbProps->fetch()) { $key = ""; if (strlen($arProps["CODE"]) > 0) { $key = $arProps["CODE"]; if (empty($arOrderPropsCode[$key])) { $arOrderPropsCode[$key] = $arProps; } } else { $key = $arProps["ID"]; $arOrderProps[IntVal($key)] = $arProps; } if ($key) { if ($arProps["IS_FILTERED"] == "Y" && $arProps["TYPE"] != "MULTISELECT" && $arProps["TYPE"] != "FILE") { $arFilterFields[] = "filter_prop_" . $key; }
$codeName = $row['NAME']; $codeDomain = $row['DOMAIN']; if ($message = Loc::getMessage("BIZVAL_CODE_{$codeName}")) { $codeName = $message; } $code = array('NAME' => $codeName, 'DOMAIN' => $codeDomain, 'GROUP_ID' => $row['GROUP_ID'], 'PARENTS' => array($parentId => $parents[$parentId])); if ($mapId) { $code[$row['MAP_PERSON_ID']] = array('ID' => $mapId, 'ENTITY' => $row['MAP_ENTITY'], 'ITEM' => $row['MAP_ITEM']); } $activeCodeDomains[$codeDomain] = true; } } unset($code, $codeParent, $codeMap); // LOAD ORDER PROPERTIES /////////////////////////////////////////////////////////////////////////////////////////////// $propertyOptions = array(); $result = OrderPropsTable::getList(array('select' => array('ID', 'NAME', 'PERSON_TYPE_ID'), 'filter' => array('=PERSON_TYPE_ID' => array_keys($personsDomains)), 'order' => array('PERSON_TYPE_ID', 'SORT'))); while ($row = $result->fetch()) { $propertyOptions[$row['PERSON_TYPE_ID']][$row['ID']] = $row['NAME']; } $propertyOptionsByName = array(); foreach ($propertyOptions as $personId => $options) { $propertyOptionsByName[$persons[$personId]] = $options; } // INPUTS ////////////////////////////////////////////////////////////////////////////////////////////////////////////// $codeInputOptions = array('' => Loc::getMessage('BIZVAL_PAGE_FILTER_ALL'), Loc::getMessage('BIZVAL_DOMAIN_COMMON') => array(), Loc::getMessage('BIZVAL_DOMAIN_INDIVIDUAL') => array(), Loc::getMessage('BIZVAL_DOMAIN_ENTITY') => array()); $result = BusinessValueCodeTable::getList(array('select' => array('ID', 'NAME', 'DOMAIN'))); while ($row = $result->fetch()) { $codeName = $row['NAME']; if ($message = Loc::getMessage("BIZVAL_CODE_{$codeName}")) { $codeName = $message; }