summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfw-bot <otis@odoo.com>2021-03-07 20:41:49 +0000
committerDaniel Blanco <daniel@blancomartin.cl>2021-03-09 19:27:50 +0000
commit8ca3ea063050f2ab2d19cce8a68116489872a734 (patch)
tree9f2f432cf0a38487dfd75e1bf6981084c250c991
parent623d5f0143e1c368a06ca52c4f015f682dca643b (diff)
[FIX] l10n_cl: return a different domain in available document types
when the partner is Tesoreria de la República, and exclude the credit note. closes odoo/odoo#67569 Signed-off-by: Josse Colpaert <jco@openerp.com>
-rw-r--r--addons/l10n_cl/models/account_move.py50
1 files changed, 25 insertions, 25 deletions
diff --git a/addons/l10n_cl/models/account_move.py b/addons/l10n_cl/models/account_move.py
index 38c9df35bf6..1227af0116b 100644
--- a/addons/l10n_cl/models/account_move.py
+++ b/addons/l10n_cl/models/account_move.py
@@ -17,33 +17,33 @@ class AccountMove(models.Model):
def _get_l10n_latam_documents_domain(self):
self.ensure_one()
- domain = super()._get_l10n_latam_documents_domain()
- if self.journal_id.l10n_latam_use_documents and self.journal_id.company_id.country_id.code == "CL":
- if self.journal_id.type == 'sale':
- domain = [('country_id.code', '=', "CL"), ('internal_type', '!=', 'invoice_in')]
- if self.company_id.partner_id.l10n_cl_sii_taxpayer_type == '1':
- domain += [('code', '!=', '71')] # Companies with VAT Affected doesn't have "Boleta de honorarios Electrónica"
- document_type_ids = self.env['l10n_latam.document.type'].search(domain).ids
- else:
- partner_domain = [
- ('country_id.code', '=', 'CL'),
- ('internal_type', 'in', ['invoice', 'debit_note', 'credit_note', 'invoice_in'])]
- if not self.partner_id:
- pass
- elif self.partner_id.l10n_cl_sii_taxpayer_type == '1' and self.partner_id_vat != SII_VAT:
- partner_domain += [('code', 'not in', ['39', '70', '71', '914', '911'])]
- elif self.partner_id.l10n_cl_sii_taxpayer_type == '1' and self.partner_id_vat == SII_VAT:
- partner_domain += [('code', 'not in', ['39', '70', '71'])]
- elif self.partner_id.l10n_cl_sii_taxpayer_type == '2':
- partner_domain += [('code', 'in', ['70', '71', '56', '61'])]
- elif self.partner_id.l10n_cl_sii_taxpayer_type == '3':
- partner_domain += [('code', 'in', ['35', '38', '39', '41', '56', '61'])]
- elif not self.partner_id.l10n_cl_sii_taxpayer_type or self.partner_id.country_id.code != "CL" or self.partner_id.l10n_cl_sii_taxpayer_type == '4':
- partner_domain += [('code', 'in', [])]
- document_type_ids = self.env['l10n_latam.document.type'].search(partner_domain).ids
- domain = expression.AND([domain, [('id', 'in', document_type_ids)]])
+ if self.journal_id.company_id.country_id != self.env.ref('base.cl') or not \
+ self.journal_id.l10n_latam_use_documents:
+ return super()._get_l10n_latam_documents_domain()
+ if self.journal_id.type == 'sale':
+ domain = [('country_id.code', '=', "CL"), ('internal_type', '!=', 'invoice_in')]
+ if self.company_id.partner_id.l10n_cl_sii_taxpayer_type == '1':
+ domain += [('code', '!=', '71')] # Companies with VAT Affected doesn't have "Boleta de honorarios Electrónica"
+ return domain
+ domain = [
+ ('country_id.code', '=', 'CL'),
+ ('internal_type', 'in', ['invoice', 'debit_note', 'credit_note', 'invoice_in'])]
+ if self.partner_id.l10n_cl_sii_taxpayer_type == '1' and self.partner_id_vat != '60805000-0':
+ domain += [('code', 'not in', ['39', '70', '71', '914', '911'])]
+ elif self.partner_id.l10n_cl_sii_taxpayer_type == '1' and self.partner_id_vat == '60805000-0':
+ domain += [('code', 'not in', ['39', '70', '71'])]
+ if self.move_type == 'in_invoice':
+ domain += [('internal_type', '!=', 'credit_note')]
+ elif self.partner_id.l10n_cl_sii_taxpayer_type == '2':
+ domain += [('code', 'in', ['70', '71', '56', '61'])]
+ elif self.partner_id.l10n_cl_sii_taxpayer_type == '3':
+ domain += [('code', 'in', ['35', '38', '39', '41', '56', '61'])]
+ elif not self.partner_id.l10n_cl_sii_taxpayer_type or self.partner_id.country_id != self.env.ref(
+ 'base.cl') or self.partner_id.l10n_cl_sii_taxpayer_type == '4':
+ domain += [('code', 'in', [])]
return domain
+
def _check_document_types_post(self):
for rec in self.filtered(
lambda r: r.company_id.country_id.code == "CL" and