[ADD,IMP]mrp_repair:

added:
  mrp_repair/mrp_repair_demo.yml
  mrp_repair/test/test_mrp_repair_afterinv.yml
  mrp_repair/test/test_mrp_repair_b4inv.yml
  mrp_repair/test/test_mrp_repair_cancel.yml
  mrp_repair/test/test_mrp_repair_noneinv.yml
modified:
  mrp_repair/__openerp__.py

bzr revid: dbr@tinyerp.com-20111222070828-12w2d6csvranc386
This commit is contained in:
DBR (OpenERP) 2011-12-22 12:38:28 +05:30
parent 3a0eb00d78
commit e335a62857
7 changed files with 251 additions and 121 deletions

View File

@ -48,8 +48,12 @@ The aim is to have a complete module to manage all products repairs. The followi
'mrp_repair_workflow.xml',
'mrp_repair_report.xml',
],
'demo_xml': ['mrp_repair_demo.xml'],
'test': ['test/test_mrp_repair.yml', 'test/mrp_repair_report.yml'],
'demo_xml': ['mrp_repair_demo.yml'],
'test': ['test/test_mrp_repair_noneinv.yml',
'test/test_mrp_repair_b4inv.yml',
'test/test_mrp_repair_afterinv.yml',
'test/test_mrp_repair_cancel.yml',
'test/mrp_repair_report.yml'],
'installable': True,
'active': False,
'certificate': '0060814381277',

View File

@ -0,0 +1,123 @@
-
!record {model: stock.move, id: stock_move_pcbasicpc0}:
company_id: base.main_company
date: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
date_expected: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
location_dest_id: stock.stock_location_14
location_id: stock.stock_location_stock
name: '[PC1] Basic PC'
product_id: product.product_product_pc1
product_qty: 1.0
product_uom: product.product_uom_unit
product_uos_qty: 1.0
-
!record {model: mrp.repair, id: mrp_repair_rmrp1}:
address_id: base.res_partner_address_1
guarantee_limit: !eval datetime.today().strftime("%Y-%m-%d")
invoice_method: 'none'
partner_invoice_id: base.res_partner_address_1
location_dest_id: stock.stock_location_14
location_id: stock.stock_location_14
move_id: 'stock_move_pcbasicpc0'
name: RMA00004
operations:
- location_dest_id: stock.location_production
location_id: stock.stock_location_stock
name: '[HDD1] HDD Seagate 7200.8 80GB'
price_unit: 50.0
product_id: product.product_product_hdd1
product_uom: product.product_uom_unit
product_uom_qty: 1.0
state: draft
to_invoice: 1
type: add
fees_lines:
- name: 'HDD1 Seagate repair fees'
product_id: product.product_product_hdd1
product_uom_qty: 1.0
product_uom: product.product_uom_unit
price_unit: 50.0
partner_id: base.res_partner_9
product_id: product.product_product_pc1
-
!record {model: stock.move, id: stock.stock_move_stockmvmrp1}:
company_id: base.main_company
date: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
date_expected: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
location_dest_id: stock.stock_location_14
location_id: stock.stock_location_stock
name: '[PC3] Medium PC'
product_id: product.product_product_pc3
product_qty: 1.0
product_uom: product.product_uom_unit
product_uos_qty: 1.0
-
!record {model: mrp.repair, id: mrp_repair_rmrp0}:
address_id: base.res_partner_address_1
guarantee_limit: !eval datetime.today().strftime("%Y-%m-%d")
invoice_method: 'after_repair'
partner_invoice_id: base.res_partner_address_1
location_dest_id: stock.stock_location_14
location_id: stock.stock_location_14
move_id: 'stock.stock_move_stockmvmrp1'
name: RMA-00007
operations:
- location_dest_id: stock.location_production
location_id: stock.stock_location_stock
name: '[HDD2] HDD Seagate 7200.8 120GB'
price_unit: 50.0
product_id: product.product_product_hdd2
product_uom: product.product_uom_unit
product_uom_qty: 1.0
state: draft
to_invoice: 1
type: add
fees_lines:
- name: 'HDD2 Seagate repair fees'
product_id: product.product_product_hdd2
product_uom_qty: 1.0
product_uom: product.product_uom_unit
price_unit: 50.0
partner_id: base.res_partner_9
product_id: product.product_product_pc3
-
!record {model: stock.move, id: stock.stock_move_stockmvmrp2}:
company_id: base.main_company
date: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
date_expected: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
location_dest_id: stock.stock_location_14
location_id: stock.stock_location_stock
name: '[PC4] Customizable PC'
product_id: product.product_product_pc4
product_qty: 1.0
product_uom: product.product_uom_unit
product_uos_qty: 1.0
-
!record {model: mrp.repair, id: mrp_repair_rmrp2}:
address_id: base.res_partner_address_1
guarantee_limit: !eval datetime.today().strftime("%Y-%m-%d")
invoice_method: 'b4repair'
partner_invoice_id: base.res_partner_address_1
location_dest_id: stock.stock_location_14
location_id: stock.stock_location_14
move_id: 'stock.stock_move_stockmvmrp2'
name: RMA-00011
operations:
- location_dest_id: stock.location_production
location_id: stock.stock_location_stock
name: '[HDD3] HDD Seagate 7200.8 160GB'
price_unit: 50.0
product_id: product.product_product_hdd3
product_uom: product.product_uom_unit
product_uom_qty: 1.0
state: draft
to_invoice: 1
type: add
fees_lines:
- name: 'HDD3 Seagate repair fees'
product_id: product.product_product_hdd3
product_uom_qty: 1.0
product_uom: product.product_uom_unit
price_unit: 50.0
partner_id: base.res_partner_9
product_id: product.product_product_pc4

