dmencu 0.3.42 → 0.3.43

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 (29) hide show
  1. package/dist/client/client/client.js +6 -6
  2. package/dist/client/unlogged/render-formulario.tsx +1 -2
  3. package/dist/server/server/app-dmencu.d.ts +24 -8
  4. package/dist/server/server/app-dmencu.js +148 -125
  5. package/dist/server/server/table-areas.d.ts +2 -0
  6. package/dist/server/server/table-areas.js +47 -55
  7. package/dist/server/server/table-encuestadores.d.ts +8 -1
  8. package/dist/server/server/table-encuestadores.js +54 -7
  9. package/dist/server/server/table-personal.d.ts +1 -1
  10. package/dist/server/server/table-personal.js +1 -1
  11. package/dist/server/server/table-tareas.d.ts +1 -1
  12. package/dist/server/server/table-tareas.js +2 -2
  13. package/dist/server/server/table-tareas_areas.d.ts +5 -1
  14. package/dist/server/server/table-tareas_areas.js +37 -13
  15. package/dist/server/server/table-tareas_tem.js +12 -21
  16. package/dist/server/server/table-tareas_tem_asignables.d.ts +3 -3
  17. package/dist/server/server/table-tareas_tem_asignables.js +56 -56
  18. package/dist/server/server/table-tem.d.ts +2 -2
  19. package/dist/server/server/table-tem.js +1 -1
  20. package/dist/server/server/table-tem_asignacion.js +2 -2
  21. package/dist/server/server/types-dmencu.d.ts +39 -18
  22. package/dist/server/server/types-dmencu.js +1 -1
  23. package/dist/unlogged/unlogged/render-formulario.js +1 -2
  24. package/dist/unlogged/unlogged/render-formulario.tsx +1 -2
  25. package/install/actualizar-2023-05-14.sql +38 -0
  26. package/install/asignar_desasignar_tareas_tem_trg.sql +38 -38
  27. package/install/sincro_tareas_areas_tareas_tem_trg.sql +27 -28
  28. package/install/validar_tareas_tem_trg.sql +70 -70
  29. package/package.json +1 -1
@@ -74,7 +74,7 @@ import {
74
74
  NO_CAMBIAR__SOLO_TRAER_STATUS
75
75
  } from "./bypass-formulario"
76
76
 
77
- import {arrange, html, HtmlTag} from "js-to-html";
77
+ import {html, HtmlTag} from "js-to-html";
78
78
 
79
79
  function breakeableText(text:string|null):string|undefined;
