Skip to content

Commit 3e7af3c

Browse files
[IMP]l10n_ar_account_tax_settlement: retenciones y percepciones IVA txt
Ticket: 54274
1 parent bf8d517 commit 3e7af3c

File tree

2 files changed

+60
-1
lines changed

2 files changed

+60
-1
lines changed

l10n_ar_account_tax_settlement/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
##############################################################################
2020
{
2121
'name': 'Tax Settlements For Argentina',
22-
'version': '13.0.1.10.0',
22+
'version': '13.0.1.11.0',
2323
'category': 'Accounting',
2424
'website': 'www.adhoc.com.ar',
2525
'license': 'AGPL-3',

l10n_ar_account_tax_settlement/models/account_journal.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class AccountJournal(models.Model):
6060
('iibb_aplicado_api', 'TXT Perc/Ret IIBB aplicadas API'),
6161
('iibb_aplicado_sircar', 'TXT Perc/Ret IIBB aplicadas SIRCAR'),
6262
('iibb_aplicado_dgr_mendoza', 'TXT Perc/Ret IIBB aplicado DGR Mendonza'),
63+
('retenciones_iva', 'TXT Retenciones/Percepciones Sufridas IVA'),
6364
# ('other', 'Other')
6465
])
6566

@@ -1343,3 +1344,61 @@ def misiones_files_values(self, move_lines):
13431344
'txt_filename': ('Retenciones ' if payment else 'Percepciones ') + 'Misiones.txt',
13441345
'txt_content': content,
13451346
}]
1347+
1348+
def retenciones_iva_files_values(self, move_lines):
1349+
""" Implementado segun especificación indicada en ticket 54274."""
1350+
self.ensure_one()
1351+
content = ''
1352+
for line in move_lines.sorted(key=lambda r: (r.date, r.id)):
1353+
payment = line.payment_id
1354+
if payment:
1355+
# regimen (long 3)
1356+
codigo_regimen = payment.tax_withholding_id.codigo_regimen
1357+
if not codigo_regimen:
1358+
raise ValidationError(_('No hay código de régimen en la configuración del impuesto "%s"') % (
1359+
payment.tax_withholding_id.name))
1360+
if len(codigo_regimen) < 3:
1361+
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))
1362+
content += codigo_regimen[:3]
1363+
1364+
# cuit agente (long 11)
1365+
payment.partner_id.ensure_vat()
1366+
content += payment.partner_id.l10n_ar_vat
1367+
1368+
# fecha retención (long 10)
1369+
content += fields.Date.from_string(payment.payment_date).strftime('%d/%m/%Y')
1370+
1371+
# número comprobante (long 16)
1372+
content += re.sub('[^0-9\.-]', '', payment.move_name)[1:].ljust(16)
1373+
1374+
# importe retención (long 16)
1375+
content += '%16.2f' % payment.amount
1376+
content += '\r\n'
1377+
elif line.move_id.is_invoice():
1378+
# regimen (long 3)
1379+
codigo_regimen = line.tax_line_id.codigo_regimen
1380+
if not codigo_regimen:
1381+
raise ValidationError(_('No hay código de régimen en la configuración del impuesto "%s"') % (
1382+
line.tax_withholding_id.name))
1383+
if len(codigo_regimen) < 3:
1384+
raise ValidationError(_('El código de régimen tiene que tener 3 dígitos en la configuración del impuesto "%s"') % (line.tax_withholding_id.name))
1385+
content += codigo_regimen[:3]
1386+
1387+
# cuit agente (long 11)
1388+
line.move_id.partner_id.ensure_vat()
1389+
content += line.move_id.partner_id.l10n_ar_vat
1390+
1391+
# fecha retención (long 10)
1392+
content += fields.Date.from_string(line.move_id.invoice_date).strftime('%d/%m/%Y')
1393+
1394+
# número comprobante (long 16)
1395+
content += line.move_id.l10n_latam_document_number.ljust(16)
1396+
1397+
# importe retención (long 16)
1398+
content += '%16.2f' % line.balance
1399+
content += '\r\n'
1400+
1401+
return [{
1402+
'txt_filename': ('Retenciones' if payment else 'Percepciones') + '_iva.txt',
1403+
'txt_content': content,
1404+
}]

0 commit comments

Comments
 (0)