From f800cc4d5ea162ac657b591a790fd0d4121b765a Mon Sep 17 00:00:00 2001 From: Marc Calvo Date: Wed, 4 Dec 2024 16:40:08 +0100 Subject: [PATCH] Isolate method to handle auvidi categories --- som_auvidi/giscedata_polissa.py | 69 +++++++++++---------------------- 1 file changed, 23 insertions(+), 46 deletions(-) diff --git a/som_auvidi/giscedata_polissa.py b/som_auvidi/giscedata_polissa.py index e661b6702..5b4a53744 100644 --- a/som_auvidi/giscedata_polissa.py +++ b/som_auvidi/giscedata_polissa.py @@ -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 = {