3
In order to test process of the Delivery Optional Invoice Line,
5
I set the do_not_create_invoice_line field as True on the free_delivery_carrier.
7
!record {model: delivery.carrier, id: delivery.free_delivery_carrier}:
8
do_not_create_invoice_line: True
10
I create sale order having picking as order_policy and free_delivery_carrier as carrier_id.
12
!record {model: sale.order, id: sale_order_test}:
13
partner_id: base.res_partner_2
15
carrier_id: delivery.free_delivery_carrier
17
- product_id: product.product_product_7
22
!workflow {model: sale.order, action: order_confirm, ref: sale_order_test}
24
Now, I dispatch delivery order.
26
!python {model: stock.partial.picking}: |
27
order = self.pool.get('sale.order').browse(cr, uid, ref("sale_order_test"))
28
for pick in order.picking_ids:
29
data = pick.force_assign()
31
partial_id = self.create(cr, uid, {}, context={'active_model': 'stock.picking','active_ids': [pick.id]})
32
self.do_partial(cr, uid, [partial_id])
34
I create invoice from delivery order.
36
!python {model: stock.invoice.onshipping}: |
37
sale = self.pool.get('sale.order')
38
sale_order = sale.browse(cr, uid, ref("sale_order_test"))
39
ship_ids = [x.id for x in sale_order.picking_ids]
40
wiz_id = self.create(cr, uid, {'journal_id': ref('account.sales_journal')},
41
{'active_ids': ship_ids, 'active_model': 'stock.picking'})
42
self.create_invoice(cr, uid, [wiz_id], {"active_ids": ship_ids, "active_id": ship_ids[0]})
44
I check the invoice details after dispatched delivery.
46
!python {model: sale.order}: |
47
order = self.browse(cr, uid, ref("sale_order_test"))
48
assert order.invoice_ids, "Invoice is not created."
49
for invoice in order.invoice_ids:
50
assert len(invoice.invoice_line) == len(order.order_line), "Lines of Invoice and Sale Order are not correspond"