View File

@ -1,119 +0,0 @@
-
In order to test "mrp_repair" module, I start from confirm it, and start repair.
-
I confirm Repair order.
-
!workflow {model: mrp.repair, action: repair_confirm, ref: mrp_repair_rmrp0}
-
I start the repairing process by click on "Start Repair" Button For Invoice Type After repair.
-
!workflow {model: mrp.repair, action: repair_ready, ref: mrp_repair_rmrp0}
-
I check that state is "Under Repair".
-
!assert {model: mrp.repair, id: mrp_repair_rmrp0}:
- state == 'under_repair'
-
Repairing Process for product is Done and I End Repair process by click on "End Repair" button.
-
!workflow {model: mrp.repair, action: action_repair_end, ref: mrp_repair_rmrp0}
-
I define invoiced after repair option in this Repair order.
so I create Invoice by click on "Make Invoice" wizard.
-
!record {model: mrp.repair.make_invoice, id: mrp_repair_make_invoice_0}:
group: 1
-
I click on "Create Invoice" button of this wizard to make invoice.
-
!python {model: mrp.repair.make_invoice}: |
self.make_invoices(cr, uid, [ref("mrp_repair_make_invoice_0")], {"active_ids": [ref("mrp_repair.mrp_repair_rmrp0")]})
-
I check that Invoice is created for this repair order.
-
!python {model: mrp.repair}: |
repair_id = self.browse(cr, uid, [ref('mrp_repair_rmrp0')], context=context)[0]
assert repair_id.invoice_id.id, _("No invoice exists for this repair order")
-
I start by creating new copy Repair order for "Basic PC" product.
-
!python {model: mrp.repair}: |
copy_id = self.copy(cr, uid, ref("mrp_repair_rmrp0"))
context.update({'new_id':copy_id})
-
I update the Invoice Method is "No Invoice" and confirm it.
-
!python {model: mrp.repair}: |
import netsvc
new_id = context.get('new_id')
self.write(cr, uid, [new_id], {'invoice_method': 'none'})
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.repair', new_id, 'repair_confirm', cr)
-
I Cancel this Repair order.
-
!python {model: mrp.repair.cancel}: |
new_id = context.get('new_id')
context.update({"active_model":"mrp.repair", "active_ids": [new_id],"active_id": new_id})
self.fields_view_get(cr, uid, False, "form", context)
self.cancel_repair(cr, uid, [new_id], context)
-
I check that Repair order is in "Cancel" state.
-
!python {model: mrp.repair}: |
new_id = context.get('new_id')
order = self.browse(cr, uid, [new_id])[0]
assert order.state == 'cancel',"Repair order should be in Cancel state."
-
I Reopen the repair order as new.
-
!python {model: mrp.repair}: |
new_id = context.get('new_id')
self.action_cancel_draft(cr, uid, [new_id])
-
I change the Invoice method of the repair order to Before repair and confirm it again.
-
!python {model: mrp.repair}: |
import netsvc
new_id = context.get('new_id')
self.write(cr, uid, [new_id], {'invoice_method': 'b4repair'})
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.repair', new_id, 'repair_confirm', cr)
-
Repair order state to 'Ready'.
-
!python {model: mrp.repair}: |
new_id = context.get('new_id')
self.action_repair_ready(cr, uid, [new_id], context)
-
I click on "Create Invoice" button of this wizard to make invoice.
-
!python {model: mrp.repair}: |
import netsvc
new_id = context.get('new_id')
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.repair', new_id, 'action_invoice_create', cr)
-
I check that Invoice is created for this repair order.
-
!python {model: mrp.repair}: |
new_id = context.get('new_id')
repair_id = self.browse(cr, uid, [new_id], context)[0]
assert repair_id.invoice_id.id, _("No invoice exists for this repair order.")
-
I start the repairing process by click on "Start Repair" Button.
-
!python {model: mrp.repair}: |
import netsvc
new_id = context.get('new_id')
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.repair', new_id, 'action_repair_start', cr)
-
Repairing Process for product is Done and I End Repair process by click on "End Repair" button For Invoice Type b4repair.
-
!python {model: mrp.repair}: |
import netsvc
new_id = context.get('new_id')
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.repair', new_id, 'action_repair_end', cr)

View File

