@@ -26,15 +26,15 @@ class homePlan(models.Model):
2626 garden_area = fields .Integer ("Garden area" , default = 0 )
2727 total_area = fields .Float ("Total area" , compute = '_compute_total_area' , store = True )
2828 best_price = fields .Float ("Best price" , compute = '_compute_best_price' , store = True )
29+ total_maintenance_cost = fields .Float ( compute = '_compute_total_maintenance' , store = True )
2930 active = fields .Boolean ("Active" , default = True )
3031 property_type_id = fields .Many2one ("estate.property.type" )
3132 salesman_id = fields .Many2one ("res.users" , default = lambda self : self .env .user )
3233 buyer_id = fields .Many2one ("res.partner" , copy = False )
3334 property_tag_ids = fields .Many2many ("estate.property.tag" )
3435 offer_ids = fields .One2many ("estate.property.offer" , "property_id" )
3536 sequence = fields .Integer ('Sequence' , help = "Used to order stages. Lower is better." )
36-
37-
37+ maintenance_ids = fields .One2many ("estate.property.maintenance" , "property_id" )
3838 state = fields .Selection (
3939 [
4040 ('new' , "New" ),
@@ -93,6 +93,8 @@ def action_sold(self):
9393 for record in self :
9494 if record .state == 'cancelled' :
9595 raise UserError (message = "You can't sold once you have cancelled" )
96+ elif record .maintenance_ids .filtered (lambda r : r .status != 'Done' ):
97+ raise UserError ("maintamce remain" )
9698 else :
9799 record .state = 'sold'
98100 return True
@@ -105,3 +107,10 @@ def action_Cancel(self):
105107 record .state = 'cancelled'
106108
107109 return True
110+
111+ @api .depends ('maintenance_ids.cost' )
112+ def _compute_total_maintenance (self ):
113+ for record in self :
114+ record .total_maintenance_cost = sum (record .maintenance_ids .mapped ('cost' ))
115+
116+
0 commit comments