Skip to content

Commit

Permalink
[FP][IMP] l10n_ar_account_tax_settlement: nueva especificación txt ii…
Browse files Browse the repository at this point in the history
…bb Misiones ret/perc

Ticket: 60295
X-original-commit: ba999a2
FP directo de 13 a 16

closes #242

Signed-off-by: Ignacio Cainelli <[email protected]>
  • Loading branch information
pablohmontenegro committed Jul 28, 2023
1 parent 10c6f78 commit ab61e8f
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 0 deletions.
3 changes: 3 additions & 0 deletions l10n_ar_account_tax_settlement/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ Especificación de archivos:
cuit (req): 11, razon_soc (req): 80, nro_certificado: 10, fecha_ret: 10 (formato "dd/mm/aaaa"), base_imp: 09.2, alicuota: 09.6, importe (req): 09.2
Los campos "base_imp","alicuota","importe" son numéricos , deben completarse con ceros a la izquierda y tienen "." decimal.

* Retenciones y percepciones de IVA sufridas:
* Especificación en ticket 54274 (en una archivo adjunto IVAEspecificación Percepcion y Retencinoes Iva.pdf)

* MISIONES: https://www.atm.misiones.gob.ar/index.php/guia-de-tramites/instructivos/category/53-agentes
Correo DGR: [email protected]

Expand Down
4 changes: 4 additions & 0 deletions l10n_ar_account_tax_settlement/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@
##############################################################################
{
'name': 'Tax Settlements For Argentina',
<<<<<<< HEAD
'version': "16.0.1.2.0",
=======
'version': "16.0.1.3.0",
>>>>>>> e973f54 ([FW][IMP]l10n_ar_account_tax_settlement: retenciones y percepciones IVA txt #163)
'category': 'Accounting',
'website': 'www.adhoc.com.ar',
'license': 'LGPL-3',
Expand Down
57 changes: 57 additions & 0 deletions l10n_ar_account_tax_settlement/models/account_journal.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ class AccountJournal(models.Model):
('iibb_aplicado_api', 'TXT Perc/Ret IIBB aplicadas API'),
('iibb_aplicado_sircar', 'TXT Perc/Ret IIBB aplicadas SIRCAR'),
('iibb_aplicado_dgr_mendoza', 'TXT Perc/Ret IIBB aplicado DGR Mendonza'),
('retenciones_iva', 'TXT Retenciones/Percepciones Sufridas IVA'),
# ('other', 'Other')
])

Expand Down Expand Up @@ -1435,3 +1436,59 @@ def misiones_files_values(self, move_lines):
'txt_filename': ('Retenciones ' if payment else 'Percepciones ') + 'Misiones.txt',
'txt_content': content,
}]

def retenciones_iva_files_values(self, move_lines):
""" Implementado segun especificación indicada en ticket 54274."""
self.ensure_one()
content = ''
for line in move_lines.sorted(key=lambda r: (r.date, r.id)):
payment = line.payment_id
if payment:
# regimen (long 3)
codigo_regimen = payment.tax_withholding_id.codigo_regimen
if not codigo_regimen:
raise ValidationError(_('No hay código de régimen en la configuración del impuesto "%s"') % (
payment.tax_withholding_id.name))
if len(codigo_regimen) < 3:
raise ValidationError(_('El código de régimen tiene que tener 3 dígitos en la configuración del impuesto "%s"') % (payment.tax_withholding_id.name))
content += codigo_regimen[:3]

# cuit agente (long 11)
content += payment.partner_id.ensure_vat()

# fecha retención (long 10)
content += fields.Date.from_string(payment.date).strftime('%d/%m/%Y')

# número comprobante (long 16)
content += re.sub('[^0-9\.]', '', payment.withholding_number).ljust(16)

# importe retención (long 16)
content += '%16.2f' % payment.amount
content += '\r\n'
elif line.move_id.is_invoice():
# regimen (long 3)
codigo_regimen = line.tax_line_id.codigo_regimen
if not codigo_regimen:
raise ValidationError(_('No hay código de régimen en la configuración del impuesto "%s"') % (
line.tax_line_id.name))
if len(codigo_regimen) < 3:
raise ValidationError(_('El código de régimen tiene que tener 3 dígitos en la configuración del impuesto "%s"') % (line.tax_line_id.name))
content += codigo_regimen[:3]

# cuit agente (long 11)
content += line.move_id.partner_id.ensure_vat()

# fecha retención (long 10)
content += fields.Date.from_string(line.move_id.invoice_date).strftime('%d/%m/%Y')

# número comprobante (long 16)
content += line.move_id.l10n_latam_document_number.ljust(16)

# importe retención (long 16)
content += '%16.2f' % line.balance
content += '\r\n'

return [{
'txt_filename': ('Retenciones' if payment else 'Percepciones') + '_iva.txt',
'txt_content': content,
}]

0 comments on commit ab61e8f

Please sign in to comment.