Skip to content

Commit 3c9ab4c

Browse files
[FW][IMP]l10n_ar_account_tax_settlement: retenciones y percepciones IVA txt ingadhoc#163
Cerré este FP: ingadhoc#163 El pr que viene de 13 es este: ingadhoc#153
1 parent 8fc9e05 commit 3c9ab4c

File tree

2 files changed

+58
-1
lines changed

2 files changed

+58
-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': "16.0.1.1.0",
22+
'version': "16.0.1.2.0",
2323
'category': 'Accounting',
2424
'website': 'www.adhoc.com.ar',
2525
'license': 'LGPL-3',

l10n_ar_account_tax_settlement/models/account_journal.py

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

@@ -1345,3 +1346,59 @@ def misiones_files_values(self, move_lines):
13451346
'txt_filename': ('Retenciones ' if payment else 'Percepciones ') + 'Misiones.txt',
13461347
'txt_content': content,
13471348
}]
1349+
1350+
def retenciones_iva_files_values(self, move_lines):
1351+
""" Implementado segun especificación indicada en ticket 54274."""
1352+
self.ensure_one()
1353+
content = ''
1354+
for line in move_lines.sorted(key=lambda r: (r.date, r.id)):
1355+
payment = line.payment_id
1356+
if payment:
1357+
# regimen (long 3)
1358+
codigo_regimen = payment.tax_withholding_id.codigo_regimen
1359+
if not codigo_regimen:
1360+
raise ValidationError(_('No hay código de régimen en la configuración del impuesto "%s"') % (
1361+
payment.tax_withholding_id.name))
1362+
if len(codigo_regimen) < 3:
1363+
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))
1364+
content += codigo_regimen[:3]
1365+
1366+
# cuit agente (long 11)
1367+
content += payment.partner_id.ensure_vat()
1368+
1369+
# fecha retención (long 10)
1370+
content += fields.Date.from_string(payment.date).strftime('%d/%m/%Y')
1371+
1372+
# número comprobante (long 16)
1373+
content += re.sub('[^0-9\.-]', '', payment.name)[1:].ljust(16)
1374+
1375+
# importe retención (long 16)
1376+
content += '%16.2f' % payment.amount
1377+
content += '\r\n'
1378+
elif line.move_id.is_invoice():
1379+
# regimen (long 3)
1380+
codigo_regimen = line.tax_line_id.codigo_regimen
1381+
if not codigo_regimen:
1382+
raise ValidationError(_('No hay código de régimen en la configuración del impuesto "%s"') % (
1383+
line.tax_withholding_id.name))
1384+
if len(codigo_regimen) < 3:
1385+
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))
1386+
content += codigo_regimen[:3]
1387+
1388+
# cuit agente (long 11)
1389+
content += line.move_id.partner_id.ensure_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)