[IMP]pms: add document type vat equivalent field

This commit is contained in:
Darío Lodeiros
2022-03-19 12:47:47 +01:00
parent bb6c40f523
commit 797b7613db
6 changed files with 42 additions and 4 deletions

View File

@@ -90,6 +90,7 @@
"views/precheckin_portal_templates.xml", "views/precheckin_portal_templates.xml",
"wizards/wizard_massive_changes.xml", "wizards/wizard_massive_changes.xml",
"wizards/wizard_advanced_filters.xml", "wizards/wizard_advanced_filters.xml",
"views/res_partner_id_category.xml",
"views/payment_transaction_views.xml", "views/payment_transaction_views.xml",
"views/account_move_line_views.xml", "views/account_move_line_views.xml",
], ],

View File

@@ -46,3 +46,4 @@ from . import pms_availability
from . import res_partner_id_number from . import res_partner_id_number
from . import pms_automated_mails from . import pms_automated_mails
from . import payment_transaction from . import payment_transaction
from . import res_partner_id_category

View File

@@ -198,7 +198,11 @@ class ResPartner(models.Model):
vat_document_types = [ vat_document_types = [
("vat", _("VAT")), ("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: for doc_type in document_categories:
vat_document_types.append((doc_type.name, doc_type.name)) vat_document_types.append((doc_type.name, doc_type.name))
return vat_document_types return vat_document_types
@@ -444,7 +448,6 @@ class ResPartner(models.Model):
def _compute_vat_document_type(self): def _compute_vat_document_type(self):
self.vat_document_type = False self.vat_document_type = False
for record in self.filtered("vat"): for record in self.filtered("vat"):
record.vat_document_type = "vat"
document = record.id_numbers.filtered("vat_syncronized") document = record.id_numbers.filtered("vat_syncronized")
if document: if document:
if len(document) > 1: if len(document) > 1:
@@ -452,7 +455,13 @@ class ResPartner(models.Model):
_("There is more than one document with vat syncronized") _("There is more than one document with vat syncronized")
) )
if record.vat: 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): def action_partner_reservations(self):
self.ensure_one() self.ensure_one()
@@ -624,7 +633,7 @@ class ResPartner(models.Model):
document ids like passport, etc... document ids like passport, etc...
""" """
for partner in self: 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 continue
else: else:
super(ResPartner, partner).check_vat() super(ResPartner, partner).check_vat()

View File

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

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_partner_id_category_form" model="ir.ui.view">
<field name="model">res.partner.id_category</field>
<field
name="inherit_id"
ref="partner_identification.view_partner_id_category_form"
/>
<field name="arch" type="xml">
<xpath expr="//field[@name='code']" position="after">
<field name="is_vat_equivalent" />
</xpath>
</field>
</record>
</odoo>

View File

@@ -4,6 +4,7 @@
<record id="document_type_dni" model="res.partner.id_category"> <record id="document_type_dni" model="res.partner.id_category">
<field name="name">DNI</field> <field name="name">DNI</field>
<field name="code">D</field> <field name="code">D</field>
<field name="is_vat_equivalent">True</field>
<field name="validation_code"> <field name="validation_code">
letters = { letters = {
0: "T", 0: "T",