[IMP]pms: add payment/invoice origin reference

This commit is contained in:
Darío Lodeiros
2022-03-19 17:06:20 +01:00
parent 194320e3d9
commit 26a9b2318b
8 changed files with 48 additions and 15 deletions

View File

@@ -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

View File

@@ -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(
_(

View File

@@ -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):

View File

@@ -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

View File

@@ -43,9 +43,9 @@
</h2>
<div class="row mt32 mb32" id="informations">
<div t-if="doc.client_order_ref" class="col-auto col-3 mw-100 mb-2">
<div t-if="doc.name" class="col-auto col-3 mw-100 mb-2">
<strong>Your Reference:</strong>
<p class="m-0" t-field="doc.client_order_ref" />
<p class="m-0" t-field="doc.name" />
</div>
<div
t-if="doc.date_order and doc.state not in ['draft','sent']"

View File

@@ -14,6 +14,10 @@
name="origin_agency_id"
attrs="{'invisible':[('origin_agency_id','=',False)]}"
/>
<field
name="origin_reference"
attrs="{'invisible':[('origin_agency_id','=',False)]}"
/>
</xpath>
</field>
</record>
@@ -26,6 +30,7 @@
<field name="folio_ids" optional="hidden" />
<field name="pms_property_id" optional="hidden" />
<field name="origin_agency_id" optional="hidden" />
<field name="origin_reference" optional="hidden" />
</xpath>
</field>
</record>
@@ -37,6 +42,7 @@
<xpath expr="//field[@name='journal_id']" position="after">
<field name="pms_property_id" />
<field name="origin_agency_id" />
<field name="origin_reference" />
</xpath>
<xpath expr="//filter[@name='company']" position="after">
<filter

View File

@@ -329,6 +329,10 @@
name="agency_id"
attrs="{'invisible': [('reservation_type', 'not in', 'normal')]}"
/>
<field
name="external_reference"
attrs="{'invisible': [('agency_id', '=', False)]}"
/>
<field
name="channel_type_id"
attrs="{'readonly':[('agency_id','!=', False)], 'invisible':[('reservation_type', 'not in', 'normal')]}"
@@ -564,7 +568,6 @@
<page string="Other data">
<group>
<field name="user_id" />
<field name="client_order_ref" />
</group>
</page>
<!-- <page string="Foreign Exchange" name="foreign exchange" invisible="1">

View File

@@ -153,7 +153,7 @@ class FolioAdvancePaymentInv(models.TransientModel):
def _prepare_invoice_values(self, order, name, amount, line):
invoice_vals = {
"ref": order.client_order_ref,
"ref": order.name,
"move_type": "out_invoice",
"invoice_origin": order.name,
"invoice_user_id": order.user_id.id,