2 I create a draft Sale Order
4 !record {model: sale.order, id: sale_order_edi_1}:
5 partner_id: base.res_partner_agrolait
6 partner_invoice_id: base.res_partner_address_8invoice
7 partner_order_id: base.res_partner_address_8invoice
8 partner_shipping_id: base.res_partner_address_8invoice
11 - product_id: product.product_product_pc1
17 - product_id: product.product_product_pc3
23 I confirm the sale order
25 !workflow {model: sale.order, ref: sale_order_edi_1, action: order_confirm}
27 Then I export the sale order via EDI
29 !python {model: edi.document}: |
30 sale_order = self.pool.get('sale.order')
31 so = sale_order.browse(cr, uid, ref("sale_order_edi_1"))
32 token = self.export_edi(cr, uid, [so])
33 assert token, 'Invalid EDI Token'
35 Then I import a sample EDI document of a purchase order
37 !python {model: edi.document}: |
38 sale_order_pool = self.pool.get('sale.order')
40 "__id": "purchase:5af1272e-dd26-11e0-b65e-701a04e25543.purchase_order_test",
41 "__module": "purchase",
42 "__model": "purchase.order",
43 "__import_module": "sale",
44 "__import_model": "sale.order",
47 "date_order": "2011-09-12",
49 "__id": "base:5af1272e-dd26-11e0-b65e-701a04e25543.EUR",
51 "__model": "res.currency",
55 "company_id": ["base:5af1272e-dd26-11e0-b65e-701a04e25543.main_company", "Client S.A."],
57 "__id": "base:5af1272e-dd26-11e0-b65e-701a04e25543.some_address",
59 "__model": "res.partner.address",
60 "phone": "(+32).81.81.37.00",
61 "street": "Chaussee de Namur 40",
64 "country_id": ["base:5af1272e-dd26-11e0-b65e-701a04e25543.be", "Belgium"],
66 ["base:5af1272e-dd26-11e0-b65e-701a04e25543.res_partner_bank-adaWadsadasdDJzGbp","Ladies bank: 032465789-156113"]
69 "partner_id": ["purchase:5af1272e-dd26-11e0-b65e-701a04e25543.res_partner_test20", "jones white"],
71 "__id": "base:5af1272e-dd26-11e0-b65e-701a04e25543.res_partner_address_7wdsjasdjh",
73 "__model": "res.partner.address",
74 "phone": "(+32).81.81.37.00",
75 "street": "Chaussee de Namur 40",
78 "country_id": ["base:5af1272e-dd26-11e0-b65e-701a04e25543.be", "Belgium"],
81 "__id": "purchase:5af1272e-dd26-11e0-b65e-701a04e25543.purchase_order_line-AlhsVDZGoKvJ",
82 "__module": "purchase",
83 "__model": "purchase.order.line",
84 "__import_module": "sale",
85 "__import_model": "sale.order.line",
87 "date_planned": "2011-09-30",
89 "product_id": ["product:5af1272e-dd26-11e0-b65e-701a04e25543.product_product_pc1", "[PC1] Basic PC"],
91 "product_uom": ["product:5af1272e-dd26-11e0-b65e-701a04e25543.product_uom_unit", "PCE"],
94 "__id": "purchase:5af1272e-dd26-11e0-b65e-701a04e25543.purchase_order_line-Alsads33e",
95 "__module": "purchase",
96 "__model": "purchase.order.line",
97 "__import_module": "sale",
98 "__import_model": "sale.order.line",
100 "date_planned": "2011-09-15",
102 "product_id": ["product:5af1272e-dd26-11e0-b65e-701a04e25543.product_product_pc3", "[PC3] Medium PC"],
104 "product_uom": ["product:5af1272e-dd26-11e0-b65e-701a04e25543.product_uom_unit", "PCE"],
107 new_sale_order_id = sale_order_pool.edi_import(cr, uid, edi_document, context=context)
108 assert new_sale_order_id, 'Sale order import failed'
109 order_new = sale_order_pool.browse(cr, uid, new_sale_order_id)
111 # check bank info on partner
112 assert len(order_new.partner_id.bank_ids) == 1, "Expected 1 bank entry related to partner"
113 bank_info = order_new.partner_id.bank_ids[0]
114 assert bank_info.acc_number == "Ladies bank: 032465789-156113", 'Expected "Ladies bank: 032465789-156113", got %s' % bank_info.acc_number
116 assert order_new.pricelist_id.name == 'Public Pricelist' , "Public Price list was not automatically assigned"
117 assert order_new.amount_total == 350, "Amount total is wrong"
118 assert order_new.amount_untaxed == 350, "Untaxed amount is wrong"
119 assert len(order_new.order_line) == 2, "Sale order lines mismatch"
120 for sale_line in order_new.order_line:
121 if sale_line.name == 'Basic PC':
122 assert sale_line.delay == 18 , "incorrect delay: got %s, expected 18"%(sale_line.delay,)
123 assert sale_line.product_uom.name == "PCE" , "uom is not same"
124 assert sale_line.price_unit == 150 , "unit price is not same, got %s, expected 150"%(sale_line.price_unit,)
125 assert sale_line.product_uom_qty == 1 , "product qty is not same"
126 elif sale_line.name == 'Medium PC':
127 assert sale_line.delay == 3 , "incorrect delay: got %s, expected 3"%(sale_line.delay,)
128 assert sale_line.product_uom.name == "PCE" , "uom is not same"
129 assert sale_line.price_unit == 100 , "unit price is not same, got %s, expected 100"%(sale_line.price_unit,)
130 assert sale_line.product_uom_qty == 2 , "product qty is not same"
132 raise AssertionError('unknown order line: %s' % sale_line)