Skip to content
Snippets Groups Projects
Commit 33bd3fe6 authored by Reviewer Intergaláctico's avatar Reviewer Intergaláctico
Browse files

[MOD] Res Partner Perception (Import & Updates)

* Mass Import now sets sit_iibb properly.
* Allow edition of some fields in res.partner.perception from padron
parent 51334dae
No related branches found
No related tags found
3 merge requests!168.0 stage,!158.0 arba change,!7[MOD] Res Partner Perception IIBB Sit Load
This commit is part of merge request !7. Comments created here will be created in the context of that merge request.
......@@ -44,10 +44,19 @@ class res_partner(models.Model):
@api.model
def _compute_allowed_padron_tax_commands(self, old_commands, new_commands):
allowed_to_keep_comms = []
to_remove_new_comm = []
padron_tax_ids = map(lambda x: x[1], new_commands)
for command in old_commands:
if command[0] in [0, 1, 2, 4] and \
command[1] not in padron_tax_ids:
if command[1] not in padron_tax_ids:
allowed_to_keep_comms.append(command)
if command[0] == 1 and command[1] in padron_tax_ids:
vals = command[2].copy()
vals.pop('percent', False)
vals.pop('perception_id', False)
allowed_to_keep_comms.append((1, command[1], vals))
to_remove_new_comm.append(command[1])
for command in new_commands:
if command[1] not in to_remove_new_comm:
allowed_to_keep_comms.append(command)
return allowed_to_keep_comms
......@@ -204,8 +213,7 @@ class res_partner(models.Model):
partner_perception_ids = partner_perception_obj.search([
('partner_id', '=', self.id),
('perception_id', '=', perception_id),
('activity_id', '=', False)])
('perception_id', '=', perception_id)])
if len(partner_perception_ids) > 1:
raise except_orm(
......@@ -268,10 +276,10 @@ class res_partner(models.Model):
res_agip['perception_ids'][0])
if 'perception_ids' in vals:
old_comms = self._compute_allowed_padron_tax_commands(
real_comms = self._compute_allowed_padron_tax_commands(
vals['perception_ids'], perception_ids_lst)
else:
old_comms = []
real_comms = perception_ids_lst
if vat_changed:
old_perceps = partner.read(
['perception_ids'])[0]['perception_ids']
......@@ -280,9 +288,9 @@ class res_partner(models.Model):
for comm in perception_ids_lst:
if comm[1] not in old_perceps:
keep_percep_comms.append(comm)
perception_ids_lst = keep_percep_comms
real_comms = keep_percep_comms + old_comms
vals.update({
'perception_ids': old_comms + perception_ids_lst,
'perception_ids': real_comms,
})
if supplier:
......@@ -300,21 +308,21 @@ class res_partner(models.Model):
retention_ids_lst.append(res_agip['retention_ids'][0])
if 'retention_ids' in vals:
old_comms = self._compute_allowed_padron_tax_commands(
real_comms = self._compute_allowed_padron_tax_commands(
vals['retention_ids'], retention_ids_lst)
else:
old_comms = []
real_comms = []
if vat_changed:
old_retent = partner.read(
['retention_ids'])[0]['retention_ids']
old_comms = map(lambda x: (2, x, False), old_retent)
keep_retent_comms = []
for comm in perception_ids_lst:
for comm in retention_ids_lst:
if comm[1] not in old_retent:
keep_retent_comms.append(comm)
perception_ids_lst = keep_retent_comms
real_comms = keep_retent_comms + old_comms
vals.update({
'retention_ids': old_comms + retention_ids_lst,
'retention_ids': real_comms,
})
return super(res_partner, self).write(vals)
......
......@@ -89,6 +89,10 @@ class padron_mass_update(models.TransientModel):
@api.model
def _update_perception_arba(self, perception_id):
multilateral_record = self.env.ref(
'l10n_ar_perceptions.iibb_situation_multilateral')
local_record = self.env.ref(
'l10n_ar_perceptions.iibb_situation_local')
cr = self.env.cr
query = """
WITH padron AS (
......@@ -121,11 +125,6 @@ class padron_mass_update(models.TransientModel):
cr.execute(query, params)
for res in cr.fetchall():
partner_id = res[0] or res[4]
multi = '2' if res[2] else '1'
q = "UPDATE res_partner SET sit_iibb=%(sit_iibb)s WHERE id=%(partner_id)s"
q_params = {'partner_id': partner_id, 'sit_iibb': multi}
self._cr.execute(q, q_params)
if res[6] == 'UPDATE': # Change the amount of percentage
q = "UPDATE res_partner_perception SET percent=%(percent)s, \
from_padron = True WHERE id=%(id)s"
......@@ -137,9 +136,15 @@ class padron_mass_update(models.TransientModel):
q_params = {'percent': -1, 'id': res[3]}
self._cr.execute(q, q_params)
elif res[6] == 'CREATE': # Create the res.partner.perception
q = "INSERT INTO res_partner_perception (partner_id, percent, perception_id, from_padron) \
VALUES (%(partner_id)s, %(percent)s, %(perception_id)s, True)"
q_params = {'percent': res[1], 'partner_id': res[0], 'perception_id': perception_id}
q = "INSERT INTO res_partner_perception (partner_id, percent, perception_id, from_padron, sit_iibb) \
VALUES (%(partner_id)s, %(percent)s, %(perception_id)s, True, %(sit_iibb)s)"
q_params = {
'percent': res[1],
'partner_id': res[0],
'perception_id': perception_id,
'sit_iibb': multilateral_record.id if res[2]
else local_record.id,
}
self._cr.execute(q, q_params)
else:
e_title = _('Query Error')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment