diff --git a/addons/l10n_cl/data/account_tax_data.xml b/addons/l10n_cl/data/account_tax_data.xml index 13c7ece44c2..223a3a62391 100644 --- a/addons/l10n_cl/data/account_tax_data.xml +++ b/addons/l10n_cl/data/account_tax_data.xml @@ -115,6 +115,44 @@ ]"/> + + + Retención Total IVA + Retención total IVA + -19.00 + + percent + purchase + 15 + + + + + Específico Compra diff --git a/addons/l10n_cl/data/account_tax_report_data.xml b/addons/l10n_cl/data/account_tax_report_data.xml index d55ad2d2e07..9df13d9af2d 100644 --- a/addons/l10n_cl/data/account_tax_report_data.xml +++ b/addons/l10n_cl/data/account_tax_report_data.xml @@ -36,6 +36,13 @@ + + Retención Total (compras) + Retención Total (compras) + + + + Impuesto Originado por la Venta Impuesto Originado por la Venta diff --git a/addons/l10n_cl/data/l10n_cl_chart_data.xml b/addons/l10n_cl/data/l10n_cl_chart_data.xml index 9910f1eb7b4..5ae9251a694 100644 --- a/addons/l10n_cl/data/l10n_cl_chart_data.xml +++ b/addons/l10n_cl/data/l10n_cl_chart_data.xml @@ -944,6 +944,14 @@ + + 210715 + IVA Retenido a terceros + + + + + 210750 Impuesto Renta 1a Categoría por Pagar diff --git a/addons/l10n_cl/data/l10n_latam.document.type.csv b/addons/l10n_cl/data/l10n_latam.document.type.csv index 97119bd79e8..45aee008624 100644 --- a/addons/l10n_cl/data/l10n_latam.document.type.csv +++ b/addons/l10n_cl/data/l10n_latam.document.type.csv @@ -12,7 +12,7 @@ dc_y_f_dtn,10,32,Factura de Ventas y Servicios no Afectos o Exentos de IVA,F-EXE dc_l_f_dtn,10,40,Liquidación Factura,L-FACTURAM,invoice,FAL,base.cl,False dc_l_f_dte,10,43,Liquidación Factura Electrónica,L-FACTURAE,invoice,FAL,base.cl,False dc_fc_f_dtn,10,45,Factura de Compra,FACTURA,invoice_in,FAC,base.cl,False -dc_fc_f_dte,10,46,Factura de Compra Electrónica,FACTURA,invoice_in,FAC,base.cl,False +dc_fc_f_dte,10,46,Factura de Compra Electrónica,FACTURA,invoice_in,FAC,base.cl,True dc_nd_f_dtn,10,55,Nota de Débito,NOTA DE DEBITO,debit_note,N/D,base.cl,False dc_nc_f_dtn,10,60,Nota de Crédito,NOTA DE CREDITO,credit_note,N/C,base.cl,False dc_s_f_dtn,10,108,SRF Solicitud de Registro de Factura,SOL REGISTRO,,REG,base.cl,False diff --git a/addons/l10n_cl/models/account_move.py b/addons/l10n_cl/models/account_move.py index fdc20d0b6c4..4d02b00e19e 100644 --- a/addons/l10n_cl/models/account_move.py +++ b/addons/l10n_cl/models/account_move.py @@ -109,9 +109,12 @@ class AccountMove(models.Model): if self.company_id.account_fiscal_country_id.code == "CL" and self.l10n_latam_use_documents: where_string = where_string.replace('journal_id = %(journal_id)s AND', '') where_string += ' AND l10n_latam_document_type_id = %(l10n_latam_document_type_id)s AND ' \ - 'company_id = %(company_id)s AND move_type IN (\'out_invoice\', \'out_refund\')' + 'company_id = %(company_id)s AND move_type IN %(move_type)s' + param['company_id'] = self.company_id.id or False param['l10n_latam_document_type_id'] = self.l10n_latam_document_type_id.id or 0 + param['move_type'] = (('in_invoice', 'in_refund') if + self.l10n_latam_document_type_id._is_doc_type_vendor() else ('out_invoice', 'out_refund')) return where_string, param def _get_name_invoice_report(self): @@ -142,3 +145,8 @@ class AccountMove(models.Model): def _l10n_cl_include_sii(self): self.ensure_one() return self.l10n_latam_document_type_id.code in ['39', '41', '110', '111', '112', '34'] + + def _is_manual_document_number(self): + if self.journal_id.company_id.country_id.code == 'CL': + return self.journal_id.type == 'purchase' and not self.l10n_latam_document_type_id._is_doc_type_vendor() + return super()._is_manual_document_number() diff --git a/addons/l10n_cl/models/l10n_latam_document_type.py b/addons/l10n_cl/models/l10n_latam_document_type.py index 6e5916b9527..627390294c8 100644 --- a/addons/l10n_cl/models/l10n_latam_document_type.py +++ b/addons/l10n_cl/models/l10n_latam_document_type.py @@ -28,3 +28,6 @@ class L10nLatamDocumentType(models.Model): return False return document_number.zfill(6) + + def _is_doc_type_vendor(self): + return self.code == '46' diff --git a/addons/l10n_latam_invoice_document/models/account_move.py b/addons/l10n_latam_invoice_document/models/account_move.py index 1b9d5a1af36..d37fdd3fd81 100644 --- a/addons/l10n_latam_invoice_document/models/account_move.py +++ b/addons/l10n_latam_invoice_document/models/account_move.py @@ -74,12 +74,12 @@ class AccountMove(models.Model): """ Indicates if this document type uses a sequence or if the numbering is made manually """ recs_with_journal_id = self.filtered(lambda x: x.journal_id and x.journal_id.l10n_latam_use_documents) for rec in recs_with_journal_id: - rec.l10n_latam_manual_document_number = self._is_manual_document_number(rec.journal_id) + rec.l10n_latam_manual_document_number = rec._is_manual_document_number() remaining = self - recs_with_journal_id remaining.l10n_latam_manual_document_number = False - def _is_manual_document_number(self, journal): - return True if journal.type == 'purchase' else False + def _is_manual_document_number(self): + return self.journal_id.type == 'purchase' @api.depends('name') def _compute_l10n_latam_document_number(self): diff --git a/addons/l10n_latam_invoice_document/wizards/account_move_reversal.py b/addons/l10n_latam_invoice_document/wizards/account_move_reversal.py index caef7474472..002b6486502 100644 --- a/addons/l10n_latam_invoice_document/wizards/account_move_reversal.py +++ b/addons/l10n_latam_invoice_document/wizards/account_move_reversal.py @@ -19,7 +19,7 @@ class AccountMoveReversal(models.TransientModel): for rec in self.filtered('move_ids'): move = rec.move_ids[0] if move.journal_id and move.journal_id.l10n_latam_use_documents: - rec.l10n_latam_manual_document_number = self.env['account.move']._is_manual_document_number(move.journal_id) + rec.l10n_latam_manual_document_number = move._is_manual_document_number() @api.model def _reverse_type_map(self, move_type):