Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[IMP] l10n_ar_txt_sire: txt retenciones sire aplicadas #522

Open
wants to merge 1 commit into
base: 16.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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>