File tree Expand file tree Collapse file tree 4 files changed +57
-1
lines changed Expand file tree Collapse file tree 4 files changed +57
-1
lines changed Original file line number Diff line number Diff line change 11from odoo import api , fields , models
2+ from odoo .exceptions import UserError
23
34
45class EstateProperty (models .Model ):
@@ -77,3 +78,17 @@ def _onchange_garden(self):
7778 else :
7879 self .garden_area = None
7980 self .garden_orientation = None
81+
82+ def action_mark_as_sold (self ):
83+ for record in self :
84+ if record .state == 'cancelled' :
85+ raise UserError ('Property is already cancelled' )
86+
87+ record .state = 'sold'
88+
89+ def action_mark_as_cancelled (self ):
90+ for record in self :
91+ if record .state == 'sold' :
92+ raise UserError ('Property is already sold' )
93+
94+ record .state = 'cancelled'
Original file line number Diff line number Diff line change 11from odoo import api , fields , models
2+ from odoo .exceptions import UserError
23
34
45class EstatePropertyOffer (models .Model ):
@@ -30,3 +31,24 @@ def _inverse_deadline(self):
3031 for record in self :
3132 created_date = record .create_date .date () or fields .Date .today ()
3233 record .validity = (record .date_deadline - created_date ).days
34+
35+ def action_mark_as_accepted (self ):
36+ for record in self :
37+ if (
38+ record .property_id .state != 'new'
39+ and record .property_id .state != 'offer_received'
40+ ):
41+ raise UserError ('Cannot accept offer in this state' )
42+
43+ record .status = 'accepted'
44+ record .property_id .selling_price = record .price
45+ record .property_id .buyer_id = record .partner_id
46+ record .property_id .state = 'offer_accepted'
47+
48+ def action_mark_as_refused (self ):
49+ for record in self :
50+ if record .status == 'accepted' :
51+ record .property_id .state = 'offer_received'
52+ record .property_id .selling_price = None
53+ record .property_id .buyer_id = None
54+ record .status = 'refused'
Original file line number Diff line number Diff line change 44 <field name =" model" >estate.property</field >
55 <field name =" arch" type =" xml" >
66 <form string =" Property" >
7+ <header >
8+ <button
9+ name =" action_mark_as_sold"
10+ string =" Sold"
11+ type =" object"
12+ class =" oe_highlight"
13+ invisible =" state == 'sold' or state == 'cancelled'"
14+ />
15+ <button
16+ name =" action_mark_as_cancelled"
17+ string =" Cancel"
18+ type =" object"
19+ invisible =" state == 'sold' or state == 'cancelled'"
20+ />
21+ </header >
722 <sheet >
823 <h1 class =" mb32" >
924 <field name =" name" class =" mb16" />
1227 <field name =" tag_ids" widget =" many2many_tags" />
1328 </group >
1429 <group >
30+ <group >
31+ <field name =" state" />
32+ </group >
1533 <group >
1634 <field name =" property_type_id" />
1735 </group >
Original file line number Diff line number Diff line change 88 <field name =" partner_id" />
99 <field name =" validity" string =" Validity (days)" />
1010 <field name =" date_deadline" string =" Deadline" />
11+ <button name =" action_mark_as_accepted" type =" object" icon =" fa-check" title =" accept" />
12+ <button name =" action_mark_as_refused" type =" object" icon =" fa-times" title =" refuse" />
1113 <field name =" status" />
12- <field name =" property_id" />
1314 </list >
1415 </field >
1516 </record >
You can’t perform that action at this time.
0 commit comments