Skip to content

Commit

Permalink
[IMP]l10n_ar_account_tax_settlement:generate txt Misiones perc/ret
Browse files Browse the repository at this point in the history
  • Loading branch information
Pablo Montenegro authored and zaoral committed Jun 10, 2022
1 parent 75f4f8d commit f3b65e4
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 1 deletion.
3 changes: 3 additions & 0 deletions l10n_ar_account_tax_settlement/README.rst
Expand Up @@ -37,6 +37,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.

* MISIONES: https://www.atm.misiones.gob.ar/index.php/guia-de-tramites/instructivos/category/53-agentes
Correo DGR: mesadeayuda@tsgroup.com.ar

Inflation Adjustment
--------------------

Expand Down
2 changes: 1 addition & 1 deletion l10n_ar_account_tax_settlement/__manifest__.py
Expand Up @@ -19,7 +19,7 @@
##############################################################################
{
'name': 'Tax Settlements For Argentina',
'version': '13.0.1.7.0',
'version': '13.0.1.8.0',
'category': 'Accounting',
'website': 'www.adhoc.com.ar',
'license': 'AGPL-3',
Expand Down
80 changes: 80 additions & 0 deletions l10n_ar_account_tax_settlement/models/account_journal.py
Expand Up @@ -50,6 +50,7 @@ class AccountJournal(models.Model):
settlement_tax = fields.Selection(selection_add=[
# ('vat', 'VAT'),
# ('profits', 'Profits'),
('misiones', 'TXT IIBB aplicado DGR Misiones'),
('drei_aplicado', 'TXT DREI Aplicado'),
('sicore_aplicado', 'TXT SICORE Aplicado'),
('iibb_sufrido', 'TXT IIBB p/ SIFERE'),
Expand Down Expand Up @@ -1263,3 +1264,82 @@ def drei_aplicado_files_values(self, move_lines):
'txt_filename': 'DREI retenciones aplicadas.txt',
'txt_content': content,
}]

def misiones_files_values(self, move_lines):
""" Implementado segun especificación indicada en ticket 51437. También se puede ver detalles en readme
"""
self.ensure_one()
content = ''
for line in move_lines.sorted(key=lambda r: (r.date, r.id)):
payment = line.payment_id
if payment:
# Fecha
content += fields.Date.from_string(payment.payment_date).strftime('%d-%m-%Y') + ','

# Constancia
content += payment.withholding_number[-8:] + ','

# Razón Social
content += payment.partner_id.name.replace(',','')[:100] + ','

# Domicilio
content += payment.partner_id.street.replace(',','')[:200] + ','

# CUIT
payment.partner_id.ensure_vat()
content += payment.partner_id.l10n_ar_formatted_vat + ','

# Monto de operación
content += '%.2f' % (payment.withholdable_invoiced_amount) + ','

# Alícuota
alicuot_line = line.tax_line_id.get_partner_alicuot(
line.partner_id, line.date)
if not alicuot_line:
raise ValidationError(_(
'No hay alicuota configurada en el partner '
'"%s" (id: %s)') % (
line.partner_id.name, line.partner_id.id))

content += str(line.tax_line_id.get_partner_alicuot(
line.partner_id, line.date).alicuota_retencion)

content += '\n'
elif line.move_id.is_invoice():
# Fecha
content += line.move_id.invoice_date.strftime('%d-%m-%Y') + ','

# Tipo de comprobante
content += line.move_id.l10n_latam_document_type_id.doc_code_prefix.replace('-','_') + ','

# Número
content += line.move_id.l10n_latam_document_number.replace('-','')[:20] + ','

# Nombre
content += line.move_id.partner_id.name[:100] + ','

# CUIT
content += line.move_id.partner_id.ensure_vat() + ','

# Importe de la operación, consultar si l10n_latam_price_net es correcto
tax_group_id = line.tax_line_id.tax_group_id.id
for x in line.move_id.amount_by_group:
if x[-1] == tax_group_id:
content += str(x[2]) + ','

# Alícuota
alicuot_line = line.tax_line_id.get_partner_alicuot(
line.partner_id, line.date)
if not alicuot_line:
raise ValidationError(_(
'No hay alicuota configurada en el partner '
'"%s" (id: %s)') % (
line.partner_id.name, line.partner_id.id))
content += str(line.tax_line_id.get_partner_alicuot(line.partner_id, line.date).alicuota_percepcion)

content += '\n'

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

0 comments on commit f3b65e4

Please sign in to comment.