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 = {