-
  I create Bill of Materials with one service type product and one consumable product.
-
  !record {model: mrp.bom, id: mrp_bom_test1}:
    company_id: base.main_company
    name: PC Assemble SC234
    product_id: product.product_product_3
    product_qty: 1.0
    type: normal
    bom_lines:
      - company_id: base.main_company
        name: On Site Assistance
        product_id: product.product_product_2
        product_qty: 1.0
      - company_id: base.main_company
        name: GrapWorks Software
        product_id: product.product_product_44
        product_qty: 1.0
-
  I make the production order using BoM having one service type product and one consumable product.
-
  !record {model: mrp.production, id: mrp_production_servicetype_mo1}:
    product_id: product.product_product_5
    product_qty: 1.0
    bom_id: mrp_bom_test1
    date_planned: !eval time.strftime('%Y-%m-%d %H:%M:%S')
-
  I compute the data of production order.
-
  !python {model: mrp.production}: |
    self.action_compute(cr, uid, [ref("mrp_production_servicetype_mo1")], {"lang": "en_US", "tz": False, "search_default_Current": 1,
      "active_model": "ir.ui.menu", "active_ids": [ref("mrp.menu_mrp_production_action")],
      "active_id": ref("mrp.menu_mrp_production_action"), })
-
  I confirm the production order.
-
  !workflow {model: mrp.production, action: button_confirm, ref: mrp_production_servicetype_mo1}
-
  I confirm the Consume Products.
-
  !python {model: mrp.production}: |
    order = self.browse(cr, uid, ref("mrp_production_servicetype_mo1"))
    assert order.state == 'confirmed', "Production order should be confirmed."
    for move_line in order.move_lines:
        move_line.action_consume(move_line.product_qty)
-
  I processed the Product Entirely.
-
  !python {model: mrp.production}: |
    order = self.browse(cr, uid, ref("mrp_production_servicetype_mo1"))
    assert order.state == 'in_production', 'Production order should be in production State.'
    for move_created in order.move_created_ids:
        move_created.action_done()
-
  I produce product.
-
  !python {model: mrp.product.produce}: |
    context.update({'active_id': ref('mrp_production_servicetype_mo1')})
-
  !record {model: mrp.product.produce, id: mrp_product_produce_1}:
    mode: 'consume_produce'
-
  !python {model: mrp.product.produce}: |
    self.do_produce(cr, uid, [ref('mrp_product_produce_1')], context=context)
-
  I check production order after produced.
-
  !python {model: mrp.production}: |
    order = self.browse(cr, uid, ref("mrp_production_servicetype_mo1"))
    assert order.state == 'done', "Production order should be closed."
-
  I create Bill of Materials with two service type products.
-
  !record {model: mrp.bom, id: mrp_bom_test_2}:
    company_id: base.main_company
    name: PC Assemble SC234
    product_id: product.product_product_3
    product_qty: 1.0
    type: normal
    bom_lines:
      - company_id: base.main_company
        name: On Site Monitoring
        product_id: product.product_product_1
        product_qty: 1.0
      - company_id: base.main_company
        name: On Site Assistance
        product_id: product.product_product_2
        product_qty: 1.0
-
  I make the production order using BoM having two service type products.
-
  !record {model: mrp.production, id: mrp_production_servicetype_2}:
    product_id: product.product_product_5
    product_qty: 1.0
    bom_id: mrp_bom_test_2
    date_planned: !eval time.strftime('%Y-%m-%d %H:%M:%S')
-
  I compute the data of production order.
-
  !python {model: mrp.production}: |
    self.action_compute(cr, uid, [ref("mrp_production_servicetype_2")], {"lang": "en_US", "tz": False, "search_default_Current": 1,
      "active_model": "ir.ui.menu", "active_ids": [ref("mrp.menu_mrp_production_action")],
      "active_id": ref("mrp.menu_mrp_production_action"), })
-
  I confirm the production order.
-
  !workflow {model: mrp.production, action: button_confirm, ref: mrp_production_servicetype_2}
-
  Now I start production.
-
  !workflow {model: mrp.production, action: button_produce, ref: mrp_production_servicetype_2}
-
  I check that production order in production state after start production.
-
  !python {model: mrp.production}: |
    order = self.browse(cr, uid, ref("mrp_production_servicetype_2"))
    assert order.state == 'in_production', 'Production order should be in production State.'
-
  I produce product.
-
  !python {model: mrp.product.produce}: |
    context.update({'active_id': ref('mrp_production_servicetype_2')})
-
  !record {model: mrp.product.produce, id: mrp_product_produce_2}:
    mode: 'consume_produce'
-
  !python {model: mrp.product.produce}: |
    self.do_produce(cr, uid, [ref('mrp_product_produce_2')], context=context)
-
  I check production order after produced.
-
  !python {model: mrp.production}: |
    order = self.browse(cr, uid, ref("mrp_production_servicetype_2"))
    assert order.state == 'done', "Production order should be closed."
