[IMP]: purchase: Improved xml_id reference of purchase orders

bzr revid: rpa@tinyerp.com-20120711170758-52xt4mgjltod650b
This commit is contained in:
Rucha (Open ERP) 2012-07-11 22:37:58 +05:30
parent bed063e0df
commit 3612035b2e
12 changed files with 55 additions and 55 deletions

View File

@ -6,8 +6,8 @@
<field eval="[(4, ref('group_purchase_user'))]" name="groups_id"/> <field eval="[(4, ref('group_purchase_user'))]" name="groups_id"/>
</record> </record>
<workflow action="purchase_confirm" model="purchase.order" ref="order_purchase2"/> <workflow action="purchase_confirm" model="purchase.order" ref="purchase_order_2"/>
<workflow action="purchase_confirm" model="purchase.order" ref="order_purchase6"/> <workflow action="purchase_confirm" model="purchase.order" ref="purchase_order_6"/>
<record id="stock.res_company_1" model="res.company"> <record id="stock.res_company_1" model="res.company">
<field eval="1.0" name="po_lead"/> <field eval="1.0" name="po_lead"/>

View File

@ -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 partner_id: base.res_partner_1
invoice_method: order invoice_method: order
order_line: order_line:
@ -14,7 +14,7 @@
product_qty: 4.0 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 partner_id: base.res_partner_3
invoice_method: picking invoice_method: picking
order_line: order_line:
@ -26,7 +26,7 @@
product_qty: 5 product_qty: 5
- -
!record {model: purchase.order, id: order_purchase3}: !record {model: purchase.order, id: purchase_order_3}:
partner_id: base.res_partner_12 partner_id: base.res_partner_12
order_line: order_line:
- product_id: product.product_product_2 - product_id: product.product_product_2
@ -34,7 +34,7 @@
product_qty: 10.0 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 partner_id: base.res_partner_4
order_line: order_line:
- product_id: product.product_product_14 - product_id: product.product_product_14
@ -48,7 +48,7 @@
product_qty: 7.0 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 partner_id: base.res_partner_19
order_line: order_line:
- product_id: product.product_product_22 - product_id: product.product_product_22
@ -57,7 +57,7 @@
product_qty: 3 product_qty: 3
- -
!record {model: purchase.order, id: order_purchase6}: !record {model: purchase.order, id: purchase_order_6}:
partner_id: base.res_partner_22 partner_id: base.res_partner_22
order_line: order_line:
- product_id: product.product_product_38 - product_id: product.product_product_38
@ -71,8 +71,8 @@
price_unit: 154.5 price_unit: 154.5
- -
!record {model: purchase.order, id: order_purchase7}: !record {model: purchase.order, id: purchase_order_7}:
partner_id: base.res_partner_16 partner_id: base.res_partner_4
order_line: order_line:
- product_id: product.product_product_12 - product_id: product.product_product_12
product_qty: 5 product_qty: 5

View File

