Check semen in inputs recursively.
In some cases it is desirable to use an intermediate product so the BOM does not directly have the semen product.
This commit is contained in:
parent
239fd9ee67
commit
5e556f766f
|
@ -45,9 +45,19 @@ class BOM:
|
|||
bom.check_specie_semen_in_inputs()
|
||||
|
||||
def check_specie_semen_in_inputs(self):
|
||||
if not self.semen_dose:
|
||||
return
|
||||
if not self.check_specie_semen_in_inputs_recursive():
|
||||
self.raise_user_error('missing_semen_input', self.rec_name)
|
||||
|
||||
def check_specie_semen_in_inputs_recursive(self):
|
||||
if self.semen_dose:
|
||||
semen_product = self.specie.semen_product
|
||||
semen_input_lines = [i for i in self.inputs
|
||||
if i.product == semen_product]
|
||||
if not semen_input_lines:
|
||||
self.raise_user_error('missing_semen_input', (self.rec_name,))
|
||||
for i in self.inputs:
|
||||
if i.product.boms:
|
||||
for l in i.product.boms:
|
||||
if l.bom.check_specie_semen_in_inputs_recursive():
|
||||
return True
|
||||
elif i.product == semen_product:
|
||||
return True
|
||||
return False
|
||||
|
|
Loading…
Reference in New Issue