Skip to content

Commit

Permalink
[IMP] l10n_ar_txt_sire: txt retenciones sire aplicadas
Browse files Browse the repository at this point in the history
Tarea: 40906
  • Loading branch information
pablohmontenegro committed Jan 7, 2025
1 parent 85cb4b9 commit 293176e
Show file tree
Hide file tree
Showing 11 changed files with 500 additions and 0 deletions.
69 changes: 69 additions & 0 deletions l10n_ar_txt_sire/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
.. |company| replace:: ADHOC SA

.. |company_logo| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-logo.png
:alt: ADHOC SA
:target: https://www.adhoc.com.ar

.. |icon| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-icon.png

.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: https://www.gnu.org/licenses/agpl
:alt: License: AGPL-3

========================
Tax Settlements For Sire
========================

Este módulo imlementa:

* Archivos para declaración de impuesto sire de retenciones aplicadas a sujetos domiciliados en el exterior.

Archivos para declaración de impuestos
======================================

* SIRE: https://www.afip.gob.ar/sire/documentos/SIRE-especificacion-para-emision-por-lote.pdf apartado 3. F2003 CERTIFICADOS SUJETOS DOMICILIADOS EN EL EXTERIOR.
* CERTIFICADOS DE RETENCIÓN IMPOSITIVA: https://www.afip.gob.ar/sire/documentos/SIRE-especificacion-para-emision-por-lote.pdf apartado 5. F2005 CERTIFICADOS DE RETENCIÓN IMPOSITIVA (beta: nunca fue testeado).

Installation
============

To install this module, you need to:

#. Only need to install the module

Configuration
=============

To configure this module, you need to:

1. Crear diario de liquidación con la etiqueta para liquidación "Sire" y elegir "TXT Retenciones SIRE" en el campo "Impuesto de liquidación".
2. Crear impuesto de sire y agregar la etiqueta "Sire" en cuadrículas de impuesto en vista formulario del impuesto y agregar codigo de regimen en el campo "Codigo de regimen IVA" en la solapa "Opciones avanzadas" del impuesto.
3. El contacto debe tener país y si es tipo 'individual' entonces se deberá establecer el país de nacimiento y la fecha de nacimiento en la solapa "Datos Fiscales" de la vista formulario del contacto.
4. Establecer "Sire Codigo Alicuota" en la solapa "Datos Fiscales" de la vista formulario del contacto. Si no lo establece entonces en el pago será requerido que lo establezca.

Usage
=====

.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: http://runbot.adhoc.com.ar/

Credits
=======

Images
------

* |company| |icon|

Contributors
------------

Maintainer
----------

|company_logo|

This module is maintained by the |company|.

To contribute to this module, please visit https://www.adhoc.com.ar.
5 changes: 5 additions & 0 deletions l10n_ar_txt_sire/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
##############################################################################
# For copyright and license notices, see __manifest__.py file in module root
# directory
##############################################################################
from . import models
20 changes: 20 additions & 0 deletions l10n_ar_txt_sire/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
'name': 'Txt SIRE',
'version': "16.0.1.0.0",
'category': 'Accounting',
'website': 'www.adhoc.com.ar',
'license': 'LGPL-3',
'depends': [
'l10n_ar_account_tax_settlement',
],
'data': [
'data/account_account_tag_data.xml',
'views/res_partner_view.xml',
'views/account_payment_view.xml',
],
'demo': [
],
'installable': True,
'auto_install': False,
'application': False,
}
8 changes: 8 additions & 0 deletions l10n_ar_txt_sire/data/account_account_tag_data.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="tag_tax_sire" model="account.account.tag">
<field name="name">Sire</field>
<field name="applicability">taxes</field>
<field name="country_id" ref="base.ar"/>
</record>
</odoo>
Binary file not shown.
3 changes: 3 additions & 0 deletions l10n_ar_txt_sire/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import account_journal
from . import res_partner
from . import account_payment
324 changes: 324 additions & 0 deletions l10n_ar_txt_sire/models/account_journal.py

