[ADD] hr_expense: add accounting_date field, when generating accounting entries it will take this field if set, otherwise take expense_date field

This commit is contained in:
Cedric Snauwaert
2016-05-02 15:38:14 +02:00
parent c220c22fbd
commit 4e4fa38880
2 changed files with 6 additions and 3 deletions
+5 -3
View File
@@ -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
@@ -82,6 +82,7 @@
<field name="tax_ids" widget="many2many_tags" groups="account.group_account_user"/>
</group><group>
<field name="date"/>
<field name="accounting_date"/>
<field name="employee_id"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="department_id" invisible="1"/>