Skip to content

Commit a3b770f

Browse files
committed
[IMP] l10n_ar_afipws_fe: RG 5616/2024 Currency
1 parent a4f408e commit a3b770f

File tree

4 files changed

+45
-0
lines changed

4 files changed

+45
-0
lines changed

l10n_ar_afipws_fe/models/account_move.py

+18
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,24 @@ class AccountMove(models.Model):
8080
)
8181
asynchronous_post = fields.Boolean()
8282

83+
l10n_ar_payment_foreign_currency_default = fields.Selection(related="company_id.l10n_ar_payment_foreign_currency")
84+
l10n_ar_payment_foreign_currency = fields.Selection(
85+
[("S", "Yes"), ("N", "No")],
86+
compute="compute_l10n_ar_payment_foreign_currency",
87+
store=True,
88+
)
89+
l10n_ar_currency_code = fields.Char("Currency Code", related="currency_id.name")
90+
91+
@api.onchange("currency_id", "line_ids")
92+
@api.depends("currency_id")
93+
def compute_l10n_ar_payment_foreign_currency(self):
94+
self.l10n_ar_payment_foreign_currency = False
95+
for move in self:
96+
default_value = move.l10n_ar_payment_foreign_currency_default
97+
if default_value == "account":
98+
account = move.line_ids.account_id.filtered(lambda x: x.account_type == "asset_receivable")
99+
default_value = "S" if account.currency_id and account.currency_id != move.company_currency_id else "N"
100+
move.l10n_ar_payment_foreign_currency = default_value
83101

84102
@api.depends('journal_id', 'l10n_latam_document_type_id')
85103
def _compute_highest_name(self):

l10n_ar_afipws_fe/models/account_move_ws.py

+12
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class AccountMove(models.Model):
1717
# CREAR FACTURA en pyafipws
1818
##########################
1919

20+
2021
def pyafipws_create_invoice(self, ws, invoice_info):
2122
self.ensure_one()
2223
afip_ws = self.journal_id.afip_ws
@@ -50,6 +51,8 @@ def wsfe_pyafipws_create_invoice(self, ws, invoice_info):
5051
invoice_info["fecha_serv_hasta"],
5152
invoice_info["moneda_id"],
5253
invoice_info["moneda_ctz"],
54+
cancela_misma_moneda_ext=invoice_info["cancela_misma_moneda_ext"],
55+
condicion_iva_receptor_id=invoice_info["condicion_iva_receptor_id"],
5356
)
5457

5558
def wsmtxca_pyafipws_create_invoice(self, ws, invoice_info):
@@ -74,6 +77,8 @@ def wsmtxca_pyafipws_create_invoice(self, ws, invoice_info):
7477
invoice_info["moneda_id"],
7578
invoice_info["moneda_ctz"],
7679
invoice_info["obs_generales"],
80+
cancela_misma_moneda_ext=invoice_info["cancela_misma_moneda_ext"],
81+
condicion_iva_receptor_id=invoice_info["condicion_iva_receptor_id"],
7782
)
7883

7984
def wsfex_pyafipws_create_invoice(self, ws, invoice_info):
@@ -99,6 +104,8 @@ def wsfex_pyafipws_create_invoice(self, ws, invoice_info):
99104
invoice_info["idioma_cbte"],
100105
invoice_info["incoterms_ds"],
101106
invoice_info["fecha_pago"],
107+
cancela_misma_moneda_ext=invoice_info["cancela_misma_moneda_ext"],
108+
condicion_iva_receptor_id=invoice_info["condicion_iva_receptor_id"],
102109
)
103110

104111
def wsbfe_pyafipws_create_invoice(self, ws, invoice_info):
@@ -124,6 +131,8 @@ def wsbfe_pyafipws_create_invoice(self, ws, invoice_info):
124131
invoice_info["moneda_id"],
125132
invoice_info["moneda_ctz"],
126133
invoice_info["fecha_venc_pago"],
134+
cancela_misma_moneda_ext=invoice_info["cancela_misma_moneda_ext"],
135+
condicion_iva_receptor_id=invoice_info["condicion_iva_receptor_id"],
127136
)
128137

129138
##########################
@@ -322,6 +331,9 @@ def base_map_invoice_info(self):
322331
journal = self.journal_id
323332
invoice_info = {}
324333

334+
invoice_info["cancela_misma_moneda_ext"] = self.l10n_ar_payment_foreign_currency
335+
invoice_info["condicion_iva_receptor_id"] = self.partner_id.l10n_ar_afip_responsibility_type_id.code
336+
325337
invoice_info["commercial_partner"] = self.commercial_partner_id
326338
invoice_info["country"] = invoice_info["commercial_partner"].country_id
327339
invoice_info["journal"] = self.journal_id
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from odoo import fields, models
2+
3+
4+
class ResCompany(models.Model):
5+
6+
_inherit = "res.company"
7+
8+
l10n_ar_payment_foreign_currency = fields.Selection(
9+
[("S", "Yes"), ("N", "No"), ("account", "Account's Currency Dependant")],
10+
string="Default Policy for Payment in Foreign Currency",
11+
default="account"
12+
)
13+

l10n_ar_afipws_fe/models/res_config_settings.py

+2
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,5 @@ class ResConfigSettings(models.TransientModel):
1818
help="Este campo sera necesario cuando informes comprobantes del tipo FCE MiPyME",
1919
config_parameter="l10n_ar_afipws_fe.fce_transmission",
2020
)
21+
22+
l10n_ar_payment_foreign_currency = fields.Selection(related="company_id.l10n_ar_payment_foreign_currency")

0 commit comments

Comments
 (0)