Large diffs are not rendered by default.

25 changes: 25 additions & 0 deletions l10n_ar_txt_sire/models/account_payment.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from odoo import models, fields, api


class AccountPayment(models.Model):

_inherit = "account.payment"

sire_aplica_cdi = fields.Boolean(related='partner_id.sire_aplica_cdi',
readonly=False,
help="Campo para archivo txt Ganancias SIRE. Marcar si aplica CDI")
sire_aplica_acrecentamiento = fields.Boolean(related='partner_id.sire_aplica_acrecentamiento',
readonly=False,
help="Campo para archivo txt Ganancias SIRE. Marcar si aplica CDI")
sire_codigo_alicuota = fields.Char(related='partner_id.sire_codigo_alicuota', readonly=False, size=4)
# Este campo se usa para hacer invisibles los campos anteriores en el pago si no se trata de una retención
# de sire
es_sire = fields.Boolean(compute='_compute_es_sire')

@api.onchange('tax_withholding_id')
def _compute_es_sire(self):
tag_tax_sire = self.env.ref('l10n_ar_txt_sire.tag_tax_sire')
payments_with_sire = self.filtered(lambda pay: tag_tax_sire in
pay.tax_withholding_id.invoice_repartition_line_ids.tag_ids)
payments_with_sire.es_sire = True
(self - payments_with_sire).es_sire = False
13 changes: 13 additions & 0 deletions l10n_ar_txt_sire/models/res_partner.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from odoo import models, fields


class ResPartner(models.Model):
_inherit = 'res.partner'

sire_aplica_cdi = fields.Boolean(string='Aplica CDI',
help="Campo para archivo txt Ganancias SIRE. Marcar si aplica CDI")
sire_aplica_acrecentamiento = fields.Boolean(string='Aplica acrecentamiento',
help="Campo para archivo txt Ganancias SIRE. Marcar si aplica CDI")
sire_codigo_alicuota = fields.Char(size=4)
born_country_id = fields.Many2one('res.country', string='País de Nacimiento', ondelete='restrict')
birthdate = fields.Date(string='Fecha de Nacimiento')
16 changes: 16 additions & 0 deletions l10n_ar_txt_sire/views/account_payment_view.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_account_payment_form" model="ir.ui.view">
<field name="name">account.payment.form.inherited</field>
<field name="model">account.payment</field>
<field name="inherit_id" ref="account.view_account_payment_form"/>
<field name="arch" type="xml">
<field name="ref" position="after">
<field name="es_sire" invisible="1"/>
<field name="sire_aplica_cdi" attrs="{'invisible': [('es_sire', '!=', True)]}"/>
<field name="sire_aplica_acrecentamiento" attrs="{'invisible': [('es_sire', '!=', True)]}"/>
<field name="sire_codigo_alicuota" attrs="{'invisible': [('es_sire', '!=', True)], 'required': [('es_sire', '==', True)]}"/>
</field>
</field>
</record>
</odoo>
17 changes: 17 additions & 0 deletions l10n_ar_txt_sire/views/res_partner_view.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_partner_form" model="ir.ui.view">
<field name="name">res.partner.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="l10n_ar_ux.view_partner_property_form"/>
<field name="arch" type="xml">
<field name="impuestos_padron" position="after">
<field name="sire_aplica_cdi"/>
<field name="sire_aplica_acrecentamiento"/>
<field name="sire_codigo_alicuota"/>
<field name="born_country_id" attrs="{'invisible': [('company_type', '!=', 'person')], 'required': [('company_type', '==', 'person')]}"/>
<field name="birthdate" attrs="{'invisible': [('company_type', '!=', 'person')], 'required': [('company_type', '==', 'person')]}"/>
</field>
</field>
</record>
</odoo>

0 comments on commit 293176e

Please sign in to comment.