- | In order to test "mrp_repair" module, I start with creating repair order, confirm it, and start repair. - | Given that I have already stock move line created. - !record {model: stock.move, id: stock_move_pcbasicpc0}: company_id: base.main_company date: '2010-06-24 20:10:28' date_expected: '2010-06-24 20:10:55' location_dest_id: stock.stock_location_stock 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 - | I start by creating new Repair order for "Basic Pc" product. - !record {model: mrp.repair, id: mrp_repair_rma0}: address_id: base.res_partner_address_1 guarantee_limit: '2010-06-24' 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_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 partner_id: base.res_partner_9 product_id: product.product_product_pc1 - | I check that Repair order is in "Draft" state. - !assert {model: mrp.repair, id: mrp_repair_rma0}: - state == 'draft' - | I confirm This Repair order. - !workflow {model: mrp.repair, action: repair_confirm, ref: mrp_repair_rma0} - | I start the repairing process by click on "Start Repair" Button. - !workflow {model: mrp.repair, action: repair_ready, ref: mrp_repair_rma0} - | I check that state is "Under Repair". - !assert {model: mrp.repair, id: mrp_repair_rma0}: - 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_rma0} - | I select invoiced after repair option in this "RMA00004" 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_rma0")]}) - | I check that Invoice is created for this repair order. - !python {model: mrp.repair}: | obj_lines = self.pool.get('account.invoice.line') inv_obj = self.pool.get('account.invoice') repair_id = self.browse(cr, uid, [ref('mrp_repair_rma0')], context=context)[0] invoice_ids = inv_obj.search(cr, uid, [('partner_id', '=', repair_id.partner_id.id)]) invoice_id = inv_obj.browse(cr, uid, invoice_ids)[0] assert repair_id.partner_id.id == invoice_id.partner_id.id, "No invoice existing for the same partner"