odoo/addons/sale/test/canceled_lines_order.yml

61 lines
2.0 KiB
YAML

-
I create a draft Sale Order with 2 lines but 1 canceled in order to check if the canceled lines are not considered in the logic
-
!record {model: sale.order, id: sale_order_cl_2}:
partner_id: base.res_partner_15
partner_invoice_id: base.res_partner_address_25
partner_shipping_id: base.res_partner_address_25
pricelist_id: product.list0
order_policy: manual
-
!record {model: sale.order.line, id: sale_order_cl_2_line_1}:
order_id: sale_order_cl_2
product_id: product.product_product_27
product_uom_qty: 1
product_uom: 1
price_unit: 3645
name: 'Laptop Customized'
-
!record {model: sale.order.line, id: sale_order_cl_2_line_2}:
order_id: sale_order_cl_2
product_id: product.product_product_12
product_uom_qty: 1
product_uom: 1
price_unit: 12.50
name: 'Mouse, Wireless'
-
I cancel the first line
-
!python {model: sale.order.line, id: sale_order_cl_2_line_1}: |
self.button_cancel()
-
I confirm the sale order
-
!workflow {model: sale.order, action: order_confirm, ref: sale_order_cl_2}
-
Invoice the whole sale order
-
!python {model: sale.advance.payment.inv}: |
ctx = context.copy()
ctx.update({"active_model": 'sale.order',
"active_ids": [ref("sale_order_cl_2")],
"active_id":ref("sale_order_cl_2")})
pay_id = self.create(cr, uid, {'advance_payment_method': 'all'})
self.create_invoices(cr, uid, [pay_id], context=ctx)
-
I check the invoice
-
!python {model: sale.order, id: sale_order_cl_2}: |
invoice = self.invoice_ids
assert len(invoice.invoice_line) == 1, "Only 1 line should be invoiced because the other one is canceled, got %d" % len(invoice.invoice_line)
-
I set the sale to done
-
!python {model: sale.order, id: sale_order_cl_2}: |
self.action_done()
-
And check if the canceled line is still canceled
-
!assert {model: sale.order.line, id: sale_order_cl_2_line_1, string: The canceled line should still be canceled}:
- state == 'cancel'