Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 8 Следующий »

Оглавление

Примеры правил применимости, которые можно использовать в правиле применимости продукта в целом или для пакетов документов в составе продукта.

Вы можете по аналогии написать собственные правила.

Примеры сформированных тестовых заявок на дату 25/05/2020 со структурой, актуальной для версии 1.12 и выше, по которым можно посмотреть структуру данных:

для типа продукта Банковская гарантия на исполнение от клиента ИП - БГ(И) ИП.json

для типа продукта Банковская гарантия на возврат аванса от клиента ЮЛ - БГ(А) ЮЛ.json

для типа продукта Банковская гарантия обеспечения гарантийных обязательств от клиента ЮЛ - БГ(О) ЮЛ.json

для типа продукта Банковская гарантия на участие от клиента ЮЛ - БГ(У) ЮЛ.json

для типа продукта Тендерный займ от клиента ЮЛ - ТЗ ЮЛ.json

1 Примеры скриптов правил применимости

Описание правилаПример правила применимости, script
(пример синтаксиса действует с версии 1.9.0)

для ИП

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null) {
                 return null;
               }
               return clientCompany.legalType.id == 'IP';
}

где для указания значения clientCompany.legalType.id используется справочник legal_types

ЮЛ с суммой гарантии больше 10 млн

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
                  var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
                  if (clientCompany == null || clientCompany.legalType == null ||  dealApplicationData.result.productDealState.amount == null) {
                    return null;
                  }
                  return clientCompany.legalType.id == 'ORGANIZATION' && dealApplicationData.result.productDealState.amount > 10000000;
}

ЮЛ с фактической ценой контракта до 100 тысяч

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null || dealApplicationData.result.productDealState.actualContractPrice == null) {
                 return null;
               }
               return clientCompany.legalType.id == 'ORGANIZATION' && dealApplicationData.result.productDealState.actualContractPrice < 100000;
}

ЮЛ со сроком гарантии меньше 30 дней

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null || dealApplicationData.result.productDealState.termDays == null) {
                 return null;
               }
               return clientCompany.legalType.id == 'ORGANIZATION' && dealApplicationData.result.productDealState.termDays < 30;
}

ЮЛ, финансовая (FIN) или некоммерческая организации (UNCOM)

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
                var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
                var clientOrgTypeId = clientCompany.orgType.id;
                var orgTypes = ['FIN', 'UNCOM'];
                if(clientCompany == null || clientOrgTypeId == null || clientCompany.legalType == null) {
                  return null;
                }
                return orgTypes.indexOf(clientOrgTypeId) !== -1 && clientCompany.legalType.id == 'ORGANIZATION';
}

где orgTypes может быть 'COM' - коммерческая организация, 'UNCOM' - некоммерческая организация, 'FIN' - финансовая организация

ЮЛ, регион заказчика Камчатский край или Чукотский АО

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               var customerRegion = dealApplicationData.result.productDealState.customer.region.id;
               var customerRegions = ['Камчатский край', 'Чукотский АО'];
               if (clientCompany == null || clientCompany.legalType == null || customerRegion == null) {
                 return null;
               }
               return clientCompany.legalType.id == 'ORGANIZATION' && customerRegions.indexOf(customerRegion) !== -1;
}

ИП с типом налогообложения УСН, Сельхоз, ЕНВД

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
                var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
                if (clientCompany == null) {
                    return null;
                }
                var taxSystemDto = dealApplicationData.getFetchField('TaxSystemCatalog', clientCompany.taxSystem);
                if (clientCompany.legalType == null || taxSystemDto == null ) {
                    return null;
                }
                var taxSystems = ['USN', 'ENVD', 'ESHN'];
                return taxSystems.indexOf(taxSystemDto.code) !== -1 && clientCompany.legalType.id == 'IP';
}

ЮЛ, дата государственно регистрации после 2003-06-05

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null || clientCompany.regDate == null) {
                 return null;
               }
               return clientCompany.legalType.id == 'ORGANIZATION' && clientCompany.regDate > '2003-06-05';
}

ЮЛ, базовый ОКВЭД 86.23 - Стоматологическая практика или 86.90.9 - Деятельность в области медицины прочая, не включенная в другие группировки

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null) {
                    return null;
                }
               var сlientBaseOkved = dealApplicationData.getFetchField('OkvedCatalog', clientCompany.baseOkved);
               if (clientCompany.legalType == null || сlientBaseOkved == null) {
                 return null;
               }
               var baseOkveds = ['86.23', '86.90.9'];
               return baseOkveds.indexOf(сlientBaseOkved.code) !== -1 && clientCompany.legalType.id == 'ORGANIZATION';
            }

ЮЛ с организационно-правовыми формами АО (код 12200), ПАО (код 12247), НАО (код 12267)

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
                var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
                if (clientCompany == null) {
                    return null;
                }
                var okopfDto = dealApplicationData.getFetchField('OkopfCatalog', clientCompany.okopf);
                if(okopfDto == null || clientCompany.legalType == null) {
                    return null;
                }
                var okopfTypes = ['12200', '12247', '12267'];
                return clientCompany.legalType.id == 'ORGANIZATION' &&  okopfTypes.indexOf(okopfDto.code) !== -1;
}

