В массив записей надо добавить признак "metodCalc", который заполняется следующим образом:
если в Контрагенте поле "ID ELT ОСАГО" evo_id_elt_osago содержит данные, то указывается "ELT"
если в Контрагенте поле "ID Наш расчет ОСАГО" evo_osago_id содержит данные, то указывается "CRM"
иначе указывается null
"osago": {
"id": "YUGORIA",
"key": "a48b3d07-7b40-eb11-bae6-00155d088a12",
"message": "",
"name": "ГСК ЮГОРИЯ",
"numCalc": 3890624,
"requestId": "",
"skCalcId": "0",
"status": null,
"sum": 28243.98,
"totalFranchise": 0
"methodCalc": CRM
В момент нажатия кнопки "Расчет ОСАГО по ELT" (отдельную кнопку не делаем, т.к. проверки на расчет ЕЛТ должны и тут действовать) необходимо добавить развилку:
если у записи "metodCalc": ELT, то отправляется запрос в ELT по текущей логике
если у записи "metodCalc": CRM, то ищется запись Типа дополнительных продуктов evo_addproduct_type, у которой:
"Статус" statecode = активная
И "Тип продукта" evo_product_type = ОСАГО 100 000 008
И "Отображать для расчета в ЛК" evo_visible_calc = Да
И "Провайдер услуг" evo_accountid = "key" данной записи
И "Начало действия" evo_datefrom меньше или равно текущей даты
И "Окончание действия" evo_dateto больше или равно текущей даты
И "Категория ТС" evo_category = значению из поля Категория ТС на форме (значение "Не выбрано" на форме должно быть равно "пусто" в поле карточки)
И "Min мощность, л.с." evo_min_power меньше или равна значению из поля Мощность на форме
И "Max мощность, л.с." evo_max_power больше или равна значению из поля Мощность на форме
И "Min количество мест" evo_min_seats_count меньше или равна значению из поля Количество мест на форме
И "Max количество мест" evo_max_seats_count если больше или равна значению из поля Количество мест на форме
И "Min Разрешенная макс.масса, кг" evo_min_mass меньше или равна значению из поля Разрешенная макс.масса на форме
И "Max Разрешенная макс.масса, кг" evo_max_mass больше или равна значению из поля Разрешенная макс.масса на форме
Если найдена одна запись,то в массиве записываются значения:
"numCalc" = значение поля evo_addproduct_type.evo_id ID,
"sum"= evo_addproduct_type.evo_graph_price_withoutnds Стоимость (закладываем в график), без НДС, руб.,
"totalFranchise" = 0
Если не найдена такая запись, то в массиве записываются значения:
"numCalc" = null,
"sum"= 0.00,
"totalFranchise" = 0
Если найдено несколько записей, то берем последнюю по дате создания и по ней записываем в массив значения:
"numCalc" = значение поля evo_addproduct_type.evo_id ID,
"sum"= evo_addproduct_type.evo_graph_price_withoutnds Стоимость (закладываем в график), без НДС, руб.,
"totalFranchise" = 0