dmencu 2.0.20 → 2.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/client/server/table-tem.d.ts +3 -0
  2. package/dist/client/server/table-tem.js +239 -0
  3. package/dist/client/server/types-dmencu.d.ts +48 -0
  4. package/dist/client/server/types-dmencu.js +33 -0
  5. package/dist/client/unlogged/css/bootstrap.min.css +6 -6
  6. package/dist/client/unlogged/tsconfig.json +14 -14
  7. package/dist/server/server/table-barrios.js +1 -1
  8. package/dist/server/server/table-comunas copy.d.ts +2 -0
  9. package/dist/server/server/table-comunas copy.js +28 -0
  10. package/dist/server/server/table-comunas.js +2 -2
  11. package/dist/server/server/table-encuestadores.js +7 -7
  12. package/dist/server/server/table-fracciones.js +1 -1
  13. package/dist/server/server/table-hogares.js +1 -1
  14. package/dist/server/server/table-hogares_sup.js +1 -1
  15. package/dist/server/server/table-manzanas.js +1 -1
  16. package/dist/server/server/table-parametros.js +1 -1
  17. package/dist/server/server/table-personal.js +7 -7
  18. package/dist/server/server/table-personal_rol.js +7 -7
  19. package/dist/server/server/table-personas.js +1 -1
  20. package/dist/server/server/table-personas_sup.js +1 -1
  21. package/dist/server/server/table-radios.js +3 -3
  22. package/dist/server/server/table-recepcionistas.js +1 -1
  23. package/dist/server/server/table-visitas.js +1 -1
  24. package/dist/server/server/table-visitas_sup.js +1 -1
  25. package/dist/server/server/table-viviendas.js +1 -1
  26. package/dist/unlogged/unlogged/css/bootstrap.min.css +6 -6
  27. package/dist/unlogged/unlogged/server/table-tem.d.ts +3 -0
  28. package/dist/unlogged/unlogged/server/table-tem.js +239 -0
  29. package/dist/unlogged/unlogged/server/types-dmencu.d.ts +48 -0
  30. package/dist/unlogged/unlogged/server/types-dmencu.js +33 -0
  31. package/dist/unlogged/unlogged/tsconfig.json +14 -14
  32. package/dist/unlogged/unlogged/unlogged/abrir-formulario.d.ts +13 -0
  33. package/dist/unlogged/unlogged/unlogged/abrir-formulario.js +109 -0
  34. package/dist/unlogged/unlogged/unlogged/adapt.d.ts +0 -0
  35. package/dist/unlogged/unlogged/unlogged/adapt.js +8 -0
  36. package/dist/unlogged/unlogged/unlogged/bypass-formulario.d.ts +202 -0
  37. package/dist/unlogged/unlogged/unlogged/bypass-formulario.js +1100 -0
  38. package/dist/unlogged/unlogged/unlogged/redux-formulario.d.ts +349 -0
  39. package/dist/unlogged/unlogged/unlogged/redux-formulario.js +318 -0
  40. package/dist/unlogged/unlogged/unlogged/render-formulario.d.ts +86 -0
  41. package/dist/unlogged/unlogged/unlogged/render-formulario.js +1692 -0
  42. package/dist/unlogged/unlogged/unlogged/render-general.d.ts +127 -0
  43. package/dist/unlogged/unlogged/unlogged/render-general.js +176 -0
  44. package/dist/unlogged/unlogged/unlogged/tipos.d.ts +486 -0
  45. package/dist/unlogged/unlogged/unlogged/tipos.js +22 -0
  46. package/dist/unlogged/unlogged/unlogged/unlogged.d.ts +1 -0
  47. package/dist/unlogged/unlogged/unlogged/unlogged.js +180 -0
  48. package/install/actualizar-2023-05-14.sql +38 -38
  49. package/install/actualizar_inconvar.sql +28 -28
  50. package/install/agregados_tem.sql +4 -4
  51. package/install/asignar_desasignar_tareas_tem_trg.sql +43 -43
  52. package/install/metadatos/permisos.tab +11 -11
  53. package/install/metadatos/roles.tab +10 -10
  54. package/install/metadatos/roles_permisos.tab +94 -94
  55. package/install/metadatos/tipovar.tab +9 -9
  56. package/install/sincro_tareas_areas_tareas_tem_trg.sql +29 -29
  57. package/install/usuarios_trg.sql +41 -41
  58. package/install/validar_tareas_tem_trg.sql +67 -67
  59. package/package.json +91 -91
