From 797b7613dbd1dea3e183c8736b33abc46cf87878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Lodeiros?= Date: Sat, 19 Mar 2022 12:47:47 +0100 Subject: [PATCH] [IMP]pms: add document type vat equivalent field --- pms/__manifest__.py | 1 + pms/models/__init__.py | 1 + pms/models/res_partner.py | 17 +++++++++++++---- pms/models/res_partner_id_category.py | 11 +++++++++++ pms/views/res_partner_id_category.xml | 15 +++++++++++++++ pms_l10n_es/data/pms_data.xml | 1 + 6 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 pms/models/res_partner_id_category.py create mode 100644 pms/views/res_partner_id_category.xml diff --git a/pms/__manifest__.py b/pms/__manifest__.py index a14528989..ce1b011e1 100644 --- a/pms/__manifest__.py +++ b/pms/__manifest__.py @@ -90,6 +90,7 @@ "views/precheckin_portal_templates.xml", "wizards/wizard_massive_changes.xml", "wizards/wizard_advanced_filters.xml", + "views/res_partner_id_category.xml", "views/payment_transaction_views.xml", "views/account_move_line_views.xml", ], diff --git a/pms/models/__init__.py b/pms/models/__init__.py index 8ee809acd..f70ee90e0 100644 --- a/pms/models/__init__.py +++ b/pms/models/__init__.py @@ -46,3 +46,4 @@ from . import pms_availability from . import res_partner_id_number from . import pms_automated_mails from . import payment_transaction +from . import res_partner_id_category diff --git a/pms/models/res_partner.py b/pms/models/res_partner.py index e165317c9..8c35dcae3 100644 --- a/pms/models/res_partner.py +++ b/pms/models/res_partner.py @@ -198,7 +198,11 @@ class ResPartner(models.Model): vat_document_types = [ ("vat", _("VAT")), ] - document_categories = self.env["res.partner.id_category"].search([]) + document_categories = self.env["res.partner.id_category"].search( + [ + ("is_vat_equivalent", "=", False), + ] + ) for doc_type in document_categories: vat_document_types.append((doc_type.name, doc_type.name)) return vat_document_types @@ -444,7 +448,6 @@ class ResPartner(models.Model): def _compute_vat_document_type(self): self.vat_document_type = False for record in self.filtered("vat"): - record.vat_document_type = "vat" document = record.id_numbers.filtered("vat_syncronized") if document: if len(document) > 1: @@ -452,7 +455,13 @@ class ResPartner(models.Model): _("There is more than one document with vat syncronized") ) if record.vat: - record.vat_document_type = document.category_id.name + record.vat_document_type = ( + document.category_id.name + if not document.category_id.is_vat_equivalent + else "vat" + ) + else: + record.vat_document_type = "vat" def action_partner_reservations(self): self.ensure_one() @@ -624,7 +633,7 @@ class ResPartner(models.Model): document ids like passport, etc... """ for partner in self: - if partner.vat_document_type and partner.vat_document_type != "vat": + if not partner.vat_document_type or partner.vat_document_type != "vat": continue else: super(ResPartner, partner).check_vat() diff --git a/pms/models/res_partner_id_category.py b/pms/models/res_partner_id_category.py new file mode 100644 index 000000000..c54ea9488 --- /dev/null +++ b/pms/models/res_partner_id_category.py @@ -0,0 +1,11 @@ +from odoo import fields, models + + +class ResPartnerIdCategory(models.Model): + _inherit = "res.partner.id_category" + + is_vat_equivalent = fields.Boolean( + string="Is VAT Equivalent", + help="If true, this document type is check by vat number", + default=False, + ) diff --git a/pms/views/res_partner_id_category.xml b/pms/views/res_partner_id_category.xml new file mode 100644 index 000000000..f5ae2792f --- /dev/null +++ b/pms/views/res_partner_id_category.xml @@ -0,0 +1,15 @@ + + + + res.partner.id_category + + + + + + + + diff --git a/pms_l10n_es/data/pms_data.xml b/pms_l10n_es/data/pms_data.xml index f4ef78992..d2a2a896d 100644 --- a/pms_l10n_es/data/pms_data.xml +++ b/pms_l10n_es/data/pms_data.xml @@ -4,6 +4,7 @@ DNI D + True letters = { 0: "T",