odoo/addons/sale/test/postpaid_order_policy.yml

55 lines
2.4 KiB
YAML

-
Now I confirm the Quotation with "Invoice on order after delivery" policy.
-
!workflow {model: sale.order, action: order_confirm, ref: order2}
-
I check that related delivery order after confirmed.
-
!python {model: sale.order}: |
sale_order = self.browse(cr, uid, ref("order2"))
assert sale_order.picking_ids, "Delivery Order should be created."
assert len(sale_order.invoice_ids) == False, "Invoice should be not created."
-
Now, I dispatch delivery order.
-
!python {model: stock.partial.picking}: |
order = self.pool.get('sale.order').browse(cr, uid, ref("order2"))
for pick in order.picking_ids:
data = pick.force_assign()
if data == True:
partial_id = self.create(cr, uid, {}, context={'active_model': 'stock.picking','active_ids': [pick.id]})
self.do_partial(cr, uid, [partial_id])
-
I open the invoice.
-
!python {model: sale.order}: |
import netsvc
wf_service = netsvc.LocalService("workflow")
order = self.browse(cr, uid, ref("order2"))
#assert order.invoice_ids, "Invoice should be created after dispatch delivery order."
for invoice in order.invoice_ids:
wf_service.trg_validate(uid, 'account.invoice', invoice.id, 'invoice_open', cr)
-
I pay the invoice.
-
!python {model: account.invoice}: |
sale_order = self.pool.get('sale.order')
order = sale_order.browse(cr, uid, ref("order2"))
journal_ids = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', order.company_id.id)], limit=1)
for invoice in order.invoice_ids:
invoice.pay_and_reconcile(
invoice.amount_total, ref('account.cash'), ref('account.period_8'),
journal_ids[0], ref('account.cash'),
ref('account.period_8'), journal_ids[0],
name='test')
-
I check that an order has been invoiced, shipped and closed.
-
!python {model: sale.order}: |
order = self.browse(cr, uid, ref("order2"))
assert order.picked_rate == 100, "Shipment progress is not 100%."
#assert order.shipped, "Delivery Order should be dispatch." #TOFIX: procurement is gone in idle state so order never shipped, invoiced. after install mrp, it will be normal.
#assert order.invoiced == True, "Sale order is not invoiced."
#assert order.invoiced_rate == 100, "Invoiced progress is not 100%."
#assert order.state == 'done', 'Order should be in closed.'