ЮЛ, 223-ФЗ или 44-ФЗ

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               var federalLaw = dealApplicationData.result.productDealState.tender.federalLaw.id;
               if (clientCompany == null || clientCompany.legalType == null || federalLaw == null) {
                    return null;
                }
               var federalLaws = ['223FL', '44FL'];
               return federalLaws.indexOf(federalLaw) !== -1 && clientCompany.legalType.id == 'ORGANIZATION';
            }

где для указания значения federalLaws используется справочник federallaw_types

Продукт применим только для головных компаний (ЮЛ), филиалы исключаются

(пример синтаксиса действует с версии 1.9.0)

function isAvailableForDealApplicationData(dealApplicationData) {
              var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
              if(clientCompany == null) {
                return null;
              }
              var okopfDto = dealApplicationData.getFetchField('OkopfCatalog', clientCompany.okopf);
              if(okopfDto == null || clientCompany.legalType == null) {
                  return null;
              }
              var sourceInfo = clientCompany.sourceInfo;
              var okopfTypes = ['30000', '30001', '30002', '30003', '30004', '30005', '30006', '30008'];
              return clientCompany.legalType.id == 'ORGANIZATION' && okopfTypes.indexOf(okopfDto.code) === -1 && sourceInfo.headCompany === true && sourceInfo.hasBranches === false;
            }

ЮЛ, регион фактического местоположения компании Камчатский край или Тульская область

(пример синтаксиса действует с версии 1.14.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null) {
                 return null;
               }
               var factAddressDto = dealApplicationData.getFetchField('CompanyAddress', clientCompany.factAddress);
               if (clientCompany.legalType == null || factAddressDto == null) {
                 return null;
               }
               var companyRegions = ['Камчатский край', 'Тульская область'];
               return companyRegions.indexOf(factAddressDto.region) !== -1  && clientCompany.legalType.id == 'ORGANIZATION';
}

ЮЛ, среди собственников есть юр. лица

(пример синтаксиса действует с версии 1.14.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null) {
                 return null;
               }
               var legalFounders = dealApplicationData.getFetchFieldAsMap('LegalFounder'); 
               var keyArray = legalFounders.keySet().toArray();
               if(keyArray.length !== 0) { 
                  return null; 
               }              
               return clientCompany.legalType.id == 'ORGANIZATION';
}

ЮЛ, среди собственников только физ. лица

(пример синтаксиса действует с версии 1.14.0)

function isAvailableForDealApplicationData(dealApplicationData) {
               var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
               if (clientCompany == null || clientCompany.legalType == null) {
                 return null;
               }
               var legalFounders = dealApplicationData.getFetchFieldAsMap('LegalFounder'); 
               var keyArray = legalFounders.keySet().toArray();
               if(keyArray.length == 0) { 
                  return null; 
               }              
               return clientCompany.legalType.id == 'ORGANIZATION';
}

2 Примеры получения значений полей по данным заявки для использования в правилах применимости 

Поле согласно структуре заявки с учетом вложенностиОписаниеКак объявить и получить значение в java
result.clientОбъект компания клиента/ИП
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
result.Company.legalTypeКатегория клиента (организация, ИП, физ. лицо)
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var companyLegalType = clientCompany.legalType.id;
result.productDealState.amountСумма продукта
var amountProductDealState = dealApplicationData.result.productDealState.amount;
result.productDealState.actualContractPriceСумма ФЦК продукта
var priceProductDealState = dealApplicationData.result.productDealState.actualContractPrice;
result.productDealState.termDaysСрок гарантии
var termDaysProductDealState = dealApplicationData.result.productDealState.termDays;
result.Company.orgTypeТип организации
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var clientOrgTypeId = clientCompany.orgType.id;
result.productDealState.customer.regionМестонахождения (регион) заказчика
var customerRegion = dealApplicationData.result.productDealState.customer.region.id;
result.Company.taxSystemСистема налогообложения
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var taxSystemDto = dealApplicationData.getFetchField('TaxSystemCatalog', clientCompany.taxSystem);
result.Company.regDateДата государственной регистрации
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var companyRegDate = clientCompany.regDate;
result.Company.baseOkvedБазовый ОКВЭД
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var сlientBaseOkved = dealApplicationData.getFetchField('OkvedCatalog', clientCompany.baseOkved);
result.Company.okopfОрганизационно-правовая форма
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var okopfDto = dealApplicationData.getFetchField('OkopfCatalog', clientCompany.okopf);
result.productDealState.tender.federalLawФедеральный закон
var federalLaw = dealApplicationData.result.productDealState.tender.federalLaw.id;
fetchFields.CompanySourceInfoГоловная компания
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var sourceInfo = clientCompany.sourceInfo;
fetchFields.CompanyAddress.regionРегион фактического местоположения компании
var clientCompany = dealApplicationData.getFetchField('Company', dealApplicationData.result.client.id);
var factAddressDto = dealApplicationData.getFetchField('CompanyAddress', clientCompany.factAddress);
fetchFields.LegalFounderСобственники (юр лицо)
var legalFounders = dealApplicationData.getFetchFieldAsMap('LegalFounder'); 
var keyArray = legalFounders.keySet().toArray();
  • Нет меток