DmitrMakeev commited on
Commit
523b107
·
verified ·
1 Parent(s): 7527dc3

Update nutri_call.html

Browse files
Files changed (1) hide show
  1. nutri_call.html +29 -29
nutri_call.html CHANGED
@@ -1100,49 +1100,49 @@ function updateNitrogenFields(data) {
1100
  function calculateNPKRatio(data) {
1101
  console.log("=== РАСЧЕТ СООТНОШЕНИЯ NPK ===");
1102
 
1103
- // Извлекаем значения из actual_profile
1104
- const nValue = (data.actual_profile["N (NH4+)"] || 0) + (data.actual_profile["N (NO3-)"] || 0);
1105
- const pValue = data.actual_profile["P"] || 0;
1106
- const kValue = data.actual_profile["K"] || 0;
1107
 
1108
- // Проверяем, что значения существуют
1109
- if (nValue > 0 && pValue > 0 && kValue > 0) {
1110
- console.log(`Значения NPK: N=${nValue}, P=${pValue}, K=${kValue}`);
1111
 
1112
- // Переводим в оксидную форму
1113
- const nOxide = nValue; // N остается без изменений
1114
- const pOxide = pValue * 2.29; // P → P2O5
1115
- const kOxide = kValue * 1.2; // K → K2O
1116
 
1117
- console.log(`Оксидная форма: N=${nOxide.toFixed(2)}, P2O5=${pOxide.toFixed(2)}, K2O=${kOxide.toFixed(2)}`);
 
 
 
1118
 
1119
- // Находим минимальное значение для нормировки
1120
- const minValue = Math.min(nOxide, pOxide, kOxide);
 
 
1121
 
1122
- // Нормируем значения
1123
- const nNormalized = (nOxide / minValue).toFixed(2);
1124
- const pNormalized = (pOxide / minValue).toFixed(2);
1125
- const kNormalized = (kOxide / minValue).toFixed(2);
1126
 
1127
- console.log(`Нормированные значения: N=${nNormalized}, P2O5=${pNormalized}, K2O=${kNormalized}`);
 
 
 
 
1128
 
1129
- // Округляем до целых чисел (умножаем на 10)
1130
- const nFinal = Math.round(nNormalized * 10);
1131
- const pFinal = Math.round(pNormalized * 10);
1132
- const kFinal = Math.round(kNormalized * 10);
 
1133
 
1134
- console.log(`Итоговое соотношение NPK: ${nFinal}-${pFinal}-${kFinal}`);
1135
 
1136
- // Обновляем поля на странице
1137
- document.getElementById("npk-ratio").textContent = `${nFinal}-${pFinal}-${kFinal}`;
1138
- } else {
1139
- console.error("Ошибка: Значения NPK не найдены в ответе сервера или равны нулю.");
1140
- }
1141
  }
1142
 
1143
 
1144
 
1145
 
 
1146
 
1147
 
1148
 
 
1100
  function calculateNPKRatio(data) {
1101
  console.log("=== РАСЧЕТ СООТНОШЕНИЯ NPK ===");
1102
 
1103
+ const profile = data.actual_profile || {};
 
 
 
1104
 
1105
+ // Получаем значения элементов
1106
+ const totalN = data.nitrogen_ratios?.TOTAL_NITROGEN ||
1107
+ (profile["N (NH4+)"] || 0) + (profile["N (NO3-)"] || 0);
1108
 
1109
+ const p = profile["P"] || 0;
1110
+ const k = profile["K"] || 0;
 
 
1111
 
1112
+ if (totalN <= 0 || p <= 0 || k <= 0) {
1113
+ console.error("Ошибка: Одно из значений N, P или K равно нулю или не найдено.");
1114
+ return;
1115
+ }
1116
 
1117
+ // Преобразуем в оксидную форму
1118
+ const nOxide = totalN; // N остается в виде N
1119
+ const pOxide = p * 2.29; // P → P2O5
1120
+ const kOxide = k * 1.2; // K → K2O
1121
 
1122
+ console.log(`Оксидная форма: N=${nOxide.toFixed(2)}, P2O5=${pOxide.toFixed(2)}, K2O=${kOxide.toFixed(2)}`);
 
 
 
1123
 
1124
+ // Нормализуем по минимальному значению
1125
+ const min = Math.min(nOxide, pOxide, kOxide);
1126
+ const nNorm = nOxide / min;
1127
+ const pNorm = pOxide / min;
1128
+ const kNorm = kOxide / min;
1129
 
1130
+ // Масштабируем и округляем (например, чтобы одно значение стало 10)
1131
+ const scale = 10 / Math.min(nNorm, pNorm, kNorm);
1132
+ const nFinal = Math.round(nNorm * scale);
1133
+ const pFinal = Math.round(pNorm * scale);
1134
+ const kFinal = Math.round(kNorm * scale);
1135
 
1136
+ console.log(`Итоговое соотношение NPK: ${nFinal}-${pFinal}-${kFinal}`);
1137
 
1138
+ // Вывод в интерфейс
1139
+ document.getElementById("npk-ratio").textContent = `${nFinal}-${pFinal}-${kFinal}`;
 
 
 
1140
  }
1141
 
1142
 
1143
 
1144
 
1145
+
1146
 
1147
 
1148