diff --git a/addons/account/data/mail_template_data.xml b/addons/account/data/mail_template_data.xml index 574ed6fe56e..2d30ca90879 100644 --- a/addons/account/data/mail_template_data.xml +++ b/addons/account/data/mail_template_data.xml @@ -8,7 +8,7 @@ Invoice: Send by email - ${(object.user_id.email_formatted or user.email_formatted) |safe} + ${(object.invoice_user_id.email_formatted or user.email_formatted) |safe} ${object.partner_id.id} ${object.company_id.name} Invoice (Ref ${object.name or 'n/a'}) @@ -21,7 +21,7 @@ ${object.partner_id.name}, % endif

- Here is your + Here is your % if object.name: invoice ${object.name} % else: diff --git a/addons/account/models/account.py b/addons/account/models/account.py index bf8dafbbb58..868c3ac8d1d 100644 --- a/addons/account/models/account.py +++ b/addons/account/models/account.py @@ -556,7 +556,7 @@ class AccountJournal(models.Model): help='The next sequence number will be used for the next invoice.', compute='_compute_seq_number_next', inverse='_inverse_seq_number_next') - refund_sequence_number_next = fields.Integer(string='Credit Notes: Next Number', + refund_sequence_number_next = fields.Integer(string='Credit Notes Next Number', help='The next sequence number will be used for the next credit note.', compute='_compute_refund_seq_number_next', inverse='_inverse_refund_seq_number_next') @@ -686,6 +686,10 @@ class AccountJournal(models.Model): if not self.default_debit_account_id: self.default_debit_account_id = self.default_credit_account_id + @api.onchange('type') + def _onchange_type(self): + self.refund_sequence = self.type in ('sale', 'purchase') + def _get_alias_values(self, type, alias_name=None): if not alias_name: alias_name = self.name @@ -872,6 +876,7 @@ class AccountJournal(models.Model): if not vals['code']: raise UserError(_("Cannot generate an unused journal code. Please fill the 'Shortcode' field.")) + # Create a default debit/credit account if not given default_account = vals.get('default_debit_account_id') or vals.get('default_credit_account_id') company = self.env['res.company'].browse(company_id) @@ -886,6 +891,8 @@ class AccountJournal(models.Model): if not vals.get('loss_account_id'): vals['loss_account_id'] = company.default_cash_difference_expense_account_id.id + if 'refund_sequence' not in vals: + vals['refund_sequence'] = vals['type'] in ('sale', 'purchase') # We just need to create the relevant sequences according to the chosen options if not vals.get('sequence_id'): diff --git a/addons/account/static/src/xml/account_payment.xml b/addons/account/static/src/xml/account_payment.xml index 408681ecde8..530b7fbda26 100644 --- a/addons/account/static/src/xml/account_payment.xml +++ b/addons/account/static/src/xml/account_payment.xml @@ -14,15 +14,15 @@ - Add + Add -
+
- + Paid on @@ -33,7 +33,7 @@ - + @@ -70,7 +70,7 @@ - + diff --git a/addons/account/tests/test_account_move_in_refund.py b/addons/account/tests/test_account_move_in_refund.py index 7fc49e62eaa..e89b81c98a7 100644 --- a/addons/account/tests/test_account_move_in_refund.py +++ b/addons/account/tests/test_account_move_in_refund.py @@ -11,7 +11,7 @@ class TestAccountMoveInRefundOnchanges(InvoiceTestCommon): @classmethod def setUpClass(cls): super(TestAccountMoveInRefundOnchanges, cls).setUpClass() - + cls.invoice = cls.init_invoice('in_refund') cls.product_line_vals_1 = { @@ -813,7 +813,7 @@ class TestAccountMoveInRefundOnchanges(InvoiceTestCommon): def test_in_refund_line_onchange_sequence_number_1(self): self.assertRecordValues(self.invoice, [{ 'invoice_sequence_number_next': '0001', - 'invoice_sequence_number_next_prefix': 'BILL/2019/', + 'invoice_sequence_number_next_prefix': 'RBILL/2019/', }]) move_form = Form(self.invoice) @@ -822,17 +822,17 @@ class TestAccountMoveInRefundOnchanges(InvoiceTestCommon): self.assertRecordValues(self.invoice, [{ 'invoice_sequence_number_next': '0042', - 'invoice_sequence_number_next_prefix': 'BILL/2019/', + 'invoice_sequence_number_next_prefix': 'RBILL/2019/', }]) self.invoice.post() - self.assertRecordValues(self.invoice, [{'name': 'BILL/2019/0042'}]) + self.assertRecordValues(self.invoice, [{'name': 'RBILL/2019/0042'}]) invoice_copy = self.invoice.copy() invoice_copy.post() - self.assertRecordValues(invoice_copy, [{'name': 'BILL/2019/0043'}]) + self.assertRecordValues(invoice_copy, [{'name': 'RBILL/2019/0043'}]) def test_in_refund_onchange_past_invoice_1(self): copy_invoice = self.invoice.copy() diff --git a/addons/account/tests/test_account_move_out_refund.py b/addons/account/tests/test_account_move_out_refund.py index 6d7c38d5ca3..5d446553d61 100644 --- a/addons/account/tests/test_account_move_out_refund.py +++ b/addons/account/tests/test_account_move_out_refund.py @@ -11,7 +11,7 @@ class TestAccountMoveOutRefundOnchanges(InvoiceTestCommon): @classmethod def setUpClass(cls): super(TestAccountMoveOutRefundOnchanges, cls).setUpClass() - + cls.invoice = cls.init_invoice('out_refund') cls.product_line_vals_1 = { @@ -813,7 +813,7 @@ class TestAccountMoveOutRefundOnchanges(InvoiceTestCommon): def test_out_refund_line_onchange_sequence_number_1(self): self.assertRecordValues(self.invoice, [{ 'invoice_sequence_number_next': '0001', - 'invoice_sequence_number_next_prefix': 'INV/2019/', + 'invoice_sequence_number_next_prefix': 'RINV/2019/', }]) move_form = Form(self.invoice) @@ -822,17 +822,17 @@ class TestAccountMoveOutRefundOnchanges(InvoiceTestCommon): self.assertRecordValues(self.invoice, [{ 'invoice_sequence_number_next': '0042', - 'invoice_sequence_number_next_prefix': 'INV/2019/', + 'invoice_sequence_number_next_prefix': 'RINV/2019/', }]) self.invoice.post() - self.assertRecordValues(self.invoice, [{'name': 'INV/2019/0042'}]) + self.assertRecordValues(self.invoice, [{'name': 'RINV/2019/0042'}]) invoice_copy = self.invoice.copy() invoice_copy.post() - self.assertRecordValues(invoice_copy, [{'name': 'INV/2019/0043'}]) + self.assertRecordValues(invoice_copy, [{'name': 'RINV/2019/0043'}]) def test_out_refund_create_1(self): # Test creating an account_move with the least information. diff --git a/addons/account/views/account_journal_dashboard_view.xml b/addons/account/views/account_journal_dashboard_view.xml index ee9abde452a..691354faa0f 100644 --- a/addons/account/views/account_journal_dashboard_view.xml +++ b/addons/account/views/account_journal_dashboard_view.xml @@ -129,7 +129,7 @@ diff --git a/addons/account/views/account_move_views.xml b/addons/account/views/account_move_views.xml index 2e1ddf8c48f..a59a00f0e8d 100644 --- a/addons/account/views/account_move_views.xml +++ b/addons/account/views/account_move_views.xml @@ -518,6 +518,7 @@
+ Draft Invoice Draft Credit Note Draft Bill diff --git a/addons/account/views/report_invoice.xml b/addons/account/views/report_invoice.xml index 0481b1a5be5..f53c9a677d6 100644 --- a/addons/account/views/report_invoice.xml +++ b/addons/account/views/report_invoice.xml @@ -40,6 +40,10 @@ Customer Code:

+
+ Reference: +

+

@@ -164,7 +168,7 @@ -

+

Please use the following communication for your payment :