Исправлен баг с подсчётом объёма разбавленного реагента
This commit is contained in:
+3
-13
@@ -63,7 +63,8 @@ class Controller:
|
|||||||
percentage_item = self.view.table.item(row, 1)
|
percentage_item = self.view.table.item(row, 1)
|
||||||
unit_widget = self.view.table.cellWidget(row, 2)
|
unit_widget = self.view.table.cellWidget(row, 2)
|
||||||
conversion_item = self.view.table.item(row, 3)
|
conversion_item = self.view.table.item(row, 3)
|
||||||
dilution_widget = self.view.table.cellWidget(row, 4)
|
dilution_item = self.view.table.item(row, 4)
|
||||||
|
|
||||||
|
|
||||||
# Пропускаем строку, если какие-то обязательные поля отсутствуют
|
# Пропускаем строку, если какие-то обязательные поля отсутствуют
|
||||||
if not all([name_item, percentage_item, conversion_item]):
|
if not all([name_item, percentage_item, conversion_item]):
|
||||||
@@ -74,19 +75,8 @@ class Controller:
|
|||||||
percentage = float(percentage_item.text())
|
percentage = float(percentage_item.text())
|
||||||
unit = unit_widget.currentText() if unit_widget else "мг"
|
unit = unit_widget.currentText() if unit_widget else "мг"
|
||||||
conversion_factor = float(conversion_item.text())
|
conversion_factor = float(conversion_item.text())
|
||||||
|
dilution_factor = float(dilution_item.text())
|
||||||
|
|
||||||
# Получаем коэффициент разбавления (поддерживаем QDoubleSpinBox и QLineEdit)
|
|
||||||
dilution_factor = 1.0
|
|
||||||
if dilution_widget:
|
|
||||||
if isinstance(dilution_widget, QDoubleSpinBox):
|
|
||||||
dilution_factor = dilution_widget.value()
|
|
||||||
elif isinstance(dilution_widget, QLineEdit):
|
|
||||||
try:
|
|
||||||
dilution_factor = float(dilution_widget.text())
|
|
||||||
except ValueError:
|
|
||||||
dilution_factor = 1.0
|
|
||||||
|
|
||||||
# Добавляем реагент в модель
|
|
||||||
self.model.add_reagent(name, percentage, unit, conversion_factor, dilution_factor)
|
self.model.add_reagent(name, percentage, unit, conversion_factor, dilution_factor)
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
raise ValueError(f"Ошибка в строке {row + 1}: {str(e)}")
|
raise ValueError(f"Ошибка в строке {row + 1}: {str(e)}")
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ class Model:
|
|||||||
# Шаг 2: Рассчитываем количество каждого реагента для неразбавленного состава
|
# Шаг 2: Рассчитываем количество каждого реагента для неразбавленного состава
|
||||||
undiluted_amounts = []
|
undiluted_amounts = []
|
||||||
for reagent in self.reagents:
|
for reagent in self.reagents:
|
||||||
|
|
||||||
# Расчёт количества реагента в базовых единицах
|
# Расчёт количества реагента в базовых единицах
|
||||||
amount_in_base = (reagent.percentage / 100) * total_in_base
|
amount_in_base = (reagent.percentage / 100) * total_in_base
|
||||||
|
|
||||||
@@ -90,6 +91,7 @@ class Model:
|
|||||||
|
|
||||||
# Количество разбавленного реагента = исходное количество / фактор разбавления
|
# Количество разбавленного реагента = исходное количество / фактор разбавления
|
||||||
diluted_amount = undiluted_amounts[i] * dilution_factor
|
diluted_amount = undiluted_amounts[i] * dilution_factor
|
||||||
|
|
||||||
diluted_amounts.append(diluted_amount)
|
diluted_amounts.append(diluted_amount)
|
||||||
|
|
||||||
# Вычисляем объём разбавленного реагента в базовых единицах (мкл)
|
# Вычисляем объём разбавленного реагента в базовых единицах (мкл)
|
||||||
|
|||||||
Reference in New Issue
Block a user