-
  In order to test hr_expenses for OpenERP, I create expenses for employee and manage employee's expenses.
-
  I create an unit of measure category "Working Time".
-
  !record {model: product.uom.categ, id: product_uom_categ_workingtime0}:
    name: Working Time.

-
  I create a new employee.
-
  !record {model: hr.employee, id: hr.employee1}:
    address_home_id: base.res_partner_address_1
    address_id: base.main_address
-
  I create product unit of measure "Hour".
-
  !record {model: product.uom, id: product_uom_hour0}:
    category_id: 'product_uom_categ_workingtime0'
    factor: 8.0
    name: Hour
    rounding: 0.01
-
   I Create a product "travel".
-
  !record {model: product.product, id: product_product_travel0}:
    categ_id: product.product_category_services
    cost_method: standard
    hr_expense_ok: 1
    list_price: 800.0
    mes_type: fixed
    name: Travel
    procure_method: make_to_stock
    standard_price: 700.0
    supply_method: buy
    type: product
    uom_id: 'product_uom_hour0'
    uom_po_id: 'product_uom_hour0'
    volume: 0.0
    warranty: 0.0
    weight: 0.0
    weight_net: 0.0

-
  I create an expense.
-
  !record {model: hr.expense.expense, id: hr_expense_expense_september0}:
    company_id: base.main_company
    currency_id: base.EUR
    date: !eval "'%s-05-05' %(datetime.now().year)"
    employee_id: hr.employee1
    name: September Expenses
    line_ids:
      - date_value: !eval "'%s-05-27' %(datetime.now().year)"
        name: Travel
        product_id: 'product_product_travel0'
        sequence: 0.0
        uom_id: product.product_uom_unit
        unit_amount: 700.0
    user_id: base.user_root
-
  I check that expense is in "Draft" state.
-
  !assert {model: hr.expense.expense, id: hr_expense_expense_september0}:
    - state == 'draft'
-
  I confirm this expenses by click on "Confirm" button.
-
  !workflow {model: hr.expense.expense, action: confirm, ref: hr_expense_expense_september0}

-
  I check that state is "Waiting Confirmation".
-
  !assert {model: hr.expense.expense, id: hr_expense_expense_september0}:
    - state == 'confirm'
-
  I accept this expense by click on "Accept" button.
-
  !workflow {model: hr.expense.expense, action: validate, ref: hr_expense_expense_september0}

-
  I invoiced this expense by click on "Invoice" button.
-
  !workflow {model: hr.expense.expense, action: invoice, ref: hr_expense_expense_september0}

-
  I check that state is "Invoiced"
-
  !assert {model: hr.expense.expense, id: hr_expense_expense_september0}:
    - state == 'invoiced'
-
  I check that Invoice is created for the expense.
-
  !python {model: hr.expense.expense}: |
    exp = self.browse(cr, uid, [ref('hr_expense_expense_september0')])[0]
    assert exp.invoice_id, "Invoice should be created"
