Compare commits

...

3 Commits

Author SHA1 Message Date
Juanjo Garcia Pagan d9cdae2913
Merge 557b2e7ae3 into decc1e7b15 2023-09-29 12:27:55 +02:00
Albert Cervera i Areny decc1e7b15 In create(), copy vlist before update. 2023-09-25 10:32:39 +02:00
Juanjo Garcia 557b2e7ae3 Add new function fields.
FIX "purchased_quantity" function field.

Task #060226
2023-05-17 16:18:14 +02:00
3 changed files with 38 additions and 1 deletions

30
plot.py
View File

@ -209,9 +209,21 @@ class Parcel(ModelSQL, ModelView):
purchased_quantity = fields.Function(
fields.Float("Bought Quantity", digits=(16, 2)),
'get_purchased_quantity')
purchased_quantity_do = fields.Function(
fields.Float("Bought Quantity Do", digits=(16, 2)),
'get_purchased_quantity_do')
purchased_quantity_table = fields.Function(
fields.Float("Bought Quantity Table", digits=(16, 2)),
'get_purchased_quantity_table')
remaining_quantity = fields.Function(
fields.Float("Remainig Quantity", digits=(16, 2)),
'get_remaining_quantity')
remaining_quantity_do = fields.Function(
fields.Float("Remainig Quantity Do", digits=(16, 2)),
'get_remaining_quantity_do')
exceeded_quantity = fields.Function(
fields.Float("Exceeded Quantity", digits=(16, 2)),
'get_exceeded_quantity')
def get_rec_name(self, name):
if self.plantation and self.crop:
@ -231,11 +243,27 @@ class Parcel(ModelSQL, ModelView):
)*self.surface, 2)
def get_purchased_quantity(self, name):
return sum([(w.netweight or 0) for w in self.weighings if not w.table])
return sum([(w.weighing.netweight or 0) for w in self.weighings if w.weighing])
def get_purchased_quantity_do(self, name):
return sum([(w.weighing.netweight or 0) for w in self.weighings if w.weighing and not w.table])
def get_purchased_quantity_table(self, name):
return sum([(w.weighing.netweight or 0) for w in self.weighings if w.weighing and w.table])
def get_remaining_quantity(self, name):
if (self.purchased_quantity or 0) > (self.max_production or 0):
return 0
return (self.max_production or 0) - (self.purchased_quantity or 0)
def get_remaining_quantity_do(self, name):
return (self.max_production or 0) - (self.purchased_quantity_do or 0)
def get_exceeded_quantity(self, name):
if (self.purchased_quantity or 0) < (self.max_production or 0):
return 0
return (self.purchased_quantity or 0) - (self.max_production or 0)
class ParcelDo(ModelSQL):
"Parcel - Denomination Origin"

View File

@ -93,6 +93,7 @@ class QualitySample(ModelSQL, ModelView):
pool = Pool()
Config = pool.get('quality.configuration')
vlist = [x.copy() for x in vlist]
sequence = Config(1).sample_sequence
for value in vlist:
if not value.get('code'):

View File

@ -29,6 +29,14 @@
<field name="purchased_quantity"/>
<label name="remaining_quantity"/>
<field name="remaining_quantity"/>
<label name="purchased_quantity_do"/>
<field name="purchased_quantity_do"/>
<label name="purchased_quantity_table"/>
<field name="purchased_quantity_table"/>
<label name="remaining_quantity_do"/>
<field name="remaining_quantity_do"/>
<label name="exceeded_quantity"/>
<field name="exceeded_quantity"/>
<newline/>
<label name="tenure_regime"/>
<field name="tenure_regime" colspan="3"/>