mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP]pms: add payment/invoice origin reference
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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(
|
||||
_(
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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']"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user