Исправлен баг с подсчётом объёма разбавленного реагента
This commit is contained in:
+3
-13
@@ -63,7 +63,8 @@ class Controller:
|
||||
percentage_item = self.view.table.item(row, 1)
|
||||
unit_widget = self.view.table.cellWidget(row, 2)
|
||||
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]):
|
||||
@@ -74,19 +75,8 @@ class Controller:
|
||||
percentage = float(percentage_item.text())
|
||||
unit = unit_widget.currentText() if unit_widget else "мг"
|
||||
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)
|
||||
except ValueError as e:
|
||||
raise ValueError(f"Ошибка в строке {row + 1}: {str(e)}")
|
||||
|
||||
@@ -63,6 +63,7 @@ class Model:
|
||||
# Шаг 2: Рассчитываем количество каждого реагента для неразбавленного состава
|
||||
undiluted_amounts = []
|
||||
for reagent in self.reagents:
|
||||
|
||||
# Расчёт количества реагента в базовых единицах
|
||||
amount_in_base = (reagent.percentage / 100) * total_in_base
|
||||
|
||||
@@ -90,6 +91,7 @@ class Model:
|
||||
|
||||
# Количество разбавленного реагента = исходное количество / фактор разбавления
|
||||
diluted_amount = undiluted_amounts[i] * dilution_factor
|
||||
|
||||
diluted_amounts.append(diluted_amount)
|
||||
|
||||
# Вычисляем объём разбавленного реагента в базовых единицах (мкл)
|
||||
|
||||
Reference in New Issue
Block a user