DmitrMakeev commited on
Commit
bdbb90c
·
verified ·
1 Parent(s): 5ae37c2

Update nutri_call.html

Browse files
Files changed (1) hide show
  1. nutri_call.html +0 -175
nutri_call.html CHANGED
@@ -885,181 +885,6 @@ const ecConstants = {
885
  'N (NO3-)': 0.0017, 'N (NH4+)': 0.0019
886
  };
887
 
888
- document.getElementById('calculate-btn').addEventListener('click', function () {
889
- console.log("=== НАЧАЛО ОБРАБОТКИ ===");
890
-
891
- // 1. Получаем значение точности округления с подробным логированием
892
- const roundingInput = document.getElementById('rounding-precision');
893
- console.log("Значение поля rounding-precision (raw):", roundingInput.value);
894
-
895
- const initialRounding = parseInt(roundingInput.value);
896
- console.log("Парсинг значения rounding (после parseInt):", initialRounding);
897
-
898
- const roundingPrecision = Math.min(Math.max(initialRounding || 3, 0), 6);
899
- console.log("Финальное значение точности (0-6):", roundingPrecision);
900
-
901
- // 2. Улучшенная функция для безопасного получения числового значения с логированием
902
- const getValue = (id) => {
903
- const element = document.getElementById(id);
904
- if (!element) {
905
- console.error(`Элемент с ID ${id} не найден!`);
906
- return 0;
907
- }
908
- console.log(`Значение поля ${id}:`, element.value);
909
-
910
- const value = parseFloat(element.value); // Парсим число напрямую
911
- const result = isNaN(value) ? 0 : value;
912
-
913
- console.log(`Парсинг значения ${id}:`, result);
914
- return result;
915
- };
916
-
917
- // 3. Формируем данные для сервера с пошаговым логированием
918
- console.log("=== ФОРМИРОВАНИЕ ДАННЫХ ДЛЯ СЕРВЕРА ===");
919
-
920
- const fertilizerConstants = {
921
- "Кальциевая селитра": {
922
- "N (NO3-)": getValue('fert_ca_no3') / 100,
923
- "Ca": getValue('fert_ca_ca') / 100
924
- },
925
- "Калий азотнокислый": {
926
- "N (NO3-)": getValue('fert_kno3_no3') / 100,
927
- "K": getValue('fert_kno3_k') / 100
928
- },
929
- "Аммоний азотнокислый": {
930
- "N (NO3-)": getValue('fert_nh4no3_no3') / 100,
931
- "N (NH4+)": getValue('fert_nh4no3_nh4') / 100
932
- },
933
- "Сульфат магния": {
934
- "Mg": getValue('fert_mgso4_mg') / 100,
935
- "S": getValue('fert_mgso4_s') / 100
936
- },
937
- "Монофосфат калия": {
938
- "P": getValue('fert_kh2po4_p') / 100,
939
- "K": getValue('fert_kh2po4_k') / 100
940
- },
941
- "Калий сернокислый": {
942
- "K": getValue('fert_k2so4_k') / 100,
943
- "S": getValue('fert_k2so4_s') / 100
944
- },
945
- "Кальций хлорид": { // Обновленные идентификаторы для CaCl
946
- "Ca": getValue('fert_caca') / 100, // Новый идентификатор
947
- "Cl": getValue('fert_clcl') / 100 // Новый идентификатор
948
- }
949
- };
950
-
951
- const profileSettings = {
952
- 'P': getValue('profile_p'),
953
- 'K': getValue('profile_k'),
954
- 'Mg': getValue('profile_mg'),
955
- 'Ca': getValue('profile_ca'),
956
- 'S': getValue('profile_s'),
957
- 'NO3_RAT': getValue('profile_no3'),
958
- 'TOTAL_NITROG': getValue('profile_n'),
959
- 'liters': parseInt(document.getElementById('liters-input').value) || 1,
960
- 'rounding_precision': roundingPrecision
961
- };
962
-
963
- const requestData = {
964
- fertilizerConstants: fertilizerConstants,
965
- profileSettings: profileSettings
966
- };
967
-
968
- console.log("=== ПОЛНЫЙ ОБЪЕКТ ДЛЯ ОТПРАВКИ ===", JSON.stringify(requestData, null, 2));
969
-
970
- // 4. Проверка данных с подробным выводом
971
- console.log("=== ПРОВЕРКА ДАННЫХ ===");
972
-
973
- const requiredFertilizers = [
974
- "Кальциевая селитра", "Калий азотнокислый", "Аммоний азотнокислый",
975
- "Сульфат магния", "Монофосфат калия", "Калий сернокислый", "Кальций хлорид"
976
- ];
977
-
978
- let hasErrors = false;
979
- for (const fert of requiredFertilizers) {
980
- if (!requestData.fertilizerConstants[fert]) {
981
- console.error(`ОШИБКА: Отсутствует удобрение: ${fert}`);
982
- hasErrors = true;
983
- } else {
984
- console.log(`Удобрение ${fert} присутствует`);
985
- }
986
- }
987
-
988
- const requiredProfileFields = ['P', 'K', 'Mg', 'Ca', 'S', 'NO3_RAT', 'TOTAL_NITROG'];
989
- for (const field of requiredProfileFields) {
990
- if (isNaN(requestData.profileSettings[field])) {
991
- console.error(`ОШИБКА: Некорректное значение для параметра ${field}`);
992
- hasErrors = true;
993
- } else {
994
- console.log(`Параметр ${field} в порядке:`, requestData.profileSettings[field]);
995
- }
996
- }
997
-
998
- console.log("Параметр rounding_precision:", requestData.profileSettings.rounding_precision);
999
-
1000
- if (hasErrors) {
1001
- const errorMsg = "Пожалуйста, проверьте введенные данные. Обнаружены ошибки в форме. Смотрите консоль для деталей.";
1002
- console.error(errorMsg);
1003
- alert(errorMsg);
1004
- return;
1005
- }
1006
-
1007
- // 5. Отправка данных на сервер с полным логированием
1008
- console.log("=== ОТПРАВКА ДАННЫХ НА СЕРВЕР ===");
1009
-
1010
- fetch('/calculation', {
1011
- method: 'POST',
1012
- headers: {
1013
- 'Content-Type': 'application/json',
1014
- },
1015
- body: JSON.stringify(requestData),
1016
- })
1017
- .then(response => {
1018
- console.log("Получен ответ от сервера. Статус:", response.status);
1019
- if (!response.ok) {
1020
- console.error("ОШИБКА СЕРВЕРА. Полный ответ:", response);
1021
- throw new Error(`HTTP error! status: ${response.status}`);
1022
- }
1023
- return response.json();
1024
- })
1025
- .then(data => {
1026
- call_data = data;
1027
- console.log("=== УСПЕШНЫЙ ОТВЕТ ОТ СЕРВЕРА ===", call_data);
1028
-
1029
- // Выводим данные в форму
1030
- data_out(call_data);
1031
-
1032
- // Показываем статус расчёта
1033
- showCalculationStatus(call_data);
1034
-
1035
- // Вызываем функцию для расчета катионов и анионов
1036
- calculateCationsAndAnions(data);
1037
-
1038
- // Обновляем поля NH4 и NO3
1039
- updateNitrogenFields(call_data);
1040
-
1041
- // Рассчитываем EC
1042
- const temperature = parseFloat(document.getElementById('profile_temp').value) || 25;
1043
- const ecValue = calculateEC(call_data, temperature);
1044
-
1045
- // Обновляем поле EC
1046
- const ecInput = document.getElementById('profile_ec');
1047
- if (ecInput) {
1048
- ecInput.value = ecValue.toFixed(2);
1049
- console.log(`Установлено значение EC: ${ecValue.toFixed(2)}`);
1050
- }
1051
- })
1052
- .catch(error => {
1053
- console.error("=== ОШИБКА ПРИ ОБРАБОТКЕ ===", error);
1054
- alert("Ошибка при расчете: " + error.message);
1055
- })
1056
- .finally(() => {
1057
- console.log("=== ЗАВЕРШЕНИЕ ОБРАБОТКИ ===");
1058
- });
1059
- });
1060
-
1061
-
1062
-
1063
 
1064
 
1065
 
 
885
  'N (NO3-)': 0.0017, 'N (NH4+)': 0.0019
886
  };
887
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
888
 
889
 
890