80
80
  function breakeableText(text:string|null, diccionario?:{[clave:string]:React.ReactNode}){
@@ -1112,7 +1112,6 @@ function BotonFormularioDespliegue(props:{casillero:BotonFormulario, formulario:
1112
1112
  var htmlSeccion=document.getElementById(idSeccion)!;
1113
1113
  htmlSeccion.innerHTML="";
1114
1114
  htmlSeccion.appendChild(html.div(todosLosBotones).create());
1115
- //arrange(document.getElementById(idSeccion)!, todosLosBotones);
1116
1115
  }catch(err){
1117
1116
  var error = unexpected(err);
1118
1117
  console.log("entra al catch")
@@ -0,0 +1,38 @@
1
+ -- Actualizar
2
+ set search_path = base;
3
+
4
+ do $command$
5
+ declare
6
+ vTareasConAsignante boolean;
7
+ begin
8
+ select true
9
+ into vTareasConAsignante
10
+ from information_schema.columns
11
+ where table_schema='base'
12
+ and table_name='tareas_areas'
13
+ and column_name='asignante';
14
+ if vTareasConAsignante or true then
15
+ alter table tareas_areas rename column asignante to recepcionista;
16
+ DROP TRIGGER IF EXISTS sincro_tareas_areas_tareas_tem_trg ON tareas_areas;
17
+ DROP FUNCTION if exists sincro_tareas_areas_tareas_tem_trg();
18
+ alter table tareas_areas drop column fecha_asignacion;
19
+ alter table tareas_areas drop column operacion;
20
+ alter table tareas_areas drop column obs_asignante;
21
+ alter table "tareas_areas" drop constraint "asignante<>''";
22
+ alter table "tareas_areas" add constraint "recepcionista<>''" check ("recepcionista"<>'');
23
+ alter table "tareas_areas" drop constraint "tareas_areas at REL";
24
+ alter table "tareas_areas" add constraint "tareas_areas recepcionista REL" foreign key ("recepcionista") references "usuarios" ("idper") on update cascade;
25
+ alter index "asignante 4 tareas_areas IDX" rename to "recepcionista 4 tareas_areas IDX";
26
+ DROP TRIGGER IF EXISTS asignar_desasignar_tareas_tem_trg ON tareas_tem;
27
+ DROP FUNCTION if exists asignar_desasignar_tareas_tem_trg();
28
+ alter table tareas_tem rename column recepcionista_tarea to recepcionista;
29
+ alter table "tareas_tem" add constraint "recepcionista<>''" check ("recepcionista"<>'');
30
+ alter table "tareas_tem" add constraint "tareas_tem recepcionista REL" foreign key ("recepcionista") references "usuarios" ("idper") on update cascade;
31
+ alter table "tareas" rename column rol_asignante to rol_recepcionista;
32
+ raise notice 'cambios debidos a tareas_areas.asignante realizadas!';
33
+ raise notice 'correr: install/sincro_tareas_areas_tareas_tem_trg.sql';
34
+ raise notice 'correr: install/asignar_desasignar_tareas_tem_trg';
35
+ end if;
36
+ end;
37
+ $command$;
38
+
@@ -1,38 +1,38 @@
1
- --set role dmencu_owner;
2
- --set search_path=base;
3
-
4
- DROP FUNCTION if exists asignar_desasignar_tareas_tem_trg();
5
- CREATE OR REPLACE FUNCTION asignar_desasignar_tareas_tem_trg()
6
- RETURNS trigger
7
- LANGUAGE 'plpgsql'
8
- AS $BODY$
9
- declare
10
- v_estado_al_asignar text;
11
- v_tarea_actual text;
12
- v_tarea_proxima text;
13
- begin
14
- select tarea_actual, habilitada, tarea_proxima into v_tarea_actual, v_tarea_proxima
15
- from tem
16
- where operativo = new.operativo and enc = new.enc;
17
- select estado_al_asignar into v_estado_al_asignar from estados where operativo = new.operativo and estado = new.estado;
18
- if new.asignado is null then
19
- update tem
20
- set tarea_proxima = new.tarea, tarea_actual = new.tarea_anterior, estado_actual = new.estado
21
- where operativo = new.operativo and enc = new.enc;
22
- else
23
- if v_tarea_actual is distinct from new.tarea then
24
- update tem
25
- set tarea_actual = tarea_proxima, tarea_proxima = null , estado_actual = new.estado
26
- where operativo = new.operativo and enc = new.enc;
27
- end if;
28
- end if;
29
- return new;
30
- end;
31
- $BODY$;
32
-
33
- DROP TRIGGER IF EXISTS asignar_desasignar_tareas_tem_trg ON tareas_tem;
34
- CREATE TRIGGER asignar_desasignar_tareas_tem_trg
35
- AFTER UPDATE OF asignado
36
- ON tareas_tem
37
- FOR EACH ROW
38
- EXECUTE PROCEDURE asignar_desasignar_tareas_tem_trg();
1
+ --set role dmencu_owner;
2
+ --set search_path=base;
3
+
4
+ DROP FUNCTION if exists asignar_desasignar_tareas_tem_trg();
5
+ CREATE OR REPLACE FUNCTION asignar_desasignar_tareas_tem_trg()
6
+ RETURNS trigger
7
+ LANGUAGE 'plpgsql'
8
+ AS $BODY$
9
+ declare
10
+ v_estado_al_asignar text;
11
+ v_tarea_actual text;
12
+ v_tarea_proxima text;
13
+ begin
14
+ select tarea_actual, habilitada, tarea_proxima into v_tarea_actual, v_tarea_proxima
15
+ from tem
16
+ where operativo = new.operativo and enc = new.enc;
17
+ select estado_al_asignar into v_estado_al_asignar from estados where operativo = new.operativo and estado = new.estado;
18
+ if new.asignado is null then
19
+ update tem
20
+ set tarea_proxima = new.tarea, tarea_actual = new.tarea_anterior, estado_actual = new.estado
21
+ where operativo = new.operativo and enc = new.enc;
22
+ else
23
+ if v_tarea_actual is distinct from new.tarea then
24
+ update tem
25
+ set tarea_actual = tarea_proxima, tarea_proxima = null , estado_actual = new.estado
26
+ where operativo = new.operativo and enc = new.enc;
27
+ end if;
28
+ end if;
29
+ return new;
30
+ end;
31
+ $BODY$;
32
+
33
+ DROP TRIGGER IF EXISTS asignar_desasignar_tareas_tem_trg ON tareas_tem;
34
+ CREATE TRIGGER asignar_desasignar_tareas_tem_trg
35
+ AFTER UPDATE OF asignado
36
+ ON tareas_tem
37
+ FOR EACH ROW
38
+ EXECUTE PROCEDURE asignar_desasignar_tareas_tem_trg();
@@ -1,28 +1,27 @@
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 operacion = case when new.operacion is not null and new.operacion is distinct from old.operacion then new.operacion else operacion end,
12
- asignado = case when new.asignado is not null and new.asignado is distinct from old.asignado then new.asignado else asignado end,
13
- fecha_asignacion = case when new.fecha_asignacion is not null and new.fecha_asignacion is distinct from old.fecha_asignacion then new.fecha_asignacion else fecha_asignacion end
14
- from tem t
15
- where t.operativo=tt.operativo and t.enc=tt.enc
16
- and area=t.area and t.habilitada
17
- and tt.tarea=new.tarea
18
- and area=new.area;
19
- return new;
20
- end;
21
- $BODY$;
22
-
23
- DROP TRIGGER IF EXISTS sincro_tareas_areas_tareas_tem_trg ON tareas_areas;
24
- CREATE TRIGGER sincro_tareas_areas_tareas_tem_trg
25
- AFTER INSERT OR UPDATE OF operacion, asignado,fecha_asignacion,asignante
26
- ON tareas_areas
27
- FOR EACH ROW
28
- 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
+ return new;
19
+ end;
20
+ $BODY$;
21
+
22
+ DROP TRIGGER IF EXISTS sincro_tareas_areas_tareas_tem_trg ON tareas_areas;
23
+ CREATE TRIGGER sincro_tareas_areas_tareas_tem_trg
24
+ AFTER INSERT OR UPDATE OF recepcionista, asignado
25
+ ON tareas_areas
26
+ FOR EACH ROW
27
+ EXECUTE PROCEDURE sincro_tareas_areas_tareas_tem_trg();
@@ -1,70 +1,70 @@
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_tarea_proxima text;
15
- v_permite_asignar boolean;
16
- v_estado_al_asignar text;
17
- begin
18
- select tarea_actual, habilitada, tarea_proxima into v_tarea_actual, v_habilitada, v_tarea_proxima
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
- if v_habilitada then
25
- if old.asignado is distinct from new.asignado then
26
- if not v_permite_asignar then
27
- raise exception 'Error: no es posible asignar en la encuesta % del operativo % ya que su estado no lo permite', new.enc, new.operativo;
28
- end if;
29
- if new.recepcionista_tarea is null then
30
- raise exception 'Error: no es posible asignar en la encuesta % del operativo % ya que no se indicó un/a recepcionista', new.enc, new.operativo;
31
- end if;
32
- end if;
33
- if old.recepcionista_tarea is distinct from new.recepcionista_tarea then
34
- if not v_permite_asignar then
35
- raise exception 'Error: no es posible modificar recepcionista en la encuesta % del operativo % ya que su estado no lo permite', new.enc, new.operativo;
36
- end if;
37
- if new.recepcionista_tarea is null and new.asignado is not null then
38
- 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;
39
- end if;
40
- end if;
41
- if not (new.tarea = coalesce(v_tarea_actual,'nulo') or
42
- ((old.asignado is distinct from new.asignado) or (old.recepcionista_tarea is distinct from new.recepcionista_tarea))
43
- and new.tarea = coalesce(v_tarea_proxima,'nulo')) then
44
- 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;
45
- end if;
46
- if old.asignado is distinct from new.asignado then
47
- if new.asignado is null then
48
- new.estado = '0D';
49
- else
50
- if v_tarea_actual is distinct from new.tarea then
51
- if v_estado_al_asignar is not null then
52
- new.estado = v_estado_al_asignar;
53
- new.tarea_anterior = v_tarea_actual;
54
- end if;
55
- end if;
56
- end if;
57
- end if;
58
- else
59
- raise exception 'Error: la encuesta % del operativo % se encuentra deshabilitada', new.enc, new.operativo;
60
- end if;
61
- return new;
62
- end;
63
- $BODY$;
64
-
65
- DROP TRIGGER IF EXISTS validar_tareas_tem_trg ON tareas_tem;
66
- CREATE TRIGGER validar_tareas_tem_trg
67
- BEFORE UPDATE
68
- ON tareas_tem
69
- FOR EACH ROW
70
- 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_tarea_proxima text;
15
+ v_permite_asignar boolean;
16
+ v_estado_al_asignar text;
17
+ begin
18
+ select tarea_actual, habilitada, tarea_proxima into v_tarea_actual, v_habilitada, v_tarea_proxima
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
+ if v_habilitada then
25
+ if old.asignado is distinct from new.asignado then
26
+ if not v_permite_asignar then
27
+ raise exception 'Error: no es posible asignar en la encuesta % del operativo % ya que su estado no lo permite', new.enc, new.operativo;
28
+ end if;
29
+ if new.recepcionista is null then
30
+ raise exception 'Error: no es posible asignar en la encuesta % del operativo % ya que no se indicó un/a recepcionista', new.enc, new.operativo;
31
+ end if;
32
+ end if;
33
+ if old.recepcionista is distinct from new.recepcionista then
34
+ if not v_permite_asignar then
35
+ raise exception 'Error: no es posible modificar recepcionista en la encuesta % del operativo % ya que su estado no lo permite', new.enc, new.operativo;
36
+ end if;
37
+ if new.recepcionista is null and new.asignado is not null then
38
+ 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;
39
+ end if;
40
+ end if;
41
+ if not (new.tarea = coalesce(v_tarea_actual,'nulo') or
42
+ ((old.asignado is distinct from new.asignado) or (old.recepcionista is distinct from new.recepcionista))
43
+ and new.tarea = coalesce(v_tarea_proxima,'nulo')) then
44
+ 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;
45
+ end if;
46
+ if old.asignado is distinct from new.asignado then
47
+ if new.asignado is null then
48
+ new.estado = '0D';
49
+ else
50
+ if v_tarea_actual is distinct from new.tarea then
51
+ if v_estado_al_asignar is not null then
52
+ new.estado = v_estado_al_asignar;
53
+ new.tarea_anterior = v_tarea_actual;
54
+ end if;
55
+ end if;
56
+ end if;
57
+ end if;
58
+ else
59
+ raise exception 'Error: la encuesta % del operativo % se encuentra deshabilitada', new.enc, new.operativo;
60
+ end if;
61
+ return new;
62
+ end;
63
+ $BODY$;
64
+
65
+ DROP TRIGGER IF EXISTS validar_tareas_tem_trg ON tareas_tem;
66
+ CREATE TRIGGER validar_tareas_tem_trg
67
+ BEFORE UPDATE
68
+ ON tareas_tem
69
+ FOR EACH ROW
70
+ EXECUTE PROCEDURE validar_tareas_tem_trg();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dmencu",
3
3
  "description": "DM Encu - Encuestas en dispositivo móvil",
4
- "version": "0.3.42",
4
+ "version": "0.3.43",
5
5
  "author": "Codenautas <codenautas@googlegroups.com>",
6
6
  "license": "MIT",
7
7
  "main": "dist/server/server/app-dmencu.js",