- 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"