From b6e0c973c47358676cc860ca1b5562ef7e5210a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Lodeiros?= Date: Sun, 17 Apr 2022 22:12:06 +0200 Subject: [PATCH] [IMP]pms: invoice line name automatic control --- pms/models/account_move_line.py | 47 ++++++++++---------------------- pms/models/folio_sale_line.py | 1 + pms/models/pms_folio.py | 2 +- pms/views/account_move_views.xml | 2 +- 4 files changed, 18 insertions(+), 34 deletions(-) diff --git a/pms/models/account_move_line.py b/pms/models/account_move_line.py index 9fee23ccf..f4cac7221 100644 --- a/pms/models/account_move_line.py +++ b/pms/models/account_move_line.py @@ -32,11 +32,11 @@ class AccountMoveLine(models.Model): check_pms_properties=True, ) name_changed_by_user = fields.Boolean( - string="Custom label", - readonly=False, - default=False, - store=True, - compute="_compute_name_changed_by_user", + string="Name set manually", + help="""Techinal field to know if the name was set manually by the user + or by the system. If the name was set manually, the system will not + change it when the qty days are changed""", + default=True, ) pms_property_id = fields.Many2one( name="Property", @@ -60,24 +60,16 @@ class AccountMoveLine(models.Model): @api.depends("quantity") def _compute_name(self): for record in self: - record.name = self.env["folio.sale.line"].generate_folio_sale_name( - record.folio_line_ids.reservation_id, - record.product_id, - record.folio_line_ids.service_id, - record.folio_line_ids.reservation_line_ids, - record.folio_line_ids.service_line_ids, - qty=record.quantity, - ) - # TODO: check why this code doesn't work - # if not record.name_changed_by_user: - # record.with_context(auto_name=True).name = self - # .env["folio.sale.line"].generate_folio_sale_name( - # record.folio_line_ids.service_id, - # record.folio_line_ids.reservation_line_ids, - # record.product_id, - # qty=record.quantity) - # record.with_context(auto_name=True) - # ._compute_name_changed_by_user() + if record.folio_line_ids and not record.name_changed_by_user: + record.name_changed_by_user = False + record.name = self.env["folio.sale.line"].generate_folio_sale_name( + record.folio_line_ids.reservation_id, + record.product_id, + record.folio_line_ids.service_id, + record.folio_line_ids.reservation_line_ids, + record.folio_line_ids.service_line_ids, + qty=record.quantity, + ) @api.depends("move_id") def _compute_pms_property_id(self): @@ -87,15 +79,6 @@ class AccountMoveLine(models.Model): elif not rec.pms_property_id: rec.pms_property_id = False - @api.depends("name") - def _compute_name_changed_by_user(self): - for record in self: - # if not record._context.get("auto_name"): - if not self._context.get("auto_name"): - record.name_changed_by_user = True - else: - record.name_changed_by_user = False - @api.depends( "folio_line_ids", "payment_id", diff --git a/pms/models/folio_sale_line.py b/pms/models/folio_sale_line.py index becea0ffc..1965b0c63 100644 --- a/pms/models/folio_sale_line.py +++ b/pms/models/folio_sale_line.py @@ -939,6 +939,7 @@ class FolioSaleLine(models.Model): "analytic_account_id": self.folio_id.analytic_account_id.id, "analytic_tag_ids": [(6, 0, self.analytic_tag_ids.ids)], "folio_line_ids": [(6, 0, [self.id])], + "name_changed_by_user": False, } if optional_values: res.update(optional_values) diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py index f0fdeb85a..dafffc482 100644 --- a/pms/models/pms_folio.py +++ b/pms/models/pms_folio.py @@ -1793,7 +1793,7 @@ class PmsFolio(models.Model): move = ( self.env["account.move"] .sudo() - .with_context(default_move_type="out_invoice", auto_name=True) + .with_context(default_move_type="out_invoice") .create(invoice_vals) ) moves += move diff --git a/pms/views/account_move_views.xml b/pms/views/account_move_views.xml index 201f78f36..2e332d289 100644 --- a/pms/views/account_move_views.xml +++ b/pms/views/account_move_views.xml @@ -23,7 +23,7 @@ expr="//field[@name='invoice_line_ids']/tree/field[@name='quantity']" position="before" > - +