370
правок
Изменения
→Объект TBaseUtils
'''CreateAddressForActDelivery(ActCode, [Delivery_Tomorrow=False, Delivery=True])''' - Функция создает корреспонденцию на доставку акта. ActCode - код акта; Delivery_Tomorrow - установить план. дату доставки следующим рабочим днем или сегодня (по умолчанию , сегодня); Delivery - создать корр. на доставку АПД или создать корреспонденцию на забор АПД (по умолчанию, доставка АПД). Возвращает код созданного адреса.
'''GetPolygonByAddress(Address, TownCode, where[, field='code'])''' - функция возвращает значение связанное с полигоном в который попал адрес. Если полигон найти не удалось, функция возвратит пустую строку. Address - адрес корреспонденции текстом; TownCode - код города; where - SQL условие; field - необязательный параметр, определяет возвращаемое значение при найденном полигоне, по умолчанию равен "code".
Пример:
GetPolygonByAddress(addressrecord.address, if((addressrecord.number=0)*(addressrecord.strbarcode=<nowiki>''</nowiki>), addressrecord.townfrom, addressrecord.townto), '`schema`=1') - пытаемся найти вхождение адреса в полигоны 1 схемы, при выборе города учитывается корр. на забор, у нее нужно использовать город-отправитель (а для обычной корр. нужен город-получатель).
'''CalcAgentPrice(AddressCode, AgentCode, TownFrom, TownTo, Mass, Mode, Tp[, Count=1])''' - функция возвращает стоимость доставки рассчитанную по тарифу агента. AddressCode - код адреса, AgenCode - код филиала (агента), TownFrom - код города отправителя, TownTo - код города получателя, Mass - масса отправления, Mode - режим срочности, tp - тип посылки (в текущей реализации не используется), count - тарифная сетку от указанного количества отправлений (по умолчанию 1)
'''SetAddrKol_vo(address, getkol_vo)''' - функция делает прием корреспонденции в текущем ответственном филиале. address - внутренний код адреса, getkol_vo - количество принимаемых мест, может принимать значения: "kol_vo" - принять все места, "getKol_vo+1" - принять еще одно место, "число" - сделать количество принятых мест равным указанному числу.
'''GetBasePrice''' - возвращает базовую стоимость доставки посчитанную по тарифной сетке клиента в зависисмости от :кол-ва заказов,зоны,типа,срочности,массы, расстояния. В системах с выключенными доп. услугами также считает проценты от суммы и страховки.
Описание параметров:
*ds - ссылка на объект датасета с основными параметрами расчета цены. Значение по умолчанию доступно в формулах тарифа и доп. услуг, через вызов "dataset._self".
Описание некоторых полей датасета:
pmoney - процент от суммы;
pmoneycard - процент от суммы при оплате картой;
pricecode - код прайса (таблица Price) ;
distarea - район метро получателя (актуально при отключённом едином районировании, как правило район от 200 до 299 является признаком области);
region - признак области при включенном едином районировании;
distareaFrom и regionFrom - аналог distarea, region только для отправителя;
pcncode - код записи таблицы pricecnt "количество от";
Запрос содержит поля таблицы pricelinesnew - начальная стоимость по тарифной сетки, найденные без учета массы,только по типу срочности и режиму.
Запрос содержит поля таблицы price.
*addressrecord - ссылка на объектную модель карточки корреспонденции, следует использовать уже созданную addressrecord._self
*count - количество корреспонденций от клиента. (может показывать кол-во корреспонденции в текущем заказе или за прошлый месяц, в зависимости от выбранной схемы подсчета заказов в тарифе)
*type - тип корреспонденции;
*mode - режим доставки;
*wait - количество минут ожидания (не учитывается при доп. услугах, есть системная услуга "ожидание");
*mass - масса отправления;
*rur - сумма передаваемых денег (не учитывается при доп. услугах, есть системная услуга "процент от суммы");
*inshprice - сумма страховки (не учитывается при доп. услугах, есть системная услуга "процент от объявленной стоимости");
*distance - расстояние до места доставки, обычно поле заполняется при доставке в область (регион в едино районировании). Дополнительная наценка к стоимости доставки;
*forward - направление доставки: true - туда; false - обратно;
*Collection - признак заборной корреспонденции: true - забор, false - доставка (В тарифе есть возможность указать стоимость для забора);
*TownFrom - код города отправителя;
*TownTo - код города получателя.
В тарифе есть возможность указать формулу, которая может влиять на базовый расчет. Формула может объявить служебные переменные, которые:
*$FormulaReplace - если true – возвращаемое значение полностью заменяет базовый расчет;
*$FormulaKoeff - коэффициент на который будет помножена базовая стоимость.
Также внутри формулы объявлены следующие объекты dataset, addressrecord и переменные: $forward, $distance, $Count, $Collection, $Wait, $FormulaKoeff, $PriceCode.
Для направления "туда", Функция GetBasePrice вызывается через доп. услугу "База" (при включенных доп. услугах), для направления "Обратно" всегда вызывается напрямую (т.к. доп. услуги работают только в для направления "туда").
На расчет этой функции влияют следующие переменные: "Финансы" -> "Расчет стоимости по адресу", "Финансы" -> "Зона клиента по умолчанию", "Финансы" -> "Подсчет кол-ва отправлений за месяц".
== Объект TBaseSupport ==