Ejemplo n.º 1
0
 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__);
     }
 }
Ejemplo n.º 2
0
 /**
  * @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();
 }
Ejemplo n.º 3
0
 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;
     })));
 }
Ejemplo n.º 4
0
 $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)) {
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 6
0
$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;
        }
Ejemplo n.º 7
0
        $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;
    }