@@ -1,95 +1,95 @@
1
- rol|permiso|accion|habilitado
2
- admin|campo|editar|true
3
- admin|campo|ver|true
4
- admin|casilleros_texto|editar|true
5
- admin|configurar|editar|true
6
- admin|configurar|ver|true
7
- admin|consistencias|editar|true
8
- admin|encuestas|ingresar|true
9
- admin|encuestas|justificar|true
10
- admin|encuestas|procesar|true
11
- auxiliar|campo|editar|false
12
- auxiliar|campo|ver|false
13
- auxiliar|casilleros_texto|editar|false
14
- auxiliar|configurar|editar|false
15
- auxiliar|configurar|ver|false
16
- auxiliar|consistencias|editar|false
17
- auxiliar|encuestas|ingresar|false
18
- auxiliar|encuestas|justificar|false
19
- auxiliar|encuestas|procesar|false
20
- coor_campo|campo|administrar|true
21
- coor_campo|campo|editar|true
22
- coor_campo|campo|ver|true
23
- coor_campo|casilleros_texto|editar|false
24
- coor_campo|configurar|editar|true
25
- coor_campo|configurar|ver|true
26
- coor_campo|consistencias|editar|true
27
- coor_campo|encuestas|ingresar|true
28
- coor_campo|encuestas|justificar|true
29
- coor_campo|encuestas|procesar|true
30
- direccion|campo|editar|true
31
- direccion|campo|ver|true
32
- direccion|casilleros_texto|editar|false
33
- direccion|configurar|editar|true
34
- direccion|configurar|ver|true
35
- direccion|consistencias|editar|true
36
- direccion|encuestas|ingresar|true
37
- direccion|encuestas|justificar|true
38
- direccion|encuestas|procesar|true
39
- dis_conceptual|campo|editar|false
40
- dis_conceptual|campo|ver|true
41
- dis_conceptual|casilleros_texto|editar|true
42
- dis_conceptual|configurar|editar|false
43
- dis_conceptual|configurar|ver|true
44
- dis_conceptual|consistencias|editar|false
45
- dis_conceptual|encuestas|ingresar|false
46
- dis_conceptual|encuestas|justificar|false
47
- dis_conceptual|encuestas|procesar|false
48
- procesamiento|campo|editar|false
49
- procesamiento|campo|ver|false
50
- procesamiento|casilleros_texto|editar|false
51
- procesamiento|configurar|editar|false
52
- procesamiento|configurar|ver|false
53
- procesamiento|consistencias|editar|true
54
- procesamiento|encuestas|ingresar|true
55
- procesamiento|encuestas|justificar|true
56
- procesamiento|encuestas|procesar|true
57
- recepcionista|campo|editar|true
58
- recepcionista|campo|ver|true
59
- recepcionista|casilleros_texto|editar|false
60
- recepcionista|configurar|editar|true
61
- recepcionista|configurar|ver|true
62
- recepcionista|consistencias|editar|false
63
- recepcionista|encuestas|ingresar|true
64
- recepcionista|encuestas|justificar|true
65
- recepcionista|encuestas|procesar|false
66
- encuestador|campo|editar|false
67
- encuestador|campo|ver|false
68
- encuestador|casilleros_texto|editar|false
69
- encuestador|configurar|editar|false
70
- encuestador|configurar|ver|false
71
- encuestador|consistencias|editar|false
72
- encuestador|encuestas|ingresar|true
73
- encuestador|encuestas|justificar|true
74
- encuestador|encuestas|procesar|false
75
- encuestador|encuestas|relevar|true
76
- recuperador|campo|editar|false
77
- recuperador|campo|ver|false
78
- recuperador|casilleros_texto|editar|false
79
- recuperador|configurar|editar|false
80
- recuperador|configurar|ver|false
81
- recuperador|consistencias|editar|false
82
- recuperador|encuestas|ingresar|true
83
- recuperador|encuestas|justificar|true
84
- recuperador|encuestas|procesar|false
85
- recuperador|encuestas|relevar|true
86
- supervisor|campo|editar|false
87
- supervisor|campo|ver|false
88
- supervisor|casilleros_texto|editar|false
89
- supervisor|configurar|editar|false
90
- supervisor|configurar|ver|false
91
- supervisor|consistencias|editar|false
92
- supervisor|encuestas|ingresar|true
93
- supervisor|encuestas|justificar|true
94
- supervisor|encuestas|procesar|false
1
+ rol|permiso|accion|habilitado
2
+ admin|campo|editar|true
3
+ admin|campo|ver|true
4
+ admin|casilleros_texto|editar|true
5
+ admin|configurar|editar|true
6
+ admin|configurar|ver|true
7
+ admin|consistencias|editar|true
8
+ admin|encuestas|ingresar|true
9
+ admin|encuestas|justificar|true
10
+ admin|encuestas|procesar|true
11
+ auxiliar|campo|editar|false
12
+ auxiliar|campo|ver|false
13
+ auxiliar|casilleros_texto|editar|false
14
+ auxiliar|configurar|editar|false
15
+ auxiliar|configurar|ver|false
16
+ auxiliar|consistencias|editar|false
17
+ auxiliar|encuestas|ingresar|false
18
+ auxiliar|encuestas|justificar|false
19
+ auxiliar|encuestas|procesar|false
20
+ coor_campo|campo|administrar|true
21
+ coor_campo|campo|editar|true
22
+ coor_campo|campo|ver|true
23
+ coor_campo|casilleros_texto|editar|false
24
+ coor_campo|configurar|editar|true
25
+ coor_campo|configurar|ver|true
26
+ coor_campo|consistencias|editar|true
27
+ coor_campo|encuestas|ingresar|true
28
+ coor_campo|encuestas|justificar|true
29
+ coor_campo|encuestas|procesar|true
30
+ direccion|campo|editar|true
31
+ direccion|campo|ver|true
32
+ direccion|casilleros_texto|editar|false
33
+ direccion|configurar|editar|true
34
+ direccion|configurar|ver|true
35
+ direccion|consistencias|editar|true
36
+ direccion|encuestas|ingresar|true
37
+ direccion|encuestas|justificar|true
38
+ direccion|encuestas|procesar|true
39
+ dis_conceptual|campo|editar|false
40
+ dis_conceptual|campo|ver|true
41
+ dis_conceptual|casilleros_texto|editar|true
42
+ dis_conceptual|configurar|editar|false
43
+ dis_conceptual|configurar|ver|true
44
+ dis_conceptual|consistencias|editar|false
45
+ dis_conceptual|encuestas|ingresar|false
46
+ dis_conceptual|encuestas|justificar|false
47
+ dis_conceptual|encuestas|procesar|false
48
+ procesamiento|campo|editar|false
49
+ procesamiento|campo|ver|false
50
+ procesamiento|casilleros_texto|editar|false
51
+ procesamiento|configurar|editar|false
52
+ procesamiento|configurar|ver|false
53
+ procesamiento|consistencias|editar|true
54
+ procesamiento|encuestas|ingresar|true
55
+ procesamiento|encuestas|justificar|true
56
+ procesamiento|encuestas|procesar|true
57
+ recepcionista|campo|editar|true
58
+ recepcionista|campo|ver|true
59
+ recepcionista|casilleros_texto|editar|false
60
+ recepcionista|configurar|editar|true
61
+ recepcionista|configurar|ver|true
62
+ recepcionista|consistencias|editar|false
63
+ recepcionista|encuestas|ingresar|true
64
+ recepcionista|encuestas|justificar|true
65
+ recepcionista|encuestas|procesar|false
66
+ encuestador|campo|editar|false
67
+ encuestador|campo|ver|false
68
+ encuestador|casilleros_texto|editar|false
69
+ encuestador|configurar|editar|false
70
+ encuestador|configurar|ver|false
71
+ encuestador|consistencias|editar|false
72
+ encuestador|encuestas|ingresar|true
73
+ encuestador|encuestas|justificar|true
74
+ encuestador|encuestas|procesar|false
75
+ encuestador|encuestas|relevar|true
76
+ recuperador|campo|editar|false
77
+ recuperador|campo|ver|false
78
+ recuperador|casilleros_texto|editar|false
79
+ recuperador|configurar|editar|false
80
+ recuperador|configurar|ver|false
81
+ recuperador|consistencias|editar|false
82
+ recuperador|encuestas|ingresar|true
83
+ recuperador|encuestas|justificar|true
84
+ recuperador|encuestas|procesar|false
85
+ recuperador|encuestas|relevar|true
86
+ supervisor|campo|editar|false
87
+ supervisor|campo|ver|false
88
+ supervisor|casilleros_texto|editar|false
89
+ supervisor|configurar|editar|false
90
+ supervisor|configurar|ver|false
91
+ supervisor|consistencias|editar|false
92
+ supervisor|encuestas|ingresar|true
93
+ supervisor|encuestas|justificar|true
94
+ supervisor|encuestas|procesar|false
95
95
  supervisor|encuestas|relevar|true
