Skip to content

Commit 25d700e

Browse files
committed
[IMP] l10n_ar_tax: computation of perceptions
unificamos algunos criterios entre ventas y facturas. 1. en ventas: a) actualizamos automáticamente alicuotas si cambia fecha o partner b) dejamos que sale_ux siga actualizando impuestos automáticamente si cambia la FP 2. en facturas: a) actualizamos automáticamente alicuotas si cambia fecha o partner b) cambio de fiscal position requiere cambio con botón, vamos a ver con contabilidad si re-incorporamos posibilidad de cambio automático closes #1295 Related: ingadhoc/odoo-argentina-ee#907 Related: ingadhoc/argentina-sale#279 Signed-off-by: Juan José Scarafía <jjs@adhoc.com.ar>
1 parent 4c12736 commit 25d700e

1 file changed

Lines changed: 5 additions & 23 deletions

File tree

l10n_ar_tax/models/account_move.py

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ class AccountMove(models.Model):
99
perceptions_fiscal_positon = fields.Boolean(
1010
compute="_compute_perceptions_fiscal_position",
1111
)
12-
# Hacemos almacenado show_update_fpos para que funcione el _onchange_fpos_id_show_update_fpos
13-
show_update_fpos = fields.Boolean(store=True)
1412

1513
def _compute_perceptions_fiscal_position(self):
1614
"""
@@ -37,29 +35,13 @@ def write(self, vals):
3735
self._l10n_ar_recompute_fiscal_position_taxes()
3836
return res
3937

40-
@api.onchange("commercial_partner_id")
41-
def _onchange_fpos_id_show_update_fpos(self):
42-
"""Si cambiamos el partner y la posicion fiscal es la misma (super no configuró show_update_fpos = True) y tiene impuestos de tipo percepcion, mostramos el boton de actualizar posicion fiscal
43-
ya que las alícuotas pueden ser diferentes"""
44-
super()._onchange_fpos_id_show_update_fpos()
45-
if (
46-
not self.show_update_fpos
47-
and self.line_ids
48-
and self.commercial_partner_id != self._origin.commercial_partner_id
49-
and self.fiscal_position_id.l10n_ar_tax_ids.filtered(lambda x: x.tax_type == "perception")
50-
):
51-
self.show_update_fpos = True
52-
53-
def action_update_fpos_values(self):
54-
"""Queremos que desaparezca el botón 'Update Taxes and Accounts' una vez que se haga click en el."""
55-
super().action_update_fpos_values()
56-
self.show_update_fpos = False
57-
58-
@api.onchange("invoice_date")
38+
@api.onchange("invoice_date", "commercial_partner_id")
5939
def _l10n_ar_recompute_fiscal_position_taxes(self):
60-
"""Recalculamos las percepciones si cambiamos la fecha de la orden de venta. Para ello nos basamos en los
61-
impuestos de la posicion fiscal, buscamos si hay impuestos existentes para los tax groups involucrados y los
40+
"""Recalculamos las percepciones si cambiamos la fecha de la orden de venta o el commercial partner.
41+
IMPORTANTE: este metodo solo esta pensado para cambiar alicuota de MISMA fiscal position (por cambio en fecha o partner) pero no para cambiar los impuestos.
42+
Para ello nos basamos en los impuestos de la posicion fiscal, buscamos si hay impuestos existentes para los tax groups involucrados y los
6243
reemplazamos por los nuevos impuestos.
44+
NO lo hacemos para el cambio de fiscal_position_id porque el onchange de fiscal_position_id implementado en sale_ux ya recomputa todos los taxes
6345
"""
6446
for move in self.filtered(
6547
lambda x: x.is_sale_document(include_receipts=True) and x.perceptions_fiscal_positon and x.state == "draft"

0 commit comments

Comments
 (0)