@@ -88,3 +88,42 @@ def test_purchase_order_type_company_error(self):
88
88
self .assertEqual (order .company_id , self .type1 .company_id )
89
89
with self .assertRaises (ValidationError ):
90
90
order .write ({"company_id" : self .company2 .id })
91
+
92
+ def test_order_type_from_partner (self ):
93
+ lines = []
94
+ line_values = {
95
+ "name" : self .product1 .name ,
96
+ "product_id" : self .product1 .id ,
97
+ "product_qty" : 3 ,
98
+ "product_uom" : self .product1 .uom_id .id ,
99
+ "price_unit" : 100 ,
100
+ }
101
+ lines .append ((0 , 0 , line_values ))
102
+ type_from_partner = self .po_obj .create (
103
+ {
104
+ "partner_id" : self .partner1 .id ,
105
+ "order_line" : lines ,
106
+ }
107
+ )
108
+
109
+ # Check if set order_type on sale
110
+ self .assertEqual (type_from_partner .order_type , self .partner1 .purchase_type )
111
+
112
+ partner2 = self .env .ref ("base.res_partner_2" )
113
+ partner2 .purchase_type = self .type1
114
+ type_from_partner .write ({"partner_id" : partner2 })
115
+ # Check if order_type of sale has not changed
116
+ self .assertNotEqual (type_from_partner .order_type , partner2 .purchase_type )
117
+
118
+ # Check if order_type of sale has not deleted
119
+ partner2 .purchase_type = False
120
+ type_from_partner .write ({"partner_id" : self .partner1 })
121
+ type_from_partner .write ({"partner_id" : partner2 })
122
+ self .assertEqual (type_from_partner .order_type , self .type2 )
123
+
124
+ # Check if set order_type on sale again
125
+ type_from_partner .write ({"partner_id" : self .partner1 })
126
+ type_from_partner .write ({"order_type" : False })
127
+ type_from_partner .write ({"partner_id" : partner2 })
128
+ type_from_partner .write ({"partner_id" : partner2 })
129
+ self .assertEqual (type_from_partner .order_type , partner2 .purchase_type )
0 commit comments