-
  In order to test the procurement with product type buy in OpenERP, I will create product 
  and then I will create procurement for this product.
-        
  I create  product.
- 
  !record {model: product.product, id: product_product_cddrive0}:
    categ_id: product.product_category_3
    cost_method: standard
    mes_type: fixed
    name: CD drive
    procure_method: make_to_order
    supply_method: buy
    type: product
    seller_delay: '1'
    standard_price: 100.0
    supply_method: buy
    uom_id: product.product_uom_unit
    uom_po_id: product.product_uom_unit
    volume: 0.0
    warranty: 0.0
    weight: 0.0
    weight_net: 0.0
    seller_delay: '1'
    seller_ids:
      - delay: 1
        name: base.res_partner_asus
        min_qty: 2.0
        qty: 5.0
-  
  I create  procurement order.
- 
  !record {model: procurement.order, id: procurement_order_testcase0}:
    company_id: base.main_company
    date_planned: '2010-07-07 15:38:53'
    location_id: stock.stock_location_stock
    name: Test Case
    priority: '1'
    procure_method: make_to_order
    product_id: product_product_cddrive0
    product_qty: 5.0
    product_uom: product.product_uom_unit
    product_uos: product.product_uom_unit
    product_uos_qty: 0.0
    state: draft
- 
  I confirm on procurement order.
- 
  !workflow {model: procurement.order, action: button_confirm, ref: procurement_order_testcase0}
- 
  I run the scheduler.
- 
  !function {model: procurement.order, name: run_scheduler}:
    - model: procurement.order
      search: "[]"
-
  I check that  purchase order is generated.
-
  !python {model: procurement.order}: |
    from tools.translate import _
    proc_ids = self.browse(cr, uid, [ref('procurement_order_testcase0')])[0]
    assert(proc_ids.purchase_id), _('Purchase Order is not Created!')
-
  I check the state is running.
-
  !python {model: procurement.order}: |
    from tools.translate import _
    proc_ids = self.browse(cr, uid, [ref('procurement_order_testcase0')])[0]
    assert(proc_ids.state == 'running'), _('Exception') 
- 
  I confirm  and Approve the purchase order.
- 
  !python {model: purchase.order}: |
    procurement_obj = self.pool.get('procurement.order')
    proc_ids = procurement_obj.browse(cr, uid, [ref('procurement_order_testcase0')])[0]
    import netsvc
    wf_service = netsvc.LocalService("workflow")
    wf_service.trg_validate(uid, 'purchase.order',proc_ids.purchase_id.id,'purchase_confirm', cr)  
    wf_service.trg_validate(uid, 'purchase.order',proc_ids.purchase_id.id,'purchase_approve', cr)  
-   
  I receive the order of the supplier ASUStek from the Incoming Shipments menu.
-   
  !python {model: stock.picking }: |
   import time
   procurement_obj = self.pool.get('procurement.order')
   proc_ids = procurement_obj.browse(cr, uid, [ref('procurement_order_testcase0')])[0]
   picking_ids = self.search(cr, uid, [('purchase_id', '=', proc_ids.purchase_id.id),('type','=','in')])
   pickings = self.browse(cr, uid, picking_ids)
   for picking in pickings:
      move = picking.move_lines[0]
      partial_datas = {
            'partner_id': picking.address_id.partner_id.id,
            'address_id': picking.address_id.id,
            'delivery_date' : time.strftime('%Y-%m-%d')
           }
      partial_datas['move%s'%(move.id)]= {
          'product_id': move.product_id,
          'product_qty': move.product_qty,
          'product_uom': move.product_uom.id,
      } 
      self.do_partial(cr, uid, [picking.id], partial_datas)
-
  I confirm the Reservation.
-
  !python {model: stock.move }: |
   procurement_obj = self.pool.get('procurement.order')
   proc_ids = procurement_obj.browse(cr, uid, [ref('procurement_order_testcase0')])[0]
   self.action_done(cr,uid,[proc_ids.move_id.id])
-
  I check the state is Done.
-
  !python {model: procurement.order}: |
    from tools.translate import _
    proc_ids = self.browse(cr, uid, [ref('procurement_order_testcase0')])[0]
    assert(proc_ids.state == 'done'), _('Order is not in done state') 
