From 26a9b2318b47edee9df480a737c85a8e9641b0aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Lodeiros?= Date: Sat, 19 Mar 2022 17:06:20 +0100 Subject: [PATCH] [IMP]pms: add payment/invoice origin reference --- pms/i18n/pms.pot | 5 ---- pms/models/account_move.py | 8 +++++-- pms/models/account_payment.py | 4 ++++ pms/models/pms_folio.py | 29 +++++++++++++++++++---- pms/report/pms_folio_templates.xml | 4 ++-- pms/views/account_payment_views.xml | 6 +++++ pms/views/pms_folio_views.xml | 5 +++- pms/wizards/folio_make_invoice_advance.py | 2 +- 8 files changed, 48 insertions(+), 15 deletions(-) diff --git a/pms/i18n/pms.pot b/pms/i18n/pms.pot index 71188ab0b..64e050871 100644 --- a/pms/i18n/pms.pot +++ b/pms/i18n/pms.pot @@ -2920,11 +2920,6 @@ msgstr "" msgid "Customer Ref" msgstr "" -#. module: pms -#: model:ir.model.fields,field_description:pms.field_pms_folio__client_order_ref -msgid "Customer Reference" -msgstr "" - #. module: pms #: model:ir.model.fields,field_description:pms.field_folio_advance_payment_inv__deposit_taxes_id #: model:ir.model.fields,field_description:pms.field_pms_room_type__taxes_id diff --git a/pms/models/account_move.py b/pms/models/account_move.py index 3ff2e0ab8..f558c8ee9 100644 --- a/pms/models/account_move.py +++ b/pms/models/account_move.py @@ -319,8 +319,12 @@ class AccountMove(models.Model): Check invoice and receipts legal status """ self.ensure_one() - if not self.journal_id.is_simplified_invoice and ( - not self.partner_id or not self.partner_id._check_enought_invoice_data() + if ( + move.is_invoice(include_receipts=True) + and not self.journal_id.is_simplified_invoice + and ( + not self.partner_id or not self.partner_id._check_enought_invoice_data() + ) ): raise UserError( _( diff --git a/pms/models/account_payment.py b/pms/models/account_payment.py index 213f20fdd..664111aad 100644 --- a/pms/models/account_payment.py +++ b/pms/models/account_payment.py @@ -26,6 +26,10 @@ class AccountPayment(models.Model): store=True, readonly=True, ) + origin_reference = fields.Char( + string="Origin Reference", + help="The reference of the payment origin", + ) @api.depends("reconciled_invoice_ids", "reconciled_bill_ids") def _compute_origin_agency_id(self): diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py index 239567cb0..ce452dfa1 100644 --- a/pms/models/pms_folio.py +++ b/pms/models/pms_folio.py @@ -35,6 +35,10 @@ class PmsFolio(models.Model): index=True, default=lambda self: _("New"), ) + external_reference = fields.Char( + string="External Reference", + help="Reference of this folio in an external system", + ) pms_property_id = fields.Many2one( string="Property", help="The property for folios", @@ -296,7 +300,6 @@ class PmsFolio(models.Model): comodel_name="res.partner.category", ondelete="restrict", ) - client_order_ref = fields.Char(string="Customer Reference", help="", copy=False) reservation_type = fields.Selection( string="Type", help="The type of the reservation. " @@ -1766,7 +1769,7 @@ class PmsFolio(models.Model): ) invoice_vals = { - "ref": self.client_order_ref or "", + "ref": self.name or "", "move_type": "out_invoice", "narration": self.note, "currency_id": self.pricelist_id.currency_id.id, @@ -1779,11 +1782,11 @@ class PmsFolio(models.Model): "journal_id": journal.id, # company comes from the journal "invoice_origin": self.name, "invoice_payment_term_id": self.payment_term_id.id, - "payment_reference": self.reference, "transaction_ids": [(6, 0, self.transaction_ids.ids)], "folio_ids": [(6, 0, [self.id])], "invoice_line_ids": [], "company_id": self.company_id.id, + "payment_reference": self.external_reference or self.reference, } return invoice_vals @@ -1822,13 +1825,23 @@ class PmsFolio(models.Model): "partner_id": partner.id, "amount": amount, "date": date or fields.Date.today(), - "ref": folio.name, + "ref": folio.name + " - " + folio.external_reference, "folio_ids": [(6, 0, [folio.id])], "payment_type": "inbound", "partner_type": "customer", "state": "draft", + "origin_reference": folio.external_reference, } pay = self.env["account.payment"].create(vals) + pay.message_post_with_view( + "mail.message_origin_link", + values={ + "self": pay, + "origin": folio, + }, + subtype_id=self.env.ref("mail.mt_note").id, + ) + pay.action_post() # Review: force to autoreconcile payment with invoices already created @@ -1901,6 +1914,14 @@ class PmsFolio(models.Model): "state": "draft", } pay = self.env["account.payment"].create(vals) + pay.message_post_with_view( + "mail.message_origin_link", + values={ + "self": pay, + "origin": folio, + }, + subtype_id=self.env.ref("mail.mt_note").id, + ) pay.action_post() # Automatic register refund in cash register diff --git a/pms/report/pms_folio_templates.xml b/pms/report/pms_folio_templates.xml index a9f4ea018..56c62db6e 100644 --- a/pms/report/pms_folio_templates.xml +++ b/pms/report/pms_folio_templates.xml @@ -43,9 +43,9 @@
-
+
Your Reference: -

+

+ @@ -26,6 +30,7 @@ + @@ -37,6 +42,7 @@ + + -