@@ -1,10 +1,10 @@
1
- tipovar|html_type|type_name|validar|radio
2
- boolean|text|boolean|boolean|false
3
- decimal|number|decimal|numerico|false
4
- fecha|text|date|texto|false
5
- hora|text|interval|texto|false
6
- numero|number|bigint|numerico|false
7
- opciones|number|bigint|opciones|true
8
- si_no|number|bigint|opciones|true
9
- si_no_nn|number|bigint|opciones|true
1
+ tipovar|html_type|type_name|validar|radio
2
+ boolean|text|boolean|boolean|false
3
+ decimal|number|decimal|numerico|false
4
+ fecha|text|date|texto|false
5
+ hora|text|interval|texto|false
6
+ numero|number|bigint|numerico|false
7
+ opciones|number|bigint|opciones|true
8
+ si_no|number|bigint|opciones|true
9
+ si_no_nn|number|bigint|opciones|true
10
10
  texto|text|text|texto|false
@@ -1,29 +1,29 @@
1
- --set role dmencu_owner;
2
- --set search_path=base;
3
-
4
- DROP FUNCTION if exists sincro_tareas_areas_tareas_tem_trg();
5
- CREATE OR REPLACE FUNCTION sincro_tareas_areas_tareas_tem_trg()
6
- RETURNS trigger
7
- LANGUAGE 'plpgsql'
8
- AS $BODY$
9
- begin
10
- update tareas_tem tt
11
- set asignado = case when new.asignado is not null and new.asignado is distinct from old.asignado then new.asignado else asignado end,
12
- recepcionista = case when new.recepcionista is not null and new.recepcionista is distinct from old.recepcionista then new.recepcionista else recepcionista end
13
- from tem t
14
- where tt.operativo=t.operativo
15
- and tt.enc=t.enc
16
- and tt.tarea=new.tarea
17
- and t.area=new.area
18
- and (t.tarea_actual is null or t.tarea_actual = tt.tarea)
19
- and t.enc_autogenerado_dm_capa is null; --ignora las encuestas de capa
20
- return new;
21
- end;
22
- $BODY$;
23
-
24
- DROP TRIGGER IF EXISTS sincro_tareas_areas_tareas_tem_trg ON tareas_areas;
25
- CREATE TRIGGER sincro_tareas_areas_tareas_tem_trg
26
- AFTER INSERT OR UPDATE OF recepcionista, asignado
27
- ON tareas_areas
28
- FOR EACH ROW
29
- EXECUTE PROCEDURE sincro_tareas_areas_tareas_tem_trg();
1
+ --set role dmencu_owner;
2
+ --set search_path=base;
3
+
4
+ DROP FUNCTION if exists sincro_tareas_areas_tareas_tem_trg();
5
+ CREATE OR REPLACE FUNCTION sincro_tareas_areas_tareas_tem_trg()
6
+ RETURNS trigger
7
+ LANGUAGE 'plpgsql'
8
+ AS $BODY$
9
+ begin
10
+ update tareas_tem tt
11
+ set asignado = case when new.asignado is not null and new.asignado is distinct from old.asignado then new.asignado else asignado end,
12
+ recepcionista = case when new.recepcionista is not null and new.recepcionista is distinct from old.recepcionista then new.recepcionista else recepcionista end
13
+ from tem t
14
+ where tt.operativo=t.operativo
15
+ and tt.enc=t.enc
16
+ and tt.tarea=new.tarea
17
+ and t.area=new.area
18
+ and (t.tarea_actual is null or t.tarea_actual = tt.tarea)
19
+ and t.enc_autogenerado_dm_capa is null; --ignora las encuestas de capa
20
+ return new;
21
+ end;
22
+ $BODY$;
23
+
24
+ DROP TRIGGER IF EXISTS sincro_tareas_areas_tareas_tem_trg ON tareas_areas;
25
+ CREATE TRIGGER sincro_tareas_areas_tareas_tem_trg
26
+ AFTER INSERT OR UPDATE OF recepcionista, asignado
27
+ ON tareas_areas
28
+ FOR EACH ROW
29
+ EXECUTE PROCEDURE sincro_tareas_areas_tareas_tem_trg();
@@ -1,41 +1,41 @@
1
- --set role dmencu_owner;
2
- set role to ut2023_muleto_owner;
3
- set search_path=base;
4
-
5
- DROP FUNCTION if exists usuarios_trg();
6
- set search_path = base;
7
-
8
- CREATE OR REPLACE FUNCTION usuarios_trg()
9
- RETURNS trigger
10
- LANGUAGE 'plpgsql'
11
- AS $BODY$
12
- declare
13
- v_rol_usuario_actual text;
14
- v_puede_asignar_rol boolean;
15
- begin
16
- if new.rol is distinct from old.rol then
17
- select rol
18
- into v_rol_usuario_actual
19
- from usuarios
20
- where usuario = split_part(current_setting('application_name'),' ',1);
21
- select true
22
- into v_puede_asignar_rol
23
- from roles_subordinados
24
- where rol = v_rol_usuario_actual and rol_subordinado = new.rol;
25
- if v_puede_asignar_rol or v_rol_usuario_actual = 'admin' then
26
- null;
27
- else
28
- raise exception 'No se peude asignar el rol %', new.rol;
29
- end if;
30
- end if;
31
- return new;
32
- end;
33
- $BODY$;
34
-
35
- DROP TRIGGER IF EXISTS usuarios_trg ON usuarios;
36
- CREATE TRIGGER usuarios_trg
37
- BEFORE UPDATE OR INSERT
38
- ON usuarios
39
- FOR EACH ROW
40
- EXECUTE PROCEDURE usuarios_trg();
41
-
1
+ --set role dmencu_owner;
2
+ set role to ut2023_muleto_owner;
3
+ set search_path=base;
4
+
5
+ DROP FUNCTION if exists usuarios_trg();
6
+ set search_path = base;
7
+
8
+ CREATE OR REPLACE FUNCTION usuarios_trg()
9
+ RETURNS trigger
10
+ LANGUAGE 'plpgsql'
11
+ AS $BODY$
12
+ declare
13
+ v_rol_usuario_actual text;
14
+ v_puede_asignar_rol boolean;
15
+ begin
16
+ if new.rol is distinct from old.rol then
17
+ select rol
18
+ into v_rol_usuario_actual
19
+ from usuarios
20
+ where usuario = split_part(current_setting('application_name'),' ',1);
21
+ select true
22
+ into v_puede_asignar_rol
23
+ from roles_subordinados
24
+ where rol = v_rol_usuario_actual and rol_subordinado = new.rol;
25
+ if v_puede_asignar_rol or v_rol_usuario_actual = 'admin' then
26
+ null;
27
+ else
28
+ raise exception 'No se peude asignar el rol %', new.rol;
29
+ end if;
30
+ end if;
31
+ return new;
32
+ end;
33
+ $BODY$;
34
+
35
+ DROP TRIGGER IF EXISTS usuarios_trg ON usuarios;
36
+ CREATE TRIGGER usuarios_trg
37
+ BEFORE UPDATE OR INSERT
38
+ ON usuarios
39
+ FOR EACH ROW
40
+ EXECUTE PROCEDURE usuarios_trg();
41
+
@@ -1,67 +1,67 @@
1
- --set role dmencu_owner;
2
- --set search_path=base;
3
-
4
- DROP FUNCTION if exists validar_tareas_tem_trg();
5
- set search_path = base;
6
-
7
- CREATE OR REPLACE FUNCTION validar_tareas_tem_trg()
8
- RETURNS trigger
9
- LANGUAGE 'plpgsql'
10
- AS $BODY$
11
- declare
12
- v_habilitada boolean;
13
- v_tarea_actual text;
14
- v_permite_asignar boolean;
15
- v_estado_al_asignar text;
16
- v_tarea_inicial text;
17
- begin
18
- select tarea_actual, habilitada into v_tarea_actual, v_habilitada
19
- from tem
20
- where operativo = new.operativo and enc = new.enc;
21
- select permite_asignar, estado_al_asignar into v_permite_asignar, v_estado_al_asignar
22
- from estados
23
- where operativo = new.operativo and estado = new.estado;
24
- select tarea into v_tarea_inicial
25
- from tareas
26
- where operativo = new.operativo and es_inicial;
27
- if v_habilitada then
28
- if old.asignado is distinct from new.asignado then
29
- if not v_permite_asignar then
30
- raise exception 'Error: no es posible asignar en la encuesta % del operativo % ya que su estado no lo permite', new.enc, new.operativo;
31
- end if;
32
- if new.recepcionista is null then
33
- raise exception 'Error: no es posible asignar en la encuesta % del operativo % ya que no se indicó un/a recepcionista', new.enc, new.operativo;
34
- end if;
35
- if not (new.tarea = coalesce(v_tarea_actual,'nulo') or new.tarea = v_tarea_inicial) then
36
- raise exception 'Error: no es posible modificar la encuesta % del operativo % ya que la tarea actual definida en TEM no coincide con la tarea %', new.enc, new.operativo, new.tarea;
37
- end if;
38
- end if;
39
- if old.recepcionista is distinct from new.recepcionista then
40
- if new.recepcionista is null and new.asignado is not null then
41
- raise exception 'Error: no es posible quitar el recepcionista de la encuesta % del operativo % ya que se la misma se encuentra asignada', new.enc, new.operativo;
42
- end if;
43
- end if;
44
- if old.asignado is distinct from new.asignado then
45
- if new.asignado is null then
46
- new.estado = '0D';
47
- else
48
- --if v_tarea_actual is distinct from new.tarea then
49
- if v_estado_al_asignar is not null then
50
- new.estado = v_estado_al_asignar;
51
- end if;
52
- --end if;
53
- end if;
54
- end if;
55
- else
56
- raise exception 'Error: la encuesta % del operativo % se encuentra deshabilitada', new.enc, new.operativo;
57
- end if;
58
- return new;
59
- end;
60
- $BODY$;
61
-
62
- DROP TRIGGER IF EXISTS validar_tareas_tem_trg ON tareas_tem;
63
- CREATE TRIGGER validar_tareas_tem_trg
64
- BEFORE UPDATE
65
- ON tareas_tem
66
- FOR EACH ROW
67
- EXECUTE PROCEDURE validar_tareas_tem_trg();
1
+ --set role dmencu_owner;
2
+ --set search_path=base;
3
+
4
+ DROP FUNCTION if exists validar_tareas_tem_trg();
5
+ set search_path = base;
6
+
7
+ CREATE OR REPLACE FUNCTION validar_tareas_tem_trg()
8
+ RETURNS trigger
9
+ LANGUAGE 'plpgsql'
10
+ AS $BODY$
11
+ declare
12
+ v_habilitada boolean;
13
+ v_tarea_actual text;
14
+ v_permite_asignar boolean;
15
+ v_estado_al_asignar text;
16
+ v_tarea_inicial text;
17
+ begin
18
+ select tarea_actual, habilitada into v_tarea_actual, v_habilitada
19
+ from tem
20
+ where operativo = new.operativo and enc = new.enc;
21
+ select permite_asignar, estado_al_asignar into v_permite_asignar, v_estado_al_asignar
22
+ from estados
23
+ where operativo = new.operativo and estado = new.estado;
24
+ select tarea into v_tarea_inicial
25
+ from tareas
26
+ where operativo = new.operativo and es_inicial;
27
+ if v_habilitada then
28
+ if old.asignado is distinct from new.asignado then
29
+ if not v_permite_asignar then
30
+ raise exception 'Error: no es posible asignar en la encuesta % del operativo % ya que su estado no lo permite', new.enc, new.operativo;
31
+ end if;
32
+ if new.recepcionista is null then
33
+ raise exception 'Error: no es posible asignar en la encuesta % del operativo % ya que no se indicó un/a recepcionista', new.enc, new.operativo;
34
+ end if;
35
+ if not (new.tarea = coalesce(v_tarea_actual,'nulo') or new.tarea = v_tarea_inicial) then
36
+ raise exception 'Error: no es posible modificar la encuesta % del operativo % ya que la tarea actual definida en TEM no coincide con la tarea %', new.enc, new.operativo, new.tarea;
37
+ end if;
38
+ end if;
39
+ if old.recepcionista is distinct from new.recepcionista then
40
+ if new.recepcionista is null and new.asignado is not null then
41
+ raise exception 'Error: no es posible quitar el recepcionista de la encuesta % del operativo % ya que se la misma se encuentra asignada', new.enc, new.operativo;
42
+ end if;
43
+ end if;
44
+ if old.asignado is distinct from new.asignado then
45
+ if new.asignado is null then
46
+ new.estado = '0D';
47
+ else
48
+ --if v_tarea_actual is distinct from new.tarea then
49
+ if v_estado_al_asignar is not null then
50
+ new.estado = v_estado_al_asignar;
51
+ end if;
52
+ --end if;
53
+ end if;
54
+ end if;
55
+ else
56
+ raise exception 'Error: la encuesta % del operativo % se encuentra deshabilitada', new.enc, new.operativo;
57
+ end if;
58
+ return new;
59
+ end;
60
+ $BODY$;
61
+
62
+ DROP TRIGGER IF EXISTS validar_tareas_tem_trg ON tareas_tem;
63
+ CREATE TRIGGER validar_tareas_tem_trg
64
+ BEFORE UPDATE
65
+ ON tareas_tem
66
+ FOR EACH ROW
67
+ EXECUTE PROCEDURE validar_tareas_tem_trg();