diff options
| author | Nicolas Martinelli <nim@odoo.com> | 2017-09-01 14:31:54 +0200 |
|---|---|---|
| committer | Nicolas Martinelli <nim@odoo.com> | 2017-09-04 08:22:40 +0200 |
| commit | 5d1dafbf9b05c690288083a85bf0a67561bd5949 (patch) | |
| tree | 7edbfc22bf89bbd6f62d063f0daac5224d80276d | |
| parent | 0e0771e319f9f9843fb9c84d247e2f13ff9f3437 (diff) | |
[FIX] hr_expense: prevent deletion of posted expense
Prevent the deletion of expense or expense sheet if they are linked to a
journal entry.
Closes #19128
Closes #19044
opw-767549
| -rw-r--r-- | addons/hr_expense/i18n/hr_expense.pot | 8 | ||||
| -rw-r--r-- | addons/hr_expense/models/hr_expense.py | 11 | ||||
| -rw-r--r-- | addons/hr_expense/security/ir_rule.xml | 20 |
3 files changed, 16 insertions, 23 deletions
diff --git a/addons/hr_expense/i18n/hr_expense.pot b/addons/hr_expense/i18n/hr_expense.pot index db423e344e7..b26c16e88da 100644 --- a/addons/hr_expense/i18n/hr_expense.pot +++ b/addons/hr_expense/i18n/hr_expense.pot @@ -1290,7 +1290,13 @@ msgid "You cannot delete a posted expense." msgstr "" #. module: hr_expense -#: code:addons/hr_expense/models/hr_expense.py:559 +#: code:addons/hr_expense/models/hr_expense.py:446 +#, python-format +msgid "You cannot delete a posted or paid expense." +msgstr "" + +#. module: hr_expense +#: code:addons/hr_expense/models/hr_expense.py:576 #, python-format msgid "You cannot have a positive and negative amounts on the same expense report." msgstr "" diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py index 3a5b0eab4db..12a6eabf0cb 100644 --- a/addons/hr_expense/models/hr_expense.py +++ b/addons/hr_expense/models/hr_expense.py @@ -294,6 +294,13 @@ class HrExpense(models.Model): return account_move @api.multi + def unlink(self): + for expense in self: + if expense.state in ['done']: + raise UserError(_('You cannot delete a posted expense.')) + super(HrExpense, self).unlink() + + @api.multi def action_get_attachment_view(self): self.ensure_one() res = self.env['ir.actions.act_window'].for_xml_id('base', 'action_attachment') @@ -435,8 +442,8 @@ class HrExpenseSheet(models.Model): @api.multi def unlink(self): for expense in self: - if expense.state == "post": - raise UserError(_("You cannot delete a posted expense.")) + if expense.state in ['post', 'done']: + raise UserError(_('You cannot delete a posted or paid expense.')) super(HrExpenseSheet, self).unlink() @api.multi diff --git a/addons/hr_expense/security/ir_rule.xml b/addons/hr_expense/security/ir_rule.xml index e86d91211d8..61aba78d7ed 100644 --- a/addons/hr_expense/security/ir_rule.xml +++ b/addons/hr_expense/security/ir_rule.xml @@ -26,26 +26,6 @@ <field eval="True" name="global"/> <field name="domain_force">['|',('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field> </record> - <record id="hr_expense_report_prevent_unlink" model="ir.rule"> - <field name="name">Expense Report Prevent Delete Employee</field> - <field name="model_id" ref="model_hr_expense_sheet"/> - <field name="domain_force">[('state', '=', 'submit')]</field> - <field name="groups" eval="[(4, ref('base.group_user'))]"/> - <field name="perm_read" eval="False"/> - <field name="perm_write" eval="False"/> - <field name="perm_create" eval="False"/> - <field name="perm_unlink" eval="True"/> - </record> - <record id="hr_expense_report_auth_unlink" model="ir.rule"> - <field name="name">Expense Report Authorize Delete Officer</field> - <field name="model_id" ref="model_hr_expense_sheet"/> - <field name="domain_force">[(1, '=', 1)]</field> - <field name="groups" eval="[(4, ref('hr_expense.group_hr_expense_user'))]"/> - <field name="perm_read" eval="False"/> - <field name="perm_write" eval="False"/> - <field name="perm_create" eval="False"/> - <field name="perm_unlink" eval="True"/> - </record> </data> </odoo> |