@ -3,52 +3,52 @@
- -
I confirm the purchase order. 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. 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' - state == 'approved'
- -
First I cancel receptions related to this order if order shipped. First I cancel receptions related to this order if order shipped.
- -
!python {model: purchase.order}: | !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]) self.pool.get('stock.picking').action_cancel(cr, uid, [picking.id for picking in order.picking_ids])
- -
I check order status in "Shipping Exception". I check order status in "Shipping Exception".
- -
!python {model: purchase.order}: | !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" assert order.state == "except_picking", "order should be in Ship Exception state after cancel shipment"
- -
Now I am able to cancel purchase order. Now I am able to cancel purchase order.
- -
!python {model: 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. I check that order is cancelled.
- -
!assert {model: purchase.order, id: order_purchase4}: !assert {model: purchase.order, id: purchase_order_4}:
- state == 'cancel' - state == 'cancel'
- -
After cancel the order, I check that it's related invoice cancelled. After cancel the order, I check that it's related invoice cancelled.
- -
!python {model: purchase.order}: | !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" assert order.invoice_ids[0].state == "cancel", "order's related invoice should be cancelled"
- -
Now again set cancelled order to draft. Now again set cancelled order to draft.
- -
!python {model: purchase.order}: | !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. Now I again to cancel draft order.
- -
!python {model: 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. I check that order is cancelled.
- -
!assert {model: purchase.order, id: order_purchase4}: !assert {model: purchase.order, id: purchase_order_4}:
- state == 'cancel' - state == 'cancel'

View File

@ -1,24 +1,24 @@
- -
I confirm another order where invoice control is 'Bases on incoming shipments'. 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. I check that the invoice of order.
- -
!python {model: purchase.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." assert len(purchase_order.invoice_ids) == 0, "Invoice should not be generated on order confirmation."
- -
Now I create an invoice for order on reception. Now I create an invoice for order on reception.
- -
!python {model: stock.picking}: | !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')) self.action_invoice_create(cr, uid, pick_ids, ref('account.expenses_journal'))
- -
I check that the invoice of order. I check that the invoice of order.
- -
!python {model: purchase.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." assert len(purchase_order.invoice_ids) == 1, "Invoice should be generated."

View File

@ -1,21 +1,21 @@
- -
I confirm purchase order which has invoicing control method "Based on Purchase Order Lines". 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. In order to test create invoice for purchase order line.
- -
!python {model: purchase.order}: | !python {model: purchase.order}: |
invoice_line_obj = self.pool.get('purchase.order.line_invoice') invoice_line_obj = self.pool.get('purchase.order.line_invoice')
purchase_order = self.browse(cr, uid, ref("order_purchase6")) purchase_order = self.browse(cr, uid, ref("purchase_order_6"))
context.update({'active_model': 'purchase.order', 'active_ids': [ref("order_purchase6")]}) context.update({'active_model': 'purchase.order', 'active_ids': [ref("purchase_order_6")]})
for purchase_line in purchase_order.order_line: for purchase_line in purchase_order.order_line:
invoice_line_obj.makeInvoices(cr, uid, purchase_line.id, context=context) invoice_line_obj.makeInvoices(cr, uid, purchase_line.id, context=context)
- -
I check the invoice of order. I check the invoice of order.
- -
!python {model: purchase.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: for purchase_line in purchase_order.order_line:
assert len(purchase_order.invoice_ids) == 1, "Invoice should be generated." assert len(purchase_order.invoice_ids) == 1, "Invoice should be generated."
- -

View File

@ -2,9 +2,9 @@
In order to merge RFQ, I merge two RFQ which has same supplier and check new merged order. In order to merge RFQ, I merge two RFQ which has same supplier and check new merged order.
- -
!python {model: purchase.order}: | !python {model: purchase.order}: |
new_id = self.do_merge(cr, uid, [ref('order_purchase3'), ref('order_purchase7')]) new_id = self.do_merge(cr, uid, [ref('purchase_order_4'), ref('purchase_order_7')])
order3 = self.browse(cr, uid, ref('order_purchase3')) order3 = self.browse(cr, uid, ref('purchase_order_4'))
order7 = self.browse(cr, uid, ref('order_purchase7')) 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]) 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" assert order3.state == 'cancel', "Merged order should be canceled"

View File

@ -3,22 +3,22 @@
- -
I check the total untaxed amount of the RFQ is correctly computed 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 - sum([l.price_subtotal for l in order_line]) == amount_untaxed
- -
I confirm the RFQ. 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. 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' - state == 'approved'
- -
I check that the invoice details which is generated after confirmed RFQ. I check that the invoice details which is generated after confirmed RFQ.
- -
!python {model: purchase.order}: | !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" assert len(purchase_order.invoice_ids) >= 1, "Invoice is not generated more or less than one"
for invoice in purchase_order.invoice_ids: for invoice in purchase_order.invoice_ids:
assert invoice.state == "draft", "Invoice state should be draft" assert invoice.state == "draft", "Invoice state should be draft"
@ -36,7 +36,7 @@
I check that Reception details after confirmed RFQ. I check that Reception details after confirmed RFQ.
- -
!python {model: purchase.order}: | !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" assert len(purchase_order.picking_ids) >= 1, "You should have only one reception order"
for picking in purchase_order.picking_ids: for picking in purchase_order.picking_ids:
assert picking.state == "assigned", "Reception state should be in assigned state" 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. Reception is ready for process so now done the reception.
- -
!python {model: stock.partial.picking}: | !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]}) partial_id = self.create(cr, uid, {},context={'active_model': 'stock.picking','active_ids': [pick_ids[0].id]})
self.do_partial(cr, uid, [partial_id]) self.do_partial(cr, uid, [partial_id])
- -
I check that purchase order is shipped. I check that purchase order is shipped.
- -
!python {model: purchase.order}: | !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. I Validate Invoice of Purchase Order.
- -
!python {model: purchase.order}: | !python {model: purchase.order}: |
import netsvc 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") wf_service = netsvc.LocalService("workflow")
for invoice in invoice_ids: for invoice in invoice_ids:
wf_service.trg_validate(uid, 'account.invoice', invoice, 'invoice_open', cr) wf_service.trg_validate(uid, 'account.invoice', invoice, 'invoice_open', cr)
@ -68,5 +68,5 @@
I check that purchase order is invoiced. I check that purchase order is invoiced.
- -
!python {model: purchase.order}: | !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"

