@@ -22,10 +22,13 @@ def setUpClass(cls):
2222 }
2323 )
2424 cls .incoterm = cls .env ["account.incoterms" ].create (
25- {"name" : "Incoterm" , "code" : "INC" }
25+ {"name" : "Carrier INC" , "code" : "CIN" }
26+ )
27+ cls .incoterm_partner = cls .env ["account.incoterms" ].create (
28+ {"name" : "Partner INC" , "code" : "PIN" }
2629 )
2730 cls .intrastat_transport_mode = cls .env ["intrastat.transport_mode" ].create (
28- {"name" : "Incoterm " , "code" : "INC " , "description" : "DESC " }
31+ {"name" : "Road " , "code" : "R " , "description" : "Road Test " }
2932 )
3033 cls .carrier = cls .env ["delivery.carrier" ].create (
3134 {
@@ -40,11 +43,7 @@ def setUpClass(cls):
4043 {
4144 "partner_id" : cls .partner_a .id ,
4245 "order_line" : [
43- Command .create (
44- {
45- "product_id" : cls .product_1 .id ,
46- }
47- ),
46+ Command .create ({"product_id" : cls .product_1 .id }),
4847 ],
4948 }
5049 )
@@ -87,3 +86,59 @@ def test_01_incoterms_intrastat_transport_propagation(self):
8786 invoice = self .order .invoice_ids [0 ]
8887 self .assertEqual (invoice .invoice_incoterm_id , self .incoterm )
8988 self .assertEqual (invoice .intrastat_transport_id , self .intrastat_transport_mode )
89+
90+ def test_02_priority_partner_over_carrier_and_company (self ):
91+ self .partner_a .sale_incoterm_id = self .incoterm_partner
92+ order = self .env ["sale.order" ].create (
93+ {
94+ "partner_id" : self .partner_a .id ,
95+ "carrier_id" : self .carrier .id ,
96+ "order_line" : [Command .create ({"product_id" : self .product_1 .id })],
97+ }
98+ )
99+ order ._onchange_partner_or_carrier ()
100+ self .assertEqual (order .incoterm , self .incoterm_partner )
101+ order .action_confirm ()
102+ self .assertEqual (order .incoterm , self .incoterm_partner )
103+
104+ def test_03_priority_carrier_when_no_partner (self ):
105+ self .partner_a .sale_incoterm_id = False
106+ order = self .env ["sale.order" ].create (
107+ {
108+ "partner_id" : self .partner_a .id ,
109+ "carrier_id" : self .carrier .id ,
110+ "order_line" : [Command .create ({"product_id" : self .product_1 .id })],
111+ }
112+ )
113+ order ._onchange_partner_or_carrier ()
114+ self .assertEqual (order .incoterm , self .incoterm )
115+ order .action_confirm ()
116+ self .assertEqual (order .incoterm , self .incoterm )
117+ self .assertEqual (order .intrastat_transport_id , self .intrastat_transport_mode )
118+
119+ def test_04_priority_company_when_no_partner_nor_carrier (self ):
120+ self .partner_a .sale_incoterm_id = False
121+ order = self .env ["sale.order" ].create (
122+ {
123+ "partner_id" : self .partner_a .id ,
124+ "order_line" : [Command .create ({"product_id" : self .product_1 .id })],
125+ }
126+ )
127+ order ._onchange_partner_or_carrier ()
128+ self .assertEqual (order .incoterm , self .incoterm_company )
129+ order .action_confirm ()
130+ self .assertEqual (order .incoterm , self .incoterm_company )
131+
132+ def test_05_empty_when_no_sources (self ):
133+ self .partner_a .sale_incoterm_id = False
134+ self .env .company .incoterm_id = False
135+ order = self .env ["sale.order" ].create (
136+ {
137+ "partner_id" : self .partner_a .id ,
138+ "order_line" : [Command .create ({"product_id" : self .product_1 .id })],
139+ }
140+ )
141+ order ._onchange_partner_or_carrier ()
142+ self .assertFalse (order .incoterm )
143+ order .action_confirm ()
144+ self .assertFalse (order .incoterm )
0 commit comments