Есть Сущность, выпадающий список (ajax) в форме, где выбираю схему расчета стоимости доставки.
В Сущности "Схемы доставки" есть схемы только с фиксированной ценой (например ЖД контейнер). И есть поля с ценами за 1 КГ, которые рассчитаны в зависимости от объема груза.
В форме есть поле Ajax запрос, в котором я делаю выборку нужных параметров и вывожу значение полученного расчета, в зависимости от того, какая схема расчета выбрана в указанном выше выпадающем списке.
Вот код:
Код: Выделить всё
$total_gw = [749]; // Общий вес брутто
$freight_id = [670]; // ID схемы расчета доставки
// подбираем поле в зависимости от общего веса товаров в КП
if ($total_gw <= 1) {$field_num = 'field_758';}
elseif ($total_gw > 1 and $total_gw <= 2) {$field_num = 'field_759';}
elseif ($total_gw > 2 and $total_gw <= 3) {$field_num = 'field_760';}
elseif ($total_gw > 3 and $total_gw <= 4) {$field_num = 'field_761';}
elseif ($total_gw > 4 and $total_gw <= 6) {$field_num = 'field_762';}
elseif ($total_gw > 6 and $total_gw <= 10) {$field_num = 'field_763';}
elseif ($total_gw > 10 and $total_gw <= 15) {$field_num = 'field_764';}
elseif ($total_gw > 15 and $total_gw <= 20) {$field_num = 'field_765';}
elseif ($total_gw > 21 and $total_gw <= 25) {$field_num = 'field_766';}
elseif ($total_gw > 25 and $total_gw <= 40) {$field_num = 'field_767';}
elseif ($total_gw > 40 and $total_gw <= 60) {$field_num = 'field_768';}
elseif ($total_gw > 60 and $total_gw <= 100) {$field_num = 'field_769';}
elseif ($total_gw > 100) {$field_num = 'field_770';}
$freight_query = db_query("select ". $field_num ." as price_data, field_772 as fix_check_data, field_771 as fix_price_data from app_entity_65 where id=". $freight_id);
// Вычисляем цены для расчета транспортных затрат
if($freight_arr = db_fetch_array($freight_query)){
$fix_check = $freight_arr[fix_check_data];
$fix_price = $freight_arr[fix_price_data];
$price_value = ($total_gw*$freight_arr[price_data]); // вычисляем цену
if($fix_check == 'false'){
$value = $price_value; // если не фиксированная цена, подставляем цену
}
elseif($fix_check == 'true'){
$value = $fix_price; // если фиксированная цена, подставляем цену
}
echo '<b style="color:DeepPink;">' . $value . ' ₽</b>';
$form_field_value = $value;
}
else{ // если запрос не сработал, значит нет исходных данных, выводим сообщение
$value = "Необходимо выбрать схему расчета доставки!";
echo '<b style="color:Tomato;">'. $value .'</b>';}
И если форму закрыть без повторного выбора схемы в выпадающем списке, то в поле сохранится 0!