dmencu 3.2.21 → 3.3.1
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.
- package/README.md +42 -42
- package/dist/client/client/client.js +3 -3
- package/dist/client/unlogged/abrir-formulario.js +1 -1
- package/dist/client/unlogged/bypass-formulario.d.ts +6 -42
- package/dist/client/unlogged/bypass-formulario.js +84 -219
- package/dist/client/unlogged/calculos-encuesta.js +112 -38
- package/dist/client/unlogged/helpers-casilleros.d.ts +1 -1
- package/dist/client/unlogged/helpers-casilleros.js +12 -18
- package/dist/client/unlogged/helpers-formulario.d.ts +16 -0
- package/dist/client/unlogged/helpers-formulario.js +88 -0
- package/dist/client/unlogged/redux-formulario.d.ts +1 -2
- package/dist/client/unlogged/redux-formulario.js +21 -31
- package/dist/client/unlogged/render-formulario.d.ts +2 -6
- package/dist/client/unlogged/render-formulario.js +29 -68
- package/dist/client/unlogged/render-formulario.tsx +29 -57
- package/dist/client/unlogged/render-general.js +1 -1
- package/dist/client/unlogged/render-general.tsx +1 -1
- package/dist/client/unlogged/tipos.d.ts +74 -40
- package/dist/client/unlogged/tipos.js +1 -1
- package/dist/server/app-dmencu.d.ts +1428 -0
- package/dist/server/app-dmencu.js +1054 -0
- package/dist/server/def-config.d.ts +1 -0
- package/dist/server/def-config.js +123 -0
- package/dist/server/procedures-dmencu.d.ts +43 -0
- package/dist/server/procedures-dmencu.js +2295 -0
- package/dist/server/server/app-dmencu.d.ts +42 -91
- package/dist/server/server/app-dmencu.js +114 -52
- package/dist/server/server/procedures-dmencu.d.ts +34 -2
- package/dist/server/server/procedures-dmencu.js +77 -51
- package/dist/server/server/setters-rea-no-rea.d.ts +13 -0
- package/dist/server/server/setters-rea-no-rea.js +35 -0
- package/dist/server/server/table-areas.js +4 -4
- package/dist/server/server/table-areas_asignacion_general.js +2 -1
- package/dist/server/server/table-control_campo.js +4 -4
- package/dist/server/server/table-no_rea.js +4 -2
- package/dist/server/server/table-no_rea_sup.js +7 -3
- package/dist/server/server/table-personal.js +1 -1
- package/dist/server/server/table-tareas_tem.js +2 -2
- package/dist/server/server/table-tem.js +2 -2
- package/dist/server/server/types-dmencu.d.ts +34 -2
- package/dist/server/server/types-dmencu.js +2 -1
- package/dist/server/setters-rea-no-rea.d.ts +13 -0
- package/dist/server/setters-rea-no-rea.js +35 -0
- package/dist/server/table-acciones.d.ts +2 -0
- package/dist/server/table-acciones.js +45 -0
- package/dist/server/table-area_enc_proximas.d.ts +2 -0
- package/dist/server/table-area_enc_proximas.js +30 -0
- package/dist/server/table-areas.d.ts +4 -0
- package/dist/server/table-areas.js +112 -0
- package/dist/server/table-areas_asignacion_general.d.ts +2 -0
- package/dist/server/table-areas_asignacion_general.js +86 -0
- package/dist/server/table-barrios.d.ts +2 -0
- package/dist/server/table-barrios.js +35 -0
- package/dist/server/table-comunas.d.ts +2 -0
- package/dist/server/table-comunas.js +33 -0
- package/dist/server/table-control_campo.d.ts +12 -0
- package/dist/server/table-control_campo.js +119 -0
- package/dist/server/table-control_dias_carga.d.ts +2 -0
- package/dist/server/table-control_dias_carga.js +63 -0
- package/dist/server/table-control_resumen.d.ts +2 -0
- package/dist/server/table-control_resumen.js +19 -0
- package/dist/server/table-diccionario.d.ts +2 -0
- package/dist/server/table-diccionario.js +32 -0
- package/dist/server/table-dictra.d.ts +2 -0
- package/dist/server/table-dictra.js +46 -0
- package/dist/server/table-dicvar.d.ts +2 -0
- package/dist/server/table-dicvar.js +32 -0
- package/dist/server/table-encuestadores.d.ts +13 -0
- package/dist/server/table-encuestadores.js +75 -0
- package/dist/server/table-estados.d.ts +2 -0
- package/dist/server/table-estados.js +47 -0
- package/dist/server/table-estados_acciones.d.ts +2 -0
- package/dist/server/table-estados_acciones.js +40 -0
- package/dist/server/table-fracciones.d.ts +2 -0
- package/dist/server/table-fracciones.js +37 -0
- package/dist/server/table-grilla_hoja_ruta.d.ts +2 -0
- package/dist/server/table-grilla_hoja_ruta.js +93 -0
- package/dist/server/table-historial_tem.d.ts +2 -0
- package/dist/server/table-historial_tem.js +57 -0
- package/dist/server/table-hogares.d.ts +2 -0
- package/dist/server/table-hogares.js +156 -0
- package/dist/server/table-hogares_sup.d.ts +2 -0
- package/dist/server/table-hogares_sup.js +191 -0
- package/dist/server/table-inconsistencias_cumplen_condicion.d.ts +2 -0
- package/dist/server/table-inconsistencias_cumplen_condicion.js +33 -0
- package/dist/server/table-manzanas.d.ts +2 -0
- package/dist/server/table-manzanas.js +36 -0
- package/dist/server/table-mis_encuestadores.d.ts +2 -0
- package/dist/server/table-mis_encuestadores.js +77 -0
- package/dist/server/table-mis_tareas.d.ts +2 -0
- package/dist/server/table-mis_tareas.js +18 -0
- package/dist/server/table-mis_tareas_areas.d.ts +2 -0
- package/dist/server/table-mis_tareas_areas.js +20 -0
- package/dist/server/table-modos_dm.d.ts +2 -0
- package/dist/server/table-modos_dm.js +28 -0
- package/dist/server/table-no_rea.js +38 -0
- package/dist/server/table-no_rea_sup.js +36 -0
- package/dist/server/table-operaciones.d.ts +2 -0
- package/dist/server/table-operaciones.js +30 -0
- package/dist/server/table-parametros.d.ts +2 -0
- package/dist/server/table-parametros.js +40 -0
- package/dist/server/table-permisos.d.ts +2 -0
- package/dist/server/table-permisos.js +31 -0
- package/dist/server/table-personal.d.ts +5 -0
- package/dist/server/table-personal.js +62 -0
- package/dist/server/table-personal_rol.d.ts +2 -0
- package/dist/server/table-personal_rol.js +42 -0
- package/dist/server/table-personas.d.ts +2 -0
- package/dist/server/table-personas.js +448 -0
- package/dist/server/table-personas_sup.d.ts +2 -0
- package/dist/server/table-personas_sup.js +93 -0
- package/dist/server/table-radios.d.ts +2 -0
- package/dist/server/table-radios.js +37 -0
- package/dist/server/table-rea.d.ts +2 -0
- package/dist/server/table-rea.js +38 -0
- package/dist/server/table-rea_sup.d.ts +2 -0
- package/dist/server/table-rea_sup.js +38 -0
- package/dist/server/table-recepcionistas.d.ts +2 -0
- package/dist/server/table-recepcionistas.js +18 -0
- package/dist/server/table-recuperadores.d.ts +2 -0
- package/dist/server/table-recuperadores.js +18 -0
- package/dist/server/table-roles.d.ts +2 -0
- package/dist/server/table-roles.js +33 -0
- package/dist/server/table-roles_permisos.d.ts +2 -0
- package/dist/server/table-roles_permisos.js +36 -0
- package/dist/server/table-roles_subordinados.d.ts +2 -0
- package/dist/server/table-roles_subordinados.js +31 -0
- package/dist/server/table-semanas.d.ts +2 -0
- package/dist/server/table-semanas.js +42 -0
- package/dist/server/table-sincronizaciones.d.ts +2 -0
- package/dist/server/table-sincronizaciones.js +30 -0
- package/dist/server/table-supervisores.d.ts +2 -0
- package/dist/server/table-supervisores.js +18 -0
- package/dist/server/table-tareas.d.ts +2 -0
- package/dist/server/table-tareas.js +48 -0
- package/dist/server/table-tareas_areas.d.ts +7 -0
- package/dist/server/table-tareas_areas.js +112 -0
- package/dist/server/table-tareas_proximas.d.ts +2 -0
- package/dist/server/table-tareas_proximas.js +48 -0
- package/dist/server/table-tareas_tem.d.ts +14 -0
- package/dist/server/table-tareas_tem.js +206 -0
- package/dist/server/table-tareas_tem_analisis_campo.d.ts +2 -0
- package/dist/server/table-tareas_tem_analisis_campo.js +31 -0
- package/dist/server/table-tareas_tem_fin_campo.d.ts +3 -0
- package/dist/server/table-tareas_tem_fin_campo.js +56 -0
- package/dist/server/table-tareas_tem_ingreso.d.ts +2 -0
- package/dist/server/table-tareas_tem_ingreso.js +31 -0
- package/dist/server/table-tareas_tem_procesamiento.d.ts +2 -0
- package/dist/server/table-tareas_tem_procesamiento.js +34 -0
- package/dist/server/table-tareas_tem_recepcion.d.ts +6 -0
- package/dist/server/table-tareas_tem_recepcion.js +59 -0
- package/dist/server/table-tem.d.ts +3 -0
- package/dist/server/table-tem.js +247 -0
- package/dist/server/table-tem_asignacion.d.ts +2 -0
- package/dist/server/table-tem_asignacion.js +50 -0
- package/dist/server/table-tem_borradas.d.ts +2 -0
- package/dist/server/table-tem_borradas.js +35 -0
- package/dist/server/table-usuarios.d.ts +2 -0
- package/dist/server/table-usuarios.js +63 -0
- package/dist/server/table-visitas.d.ts +2 -0
- package/dist/server/table-visitas.js +91 -0
- package/dist/server/table-visitas_sup.d.ts +2 -0
- package/dist/server/table-visitas_sup.js +91 -0
- package/dist/server/table-viviendas.d.ts +2 -0
- package/dist/server/table-viviendas.js +299 -0
- package/dist/server/types-dmencu.d.ts +95 -0
- package/dist/server/types-dmencu.js +34 -0
- package/dist/server/unlogged/tipos.d.ts +74 -40
- package/dist/server/unlogged/tipos.js +1 -1
- package/dist/test/app-para-tests.d.ts +1115 -0
- package/dist/test/app-para-tests.js +95 -0
- package/dist/test/test-caches-rea.d.ts +1 -0
- package/dist/test/test-caches-rea.js +243 -0
- package/dist/test/test-helpers-casilleros.d.ts +1 -0
- package/dist/test/test-helpers-casilleros.js +154 -0
- package/dist/test/test-helpers-formulario.d.ts +1 -0
- package/dist/test/test-helpers-formulario.js +95 -0
- package/dist/test/test-impacto-rea-no-rea-en-bd.d.ts +1 -0
- package/dist/test/test-impacto-rea-no-rea-en-bd.js +243 -0
- package/dist/test/test-menu-segun-rol.d.ts +1 -0
- package/dist/test/test-menu-segun-rol.js +170 -0
- package/dist/test/test-setters-rea-no-rea.d.ts +1 -0
- package/dist/test/test-setters-rea-no-rea.js +95 -0
- package/dist/test/test.d.ts +6 -0
- package/dist/test/test.js +8 -2
- package/dist/unlogged/helpers-casilleros.d.ts +1 -1
- package/dist/unlogged/helpers-casilleros.js +12 -18
- package/dist/unlogged/helpers-formulario.d.ts +16 -0
- package/dist/unlogged/helpers-formulario.js +88 -0
- package/dist/unlogged/tipos.d.ts +1 -1
- package/dist/unlogged/tipos.js +1 -1
- package/dist/unlogged/unlogged/abrir-formulario.js +1 -1
- package/dist/unlogged/unlogged/bypass-formulario.d.ts +6 -42
- package/dist/unlogged/unlogged/bypass-formulario.js +84 -219
- package/dist/unlogged/unlogged/helpers-casilleros.js +7 -14
- package/dist/unlogged/unlogged/helpers-formulario.d.ts +16 -0
- package/dist/unlogged/unlogged/helpers-formulario.js +88 -0
- package/dist/unlogged/unlogged/redux-formulario.d.ts +1 -2
- package/dist/unlogged/unlogged/redux-formulario.js +21 -31
- package/dist/unlogged/unlogged/render-formulario.d.ts +2 -6
- package/dist/unlogged/unlogged/render-formulario.js +29 -68
- package/dist/unlogged/unlogged/render-formulario.tsx +29 -57
- package/dist/unlogged/unlogged/render-general.js +1 -1
- package/dist/unlogged/unlogged/render-general.tsx +1 -1
- package/dist/unlogged/unlogged/tipos.d.ts +74 -40
- package/dist/unlogged/unlogged/tipos.js +1 -1
- package/dist/unlogged/unlogged/unlogged.js +2 -2
- package/install/accion_cumple_condicion.sql +1 -1
- package/install/generador_accion_cumple_condicion.sql +2 -2
- package/install/tarea_cumple_condicion.sql +1 -1
- package/install/xcalcular_resultado_trg.sql +1 -1
- package/package.json +20 -17
- package/dist/server/server/table-no_rea copy.js +0 -38
- package/dist/server/server/table-no_rea_sup copy.js +0 -36
- package/dist/unlogged/bypass-formulario.d.ts +0 -198
- package/dist/unlogged/bypass-formulario.js +0 -1226
- package/dist/unlogged/redux-formulario.d.ts +0 -440
- package/dist/unlogged/redux-formulario.js +0 -324
- package/dist/unlogged/render-config.d.ts +0 -52
- package/dist/unlogged/render-config.js +0 -161
- package/dist/unlogged/unlogged/bypass-formulario copy.d.ts +0 -198
- package/dist/unlogged/unlogged/bypass-formulario copy.js +0 -1226
- package/dist/unlogged/unlogged/helpers.d.ts +0 -14
- package/dist/unlogged/unlogged/helpers.js +0 -129
- /package/dist/server/{server/table-no_rea copy.d.ts → table-no_rea.d.ts} +0 -0
- /package/dist/server/{server/table-no_rea_sup copy.d.ts → table-no_rea_sup.d.ts} +0 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.cuentasFields = exports.cuentasSql = void 0;
|
|
13
|
+
exports.areas = areas;
|
|
14
|
+
const cuentasSql = (be, filter) => `
|
|
15
|
+
select
|
|
16
|
+
bool_or( ttcargado_dm is not null ) as cargado ,
|
|
17
|
+
--count( cargado_dm ) as cargadas,
|
|
18
|
+
sum ( case when tem.rea= 1 then 1 else null end ) as reas,
|
|
19
|
+
count(*) filter ( where tem.resumen_estado='no rea') as no_reas,
|
|
20
|
+
count(*) filter ( where tem.resumen_estado in ('incompleto', 'con problemas') ) as incompletas,
|
|
21
|
+
count(*) filter ( where tem.resumen_estado in ('vacio' ) ) as vacias,
|
|
22
|
+
count(*) filter ( where thabilitada is not true ) as inhabilitadas,
|
|
23
|
+
count(*) as totales,
|
|
24
|
+
--sum(case when cluster <>4 then null when confirmada is true then 1 else 0 end) as confirmadas,
|
|
25
|
+
--sum(case when cluster <>4 then null when confirmada is null then 1 else 0 end) as pend_conf,
|
|
26
|
+
string_agg(distinct clase,', ' order by clase desc) as clases,
|
|
27
|
+
string_agg(distinct nrocomuna::text,'-' order by nrocomuna::text)::text as comuna
|
|
28
|
+
, string_agg(distinct cluster::text,', ' order by cluster::text desc) as clusters
|
|
29
|
+
${be.caches.tableContent.no_rea_groups.map((x) => `, sum(CASE WHEN gru_no_rea=${be.db.quoteLiteral(x.grupo)} THEN 1 ELSE NULL END) as ${be.db.quoteIdent(x.grupo.replace(/ /g, '_'))}`).join('')}
|
|
30
|
+
from ( select t.operativo, enc, cluster, nrocomuna, clase,
|
|
31
|
+
json_encuesta, t.resumen_estado,
|
|
32
|
+
t.rea, t.norea, area, dominio, zona,
|
|
33
|
+
json_backup, grupo as gru_no_rea
|
|
34
|
+
, bool_or(t.habilitada) thabilitada, string_agg(tt.cargado_dm,'-') ttcargado_dm
|
|
35
|
+
from tem t left join tareas_tem tt using(operativo,enc)
|
|
36
|
+
left join no_rea y on y.no_rea=t.norea
|
|
37
|
+
where ${filter}
|
|
38
|
+
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14
|
|
39
|
+
) tem
|
|
40
|
+
`;
|
|
41
|
+
exports.cuentasSql = cuentasSql;
|
|
42
|
+
const cuentasFields = (be) => [
|
|
43
|
+
{ name: 'clases', typeName: 'text', editable: false, inTable: false },
|
|
44
|
+
{ name: 'cargado', typeName: 'boolean', editable: false, inTable: false },
|
|
45
|
+
{ name: 'reas', typeName: 'integer', editable: false, aggregate: 'sum', inTable: false },
|
|
46
|
+
{ name: 'no_reas', typeName: 'integer', editable: false, aggregate: 'sum', inTable: false },
|
|
47
|
+
{ name: 'incompletas', typeName: 'integer', editable: false, aggregate: 'sum', inTable: false },
|
|
48
|
+
{ name: 'vacias', typeName: 'integer', editable: false, aggregate: 'sum', inTable: false },
|
|
49
|
+
{ name: 'inhabilitadas', typeName: 'integer', editable: false, aggregate: 'sum', inTable: false },
|
|
50
|
+
{ name: 'comuna', typeName: 'text', title: 'comuna', inTable: false },
|
|
51
|
+
...be.caches.tableContent.no_rea_groups.map((x) => ({ name: x.grupo.replace(/ /g, '_'), typeName: 'integer', editable: false }))
|
|
52
|
+
];
|
|
53
|
+
exports.cuentasFields = cuentasFields;
|
|
54
|
+
function areas(context) {
|
|
55
|
+
var _a, _b;
|
|
56
|
+
var be = context.be;
|
|
57
|
+
var puedeEditar = context.forDump || ((_b = (_a = context.puede) === null || _a === void 0 ? void 0 : _a.campo) === null || _b === void 0 ? void 0 : _b.administrar) || context.user.rol === 'recepcionista';
|
|
58
|
+
return {
|
|
59
|
+
name: 'areas',
|
|
60
|
+
elementName: 'area',
|
|
61
|
+
editable: puedeEditar,
|
|
62
|
+
hiddenColumns: ['clusters', 'clases', 'cargadas_bkp', 'reas_bkp', 'no_reas_bkp',
|
|
63
|
+
'incompletas_bkp', 'vacias_bkp', 'inhabilitadas_bkp'
|
|
64
|
+
],
|
|
65
|
+
fields: [
|
|
66
|
+
{ name: "operativo", typeName: "text", nullable: false, editable: false },
|
|
67
|
+
{ name: 'area', typeName: 'integer', nullable: false, editable: false },
|
|
68
|
+
{ name: 'clusters', typeName: 'text', visible: false, inTable: false },
|
|
69
|
+
{ name: 'recepcionista', typeName: 'text', references: 'recepcionistas' },
|
|
70
|
+
{ name: 'encuestador', typeName: 'text', references: 'personal' },
|
|
71
|
+
//{name:'recuperador' , typeName:'text' },
|
|
72
|
+
//{name:'supervisor' , typeName:'text' },
|
|
73
|
+
{ name: 'observaciones_hdr', typeName: 'text' },
|
|
74
|
+
{ name: 'verificado_rec', typeName: 'text', aggregate: 'count' },
|
|
75
|
+
//{name:'confirmadas' , typeName:'integer' , editable:false, aggregate:'sum'},
|
|
76
|
+
//{name:'pend_conf' , typeName:'integer' , editable:false, aggregate:'sum', description:'pendientes de confirmación'},
|
|
77
|
+
{ name: 'obs_recepcionista', typeName: 'text' },
|
|
78
|
+
...(0, exports.cuentasFields)(be),
|
|
79
|
+
{ name: 'cargadas_bkp', typeName: 'integer', editable: false },
|
|
80
|
+
{ name: 'reas_bkp', typeName: 'integer', editable: false },
|
|
81
|
+
{ name: 'no_reas_bkp', typeName: 'integer', editable: false },
|
|
82
|
+
{ name: 'incompletas_bkp', typeName: 'integer', editable: false },
|
|
83
|
+
{ name: 'vacias_bkp', typeName: 'integer', editable: false },
|
|
84
|
+
{ name: 'inhabilitadas_bkp', typeName: 'integer', editable: false },
|
|
85
|
+
],
|
|
86
|
+
primaryKey: ["operativo", 'area'],
|
|
87
|
+
foreignKeys: [
|
|
88
|
+
{ references: 'operativos', fields: ['operativo'] },
|
|
89
|
+
//{references:'usuarios', fields:[{source:'recepcionista', target:'idper'}], alias:'per_recep', displayFields:[]},
|
|
90
|
+
{ references: 'usuarios', fields: [{ source: 'recepcionista', target: 'idper' }], alias: 'recepcionista', displayFields: ['nombre', 'apellido'] },
|
|
91
|
+
{ references: 'usuarios', fields: [{ source: 'encuestador', target: 'idper' }], alias: 'encuestador', displayFields: ['nombre', 'apellido', 'dispositivo'] },
|
|
92
|
+
],
|
|
93
|
+
//softForeignKeys:[
|
|
94
|
+
// {references:'encuestadores', fields:[{source:'encuestador', target:'persona'}], alias:'per_encu'},
|
|
95
|
+
//],
|
|
96
|
+
detailTables: [
|
|
97
|
+
{ table: 'tem_asignacion', fields: ['operativo', 'area'], abr: 'A', refreshParent: true, label: 'asignables' },
|
|
98
|
+
{ table: `tareas_tem_recepcion`, fields: ['operativo', 'area'], abr: 'R', refreshParent: true, label: 'recepcion' },
|
|
99
|
+
],
|
|
100
|
+
sql: {
|
|
101
|
+
isTable: true,
|
|
102
|
+
from: `
|
|
103
|
+
(select a.*, ta.asignado, t.*
|
|
104
|
+
from areas a left join tareas_areas ta on ta.tarea='encu' and ta.area=a.area and ta.operativo=a.operativo, lateral (
|
|
105
|
+
${(0, exports.cuentasSql)(be, `t.area=a.area /*and tt.tarea='encu'*/`)}
|
|
106
|
+
) t
|
|
107
|
+
)`
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYXJlYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmVyL3RhYmxlLWFyZWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztJQUFBLFlBQVksQ0FBQzs7O0lBZ0RiLHNCQXlEQztJQXJHTSxNQUFNLFVBQVUsR0FBRyxDQUFDLEVBQU8sRUFBRSxNQUFjLEVBQUUsRUFBRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7TUFlakQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQWEsRUFBRSxFQUFFLENBQzdELDhCQUE4QixFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUN2SSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Ozs7Ozs7O2dCQVFNLE1BQU07OztDQUdyQixDQUFDO0lBNUJXLFFBQUEsVUFBVSxjQTRCckI7SUFFSyxNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUM7UUFDdEMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1FBQ3JFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtRQUN6RSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtRQUN4RixFQUFF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LEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxFQUFFO2FBRS9KO1lBQ0QsbUJBQW1CO1lBQ25CLHdHQUF3RztZQUN4RyxJQUFJO1lBQ0osWUFBWSxFQUFFO2dCQUNWLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFDOUcsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO2FBQ3RIO1lBQ0QsR0FBRyxFQUFFO2dCQUNELE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRTs7O3NCQUdJLElBQUEsa0JBQVUsRUFBQyxFQUFFLEVBQUUsdUNBQXVDLENBQUM7O2NBRS9EO2FBQ0w7U0FFSixDQUFDO0lBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0IHsgVGFibGVEZWZpbml0aW9uLCBUYWJsZUNvbnRleHQsIEdydXBvTm9SZWEgfSBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBjdWVudGFzU3FsID0gKGJlOiBhbnksIGZpbHRlcjogc3RyaW5nKSA9PiBgXHJcbnNlbGVjdCBcclxuICAgIGJvb2xfb3IoIHR0Y2FyZ2Fkb19kbSBpcyBub3QgbnVsbCApICAgICAgIGFzIGNhcmdhZG8gLCBcclxuICAgIC0tY291bnQoIGNhcmdhZG9fZG0gKSAgICAgICAgICAgICAgICAgICAgIGFzIGNhcmdhZGFzLFxyXG4gICAgc3VtICggY2FzZSB3aGVuIHRlbS5yZWE9IDEgdGhlbiAxIGVsc2UgbnVsbCBlbmQgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzIHJlYXMsXHJcbiAgICBjb3VudCgqKSBmaWx0ZXIgKCB3aGVyZSB0ZW0ucmVzdW1lbl9lc3RhZG89J25vIHJlYScpICAgICAgIGFzIG5vX3JlYXMsXHJcbiAgICBjb3VudCgqKSBmaWx0ZXIgKCB3aGVyZSB0ZW0ucmVzdW1lbl9lc3RhZG8gaW4gKCdpbmNvbXBsZXRvJywgJ2NvbiBwcm9ibGVtYXMnKSApIGFzIGluY29tcGxldGFzLCBcclxuICAgIGNvdW50KCopIGZpbHRlciAoIHdoZXJlIHRlbS5yZXN1bWVuX2VzdGFkbyBpbiAoJ3ZhY2lvJyApICkgYXMgdmFjaWFzLFxyXG4gICAgY291bnQoKikgZmlsdGVyICggd2hlcmUgdGhhYmlsaXRhZGEgaXMgbm90IHRydWUgKSAgICBhcyBpbmhhYmlsaXRhZGFzLFxyXG4gICAgY291bnQoKikgYXMgdG90YWxlcyxcclxuICAgIC0tc3VtKGNhc2Ugd2hlbiBjbHVzdGVyIDw+NCB0aGVuIG51bGwgd2hlbiBjb25maXJtYWRhIGlzIHRydWUgdGhlbiAxIGVsc2UgMCBlbmQpIGFzIGNvbmZpcm1hZGFzLFxyXG4gICAgLS1zdW0oY2FzZSB3aGVuIGNsdXN0ZXIgPD40IHRoZW4gbnVsbCB3aGVuIGNvbmZpcm1hZGEgaXMgbnVsbCB0aGVuIDEgZWxzZSAwIGVuZCkgYXMgcGVuZF9jb25mLFxyXG4gICAgc3RyaW5nX2FnZyhkaXN0aW5jdCBjbGFzZSwnLCAnIG9yZGVyIGJ5IGNsYXNlIGRlc2MpIGFzIGNsYXNlcyxcclxuICAgIHN0cmluZ19hZ2coZGlzdGluY3QgbnJvY29tdW5hOjp0ZXh0LCctJyBvcmRlciBieSBucm9jb211bmE6OnRleHQpOjp0ZXh0IGFzIGNvbXVuYVxyXG4gICAgLCBzdHJpbmdfYWdnKGRpc3RpbmN0IGNsdXN0ZXI6OnRleHQsJywgJyBvcmRlciBieSBjbHVzdGVyOjp0ZXh0IGRlc2MpIGFzIGNsdXN0ZXJzXHJcbiAgICAke2JlLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX2dyb3Vwcy5tYXAoKHg6IEdydXBvTm9SZWEpID0+XHJcbiAgICBgLCBzdW0oQ0FTRSBXSEVOIGdydV9ub19yZWE9JHtiZS5kYi5xdW90ZUxpdGVyYWwoeC5ncnVwbyl9IFRIRU4gMSBFTFNFIE5VTEwgRU5EKSBhcyAke2JlLmRiLnF1b3RlSWRlbnQoeC5ncnVwby5yZXBsYWNlKC8gL2csICdfJykpfWBcclxuKS5qb2luKCcnKX1cclxuZnJvbSAoIHNlbGVjdCB0Lm9wZXJhdGl2bywgZW5jLCBjbHVzdGVyLCBucm9jb211bmEsIGNsYXNlLCBcclxuICAgICAgICAgICAganNvbl9lbmN1ZXN0YSwgdC5yZXN1bWVuX2VzdGFkbywgIFxyXG4gICAgICAgICAgICB0LnJlYSwgdC5ub3JlYSwgYXJlYSwgZG9taW5pbywgem9uYSxcclxuICAgICAgICAgICAganNvbl9iYWNrdXAsIGdydXBvIGFzIGdydV9ub19yZWFcclxuICAgICAgICAgICAgLCBib29sX29yKHQuaGFiaWxpdGFkYSkgdGhhYmlsaXRhZGEsIHN0cmluZ19hZ2codHQuY2FyZ2Fkb19kbSwnLScpIHR0Y2FyZ2Fkb19kbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgZnJvbSB0ZW0gdCBsZWZ0IGpvaW4gdGFyZWFzX3RlbSB0dCB1c2luZyhvcGVyYXRpdm8sZW5jKSBcclxuICAgICAgICAgICAgbGVmdCBqb2luIG5vX3JlYSB5IG9uIHkubm9fcmVhPXQubm9yZWFcclxuICAgICAgICB3aGVyZSAke2ZpbHRlcn0gICAgXHJcbiAgICAgICAgZ3JvdXAgYnkgIDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0XHJcbikgdGVtXHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgY3VlbnRhc0ZpZWxkcyA9IChiZTogYW55KSA9PiBbXHJcbiAgICB7IG5hbWU6ICdjbGFzZXMnLCB0eXBlTmFtZTogJ3RleHQnLCBlZGl0YWJsZTogZmFsc2UsIGluVGFibGU6IGZhbHNlIH0sXHJcbiAgICB7IG5hbWU6ICdjYXJnYWRvJywgdHlwZU5hbWU6ICdib29sZWFuJywgZWRpdGFibGU6IGZhbHNlLCBpblRhYmxlOiBmYWxzZSB9LFxyXG4gICAgeyBuYW1lOiAncmVhcycsIHR5cGVOYW1lOiAnaW50ZWdlcicsIGVkaXRhYmxlOiBmYWxzZSwgYWdncmVnYXRlOiAnc3VtJywgaW5UYWJsZTogZmFsc2UgfSxcclxuICAgIHsgbmFtZTogJ25vX3JlYXMnLCB0eXBlTmFtZTogJ2ludGVnZXInLCBlZGl0YWJsZTogZmFsc2UsIGFnZ3JlZ2F0ZTogJ3N1bScsIGluVGFibGU6IGZhbHNlIH0sXHJcbiAgICB7IG5hbWU6ICdpbmNvbXBsZXRhcycsIHR5cGVOYW1lOiAnaW50ZWdlcicsIGVkaXRhYmxlOiBmYWxzZSwgYWdncmVnYXRlOiAnc3VtJywgaW5UYWJsZTogZmFsc2UgfSxcclxuICAgIHsgbmFtZTogJ3ZhY2lhcycsIHR5cGVOYW1lOiAnaW50ZWdlcicsIGVkaXRhYmxlOiBmYWxzZSwgYWdncmVnYXRlOiAnc3VtJywgaW5UYWJsZTogZmFsc2UgfSxcclxuICAgIHsgbmFtZTogJ2luaGFiaWxpdGFkYXMnLCB0eXBlTmFtZTogJ2ludGVnZXInLCBlZGl0YWJsZTogZmFsc2UsIGFnZ3JlZ2F0ZTogJ3N1bScsIGluVGFibGU6IGZhbHNlIH0sXHJcbiAgICB7IG5hbWU6ICdjb211bmEnLCB0eXBlTmFtZTogJ3RleHQnLCB0aXRsZTogJ2NvbXVuYScsIGluVGFibGU6IGZhbHNlIH0sXHJcbiAgICAuLi5iZS5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9ncm91cHMubWFwKCh4OiBHcnVwb05vUmVhKSA9PiAoXHJcbiAgICAgICAgeyBuYW1lOiB4LmdydXBvLnJlcGxhY2UoLyAvZywgJ18nKSwgdHlwZU5hbWU6ICdpbnRlZ2VyJywgZWRpdGFibGU6IGZhbHNlIH1cclxuICAgICkpXHJcbl07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYXJlYXMoY29udGV4dDogVGFibGVDb250ZXh0KTogVGFibGVEZWZpbml0aW9uIHtcclxuICAgIHZhciBiZSA9IGNvbnRleHQuYmU7XHJcbiAgICB2YXIgcHVlZGVFZGl0YXIgPSBjb250ZXh0LmZvckR1bXAgfHwgY29udGV4dC5wdWVkZT8uY2FtcG8/LmFkbWluaXN0cmFyIHx8IGNvbnRleHQudXNlci5yb2wgPT09ICdyZWNlcGNpb25pc3RhJztcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogJ2FyZWFzJyxcclxuICAgICAgICBlbGVtZW50TmFtZTogJ2FyZWEnLFxyXG4gICAgICAgIGVkaXRhYmxlOiBwdWVkZUVkaXRhcixcclxuICAgICAgICBoaWRkZW5Db2x1bW5zOiBbJ2NsdXN0ZXJzJywgJ2NsYXNlcycsICdjYXJnYWRhc19ia3AnLCAncmVhc19ia3AnLCAnbm9fcmVhc19ia3AnXHJcbiAgICAgICAgICAgICwgJ2luY29tcGxldGFzX2JrcCcsICd2YWNpYXNfYmtwJywgJ2luaGFiaWxpdGFkYXNfYmtwJ1xyXG4gICAgICAgIF0sXHJcbiAgICAgICAgZmllbGRzOiBbXHJcbiAgICAgICAgICAgIHsgbmFtZTogXCJvcGVyYXRpdm9cIiwgdHlwZU5hbWU6IFwidGV4dFwiLCBudWxsYWJsZTogZmFsc2UsIGVkaXRhYmxlOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdhcmVhJywgdHlwZU5hbWU6ICdpbnRlZ2VyJywgbnVsbGFibGU6IGZhbHNlLCBlZGl0YWJsZTogZmFsc2UgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnY2x1c3RlcnMnLCB0eXBlTmFtZTogJ3RleHQnLCB2aXNpYmxlOiBmYWxzZSwgaW5UYWJsZTogZmFsc2UgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAncmVjZXBjaW9uaXN0YScsIHR5cGVOYW1lOiAndGV4dCcsIHJlZmVyZW5jZXM6ICdyZWNlcGNpb25pc3RhcycgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnZW5jdWVzdGFkb3InLCB0eXBlTmFtZTogJ3RleHQnLCByZWZlcmVuY2VzOiAncGVyc29uYWwnIH0sXHJcbiAgICAgICAgICAgIC8ve25hbWU6J3JlY3VwZXJhZG9yJyAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy97bmFtZTonc3VwZXJ2aXNvcicgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdvYnNlcnZhY2lvbmVzX2hkcicsIHR5cGVOYW1lOiAndGV4dCcgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAndmVyaWZpY2Fkb19yZWMnLCB0eXBlTmFtZTogJ3RleHQnLCBhZ2dyZWdhdGU6ICdjb3VudCcgfSxcclxuICAgICAgICAgICAgLy97bmFtZTonY29uZmlybWFkYXMnICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICwgZWRpdGFibGU6ZmFsc2UsIGFnZ3JlZ2F0ZTonc3VtJ30sXHJcbiAgICAgICAgICAgIC8ve25hbWU6J3BlbmRfY29uZicgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOmZhbHNlLCBhZ2dyZWdhdGU6J3N1bScsIGRlc2NyaXB0aW9uOidwZW5kaWVudGVzIGRlIGNvbmZpcm1hY2nDs24nfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnb2JzX3JlY2VwY2lvbmlzdGEnLCB0eXBlTmFtZTogJ3RleHQnIH0sXHJcbiAgICAgICAgICAgIC4uLmN1ZW50YXNGaWVsZHMoYmUpLFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdjYXJnYWRhc19ia3AnLCB0eXBlTmFtZTogJ2ludGVnZXInLCBlZGl0YWJsZTogZmFsc2UgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAncmVhc19ia3AnLCB0eXBlTmFtZTogJ2ludGVnZXInLCBlZGl0YWJsZTogZmFsc2UgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnbm9fcmVhc19ia3AnLCB0eXBlTmFtZTogJ2ludGVnZXInLCBlZGl0YWJsZTogZmFsc2UgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnaW5jb21wbGV0YXNfYmtwJywgdHlwZU5hbWU6ICdpbnRlZ2VyJywgZWRpdGFibGU6IGZhbHNlIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ3ZhY2lhc19ia3AnLCB0eXBlTmFtZTogJ2ludGVnZXInLCBlZGl0YWJsZTogZmFsc2UgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnaW5oYWJpbGl0YWRhc19ia3AnLCB0eXBlTmFtZTogJ2ludGVnZXInLCBlZGl0YWJsZTogZmFsc2UgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIHByaW1hcnlLZXk6IFtcIm9wZXJhdGl2b1wiLCAnYXJlYSddLFxyXG4gICAgICAgIGZvcmVpZ25LZXlzOiBbXHJcbiAgICAgICAgICAgIHsgcmVmZXJlbmNlczogJ29wZXJhdGl2b3MnLCBmaWVsZHM6IFsnb3BlcmF0aXZvJ10gfSxcclxuICAgICAgICAgICAgLy97cmVmZXJlbmNlczondXN1YXJpb3MnLCBmaWVsZHM6W3tzb3VyY2U6J3JlY2VwY2lvbmlzdGEnLCB0YXJnZXQ6J2lkcGVyJ31dLCBhbGlhczoncGVyX3JlY2VwJywgZGlzcGxheUZpZWxkczpbXX0sXHJcbiAgICAgICAgICAgIHsgcmVmZXJlbmNlczogJ3VzdWFyaW9zJywgZmllbGRzOiBbeyBzb3VyY2U6ICdyZWNlcGNpb25pc3RhJywgdGFyZ2V0OiAnaWRwZXInIH1dLCBhbGlhczogJ3JlY2VwY2lvbmlzdGEnLCBkaXNwbGF5RmllbGRzOiBbJ25vbWJyZScsICdhcGVsbGlkbyddIH0sXHJcbiAgICAgICAgICAgIHsgcmVmZXJlbmNlczogJ3VzdWFyaW9zJywgZmllbGRzOiBbeyBzb3VyY2U6ICdlbmN1ZXN0YWRvcicsIHRhcmdldDogJ2lkcGVyJyB9XSwgYWxpYXM6ICdlbmN1ZXN0YWRvcicsIGRpc3BsYXlGaWVsZHM6IFsnbm9tYnJlJywgJ2FwZWxsaWRvJywgJ2Rpc3Bvc2l0aXZvJ10gfSxcclxuXHJcbiAgICAgICAgXSxcclxuICAgICAgICAvL3NvZnRGb3JlaWduS2V5czpbXHJcbiAgICAgICAgLy8gICAge3JlZmVyZW5jZXM6J2VuY3Vlc3RhZG9yZXMnLCBmaWVsZHM6W3tzb3VyY2U6J2VuY3Vlc3RhZG9yJywgdGFyZ2V0OidwZXJzb25hJ31dLCBhbGlhczoncGVyX2VuY3UnfSxcclxuICAgICAgICAvL10sXHJcbiAgICAgICAgZGV0YWlsVGFibGVzOiBbXHJcbiAgICAgICAgICAgIHsgdGFibGU6ICd0ZW1fYXNpZ25hY2lvbicsIGZpZWxkczogWydvcGVyYXRpdm8nLCAnYXJlYSddLCBhYnI6ICdBJywgcmVmcmVzaFBhcmVudDogdHJ1ZSwgbGFiZWw6ICdhc2lnbmFibGVzJyB9LFxyXG4gICAgICAgICAgICB7IHRhYmxlOiBgdGFyZWFzX3RlbV9yZWNlcGNpb25gLCBmaWVsZHM6IFsnb3BlcmF0aXZvJywgJ2FyZWEnXSwgYWJyOiAnUicsIHJlZnJlc2hQYXJlbnQ6IHRydWUsIGxhYmVsOiAncmVjZXBjaW9uJyB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgc3FsOiB7XHJcbiAgICAgICAgICAgIGlzVGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGZyb206IGAgXHJcbiAgICAgICAgICAgIChzZWxlY3QgYS4qLCB0YS5hc2lnbmFkbywgdC4qXHJcbiAgICAgICAgICAgICAgICBmcm9tIGFyZWFzIGEgbGVmdCBqb2luIHRhcmVhc19hcmVhcyB0YSBvbiB0YS50YXJlYT0nZW5jdScgYW5kIHRhLmFyZWE9YS5hcmVhIGFuZCB0YS5vcGVyYXRpdm89YS5vcGVyYXRpdm8sIGxhdGVyYWwgKFxyXG4gICAgICAgICAgICAgICAgICAgICR7Y3VlbnRhc1NxbChiZSwgYHQuYXJlYT1hLmFyZWEgLyphbmQgdHQudGFyZWE9J2VuY3UnKi9gKX1cclxuICAgICAgICAgICAgICAgICkgdFxyXG4gICAgICAgICAgICApYFxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9O1xyXG59XHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "./table-areas"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.areas_asignacion_general = areas_asignacion_general;
|
|
13
|
+
const table_areas_1 = require("./table-areas");
|
|
14
|
+
function areas_asignacion_general(context) {
|
|
15
|
+
var _a;
|
|
16
|
+
var tareas = [
|
|
17
|
+
{ tarea: 'encu', muestraDispositivo: true },
|
|
18
|
+
{ tarea: 'ingr', muestraDispositivo: false },
|
|
19
|
+
{ tarea: 'recu', muestraDispositivo: true },
|
|
20
|
+
{ tarea: 'supe', muestraDispositivo: true },
|
|
21
|
+
];
|
|
22
|
+
var rolesFields = [
|
|
23
|
+
{ name: 'recepcionista', prefijo: 'r', editable: true, references: 'recepcionistas', muestraDispositivo: false },
|
|
24
|
+
{ name: 'asignado', prefijo: '', editable: true, references: 'personal', muestraDispositivo: true },
|
|
25
|
+
];
|
|
26
|
+
var extraFields = [];
|
|
27
|
+
var extraFrom = '';
|
|
28
|
+
var extraSelect = '\n';
|
|
29
|
+
var otherTableDefs = {};
|
|
30
|
+
tareas.forEach(t => {
|
|
31
|
+
rolesFields.forEach(f => {
|
|
32
|
+
const name = `${f.prefijo}_${t.tarea}`;
|
|
33
|
+
extraFields.push({ name, typeName: 'text', table: `areas_${t.tarea}`, nameForUpsert: f.name, editable: f.editable, references: f.references });
|
|
34
|
+
extraSelect += `, areas_${t.tarea}.${f.name} as ${f.prefijo}_${t.tarea}`;
|
|
35
|
+
if (f.name == 'asignado') {
|
|
36
|
+
extraFields.push({ name: `${name}_usuario`, typeName: 'text', table: `areas_${t.tarea}`, nameForUpsert: f.name, editable: false, title: 'usuario' });
|
|
37
|
+
extraSelect += `, (select usuario as ${name}_usuario from usuarios u join tareas_areas ta on (ta.${context.be.db.quoteIdent(f.name)} = u.idper and ta.tarea = ${context.be.db.quoteLiteral(t.tarea)} and ta.area = a.area))`;
|
|
38
|
+
}
|
|
39
|
+
extraFields.push({ name: `${name}_nombre`, typeName: 'text', table: `areas_${t.tarea}`, nameForUpsert: f.name, editable: false, title: 'nombre' });
|
|
40
|
+
extraFields.push({ name: `${name}_apellido`, typeName: 'text', table: `areas_${t.tarea}`, nameForUpsert: f.name, editable: false, title: 'apellido' });
|
|
41
|
+
extraSelect += `, (select nombre as ${name}_nombre from usuarios u join tareas_areas ta on (ta.${context.be.db.quoteIdent(f.name)} = u.idper and ta.tarea = ${context.be.db.quoteLiteral(t.tarea)} and ta.area = a.area))`;
|
|
42
|
+
extraSelect += `, (select apellido as ${name}_apellido from usuarios u join tareas_areas ta on (ta.${context.be.db.quoteIdent(f.name)} = u.idper and ta.tarea = ${context.be.db.quoteLiteral(t.tarea)} and ta.area = a.area))`;
|
|
43
|
+
if (f.muestraDispositivo && t.muestraDispositivo) {
|
|
44
|
+
extraFields.push({ name: `${name}_dispositivo`, typeName: 'text', table: `areas_${t.tarea}`, nameForUpsert: f.name, editable: false, title: 'dm' });
|
|
45
|
+
extraSelect += `, (select dispositivo as ${name}_dispositivo from usuarios u join tareas_areas ta on (ta.${context.be.db.quoteIdent(f.name)} = u.idper and ta.tarea = ${context.be.db.quoteLiteral(t.tarea)} and ta.area = a.area))`;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
extraFrom += `
|
|
49
|
+
left join tareas_areas as areas_${t.tarea} on areas_${t.tarea}.operativo = a.operativo and areas_${t.tarea}.area = a.area and areas_${t.tarea}.tarea = '${t.tarea}'`;
|
|
50
|
+
otherTableDefs[`areas_${t.tarea}`] = {
|
|
51
|
+
name: 'tareas_areas',
|
|
52
|
+
tableName: 'tareas_areas',
|
|
53
|
+
prefilledField: { tarea: t.tarea }
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
var tableDef = (0, table_areas_1.areas)(context);
|
|
57
|
+
tableDef.allow = {
|
|
58
|
+
insert: false,
|
|
59
|
+
delete: false,
|
|
60
|
+
import: false,
|
|
61
|
+
};
|
|
62
|
+
tableDef.name = `areas_asignacion_general`;
|
|
63
|
+
tableDef.tableName = `areas`;
|
|
64
|
+
tableDef.fields.forEach((field) => {
|
|
65
|
+
if (['recepcionista', 'relevador', 'encuestador', 'recuperador', 'supervisor',].includes(field.name)) {
|
|
66
|
+
field.visible = false;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
(_a = tableDef.foreignKeys) === null || _a === void 0 ? void 0 : _a.forEach((fkDef) => {
|
|
70
|
+
if (fkDef.alias && ['recepcionista', 'encuestador'].includes(fkDef.alias)) {
|
|
71
|
+
fkDef.displayFields = [];
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
tableDef.fields.splice(2, 0, ...extraFields);
|
|
75
|
+
//tableDef.refrescable = true;
|
|
76
|
+
tableDef.sql.isTable = false;
|
|
77
|
+
tableDef.sql.from = `(select a.* ${extraSelect} from (${tableDef.sql.from}) a ${extraFrom})`,
|
|
78
|
+
tableDef.sql.otherTableDefs = otherTableDefs;
|
|
79
|
+
tableDef.detailTables = [
|
|
80
|
+
{ table: 'tem_asignacion', fields: ['operativo', 'area'], abr: 'A', refreshParent: true, refreshFromParent: true, label: 'asignables' },
|
|
81
|
+
];
|
|
82
|
+
tableDef = Object.assign(Object.assign({}, tableDef), { tareasFields: rolesFields });
|
|
83
|
+
return tableDef;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYXJlYXNfYXNpZ25hY2lvbl9nZW5lcmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci90YWJsZS1hcmVhc19hc2lnbmFjaW9uX2dlbmVyYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOztJQU9iLDREQTRFQztJQS9FRCwrQ0FBc0M7SUFHdEMsU0FBZ0Isd0JBQXdCLENBQUMsT0FBb0I7O1FBQ3pELElBQUksTUFBTSxHQUdKO1lBQ0YsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRTtZQUMzQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFDO1lBQzNDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7WUFDM0MsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRTtTQUM5QyxDQUFBO1FBQ0QsSUFBSSxXQUFXLEdBQW9CO1lBQy9CLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFDLEtBQUssRUFBRTtZQUMvRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQU8sT0FBTyxFQUFFLEVBQUUsRUFBTyxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQVEsa0JBQWtCLEVBQUMsSUFBSSxFQUFFO1NBQ3JILENBQUM7UUFDRixJQUFJLFdBQVcsR0FBcUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxjQUFjLEdBQWtCLEVBQUUsQ0FBQTtRQUV0QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMs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Q3BELE9BQU8sUUFBUSxDQUFBO0lBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7VGFibGVEZWZpbml0aW9uLCBUYWJsZUNvbnRleHQsIEZpZWxkRGVmaW5pdGlvbiwgT3RoZXJUYWJsZURlZnMsIFJvbEZpZWxkVGFyZWF9IGZyb20gXCIuL3R5cGVzLWRtZW5jdVwiO1xyXG5cclxuaW1wb3J0IHsgYXJlYXMgfSBmcm9tIFwiLi90YWJsZS1hcmVhc1wiO1xyXG5pbXBvcnQgeyBJZFRhcmVhIH0gZnJvbSBcIi4uL3VubG9nZ2VkL3RpcG9zXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYXJlYXNfYXNpZ25hY2lvbl9nZW5lcmFsKGNvbnRleHQ6VGFibGVDb250ZXh0KTpUYWJsZURlZmluaXRpb24ge1xyXG4gICAgdmFyIHRhcmVhczoge1xyXG4gICAgICAgIHRhcmVhOiBJZFRhcmVhXHJcbiAgICAgICAgbXVlc3RyYURpc3Bvc2l0aXZvOiBib29sZWFuXHJcbiAgICB9W10gPSBbXHJcbiAgICAgICAgeyB0YXJlYTogJ2VuY3UnLCBtdWVzdHJhRGlzcG9zaXRpdm86IHRydWUgfSxcclxuICAgICAgICB7IHRhcmVhOiAnaW5ncicsIG11ZXN0cmFEaXNwb3NpdGl2bzogZmFsc2V9LFxyXG4gICAgICAgIHsgdGFyZWE6ICdyZWN1JywgbXVlc3RyYURpc3Bvc2l0aXZvOiB0cnVlIH0sXHJcbiAgICAgICAgeyB0YXJlYTogJ3N1cGUnLCBtdWVzdHJhRGlzcG9zaXRpdm86IHRydWUgfSxcclxuICAgIF1cclxuICAgIHZhciByb2xlc0ZpZWxkczogUm9sRmllbGRUYXJlYVtdID0gW1xyXG4gICAgICAgIHsgbmFtZTogJ3JlY2VwY2lvbmlzdGEnLCBwcmVmaWpvOiAncicsIGVkaXRhYmxlOiB0cnVlLCByZWZlcmVuY2VzOiAncmVjZXBjaW9uaXN0YXMnLCBtdWVzdHJhRGlzcG9zaXRpdm86ZmFsc2UgfSxcclxuICAgICAgICB7IG5hbWU6ICdhc2lnbmFkbycgICAgICwgcHJlZmlqbzogJycgICAgICwgZWRpdGFibGU6IHRydWUsIHJlZmVyZW5jZXM6ICdwZXJzb25hbCcgICAgICAsIG11ZXN0cmFEaXNwb3NpdGl2bzp0cnVlIH0sXHJcbiAgICBdO1xyXG4gICAgdmFyIGV4dHJhRmllbGRzOkZpZWxkRGVmaW5pdGlvbltdID0gW107XHJcbiAgICB2YXIgZXh0cmFGcm9tID0gJyc7XHJcbiAgICB2YXIgZXh0cmFTZWxlY3QgPSAnXFxuJztcclxuICAgIHZhciBvdGhlclRhYmxlRGVmczpPdGhlclRhYmxlRGVmcyA9IHt9XHJcblxyXG4gICAgdGFyZWFzLmZvckVhY2godD0+e1xyXG4gICAgICAgIHJvbGVzRmllbGRzLmZvckVhY2goZj0+e1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lID0gYCR7Zi5wcmVmaWpvfV8ke3QudGFyZWF9YDtcclxuICAgICAgICAgICAgZXh0cmFGaWVsZHMucHVzaCh7IG5hbWUsIHR5cGVOYW1lOiAndGV4dCcsIHRhYmxlOiBgYXJlYXNfJHt0LnRhcmVhfWAsIG5hbWVGb3JVcHNlcnQ6IGYubmFtZSwgZWRpdGFibGU6IGYuZWRpdGFibGUsIHJlZmVyZW5jZXM6IGYucmVmZXJlbmNlcyB9KTtcclxuICAgICAgICAgICAgZXh0cmFTZWxlY3QgKz0gYCwgYXJlYXNfJHt0LnRhcmVhfS4ke2YubmFtZX0gYXMgJHtmLnByZWZpam99XyR7dC50YXJlYX1gO1xyXG5cclxuICAgICAgICAgICAgaWYoZi5uYW1lPT0nYXNpZ25hZG8nKXtcclxuICAgICAgICAgICAgICAgIGV4dHJhRmllbGRzLnB1c2goeyBuYW1lOiBgJHtuYW1lfV91c3VhcmlvYCwgdHlwZU5hbWU6ICd0ZXh0JywgdGFibGU6IGBhcmVhc18ke3QudGFyZWF9YCwgbmFtZUZvclVwc2VydDogZi5uYW1lLCBlZGl0YWJsZTogZmFsc2UsIHRpdGxlOiAndXN1YXJpbycgfSk7ICAgXHJcbiAgICAgICAgICAgICAgICBleHRyYVNlbGVjdCArPSBgLCAoc2VsZWN0IHVzdWFyaW8gYXMgJHtuYW1lfV91c3VhcmlvICAgIGZyb20gdXN1YXJpb3MgdSBqb2luIHRhcmVhc19hcmVhcyB0YSBvbiAodGEuJHtjb250ZXh0LmJlLmRiLnF1b3RlSWRlbnQoZi5uYW1lKX0gPSB1LmlkcGVyIGFuZCB0YS50YXJlYSA9ICR7Y29udGV4dC5iZS5kYi5xdW90ZUxpdGVyYWwodC50YXJlYSl9IGFuZCB0YS5hcmVhID0gYS5hcmVhKSlgOyAgICBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZXh0cmFGaWVsZHMucHVzaCh7IG5hbWU6IGAke25hbWV9X25vbWJyZWAgICAgLCB0eXBlTmFtZTogJ3RleHQnLCB0YWJsZTogYGFyZWFzXyR7dC50YXJlYX1gLCBuYW1lRm9yVXBzZXJ0OiBmLm5hbWUsIGVkaXRhYmxlOiBmYWxzZSwgdGl0bGU6J25vbWJyZScgIH0pO1xyXG4gICAgICAgICAgICBleHRyYUZpZWxkcy5wdXNoKHsgbmFtZTogYCR7bmFtZX1fYXBlbGxpZG9gICAsIHR5cGVOYW1lOiAndGV4dCcsIHRhYmxlOiBgYXJlYXNfJHt0LnRhcmVhfWAsIG5hbWVGb3JVcHNlcnQ6IGYubmFtZSwgZWRpdGFibGU6IGZhbHNlLCB0aXRsZTonYXBlbGxpZG8nfSk7XHJcbiAgICAgICAgICAgIGV4dHJhU2VsZWN0ICs9IGAsIChzZWxlY3Qgbm9tYnJlIGFzICR7bmFtZX1fbm9tYnJlICAgICAgZnJvbSB1c3VhcmlvcyB1IGpvaW4gdGFyZWFzX2FyZWFzIHRhIG9uICh0YS4ke2NvbnRleHQuYmUuZGIucXVvdGVJZGVudChmLm5hbWUpfSA9IHUuaWRwZXIgYW5kIHRhLnRhcmVhID0gJHtjb250ZXh0LmJlLmRiLnF1b3RlTGl0ZXJhbCh0LnRhcmVhKX0gYW5kIHRhLmFyZWEgPSBhLmFyZWEpKWA7XHJcbiAgICAgICAgICAgIGV4dHJhU2VsZWN0ICs9IGAsIChzZWxlY3QgYXBlbGxpZG8gYXMgJHtuYW1lfV9hcGVsbGlkbyAgZnJvbSB1c3VhcmlvcyB1IGpvaW4gdGFyZWFzX2FyZWFzIHRhIG9uICh0YS4ke2NvbnRleHQuYmUuZGIucXVvdGVJZGVudChmLm5hbWUpfSA9IHUuaWRwZXIgYW5kIHRhLnRhcmVhID0gJHtjb250ZXh0LmJlLmRiLnF1b3RlTGl0ZXJhbCh0LnRhcmVhKX0gYW5kIHRhLmFyZWEgPSBhLmFyZWEpKWA7XHJcbiAgICAgICAgICAgIGlmKGYubXVlc3RyYURpc3Bvc2l0aXZvICYmIHQubXVlc3RyYURpc3Bvc2l0aXZvICl7XHJcbiAgICAgICAgICAgICAgICBleHRyYUZpZWxkcy5wdXNoKHsgbmFtZTogYCR7bmFtZX1fZGlzcG9zaXRpdm9gLCB0eXBlTmFtZTogJ3RleHQnLCB0YWJsZTogYGFyZWFzXyR7dC50YXJlYX1gLCBuYW1lRm9yVXBzZXJ0OiBmLm5hbWUsIGVkaXRhYmxlOiBmYWxzZSwgdGl0bGU6J2RtJyB9KTtcclxuICAgICAgICAgICAgICAgIGV4dHJhU2VsZWN0ICs9IGAsIChzZWxlY3QgZGlzcG9zaXRpdm8gYXMgJHtuYW1lfV9kaXNwb3NpdGl2byBmcm9tIHVzdWFyaW9zIHUgam9pbiB0YXJlYXNfYXJlYXMgdGEgb24gKHRhLiR7Y29udGV4dC5iZS5kYi5xdW90ZUlkZW50KGYubmFtZSl9ID0gdS5pZHBlciBhbmQgdGEudGFyZWEgPSAke2NvbnRleHQuYmUuZGIucXVvdGVMaXRlcmFsKHQudGFyZWEpfSBhbmQgdGEuYXJlYSA9IGEuYXJlYSkpYDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgZXh0cmFGcm9tICs9IGAgXHJcbiAgICAgICAgICAgIGxlZnQgam9pbiB0YXJlYXNfYXJlYXMgYXMgYXJlYXNfJHt0LnRhcmVhfSBvbiBhcmVhc18ke3QudGFyZWF9Lm9wZXJhdGl2byA9IGEub3BlcmF0aXZvIGFuZCBhcmVhc18ke3QudGFyZWF9LmFyZWEgPSBhLmFyZWEgYW5kIGFyZWFzXyR7dC50YXJlYX0udGFyZWEgPSAnJHt0LnRhcmVhfSdgOyBcclxuICAgICAgICBvdGhlclRhYmxlRGVmc1tgYXJlYXNfJHt0LnRhcmVhfWBdID0ge1xyXG4gICAgICAgICAgICBuYW1lOiAndGFyZWFzX2FyZWFzJywgXHJcbiAgICAgICAgICAgIHRhYmxlTmFtZTondGFyZWFzX2FyZWFzJywgXHJcbiAgICAgICAgICAgIHByZWZpbGxlZEZpZWxkOnt0YXJlYTp0LnRhcmVhfVxyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICBcclxuICAgIHZhciB0YWJsZURlZiA9IGFyZWFzKGNvbnRleHQpO1xyXG4gICAgdGFibGVEZWYuYWxsb3c9e1xyXG4gICAgICAgIGluc2VydDpmYWxzZSxcclxuICAgICAgICBkZWxldGU6ZmFsc2UsXHJcbiAgICAgICAgaW1wb3J0OmZhbHNlLFxyXG4gICAgfTtcclxuICAgIHRhYmxlRGVmLm5hbWUgPSBgYXJlYXNfYXNpZ25hY2lvbl9nZW5lcmFsYDtcclxuICAgIHRhYmxlRGVmLnRhYmxlTmFtZSA9IGBhcmVhc2A7XHJcbiAgICB0YWJsZURlZi5maWVsZHMuZm9yRWFjaCgoZmllbGQpPT4ge1xyXG4gICAgICAgIGlmKFsncmVjZXBjaW9uaXN0YScsJ3JlbGV2YWRvcicsJ2VuY3Vlc3RhZG9yJywncmVjdXBlcmFkb3InLCdzdXBlcnZpc29yJyxdLmluY2x1ZGVzKGZpZWxkLm5hbWUpKXtcclxuICAgICAgICAgICAgZmllbGQudmlzaWJsZSA9IGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRhYmxlRGVmLmZvcmVpZ25LZXlzPy5mb3JFYWNoKChma0RlZik9PiB7XHJcbiAgICAgICAgaWYoZmtEZWYuYWxpYXMgJiYgWydyZWNlcGNpb25pc3RhJywnZW5jdWVzdGFkb3InXS5pbmNsdWRlcyhma0RlZi5hbGlhcykpe1xyXG4gICAgICAgICAgICBma0RlZi5kaXNwbGF5RmllbGRzPVtdXHJcbiAgICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRhYmxlRGVmLmZpZWxkcy5zcGxpY2UoMiwwLCAuLi5leHRyYUZpZWxkcyk7XHJcbiAgICAvL3RhYmxlRGVmLnJlZnJlc2NhYmxlID0gdHJ1ZTtcclxuICAgIHRhYmxlRGVmLnNxbCEuaXNUYWJsZSA9IGZhbHNlO1xyXG4gICAgdGFibGVEZWYuc3FsIS5mcm9tID0gIGAoc2VsZWN0IGEuKiAke2V4dHJhU2VsZWN0fSBmcm9tICgke3RhYmxlRGVmLnNxbCEuZnJvbX0pIGEgJHtleHRyYUZyb219KWAsXHJcbiAgICB0YWJsZURlZi5zcWwhLm90aGVyVGFibGVEZWZzID0gb3RoZXJUYWJsZURlZnM7XHJcbiAgICB0YWJsZURlZi5kZXRhaWxUYWJsZXMgPSBbXHJcbiAgICAgICAge3RhYmxlOid0ZW1fYXNpZ25hY2lvbicgLCBmaWVsZHM6WydvcGVyYXRpdm8nLCdhcmVhJ10sIGFicjonQScsIHJlZnJlc2hQYXJlbnQ6dHJ1ZSwgcmVmcmVzaEZyb21QYXJlbnQ6dHJ1ZSwgbGFiZWw6J2FzaWduYWJsZXMnfSxcclxuICAgIF07XHJcbiAgICB0YWJsZURlZiA9IHsuLi50YWJsZURlZiwgdGFyZWFzRmllbGRzOiByb2xlc0ZpZWxkc307XHJcbiAgICByZXR1cm4gdGFibGVEZWZcclxufVxyXG5cclxuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.barrios = barrios;
|
|
13
|
+
function barrios(context) {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
var puedeEditar = context.forDump || ((_b = (_a = context.puede) === null || _a === void 0 ? void 0 : _a.campo) === null || _b === void 0 ? void 0 : _b.administrar);
|
|
16
|
+
return {
|
|
17
|
+
name: 'barrios',
|
|
18
|
+
elementName: 'barrio',
|
|
19
|
+
editable: puedeEditar,
|
|
20
|
+
fields: [
|
|
21
|
+
{ name: 'comuna', typeName: 'text' },
|
|
22
|
+
{ name: 'barrio', typeName: 'text' },
|
|
23
|
+
{ name: 'nombre', typeName: 'text' },
|
|
24
|
+
],
|
|
25
|
+
primaryKey: ['comuna', 'barrio'],
|
|
26
|
+
foreignKeys: [
|
|
27
|
+
{ references: 'comunas', fields: ['comuna'] },
|
|
28
|
+
],
|
|
29
|
+
detailTables: [
|
|
30
|
+
{ table: "fracciones", fields: ["comuna", "barrio"], abr: "f", label: "fracciones" }
|
|
31
|
+
],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYmFycmlvcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2ZXIvdGFibGUtYmFycmlvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7SUFBQSxZQUFZLENBQUM7O0lBSWIsMEJBbUJDO0lBbkJELFNBQWdCLE9BQU8sQ0FBQyxPQUFvQjs7UUFDeEMsSUFBSSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sS0FBSSxNQUFBLE1BQUEsT0FBTyxDQUFDLEtBQUssMENBQUUsS0FBSywwQ0FBRSxXQUFXLENBQUEsQ0FBQztRQUN2RSxPQUFPO1lBQ0gsSUFBSSxFQUFDLFNBQVM7WUFDZCxXQUFXLEVBQUMsUUFBUTtZQUNwQixRQUFRLEVBQUMsV0FBVztZQUNwQixNQUFNLEVBQUM7Z0JBQ0gsRUFBQyxJQUFJLEVBQUMsUUFBUSxFQUFvQixRQUFRLEVBQUMsTUFBTSxFQUFDO2dCQUNsRCxFQUFDLElBQUksRUFBQyxRQUFRLEVBQW9CLFFBQVEsRUFBQyxNQUFNLEVBQUM7Z0JBQ2xELEVBQUMsSUFBSSxFQUFDLFFBQVEsRUFBb0IsUUFBUSxFQUFDLE1BQU0sRUFBQzthQUNyRDtZQUNELFVBQVUsRUFBQyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7WUFDL0IsV0FBVyxFQUFFO2dCQUNULEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQzthQUM1QztZQUNELFlBQVksRUFBRTtnQkFDVixFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLFlBQVksRUFBQzthQUNwRjtTQUNKLENBQUM7SUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7VGFibGVEZWZpbml0aW9uLCBUYWJsZUNvbnRleHR9IGZyb20gXCIuL3R5cGVzLWRtZW5jdVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYmFycmlvcyhjb250ZXh0OlRhYmxlQ29udGV4dCk6VGFibGVEZWZpbml0aW9uIHtcbiAgICB2YXIgcHVlZGVFZGl0YXIgPSBjb250ZXh0LmZvckR1bXAgfHwgY29udGV4dC5wdWVkZT8uY2FtcG8/LmFkbWluaXN0cmFyO1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6J2JhcnJpb3MnLFxuICAgICAgICBlbGVtZW50TmFtZTonYmFycmlvJyxcbiAgICAgICAgZWRpdGFibGU6cHVlZGVFZGl0YXIsXG4gICAgICAgIGZpZWxkczpbXG4gICAgICAgICAgICB7bmFtZTonY29tdW5hJyAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnfSxcbiAgICAgICAgICAgIHtuYW1lOidiYXJyaW8nICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCd9LFxuICAgICAgICAgICAge25hbWU6J25vbWJyZScgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0J30sXG4gICAgICAgIF0sXG4gICAgICAgIHByaW1hcnlLZXk6Wydjb211bmEnLCAnYmFycmlvJ10sXG4gICAgICAgIGZvcmVpZ25LZXlzOiBbXG4gICAgICAgICAgICB7cmVmZXJlbmNlczonY29tdW5hcycsIGZpZWxkczpbJ2NvbXVuYSddfSxcbiAgICAgICAgXSxcbiAgICAgICAgZGV0YWlsVGFibGVzOiBbXG4gICAgICAgICAgICB7dGFibGU6IFwiZnJhY2Npb25lc1wiLCBmaWVsZHM6IFtcImNvbXVuYVwiLCBcImJhcnJpb1wiXSwgYWJyOiBcImZcIiwgbGFiZWw6XCJmcmFjY2lvbmVzXCJ9XG4gICAgICAgIF0sXG4gICAgfTtcbn0iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.comunas = comunas;
|
|
13
|
+
function comunas(context) {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
var puedeEditar = context.forDump || ((_b = (_a = context.puede) === null || _a === void 0 ? void 0 : _a.campo) === null || _b === void 0 ? void 0 : _b.administrar) || context.user.rol === 'recepcionista';
|
|
16
|
+
return {
|
|
17
|
+
name: 'comunas',
|
|
18
|
+
elementName: 'comuna',
|
|
19
|
+
editable: puedeEditar,
|
|
20
|
+
fields: [
|
|
21
|
+
{ name: 'comuna', typeName: 'text' },
|
|
22
|
+
{ name: 'nombre', typeName: 'text', isName: true },
|
|
23
|
+
{ name: 'zona', typeName: 'text' },
|
|
24
|
+
],
|
|
25
|
+
primaryKey: ['comuna'],
|
|
26
|
+
detailTables: [
|
|
27
|
+
{ table: "barrios", fields: ["comuna"], abr: "b", label: "barrios" },
|
|
28
|
+
{ table: "fracciones", fields: ["comuna"], abr: "f", label: "fracciones" }
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29tdW5hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2ZXIvdGFibGUtY29tdW5hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7SUFBQSxZQUFZLENBQUM7O0lBSWIsMEJBaUJDO0lBakJELFNBQWdCLE9BQU8sQ0FBQyxPQUFvQjs7UUFDeEMsSUFBSSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sS0FBSSxNQUFBLE1BQUEsT0FBTyxDQUFDLEtBQUssMENBQUUsS0FBSywwQ0FBRSxXQUFXLENBQUEsSUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBRyxlQUFlLENBQUM7UUFDM0csT0FBTztZQUNILElBQUksRUFBQyxTQUFTO1lBQ2QsV0FBVyxFQUFDLFFBQVE7WUFDcEIsUUFBUSxFQUFDLFdBQVc7WUFDcEIsTUFBTSxFQUFDO2dCQUNILEVBQUMsSUFBSSxFQUFDLFFBQVEsRUFBb0IsUUFBUSxFQUFDLE1BQU0sRUFBQztnQkFDbEQsRUFBQyxJQUFJLEVBQUMsUUFBUSxFQUFvQixRQUFRLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxJQUFJLEVBQUM7Z0JBQy9ELEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBc0IsUUFBUSxFQUFDLE1BQU0sRUFBQzthQUNyRDtZQUNELFVBQVUsRUFBQyxDQUFDLFFBQVEsQ0FBQztZQUNyQixZQUFZLEVBQUU7Z0JBQ1YsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLFNBQVMsRUFBQztnQkFDakUsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLFlBQVksRUFBQzthQUMxRTtTQUNKLENBQUM7SUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQge1RhYmxlRGVmaW5pdGlvbiwgVGFibGVDb250ZXh0fSBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb211bmFzKGNvbnRleHQ6VGFibGVDb250ZXh0KTpUYWJsZURlZmluaXRpb24ge1xyXG4gICAgdmFyIHB1ZWRlRWRpdGFyID0gY29udGV4dC5mb3JEdW1wIHx8IGNvbnRleHQucHVlZGU/LmNhbXBvPy5hZG1pbmlzdHJhcnx8Y29udGV4dC51c2VyLnJvbD09PSdyZWNlcGNpb25pc3RhJztcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTonY29tdW5hcycsXHJcbiAgICAgICAgZWxlbWVudE5hbWU6J2NvbXVuYScsXHJcbiAgICAgICAgZWRpdGFibGU6cHVlZGVFZGl0YXIsXHJcbiAgICAgICAgZmllbGRzOltcclxuICAgICAgICAgICAge25hbWU6J2NvbXVuYScgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0J30sXHJcbiAgICAgICAgICAgIHtuYW1lOidub21icmUnICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcsIGlzTmFtZTp0cnVlfSxcclxuICAgICAgICAgICAge25hbWU6J3pvbmEnICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0J30sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBwcmltYXJ5S2V5OlsnY29tdW5hJ10sXHJcbiAgICAgICAgZGV0YWlsVGFibGVzOiBbXHJcbiAgICAgICAgICAgIHt0YWJsZTogXCJiYXJyaW9zXCIsIGZpZWxkczogW1wiY29tdW5hXCJdLCBhYnI6IFwiYlwiLCBsYWJlbDpcImJhcnJpb3NcIn0sXHJcbiAgICAgICAgICAgIHt0YWJsZTogXCJmcmFjY2lvbmVzXCIsIGZpZWxkczogW1wiY29tdW5hXCJdLCBhYnI6IFwiZlwiLCBsYWJlbDpcImZyYWNjaW9uZXNcIn1cclxuICAgICAgICBdLFxyXG4gICAgfTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TableDefinition, TableContext, FieldDefinition } from "./types-dmencu";
|
|
2
|
+
export type controlCamposOpts = {
|
|
3
|
+
nombre: string;
|
|
4
|
+
agrupador?: string;
|
|
5
|
+
agrupado?: boolean;
|
|
6
|
+
camposCorte?: FieldDefinition[];
|
|
7
|
+
filtroWhere?: string;
|
|
8
|
+
title?: string;
|
|
9
|
+
gabinete?: boolean;
|
|
10
|
+
sinhogfin?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare function control_campo(context: TableContext, opts?: controlCamposOpts): TableDefinition;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
(function (factory) {
|
|
13
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
14
|
+
var v = factory(require, exports);
|
|
15
|
+
if (v !== undefined) module.exports = v;
|
|
16
|
+
}
|
|
17
|
+
else if (typeof define === "function" && define.amd) {
|
|
18
|
+
define(["require", "exports"], factory);
|
|
19
|
+
}
|
|
20
|
+
})(function (require, exports) {
|
|
21
|
+
"use strict";
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.control_campo = control_campo;
|
|
24
|
+
function control_campo(context, opts) {
|
|
25
|
+
var _a, _b, _c;
|
|
26
|
+
opts = opts || { nombre: 'control_campo' };
|
|
27
|
+
opts.agrupador = opts.agrupador || 'no_rea_groups';
|
|
28
|
+
opts.agrupado = (_a = opts.agrupado) !== null && _a !== void 0 ? _a : false;
|
|
29
|
+
var be = context.be;
|
|
30
|
+
var db = be.db;
|
|
31
|
+
var puedeEditar = context.forDump || ((_c = (_b = context.puede) === null || _b === void 0 ? void 0 : _b.campo) === null || _c === void 0 ? void 0 : _c.administrar) || context.user.rol === 'recepcionista';
|
|
32
|
+
var camposCorte = [{ name: 'cluster', typeName: 'integer' }, ...(opts.camposCorte || [])];
|
|
33
|
+
var tieneSeleccionado = context.be.caches.tableContent.conReaHogar.config_sorteo;
|
|
34
|
+
var camposCalculados = [
|
|
35
|
+
{ name: 'no_salieron', typeName: 'bigint', aggregate: 'sum', title: 'no salieron a campo', condicion: `resumen_estado is null` },
|
|
36
|
+
{ name: 'salieron', typeName: 'bigint', aggregate: 'sum', title: 'salieron a campo' },
|
|
37
|
+
{ name: 'sin_novedad', typeName: 'bigint', aggregate: 'sum', visible: opts.agrupado },
|
|
38
|
+
{ name: 'sin_resultado', typeName: 'bigint', aggregate: 'sum', visible: !opts.agrupado, condicion: `resumen_estado in ('vacio')` },
|
|
39
|
+
// {name:'cita_pactada' , typeName:'bigint', aggregate:'sum', visible:!opts.agrupado, condicion:`resumen_estado in ('cita pactada')`},
|
|
40
|
+
{ name: 'rea', typeName: 'bigint', aggregate: 'sum', condicion: `resultado='efectiva'` },
|
|
41
|
+
{ name: 'pendiente', typeName: 'bigint', aggregate: 'sum', condicion: `resultado='pendiente'` },
|
|
42
|
+
{ name: 'mixta', typeName: 'bigint', aggregate: 'sum', condicion: `resultado='mixta'` },
|
|
43
|
+
/*
|
|
44
|
+
{name:'asuente_viv' , typeName:'bigint', title:'ausente de vivienda', condicion:`cod_no_rea=7`},
|
|
45
|
+
{name:'asuente_mie' , typeName:'bigint', title:'ausente de miembro seleccionado', condicion:`cod_no_rea=75`},
|
|
46
|
+
*/
|
|
47
|
+
...(be.caches.tableContent[opts.agrupador] || []).map((g) => ({
|
|
48
|
+
name: g.grupo.replace(/ /g, '_'),
|
|
49
|
+
typeName: 'bigint',
|
|
50
|
+
inTable: false,
|
|
51
|
+
title: g.grupo,
|
|
52
|
+
condicion: `cod_no_rea in (${g.codigos.map(c => db.quoteLiteral(c.no_rea)).join(',')})`,
|
|
53
|
+
aggregate: 'sum',
|
|
54
|
+
tasa_efectividad: !g.codigos[0].grupo0.startsWith('no encuestable')
|
|
55
|
+
}))
|
|
56
|
+
];
|
|
57
|
+
return {
|
|
58
|
+
name: opts.nombre,
|
|
59
|
+
editable: false,
|
|
60
|
+
title: opts.title || opts.nombre.replace(/_/g, ' '),
|
|
61
|
+
fields: [
|
|
62
|
+
...camposCorte,
|
|
63
|
+
{ name: 'total', typeName: 'bigint', aggregate: 'sum' },
|
|
64
|
+
...camposCalculados.map(f => { var { condicion } = f, fieldDef = __rest(f, ["condicion"]); return fieldDef; }),
|
|
65
|
+
{ name: 'otros', typeName: 'bigint', aggregate: 'sum' },
|
|
66
|
+
{ name: 'tasa_efectividad', typeName: 'decimal' },
|
|
67
|
+
{ name: 'incompleto', typeName: 'bigint', aggregate: 'sum', visible: !opts.agrupado },
|
|
68
|
+
{ name: 'verif_encu_pendiente', typeName: 'bigint', aggregate: 'sum', visible: !opts.agrupado },
|
|
69
|
+
{ name: 'en_curso', typeName: 'bigint', aggregate: 'sum', visible: !!opts.gabinete, title: 'En_curso' },
|
|
70
|
+
{ name: 'otras_causas_gabinete', typeName: 'bigint', aggregate: 'sum', visible: !!opts.gabinete, title: 'Otras_causas' },
|
|
71
|
+
],
|
|
72
|
+
primaryKey: camposCorte.map(f => f.name),
|
|
73
|
+
sql: {
|
|
74
|
+
isTable: false,
|
|
75
|
+
from: `
|
|
76
|
+
(
|
|
77
|
+
select t.*, coalesce(incompleto,0)+coalesce(sin_resultado,0) as sin_novedad,
|
|
78
|
+
--TODO REVISAR
|
|
79
|
+
round(rea*100.0/nullif( ${(['rea', ...(camposCalculados.filter(f => f.tasa_efectividad).map(f => f.name))].join('+'))},0),1) as tasa_efectividad,
|
|
80
|
+
total-coalesce(no_salieron,0) as salieron,
|
|
81
|
+
coalesce(otros,0) + ${opts.gabinete ? ` coalesce(otras_causas,0) ` : opts.sinhogfin ? ` coalesce(otras_causas_seleccionado,0)+coalesce(otras_causas_vivienda,0)` : !tieneSeleccionado ? ` coalesce(otras_causas_hogar,0) +coalesce(otras_causas_vivienda,0)` : ` coalesce(otras_causas_hogar,0) +coalesce(otras_causas_vivienda,0)+ coalesce(otras_causas_seleccionado,0)`} as otras_causas_gabinete,
|
|
82
|
+
coalesce(pendiente,0)+coalesce(mixta,0) +coalesce(sin_resultado,0) +coalesce(incompleto,0) +${opts.gabinete && tieneSeleccionado && !opts.sinhogfin ? ` coalesce(no_finalizada,0) ` : !opts.gabinete && !opts.sinhogfin && tieneSeleccionado ? `coalesce(sin_finalizar_dm,0)+ coalesce(sin_finalizar_incompleto,0) + coalesce(sin_finalizar_otra_causa,0)` : `0`} as en_curso
|
|
83
|
+
/* coalesce(otros,0)+${opts.gabinete ? `coalesce(otras_causas,0) ` : `coalesce(otras_causas_hogar,0) + coalesce(otras_causas_seleccionado,0) + coalesce(otras_causas_vivienda,0)`} as otras_causas_gabinete, */
|
|
84
|
+
/* coalesce(pendiente,0)+coalesce(mixta,0)+ coalesce(incompleto,0)+coalesce(sin_resultado,0)+${opts.gabinete ? `coalesce(no_finalizada,0)` : `coalesce(sin_finalizar_dm,0)+coalesce(sin_finalizar_incompleto,0)+ coalesce(sin_finalizar_otra_causa,0)`} as en_curso */
|
|
85
|
+
|
|
86
|
+
from (
|
|
87
|
+
select ${[
|
|
88
|
+
...camposCorte.map(f => f.name),
|
|
89
|
+
`count(*) as total`,
|
|
90
|
+
...camposCalculados.filter(f => f.condicion).map(f => `
|
|
91
|
+
count(*) filter (where klase=${db.quoteLiteral(f.name)}) as ${f.name}`),
|
|
92
|
+
'count(*) filter (where klase is null) as otros'
|
|
93
|
+
].join(',')}
|
|
94
|
+
, count(*) filter (where resumen_estado in ('incompleto','con problemas')) as incompleto
|
|
95
|
+
, count(*) filter (where resumen_estado in ('no rea','ok') and verificado is null) as verif_encu_pendiente
|
|
96
|
+
from (
|
|
97
|
+
select t.*,a.participacion_a, a.clase_a,
|
|
98
|
+
case ${camposCalculados.filter(f => f.condicion).map(f => `when ${f.condicion} then ${db.quoteLiteral(f.name)}
|
|
99
|
+
`).join('')} else null end as klase
|
|
100
|
+
from (
|
|
101
|
+
select t.*, tt.verificado, t.norea as cod_no_rea
|
|
102
|
+
from tem t left join comunas c on t.nrocomuna=c.comuna
|
|
103
|
+
left join tareas_tem tt on t.operativo=tt.operativo and t.enc=tt.enc and tt.tarea='encu'
|
|
104
|
+
|
|
105
|
+
where ${opts.filtroWhere || 'true'}
|
|
106
|
+
) t left join (select area, string_agg(distinct participacion::text, ', ' order by participacion::text desc ) as participacion_a
|
|
107
|
+
, string_agg(distinct clase, ', ' order by clase desc ) as clase_a
|
|
108
|
+
from tem
|
|
109
|
+
group by 1
|
|
110
|
+
) a using (area )
|
|
111
|
+
) t
|
|
112
|
+
${camposCorte.length ? `group by ${camposCorte.map(f => f.name)}` : ''}
|
|
113
|
+
) t
|
|
114
|
+
)`
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29udHJvbF9jYW1wby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2ZXIvdGFibGUtY29udHJvbF9jYW1wby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLFlBQVksQ0FBQzs7SUFvQmIsc0NBa0dDO0lBbEdELFNBQWdCLGFBQWEsQ0FBQyxPQUFvQixFQUFDLElBQXVCOztRQUN0RSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUMsTUFBTSxFQUFDLGVBQWUsRUFBQyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxlQUFlLENBQUE7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFBLElBQUksQ0FBQyxRQUFRLG1DQUFJLEtBQUssQ0FBQTtRQUN0QyxJQUFJLEVBQUUsR0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksRUFBRSxHQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDYixJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxLQUFJLE1BQUEsTUFBQSxPQUFPLENBQUMsS0FBSywwQ0FBRSxLQUFLLDBDQUFFLFdBQVcsQ0FBQSxJQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFHLGVBQWUsQ0FBQztRQUMzRyxJQUFJLFdBQVcsR0FBbUIsQ0FBQyxFQUFDLElBQUksRUFBQyxTQUFTLEVBQVMsUUFBUSxFQUFDLFNBQVMsRUFBQyxFQUFDLEdBQUcsQ0FDOUUsSUFBSSxDQUFDLFdBQVcsSUFBRyxFQUFFLENBQ3hCLENBQUMsQ0FBQztRQUNILElBQUksaUJBQWlCLEdBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7UUFDL0UsSUFBSSxnQkFBZ0IsR0FBa0I7WUFDbEMsRUFBQyxJQUFJLEVBQUMsYUFBYSxFQUFJLFFBQVEsRUFBQyxRQUFR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bEQsQ0FDQSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Ozs7Ozs0Q0FNRixJQUFJLENBQUMsV0FBVyxJQUFJLE1BQU07Ozs7Ozs7MEJBTzVDLFdBQVcsQ0FBQyxNQUFNLENBQUEsQ0FBQyxDQUFBLFlBQVksV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxFQUFFOztjQUUxRTthQUNMO1NBQ0osQ0FBQztJQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7IHN0cmluZ2lmeSB9IGZyb20gXCJxdWVyeXN0cmluZ1wiO1xyXG5pbXBvcnQge1RhYmxlRGVmaW5pdGlvbiwgVGFibGVDb250ZXh0LCBGaWVsZERlZmluaXRpb24sIEdydXBvTm9SZWF9IGZyb20gXCIuL3R5cGVzLWRtZW5jdVwiO1xyXG5cclxuLy8gbG9zIGNhbXBvcyBjb24gY29uZGljaW9uIHNlIGN1ZW50YW4gZW4gZWwgc3FsICh2ZXIga2xhc2UpOyB0YXNhX2VmZWN0aXZpZGFkIGluZGljYSBzaSBzdW1hbiBhbCBkZW5vbWluYWRvciBkZSBsYSB0YXNhXHJcbnR5cGUgQ2FtcG9DYWxjdWxhZG8gPSBGaWVsZERlZmluaXRpb24gJiB7Y29uZGljaW9uPzpzdHJpbmcsIHRhc2FfZWZlY3RpdmlkYWQ/OmJvb2xlYW59O1xyXG5cclxuZXhwb3J0IHR5cGUgY29udHJvbENhbXBvc09wdHM9e1xyXG4gICAgbm9tYnJlOnN0cmluZywgXHJcbiAgICBhZ3J1cGFkb3I/OnN0cmluZyxcclxuICAgIGFncnVwYWRvPzpib29sZWFuLFxyXG4gICAgY2FtcG9zQ29ydGU/OkZpZWxkRGVmaW5pdGlvbltdLFxyXG4gICAgZmlsdHJvV2hlcmU/OnN0cmluZ1xyXG4gICAgdGl0bGU/OnN0cmluZ1xyXG4gICAgZ2FiaW5ldGU/OmJvb2xlYW5cclxuICAgIHNpbmhvZ2Zpbj86Ym9vbGVhblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyb2xfY2FtcG8oY29udGV4dDpUYWJsZUNvbnRleHQsb3B0cz86Y29udHJvbENhbXBvc09wdHMpOlRhYmxlRGVmaW5pdGlvbiB7XHJcbiAgICBvcHRzID0gb3B0cyB8fCB7bm9tYnJlOidjb250cm9sX2NhbXBvJ31cclxuICAgIG9wdHMuYWdydXBhZG9yID0gb3B0cy5hZ3J1cGFkb3IgfHwgJ25vX3JlYV9ncm91cHMnXHJcbiAgICBvcHRzLmFncnVwYWRvID0gb3B0cy5hZ3J1cGFkbyA/PyBmYWxzZVxyXG4gICAgdmFyIGJlPWNvbnRleHQuYmU7XHJcbiAgICB2YXIgZGI9YmUuZGI7XHJcbiAgICB2YXIgcHVlZGVFZGl0YXIgPSBjb250ZXh0LmZvckR1bXAgfHwgY29udGV4dC5wdWVkZT8uY2FtcG8/LmFkbWluaXN0cmFyfHxjb250ZXh0LnVzZXIucm9sPT09J3JlY2VwY2lvbmlzdGEnO1xyXG4gICAgdmFyIGNhbXBvc0NvcnRlOkZpZWxkRGVmaW5pdGlvbltdPVt7bmFtZTonY2x1c3RlcicgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcid9LC4uLihcclxuICAgICAgICBvcHRzLmNhbXBvc0NvcnRlIHx8W11cclxuICAgICldO1xyXG4gICAgdmFyIHRpZW5lU2VsZWNjaW9uYWRvPWNvbnRleHQuYmUuY2FjaGVzLnRhYmxlQ29udGVudC5jb25SZWFIb2dhci5jb25maWdfc29ydGVvO1xyXG4gICAgdmFyIGNhbXBvc0NhbGN1bGFkb3M6Q2FtcG9DYWxjdWxhZG9bXT1bXHJcbiAgICAgICAge25hbWU6J25vX3NhbGllcm9uJyAgLCB0eXBlTmFtZTonYmlnaW50JywgYWdncmVnYXRlOidzdW0nLCB0aXRsZTonbm8gc2FsaWVyb24gYSBjYW1wbycsIGNvbmRpY2lvbjpgcmVzdW1lbl9lc3RhZG8gaXMgbnVsbGB9LFxyXG4gICAgICAgIHtuYW1lOidzYWxpZXJvbicgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcsIGFnZ3JlZ2F0ZTonc3VtJywgdGl0bGU6J3NhbGllcm9uIGEgY2FtcG8nfSxcclxuICAgICAgICB7bmFtZTonc2luX25vdmVkYWQnICAsIHR5cGVOYW1lOidiaWdpbnQnLCBhZ2dyZWdhdGU6J3N1bScsIHZpc2libGU6b3B0cy5hZ3J1cGFkb30sXHJcbiAgICAgICAge25hbWU6J3Npbl9yZXN1bHRhZG8nLCB0eXBlTmFtZTonYmlnaW50JywgYWdncmVnYXRlOidzdW0nLCB2aXNpYmxlOiFvcHRzLmFncnVwYWRvLCBjb25kaWNpb246YHJlc3VtZW5fZXN0YWRvIGluICgndmFjaW8nKWB9LFxyXG4gICAgICAgLy8ge25hbWU6J2NpdGFfcGFjdGFkYScgLCB0eXBlTmFtZTonYmlnaW50JywgYWdncmVnYXRlOidzdW0nLCB2aXNpYmxlOiFvcHRzLmFncnVwYWRvLCBjb25kaWNpb246YHJlc3VtZW5fZXN0YWRvIGluICgnY2l0YSBwYWN0YWRhJylgfSxcclxuICAgICAgICB7bmFtZToncmVhJyAgICAgICAgICAsIHR5cGVOYW1lOidiaWdpbnQnLCBhZ2dyZWdhdGU6J3N1bScsIGNvbmRpY2lvbjpgcmVzdWx0YWRvPSdlZmVjdGl2YSdgfSxcclxuICAgICAgICB7bmFtZToncGVuZGllbnRlJyAgICAsIHR5cGVOYW1lOidiaWdpbnQnLCBhZ2dyZWdhdGU6J3N1bScsIGNvbmRpY2lvbjpgcmVzdWx0YWRvPSdwZW5kaWVudGUnYH0sXHJcbiAgICAgICAge25hbWU6J21peHRhJyAgICAgICAgLCB0eXBlTmFtZTonYmlnaW50JywgYWdncmVnYXRlOidzdW0nLCBjb25kaWNpb246YHJlc3VsdGFkbz0nbWl4dGEnYH0sXHJcbiAgICAgICAgLypcclxuICAgICAgICB7bmFtZTonYXN1ZW50ZV92aXYnICAsIHR5cGVOYW1lOidiaWdpbnQnLCB0aXRsZTonYXVzZW50ZSBkZSB2aXZpZW5kYScsIGNvbmRpY2lvbjpgY29kX25vX3JlYT03YH0sXHJcbiAgICAgICAge25hbWU6J2FzdWVudGVfbWllJyAgLCB0eXBlTmFtZTonYmlnaW50JywgdGl0bGU6J2F1c2VudGUgZGUgbWllbWJybyBzZWxlY2Npb25hZG8nLCBjb25kaWNpb246YGNvZF9ub19yZWE9NzVgfSxcclxuICAgICAgICAqL1xyXG4gICAgICAgIC4uLihiZS5jYWNoZXMudGFibGVDb250ZW50W29wdHMuYWdydXBhZG9yXXx8W10pLm1hcCgoZzpHcnVwb05vUmVhKTpDYW1wb0NhbGN1bGFkbz0+KHtcclxuICAgICAgICAgICAgbmFtZTpnLmdydXBvLnJlcGxhY2UoLyAvZywnXycpLFxyXG4gICAgICAgICAgICB0eXBlTmFtZTonYmlnaW50JyxcclxuICAgICAgICAgICAgaW5UYWJsZTpmYWxzZSxcclxuICAgICAgICAgICAgdGl0bGU6Zy5ncnVwbyxcclxuICAgICAgICAgICAgY29uZGljaW9uOmBjb2Rfbm9fcmVhIGluICgke2cuY29kaWdvcy5tYXAoYz0+ZGIucXVvdGVMaXRlcmFsKGMubm9fcmVhKSkuam9pbignLCcpfSlgLFxyXG4gICAgICAgICAgICBhZ2dyZWdhdGU6J3N1bScsXHJcbiAgICAgICAgICAgIHRhc2FfZWZlY3RpdmlkYWQ6IWcuY29kaWdvc1swXS5ncnVwbzAuc3RhcnRzV2l0aCgnbm8gZW5jdWVzdGFibGUnKVxyXG4gICAgICAgIH0pKVxyXG4gICAgXTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTpvcHRzLm5vbWJyZSxcclxuICAgICAgICBlZGl0YWJsZTpmYWxzZSxcclxuICAgICAgICB0aXRsZTpvcHRzLnRpdGxlfHxvcHRzLm5vbWJyZS5yZXBsYWNlKC9fL2csJyAnKSxcclxuICAgICAgICBmaWVsZHM6W1xyXG4gICAgICAgICAgICAuLi5jYW1wb3NDb3J0ZSxcclxuICAgICAgICAgICAge25hbWU6J3RvdGFsJyAgICAgICAgLCB0eXBlTmFtZTonYmlnaW50JywgYWdncmVnYXRlOidzdW0nfSxcclxuICAgICAgICAgICAgLi4uY2FtcG9zQ2FsY3VsYWRvcy5tYXAoZj0+e3ZhciB7Y29uZGljaW9uLCAuLi5maWVsZERlZn09ZjsgcmV0dXJuIGZpZWxkRGVmfSksXHJcbiAgICAgICAgICAgIHtuYW1lOidvdHJvcycgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcsIGFnZ3JlZ2F0ZTonc3VtJ30sXHJcbiAgICAgICAgICAgIHtuYW1lOid0YXNhX2VmZWN0aXZpZGFkJyAgICAgICAgICwgdHlwZU5hbWU6J2RlY2ltYWwnfSxcclxuICAgICAgICAgICAge25hbWU6J2luY29tcGxldG8nICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonYmlnaW50JywgYWdncmVnYXRlOidzdW0nLCB2aXNpYmxlOiFvcHRzLmFncnVwYWRvfSxcclxuICAgICAgICAgICAge25hbWU6J3ZlcmlmX2VuY3VfcGVuZGllbnRlJyAgICAgLCB0eXBlTmFtZTonYmlnaW50JywgYWdncmVnYXRlOidzdW0nLCB2aXNpYmxlOiFvcHRzLmFncnVwYWRvfSxcclxuICAgICAgICAgICAge25hbWU6J2VuX2N1cnNvJyAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonYmlnaW50JywgYWdncmVnYXRlOidzdW0nLCB2aXNpYmxlOiEhb3B0cy5nYWJpbmV0ZSwgdGl0bGU6J0VuX2N1cnNvJyAgICAgfSxcclxuICAgICAgICAgICAge25hbWU6J290cmFzX2NhdXNhc19nYWJpbmV0ZScgICAgLCB0eXBlTmFtZTonYmlnaW50JywgYWdncmVnYXRlOidzdW0nLCB2aXNpYmxlOiEhb3B0cy5nYWJpbmV0ZSwgdGl0bGU6ICdPdHJhc19jYXVzYXMnfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIHByaW1hcnlLZXk6Y2FtcG9zQ29ydGUubWFwKGY9PmYubmFtZSksXHJcbiAgICAgICAgc3FsOntcclxuICAgICAgICAgICAgaXNUYWJsZTpmYWxzZSxcclxuICAgICAgICAgICAgZnJvbTpgIFxyXG4gICAgICAgICAgICAoIFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0IHQuKiwgY29hbGVzY2UoaW5jb21wbGV0bywwKStjb2FsZXNjZShzaW5fcmVzdWx0YWRvLDApIGFzIHNpbl9ub3ZlZGFkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAtLVRPRE8gUkVWSVNBUlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3VuZChyZWEqMTAwLjAvbnVsbGlmKCAkeyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsncmVhJywgLi4uKGNhbXBvc0NhbGN1bGFkb3MuZmlsdGVyKGY9PmYudGFzYV9lZmVjdGl2aWRhZCkubWFwKGY9PmYubmFtZSkpXS5qb2luKCcrJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgKX0sMCksMSkgYXMgdGFzYV9lZmVjdGl2aWRhZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwtY29hbGVzY2Uobm9fc2FsaWVyb24sMCkgYXMgc2FsaWVyb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvYWxlc2NlKG90cm9zLDApICsgJHtvcHRzLmdhYmluZXRlP2AgY29hbGVzY2Uob3RyYXNfY2F1c2FzLDApIGA6b3B0cy5zaW5ob2dmaW4/YCBjb2FsZXNjZShvdHJhc19jYXVzYXNfc2VsZWNjaW9uYWRvLDApK2NvYWxlc2NlKG90cmFzX2NhdXNhc192aXZpZW5kYSwwKWA6ICF0aWVuZVNlbGVjY2lvbmFkbz9gIGNvYWxlc2NlKG90cmFzX2NhdXNhc19ob2dhciwwKSArY29hbGVzY2Uob3RyYXNfY2F1c2FzX3ZpdmllbmRhLDApYDpgIGNvYWxlc2NlKG90cmFzX2NhdXNhc19ob2dhciwwKSArY29hbGVzY2Uob3RyYXNfY2F1c2FzX3ZpdmllbmRhLDApKyBjb2FsZXNjZShvdHJhc19jYXVzYXNfc2VsZWNjaW9uYWRvLDApYH0gIGFzIG90cmFzX2NhdXNhc19nYWJpbmV0ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29hbGVzY2UocGVuZGllbnRlLDApK2NvYWxlc2NlKG1peHRhLDApICtjb2FsZXNjZShzaW5fcmVzdWx0YWRvLDApICtjb2FsZXNjZShpbmNvbXBsZXRvLDApICskeyBvcHRzLmdhYmluZXRlICYmIHRpZW5lU2VsZWNjaW9uYWRvICYmICFvcHRzLnNpbmhvZ2ZpbiA/IGAgY29hbGVzY2Uobm9fZmluYWxpemFkYSwwKSBgOiAhb3B0cy5nYWJpbmV0ZSAmJiAhb3B0cy5zaW5ob2dmaW4gJiYgdGllbmVTZWxlY2Npb25hZG8/IGBjb2FsZXNjZShzaW5fZmluYWxpemFyX2RtLDApKyBjb2FsZXNjZShzaW5fZmluYWxpemFyX2luY29tcGxldG8sMCkgKyBjb2FsZXNjZShzaW5fZmluYWxpemFyX290cmFfY2F1c2EsMClgIDpgMGB9IGFzIGVuX2N1cnNvXHJcbiAgICAgICAgICAgICAgICAgICAgIC8qICAgY29hbGVzY2Uob3Ryb3MsMCkrJHtvcHRzLmdhYmluZXRlP2Bjb2FsZXNjZShvdHJhc19jYXVzYXMsMCkgYDpgY29hbGVzY2Uob3RyYXNfY2F1c2FzX2hvZ2FyLDApICsgY29hbGVzY2Uob3RyYXNfY2F1c2FzX3NlbGVjY2lvbmFkbywwKSArIGNvYWxlc2NlKG90cmFzX2NhdXNhc192aXZpZW5kYSwwKWB9ICBhcyBvdHJhc19jYXVzYXNfZ2FiaW5ldGUsICovXHJcbiAgICAgICAgICAgICAgICAgICAgIC8qICAgY29hbGVzY2UocGVuZGllbnRlLDApK2NvYWxlc2NlKG1peHRhLDApKyBjb2FsZXNjZShpbmNvbXBsZXRvLDApK2NvYWxlc2NlKHNpbl9yZXN1bHRhZG8sMCkrJHtvcHRzLmdhYmluZXRlP2Bjb2FsZXNjZShub19maW5hbGl6YWRhLDApYDpgY29hbGVzY2Uoc2luX2ZpbmFsaXphcl9kbSwwKStjb2FsZXNjZShzaW5fZmluYWxpemFyX2luY29tcGxldG8sMCkrIGNvYWxlc2NlKHNpbl9maW5hbGl6YXJfb3RyYV9jYXVzYSwwKWB9ICBhcyBlbl9jdXJzbyAqL1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmcm9tICggICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ICR7W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uY2FtcG9zQ29ydGUubWFwKGY9PmYubmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgY291bnQoKikgYXMgdG90YWxgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uY2FtcG9zQ2FsY3VsYWRvcy5maWx0ZXIoZj0+Zi5jb25kaWNpb24pLm1hcChmPT5gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCgqKSBmaWx0ZXIgKHdoZXJlIGtsYXNlPSR7ZGIucXVvdGVMaXRlcmFsKGYubmFtZSl9KSBhcyAke2YubmFtZX1gKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3VudCgqKSBmaWx0ZXIgKHdoZXJlIGtsYXNlIGlzIG51bGwpIGFzIG90cm9zJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBdLmpvaW4oJywnKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgY291bnQoKikgZmlsdGVyICh3aGVyZSByZXN1bWVuX2VzdGFkbyBpbiAoJ2luY29tcGxldG8nLCdjb24gcHJvYmxlbWFzJykpIGFzIGluY29tcGxldG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgY291bnQoKikgZmlsdGVyICh3aGVyZSByZXN1bWVuX2VzdGFkbyBpbiAoJ25vIHJlYScsJ29rJykgYW5kIHZlcmlmaWNhZG8gaXMgbnVsbCkgYXMgdmVyaWZfZW5jdV9wZW5kaWVudGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QgdC4qLGEucGFydGljaXBhY2lvbl9hLCBhLmNsYXNlX2EsIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJHtjYW1wb3NDYWxjdWxhZG9zLmZpbHRlcihmPT5mLmNvbmRpY2lvbikubWFwKGY9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgd2hlbiAke2YuY29uZGljaW9ufSB0aGVuICR7ZGIucXVvdGVMaXRlcmFsKGYubmFtZSl9IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuam9pbignJyl9IGVsc2UgbnVsbCBlbmQgYXMga2xhc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0IHQuKiwgdHQudmVyaWZpY2FkbywgdC5ub3JlYSBhcyBjb2Rfbm9fcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRlbSB0IGxlZnQgam9pbiBjb211bmFzIGMgb24gdC5ucm9jb211bmE9Yy5jb211bmFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IGpvaW4gdGFyZWFzX3RlbSB0dCBvbiB0Lm9wZXJhdGl2bz10dC5vcGVyYXRpdm8gYW5kIHQuZW5jPXR0LmVuYyBhbmQgdHQudGFyZWE9J2VuY3UnXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSAke29wdHMuZmlsdHJvV2hlcmUgfHwgJ3RydWUnfSAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHQgbGVmdCBqb2luIChzZWxlY3QgYXJlYSwgc3RyaW5nX2FnZyhkaXN0aW5jdCBwYXJ0aWNpcGFjaW9uOjp0ZXh0LCAnLCAnIG9yZGVyIGJ5IHBhcnRpY2lwYWNpb246OnRleHQgZGVzYyApIGFzIHBhcnRpY2lwYWNpb25fYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHN0cmluZ19hZ2coZGlzdGluY3QgY2xhc2UsICcsICcgb3JkZXIgYnkgY2xhc2UgZGVzYyApIGFzIGNsYXNlX2FcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgYnkgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIGEgIHVzaW5nICAoYXJlYSApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAke2NhbXBvc0NvcnRlLmxlbmd0aD9gZ3JvdXAgYnkgJHtjYW1wb3NDb3J0ZS5tYXAoZj0+Zi5uYW1lKX1gOicnfVxyXG4gICAgICAgICAgICAgICAgICAgICkgdFxyXG4gICAgICAgICAgICApYFxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.control_dias_carga = control_dias_carga;
|
|
13
|
+
function control_dias_carga(_context) {
|
|
14
|
+
//var be=context.be;
|
|
15
|
+
var puedeEditar = false;
|
|
16
|
+
//se puede mejorar la forma de recuperar los nombres de los días desde dias_arreglo obtenida desde el sql
|
|
17
|
+
var dias_nombre = ['', 'Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'];
|
|
18
|
+
return {
|
|
19
|
+
name: 'control_dias_carga',
|
|
20
|
+
elementName: 'dias',
|
|
21
|
+
editable: puedeEditar,
|
|
22
|
+
fields: [
|
|
23
|
+
{ name: 'operativo', typeName: 'text', editable: false, nullable: false, defaultValue: 'etoi211' },
|
|
24
|
+
{ name: 'dominio', typeName: 'integer', editable: false, nullable: false },
|
|
25
|
+
{ name: 'cant_reas', typeName: 'bigint', editable: false, title: "Realizadas" },
|
|
26
|
+
{ name: 'cant_domingo', typeName: 'bigint', editable: false, title: dias_nombre[1] },
|
|
27
|
+
{ name: 'cant_lunes', typeName: 'bigint', editable: false, title: dias_nombre[2] },
|
|
28
|
+
{ name: 'cant_martes', typeName: 'bigint', editable: false, title: dias_nombre[3] },
|
|
29
|
+
{ name: 'cant_miercoles', typeName: 'bigint', editable: false, title: dias_nombre[4] },
|
|
30
|
+
{ name: 'cant_jueves', typeName: 'bigint', editable: false, title: dias_nombre[5] },
|
|
31
|
+
{ name: 'cant_viernes', typeName: 'bigint', editable: false, title: dias_nombre[6] },
|
|
32
|
+
{ name: 'cant_sabado', typeName: 'bigint', editable: false, title: dias_nombre[7] },
|
|
33
|
+
],
|
|
34
|
+
primaryKey: ["operativo", 'dominio'],
|
|
35
|
+
sql: {
|
|
36
|
+
isTable: false,
|
|
37
|
+
from: `(
|
|
38
|
+
select a.operativo,a.dominio,array_agg(distinct dia||nombre) as dias_arreglo,
|
|
39
|
+
count(*) filter (where rea=1) as cant_reas,
|
|
40
|
+
count(*) filter (where dia =1) as cant_domingo,
|
|
41
|
+
count(*) filter (where dia =2) as cant_lunes ,
|
|
42
|
+
count(*) filter (where dia =3) as cant_martes ,
|
|
43
|
+
count(*) filter (where dia =4) as cant_miercoles ,
|
|
44
|
+
count(*) filter (where dia =5) as cant_jueves,
|
|
45
|
+
count(*) filter (where dia =6) as cant_viernes ,
|
|
46
|
+
count(*) filter (where dia =7) as cant_sabado
|
|
47
|
+
from (
|
|
48
|
+
select t.operativo,t.dominio,t.rea,dia,v.nombre
|
|
49
|
+
from tem t
|
|
50
|
+
left join hogares h on t.operativo=h.operativo and t.enc=h.vivienda
|
|
51
|
+
left join personas p on h.operativo=p.operativo and h.vivienda=p.vivienda and h.hogar=p.hogar
|
|
52
|
+
join variables_opciones v on t.operativo=v.operativo and v.variable='dia' and v.opcion=p.dia::text
|
|
53
|
+
where t.rea=1 and t.operativo='UT_2023' and p.persona=h.cr_num_miembro
|
|
54
|
+
order by 1,2,3,4,5
|
|
55
|
+
)a
|
|
56
|
+
group by 1,2
|
|
57
|
+
order by 1,2
|
|
58
|
+
)`,
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29udHJvbF9kaWFzX2NhcmdhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZlci90YWJsZS1jb250cm9sX2RpYXNfY2FyZ2EudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOztJQUliLGdEQWtEQztJQWxERCxTQUFnQixrQkFBa0IsQ0FBQyxRQUFxQjtRQUNwRCxvQkFBb0I7UUFDcEIsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLHlHQUF5RztRQUN6RyxJQUFJLFdBQVcsR0FBRSxDQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxXQUFXLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUN6RixPQUFPO1lBQ0gsSUFBSSxFQUFDLG9CQUFvQjtZQUN6QixXQUFXLEVBQUMsTUFBTTtZQUNsQixRQUFRLEVBQUMsV0FBVztZQUNwQixNQUFNLEVBQUM7Z0JBQ0gsRUFBQyxJQUFJLEVBQUMsV0FBVyxFQUFjLFFBQVEsRUFBQyxNQUFNLEVBQU0sUUFBUSxFQUFFLEtBQUssRUFBSSxRQUFRLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUM7Z0JBQ2hILEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBZ0IsUUFBUSxFQUFDLFNBQVMsRUFBRyxRQUFRLEVBQUUsS0FBSyxFQUFJLFFBQVEsRUFBRSxLQUFLLEVBQTBCO2dCQUNoSCxFQUFDLElBQUksRUFBQyxXQUFXLEVBQWMsUUFBUSxFQUFDLFFBQVEsRUFBSSxRQUFRLEVBQUUsS0FBSyxFQUFJLEtBQUssRUFBRSxZQUFZLEVBQUk7Z0JBQzlGLEVBQUMsSUFBSSxFQUFDLGNBQWMsRUFBVyxRQUFRLEVBQUMsUUFBUSxFQUFJLFFBQVEsRUFBRSxLQUFLLEVBQUksS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUYsRUFBQyxJQUFJLEVBQUMsWUFBWSxFQUFhLFFBQVEsRUFBQyxRQUFRLEVBQUksUUFBUSxFQUFFLEtBQUssRUFBSSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM5RixFQUFDLElBQUksRUFBQyxhQUFhLEVBQVksUUFBUSxFQUFDLFFBQVEsRUFBSSxRQUFRLEVBQUUsS0FBSyxFQUFJLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzlGLEVBQUMsSUFBSSxFQUFDLGdCQUFnQixFQUFTLFFBQVEsRUFBQyxRQUFRLEVBQUksUUFBUSxFQUFFLEtBQUssRUFBSSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM5RixFQUFDLElBQUksRUFBQyxhQUFhLEVBQVksUUFBUSxFQUFDLFFBQVEsRUFBSSxRQUFRLEVBQUUsS0FBSyxFQUFJLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzlGLEVBQUMsSUFBSSxFQUFDLGNBQWMsRUFBVyxRQUFRLEVBQUMsUUFBUSxFQUFJLFFBQVEsRUFBRSxLQUFLLEVBQUksS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUYsRUFBQyxJQUFJLEVBQUMsYUFBYSxFQUFZLFFBQVEsRUFBQyxRQUFRLEVBQUksUUFBUSxFQUFFLEtBQUssRUFBSSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO2FBRXJHO1lBQ0csVUFBVSxFQUFDLENBQUMsV0FBVyxFQUFDLFNBQVMsQ0FBQztZQUNsQyxHQUFHLEVBQUM7Z0JBQ0EsT0FBTyxFQUFDLEtBQUs7Z0JBQ2IsSUFBSSxFQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Y0FxQkg7YUFDTDtTQUVKLENBQUM7SUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQge1RhYmxlRGVmaW5pdGlvbiwgVGFibGVDb250ZXh0LCBGaWVsZERlZmluaXRpb24sIE90aGVyVGFibGVEZWZzfSBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuIFxyXG5leHBvcnQgZnVuY3Rpb24gY29udHJvbF9kaWFzX2NhcmdhKF9jb250ZXh0OlRhYmxlQ29udGV4dCk6VGFibGVEZWZpbml0aW9uIHtcclxuICAgIC8vdmFyIGJlPWNvbnRleHQuYmU7XHJcbiAgICB2YXIgcHVlZGVFZGl0YXIgPSBmYWxzZTtcclxuICAgIC8vc2UgcHVlZGUgbWVqb3JhciBsYSBmb3JtYSBkZSByZWN1cGVyYXIgbG9zIG5vbWJyZXMgZGUgbG9zIGTDrWFzIGRlc2RlIGRpYXNfYXJyZWdsbyBvYnRlbmlkYSBkZXNkZSBlbCBzcWxcclxuICAgIHZhciBkaWFzX25vbWJyZT0gWycnLCdEb21pbmdvJywnTHVuZXMnLCdNYXJ0ZXMnLCdNacOpcmNvbGVzJywnSnVldmVzJywnVmllcm5lcycsJ1PDoWJhZG8nXTtcclxuICAgIHJldHVybiB7ICAgXHJcbiAgICAgICAgbmFtZTonY29udHJvbF9kaWFzX2NhcmdhJyxcclxuICAgICAgICBlbGVtZW50TmFtZTonZGlhcycsXHJcbiAgICAgICAgZWRpdGFibGU6cHVlZGVFZGl0YXIsXHJcbiAgICAgICAgZmllbGRzOltcclxuICAgICAgICAgICAge25hbWU6J29wZXJhdGl2bycgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgLCBudWxsYWJsZTogZmFsc2UsIGRlZmF1bHRWYWx1ZTogJ2V0b2kyMTEnfSxcclxuICAgICAgICAgICAge25hbWU6J2RvbWluaW8nICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSAgLCBudWxsYWJsZTogZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge25hbWU6J2NhbnRfcmVhcycgICAgICAgICAgICAsIHR5cGVOYW1lOidiaWdpbnQnICAsIGVkaXRhYmxlOiBmYWxzZSAgLCB0aXRsZTogXCJSZWFsaXphZGFzXCIgICB9LFxyXG4gICAgICAgICAgICB7bmFtZTonY2FudF9kb21pbmdvJyAgICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICwgZWRpdGFibGU6IGZhbHNlICAsIHRpdGxlOiBkaWFzX25vbWJyZVsxXSB9LFxyXG4gICAgICAgICAgICB7bmFtZTonY2FudF9sdW5lcycgICAgICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICwgZWRpdGFibGU6IGZhbHNlICAsIHRpdGxlOiBkaWFzX25vbWJyZVsyXSB9LFxyXG4gICAgICAgICAgICB7bmFtZTonY2FudF9tYXJ0ZXMnICAgICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICwgZWRpdGFibGU6IGZhbHNlICAsIHRpdGxlOiBkaWFzX25vbWJyZVszXSB9LFxyXG4gICAgICAgICAgICB7bmFtZTonY2FudF9taWVyY29sZXMnICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICwgZWRpdGFibGU6IGZhbHNlICAsIHRpdGxlOiBkaWFzX25vbWJyZVs0XSB9LFxyXG4gICAgICAgICAgICB7bmFtZTonY2FudF9qdWV2ZXMnICAgICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICwgZWRpdGFibGU6IGZhbHNlICAsIHRpdGxlOiBkaWFzX25vbWJyZVs1XSB9LFxyXG4gICAgICAgICAgICB7bmFtZTonY2FudF92aWVybmVzJyAgICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICwgZWRpdGFibGU6IGZhbHNlICAsIHRpdGxlOiBkaWFzX25vbWJyZVs2XSB9LFxyXG4gICAgICAgICAgICB7bmFtZTonY2FudF9zYWJhZG8nICAgICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICwgZWRpdGFibGU6IGZhbHNlICAsIHRpdGxlOiBkaWFzX25vbWJyZVs3XSB9LFxyXG4gICAgICAgICAgICBcclxuICAgIF0sXHJcbiAgICAgICAgcHJpbWFyeUtleTpbXCJvcGVyYXRpdm9cIiwnZG9taW5pbyddLFxyXG4gICAgICAgIHNxbDp7XHJcbiAgICAgICAgICAgIGlzVGFibGU6ZmFsc2UsXHJcbiAgICAgICAgICAgIGZyb206YChcclxuICAgICAgICAgICAgc2VsZWN0IGEub3BlcmF0aXZvLGEuZG9taW5pbyxhcnJheV9hZ2coZGlzdGluY3QgZGlhfHxub21icmUpIGFzIGRpYXNfYXJyZWdsbyxcclxuICAgICAgICAgICAgY291bnQoKikgZmlsdGVyICh3aGVyZSByZWE9MSkgYXMgY2FudF9yZWFzLCAgXHJcbiAgICAgICAgICAgIGNvdW50KCopIGZpbHRlciAod2hlcmUgZGlhID0xKSBhcyBjYW50X2RvbWluZ28sIFxyXG4gICAgICAgICAgICBjb3VudCgqKSBmaWx0ZXIgKHdoZXJlIGRpYSA9MikgYXMgY2FudF9sdW5lcyAsXHJcbiAgICAgICAgICAgIGNvdW50KCopIGZpbHRlciAod2hlcmUgZGlhID0zKSBhcyBjYW50X21hcnRlcyAsXHJcbiAgICAgICAgICAgIGNvdW50KCopIGZpbHRlciAod2hlcmUgZGlhID00KSBhcyBjYW50X21pZXJjb2xlcyAsXHJcbiAgICAgICAgICAgIGNvdW50KCopIGZpbHRlciAod2hlcmUgZGlhID01KSBhcyBjYW50X2p1ZXZlcyxcclxuICAgICAgICAgICAgY291bnQoKikgZmlsdGVyICh3aGVyZSBkaWEgPTYpIGFzIGNhbnRfdmllcm5lcyAsXHJcbiAgICAgICAgICAgIGNvdW50KCopIGZpbHRlciAod2hlcmUgZGlhID03KSBhcyBjYW50X3NhYmFkbyBcclxuICAgICAgICAgICAgZnJvbSAoICAgICAgXHJcbiAgICAgICAgICAgICAgICBzZWxlY3QgdC5vcGVyYXRpdm8sdC5kb21pbmlvLHQucmVhLGRpYSx2Lm5vbWJyZVxyXG4gICAgICAgICAgICAgICAgIGZyb20gdGVtIHRcclxuICAgICAgICAgICAgICAgICAgIGxlZnQgam9pbiBob2dhcmVzIGggb24gdC5vcGVyYXRpdm89aC5vcGVyYXRpdm8gYW5kIHQuZW5jPWgudml2aWVuZGFcclxuICAgICAgICAgICAgICAgICAgIGxlZnQgam9pbiBwZXJzb25hcyBwIG9uIGgub3BlcmF0aXZvPXAub3BlcmF0aXZvIGFuZCBoLnZpdmllbmRhPXAudml2aWVuZGEgYW5kIGguaG9nYXI9cC5ob2dhclxyXG4gICAgICAgICAgICAgICAgICAgam9pbiB2YXJpYWJsZXNfb3BjaW9uZXMgdiBvbiB0Lm9wZXJhdGl2bz12Lm9wZXJhdGl2byBhbmQgdi52YXJpYWJsZT0nZGlhJyBhbmQgdi5vcGNpb249cC5kaWE6OnRleHQgICAgXHJcbiAgICAgICAgICAgICAgICAgICB3aGVyZSB0LnJlYT0xIGFuZCB0Lm9wZXJhdGl2bz0nVVRfMjAyMycgYW5kIHAucGVyc29uYT1oLmNyX251bV9taWVtYnJvXHJcbiAgICAgICAgICAgICAgICAgICBvcmRlciBieSAxLDIsMyw0LDUgICAgXHJcbiAgICAgICAgICAgIClhIFxyXG4gICAgICAgICAgICBncm91cCBieSAxLDJcclxuICAgICAgICAgICAgb3JkZXIgYnkgMSwyICAgIFxyXG4gICAgICAgICAgICApYCxcclxuICAgICAgICB9XHJcblxyXG4gICAgfTtcclxufSJdfQ==
|