From 4e4fa388805a25a9535118e02cc728fd8acf7868 Mon Sep 17 00:00:00 2001 From: Cedric Snauwaert Date: Mon, 2 May 2016 15:08:02 +0200 Subject: [PATCH] [ADD] hr_expense: add accounting_date field, when generating accounting entries it will take this field if set, otherwise take expense_date field --- addons/hr_expense/models/hr_expense.py | 8 +++++--- addons/hr_expense/views/hr_expense_views.xml | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py index afe03f8dc0d..15fc0473d3e 100644 --- a/addons/hr_expense/models/hr_expense.py +++ b/addons/hr_expense/models/hr_expense.py @@ -16,6 +16,7 @@ class HrExpense(models.Model): name = fields.Char(string='Expense Description', readonly=True, required=True, states={'draft': [('readonly', False)]}) date = fields.Date(readonly=True, states={'draft': [('readonly', False)]}, default=fields.Date.context_today, string="Date") + accounting_date = fields.Date(readonly=True, states={'draft': [('readonly', False)]}, string='Accounting Date') employee_id = fields.Many2one('hr.employee', string="Employee", required=True, readonly=True, states={'draft': [('readonly', False)]}, default=lambda self: self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)) product_id = fields.Many2one('product.product', string='Product', readonly=True, states={'draft': [('readonly', False)]}, domain=[('can_be_expensed', '=', True)], required=True) product_uom_id = fields.Many2one('product.uom', string='Unit of Measure', required=True, readonly=True, states={'draft': [('readonly', False)]}, default=lambda self: self.env['product.uom'].search([], limit=1, order='id')) @@ -214,8 +215,9 @@ class HrExpense(models.Model): journal_dict = {} maxdate = False for expense in self: - if expense.date > maxdate: - maxdate = expense.date + acc_date = expense.accounting_date or expense.date + if acc_date > maxdate: + maxdate = acc_date jrn = expense.bank_journal_id if expense.payment_mode == 'company_account' else expense.journal_id journal_dict.setdefault(jrn, []) journal_dict[jrn].append(expense) @@ -249,7 +251,7 @@ class HrExpense(models.Model): 'name': expense.employee_id.name, 'price': total, 'account_id': emp_account, - 'date_maturity': expense.date, + 'date_maturity': expense.accounting_date or expense.date, 'amount_currency': diff_currency_p and total_currency or False, 'currency_id': diff_currency_p and expense.currency_id.id or False, 'ref': expense.employee_id.address_home_id.ref or False diff --git a/addons/hr_expense/views/hr_expense_views.xml b/addons/hr_expense/views/hr_expense_views.xml index f54d374b22a..cdbc60bfa3d 100644 --- a/addons/hr_expense/views/hr_expense_views.xml +++ b/addons/hr_expense/views/hr_expense_views.xml @@ -82,6 +82,7 @@ +