[IMP]: purchase: Improved xml_id reference of purchase orders
bzr revid: rpa@tinyerp.com-20120711170758-52xt4mgjltod650b
This commit is contained in:
parent
bed063e0df
commit
3612035b2e
|
@ -6,8 +6,8 @@
|
|||
<field eval="[(4, ref('group_purchase_user'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<workflow action="purchase_confirm" model="purchase.order" ref="order_purchase2"/>
|
||||
<workflow action="purchase_confirm" model="purchase.order" ref="order_purchase6"/>
|
||||
<workflow action="purchase_confirm" model="purchase.order" ref="purchase_order_2"/>
|
||||
<workflow action="purchase_confirm" model="purchase.order" ref="purchase_order_6"/>
|
||||
|
||||
<record id="stock.res_company_1" model="res.company">
|
||||
<field eval="1.0" name="po_lead"/>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
-
|
||||
!record {model: purchase.order, id: order_purchase1}:
|
||||
!record {model: purchase.order, id: purchase_order_1}:
|
||||
partner_id: base.res_partner_1
|
||||
invoice_method: order
|
||||
order_line:
|
||||
|
@ -14,7 +14,7 @@
|
|||
product_qty: 4.0
|
||||
|
||||
-
|
||||
!record {model: purchase.order, id: order_purchase2}:
|
||||
!record {model: purchase.order, id: purchase_order_2}:
|
||||
partner_id: base.res_partner_3
|
||||
invoice_method: picking
|
||||
order_line:
|
||||
|
@ -26,7 +26,7 @@
|
|||
product_qty: 5
|
||||
|
||||
-
|
||||
!record {model: purchase.order, id: order_purchase3}:
|
||||
!record {model: purchase.order, id: purchase_order_3}:
|
||||
partner_id: base.res_partner_12
|
||||
order_line:
|
||||
- product_id: product.product_product_2
|
||||
|
@ -34,7 +34,7 @@
|
|||
product_qty: 10.0
|
||||
|
||||
-
|
||||
!record {model: purchase.order, id: order_purchase4}:
|
||||
!record {model: purchase.order, id: purchase_order_4}:
|
||||
partner_id: base.res_partner_4
|
||||
order_line:
|
||||
- product_id: product.product_product_14
|
||||
|
@ -48,7 +48,7 @@
|
|||
product_qty: 7.0
|
||||
|
||||
-
|
||||
!record {model: purchase.order, id: order_purchase5}:
|
||||
!record {model: purchase.order, id: purchase_order_5}:
|
||||
partner_id: base.res_partner_19
|
||||
order_line:
|
||||
- product_id: product.product_product_22
|
||||
|
@ -57,7 +57,7 @@
|
|||
product_qty: 3
|
||||
|
||||
-
|
||||
!record {model: purchase.order, id: order_purchase6}:
|
||||
!record {model: purchase.order, id: purchase_order_6}:
|
||||
partner_id: base.res_partner_22
|
||||
order_line:
|
||||
- product_id: product.product_product_38
|
||||
|
@ -71,8 +71,8 @@
|
|||
price_unit: 154.5
|
||||
|
||||
-
|
||||
!record {model: purchase.order, id: order_purchase7}:
|
||||
partner_id: base.res_partner_16
|
||||
!record {model: purchase.order, id: purchase_order_7}:
|
||||
partner_id: base.res_partner_4
|
||||
order_line:
|
||||
- product_id: product.product_product_12
|
||||
product_qty: 5
|
||||
|
|
|
@ -3,52 +3,52 @@
|
|||
-
|
||||
I confirm the purchase order.
|
||||
-
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: order_purchase4}
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: purchase_order_4}
|
||||
-
|
||||
I check the "Approved" status after confirmed RFQ.
|
||||
-
|
||||
!assert {model: purchase.order, id: order_purchase4}:
|
||||
!assert {model: purchase.order, id: purchase_order_4}:
|
||||
- state == 'approved'
|
||||
-
|
||||
First I cancel receptions related to this order if order shipped.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
order = self.browse(cr, uid, ref("order_purchase4"))
|
||||
order = self.browse(cr, uid, ref("purchase_order_4"))
|
||||
self.pool.get('stock.picking').action_cancel(cr, uid, [picking.id for picking in order.picking_ids])
|
||||
-
|
||||
I check order status in "Shipping Exception".
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
order = self.browse(cr, uid, ref("order_purchase4"))
|
||||
order = self.browse(cr, uid, ref("purchase_order_4"))
|
||||
assert order.state == "except_picking", "order should be in Ship Exception state after cancel shipment"
|
||||
-
|
||||
Now I am able to cancel purchase order.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
self.action_cancel(cr, uid, [ref("order_purchase4")])
|
||||
self.action_cancel(cr, uid, [ref("purchase_order_4")])
|
||||
-
|
||||
I check that order is cancelled.
|
||||
-
|
||||
!assert {model: purchase.order, id: order_purchase4}:
|
||||
!assert {model: purchase.order, id: purchase_order_4}:
|
||||
- state == 'cancel'
|
||||
-
|
||||
After cancel the order, I check that it's related invoice cancelled.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
order = self.browse(cr, uid, ref("order_purchase4"))
|
||||
order = self.browse(cr, uid, ref("purchase_order_4"))
|
||||
assert order.invoice_ids[0].state == "cancel", "order's related invoice should be cancelled"
|
||||
-
|
||||
Now again set cancelled order to draft.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
self.action_cancel_draft(cr, uid, [ref("order_purchase4")])
|
||||
self.action_cancel_draft(cr, uid, [ref("purchase_order_4")])
|
||||
-
|
||||
Now I again to cancel draft order.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
self.action_cancel(cr, uid, [ref("order_purchase4")])
|
||||
self.action_cancel(cr, uid, [ref("purchase_order_4")])
|
||||
-
|
||||
I check that order is cancelled.
|
||||
-
|
||||
!assert {model: purchase.order, id: order_purchase4}:
|
||||
!assert {model: purchase.order, id: purchase_order_4}:
|
||||
- state == 'cancel'
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
-
|
||||
I confirm another order where invoice control is 'Bases on incoming shipments'.
|
||||
-
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: order_purchase2}
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: purchase_order_2}
|
||||
-
|
||||
I check that the invoice of order.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
purchase_order = self.browse(cr, uid, ref("order_purchase2"))
|
||||
purchase_order = self.browse(cr, uid, ref("purchase_order_2"))
|
||||
assert len(purchase_order.invoice_ids) == 0, "Invoice should not be generated on order confirmation."
|
||||
-
|
||||
Now I create an invoice for order on reception.
|
||||
-
|
||||
!python {model: stock.picking}: |
|
||||
pick_ids = self.search(cr, uid, [('purchase_id','=',ref('order_purchase2'))])
|
||||
pick_ids = self.search(cr, uid, [('purchase_id','=',ref('purchase_order_2'))])
|
||||
self.action_invoice_create(cr, uid, pick_ids, ref('account.expenses_journal'))
|
||||
-
|
||||
I check that the invoice of order.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
purchase_order = self.browse(cr, uid, ref("order_purchase2"))
|
||||
purchase_order = self.browse(cr, uid, ref("purchase_order_2"))
|
||||
assert len(purchase_order.invoice_ids) == 1, "Invoice should be generated."
|
||||
|
||||
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
-
|
||||
I confirm purchase order which has invoicing control method "Based on Purchase Order Lines".
|
||||
-
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: order_purchase6}
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: purchase_order_6}
|
||||
-
|
||||
In order to test create invoice for purchase order line.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
invoice_line_obj = self.pool.get('purchase.order.line_invoice')
|
||||
purchase_order = self.browse(cr, uid, ref("order_purchase6"))
|
||||
context.update({'active_model': 'purchase.order', 'active_ids': [ref("order_purchase6")]})
|
||||
purchase_order = self.browse(cr, uid, ref("purchase_order_6"))
|
||||
context.update({'active_model': 'purchase.order', 'active_ids': [ref("purchase_order_6")]})
|
||||
for purchase_line in purchase_order.order_line:
|
||||
invoice_line_obj.makeInvoices(cr, uid, purchase_line.id, context=context)
|
||||
-
|
||||
I check the invoice of order.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
purchase_order = self.browse(cr, uid, ref("order_purchase6"))
|
||||
purchase_order = self.browse(cr, uid, ref("purchase_order_6"))
|
||||
for purchase_line in purchase_order.order_line:
|
||||
assert len(purchase_order.invoice_ids) == 1, "Invoice should be generated."
|
||||
-
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
In order to merge RFQ, I merge two RFQ which has same supplier and check new merged order.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
new_id = self.do_merge(cr, uid, [ref('order_purchase3'), ref('order_purchase7')])
|
||||
order3 = self.browse(cr, uid, ref('order_purchase3'))
|
||||
order7 = self.browse(cr, uid, ref('order_purchase7'))
|
||||
new_id = self.do_merge(cr, uid, [ref('purchase_order_4'), ref('purchase_order_7')])
|
||||
order3 = self.browse(cr, uid, ref('purchase_order_4'))
|
||||
order7 = self.browse(cr, uid, ref('purchase_order_7'))
|
||||
total_qty = sum([x.product_qty for x in order3.order_line] + [x.product_qty for x in order7.order_line])
|
||||
|
||||
assert order3.state == 'cancel', "Merged order should be canceled"
|
||||
|
|
|
@ -3,22 +3,22 @@
|
|||
-
|
||||
I check the total untaxed amount of the RFQ is correctly computed
|
||||
-
|
||||
!assert {model: purchase.order, id: order_purchase1, string: The amount of RFQ is not correctly computed}:
|
||||
!assert {model: purchase.order, id: purchase_order_1, string: The amount of RFQ is not correctly computed}:
|
||||
- sum([l.price_subtotal for l in order_line]) == amount_untaxed
|
||||
-
|
||||
I confirm the RFQ.
|
||||
-
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: order_purchase1}
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: purchase_order_1}
|
||||
-
|
||||
I check the "Approved" status after confirmed RFQ.
|
||||
-
|
||||
!assert {model: purchase.order, id: order_purchase1}:
|
||||
!assert {model: purchase.order, id: purchase_order_1}:
|
||||
- state == 'approved'
|
||||
-
|
||||
I check that the invoice details which is generated after confirmed RFQ.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
purchase_order = self.browse(cr, uid, ref("order_purchase1"))
|
||||
purchase_order = self.browse(cr, uid, ref("purchase_order_1"))
|
||||
assert len(purchase_order.invoice_ids) >= 1, "Invoice is not generated more or less than one"
|
||||
for invoice in purchase_order.invoice_ids:
|
||||
assert invoice.state == "draft", "Invoice state should be draft"
|
||||
|
@ -36,7 +36,7 @@
|
|||
I check that Reception details after confirmed RFQ.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
purchase_order = self.browse(cr, uid, ref("order_purchase1"))
|
||||
purchase_order = self.browse(cr, uid, ref("purchase_order_1"))
|
||||
assert len(purchase_order.picking_ids) >= 1, "You should have only one reception order"
|
||||
for picking in purchase_order.picking_ids:
|
||||
assert picking.state == "assigned", "Reception state should be in assigned state"
|
||||
|
@ -46,21 +46,21 @@
|
|||
Reception is ready for process so now done the reception.
|
||||
-
|
||||
!python {model: stock.partial.picking}: |
|
||||
pick_ids = self.pool.get('purchase.order').browse(cr, uid, ref("order_purchase1")).picking_ids
|
||||
pick_ids = self.pool.get('purchase.order').browse(cr, uid, ref("purchase_order_1")).picking_ids
|
||||
partial_id = self.create(cr, uid, {},context={'active_model': 'stock.picking','active_ids': [pick_ids[0].id]})
|
||||
self.do_partial(cr, uid, [partial_id])
|
||||
-
|
||||
I check that purchase order is shipped.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
assert self.browse(cr, uid, ref("order_purchase1")).shipped == True,"Purchase order should be delivered"
|
||||
assert self.browse(cr, uid, ref("purchase_order_1")).shipped == True,"Purchase order should be delivered"
|
||||
|
||||
-
|
||||
I Validate Invoice of Purchase Order.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
import netsvc
|
||||
invoice_ids = [x.id for x in self.browse(cr, uid, ref("order_purchase1")).invoice_ids]
|
||||
invoice_ids = [x.id for x in self.browse(cr, uid, ref("purchase_order_1")).invoice_ids]
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
for invoice in invoice_ids:
|
||||
wf_service.trg_validate(uid, 'account.invoice', invoice, 'invoice_open', cr)
|
||||
|
@ -68,5 +68,5 @@
|
|||
I check that purchase order is invoiced.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
assert self.browse(cr, uid, ref("order_purchase1")).invoiced == True,"Purchase Order should be invoiced"
|
||||
assert self.browse(cr, uid, ref("purchase_order_1")).invoiced == True,"Purchase Order should be invoiced"
|
||||
|
||||
|
|
|
@ -5,18 +5,18 @@
|
|||
-
|
||||
!python {model: purchase.order}: |
|
||||
try:
|
||||
self.unlink(cr, uid, [ref("order_purchase1")])
|
||||
self.unlink(cr, uid, [ref("purchase_order_1")])
|
||||
except Exception,e:
|
||||
pass
|
||||
-
|
||||
I delete a draft order.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
self.unlink(cr, uid, [ref("order_purchase5")])
|
||||
self.unlink(cr, uid, [ref("purchase_order_5")])
|
||||
-
|
||||
I delete a cancelled order.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
self.unlink(cr, uid, [ref("order_purchase7")])
|
||||
self.unlink(cr, uid, [ref("purchase_order_7")])
|
||||
|
||||
|
||||
|
|
|
@ -4,5 +4,5 @@
|
|||
I duplicate order.
|
||||
-
|
||||
!python {model: purchase.order}: |
|
||||
context.update({'active_id':ref('order_purchase1')})
|
||||
self.copy(cr, uid, ref('order_purchase1'), context)
|
||||
context.update({'active_id':ref('purchase_order_1')})
|
||||
self.copy(cr, uid, ref('purchase_order_1'), context)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
-
|
||||
!python {model: purchase.order}: |
|
||||
import netsvc, tools, os
|
||||
(data, format) = netsvc.LocalService('report.purchase.quotation').create(cr, uid, [ref('purchase.order_purchase1'),ref('purchase.order_purchase2')], {}, {})
|
||||
(data, format) = netsvc.LocalService('report.purchase.quotation').create(cr, uid, [ref('purchase.purchase_order_1'),ref('purchase.purchase_order_2')], {}, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'purchase-request_quotation'+format), 'wb+').write(data)
|
||||
-
|
||||
|
@ -11,6 +11,6 @@
|
|||
-
|
||||
!python {model: purchase.order}: |
|
||||
import netsvc, tools, os
|
||||
(data, format) = netsvc.LocalService('report.purchase.order').create(cr, uid, [ref('purchase.order_purchase1'),ref('purchase.order_purchase2')], {}, {})
|
||||
(data, format) = netsvc.LocalService('report.purchase.order').create(cr, uid, [ref('purchase.purchase_order_1'),ref('purchase.purchase_order_2')], {}, {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'purchase-purchase_order_report'+format), 'wb+').write(data)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
-
|
||||
!record {model: purchase.order, id: order_purchase11}:
|
||||
!record {model: purchase.order, id: purchase_order_11}:
|
||||
partner_id: base.res_partner_12
|
||||
order_line:
|
||||
- product_id: product.product_product_6
|
||||
product_qty: 10
|
||||
-
|
||||
!record {model: purchase.order, id: order_purchase12}:
|
||||
!record {model: purchase.order, id: purchase_order_12}:
|
||||
partner_id: base.res_partner_22
|
||||
order_line:
|
||||
- product_id: product.product_product_12
|
||||
|
|
|
@ -9,28 +9,28 @@
|
|||
-
|
||||
In order to test the flow, I confirmed the purchase order.
|
||||
-
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: order_purchase11}
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: purchase_order_11}
|
||||
-
|
||||
I check that the order which was initially in the draft state has transmit to confirm state for double validation it should not an Approve state.
|
||||
-
|
||||
!assert {model: purchase.order, id: order_purchase11, severity: error, string: Purchase Order should not be in Approved state.}:
|
||||
!assert {model: purchase.order, id: purchase_order_11, severity: error, string: Purchase Order should not be in Approved state.}:
|
||||
- state != 'approved'
|
||||
-
|
||||
I Approved the purchase order.
|
||||
-
|
||||
!workflow {model: purchase.order, action: purchase_approve, ref: order_purchase11}
|
||||
!workflow {model: purchase.order, action: purchase_approve, ref: purchase_order_11}
|
||||
-
|
||||
I check that the order which was initially in the confirmed state has transmit to approved state.
|
||||
-
|
||||
!assert {model: purchase.order, id: order_purchase11, severity: error, string: Purchase Order should be in Approved state.}:
|
||||
!assert {model: purchase.order, id: purchase_order_11, severity: error, string: Purchase Order should be in Approved state.}:
|
||||
- state == 'approved'
|
||||
-
|
||||
I confirmed the purchase order of amount of less than Limit amount.
|
||||
-
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: order_purchase12}
|
||||
!workflow {model: purchase.order, action: purchase_confirm, ref: purchase_order_12}
|
||||
-
|
||||
I check that the order is in approved state.
|
||||
-
|
||||
!assert {model: purchase.order, id: order_purchase12, severity: error, string: Purchase Order should be in Approved state.}:
|
||||
!assert {model: purchase.order, id: purchase_order_12, severity: error, string: Purchase Order should be in Approved state.}:
|
||||
- state == 'approved'
|
||||
|
||||
|
|
Loading…
Reference in New Issue