dmencu 3.0.5 → 3.0.7
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/dist/client/unlogged/abrir-formulario.js +1 -1
- package/dist/client/unlogged/css/bootstrap.min.css +6 -6
- package/dist/client/unlogged/render-config.js +1 -1
- package/dist/client/unlogged/render-formulario.js +9 -5
- package/dist/client/unlogged/render-formulario.tsx +46 -43
- package/dist/client/unlogged/render-init.js +1 -1
- package/dist/client/unlogged/tsconfig.json +14 -14
- package/dist/server/server/app-dmencu.d.ts +516 -863
- package/dist/server/server/table-area_enc_proximas.js +1 -1
- package/dist/server/server/table-barrios.js +1 -1
- package/dist/server/server/table-encuestadores.js +7 -7
- package/dist/server/server/table-fracciones.js +1 -1
- package/dist/server/server/table-hogares.js +1 -1
- package/dist/server/server/table-hogares_sup.js +1 -1
- package/dist/server/server/table-manzanas.js +1 -1
- package/dist/server/server/table-parametros.js +1 -1
- package/dist/server/server/table-personal.js +7 -7
- package/dist/server/server/table-personal_rol.js +7 -7
- package/dist/server/server/table-personas.js +1 -1
- package/dist/server/server/table-personas_sup.js +1 -1
- package/dist/server/server/table-radios.js +1 -1
- package/dist/server/server/table-recepcionistas.js +1 -1
- package/dist/server/server/table-visitas.js +1 -1
- package/dist/server/server/table-visitas_sup.js +1 -1
- package/dist/server/server/table-viviendas.js +1 -1
- package/dist/server/server/types-dmencu.js +1 -1
- package/dist/unlogged/unlogged/abrir-formulario.js +1 -1
- package/dist/unlogged/unlogged/css/bootstrap.min.css +6 -6
- package/dist/unlogged/unlogged/render-config.js +1 -1
- package/dist/unlogged/unlogged/render-formulario.js +9 -5
- package/dist/unlogged/unlogged/render-formulario.tsx +46 -43
- package/dist/unlogged/unlogged/render-init.js +1 -1
- package/dist/unlogged/unlogged/tsconfig.json +14 -14
- package/install/actualizar-2023-05-14.sql +38 -38
- package/install/actualizar_inconvar.sql +28 -28
- package/install/agregados_tem.sql +4 -4
- package/install/asignar_desasignar_tareas_tem_trg.sql +43 -43
- package/install/metadatos/permisos.tab +11 -11
- package/install/metadatos/roles.tab +10 -10
- package/install/metadatos/roles_permisos.tab +94 -94
- package/install/metadatos/tipovar.tab +9 -9
- package/install/sincro_tareas_areas_tareas_tem_trg.sql +29 -29
- package/install/usuarios_trg.sql +41 -41
- package/install/validar_tareas_tem_trg.sql +67 -67
- package/package.json +91 -91
|
@@ -581,7 +581,10 @@ function EncabezadoDespliegue(props: {
|
|
|
581
581
|
variant="outlined"
|
|
582
582
|
className="boton-pregunta-nsnc"
|
|
583
583
|
onClick={() => {
|
|
584
|
-
dispatchByPass(accion_registrar_respuesta, { respuesta: ns_nc, variable: casillero.var_name as IdVariable, forPk: forPk })
|
|
584
|
+
var { siguienteVariable } = dispatchByPass(accion_registrar_respuesta, { respuesta: ns_nc, variable: casillero.var_name as IdVariable, forPk: forPk });
|
|
585
|
+
if(siguienteVariable) {
|
|
586
|
+
enfocarElementoDeVariable(casillero.especial?.scrollTo ?? siguienteVariable);
|
|
587
|
+
}
|
|
585
588
|
}}
|
|
586
589
|
>
|
|
587
590
|
NS/NC
|
|
@@ -702,7 +705,7 @@ function Campo(props: { disabled: boolean, pregunta: PreguntaSimple | PreguntaCo
|
|
|
702
705
|
};
|
|
703
706
|
const handleSubmit = ({ esBotonConfirmar }: { esBotonConfirmar: boolean }) => {
|
|
704
707
|
debeSaltar = esBotonConfirmar ? true : (saltoAutomatico || conCampoOpciones);
|
|
705
|
-
|
|
708
|
+
|
|
706
709
|
var isInputFocused = document.activeElement && (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA');
|
|
707
710
|
if (isInputFocused) {
|
|
708
711
|
if (document.activeElement instanceof HTMLElement) {
|
|
@@ -721,9 +724,9 @@ function Campo(props: { disabled: boolean, pregunta: PreguntaSimple | PreguntaCo
|
|
|
721
724
|
variable={pregunta.var_name}
|
|
722
725
|
forPk={props.forPk}
|
|
723
726
|
/>}
|
|
724
|
-
<form
|
|
725
|
-
className="form-campo-wrapper"
|
|
726
|
-
style={{ display: 'contents' }}
|
|
727
|
+
<form
|
|
728
|
+
className="form-campo-wrapper"
|
|
729
|
+
style={{ display: 'contents' }}
|
|
727
730
|
onSubmit={(e) => {
|
|
728
731
|
e.preventDefault();
|
|
729
732
|
handleSubmit({ esBotonConfirmar: false });
|
|
@@ -734,7 +737,7 @@ function Campo(props: { disabled: boolean, pregunta: PreguntaSimple | PreguntaCo
|
|
|
734
737
|
id={`var-${pregunta.var_name || ''}`}
|
|
735
738
|
disabled={disabled || pregunta.especial?.gps}
|
|
736
739
|
className="variable"
|
|
737
|
-
//var-length={pregunta.longitud}
|
|
740
|
+
//var-length={pregunta.longitud}
|
|
738
741
|
fullWidth={true}
|
|
739
742
|
inputProps={inputProps}
|
|
740
743
|
type={pregunta.despliegueTipoInput ?? adaptarTipoVarCasillero(pregunta.tipovar)}
|
|
@@ -1318,14 +1321,14 @@ function BotonFormularioDespliegue(props: { casillero: BotonFormulario, formular
|
|
|
1318
1321
|
var sufijoIdElemento = toPlainForPk(forPk);
|
|
1319
1322
|
/*
|
|
1320
1323
|
registrarElemento({
|
|
1321
|
-
id:`div-boton-formulario-${sufijoIdElemento}`,
|
|
1322
|
-
attr:'esta-inhabilitada',
|
|
1324
|
+
id:`div-boton-formulario-${sufijoIdElemento}`,
|
|
1325
|
+
attr:'esta-inhabilitada',
|
|
1323
1326
|
// fun: (r:Respuestas)=>habilitador(r)?'SI':'NO'
|
|
1324
1327
|
fun: (_r:Respuestas)=>'NO'
|
|
1325
1328
|
});
|
|
1326
1329
|
registrarElemento<HTMLButtonElement>({
|
|
1327
|
-
id:`boton-formulario-${sufijoIdElemento}`,
|
|
1328
|
-
prop:'disabled',
|
|
1330
|
+
id:`boton-formulario-${sufijoIdElemento}`,
|
|
1331
|
+
prop:'disabled',
|
|
1329
1332
|
// fun: (r:Respuestas)=>!habilitador(r)
|
|
1330
1333
|
fun: (_r:Respuestas)=>false
|
|
1331
1334
|
});
|
|
@@ -1514,29 +1517,29 @@ function BotonFormularioDespliegue(props: { casillero: BotonFormulario, formular
|
|
|
1514
1517
|
<Button color="primary" variant="contained" onClick={() => setConfirmarForzarIr(null)}>Entendido</Button>
|
|
1515
1518
|
</Dialog>
|
|
1516
1519
|
{confirmacionBorrado && (
|
|
1517
|
-
<Dialog open={true} onClose={() => {
|
|
1518
|
-
setConfirmacionBorrado(null);
|
|
1519
|
-
setFraseBorrado('');
|
|
1520
|
-
setErrorFraseBorrado(false);
|
|
1520
|
+
<Dialog open={true} onClose={() => {
|
|
1521
|
+
setConfirmacionBorrado(null);
|
|
1522
|
+
setFraseBorrado('');
|
|
1523
|
+
setErrorFraseBorrado(false);
|
|
1521
1524
|
}}>
|
|
1522
1525
|
<DialogTitle>Advertencia: Se perderán datos</DialogTitle>
|
|
1523
1526
|
<DialogContent>
|
|
1524
1527
|
<DialogContentText>
|
|
1525
1528
|
{`Está por borrar el formulario ${confirmacionBorrado.defBoton.forPk.formulario} (${estructura.unidades_analisis[estructura.formularios[confirmacionBorrado.defBoton.forPk.formulario].casilleros.unidad_analisis].pk_agregada}: ${confirmacionBorrado.defBoton.num}). Los datos del mismo y todos sus registros asociados se perderán. ¿Desea continuar?`}
|
|
1526
1529
|
</DialogContentText>
|
|
1527
|
-
|
|
1530
|
+
|
|
1528
1531
|
<div style={{ marginTop: '20px', marginBottom: '20px' }}>
|
|
1529
1532
|
<DialogContentText>
|
|
1530
1533
|
Para confirmar el borrado, escriba la frase <strong>"forzar borrado"</strong> a continuación:
|
|
1531
1534
|
</DialogContentText>
|
|
1532
|
-
<input
|
|
1535
|
+
<input
|
|
1533
1536
|
id="input-forzar-borrado"
|
|
1534
|
-
type="text"
|
|
1535
|
-
value={fraseBorrado}
|
|
1537
|
+
type="text"
|
|
1538
|
+
value={fraseBorrado}
|
|
1536
1539
|
onChange={e => {
|
|
1537
1540
|
setFraseBorrado(e.target.value);
|
|
1538
1541
|
setErrorFraseBorrado(false);
|
|
1539
|
-
}}
|
|
1542
|
+
}}
|
|
1540
1543
|
style={{width: '100%', padding: '8px', border: errorFraseBorrado ? '1px solid red' : '1px solid #ccc', borderRadius: '4px'}}
|
|
1541
1544
|
placeholder="forzar borrado"
|
|
1542
1545
|
autoComplete="off"
|
|
@@ -1550,20 +1553,20 @@ function BotonFormularioDespliegue(props: { casillero: BotonFormulario, formular
|
|
|
1550
1553
|
</div>
|
|
1551
1554
|
</DialogContent>
|
|
1552
1555
|
<DialogActions>
|
|
1553
|
-
<Button
|
|
1554
|
-
color="primary"
|
|
1555
|
-
variant="outlined"
|
|
1556
|
-
onClick={() => {
|
|
1557
|
-
setConfirmacionBorrado(null);
|
|
1558
|
-
setFraseBorrado('');
|
|
1559
|
-
setErrorFraseBorrado(false);
|
|
1556
|
+
<Button
|
|
1557
|
+
color="primary"
|
|
1558
|
+
variant="outlined"
|
|
1559
|
+
onClick={() => {
|
|
1560
|
+
setConfirmacionBorrado(null);
|
|
1561
|
+
setFraseBorrado('');
|
|
1562
|
+
setErrorFraseBorrado(false);
|
|
1560
1563
|
}}
|
|
1561
1564
|
>
|
|
1562
1565
|
Cancelar
|
|
1563
1566
|
</Button>
|
|
1564
1567
|
<Button color="secondary" variant="contained" onClick={() => {
|
|
1565
1568
|
if (!confirmacionBorrado) return;
|
|
1566
|
-
|
|
1569
|
+
|
|
1567
1570
|
if (fraseBorrado.trim().toLowerCase() !== "forzar borrado") {
|
|
1568
1571
|
setErrorFraseBorrado(true);
|
|
1569
1572
|
setTimeout(() => {
|
|
@@ -1712,7 +1715,7 @@ function BloqueDespliegue(props: { bloque: Bloque, formulario: Formulario, forPk
|
|
|
1712
1715
|
var { modoDespliegue } = useSelectorVivienda(forPk);
|
|
1713
1716
|
if (multiple) {
|
|
1714
1717
|
// TODO: GENERALIZAR
|
|
1715
|
-
// @ts-ignore
|
|
1718
|
+
// @ts-ignore
|
|
1716
1719
|
// lista=respuestas.personas.map((_persona, i)=>(
|
|
1717
1720
|
// {forPk:{...forPk, persona:i+1}, key:i+1, multiple:true}
|
|
1718
1721
|
// ))
|
|
@@ -2078,7 +2081,7 @@ setDesplegarLineaResumenUAPrincipal((props: {
|
|
|
2078
2081
|
feedbackAll: { [formulario in PlainForPk]: FormStructureState<IdVariable, Valor, IdFin> },
|
|
2079
2082
|
_estructura: Estructura
|
|
2080
2083
|
) => {
|
|
2081
|
-
//pregunto si es la misma vivienda porque la funcion se dispara
|
|
2084
|
+
//pregunto si es la misma vivienda porque la funcion se dispara
|
|
2082
2085
|
//con todas las combinaciones de respuestas para cada forPk
|
|
2083
2086
|
//@ts-ignore vivienda existe
|
|
2084
2087
|
if (r[estructura.pkAgregadaUaPpal] == forPk[estructura.pkAgregadaUaPpal]) {
|
|
@@ -2283,8 +2286,8 @@ export function AppBarPrincipal(props: AppBarPrincipalProps): JSX.Element {
|
|
|
2283
2286
|
<Toolbar>
|
|
2284
2287
|
{props.barraNavFormulario}
|
|
2285
2288
|
{mostrarBotoneraNavegacion ? (
|
|
2286
|
-
<BotoneraNavegacion disabled={props.disabled}/>
|
|
2287
|
-
) : null}
|
|
2289
|
+
<BotoneraNavegacion disabled={props.disabled}/>
|
|
2290
|
+
) : null}
|
|
2288
2291
|
{props.modoDM === 'capa' && !props.barraNavFormulario ? (
|
|
2289
2292
|
<Typography><span style={{ marginLeft: '5px' }}> MODO CAPACITACIÓN</span></Typography>
|
|
2290
2293
|
) : null}
|
|
@@ -2301,7 +2304,7 @@ export function BotoneraNavegacion(props: { disabled?: boolean }): JSX.Element {
|
|
|
2301
2304
|
return (
|
|
2302
2305
|
<ButtonGroup variant="outlined" size="small" color="inherit">
|
|
2303
2306
|
<Button
|
|
2304
|
-
onClick={() =>
|
|
2307
|
+
onClick={() =>
|
|
2305
2308
|
dispatch(dispatchers.SET_OPCION({ opcion: 'pantallaActual', valor: 'hdr' }))
|
|
2306
2309
|
}
|
|
2307
2310
|
disabled={pantallaActual === 'hdr' || props.disabled}
|
|
@@ -2309,7 +2312,7 @@ export function BotoneraNavegacion(props: { disabled?: boolean }): JSX.Element {
|
|
|
2309
2312
|
>
|
|
2310
2313
|
<ICON.Assignment /> Hoja de Ruta
|
|
2311
2314
|
</Button>
|
|
2312
|
-
|
|
2315
|
+
|
|
2313
2316
|
<Button
|
|
2314
2317
|
onClick={() =>
|
|
2315
2318
|
dispatch(dispatchers.SET_OPCION({ opcion: 'pantallaActual', valor: 'sincronizacion' }))
|
|
@@ -2323,11 +2326,11 @@ export function BotoneraNavegacion(props: { disabled?: boolean }): JSX.Element {
|
|
|
2323
2326
|
);
|
|
2324
2327
|
}
|
|
2325
2328
|
|
|
2326
|
-
export function UsuarioLogueadoYConfig(props: {
|
|
2329
|
+
export function UsuarioLogueadoYConfig(props: {
|
|
2327
2330
|
mostrarSetup?: boolean,
|
|
2328
2331
|
mostrarLogout?: boolean,
|
|
2329
|
-
onLogout?: () => void,
|
|
2330
|
-
navigationMenu?: React.ReactNode
|
|
2332
|
+
onLogout?: () => void,
|
|
2333
|
+
navigationMenu?: React.ReactNode
|
|
2331
2334
|
}): JSX.Element {
|
|
2332
2335
|
var username: string | null = getFormRenderer().getUsernameLogueado();
|
|
2333
2336
|
var idper: string | null = getFormRenderer().getIdperLogueado();
|
|
@@ -2362,8 +2365,8 @@ export function UsuarioLogueadoYConfig(props: {
|
|
|
2362
2365
|
</Typography>
|
|
2363
2366
|
{props.mostrarSetup ? (
|
|
2364
2367
|
<FastSetup>
|
|
2365
|
-
<MenuItem
|
|
2366
|
-
onClick={() =>
|
|
2368
|
+
<MenuItem
|
|
2369
|
+
onClick={() =>
|
|
2367
2370
|
dispatch(dispatchers.SET_OPCION({ opcion: 'pantallaActual', valor: 'modo' }))}
|
|
2368
2371
|
>
|
|
2369
2372
|
<ListItemIcon>{modoDM === 'capa' ? <ICON.BusinessCenter /> : <ICON.SportsEsports />} </ListItemIcon>
|
|
@@ -2375,8 +2378,8 @@ export function UsuarioLogueadoYConfig(props: {
|
|
|
2375
2378
|
>
|
|
2376
2379
|
<ListItemText>Soporte técnico</ListItemText>
|
|
2377
2380
|
</MenuItem>
|
|
2378
|
-
<MenuItem
|
|
2379
|
-
onClick={() =>
|
|
2381
|
+
<MenuItem
|
|
2382
|
+
onClick={() =>
|
|
2380
2383
|
dispatch(dispatchers.RESET_OPCIONES({}))}
|
|
2381
2384
|
>
|
|
2382
2385
|
<ListItemIcon><ICON.Refresh/></ListItemIcon>
|
|
@@ -2386,7 +2389,7 @@ export function UsuarioLogueadoYConfig(props: {
|
|
|
2386
2389
|
onClick={() => {
|
|
2387
2390
|
history.replaceState(null, '', `${location.origin + location.pathname}/../menu#i=sincronizar`);
|
|
2388
2391
|
location.reload();
|
|
2389
|
-
}}
|
|
2392
|
+
}}
|
|
2390
2393
|
>
|
|
2391
2394
|
<ListItemIcon><ICON.SyncAlt /></ListItemIcon>
|
|
2392
2395
|
<ListItemText>Sincronización (link viejo)</ListItemText>
|
|
@@ -2525,7 +2528,7 @@ export function LayoutAccionDispositivo(props: LayoutAccionDispositivoProps): JS
|
|
|
2525
2528
|
onClick={props.onAccion}
|
|
2526
2529
|
>
|
|
2527
2530
|
{props.textoBotonAccion}
|
|
2528
|
-
</Button>
|
|
2531
|
+
</Button>
|
|
2529
2532
|
</div>
|
|
2530
2533
|
<div style={{ display: 'flex', gap: '10px', alignItems: 'center', flexWrap: 'wrap' }}>
|
|
2531
2534
|
{!props.online && (
|
|
@@ -2595,7 +2598,7 @@ export function PantallaSincronizacion(props: PantallaSincronizacionProps): JSX.
|
|
|
2595
2598
|
loading={loading}
|
|
2596
2599
|
online={online}
|
|
2597
2600
|
textoBotonAccion={
|
|
2598
|
-
loading ?
|
|
2601
|
+
loading ?
|
|
2599
2602
|
'Sincronizando...'
|
|
2600
2603
|
:
|
|
2601
2604
|
<span style={{ display: 'flex', alignItems: 'center', gap: '8px' }}><ICON.CloudSync /> Sincronizar</span>
|
|
@@ -124,4 +124,4 @@
|
|
|
124
124
|
return createLocalStorageFormRenderer({});
|
|
125
125
|
}
|
|
126
126
|
});
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWluaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvcmVuZGVyLWluaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBNEhBLHdFQUlDO0lBTUQsNENBRUM7SUF2SUQsbURBQW1FO0lBSW5FLE1BQU0sd0JBQXdCLEdBQUcsV0FBVyxDQUFDO0lBQzdDLE1BQU0sdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7SUFDeEQsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztJQUM5QyxNQUFNLHdCQUF3QixHQUFHLFNBQVMsQ0FBQztJQUM5QixRQUFBLGtCQUFrQixHQUFHLGFBQWEsQ0FBQztJQUNuQyxRQUFBLGlCQUFpQixHQUFHLFlBQVksQ0FBQztJQUNqQyxRQUFBLGlCQUFpQixHQUFHLFlBQVksQ0FBQztJQUNqQyxRQUFBLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEIsUUFBQSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztJQUVyRCx1RUFBdUU7SUFDdkUsd0VBQXdFO0lBQ3hFLE1BQU0sa0JBQWtCLEdBQUc7UUFDdkIsWUFBWTtZQUNSLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxZQUFZLENBQUMsS0FBVTtZQUNuQixLQUFLLENBQUMsV0FBVyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxvQkFBb0I7WUFDaEIsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELG9CQUFvQixDQUFDLEtBQWE7WUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRUQsa0JBQWtCO1lBQ2QsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELGtCQUFrQixDQUFDLE9BQWU7WUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsU0FBUztZQUNMLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxTQUFTLENBQUMsSUFBWTtZQUNsQixLQUFLLENBQUMsV0FBVyxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxnQkFBZ0I7WUFDWixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLHlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1lBRTFELElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNkLDBFQUEwRTtnQkFDMUUsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDL0IsS0FBSyxDQUFDLFdBQVcsQ0FBQyx5QkFBaUIsa0NBQU8sTUFBTSxLQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFHLENBQUM7Z0JBQzVFLENBQUM7Z0JBQ0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLENBQUM7WUFFRCxnRUFBZ0U7WUFDaEUsT0FBTyxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztRQUNoQyxDQUFDO1FBRUQsbUJBQW1CO1lBQ2YsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyx5QkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUUxRCxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDckMsS0FBSyxDQUFDLFdBQVcsQ0FBQyx5QkFBaUIsa0NBQU8sTUFBTSxLQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFHLENBQUM7Z0JBQ2xGLENBQUM7Z0JBQ0QsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQzFCLENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDO1FBQ25DLENBQUM7UUFFRCxjQUFjO1lBQ1YsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMseUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxtQkFBbUIsQ0FBQyxVQUFzQjtZQUN0QyxLQUFLLENBQUMsV0FBVyxDQUFDLHlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2pELE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFFRCxTQUFTO1lBQ0wsSUFBSSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLHlCQUFpQixDQUF1QixDQUFDO1lBRXRGLElBQUksa0JBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ2hDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLDBCQUFrQixDQUFDLENBQUMsQ0FBQztZQUNsRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsMEJBQWtCLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7UUFDTCxDQUFDO1FBRUQsY0FBYyxDQUFDLEtBQThCO1lBQ3pDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLGtCQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNoQyxLQUFLLENBQUMsV0FBVyxDQUFDLDBCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pELENBQUM7aUJBQU0sQ0FBQztnQkFDSixLQUFLLENBQUMsYUFBYSxDQUFDLDBCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFDRCxLQUFLLENBQUMsYUFBYSxDQUFDLHlCQUFpQixFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDM0QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUNELFFBQVE7WUFDSixVQUFVLENBQUMsR0FBRSxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLFFBQVEsWUFBWSxDQUFDLENBQUM7Z0JBQ25GLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUE7WUFDTixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QixDQUFDO0tBRUosQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxTQUFnQiw4QkFBOEIsQ0FDMUMsYUFBdUQ7UUFFdkQsT0FBTyxJQUFBLGtDQUFrQixrQ0FBTSxrQkFBa0IsR0FBSyxhQUFhLEVBQUcsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0IsZ0JBQWdCO1FBQzVCLE9BQU8sOEJBQThCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdvdG9Db25zaXN0aXIgfSBmcm9tIFwiLi9yZWR1eC1mb3JtdWxhcmlvXCI7XG5pbXBvcnQgeyBjcmVhdGVGb3JtUmVuZGVyZXIsIEZvcm1SZW5kZXJlciB9IGZyb20gXCIuL3JlbmRlci1jb25maWdcIjtcbmltcG9ydCB7IERhdG9zQnlQYXNzUGVyc2lzdGlibGVzLCBNb2RvRE0sIEVzdHJ1Y3R1cmEsIE1vZG9BbG1hY2VuYW1pZW50byB9IGZyb20gXCIuL3RpcG9zXCI7XG5cblxuY29uc3QgTE9DQUxfU1RPUkFHRV9TVEFURV9OQU1FID0gJ2hkci1zdGF0ZSc7XG5jb25zdCBMQVNUX0FVVE9fVkFMVUVfUEtfUkFJWiA9ICdwcm94aW1vX3ZhbG9yX3BrX3JhaXonO1xuY29uc3QgQVBQX0NBQ0hFX1ZFUlNJT04gPSAnYXBwLWNhY2hlLXZlcnNpb24nO1xuY29uc3QgTU9ET19ETV9MT0NBTFNUT1JBR0VfS0VZID0gJ21vZG9fZG0nO1xuZXhwb3J0IGNvbnN0IEdMT1ZBUl9EQVRPU0JZUEFTUyA9ICdkYXRvc2J5cGFzcyc7XG5leHBvcnQgY29uc3QgR0xPVkFSX01PRE9CWVBBU1MgPSAnbW9kb2J5cGFzcyc7XG5leHBvcnQgY29uc3QgR0xPVkFSX0VTVFJVQ1RVUkEgPSAnZXN0cnVjdHVyYSc7XG5leHBvcnQgY29uc3QgU0VUVVAgPSAnc2V0dXAnO1xuZXhwb3J0IGNvbnN0IExBU1RfTE9HR0VEX1NFVFVQID0gJ2xhc3RfbG9nZ2VkX3NldHVwJztcblxuLy8gQ29uZmlndXJhY2nDs24gZGUgYWxtYWNlbmFtaWVudG8gbG9jYWwgKGxvY2FsU3RvcmFnZS9zZXNzaW9uU3RvcmFnZSkuXG4vLyBFcyBsYSBjb25maWd1cmFjacOzbiByZWNvbWVuZGFkYSBwb3IgZGVmZWN0byBwYXJhIGVsIHJlbmRlcmVyIG9mZmxpbmUuXG5jb25zdCBsb2NhbFN0b3JhZ2VDb25maWcgPSB7XG4gICAgZ2V0Q2Fzb1N0YXRlKCkge1xuICAgICAgICByZXR1cm4gbXlPd24uZ2V0TG9jYWxWYXIoTE9DQUxfU1RPUkFHRV9TVEFURV9OQU1FKTtcbiAgICB9LFxuXG4gICAgc2V0Q2Fzb1N0YXRlKHN0YXRlOiBhbnkpIHtcbiAgICAgICAgbXlPd24uc2V0TG9jYWxWYXIoTE9DQUxfU1RPUkFHRV9TVEFURV9OQU1FLCBzdGF0ZSk7XG4gICAgfSxcblxuICAgIGdldFVsdGltb1ZhbG9yUGtSYWl6KCkge1xuICAgICAgICByZXR1cm4gbXlPd24uZ2V0TG9jYWxWYXIoTEFTVF9BVVRPX1ZBTFVFX1BLX1JBSVopO1xuICAgIH0sXG5cbiAgICBzZXRVbHRpbW9WYWxvclBrUmFpeih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIG15T3duLnNldExvY2FsVmFyKExBU1RfQVVUT19WQUxVRV9QS19SQUlaLCB2YWx1ZSk7XG4gICAgfSxcblxuICAgIGdldEFwcENhY2hlVmVyc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIG15T3duLmdldExvY2FsVmFyKEFQUF9DQUNIRV9WRVJTSU9OKTtcbiAgICB9LFxuXG4gICAgc2V0QXBwQ2FjaGVWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICAgICAgICBteU93bi5zZXRMb2NhbFZhcihBUFBfQ0FDSEVfVkVSU0lPTiwgdmVyc2lvbik7XG4gICAgfSxcbiAgICBcbiAgICBnZXRNb2RvRE0oKSB7XG4gICAgICAgIHJldHVybiBteU93bi5nZXRMb2NhbFZhcihNT0RPX0RNX0xPQ0FMU1RPUkFHRV9LRVkpO1xuICAgIH0sXG4gICAgXG4gICAgc2V0TW9kb0RNKG1vZG86IE1vZG9ETSkge1xuICAgICAgICBteU93bi5zZXRMb2NhbFZhcihNT0RPX0RNX0xPQ0FMU1RPUkFHRV9LRVksIG1vZG8pO1xuICAgIH0sXG5cbiAgICBnZXRJZHBlckxvZ3VlYWRvKCkge1xuICAgICAgICBjb25zdCBzZXR1cCA9IG15T3duLmdldExvY2FsVmFyKFNFVFVQKSB8fCB7fTtcbiAgICAgICAgY29uc3QgYmFja3VwID0gbXlPd24uZ2V0TG9jYWxWYXIoTEFTVF9MT0dHRURfU0VUVVApIHx8IHt9O1xuXG4gICAgICAgIGlmIChzZXR1cC5pZHBlcikge1xuICAgICAgICAgICAgLy8gU2kgZWwgc2V0dXAgZXN0w6Egc2Fubywgbm9zIGFzZWd1cmFtb3MgZGUgcXVlIGVsIGJhY2t1cCBlc3TDqSBhY3R1YWxpemFkb1xuICAgICAgICAgICAgaWYgKGJhY2t1cC5pZHBlciAhPT0gc2V0dXAuaWRwZXIpIHtcbiAgICAgICAgICAgICAgICBteU93bi5zZXRMb2NhbFZhcihMQVNUX0xPR0dFRF9TRVRVUCwgeyAuLi5iYWNrdXAsIGlkcGVyOiBzZXR1cC5pZHBlciB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzZXR1cC5pZHBlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNpIHBlcmRpbW9zIGxhIGNvb2tpZSB5IGVsIHNldHVwIHZpbm8gdmFjw61vLCB1c2Ftb3MgZWwgYmFja3VwXG4gICAgICAgIHJldHVybiBiYWNrdXAuaWRwZXIgfHwgbnVsbDtcbiAgICB9LFxuXG4gICAgZ2V0VXNlcm5hbWVMb2d1ZWFkbygpIHtcbiAgICAgICAgY29uc3Qgc2V0dXAgPSBteU93bi5nZXRMb2NhbFZhcihTRVRVUCkgfHwge307XG4gICAgICAgIGNvbnN0IGJhY2t1cCA9IG15T3duLmdldExvY2FsVmFyKExBU1RfTE9HR0VEX1NFVFVQKSB8fCB7fTtcblxuICAgICAgICBpZiAoc2V0dXAudXNlcm5hbWUpIHtcbiAgICAgICAgICAgIGlmIChiYWNrdXAudXNlcm5hbWUgIT09IHNldHVwLnVzZXJuYW1lKSB7XG4gICAgICAgICAgICAgICAgbXlPd24uc2V0TG9jYWxWYXIoTEFTVF9MT0dHRURfU0VUVVAsIHsgLi4uYmFja3VwLCB1c2VybmFtZTogc2V0dXAudXNlcm5hbWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2V0dXAudXNlcm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYmFja3VwLnVzZXJuYW1lIHx8IG51bGw7XG4gICAgfSxcblxuICAgIGxlZXJFc3RydWN0dXJhKCk6IFByb21pc2U8RXN0cnVjdHVyYSB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShteU93bi5nZXRMb2NhbFZhcihHTE9WQVJfRVNUUlVDVFVSQSkpO1xuICAgIH0sXG4gICAgXG4gICAgcGVyc2lzdGlyRXN0cnVjdHVyYShlc3RydWN0dXJhOiBFc3RydWN0dXJhKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIG15T3duLnNldExvY2FsVmFyKEdMT1ZBUl9FU1RSVUNUVVJBLCBlc3RydWN0dXJhKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH0sXG5cbiAgICBsZWVyRGF0b3MoKTogUHJvbWlzZTxEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcyB8IG51bGw+IHtcbiAgICAgICAgdmFyIG1vZG9BbG1hY2VuYW1pZW50byA9IG15T3duLmdldFNlc3Npb25WYXIoR0xPVkFSX01PRE9CWVBBU1MpIGFzIE1vZG9BbG1hY2VuYW1pZW50bztcbiAgICAgICAgXG4gICAgICAgIGlmIChtb2RvQWxtYWNlbmFtaWVudG8gPT0gJ2xvY2FsJykge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShteU93bi5nZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobXlPd24uZ2V0U2Vzc2lvblZhcihHTE9WQVJfREFUT1NCWVBBU1MpKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBwZXJzaXN0aXJEYXRvcyhkYXRvczogRGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdmFyIHsgbW9kb0FsbWFjZW5hbWllbnRvIH0gPSBkYXRvcztcbiAgICAgICAgaWYgKG1vZG9BbG1hY2VuYW1pZW50byA9PSAnbG9jYWwnKSB7XG4gICAgICAgICAgICBteU93bi5zZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MsIGRhdG9zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG15T3duLnNldFNlc3Npb25WYXIoR0xPVkFSX0RBVE9TQllQQVNTLCBkYXRvcyk7XG4gICAgICAgIH1cbiAgICAgICAgbXlPd24uc2V0U2Vzc2lvblZhcihHTE9WQVJfTU9ET0JZUEFTUywgbW9kb0FsbWFjZW5hbWllbnRvKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH0sXG4gICAgb25Mb2dvdXQoKTogUHJvbWlzZTx2b2lkPntcbiAgICAgICAgc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgJycsIGAke2xvY2F0aW9uLm9yaWdpbiArIGxvY2F0aW9uLnBhdGhuYW1lfS8uLi9sb2dvdXRgKTtcbiAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICB9LDEwMClcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICBcbn07XG5cbi8qKlxuICogQ3JlYSB1biBGb3JtUmVuZGVyZXIgY29uIGFsbWFjZW5hbWllbnRvIGVuIGxvY2FsU3RvcmFnZS9zZXNzaW9uU3RvcmFnZS5cbiAqIEVzIGxhIGNvbmZpZ3VyYWNpw7NuIHJlY29tZW5kYWRhIHBvciBkZWZlY3RvIHBhcmEgZWwgbW9kbyBvZmZsaW5lLlxuICogU2UgcHVlZGUgc29icmVlc2NyaWJpciBjdWFscXVpZXIgbcOpdG9kbyBtZWRpYW50ZSBwYXJ0aWFsQ29uZmlnLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9jYWxTdG9yYWdlRm9ybVJlbmRlcmVyKFxuICAgIHBhcnRpYWxDb25maWc6IFBhcmFtZXRlcnM8dHlwZW9mIGNyZWF0ZUZvcm1SZW5kZXJlcj5bMF1cbik6IEZvcm1SZW5kZXJlciB7XG4gICAgcmV0dXJuIGNyZWF0ZUZvcm1SZW5kZXJlcih7IC4uLmxvY2FsU3RvcmFnZUNvbmZpZywgLi4ucGFydGlhbENvbmZpZyB9KTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2FyIGNyZWF0ZUxvY2FsU3RvcmFnZUZvcm1SZW5kZXJlciBlbiBzdSBsdWdhci5cbiAqIFNlIG1hbnRpZW5lIHBvciBjb21wYXRpYmlsaWRhZCBtaWVudHJhcyBzZSBtaWdyYW4gbG9zIGNvbnN1bWlkb3Jlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXRGb3JtUmVuZGVyZXIoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUxvY2FsU3RvcmFnZUZvcm1SZW5kZXJlcih7fSk7XG59Il19
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWluaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvcmVuZGVyLWluaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBNEhBLHdFQUlDO0lBTUQsNENBRUM7SUF2SUQsbURBQW1FO0lBSW5FLE1BQU0sd0JBQXdCLEdBQUcsV0FBVyxDQUFDO0lBQzdDLE1BQU0sdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7SUFDeEQsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztJQUM5QyxNQUFNLHdCQUF3QixHQUFHLFNBQVMsQ0FBQztJQUM5QixRQUFBLGtCQUFrQixHQUFHLGFBQWEsQ0FBQztJQUNuQyxRQUFBLGlCQUFpQixHQUFHLFlBQVksQ0FBQztJQUNqQyxRQUFBLGlCQUFpQixHQUFHLFlBQVksQ0FBQztJQUNqQyxRQUFBLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEIsUUFBQSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztJQUVyRCx1RUFBdUU7SUFDdkUsd0VBQXdFO0lBQ3hFLE1BQU0sa0JBQWtCLEdBQUc7UUFDdkIsWUFBWTtZQUNSLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxZQUFZLENBQUMsS0FBVTtZQUNuQixLQUFLLENBQUMsV0FBVyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxvQkFBb0I7WUFDaEIsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELG9CQUFvQixDQUFDLEtBQWE7WUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRUQsa0JBQWtCO1lBQ2QsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEQs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LENBQUM7aUJBQU0sQ0FBQztnQkFDSixLQUFLLENBQUMsYUFBYSxDQUFDLDBCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFDRCxLQUFLLENBQUMsYUFBYSxDQUFDLHlCQUFpQixFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDM0QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUNELFFBQVE7WUFDSixVQUFVLENBQUMsR0FBRSxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLFFBQVEsWUFBWSxDQUFDLENBQUM7Z0JBQ25GLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUE7WUFDTixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QixDQUFDO0tBRUosQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxTQUFnQiw4QkFBOEIsQ0FDMUMsYUFBdUQ7UUFFdkQsT0FBTyxJQUFBLGtDQUFrQixrQ0FBTSxrQkFBa0IsR0FBSyxhQUFhLEVBQUcsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0IsZ0JBQWdCO1FBQzVCLE9BQU8sOEJBQThCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdvdG9Db25zaXN0aXIgfSBmcm9tIFwiLi9yZWR1eC1mb3JtdWxhcmlvXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUZvcm1SZW5kZXJlciwgRm9ybVJlbmRlcmVyIH0gZnJvbSBcIi4vcmVuZGVyLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcywgTW9kb0RNLCBFc3RydWN0dXJhLCBNb2RvQWxtYWNlbmFtaWVudG8gfSBmcm9tIFwiLi90aXBvc1wiO1xyXG5cclxuXHJcbmNvbnN0IExPQ0FMX1NUT1JBR0VfU1RBVEVfTkFNRSA9ICdoZHItc3RhdGUnO1xyXG5jb25zdCBMQVNUX0FVVE9fVkFMVUVfUEtfUkFJWiA9ICdwcm94aW1vX3ZhbG9yX3BrX3JhaXonO1xyXG5jb25zdCBBUFBfQ0FDSEVfVkVSU0lPTiA9ICdhcHAtY2FjaGUtdmVyc2lvbic7XHJcbmNvbnN0IE1PRE9fRE1fTE9DQUxTVE9SQUdFX0tFWSA9ICdtb2RvX2RtJztcclxuZXhwb3J0IGNvbnN0IEdMT1ZBUl9EQVRPU0JZUEFTUyA9ICdkYXRvc2J5cGFzcyc7XHJcbmV4cG9ydCBjb25zdCBHTE9WQVJfTU9ET0JZUEFTUyA9ICdtb2RvYnlwYXNzJztcclxuZXhwb3J0IGNvbnN0IEdMT1ZBUl9FU1RSVUNUVVJBID0gJ2VzdHJ1Y3R1cmEnO1xyXG5leHBvcnQgY29uc3QgU0VUVVAgPSAnc2V0dXAnO1xyXG5leHBvcnQgY29uc3QgTEFTVF9MT0dHRURfU0VUVVAgPSAnbGFzdF9sb2dnZWRfc2V0dXAnO1xyXG5cclxuLy8gQ29uZmlndXJhY2nDs24gZGUgYWxtYWNlbmFtaWVudG8gbG9jYWwgKGxvY2FsU3RvcmFnZS9zZXNzaW9uU3RvcmFnZSkuXHJcbi8vIEVzIGxhIGNvbmZpZ3VyYWNpw7NuIHJlY29tZW5kYWRhIHBvciBkZWZlY3RvIHBhcmEgZWwgcmVuZGVyZXIgb2ZmbGluZS5cclxuY29uc3QgbG9jYWxTdG9yYWdlQ29uZmlnID0ge1xyXG4gICAgZ2V0Q2Fzb1N0YXRlKCkge1xyXG4gICAgICAgIHJldHVybiBteU93bi5nZXRMb2NhbFZhcihMT0NBTF9TVE9SQUdFX1NUQVRFX05BTUUpO1xyXG4gICAgfSxcclxuXHJcbiAgICBzZXRDYXNvU3RhdGUoc3RhdGU6IGFueSkge1xyXG4gICAgICAgIG15T3duLnNldExvY2FsVmFyKExPQ0FMX1NUT1JBR0VfU1RBVEVfTkFNRSwgc3RhdGUpO1xyXG4gICAgfSxcclxuXHJcbiAgICBnZXRVbHRpbW9WYWxvclBrUmFpeigpIHtcclxuICAgICAgICByZXR1cm4gbXlPd24uZ2V0TG9jYWxWYXIoTEFTVF9BVVRPX1ZBTFVFX1BLX1JBSVopO1xyXG4gICAgfSxcclxuXHJcbiAgICBzZXRVbHRpbW9WYWxvclBrUmFpeih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgbXlPd24uc2V0TG9jYWxWYXIoTEFTVF9BVVRPX1ZBTFVFX1BLX1JBSVosIHZhbHVlKTtcclxuICAgIH0sXHJcblxyXG4gICAgZ2V0QXBwQ2FjaGVWZXJzaW9uKCkge1xyXG4gICAgICAgIHJldHVybiBteU93bi5nZXRMb2NhbFZhcihBUFBfQ0FDSEVfVkVSU0lPTik7XHJcbiAgICB9LFxyXG5cclxuICAgIHNldEFwcENhY2hlVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcclxuICAgICAgICBteU93bi5zZXRMb2NhbFZhcihBUFBfQ0FDSEVfVkVSU0lPTiwgdmVyc2lvbik7XHJcbiAgICB9LFxyXG4gICAgXHJcbiAgICBnZXRNb2RvRE0oKSB7XHJcbiAgICAgICAgcmV0dXJuIG15T3duLmdldExvY2FsVmFyKE1PRE9fRE1fTE9DQUxTVE9SQUdFX0tFWSk7XHJcbiAgICB9LFxyXG4gICAgXHJcbiAgICBzZXRNb2RvRE0obW9kbzogTW9kb0RNKSB7XHJcbiAgICAgICAgbXlPd24uc2V0TG9jYWxWYXIoTU9ET19ETV9MT0NBTFNUT1JBR0VfS0VZLCBtb2RvKTtcclxuICAgIH0sXHJcblxyXG4gICAgZ2V0SWRwZXJMb2d1ZWFkbygpIHtcclxuICAgICAgICBjb25zdCBzZXR1cCA9IG15T3duLmdldExvY2FsVmFyKFNFVFVQKSB8fCB7fTtcclxuICAgICAgICBjb25zdCBiYWNrdXAgPSBteU93bi5nZXRMb2NhbFZhcihMQVNUX0xPR0dFRF9TRVRVUCkgfHwge307XHJcblxyXG4gICAgICAgIGlmIChzZXR1cC5pZHBlcikge1xyXG4gICAgICAgICAgICAvLyBTaSBlbCBzZXR1cCBlc3TDoSBzYW5vLCBub3MgYXNlZ3VyYW1vcyBkZSBxdWUgZWwgYmFja3VwIGVzdMOpIGFjdHVhbGl6YWRvXHJcbiAgICAgICAgICAgIGlmIChiYWNrdXAuaWRwZXIgIT09IHNldHVwLmlkcGVyKSB7XHJcbiAgICAgICAgICAgICAgICBteU93bi5zZXRMb2NhbFZhcihMQVNUX0xPR0dFRF9TRVRVUCwgeyAuLi5iYWNrdXAsIGlkcGVyOiBzZXR1cC5pZHBlciB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gc2V0dXAuaWRwZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBTaSBwZXJkaW1vcyBsYSBjb29raWUgeSBlbCBzZXR1cCB2aW5vIHZhY8OtbywgdXNhbW9zIGVsIGJhY2t1cFxyXG4gICAgICAgIHJldHVybiBiYWNrdXAuaWRwZXIgfHwgbnVsbDtcclxuICAgIH0sXHJcblxyXG4gICAgZ2V0VXNlcm5hbWVMb2d1ZWFkbygpIHtcclxuICAgICAgICBjb25zdCBzZXR1cCA9IG15T3duLmdldExvY2FsVmFyKFNFVFVQKSB8fCB7fTtcclxuICAgICAgICBjb25zdCBiYWNrdXAgPSBteU93bi5nZXRMb2NhbFZhcihMQVNUX0xPR0dFRF9TRVRVUCkgfHwge307XHJcblxyXG4gICAgICAgIGlmIChzZXR1cC51c2VybmFtZSkge1xyXG4gICAgICAgICAgICBpZiAoYmFja3VwLnVzZXJuYW1lICE9PSBzZXR1cC51c2VybmFtZSkge1xyXG4gICAgICAgICAgICAgICAgbXlPd24uc2V0TG9jYWxWYXIoTEFTVF9MT0dHRURfU0VUVVAsIHsgLi4uYmFja3VwLCB1c2VybmFtZTogc2V0dXAudXNlcm5hbWUgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHNldHVwLnVzZXJuYW1lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGJhY2t1cC51c2VybmFtZSB8fCBudWxsO1xyXG4gICAgfSxcclxuXHJcbiAgICBsZWVyRXN0cnVjdHVyYSgpOiBQcm9taXNlPEVzdHJ1Y3R1cmEgfCBudWxsPiB7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShteU93bi5nZXRMb2NhbFZhcihHTE9WQVJfRVNUUlVDVFVSQSkpO1xyXG4gICAgfSxcclxuICAgIFxyXG4gICAgcGVyc2lzdGlyRXN0cnVjdHVyYShlc3RydWN0dXJhOiBFc3RydWN0dXJhKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgbXlPd24uc2V0TG9jYWxWYXIoR0xPVkFSX0VTVFJVQ1RVUkEsIGVzdHJ1Y3R1cmEpO1xyXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgIH0sXHJcblxyXG4gICAgbGVlckRhdG9zKCk6IFByb21pc2U8RGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMgfCBudWxsPiB7XHJcbiAgICAgICAgdmFyIG1vZG9BbG1hY2VuYW1pZW50byA9IG15T3duLmdldFNlc3Npb25WYXIoR0xPVkFSX01PRE9CWVBBU1MpIGFzIE1vZG9BbG1hY2VuYW1pZW50bztcclxuICAgICAgICBcclxuICAgICAgICBpZiAobW9kb0FsbWFjZW5hbWllbnRvID09ICdsb2NhbCcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShteU93bi5nZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG15T3duLmdldFNlc3Npb25WYXIoR0xPVkFSX0RBVE9TQllQQVNTKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBwZXJzaXN0aXJEYXRvcyhkYXRvczogRGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB2YXIgeyBtb2RvQWxtYWNlbmFtaWVudG8gfSA9IGRhdG9zO1xyXG4gICAgICAgIGlmIChtb2RvQWxtYWNlbmFtaWVudG8gPT0gJ2xvY2FsJykge1xyXG4gICAgICAgICAgICBteU93bi5zZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MsIGRhdG9zKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBteU93bi5zZXRTZXNzaW9uVmFyKEdMT1ZBUl9EQVRPU0JZUEFTUywgZGF0b3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBteU93bi5zZXRTZXNzaW9uVmFyKEdMT1ZBUl9NT0RPQllQQVNTLCBtb2RvQWxtYWNlbmFtaWVudG8pO1xyXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgIH0sXHJcbiAgICBvbkxvZ291dCgpOiBQcm9taXNlPHZvaWQ+e1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgJycsIGAke2xvY2F0aW9uLm9yaWdpbiArIGxvY2F0aW9uLnBhdGhuYW1lfS8uLi9sb2dvdXRgKTtcclxuICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICAgICAgfSwxMDApXHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG4gICAgfVxyXG4gICAgXHJcbn07XHJcblxyXG4vKipcclxuICogQ3JlYSB1biBGb3JtUmVuZGVyZXIgY29uIGFsbWFjZW5hbWllbnRvIGVuIGxvY2FsU3RvcmFnZS9zZXNzaW9uU3RvcmFnZS5cclxuICogRXMgbGEgY29uZmlndXJhY2nDs24gcmVjb21lbmRhZGEgcG9yIGRlZmVjdG8gcGFyYSBlbCBtb2RvIG9mZmxpbmUuXHJcbiAqIFNlIHB1ZWRlIHNvYnJlZXNjcmliaXIgY3VhbHF1aWVyIG3DqXRvZG8gbWVkaWFudGUgcGFydGlhbENvbmZpZy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2NhbFN0b3JhZ2VGb3JtUmVuZGVyZXIoXHJcbiAgICBwYXJ0aWFsQ29uZmlnOiBQYXJhbWV0ZXJzPHR5cGVvZiBjcmVhdGVGb3JtUmVuZGVyZXI+WzBdXHJcbik6IEZvcm1SZW5kZXJlciB7XHJcbiAgICByZXR1cm4gY3JlYXRlRm9ybVJlbmRlcmVyKHsgLi4ubG9jYWxTdG9yYWdlQ29uZmlnLCAuLi5wYXJ0aWFsQ29uZmlnIH0pO1xyXG59XHJcblxyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgVXNhciBjcmVhdGVMb2NhbFN0b3JhZ2VGb3JtUmVuZGVyZXIgZW4gc3UgbHVnYXIuXHJcbiAqIFNlIG1hbnRpZW5lIHBvciBjb21wYXRpYmlsaWRhZCBtaWVudHJhcyBzZSBtaWdyYW4gbG9zIGNvbnN1bWlkb3Jlcy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpbml0Rm9ybVJlbmRlcmVyKCkge1xyXG4gICAgcmV0dXJuIGNyZWF0ZUxvY2FsU3RvcmFnZUZvcm1SZW5kZXJlcih7fSk7XHJcbn0iXX0=
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"outDir": "../../dist/unlogged/unlogged",
|
|
4
|
-
"moduleResolution": "node",
|
|
5
|
-
"inlineSourceMap": true,
|
|
6
|
-
"inlineSources": true,
|
|
7
|
-
"typeRoots" : ["node_modules/@types", "../../node_modules/types.d.ts/modules"],
|
|
8
|
-
"lib": ["dom","es2016"],
|
|
9
|
-
"jsx": "react"
|
|
10
|
-
},
|
|
11
|
-
"include":[
|
|
12
|
-
"."
|
|
13
|
-
],
|
|
14
|
-
"extends": "../../tsconfig-common.json"
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"outDir": "../../dist/unlogged/unlogged",
|
|
4
|
+
"moduleResolution": "node",
|
|
5
|
+
"inlineSourceMap": true,
|
|
6
|
+
"inlineSources": true,
|
|
7
|
+
"typeRoots" : ["node_modules/@types", "../../node_modules/types.d.ts/modules"],
|
|
8
|
+
"lib": ["dom","es2016"],
|
|
9
|
+
"jsx": "react"
|
|
10
|
+
},
|
|
11
|
+
"include":[
|
|
12
|
+
"."
|
|
13
|
+
],
|
|
14
|
+
"extends": "../../tsconfig-common.json"
|
|
15
15
|
}
|
|
@@ -1,38 +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
|
+
-- 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,29 +1,29 @@
|
|
|
1
|
-
set search_path= base;
|
|
2
|
-
|
|
3
|
-
CREATE OR REPLACE FUNCTION actualizar_inconvar_trg()
|
|
4
|
-
RETURNS trigger AS
|
|
5
|
-
$BODY$
|
|
6
|
-
begin
|
|
7
|
-
if tg_op = 'INSERT' or tg_op = 'UPDATE' then
|
|
8
|
-
delete from in_con_var where operativo=new.operativo and pk_integrada=new.pk_integrada and consistencia=new.consistencia;
|
|
9
|
-
insert into in_con_var(operativo, consistencia, pk_integrada, variable, tabla_datos, valor)
|
|
10
|
-
select new.operativo, new.consistencia, new.pk_integrada, split_part(key, '.', 2 ) as variable, split_part(key, '.', 1) as tabla_datos, value as valor
|
|
11
|
-
from jsonb_each_text(new.incon_valores) ;
|
|
12
|
-
return new;
|
|
13
|
-
end if;
|
|
14
|
-
if tg_op = 'DELETE' then
|
|
15
|
-
delete from in_con_var where operativo=old.operativo and pk_integrada=old.pk_integrada and consistencia=old.consistencia;
|
|
16
|
-
return old;
|
|
17
|
-
else
|
|
18
|
-
return new;
|
|
19
|
-
end if;
|
|
20
|
-
end;
|
|
21
|
-
$BODY$
|
|
22
|
-
LANGUAGE plpgsql VOLATILE SECURITY DEFINER;
|
|
23
|
-
|
|
24
|
-
--DROP TRIGGER actualizar_inconvar_trg ON inconsistencias;
|
|
25
|
-
CREATE TRIGGER actualizar_inconvar_trg
|
|
26
|
-
BEFORE INSERT OR DELETE OR UPDATE OF incon_valores
|
|
27
|
-
ON inconsistencias
|
|
28
|
-
FOR EACH ROW
|
|
1
|
+
set search_path= base;
|
|
2
|
+
|
|
3
|
+
CREATE OR REPLACE FUNCTION actualizar_inconvar_trg()
|
|
4
|
+
RETURNS trigger AS
|
|
5
|
+
$BODY$
|
|
6
|
+
begin
|
|
7
|
+
if tg_op = 'INSERT' or tg_op = 'UPDATE' then
|
|
8
|
+
delete from in_con_var where operativo=new.operativo and pk_integrada=new.pk_integrada and consistencia=new.consistencia;
|
|
9
|
+
insert into in_con_var(operativo, consistencia, pk_integrada, variable, tabla_datos, valor)
|
|
10
|
+
select new.operativo, new.consistencia, new.pk_integrada, split_part(key, '.', 2 ) as variable, split_part(key, '.', 1) as tabla_datos, value as valor
|
|
11
|
+
from jsonb_each_text(new.incon_valores) ;
|
|
12
|
+
return new;
|
|
13
|
+
end if;
|
|
14
|
+
if tg_op = 'DELETE' then
|
|
15
|
+
delete from in_con_var where operativo=old.operativo and pk_integrada=old.pk_integrada and consistencia=old.consistencia;
|
|
16
|
+
return old;
|
|
17
|
+
else
|
|
18
|
+
return new;
|
|
19
|
+
end if;
|
|
20
|
+
end;
|
|
21
|
+
$BODY$
|
|
22
|
+
LANGUAGE plpgsql VOLATILE SECURITY DEFINER;
|
|
23
|
+
|
|
24
|
+
--DROP TRIGGER actualizar_inconvar_trg ON inconsistencias;
|
|
25
|
+
CREATE TRIGGER actualizar_inconvar_trg
|
|
26
|
+
BEFORE INSERT OR DELETE OR UPDATE OF incon_valores
|
|
27
|
+
ON inconsistencias
|
|
28
|
+
FOR EACH ROW
|
|
29
29
|
EXECUTE PROCEDURE actualizar_inconvar_trg();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
set search_path=base;
|
|
2
|
-
|
|
3
|
-
alter table tem
|
|
4
|
-
add column "libre" boolean default true,
|
|
1
|
+
set search_path=base;
|
|
2
|
+
|
|
3
|
+
alter table tem
|
|
4
|
+
add column "libre" boolean default true,
|
|
5
5
|
add column "fecha_bloqueo" timestamp;
|
|
@@ -1,43 +1,43 @@
|
|
|
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_inicial text;
|
|
13
|
-
begin
|
|
14
|
-
select tarea_actual into v_tarea_actual
|
|
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
|
-
select tarea into v_tarea_inicial
|
|
19
|
-
from tareas
|
|
20
|
-
where operativo = new.operativo and es_inicial;
|
|
21
|
-
if new.asignado is null then
|
|
22
|
-
if new.tarea = v_tarea_inicial then
|
|
23
|
-
update tem
|
|
24
|
-
set tarea_actual = null
|
|
25
|
-
where operativo = new.operativo and enc = new.enc;
|
|
26
|
-
end if;
|
|
27
|
-
else
|
|
28
|
-
if v_tarea_actual is null and v_tarea_actual is distinct from new.tarea then
|
|
29
|
-
update tem
|
|
30
|
-
set tarea_actual = v_tarea_inicial
|
|
31
|
-
where operativo = new.operativo and enc = new.enc;
|
|
32
|
-
end if;
|
|
33
|
-
end if;
|
|
34
|
-
return new;
|
|
35
|
-
end;
|
|
36
|
-
$BODY$;
|
|
37
|
-
|
|
38
|
-
--DROP TRIGGER IF EXISTS asignar_desasignar_tareas_tem_trg ON tareas_tem;
|
|
39
|
-
CREATE TRIGGER asignar_desasignar_tareas_tem_trg
|
|
40
|
-
AFTER UPDATE OF asignado
|
|
41
|
-
ON tareas_tem
|
|
42
|
-
FOR EACH ROW
|
|
43
|
-
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_inicial text;
|
|
13
|
+
begin
|
|
14
|
+
select tarea_actual into v_tarea_actual
|
|
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
|
+
select tarea into v_tarea_inicial
|
|
19
|
+
from tareas
|
|
20
|
+
where operativo = new.operativo and es_inicial;
|
|
21
|
+
if new.asignado is null then
|
|
22
|
+
if new.tarea = v_tarea_inicial then
|
|
23
|
+
update tem
|
|
24
|
+
set tarea_actual = null
|
|
25
|
+
where operativo = new.operativo and enc = new.enc;
|
|
26
|
+
end if;
|
|
27
|
+
else
|
|
28
|
+
if v_tarea_actual is null and v_tarea_actual is distinct from new.tarea then
|
|
29
|
+
update tem
|
|
30
|
+
set tarea_actual = v_tarea_inicial
|
|
31
|
+
where operativo = new.operativo and enc = new.enc;
|
|
32
|
+
end if;
|
|
33
|
+
end if;
|
|
34
|
+
return new;
|
|
35
|
+
end;
|
|
36
|
+
$BODY$;
|
|
37
|
+
|
|
38
|
+
--DROP TRIGGER IF EXISTS asignar_desasignar_tareas_tem_trg ON tareas_tem;
|
|
39
|
+
CREATE TRIGGER asignar_desasignar_tareas_tem_trg
|
|
40
|
+
AFTER UPDATE OF asignado
|
|
41
|
+
ON tareas_tem
|
|
42
|
+
FOR EACH ROW
|
|
43
|
+
EXECUTE PROCEDURE asignar_desasignar_tareas_tem_trg();
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
permiso |accion |predeterminado
|
|
2
|
-
campo |editar |false
|
|
3
|
-
campo |ver |false
|
|
4
|
-
campo |administrar|false
|
|
5
|
-
configurar |editar |false
|
|
6
|
-
configurar |ver |false
|
|
7
|
-
encuestas |ingresar |false
|
|
8
|
-
encuestas |procesar |false
|
|
9
|
-
encuestas |justificar|false
|
|
10
|
-
encuestas |relevar |false
|
|
11
|
-
consistencias |editar |false
|
|
1
|
+
permiso |accion |predeterminado
|
|
2
|
+
campo |editar |false
|
|
3
|
+
campo |ver |false
|
|
4
|
+
campo |administrar|false
|
|
5
|
+
configurar |editar |false
|
|
6
|
+
configurar |ver |false
|
|
7
|
+
encuestas |ingresar |false
|
|
8
|
+
encuestas |procesar |false
|
|
9
|
+
encuestas |justificar|false
|
|
10
|
+
encuestas |relevar |false
|
|
11
|
+
consistencias |editar |false
|
|
12
12
|
casilleros_texto|editar |false
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
rol |superuser|nombre
|
|
2
|
-
admin |true |Administrador
|
|
3
|
-
direccion |false |Dirección
|
|
4
|
-
coor_campo |false |Coordinador de Campo
|
|
5
|
-
encuestador |false |Encuestador
|
|
6
|
-
dis_conceptual|false |Diseño Conceptual
|
|
7
|
-
recepcionista |false |Recepcionista
|
|
8
|
-
procesamiento |false |Procesamiento
|
|
9
|
-
auxiliar |false |Auxiliar de campo
|
|
10
|
-
recuperador |false |recuperador
|
|
1
|
+
rol |superuser|nombre
|
|
2
|
+
admin |true |Administrador
|
|
3
|
+
direccion |false |Dirección
|
|
4
|
+
coor_campo |false |Coordinador de Campo
|
|
5
|
+
encuestador |false |Encuestador
|
|
6
|
+
dis_conceptual|false |Diseño Conceptual
|
|
7
|
+
recepcionista |false |Recepcionista
|
|
8
|
+
procesamiento |false |Procesamiento
|
|
9
|
+
auxiliar |false |Auxiliar de campo
|
|
10
|
+
recuperador |false |recuperador
|
|
11
11
|
supervisor |false |Supervisor
|