assign_cost_item_quantity: fix indendation and missing values (de65e50)

`values` dictionary was missing and variables were never collected to it, so `FormulaEvaluator(values)` was always resulting in missing variable error.
This commit is contained in:
Andrej730
2026-07-18 21:21:54 +05:00
parent ca9bbbc4a7
commit 2e21fc5a98
@@ -150,20 +150,22 @@ class Usecase:
collector.visit(tree) collector.visit(tree)
variables = collector.variables variables = collector.variables
values: dict[str, float | None] = {}
for variable in variables: for variable in variables:
getter = self.get_value_from_pset if "." in variable else self.get_value_from_qset getter = self.get_value_from_pset if "." in variable else self.get_value_from_qset
value = getter(product, variable) value = getter(product, variable)
values[variable] = value
if value is None: if value is None:
print( print(
f"WARNING: Variable '{variable}' in product '{product.Name}' " f"WARNING: Variable '{variable}' in product '{product.Name}' "
f"is missing (None). Check Pset/Qset or property name." f"is missing (None). Check Pset/Qset or property name."
) )
elif value == 0: elif value == 0:
print( print(
f"WARNING: Variable '{variable}' in product '{product.Name}' " f"WARNING: Variable '{variable}' in product '{product.Name}' "
f"has value 0. Verify if this is correct." f"has value 0. Verify if this is correct."
) )
evaluator = FormulaEvaluator(values) evaluator = FormulaEvaluator(values)
result = evaluator.visit(tree.body) result = evaluator.visit(tree.body)