@ -0,0 +1,37 @@
-
In order to test invoice type after repair.
-
I Confirm Repair order For Invoice Type After repair.
-
!workflow {model: mrp.repair, action: repair_confirm, ref: mrp_repair_rmrp0}
-
I start the repairing process by click on "Start Repair" Button For Invoice Type After repair.
-
!workflow {model: mrp.repair, action: repair_ready, ref: mrp_repair_rmrp0}
-
I check that state is "Under Repair".
-
!assert {model: mrp.repair, id: mrp_repair_rmrp0}:
- state == 'under_repair'
-
Repairing Process for product is Done and I End Repair process by click on "End Repair" button.
-
!workflow {model: mrp.repair, action: action_repair_end, ref: mrp_repair_rmrp0}
-
I define invoiced after repair option in this Repair order.
so I create Invoice by click on "Make Invoice" wizard.
-
!record {model: mrp.repair.make_invoice, id: mrp_repair_make_invoice_0}:
group: 1
-
I click on "Create Invoice" button of this wizard to make invoice.
-
!python {model: mrp.repair.make_invoice}: |
self.make_invoices(cr, uid, [ref("mrp_repair_make_invoice_0")], {"active_ids": [ref("mrp_repair.mrp_repair_rmrp0")]})
-
I check that Invoice is created for this repair order.
-
!python {model: mrp.repair}: |
repair_id = self.browse(cr, uid, [ref('mrp_repair_rmrp0')], context=context)[0]
assert repair_id.invoice_id.id, _("No invoice exists for this repair order")

View File

@ -0,0 +1,30 @@
-
Now test invoice type before repair.
-
I Confirm Repair order For Invoice Type Before Repair.
-
!workflow {model: mrp.repair, action: repair_confirm, ref: mrp_repair_rmrp2}
-
Repair order state to 'Ready'.
-
!python {model: mrp.repair}: |
self.action_repair_ready(cr, uid, [ref('mrp_repair_rmrp2')], context=None)
-
I click on "Create Invoice" button of this wizard to make invoice.
-
!workflow {model: mrp.repair, action: action_invoice_create, ref: mrp_repair_rmrp2}
-
I check that Invoice is created for this repair order.
-
!python {model: mrp.repair}: |
repair_id = self.browse(cr, uid, [ref('mrp_repair_rmrp2')], context=context)[0]
assert repair_id.invoice_id.id, _("No invoice exists for this repair order.")
-
I start the repairing process by click on "Start Repair" Button.
-
!workflow {model: mrp.repair, action: action_repair_start, ref: mrp_repair_rmrp2}
-
Repairing Process for product is Done and I End Repair process by click on "End Repair" button For Invoice Type b4repair.
-
!workflow {model: mrp.repair, action: action_repair_end, ref: mrp_repair_rmrp2}

View File

@ -0,0 +1,28 @@
-
In order to test the cancel floe of mrp_repair module,
I start by creating new copy Repair order for "Basic PC" product.
-
!python {model: mrp.repair}: |
copy_id = self.copy(cr, uid, ref("mrp_repair_rmrp1"))
context.update({'new_id':copy_id})
-
I Cancel this Repair order.
-
!python {model: mrp.repair.cancel}: |
new_id = context.get('new_id')
context.update({"active_model":"mrp.repair", "active_ids": [new_id],"active_id": new_id})
self.fields_view_get(cr, uid, False, "form", context)
self.cancel_repair(cr, uid, [new_id], context)
-
I check that Repair order is in "Cancel" state.
-
!python {model: mrp.repair}: |
new_id = context.get('new_id')
order = self.browse(cr, uid, [new_id])[0]
assert order.state == 'cancel',"Repair order should be in Cancel state."
-
I Reopen the repair order as new.
-
!python {model: mrp.repair}: |
new_id = context.get('new_id')
self.action_cancel_draft(cr, uid, [new_id])

View File

@ -0,0 +1,27 @@
-
In order to test "mrp_repair" module, I start from confirm it, and start repair.
-
I Confirm Repair order for Invoice Type 'None'.
-
!workflow {model: mrp.repair, action: repair_confirm, ref: mrp_repair_rmrp1}
-
I start the repairing process by click on "Start Repair" Button For Invoice Type None.
-
!workflow {model: mrp.repair, action: repair_ready, ref: mrp_repair_rmrp1}
-
I check that state is "Under Repair".
-
!assert {model: mrp.repair, id: mrp_repair_rmrp1}:
- state == 'under_repair'
-
Repairing Process for product is Done and I End Repair process by click on "End Repair" button.
-
!workflow {model: mrp.repair, action: action_repair_end, ref: mrp_repair_rmrp1}
-
I define invoiced none option in this Repair order.
So, I check that Invoice should not be created for this repair order.
-
!python {model: mrp.repair}: |
repair_id = self.browse(cr, uid, [ref('mrp_repair_rmrp1')], context=context)[0]
assert not repair_id.invoice_id.id, _("Invoice should not be exists for this repair order")