Skip to content

Commit

Permalink
[ADD] l10n_ar_account_tax_settlement: Nuevas disposiciones AGIP
Browse files Browse the repository at this point in the history
Tareas: 39495
  • Loading branch information
mem-adhoc committed May 17, 2024
1 parent e134609 commit cbe4a4e
Showing 1 changed file with 120 additions and 15 deletions.
135 changes: 120 additions & 15 deletions l10n_ar_account_tax_settlement/models/account_journal.py
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,8 @@ def iibb_aplicado_agip_files_values(self, move_lines):
content = '1'
alicuot = alicuot_line.alicuota_retencion

or_inv = line.move_id._found_related_invoice()

# notas de credito
if internal_type == 'credit_note':
# 2 - Nro. Nota de crédito
Expand Down Expand Up @@ -510,7 +512,6 @@ def iibb_aplicado_agip_files_values(self, move_lines):

# segun interpretamos de los daots que nos pasaron 6, 7, 8 y 11
# son del comprobante original
or_inv = line.move_id._found_related_invoice()
if not or_inv:
raise ValidationError(_(
'No pudimos encontrar el comprobante original para %s '
Expand All @@ -522,11 +523,56 @@ def iibb_aplicado_agip_files_values(self, move_lines):
line.move_id.display_name))

# 6 - Tipo de comprobante origen de la retención

#Identificamos si el comprobante de origen es una Factura de credito MiPyMEs sino lo
# tratamos como una factura normal
content += '10' if or_inv.l10n_latam_document_type_id.code in ['201', '206', '211'] else '01'
"""
No implementado 15-05-2024
03- Orden de Pago (Retenciones)
04- Boleta de Depósito (Retenciones)
05- Liquidación de pago (Retenciones)
06- Certificado de obra (Retenciones)
08- Cont de Loc de Servic. (Retenciones)
12- Orden de Pago de Comp. Electrónica MiPyMEs (Retenciones)
"""

#Identificamos si el comprobante de origen es una Facturas
#(Es el mismo codigo para percepciones y retenciones)
if or_inv.l10n_latam_document_type_id.code in ['1', '6', '11']:
content += '01'

#Identificamos si el comprobante de origen es una Factura de credito MiPyMEs
#(Es el mismo codigo para percepciones y retenciones)
elif or_inv.l10n_latam_document_type_id.code in ['201', '206', '211']:
content += '10'

#Identificamos si el comprobante de Otro comprobante electronico MiPyMEs
#(Es el mismo codigo para percepciones y retenciones)
elif or_inv.l10n_latam_document_type_id.code in ['203', '208', '213']:
content += '13'

elif not es_percepcion:
#Retenciones

#Identificamos si el comprobante de origen es una Nota de debito
if or_inv.l10n_latam_document_type_id.code in ['2', '7', '12', '52']:
content += '02'

#Identificamos si el comprobante de origen es un Recibo
if or_inv.l10n_latam_document_type_id.code in ['4', '9', '15', '54']:
content += '07'

#Identificamos si el comprobante de origen es un Nota de debito electronica MiPyMEs
if or_inv.l10n_latam_document_type_id.code in ['202', '207', '212']:
content += '11'

else:
#Otros comprobantes
#(Es el mismo codigo para percepciones y retenciones)
content += '09'

else:
#Otros comprobantes
#(Es el mismo codigo para percepciones y retenciones)
content += '09'

# 7 - Letra del Comprobante
if payment:
content += ' '
Expand Down Expand Up @@ -557,7 +603,8 @@ def iibb_aplicado_agip_files_values(self, move_lines):
content += format_amount((line.balance if not ret_perc_applied else ret_perc_applied), 16, 2, ',')

# 13 - Alícuota
content += format_amount(alicuot, 5, 2, ',')
#Como siempre usamos codigo de normal 29, puede ser 0
content += format_amount(alicuot, 2, 2, ',')

content += '\r\n'

Expand All @@ -572,16 +619,55 @@ def iibb_aplicado_agip_files_values(self, move_lines):
content += fields.Date.from_string(line.date).strftime('%d/%m/%Y')

# 4 - Tipo de comprobante origen de la retención
if internal_type == 'invoice':
"""
No implementado 15-05-2024
03- Orden de Pago (Retenciones)
04- Boleta de Depósito (Retenciones)
05- Liquidación de pago (Retenciones)
06- Certificado de obra (Retenciones)
08- Cont de Loc de Servic. (Retenciones)
12- Orden de Pago de Comp. Electrónica MiPyMEs (Retenciones)
"""

#Identificamos si el comprobante de origen es una Facturas
#(Es el mismo codigo para percepciones y retenciones)
if or_inv.l10n_latam_document_type_id.code in ['1', '6', '11']:
content += '01'
elif internal_type == 'debit_note':
if es_percepcion:
content += '09'
else:

#Identificamos si el comprobante de origen es una Factura de credito MiPyMEs
#(Es el mismo codigo para percepciones y retenciones)
elif or_inv.l10n_latam_document_type_id.code in ['201', '206', '211']:
content += '10'

#Identificamos si el comprobante de Otro comprobante electronico MiPyMEs
#(Es el mismo codigo para percepciones y retenciones)
elif or_inv.l10n_latam_document_type_id.code in ['203', '208', '213']:
content += '13'

elif not es_percepcion:
#Retenciones

#Identificamos si el comprobante de origen es una Nota de debito
if or_inv.l10n_latam_document_type_id.code in ['2', '7', '12', '52']:
content += '02'

#Identificamos si el comprobante de origen es un Recibo
if or_inv.l10n_latam_document_type_id.code in ['4', '9', '15', '54']:
content += '07'

#Identificamos si el comprobante de origen es un Nota de debito electronica MiPyMEs
if or_inv.l10n_latam_document_type_id.code in ['202', '207', '212']:
content += '11'

else:
#Otros comprobantes
#(Es el mismo codigo para percepciones y retenciones)
content += '09'

else:
# orden de pago
content += '03'
#Otros comprobantes
#(Es el mismo codigo para percepciones y retenciones)
content += '09'

# 5 - Letra del Comprobante
# segun vemos en los archivos de ejemplo solo en percepciones
Expand Down Expand Up @@ -702,7 +788,8 @@ def iibb_aplicado_agip_files_values(self, move_lines):
content += format_amount(taxable_amount, 16, 2, ',')

# 19 - Alícuota
content += format_amount(alicuot, 5, 2, ',')
# Puede ser 00,00 ya que nosotros siempre usamos 29 como Código de Norma
content += format_amount(alicuot, 2, 2, ',')

# 20 - Retención/Percepción Practicada

Expand All @@ -715,8 +802,26 @@ def iibb_aplicado_agip_files_values(self, move_lines):
# 21 - Monto Total Retenido/Percibido
content += format_amount((-line.balance if not ret_perc_applied else ret_perc_applied), 16, 2, ',')

content += '\r\n'
# 22 - Aceptacion
if not es_percepcion:
#Cuando se refiere a tipo de comprobante, es al original o a la retencion?
if tax.l10n_latam_document_type_id.code in ['202', '207', '212', '203', '208', '213', '201', '206', '211']:
content += 'E'
else:
content += ' '
else:
content += ' '

# 24 - Fecha Aceptación "Expresa"
#Consultar con Maru
if content[-1] == 'E':
#desarrollar fecha de Aceptacion Expresa
content += 'fecha de Aceptacion Expresa'
else:
content += ' '

content += '\r\n'

ret_perc += content


Expand Down

0 comments on commit cbe4a4e

Please sign in to comment.