121 lines
5.3 KiB
YAML
121 lines
5.3 KiB
YAML
-
|
|
I compute the production order.
|
|
-
|
|
!python {model: mrp.production}: |
|
|
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
|
|
order.action_compute(context=context)
|
|
-
|
|
I check planned date in workcenter lines of production order.
|
|
-
|
|
!python {model: mrp.production}: |
|
|
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
|
|
for line in order.workcenter_lines:
|
|
#TODO: to check start date of next line should be end of date of previous line.
|
|
assert line.date_planned, "Planned Start date is not computed: %s" %(line)
|
|
assert line.date_planned_end, "Planned End date is not computed: %s" %(line)
|
|
|
|
-
|
|
I confirm the Production Order.
|
|
-
|
|
!workflow {model: mrp.production, action: button_confirm, ref: mrp.mrp_production_1}
|
|
-
|
|
I run scheduler.
|
|
-
|
|
!python {model: procurement.order}: |
|
|
self.run_scheduler(cr, uid)
|
|
-
|
|
I forcefully close internal shipment.
|
|
-
|
|
!python {model: mrp.production}: |
|
|
self.force_production(cr, uid, [ref("mrp.mrp_production_1")])
|
|
-
|
|
I start production.
|
|
-
|
|
!workflow {model: mrp.production, action: button_produce, ref: mrp.mrp_production_1}
|
|
-
|
|
Production start on first work center, so I start work operation on first work center.
|
|
-
|
|
!python {model: mrp.production}: |
|
|
import netsvc
|
|
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
|
|
wf_service = netsvc.LocalService("workflow")
|
|
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_start_working', cr)
|
|
-
|
|
Now I pause first work operation due to technical fault of work center.
|
|
-
|
|
!python {model: mrp.production}: |
|
|
import netsvc
|
|
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
|
|
wf_service = netsvc.LocalService("workflow")
|
|
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_pause', cr)
|
|
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_resume', cr)
|
|
-
|
|
I resume first work operation.
|
|
-
|
|
!python {model: mrp.production}: |
|
|
import netsvc
|
|
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
|
|
wf_service = netsvc.LocalService("workflow")
|
|
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_resume', cr)
|
|
|
|
-
|
|
I cancel first work operation.
|
|
-
|
|
!python {model: mrp.production}: |
|
|
import netsvc
|
|
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
|
|
wf_service = netsvc.LocalService("workflow")
|
|
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_cancel', cr)
|
|
-
|
|
I reset first work operation and start after resolve techninal fault of work center.
|
|
-
|
|
!python {model: mrp.production}: |
|
|
import netsvc
|
|
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
|
|
wf_service = netsvc.LocalService("workflow")
|
|
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_draft', cr)
|
|
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_start_working', cr)
|
|
-
|
|
Now Finished work of first work operation so I close that operation.
|
|
-
|
|
!python {model: mrp.production}: |
|
|
import netsvc
|
|
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
|
|
wf_service = netsvc.LocalService("workflow")
|
|
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_done', cr)
|
|
-
|
|
Now I close other operations after start one by one.
|
|
-
|
|
!python {model: mrp.production}: |
|
|
import netsvc
|
|
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
|
|
wf_service = netsvc.LocalService("workflow")
|
|
for work_line in order.workcenter_lines[1:]:
|
|
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', work_line.id, 'button_start_working', cr)
|
|
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', work_line.id, 'button_done', cr)
|
|
|
|
-
|
|
I check that the production order is now done.
|
|
-
|
|
!python {model: mrp.production}: |
|
|
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
|
|
print order.state
|
|
assert order.state == 'done', "Production should be closed after finished all operations."
|
|
-
|
|
I print a Barcode Report of Operation line.
|
|
-
|
|
!python {model: mrp_operations.operation.code}: |
|
|
import netsvc, tools, os
|
|
(data, format) = netsvc.LocalService('report.mrp.code.barcode').create(cr, uid, [ref('mrp_operations.mrp_op_1'),ref('mrp_operations.mrp_op_2'),ref('mrp_operations.mrp_op_3'),ref('mrp_operations.mrp_op_4'),ref('mrp_operations.mrp_op_5')], {}, {})
|
|
if tools.config['test_report_directory']:
|
|
file(os.path.join(tools.config['test_report_directory'], 'mrp_operations-barcode_report.'+format), 'wb+').write(data)
|
|
|
|
-
|
|
I print Workcenter's Barcode Report.
|
|
-
|
|
!python {model: mrp.workcenter}: |
|
|
import netsvc, tools, os
|
|
(data, format) = netsvc.LocalService('report.mrp.wc.barcode').create(cr, uid, [ref('mrp.mrp_workcenter_0'),ref('mrp.mrp_workcenter_1')], {}, {})
|
|
if tools.config['test_report_directory']:
|
|
file(os.path.join(tools.config['test_report_directory'], 'mrp_operations-workcenter_barcode_report.'+format), 'wb+').write(data)
|