Skip to content

Commit bb3bb71

Browse files
committed
[ADD] l10n_ar_edi_ux: mejora de rendimiento en actualizacion masiva de partners
closes #358 Task: 37730 Signed-off-by: Katherine Zaoral <kz@adhoc.com.ar>
1 parent e134609 commit bb3bb71

File tree

5 files changed

+49
-4
lines changed

5 files changed

+49
-4
lines changed

l10n_ar_edi_ux/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
'name': 'Argentinian Electronic Invoicing UX',
3-
'version': "16.0.1.9.0",
3+
'version': "16.0.1.10.0",
44
'category': 'Localization/Argentina',
55
'sequence': 14,
66
'author': 'ADHOC SA',

l10n_ar_edi_ux/models/res_partner.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
class ResPartner(models.Model):
99
_inherit = 'res.partner'
1010

11+
12+
failed_to_update = fields.Boolean(
13+
string="Falló actualización AFIP",
14+
tracking=True)
15+
1116
def update_partner_data_from_afip(self):
1217
""" Funcion que llama al wizard para actualizar data de partners desde afip sin abrir wizard.
1318
Podríamos mejorar pasando un argumento para sobreescribir o no valores que esten o no definidos

l10n_ar_edi_ux/views/res_partner_view.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,17 @@
1212
</field>
1313
</record>
1414

15+
<record id="res_partner_view_search" model="ir.ui.view">
16+
<field name="name">res.partner.search.inherit</field>
17+
<field name="model">res.partner</field>
18+
<field name="inherit_id" ref="base.view_res_partner_filter"/>
19+
<field name="arch" type="xml">
20+
<xpath expr="//filter[@name='l10n_ar_afip_responsibility_type_id_filter']" position="after">
21+
<group>
22+
<filter string="Falló actualización AFIP" name="failed_to_update" domain="[('failed_to_update', '=', True), ('country_code', '=', 'AR')]"/>
23+
</group>
24+
</xpath>
25+
<separator/>
26+
</field>
27+
</record>
1528
</odoo>

l10n_ar_edi_ux/wizards/res_partner_update_from_padron_wizard.py

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import re
2+
13
from odoo import models, api, fields, _
24
from ast import literal_eval
35
from odoo.exceptions import UserError
@@ -117,6 +119,8 @@ def get_fields(self):
117119
required=True,
118120
)
119121

122+
wizard_error = fields.Html()
123+
120124
@api.onchange('partner_id')
121125
def change_partner(self):
122126
self.ensure_one()
@@ -169,8 +173,13 @@ def _update(self):
169173
def automatic_process_cb(self):
170174
for partner in self.partner_ids:
171175
self.partner_id = partner.id
172-
self.change_partner()
173-
self._update()
176+
try:
177+
self.change_partner()
178+
self._update()
179+
self.partner_id.failed_to_update = False
180+
except:
181+
self.partner_id.failed_to_update = True
182+
continue
174183
self.write({'state': 'finished'})
175184
return {
176185
'type': 'ir.actions.act_window',
@@ -209,16 +218,33 @@ def _next_screen(self):
209218
values.update({
210219
'partner_id': partner.id,
211220
'state': 'selection',
221+
'wizard_error': False,
212222
})
213223
else:
214224
values.update({
215225
'state': 'finished',
226+
'wizard_error': False,
227+
'partner_id': False,
216228
})
217229

218230
self.write(values)
219231
# because field is not changed, view is distroyed and reopen, on change
220232
# is not called an we call it manually
221-
self.change_partner()
233+
try:
234+
self.change_partner()
235+
self.partner_id.failed_to_update = False
236+
except (UserError) as exp:
237+
self.partner_id.failed_to_update = True
238+
239+
#Procesamos el error que nos devuelve afip
240+
patron = re.compile(r"'error': \['(.*?)'\]")
241+
resultado = patron.search(str(exp))
242+
if resultado:
243+
error = resultado.group(1)
244+
else:
245+
error = str(exp)
246+
self.wizard_error = '<div class= "alert alert-warning" role="alert" style="margin-bottom:0px;" >' + error + '</div>'
247+
222248
return {
223249
'type': 'ir.actions.act_window',
224250
'res_model': self._name,

l10n_ar_edi_ux/wizards/res_partner_update_from_padron_wizard_view.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
</header>
5050
<sheet>
5151
<h2 attrs="{'invisible': [('state', '!=', 'finished')]}">There are no more partners to update for this request...</h2>
52+
<field name="wizard_error" readonly="1" attrs="{'invisible': not wizard_error}"/>
5253
<p class="oe_grey" attrs="{'invisible': [('state', '!=', ('option'))]}">
5354
Only Partners with cuit are going to be updated.<br/>
5455
Select the list of fields you want to update.

0 commit comments

Comments
 (0)