View File

@ -5,18 +5,18 @@
- -
!python {model: purchase.order}: | !python {model: purchase.order}: |
try: try:
self.unlink(cr, uid, [ref("order_purchase1")]) self.unlink(cr, uid, [ref("purchase_order_1")])
except Exception,e: except Exception,e:
pass pass
- -
I delete a draft order. I delete a draft order.
- -
!python {model: purchase.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. I delete a cancelled order.
- -
!python {model: purchase.order}: | !python {model: purchase.order}: |
self.unlink(cr, uid, [ref("order_purchase7")]) self.unlink(cr, uid, [ref("purchase_order_7")])

View File

@ -4,5 +4,5 @@
I duplicate order. I duplicate order.
- -
!python {model: purchase.order}: | !python {model: purchase.order}: |
context.update({'active_id':ref('order_purchase1')}) context.update({'active_id':ref('purchase_order_1')})
self.copy(cr, uid, ref('order_purchase1'), context) self.copy(cr, uid, ref('purchase_order_1'), context)

View File

@ -3,7 +3,7 @@
- -
!python {model: purchase.order}: | !python {model: purchase.order}: |
import netsvc, tools, os 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']: if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'purchase-request_quotation'+format), 'wb+').write(data) file(os.path.join(tools.config['test_report_directory'], 'purchase-request_quotation'+format), 'wb+').write(data)
- -
@ -11,6 +11,6 @@
- -
!python {model: purchase.order}: | !python {model: purchase.order}: |
import netsvc, tools, os 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']: if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'purchase-purchase_order_report'+format), 'wb+').write(data) file(os.path.join(tools.config['test_report_directory'], 'purchase-purchase_order_report'+format), 'wb+').write(data)

View File

@ -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 partner_id: base.res_partner_12
order_line: order_line:
- product_id: product.product_product_6 - product_id: product.product_product_6
product_qty: 10 product_qty: 10
- -
!record {model: purchase.order, id: order_purchase12}: !record {model: purchase.order, id: purchase_order_12}:
partner_id: base.res_partner_22 partner_id: base.res_partner_22
order_line: order_line:
- product_id: product.product_product_12 - product_id: product.product_product_12

View File

@ -9,28 +9,28 @@
- -
In order to test the flow, I confirmed the purchase order. 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. 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' - state != 'approved'
- -
I Approved the purchase order. 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. 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' - state == 'approved'
- -
I confirmed the purchase order of amount of less than Limit amount. 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. 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' - state == 'approved'