Skip to content

Commit

Permalink
Isolate method to handle auvidi categories
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcCalvoC committed Dec 4, 2024
1 parent 59e1f75 commit f800cc4
Showing 1 changed file with 23 additions and 46 deletions.
69 changes: 23 additions & 46 deletions som_auvidi/giscedata_polissa.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,53 +59,30 @@ def aplicar_modificacio(self, cursor, uid, mod_id, polissa_id=None):
cancels_auvidi = (modcon.modcontractual_ant
and modcon.modcontractual_ant.te_auvidi
and not modcon.te_auvidi)
context = {}
info = ''
sg_pol_id = sg_polissa_obj.search(cursor, uid, [('polissa_id', '=', polissa_id)])
if len(sg_pol_id):
if current_te_auvidi:
sg_polissa_obj.handle_polissa_sg_category(cursor, uid, polissa_id, action='assign', context=context)
# # Actualitzem data inici si fa falta
info = sg_polissa_obj.check_actualitzar_data_inici(
cursor, uid, sg_pol_id, modcon.data_inici
)
elif cancels_auvidi:
sg_polissa_obj.handle_polissa_sg_category(cursor, uid, polissa_id, action='unassign', context=context)
# Actualitzem data sortida si fa falta
data_inici_modcon = datetime.strptime(modcon.data_inici, '%Y-%m-%d')
data_sortida_sg = data_inici_modcon - timedelta(days=1)
data_sortida_sg_str = data_sortida_sg.strftime('%Y-%m-%d')
info = sg_polissa_obj.check_actualitzar_data_sortida(
cursor, uid, sg_pol_id, data_sortida_sg_str
)

if info:
observacions = modcon.observacions + info
modcon.write({'observacions': observacions})

if current_te_auvidi or cancels_auvidi:
sg_pol_id = sg_polissa_obj.search(cursor, uid, [('polissa_id', '=', polissa_id)])
if len(sg_pol_id):
sg_pol_data = sg_polissa_obj.read(
cursor, uid, sg_pol_id[0], ['servei_generacio_id'])
if sg_pol_data.get('servei_generacio_id'):
servei_gen_id = sg_pol_data.get('servei_generacio_id', [False])[0]
if servei_gen_id:
categoria_polissa = servei_gen_obj.read(
cursor, uid, servei_gen_id, ['categoria_polissa']
).get('categoria_polissa')
polissa_current_categories = polissa_obj.read(
cursor, uid, polissa_id, ['category_id']
).get('category_id', [])
polissa_current_categories = list(set(polissa_current_categories))
new_categories = []
# If AUVIDI is cancelled we must remove category
if (cancels_auvidi
and categoria_polissa
and categoria_polissa[0] in polissa_current_categories):
polissa_current_categories.remove(categoria_polissa[0])
new_categories = polissa_current_categories
# If AUVIDI and there's no category we must add it
elif (current_te_auvidi
and categoria_polissa
and categoria_polissa[0] not in polissa_current_categories):
new_categories = polissa_current_categories + [categoria_polissa[0]]

if new_categories:
polissa_obj.write(cursor, uid, polissa_id, {
'category_id': [(6, 0, new_categories)]})
info = ''
if current_te_auvidi:
info = sg_polissa_obj.check_actualitzar_data_inici(
cursor, uid, sg_pol_id, modcon.data_inici
)
elif cancels_auvidi:
data_inici_modcon = datetime.strptime(modcon.data_inici, '%Y-%m-%d')
data_sortida_sg = data_inici_modcon - timedelta(days=1)
data_sortida_sg_str = data_sortida_sg.strftime('%Y-%m-%d')
info = sg_polissa_obj.check_actualitzar_data_sortida(
cursor, uid, sg_pol_id, data_sortida_sg_str
)
if info:
observacions = modcon.observacions + info
modcon.write({'observacions': observacions})
return res

_columns = {
Expand Down

0 comments on commit f800cc4

Please sign in to comment.