fpavon-ee-shared 1.0.63 → 1.0.64
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/expediente-electronico/domain/expediente-electronico.class.js +4 -3
- package/dist/expediente-electronico/infrastructure/repositories/expediente-electronico.sql.repository.js +34 -10
- package/expediente-electronico/domain/expediente-electronico.class.ts +217 -215
- package/expediente-electronico/infrastructure/repositories/expediente-electronico.sql.repository.ts +60 -8
- package/package.json +1 -1
|
@@ -68,10 +68,11 @@ class ExpedienteElectronico {
|
|
|
68
68
|
expediente.documentos.forEach((doc, index) => {
|
|
69
69
|
// Verificamos si existe el campo 'estadoWorkflow' en el documento
|
|
70
70
|
const estadoWorkflow = doc.estadoWorkflow;
|
|
71
|
-
// Verificar si doc.extras existe, y si no, crear un objeto vacío
|
|
72
|
-
const extras = doc.extras || {};
|
|
73
71
|
// Creamos la instancia de DocumentoCC con estadoWorkflow incluido
|
|
74
|
-
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
72
|
+
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
73
|
+
extras: doc.extras || {},
|
|
74
|
+
uuidOriginal: doc.uuidOriginal
|
|
75
|
+
}, doc.firmado, estadoWorkflow || [], doc.fecha);
|
|
75
76
|
expediente.documentos[index] = documento;
|
|
76
77
|
});
|
|
77
78
|
expediente.extras = JSON.parse(expediente.extras);
|
|
@@ -39,7 +39,7 @@ class ExpedienteElectronicoSqlRepository {
|
|
|
39
39
|
expediente.notas = JSON.parse(expediente.notas);
|
|
40
40
|
expediente.documentos = JSON.parse(expediente.documentos);
|
|
41
41
|
expediente.documentos.forEach((doc, index) => {
|
|
42
|
-
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, { extras: doc.extras }, doc.firmado, doc.estadoWorkflow);
|
|
42
|
+
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, { extras: doc.extras || {}, uuidOriginal: doc.uuidOriginal || "" }, doc.firmado, doc.estadoWorkflow || [], doc.fecha);
|
|
43
43
|
expediente.documentos[index] = documento;
|
|
44
44
|
});
|
|
45
45
|
expediente.extras = JSON.parse(expediente.extras);
|
|
@@ -66,7 +66,10 @@ class ExpedienteElectronicoSqlRepository {
|
|
|
66
66
|
expediente.documentos = JSON.parse(expediente.documentos);
|
|
67
67
|
expediente.documentos.forEach((doc, index) => {
|
|
68
68
|
const estadoWorkflow = doc.estadoWorkflow;
|
|
69
|
-
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
69
|
+
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
70
|
+
extras: doc.extras || {},
|
|
71
|
+
uuidOriginal: doc.uuidOriginal
|
|
72
|
+
}, doc.firmado, doc.estadoWorkflow || [], doc.fecha);
|
|
70
73
|
expediente.documentos[index] = documento;
|
|
71
74
|
});
|
|
72
75
|
expediente.extras = JSON.parse(expediente.extras);
|
|
@@ -138,7 +141,10 @@ class ExpedienteElectronicoSqlRepository {
|
|
|
138
141
|
ee.documentos = JSON.parse(ee.documentos);
|
|
139
142
|
ee.documentos.forEach((doc, index) => {
|
|
140
143
|
const estadoWorkflow = doc.estadoWorkflow;
|
|
141
|
-
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
144
|
+
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
145
|
+
extras: doc.extras || {},
|
|
146
|
+
uuidOriginal: doc.uuidOriginal
|
|
147
|
+
}, doc.firmado, doc.estadoWorkflow || [], doc.fecha);
|
|
142
148
|
ee.documentos[index] = documento;
|
|
143
149
|
});
|
|
144
150
|
ee.extras = JSON.parse(ee.extras);
|
|
@@ -203,7 +209,7 @@ class ExpedienteElectronicoSqlRepository {
|
|
|
203
209
|
// reconstrucción
|
|
204
210
|
ee.documentos = JSON.parse(ee.documentos);
|
|
205
211
|
ee.documentos.forEach((doc, index) => {
|
|
206
|
-
ee.documentos[index] = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, { extras: doc.extras }, doc.firmado, doc.estadoWorkflow);
|
|
212
|
+
ee.documentos[index] = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, { extras: doc.extras || {}, uuidOriginal: doc.uuidOriginal || "" }, doc.firmado, doc.estadoWorkflow || [], doc.fecha);
|
|
207
213
|
});
|
|
208
214
|
ee.extras = JSON.parse(ee.extras);
|
|
209
215
|
ee.usuarioResponsable = JSON.parse(ee.usuarioResponsable);
|
|
@@ -271,7 +277,10 @@ class ExpedienteElectronicoSqlRepository {
|
|
|
271
277
|
try {
|
|
272
278
|
expediente.documentos = JSON.parse(expediente.documentos);
|
|
273
279
|
expediente.documentos.forEach((doc, index) => {
|
|
274
|
-
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size
|
|
280
|
+
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
281
|
+
extras: doc.extras || {},
|
|
282
|
+
uuidOriginal: doc.uuidOriginal
|
|
283
|
+
}, doc.firmado, doc.estadoWorkflow || [], doc.fecha);
|
|
275
284
|
expediente.documentos[index] = documento;
|
|
276
285
|
});
|
|
277
286
|
}
|
|
@@ -361,7 +370,10 @@ class ExpedienteElectronicoSqlRepository {
|
|
|
361
370
|
try {
|
|
362
371
|
expediente.documentos = JSON.parse(expediente.documentos);
|
|
363
372
|
expediente.documentos.forEach((doc, index) => {
|
|
364
|
-
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size
|
|
373
|
+
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
374
|
+
extras: doc.extras || {},
|
|
375
|
+
uuidOriginal: doc.uuidOriginal
|
|
376
|
+
}, doc.firmado, doc.estadoWorkflow || [], doc.fecha);
|
|
365
377
|
expediente.documentos[index] = documento;
|
|
366
378
|
});
|
|
367
379
|
}
|
|
@@ -493,7 +505,10 @@ class ExpedienteElectronicoSqlRepository {
|
|
|
493
505
|
try {
|
|
494
506
|
expediente.documentos = JSON.parse(expediente.documentos);
|
|
495
507
|
expediente.documentos.forEach((doc, index) => {
|
|
496
|
-
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size
|
|
508
|
+
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
509
|
+
extras: doc.extras || {},
|
|
510
|
+
uuidOriginal: doc.uuidOriginal
|
|
511
|
+
}, doc.firmado, doc.estadoWorkflow || [], doc.fecha);
|
|
497
512
|
expediente.documentos[index] = documento;
|
|
498
513
|
});
|
|
499
514
|
}
|
|
@@ -616,7 +631,10 @@ class ExpedienteElectronicoSqlRepository {
|
|
|
616
631
|
try {
|
|
617
632
|
expediente.documentos = JSON.parse(expediente.documentos);
|
|
618
633
|
expediente.documentos.forEach((doc, index) => {
|
|
619
|
-
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size
|
|
634
|
+
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
635
|
+
extras: doc.extras || {},
|
|
636
|
+
uuidOriginal: doc.uuidOriginal
|
|
637
|
+
}, doc.firmado, doc.estadoWorkflow || [], doc.fecha);
|
|
620
638
|
expediente.documentos[index] = documento;
|
|
621
639
|
});
|
|
622
640
|
}
|
|
@@ -664,7 +682,10 @@ class ExpedienteElectronicoSqlRepository {
|
|
|
664
682
|
try {
|
|
665
683
|
expediente.documentos = JSON.parse(expediente.documentos);
|
|
666
684
|
expediente.documentos.forEach((doc, index) => {
|
|
667
|
-
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size
|
|
685
|
+
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
686
|
+
extras: doc.extras || {},
|
|
687
|
+
uuidOriginal: doc.uuidOriginal
|
|
688
|
+
}, doc.firmado, doc.estadoWorkflow || [], doc.fecha);
|
|
668
689
|
expediente.documentos[index] = documento;
|
|
669
690
|
});
|
|
670
691
|
}
|
|
@@ -711,7 +732,10 @@ class ExpedienteElectronicoSqlRepository {
|
|
|
711
732
|
try {
|
|
712
733
|
expediente.documentos = JSON.parse(expediente.documentos);
|
|
713
734
|
expediente.documentos.forEach((doc, index) => {
|
|
714
|
-
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size
|
|
735
|
+
const documento = new documento_class_1.Documento(doc.uuid, doc.nombre, doc.descripcion, doc.size, {
|
|
736
|
+
extras: doc.extras || {},
|
|
737
|
+
uuidOriginal: doc.uuidOriginal
|
|
738
|
+
}, doc.firmado, doc.estadoWorkflow || [], doc.fecha);
|
|
715
739
|
expediente.documentos[index] = documento;
|
|
716
740
|
});
|
|
717
741
|
}
|
|
@@ -1,223 +1,225 @@
|
|
|
1
|
-
import {Documento, ImplementacionWorkflow} from "../../documentos/domain/documento.class";
|
|
1
|
+
import { Documento, ImplementacionWorkflow } from "../../documentos/domain/documento.class";
|
|
2
2
|
import { Estado, Flujo } from "../../estados/domain/estado.class";
|
|
3
3
|
import { IExpedienteElectronico } from "./expediente-electronico.interface";
|
|
4
4
|
import { LimitedString } from "./value-object/limited-string.class";
|
|
5
5
|
import { Nota } from "./value-object/notas.class";
|
|
6
6
|
|
|
7
7
|
export class ExpedienteElectronico implements IExpedienteElectronico {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
this.notas = notas
|
|
49
|
-
if(params.documentos) this.setDocumentos(params.documentos);
|
|
50
|
-
else this.documentos = [];
|
|
51
|
-
this.origen = new LimitedString(params.origen, 4).getValue();;
|
|
52
|
-
this.destino = new LimitedString(params.destino, 4).getValue();;
|
|
53
|
-
if (params.extras) this.extras = params.extras;
|
|
54
|
-
else this.extras = {};
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
private asignarBitacora(bitacora:any){
|
|
61
|
-
if(bitacora){
|
|
62
|
-
if(Array.isArray(bitacora)){
|
|
63
|
-
return bitacora;
|
|
64
|
-
}else{
|
|
65
|
-
throw new Error('El atributo bitacora debe ser un array de objetos.');
|
|
66
|
-
}
|
|
67
|
-
}else{
|
|
68
|
-
return []
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
static fromRecordset(recordset) {
|
|
73
|
-
if(!recordset){
|
|
74
|
-
throw new Error("comprasContrataciones.fromRecordset recordset es undefined")
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
let expediente = recordset;
|
|
78
|
-
|
|
79
|
-
expediente.bitacora = JSON.parse(expediente.bitacora);
|
|
80
|
-
expediente.notas = expediente.notas ? JSON.parse(expediente.notas) : [];
|
|
81
|
-
expediente.documentos = JSON.parse(expediente.documentos);
|
|
82
|
-
|
|
83
|
-
expediente.documentos.forEach((doc, index) => {
|
|
84
|
-
// Verificamos si existe el campo 'estadoWorkflow' en el documento
|
|
85
|
-
const estadoWorkflow = doc.estadoWorkflow;
|
|
86
|
-
|
|
87
|
-
// Verificar si doc.extras existe, y si no, crear un objeto vacío
|
|
88
|
-
const extras = doc.extras || {};
|
|
89
|
-
// Creamos la instancia de DocumentoCC con estadoWorkflow incluido
|
|
90
|
-
const documento = new Documento(
|
|
91
|
-
doc.uuid,
|
|
92
|
-
doc.nombre,
|
|
93
|
-
doc.descripcion,
|
|
94
|
-
doc.size,
|
|
95
|
-
{},
|
|
96
|
-
doc.firmado,
|
|
97
|
-
estadoWorkflow
|
|
98
|
-
);
|
|
99
|
-
expediente.documentos[index] = documento;
|
|
8
|
+
id: number;
|
|
9
|
+
fechaAlta: Date;
|
|
10
|
+
fechaCierre: Date;
|
|
11
|
+
usuarioResponsable: any;
|
|
12
|
+
titulo: string;
|
|
13
|
+
descripcion: string;
|
|
14
|
+
tipo: string;
|
|
15
|
+
codigoInterno: string;
|
|
16
|
+
bitacora: any;
|
|
17
|
+
private documentos: Documento[];
|
|
18
|
+
private estado: Estado;
|
|
19
|
+
notas: Nota[]
|
|
20
|
+
extras: any;
|
|
21
|
+
|
|
22
|
+
origen: string;
|
|
23
|
+
destino: string;
|
|
24
|
+
|
|
25
|
+
constructor(params) {
|
|
26
|
+
if (params) {
|
|
27
|
+
this.id = params.id;
|
|
28
|
+
this.fechaAlta = params.fechaAlta;
|
|
29
|
+
this.titulo = new LimitedString(params.titulo, 255).getValue();
|
|
30
|
+
this.descripcion = new LimitedString(params.descripcion, 1000).getValue();
|
|
31
|
+
this.tipo = params.tipo;
|
|
32
|
+
this.codigoInterno = params.codigoInterno;
|
|
33
|
+
this.fechaCierre = params.fechaCierre;
|
|
34
|
+
if (params.usuarioResponsable) {
|
|
35
|
+
this.usuarioResponsable = params.usuarioResponsable;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
throw new Error("usuarioResponsable debe estar definido");
|
|
39
|
+
}
|
|
40
|
+
this.setEstado(params.estado);
|
|
41
|
+
this.bitacora = this.asignarBitacora(params.bitacora);
|
|
42
|
+
let notas = []
|
|
43
|
+
if (params.notas) {
|
|
44
|
+
params.notas.forEach(nota => {
|
|
45
|
+
notas.push(new Nota(nota, nota.usuarioResponsable))
|
|
100
46
|
});
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
47
|
+
}
|
|
48
|
+
this.notas = notas
|
|
49
|
+
if (params.documentos) this.setDocumentos(params.documentos);
|
|
50
|
+
else this.documentos = [];
|
|
51
|
+
this.origen = new LimitedString(params.origen, 4).getValue();;
|
|
52
|
+
this.destino = new LimitedString(params.destino, 4).getValue();;
|
|
53
|
+
if (params.extras) this.extras = params.extras;
|
|
54
|
+
else this.extras = {};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
private asignarBitacora(bitacora: any) {
|
|
61
|
+
if (bitacora) {
|
|
62
|
+
if (Array.isArray(bitacora)) {
|
|
63
|
+
return bitacora;
|
|
64
|
+
} else {
|
|
65
|
+
throw new Error('El atributo bitacora debe ser un array de objetos.');
|
|
66
|
+
}
|
|
67
|
+
} else {
|
|
68
|
+
return []
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
static fromRecordset(recordset) {
|
|
73
|
+
if (!recordset) {
|
|
74
|
+
throw new Error("comprasContrataciones.fromRecordset recordset es undefined")
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
let expediente = recordset;
|
|
78
|
+
|
|
79
|
+
expediente.bitacora = JSON.parse(expediente.bitacora);
|
|
80
|
+
expediente.notas = expediente.notas ? JSON.parse(expediente.notas) : [];
|
|
81
|
+
expediente.documentos = JSON.parse(expediente.documentos);
|
|
82
|
+
|
|
83
|
+
expediente.documentos.forEach((doc, index) => {
|
|
84
|
+
// Verificamos si existe el campo 'estadoWorkflow' en el documento
|
|
85
|
+
const estadoWorkflow = doc.estadoWorkflow;
|
|
86
|
+
|
|
87
|
+
// Creamos la instancia de DocumentoCC con estadoWorkflow incluido
|
|
88
|
+
const documento = new Documento(
|
|
89
|
+
doc.uuid,
|
|
90
|
+
doc.nombre,
|
|
91
|
+
doc.descripcion,
|
|
92
|
+
doc.size,
|
|
93
|
+
{
|
|
94
|
+
extras: doc.extras || {},
|
|
95
|
+
uuidOriginal: doc.uuidOriginal
|
|
96
|
+
},
|
|
97
|
+
doc.firmado,
|
|
98
|
+
estadoWorkflow || [],
|
|
99
|
+
doc.fecha
|
|
100
|
+
);
|
|
101
|
+
expediente.documentos[index] = documento;
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
expediente.extras = JSON.parse(expediente.extras);
|
|
105
|
+
expediente.usuarioResponsable = JSON.parse(expediente.usuarioResponsable);
|
|
106
|
+
expediente.estado = JSON.parse(expediente.estado);
|
|
107
|
+
expediente.estado = new Estado(expediente.estado);
|
|
108
|
+
|
|
109
|
+
let exp = Object.assign(expediente, expediente.extras);
|
|
110
|
+
delete exp.extras;
|
|
111
|
+
|
|
112
|
+
return new ExpedienteElectronico(exp);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Setea un estado al expediente. Si el estado es undefined, se setea un estado por default.
|
|
117
|
+
* @param estado El estado que se quiere setear al expediente
|
|
118
|
+
*/
|
|
119
|
+
setEstado(estado?: Estado) {
|
|
120
|
+
if (estado) {
|
|
121
|
+
if (estado instanceof Estado) {
|
|
122
|
+
this.estado = estado
|
|
123
|
+
} else {
|
|
124
|
+
this.estado = new Estado(estado);
|
|
125
|
+
}
|
|
126
|
+
} else {
|
|
127
|
+
this.estado = Estado.estadoPorDefault();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
*
|
|
133
|
+
* @returns Devuelve el estado actual del expediente.
|
|
134
|
+
*/
|
|
135
|
+
getEstado(): Estado {
|
|
136
|
+
return this.estado;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Setea un arreglo de documentos al expediente
|
|
141
|
+
* @param documentos El nuevo arreglo de documentos que se quiere setear al expediente
|
|
142
|
+
*/
|
|
143
|
+
setDocumentos(documentos: Documento[]) {
|
|
144
|
+
if (Array.isArray(documentos)) {
|
|
145
|
+
if (documentos.every(doc => doc instanceof Documento)) {
|
|
146
|
+
this.documentos = documentos;
|
|
147
|
+
} else {
|
|
148
|
+
throw new Error('El atributo documentos debe ser un array de objetos de tipo Documento');
|
|
149
|
+
}
|
|
150
|
+
} else {
|
|
151
|
+
throw new Error('El atributo documentos debe ser un array');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Agrega un nuevo documento al arreglo de documentos del expediente.
|
|
157
|
+
* @param documento El documento que se quiere agregar al arreglo de documentos del expediente.
|
|
158
|
+
*/
|
|
159
|
+
pushDocumento(documento: Documento) {
|
|
160
|
+
if (documento instanceof Documento) {
|
|
161
|
+
this.documentos.push(documento);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
throw new Error('El atributo documento debe ser de tipo Documento');
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Reemplaza el documento que esta en el indice indicado por el que se envia como parametro.
|
|
170
|
+
* @param index: Indice del docuemento a reemplazar.
|
|
171
|
+
* @param documento El documento que reemplaza al anterior.
|
|
172
|
+
*/
|
|
173
|
+
modificarDocumento(index: number, documento: Documento) {
|
|
174
|
+
if (documento instanceof Documento) {
|
|
175
|
+
this.documentos[index] = documento;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
throw new Error('El atributo documento debe ser de tipo Documento');
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
getDocumentos(): Documento[] {
|
|
183
|
+
return this.documentos;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
avanzarEstado(usuario: any, flujo: Flujo) {
|
|
187
|
+
this.setEstado(this.estado.autorizar(usuario, flujo));
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
updateFlagExito(exito: boolean) {
|
|
191
|
+
this.estado.setFlagExito(exito)
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
supervisar(usuario: any, flujo: Flujo) {
|
|
195
|
+
this.setEstado(this.estado.supervisar(usuario, flujo));
|
|
196
|
+
}
|
|
197
|
+
observar(usuario: any, flujo: Flujo) {
|
|
198
|
+
this.setEstado(this.estado.observar(usuario, flujo))
|
|
199
|
+
}
|
|
200
|
+
rechazar(usuario: any, flujo: Flujo) {
|
|
201
|
+
this.setEstado(this.estado.rechazar(usuario, flujo))
|
|
202
|
+
}
|
|
203
|
+
cancelar(usuario: any, flujo: Flujo) {
|
|
204
|
+
this.setEstado(this.estado.cancelar(usuario, flujo))
|
|
205
|
+
}
|
|
206
|
+
devolver(usuario: any, flujo: Flujo) {
|
|
207
|
+
this.setEstado(this.estado.devolver(usuario, flujo))
|
|
208
|
+
}
|
|
209
|
+
firmar(usuario: any, flujo: Flujo) {
|
|
210
|
+
this.setEstado(this.estado.firmar(usuario, flujo))
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
getAtributos() {
|
|
214
|
+
return this.extras;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
public static transferirExpediente(expediente: ExpedienteElectronico, oficinaResponsable) {
|
|
218
|
+
const unidad = oficinaResponsable.split("-")
|
|
219
|
+
let result = unidad[1].replace(/\s/g, "");
|
|
220
|
+
if (!expediente.getEstado().esVisiblePor.includes(result)) {
|
|
221
|
+
expediente.getEstado().esVisiblePor.push(result);
|
|
222
|
+
}
|
|
223
|
+
return expediente.getEstado()
|
|
224
|
+
}
|
|
223
225
|
}
|
package/expediente-electronico/infrastructure/repositories/expediente-electronico.sql.repository.ts
CHANGED
|
@@ -42,9 +42,10 @@ export class ExpedienteElectronicoSqlRepository implements IExpedienteElectronic
|
|
|
42
42
|
doc.nombre,
|
|
43
43
|
doc.descripcion,
|
|
44
44
|
doc.size,
|
|
45
|
-
{ extras: doc.extras },
|
|
45
|
+
{ extras: doc.extras || {}, uuidOriginal: doc.uuidOriginal || "" },
|
|
46
46
|
doc.firmado,
|
|
47
|
-
doc.estadoWorkflow
|
|
47
|
+
doc.estadoWorkflow || [],
|
|
48
|
+
doc.fecha
|
|
48
49
|
);
|
|
49
50
|
expediente.documentos[index] = documento;
|
|
50
51
|
});
|
|
@@ -79,9 +80,13 @@ export class ExpedienteElectronicoSqlRepository implements IExpedienteElectronic
|
|
|
79
80
|
doc.nombre,
|
|
80
81
|
doc.descripcion,
|
|
81
82
|
doc.size,
|
|
82
|
-
{
|
|
83
|
+
{
|
|
84
|
+
extras: doc.extras || {},
|
|
85
|
+
uuidOriginal: doc.uuidOriginal
|
|
86
|
+
},
|
|
83
87
|
doc.firmado,
|
|
84
|
-
estadoWorkflow,
|
|
88
|
+
doc.estadoWorkflow || [],
|
|
89
|
+
doc.fecha
|
|
85
90
|
);
|
|
86
91
|
expediente.documentos[index] = documento;
|
|
87
92
|
});
|
|
@@ -170,9 +175,13 @@ export class ExpedienteElectronicoSqlRepository implements IExpedienteElectronic
|
|
|
170
175
|
doc.nombre,
|
|
171
176
|
doc.descripcion,
|
|
172
177
|
doc.size,
|
|
173
|
-
{
|
|
178
|
+
{
|
|
179
|
+
extras: doc.extras || {},
|
|
180
|
+
uuidOriginal: doc.uuidOriginal
|
|
181
|
+
},
|
|
174
182
|
doc.firmado,
|
|
175
|
-
estadoWorkflow,
|
|
183
|
+
doc.estadoWorkflow || [],
|
|
184
|
+
doc.fecha
|
|
176
185
|
);
|
|
177
186
|
ee.documentos[index] = documento;
|
|
178
187
|
});
|
|
@@ -250,9 +259,10 @@ export class ExpedienteElectronicoSqlRepository implements IExpedienteElectronic
|
|
|
250
259
|
doc.nombre,
|
|
251
260
|
doc.descripcion,
|
|
252
261
|
doc.size,
|
|
253
|
-
{ extras: doc.extras },
|
|
262
|
+
{ extras: doc.extras || {}, uuidOriginal: doc.uuidOriginal || "" },
|
|
254
263
|
doc.firmado,
|
|
255
|
-
doc.estadoWorkflow
|
|
264
|
+
doc.estadoWorkflow || [],
|
|
265
|
+
doc.fecha
|
|
256
266
|
);
|
|
257
267
|
});
|
|
258
268
|
|
|
@@ -341,6 +351,13 @@ export class ExpedienteElectronicoSqlRepository implements IExpedienteElectronic
|
|
|
341
351
|
doc.nombre,
|
|
342
352
|
doc.descripcion,
|
|
343
353
|
doc.size,
|
|
354
|
+
{
|
|
355
|
+
extras: doc.extras || {},
|
|
356
|
+
uuidOriginal: doc.uuidOriginal
|
|
357
|
+
},
|
|
358
|
+
doc.firmado,
|
|
359
|
+
doc.estadoWorkflow || [],
|
|
360
|
+
doc.fecha
|
|
344
361
|
);
|
|
345
362
|
expediente.documentos[index] = documento;
|
|
346
363
|
});
|
|
@@ -455,6 +472,13 @@ export class ExpedienteElectronicoSqlRepository implements IExpedienteElectronic
|
|
|
455
472
|
doc.nombre,
|
|
456
473
|
doc.descripcion,
|
|
457
474
|
doc.size,
|
|
475
|
+
{
|
|
476
|
+
extras: doc.extras || {},
|
|
477
|
+
uuidOriginal: doc.uuidOriginal
|
|
478
|
+
},
|
|
479
|
+
doc.firmado,
|
|
480
|
+
doc.estadoWorkflow || [],
|
|
481
|
+
doc.fecha
|
|
458
482
|
);
|
|
459
483
|
expediente.documentos[index] = documento;
|
|
460
484
|
});
|
|
@@ -612,6 +636,13 @@ export class ExpedienteElectronicoSqlRepository implements IExpedienteElectronic
|
|
|
612
636
|
doc.nombre,
|
|
613
637
|
doc.descripcion,
|
|
614
638
|
doc.size,
|
|
639
|
+
{
|
|
640
|
+
extras: doc.extras || {},
|
|
641
|
+
uuidOriginal: doc.uuidOriginal
|
|
642
|
+
},
|
|
643
|
+
doc.firmado,
|
|
644
|
+
doc.estadoWorkflow || [],
|
|
645
|
+
doc.fecha
|
|
615
646
|
);
|
|
616
647
|
expediente.documentos[index] = documento;
|
|
617
648
|
});
|
|
@@ -756,6 +787,13 @@ export class ExpedienteElectronicoSqlRepository implements IExpedienteElectronic
|
|
|
756
787
|
doc.nombre,
|
|
757
788
|
doc.descripcion,
|
|
758
789
|
doc.size,
|
|
790
|
+
{
|
|
791
|
+
extras: doc.extras || {},
|
|
792
|
+
uuidOriginal: doc.uuidOriginal
|
|
793
|
+
},
|
|
794
|
+
doc.firmado,
|
|
795
|
+
doc.estadoWorkflow || [],
|
|
796
|
+
doc.fecha
|
|
759
797
|
);
|
|
760
798
|
expediente.documentos[index] = documento;
|
|
761
799
|
});
|
|
@@ -818,6 +856,13 @@ export class ExpedienteElectronicoSqlRepository implements IExpedienteElectronic
|
|
|
818
856
|
doc.nombre,
|
|
819
857
|
doc.descripcion,
|
|
820
858
|
doc.size,
|
|
859
|
+
{
|
|
860
|
+
extras: doc.extras || {},
|
|
861
|
+
uuidOriginal: doc.uuidOriginal
|
|
862
|
+
},
|
|
863
|
+
doc.firmado,
|
|
864
|
+
doc.estadoWorkflow || [],
|
|
865
|
+
doc.fecha
|
|
821
866
|
);
|
|
822
867
|
expediente.documentos[index] = documento;
|
|
823
868
|
});
|
|
@@ -882,6 +927,13 @@ export class ExpedienteElectronicoSqlRepository implements IExpedienteElectronic
|
|
|
882
927
|
doc.nombre,
|
|
883
928
|
doc.descripcion,
|
|
884
929
|
doc.size,
|
|
930
|
+
{
|
|
931
|
+
extras: doc.extras || {},
|
|
932
|
+
uuidOriginal: doc.uuidOriginal
|
|
933
|
+
},
|
|
934
|
+
doc.firmado,
|
|
935
|
+
doc.estadoWorkflow || [],
|
|
936
|
+
doc.fecha
|
|
885
937
|
);
|
|
886
938
|
expediente.documentos[index] = documento;
|
|
887
939
|
});
|