· 7 years ago · Jan 31, 2019, 05:42 PM
1create or replace package ETL_TRANSFORMACION_CHEC is
2
3 -- Author : LTTURCHE
4 -- Created : 09/04/2018 16:59:57
5 -- Purpose :
6
7 assembly_fisico_invalido exception;
8 assembly_eletrico_invalido exception;
9
10 -- Public constant declarations
11 cErrorPropietario constant varchar2(80) := 'TOWNER no corresponde al OWNER';
12 cErrorSinPropietario constant varchar2(80) := 'Un OWNER es requerido para este elemento';
13 cErrorAssemblyFisico constant varchar2(80) := 'Assembly Fisico invalido - ';
14 cErrorAssemblyEletrico constant varchar2(80) := 'Assembly Eletrico invalido - ';
15 cErrorMaterial constant varchar2(80) := 'Material es requerido para este elemento';
16 cErrorDepMun constant varchar2(80) := 'Departamento/Municipio es requerido';
17 cErrorAssemblyNotFound constant varchar2(80) := 'Assembly Eletrico no encontrado';
18 cErrorVientoPrimario constant varchar2(80) := 'Norma de Viento Primario no encontrada - ';
19 cErrorVientoSecundario constant varchar2(80) := 'Norma de Viento Secundario no encontrada - ';
20 cErrorApoyos constant varchar2(80) := 'Norma de Apoyo no encontrada - ';
21 cErrorTierra constant varchar2(80) := 'Norma de Tierra no encontrada - ';
22 cErrorUser constant varchar2(80) := 'No es posible hacer el desglose del campo USER';
23 cErrorGeneral constant varchar2(80) := 'Error General';
24
25 function CrearComponenteTexto(pLinea sdo_geometry) return sdo_geometry;
26
27 function PuntoMedio(pGeom sdo_geometry) return sdo_geometry;
28
29 function CalcularBearing(line mdsys.sdo_geometry) return number;
30
31 function BuscarZetaNodoEletrico(pCodigo varchar) return number;
32
33 function ConvertPoint2Sigma(longitud number,
34 latitud number,
35 zeta number default 0,
36 angle number default 0) return sdo_geometry;
37
38 function ConvertPoint2SigmaTexto(longitud number,
39 latitud number,
40 zeta number default 0,
41 offset number default 1E-5,
42 angle number default 0)
43 return sdo_geometry;
44
45 function ConvertLine2Sigma(longitud1 number,
46 latitud1 number,
47 zeta1 number,
48 longitud2 number,
49 latitud2 number,
50 zeta2 number) return sdo_geometry;
51
52 function ConvertPoint2Chec(longitud number, latitud number)
53 return sdo_geometry;
54
55 procedure ConvertLine2Chec(geometry sdo_geometry,
56 X1 in out number,
57 Y1 in out number,
58 X2 in out number,
59 Y2 in out number);
60
61 function ConvertPoint2Barraje(longitud number,
62 latitud number,
63 orientacion number) return sdo_geometry;
64
65 function ConvertPoint2Subestacion(longitud number,
66 latitud number,
67 distance number default 10)
68 return sdo_geometry;
69
70 procedure SpatialElementosLineares;
71
72 function SpatialDepartamento(geom sdo_geometry,
73 code varchar2,
74 tabla varchar2,
75 circuito varchar2) return varchar2;
76 function SpatialMunicipio(geom sdo_geometry,
77 code varchar2,
78 tabla varchar2,
79 circuito varchar2) return varchar2;
80 function SpatialSubregion(geom sdo_geometry,
81 code varchar2,
82 tabla varchar2,
83 circuito varchar2) return varchar2;
84
85 function SpatialClaMercado(geom sdo_geometry,
86 code varchar2,
87 tabla varchar2,
88 circuito varchar2) return varchar2;
89
90 function SpatialVereda(geom sdo_geometry,
91 code varchar2,
92 tabla varchar2,
93 circuito varchar2) return varchar2;
94
95 function DecodeFase(fase in NUMBER) return varchar2;
96 function DecodeTipoSubestacion(tipo in NUMBER) return varchar2;
97 function DecodeTipoConductorSec(pUso in VARCHAR2) return varchar2;
98 function DecodeTipoRed(kvnom in number) return varchar2;
99
100 procedure DesgloseAerMVPHNODE(assembly in VARCHAR2,
101 material in out VARCHAR2,
102 apoyos in out NUMBER,
103 longitud in out NUMBER,
104 vientos_primarios in out VARCHAR2,
105 vientos_secundarios in out NUMBER,
106 tierra in out VARCHAR2);
107
108 procedure DesgloseSubMVPHNODE(assembly in VARCHAR2,
109 dimension in out VARCHAR2,
110 tipo in out VARCHAR2,
111 ductos in out NUMBER,
112 dimension_ductos in out VARCHAR2);
113
114 procedure DesglosePriMVELNODE(assembly in VARCHAR2,
115 tipo_red in out NUMBER,
116 material in out VARCHAR2,
117 posicion in out VARCHAR2,
118 neutro in out VARCHAR2,
119 fases in out NUMBER,
120 tipo_estructura in out VARCHAR2,
121 longitud_cruceta in out VARCHAR2);
122
123 procedure DesgloseSecMVELNODE(assembly in VARCHAR2,
124 material in out VARCHAR2,
125 disposicion in out VARCHAR2,
126 neutro in out VARCHAR2,
127 fases in out NUMBER,
128 perchas in out VARCHAR2,
129 cantidad_perchas in out NUMBER);
130
131 --GENERICOS
132 --procedure INS_COMMUN(pCommu IN T$CCOMUN%ROWTYPE);
133
134 --MVPHNODE
135 procedure PT_CAMARA(pCircuito in VARCHAR2);
136 procedure PT_TORRE_TRANSMISION(pCircuito in VARCHAR2);
137 procedure PT_POSTE(pCircuito in VARCHAR2);
138 procedure PT_NODO_CONDUCTOR(pCircuito in VARCHAR2);
139
140 --SWICHES
141 procedure PT_AISLADERO(pCircuito in VARCHAR2);
142 procedure PT_CUCHILLA(pCircuito in VARCHAR2);
143 procedure PT_RECONECTADOR(pCircuito in VARCHAR2);
144 procedure PT_SECCIONALIZADOR(pCircuito in VARCHAR2);
145 procedure PT_REFERENCIA(pCircuito in VARCHAR2);
146 procedure PT_SUICHE(pCircuito in VARCHAR2);
147 procedure PT_INTERRUPTOR(pCircuito in VARCHAR2);
148
149 --MVLINSEC
150 procedure PT_CONDUCTOR_PRIMARIO(pCircuito in VARCHAR2);
151 procedure PT_CONDUCTOR_TRANSMISION(pCircuito in VARCHAR2);
152
153 --LVLINSEC
154 procedure PT_CONDUCTOR_SECUNDARIO(pCircuito in VARCHAR2);
155 procedure PT_ACOMETIDA(pCircuito in VARCHAR2);
156
157 procedure PT_BARRAJE(pCircuito in VARCHAR2);
158 procedure PT_SUBESTACION(pCircuito in VARCHAR2);
159
160 procedure PT_TRANSF_POT(pCircuito in varchar2);
161 procedure PT_TRANSFORMADOR(pCircuito in VARCHAR2);
162
163 procedure PT_PARARRAYO(pCircuito in VARCHAR2);
164 procedure PT_INDICADOR(pCircuito in VARCHAR2);
165 procedure PT_FEEDER(pCircuito in VARCHAR2);
166 procedure PT_LUMINARIA(pCircuito in VARCHAR2);
167 procedure PT_CAJA_DIS(pCircuito in VARCHAR2);
168
169 --Flujos
170 procedure PT_FLUJO_SUBESTACION(pSub in varchar2);
171 procedure PT_PARALELO(pName in varchar2);
172 procedure PT_TASK(pTasks in number);
173 procedure PT_FLUJO_CIR(pCircuito in VARCHAR2);
174
175 --Normas Eletricas
176 procedure PTN_NORMA_ELETRICA(pPHNODE in VARCHAR2,
177 pFID in NUMBER,
178 pFNO in NUMBER);
179
180 --Connectividad
181 function PTC_BuscarNodoConductor(pCodigo in VARCHAR2, pNodo in VARCHAR2)
182 return number;
183 function PTC_BuscarNodoConductorSec(pCodigo in VARCHAR2,
184 pNodo in VARCHAR2) return number;
185
186 function PTC_BuscarNodoSwitches(pLineSection in VARCHAR2,
187 pX in NUMBER,
188 pY in NUMBER,
189 fidConduct in out NUMBER,
190 nodePos in out NUMBER) return number;
191
192 function PTC_BuscarNodoTransforAlta(pHNode in VARCHAR2) return number;
193 function PTC_BuscarNodoTransforBaja(pLNode in VARCHAR2) return number;
194 function PTC_BuscarOwnerIndicador(elnode in VARCHAR) return number;
195
196 procedure CrearReport(pCircuito in varchar2,
197 pTabla in varchar2,
198 pRegistros in number,
199 pTiempo in timestamp);
200
201 procedure PoblarNodosEletricos;
202
203 procedure BorrarCircuito(pCircuito in varchar2);
204
205 procedure LimpiarTablasTransformacion;
206
207end ETL_TRANSFORMACION_CHEC;
208/
209create or replace package body ETL_TRANSFORMACION_CHEC is
210
211 function CrearComponenteTexto(pLinea sdo_geometry) return sdo_geometry is
212
213 gGeom sdo_geometry;
214 begin
215
216 --aplicar offset
217 gGeom := spatial_utils.linear.ST_Parallel(pLinea, 0.00002, 0.01);
218
219 return PuntoMedio(gGeom);
220
221 end;
222
223 function PuntoMedio(pGeom sdo_geometry) return sdo_geometry is
224 geomPunto sdo_geometry;
225 xMedio number;
226 yMedio number;
227 angle number;
228 gAngI number;
229 gAngJ number;
230 begin
231
232 select avg(l.x), avg(l.y)
233 into xMedio, yMedio
234 from table(sdo_util.GetVertices(pGeom)) l;
235
236 angle := CalcularBearing(pGeom);
237 gAngI := cos(angle);
238 gAngJ := sin(angle);
239
240 geomPunto := SDO_GEOMETRY(3001,
241 4326,
242 NULL,
243 SDO_ELEM_INFO_ARRAY(1, 1, 1, 4, 1, 0),
244 SDO_ORDINATE_ARRAY(xMedio,
245 yMedio,
246 0,
247 gAngI,
248 gAngJ,
249 0));
250
251 return geomPunto;
252
253 end;
254
255 function CalcularBearing(line mdsys.sdo_geometry) return number is
256 bearing number;
257 pAX number;
258 pAY number;
259 pBX number;
260 pBY number;
261 dX number;
262 dY number;
263 begin
264
265 select l.x, l.y
266 into pBX, pBY
267 from table(sdo_util.GetVertices(line)) l
268 where l.id =
269 (select max(j.id) from table(sdo_util.GetVertices(line)) j);
270
271 select l.x, l.y
272 into pAX, pAY
273 from table(sdo_util.GetVertices(line)) l
274 where l.id =
275 (select min(j.id) from table(sdo_util.GetVertices(line)) j);
276
277 dX := pBX - pAX;
278 dY := pBY - pAY;
279
280 bearing := atan(dY / dX);
281 return bearing;
282 end CalcularBearing;
283
284 function BuscarZetaNodoEletrico(pCodigo varchar) return number is
285
286 gZeta number;
287 begin
288 select height into gZeta from x$conectividad where code = pCodigo;
289 if gZeta is null then
290 gZeta := 0;
291 end if;
292 return gZeta;
293 exception
294 when others then
295 return 0;
296 end;
297
298 function ConvertPoint2Sigma(longitud number,
299 latitud number,
300 zeta number default 0,
301 angle number default 0) return sdo_geometry is
302 geom21891 sdo_geometry;
303 geom4326 sdo_geometry;
304 gLongitud number;
305 gLatitud number;
306 gZeta number;
307 gAngI number := 0;
308 gAngJ number := 0;
309
310 begin
311 geom21891 := SDO_GEOMETRY(3001,
312 21891,
313 NULL,
314 SDO_ELEM_INFO_ARRAY(1, 1, 1, 4, 1, 0),
315 SDO_ORDINATE_ARRAY(longitud,
316 latitud,
317 zeta,
318 0,
319 0,
320 0));
321
322 geom4326 := SDO_CS.TRANSFORM(geom21891, 4326);
323
324 select k.x
325 into gLongitud
326 from table(sdo_util.GetVertices(geom4326)) k
327 where k.id = 1;
328
329 select k.y
330 into gLatitud
331 from table(sdo_util.GetVertices(geom4326)) k
332 where k.id = 1;
333
334 /*
335 select k.z
336 into gZeta
337 from table(sdo_util.GetVertices(geom4326)) k
338 where k.id = 1;
339 */
340
341 gZeta := nvl(zeta, 0);
342
343 if angle is not null and angle > 0 then
344 gAngI := cos(angle);
345 gAngJ := sin(angle);
346 end if;
347
348 geom4326.SDO_ORDINATES := sdo_ordinate_array(gLongitud,
349 gLatitud,
350 gZeta,
351 gAngI,
352 gAngJ,
353 0);
354
355 return geom4326;
356 end;
357
358 function ConvertLine2Sigma(longitud1 number,
359 latitud1 number,
360 zeta1 number,
361 longitud2 number,
362 latitud2 number,
363 zeta2 number) return sdo_geometry is
364
365 geom21891 sdo_geometry;
366 geom4326 sdo_geometry;
367 begin
368 geom21891 := SDO_GEOMETRY(3002,
369 21891,
370 NULL,
371 SDO_ELEM_INFO_ARRAY(1, 2, 1),
372 SDO_ORDINATE_ARRAY(longitud1,
373 latitud1,
374 zeta1,
375 longitud2,
376 latitud2,
377 zeta2));
378
379 geom4326 := SDO_CS.TRANSFORM(geom21891, 4326);
380 return geom4326;
381 end;
382
383 function ConvertPoint2Chec(longitud number, latitud number)
384 return sdo_geometry is
385 geom21891 sdo_geometry;
386 geom4326 sdo_geometry;
387 begin
388 geom4326 := SDO_GEOMETRY(2001,
389 4326,
390 NULL,
391 SDO_ELEM_INFO_ARRAY(1, 1, 1),
392 SDO_ORDINATE_ARRAY(longitud, latitud));
393
394 geom21891 := SDO_CS.TRANSFORM(geom4326, 21891);
395
396 return geom21891;
397 end;
398
399 procedure ConvertLine2Chec(geometry sdo_geometry,
400 X1 in out number,
401 Y1 in out number,
402 X2 in out number,
403 Y2 in out number) is
404 geom21891 sdo_geometry;
405 begin
406 geom21891 := SDO_CS.TRANSFORM(geometry, 21891);
407 select inicial.xinicial, inicial.yinicial
408 into X1, Y1
409 from (select l.x xinicial, l.y yinicial
410 from table(sdo_util.GetVertices(geom21891)) l
411 where l.id =
412 (select min(j.id)
413 from table(sdo_util.GetVertices(geom21891)) j)) inicial;
414
415 select final.xfinal, final.yfinal
416 into X2, Y2
417 from (select l.x xfinal, l.y yfinal
418 from table(sdo_util.GetVertices(geom21891)) l
419 where l.id =
420 (select max(j.id)
421 from table(sdo_util.GetVertices(geom21891)) j)) final;
422
423 end;
424
425 function ConvertPoint2SigmaTexto(longitud number,
426 latitud number,
427 zeta number default 0,
428 offset number default 1E-5,
429 angle number default 0)
430 return sdo_geometry is
431
432 point4326 sdo_geometry;
433 xpos number;
434 ypos number;
435 ipos number;
436 jpos number;
437 kpos number;
438 begin
439
440 point4326 := ConvertPoint2Sigma(longitud, latitud, 0, angle);
441
442 xpos := point4326.SDO_ORDINATES(1);
443 ypos := point4326.SDO_ORDINATES(2);
444 ipos := point4326.SDO_ORDINATES(4);
445 jpos := point4326.SDO_ORDINATES(5);
446 kpos := point4326.SDO_ORDINATES(6);
447
448 point4326.SDO_ORDINATES := sdo_ordinate_array(xpos,
449 ypos + offset,
450 zeta,
451 ipos,
452 jpos,
453 kpos);
454
455 return point4326;
456
457 end;
458
459 function ConvertPoint2Barraje(longitud number,
460 latitud number,
461 orientacion number) return sdo_geometry is
462 point4326 sdo_geometry;
463 line4326 sdo_geometry;
464 xpos number;
465 ypos number;
466 begin
467
468 point4326 := ConvertPoint2Sigma(longitud, latitud);
469
470 xpos := point4326.SDO_ORDINATES(1);
471 ypos := point4326.SDO_ORDINATES(2);
472
473 if orientacion = 0 then
474 --horizontal
475 line4326 := SDO_GEOMETRY(3002,
476 4326,
477 NULL,
478 SDO_ELEM_INFO_ARRAY(1, 2, 1),
479 SDO_ORDINATE_ARRAY(xpos - 2E-5,
480 ypos,
481 0,
482 xpos + 2E-5,
483 ypos,
484 0));
485 else
486 line4326 := SDO_GEOMETRY(3002,
487 4326,
488 NULL,
489 SDO_ELEM_INFO_ARRAY(1, 2, 1),
490 SDO_ORDINATE_ARRAY(xpos,
491 ypos - 2E-5,
492 0,
493 xpos,
494 ypos + 2E-5,
495 0));
496 end if;
497
498 return line4326;
499
500 end;
501
502 function ConvertPoint2Subestacion(longitud number,
503 latitud number,
504 distance number default 10)
505 return sdo_geometry is
506
507 point4326 sdo_geometry;
508 area4326 sdo_geometry;
509
510 xpos number;
511 ypos number;
512 ortoDist number;
513 delta number;
514 begin
515
516 ortoDist := distance / sqrt(2);
517 delta := ortoDist * 0.001;
518
519 point4326 := ConvertPoint2Sigma(longitud, latitud);
520
521 xpos := point4326.SDO_ORDINATES(1);
522 ypos := point4326.SDO_ORDINATES(2);
523
524 area4326 := SDO_GEOMETRY(3003,
525 4326,
526 NULL,
527 SDO_ELEM_INFO_ARRAY(1, 1003, 1),
528 SDO_ORDINATE_ARRAY(xpos - delta,
529 ypos + delta,
530 0,
531 xpos + delta,
532 ypos + delta,
533 0,
534 xpos + delta,
535 ypos - delta,
536 0,
537 xpos - delta,
538 ypos - delta,
539 0,
540 xpos - delta,
541 ypos + delta,
542 0));
543
544 return area4326;
545
546 end;
547
548 procedure SpatialElementosLineares is
549
550 begin
551
552 FIX_GEOM_METADATA('T$EACO_SEC_LN');
553 FIX_GEOM_METADATA('T$ECON_SES_LN');
554 FIX_GEOM_METADATA('T$ECON_PRI_LN');
555
556 --departamentos
557 for dep in (select * from BDEPART_AR) loop
558
559 --acometidas
560 for c in (select k.g3e_fid, k.g3e_fno
561 from T$EACO_SEC_LN k
562 where SDO_RELATE(k.g3e_geometry,
563 dep.g3e_geometry,
564 'mask=INSIDE') = 'TRUE') loop
565 update t$ccomun
566 set departamento = dep.departamento
567 where g3e_fid = c.g3e_fid
568 and g3e_fno = c.g3e_fno;
569 commit;
570
571 end loop;
572
573 --conectores secundarios
574 for c in (select k.g3e_fid, k.g3e_fno
575 from T$ECON_SES_LN k
576 where SDO_RELATE(k.g3e_geometry,
577 dep.g3e_geometry,
578 'mask=INSIDE') = 'TRUE') loop
579 update t$ccomun
580 set departamento = dep.departamento
581 where g3e_fid = c.g3e_fid
582 and g3e_fno = c.g3e_fno;
583 commit;
584
585 end loop;
586
587 --Conectores Primarios
588 for c in (select k.g3e_fid, k.g3e_fno
589 from T$ECON_PRI_LN k
590 where SDO_RELATE(k.g3e_geometry,
591 dep.g3e_geometry,
592 'mask=INSIDE') = 'TRUE') loop
593 update t$ccomun
594 set departamento = dep.departamento
595 where g3e_fid = c.g3e_fid
596 and g3e_fno = c.g3e_fno;
597 commit;
598
599 end loop;
600
601 end loop;
602
603 --municipios
604 for dep in (select * from BMUNICIP_AR) loop
605
606 --acometidas
607 for c in (select k.g3e_fid, k.g3e_fno
608 from T$EACO_SEC_LN k
609 where SDO_RELATE(k.g3e_geometry,
610 dep.g3e_geometry,
611 'mask=INSIDE') = 'TRUE') loop
612
613 update t$ccomun
614 set municipio = dep.municipio
615 where g3e_fid = c.g3e_fid
616 and g3e_fno = c.g3e_fno;
617 commit;
618
619 end loop;
620
621 --conectores secundarios
622 for c in (select k.g3e_fid, k.g3e_fno
623 from T$ECON_SES_LN k
624 where SDO_RELATE(k.g3e_geometry,
625 dep.g3e_geometry,
626 'mask=INSIDE') = 'TRUE') loop
627 update t$ccomun
628 set municipio = dep.municipio
629 where g3e_fid = c.g3e_fid
630 and g3e_fno = c.g3e_fno;
631 commit;
632
633 end loop;
634
635 --Conectores Primarios
636 for c in (select k.g3e_fid, k.g3e_fno
637 from T$ECON_PRI_LN k
638 where SDO_RELATE(k.g3e_geometry,
639 dep.g3e_geometry,
640 'mask=INSIDE') = 'TRUE') loop
641 update t$ccomun
642 set municipio = dep.municipio
643 where g3e_fid = c.g3e_fid
644 and g3e_fno = c.g3e_fno;
645 commit;
646
647 end loop;
648
649 end loop;
650
651 end;
652
653 function SpatialDepartamento(geom sdo_geometry,
654 code varchar2,
655 tabla varchar2,
656 circuito varchar2) return varchar2 is
657 dept varchar2(80);
658 begin
659 select departamento
660 into dept
661 from BDEPART_AR k
662 where SDO_RELATE(k.g3e_geometry, geom, 'mask=CONTAINS') = 'TRUE'
663 and rownum = 1;
664
665 return dept;
666 exception
667 when others then
668 insert into ETL_TRANSFORMACION_LOG
669 values
670 (tabla,
671 'T$CCOMUN',
672 code,
673 2,
674 'No se encontro un departamento',
675 circuito,
676 sysdate);
677 commit;
678 return null;
679 end;
680
681 function SpatialMunicipio(geom sdo_geometry,
682 code varchar2,
683 tabla varchar2,
684 circuito varchar2) return varchar2 is
685 muni varchar2(80);
686 begin
687 select municipio
688 into muni
689 from BMUNICIP_AR k
690 where SDO_RELATE(k.g3e_geometry, geom, 'mask=CONTAINS') = 'TRUE'
691 and rownum = 1;
692
693 return muni;
694 exception
695 when others then
696 insert into ETL_TRANSFORMACION_LOG
697 values
698 (tabla,
699 'T$CCOMUN',
700 code,
701 2,
702 'No se encontr? un municipio',
703 circuito,
704 sysdate);
705 commit;
706 return null;
707 end;
708
709 function SpatialSubregion(geom sdo_geometry,
710 code varchar2,
711 tabla varchar2,
712 circuito varchar2) return varchar2 is
713 narea varchar2(80);
714 begin
715 select a.nombre_area
716 into narea
717 from EARE_FUN_AR g
718 inner join EARE_FUN_AT a
719 on a.g3e_fid = g.g3e_fid
720 where a.tipo_area = 'SUBREGION'
721 and SDO_RELATE(g.g3e_geometry, geom, 'mask=CONTAINS') = 'TRUE'
722 and rownum = 1;
723
724 return narea;
725 exception
726 when others then
727 insert into ETL_TRANSFORMACION_LOG
728 values
729 (tabla,
730 'T$CCOMUN',
731 code,
732 3,
733 'No se encontr? una subregion',
734 circuito,
735 sysdate);
736 commit;
737 return null;
738 end;
739
740 function SpatialClaMercado(geom sdo_geometry,
741 code varchar2,
742 tabla varchar2,
743 circuito varchar2) return varchar2 is
744 narea varchar2(80);
745 begin
746 select a.nombre_area
747 into narea
748 from EARE_FUN_AR g
749 inner join EARE_FUN_AT a
750 on a.g3e_fid = g.g3e_fid
751 where a.tipo_area = 'URBANA'
752 and SDO_RELATE(g.g3e_geometry, geom, 'mask=CONTAINS') = 'TRUE'
753 and rownum = 1;
754
755 return narea;
756 exception
757 when others then
758 insert into ETL_TRANSFORMACION_LOG
759 values
760 (tabla,
761 'T$CCOMUN',
762 code,
763 3,
764 'No se encontr? una Clase Mercado',
765 circuito,
766 sysdate);
767 commit;
768 return null;
769 end;
770
771 function SpatialVereda(geom sdo_geometry,
772 code varchar2,
773 tabla varchar2,
774 circuito varchar2) return varchar2 is
775 vere varchar2(80);
776 begin
777 select g.vereda
778 into vere
779 from BVEREDA_AR g
780 where SDO_RELATE(g.g3e_geometry, geom, 'mask=CONTAINS') = 'TRUE'
781 and rownum = 1;
782
783 return vere;
784 exception
785 when others then
786 insert into ETL_TRANSFORMACION_LOG
787 values
788 (tabla,
789 'T$CCOMUN',
790 code,
791 3,
792 'No se encontr? una Vereda',
793 circuito,
794 sysdate);
795 commit;
796 return null;
797 end;
798
799 function DecodeMaterialPoste(clase in varchar2) return varchar2 is
800
801 begin
802 case CLASE
803 when 'I' then
804 return 'CONCRETO';
805 when 'T' then
806 return 'CONCRETO';
807 when 'V' then
808 return 'FIBRA DE VIDRIO';
809 when 'M' then
810 return 'MADERA';
811 else
812 return 'METALICO';
813 end case;
814 end;
815
816 function DecodeTipoRed(kvnom in number) return varchar2 is
817
818 begin
819 case KVNOM
820 when 13.200 then
821 return 'PRIMARIA';
822 when 7.600 then
823 return 'PRIMARIA';
824 when 33000 then
825 return 'SUBTRANSMISION';
826 when 115000 then
827 return 'TRANSMISION';
828 when 230000 then
829 return 'TRANSMISION';
830 else
831 return 'SECUNDARIA';
832 end case;
833 end;
834
835 function DecodeLocalizacion(loc in NUMBER) return varchar2 is
836
837 begin
838 case loc
839 when 0 then
840 return 'AEREO';
841 when 1 then
842 return 'SUBTERRANEO';
843 else
844 return '';
845 end case;
846 end;
847
848 function DecodeFase(fase in NUMBER) return varchar2 is
849
850 begin
851 case fase
852 when 1 then
853 return 'A';
854 when 2 then
855 return 'B';
856 when 3 then
857 return 'AB';
858 when 4 then
859 return 'C';
860 when 5 then
861 return 'AC';
862 when 6 then
863 return 'BC';
864 when 7 then
865 return 'ABC';
866 when 8 then
867 return '';
868 when 9 then
869 return 'AN';
870 when 10 then
871 return 'BN';
872 when 11 then
873 return 'ABN';
874 when 12 then
875 return 'CN';
876 when 13 then
877 return 'ACN';
878 when 14 then
879 return 'BCN';
880 when 15 then
881 return 'ABCN';
882 else
883 return '';
884 end case;
885 end;
886
887 function DecodeTipoSubestacion(tipo in NUMBER) return varchar2 is
888
889 begin
890 case tipo
891 when 1 then
892 return 'SUBESTACIONES DE PATIO AT';
893 when 2 then
894 return 'SUBESTACIONES DE AT TIPO INTERIOR';
895 when 3 then
896 return 'SUBESTACIONES DE PATIO DISTRIBUCION MT';
897 when 4 then
898 return 'SUBESTACIONES EN INTERIORES DISTRIBUCION MT';
899 when 5 then
900 return 'SUBESTACIONES INTERIORES DE EDIFICACION';
901 when 6 then
902 return 'SUBESTACIONES TIPO PEDESTAL';
903 when 7 then
904 return 'SUBESTACIONES SUMERGIBLES IPX8';
905 when 8 then
906 return 'SUBESTACIONES A PRUEBA DE INUNDACION';
907 when 9 then
908 return 'SUBESTACIONES DISTRIBUCION TIPO POSTE';
909 else
910 return '';
911 end case;
912 end;
913
914 function DecodeTipoConductorSec(pUso in VARCHAR2) return varchar2 is
915
916 begin
917 case pUso
918 when 'MX' then
919 return 'MISTA';
920 when 'AP' then
921 return 'ALUMBRADO PUBLICO';
922 when 'AC' then
923 return 'ACOMETIDA';
924 when 'RD' then
925 return 'DISTRIBUCION';
926 else
927 return '';
928 end case;
929 end;
930
931 procedure DesgloseAerMVPHNODE(assembly in VARCHAR2,
932 material in out VARCHAR2,
933 apoyos in out NUMBER,
934 longitud in out NUMBER,
935 vientos_primarios in out VARCHAR2,
936 vientos_secundarios in out NUMBER,
937 tierra in out VARCHAR2) is
938
939 begin
940 material := substr(assembly, 2, 1);
941 apoyos := to_number(substr(assembly, 3, 1));
942 longitud := to_number(substr(assembly, 4, 2));
943 vientos_primarios := substr(assembly, 6, 2);
944 vientos_secundarios := to_number(substr(assembly, 8, 1));
945
946 if length(assembly) = 9 then
947 tierra := substr(assembly, 9, 1);
948 else
949 tierra := '0';
950 end if;
951
952 exception
953 when others then
954 raise assembly_fisico_invalido;
955 end;
956
957 procedure DesgloseSubMVPHNODE(assembly in VARCHAR2,
958 dimension in out VARCHAR2,
959 tipo in out VARCHAR2,
960 ductos in out NUMBER,
961 dimension_ductos in out VARCHAR2) is
962
963 begin
964 dimension := substr(assembly, 3, 1);
965 tipo := substr(assembly, 4, 1);
966 ductos := to_number(substr(assembly, 5, 2));
967 dimension_ductos := substr(assembly, 7, 1);
968
969 exception
970 when others then
971 raise assembly_fisico_invalido;
972 end;
973
974 procedure DesglosePriMVELNODE(assembly in VARCHAR2,
975 tipo_red in out NUMBER,
976 material in out VARCHAR2,
977 posicion in out VARCHAR2,
978 neutro in out VARCHAR2,
979 fases in out NUMBER,
980 tipo_estructura in out VARCHAR2,
981 longitud_cruceta in out VARCHAR2) is
982
983 begin
984
985 tipo_red := to_number(substr(assembly, 1, 1));
986 material := substr(assembly, 2, 1);
987 posicion := substr(assembly, 3, 1);
988 neutro := substr(assembly, 4, 1);
989 fases := to_number(substr(assembly, 5, 1));
990 tipo_estructura := substr(assembly, 6, 1);
991 longitud_cruceta := substr(assembly, 7);
992
993 exception
994 when others then
995 raise assembly_eletrico_invalido;
996 end;
997
998 procedure DesgloseSecMVELNODE(assembly in VARCHAR2,
999 material in out VARCHAR2,
1000 disposicion in out VARCHAR2,
1001 neutro in out VARCHAR2,
1002 fases in out NUMBER,
1003 perchas in out VARCHAR2,
1004 cantidad_perchas in out NUMBER) is
1005
1006 begin
1007
1008 material := substr(assembly, 2, 1);
1009 disposicion := substr(assembly, 3, 1);
1010 neutro := substr(assembly, 4, 1);
1011 fases := to_number(substr(assembly, 5, 1));
1012 perchas := substr(assembly, 6, 1);
1013 cantidad_perchas := to_number(substr(assembly, 7));
1014
1015 exception
1016 when others then
1017 raise assembly_eletrico_invalido;
1018 end;
1019
1020 procedure PT_FLUJO_SUBESTACION(pSub in varchar2) is
1021
1022 begin
1023 for c in (select distinct code
1024 from feeders
1025 where code like psub || '%'
1026 order by code) loop
1027 PT_FLUJO_CIR(c.code);
1028 end loop;
1029 end;
1030
1031 procedure PT_PARALELO(pName in varchar2) is
1032 vCount number;
1033 vSubestacion varchar2(10);
1034 begin
1035
1036 --execute immediate 'alter system set DDL_LOCK_TIMEOUT=5';
1037
1038 select count(1)
1039 into vCount
1040 from etl_chec_subestacion
1041 where transformacion_job is null
1042 and extraccion_fecha is not null;
1043
1044 while vCount > 0 loop
1045 select subestacion
1046 into vSubestacion
1047 from etl_chec_subestacion
1048 where transformacion_job is null
1049 and extraccion_fecha is not null
1050 and rownum = 1;
1051
1052 update etl_chec_subestacion
1053 set transformacion_job = pName || '_' || vSubestacion
1054 where subestacion = vSubestacion;
1055 commit;
1056
1057 PT_FLUJO_SUBESTACION(vSubestacion);
1058
1059 update etl_chec_subestacion
1060 set transformacion_fecha = sysdate
1061 where subestacion = vSubestacion;
1062 commit;
1063
1064 select count(1)
1065 into vCount
1066 from etl_chec_subestacion
1067 where transformacion_job is null
1068 and extraccion_fecha is not null;
1069 end loop;
1070 end;
1071
1072 procedure PT_TASK(pTasks in number) is
1073 vCount number;
1074 vJobNo pls_integer;
1075 begin
1076 for vCount in 1 .. pTasks loop
1077 dbms_job.submit(vJobNo,
1078 'begin etl_transformacion_chec.pt_paralelo(''TRS' ||
1079 vCount || '''); end;');
1080 dbms_output.put_line(vJobNo);
1081 commit;
1082 dbms_lock.sleep(10);
1083 end loop;
1084
1085 end;
1086
1087 procedure PT_CAMARA(pCircuito in VARCHAR2) is
1088 geom sdo_geometry;
1089
1090 vERROR VARCHAR2(80);
1091 vUSER VARCHAR2(100);
1092
1093 vCCOMUN T$CCOMUN%ROWTYPE;
1094 vCARREN T$CARRENDAMIENTO%ROWTYPE;
1095 vPROP T$CPROPIETARIO%ROWTYPE;
1096 vCONN T$CCONECTIVIDAD_ES%ROWTYPE;
1097 vECAMARA_AT T$ECAMARA_AT%ROWTYPE;
1098 vECAMARA_PT T$ECAMARA_PT%ROWTYPE;
1099 vNORMA T$NORMA%ROWTYPE;
1100
1101 fid number(10);
1102 fno number(5) := 17400;
1103 cid number(2);
1104 vCount number(5);
1105
1106 vTABLA_EXTRACION VARCHAR2(80) := 'X$CAMARA';
1107
1108 vTime timestamp := CURRENT_TIMESTAMP;
1109 vRegistros number(8) := 0;
1110
1111 begin
1112
1113 for c in (select * from x$camara) loop
1114
1115 select count(1)
1116 into vCount
1117 from x$conectividad
1118 where phnode = c.code
1119 and fparent = pCircuito;
1120
1121 if vCount = 0 then
1122 continue;
1123 end if;
1124
1125 select count(1)
1126 into vCount
1127 from etl_code2fid
1128 where code = c.code
1129 and g3e_fno = fno;
1130
1131 if vCount > 0 then
1132 select g3e_fid
1133 into fid
1134 from etl_code2fid
1135 where code = c.code
1136 and g3e_fno = fno
1137 and rownum = 1;
1138
1139 insert into ETL_CODE2FID
1140 values
1141 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
1142
1143 commit;
1144 continue;
1145 end if;
1146
1147 geom := ConvertPoint2Sigma(c.xpos, c.ypos, c.zpos);
1148
1149 fid := g3e_fid_seq.nextval;
1150
1151 --CCOMUN
1152 vCCOMUN := null;
1153 vCCOMUN.G3E_FNO := fno;
1154 vCCOMUN.G3E_CNO := 60;
1155 vCCOMUN.G3E_CID := 1;
1156 vCCOMUN.G3E_FID := fid;
1157 vCCOMUN.G3E_ID := CCOMUN_SEQ.NEXTVAL;
1158 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
1159 vCCOMUN.UBICACION := c.ADDRESS; --
1160 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
1161 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
1162 vCCOMUN.PROYECTO := c.PROJECT; --
1163 vCCOMUN.COOR_X := c.XPOS; --
1164 vCCOMUN.COOR_Y := c.YPOS; --
1165 vCCOMUN.COOR_Z := c.ZPOS;
1166 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
1167 c.code,
1168 pCircuito,
1169 vTABLA_EXTRACION); --
1170 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
1171 c.code,
1172 pCircuito,
1173 vTABLA_EXTRACION); --
1174 vCCOMUN.ESTADO := 'OPERACION'; --
1175 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
1176 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
1177 vCCOMUN.FECHA_COLOCACION := sysdate;
1178 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
1179
1180 vUSER := c.USER_;
1181
1182 vCCOMUN.CONTRATO_INSTALACION := null;
1183 vCCOMUN.TRABAJO_PROGRAMADO := null;
1184 vCCOMUN.TIPO_PROYECTO := null;
1185
1186 if instr(vUSER, '/') > 0 then
1187 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
1188 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
1189 if instr(vUSER, '/') > 0 then
1190 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
1191 1,
1192 instr(vUSER, '/') - 1);
1193 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
1194 instr(vUSER, '/') + 1);
1195 else
1196 vCCOMUN.CONTRATO_INSTALACION := null;
1197 vCCOMUN.TRABAJO_PROGRAMADO := null;
1198 vCCOMUN.TIPO_PROYECTO := null;
1199 insert into etl_transformacion_log
1200 values
1201 (vTABLA_EXTRACION,
1202 'T$CCOMUN',
1203 c.code,
1204 2,
1205 cErrorUser,
1206 pCircuito,
1207 sysdate);
1208 commit;
1209 end if;
1210 end if;
1211
1212 if c.POBLACION = 'U' then
1213 vCCOMUN.CLASIFICACION_MERCADO := 'URBANO';
1214 end if;
1215
1216 if c.POBLACION = 'R' then
1217 vCCOMUN.CLASIFICACION_MERCADO := 'RURAL';
1218 end if;
1219
1220 begin
1221 insert into T$CCOMUN values vCCOMUN;
1222 exception
1223 when others then
1224 vERROR := SUBSTR(SQLERRM, 1, 64);
1225 rollback;
1226 insert into etl_transformacion_log
1227 values
1228 (vTABLA_EXTRACION,
1229 'T$CCOMUN',
1230 c.code,
1231 1,
1232 vERROR,
1233 pCircuito,
1234 sysdate);
1235 commit;
1236 continue;
1237 end;
1238
1239 --ECAMARA_AT
1240 begin
1241 vECAMARA_AT := null;
1242
1243 DesgloseSubMVPHNODE(c.assembly,
1244 vECAMARA_AT.DIMENSIONES,
1245 vECAMARA_AT.CLA_CAMARA,
1246 vECAMARA_AT.CANTIDAD_DUCTOS,
1247 vECAMARA_AT.DIMENSION_DUCTO);
1248
1249 if vECAMARA_AT.CLA_CAMARA = 'P' then
1250 vECAMARA_AT.CLA_CAMARA := 'DE PASO';
1251 else
1252 vECAMARA_AT.CLA_CAMARA := 'DE EQUIPO';
1253 end if;
1254
1255 --vECAMARA_AT.NRO_CAMARA := c.CODE;
1256 vECAMARA_AT.NRO_CAMARA_V := c.CODE;
1257
1258 vECAMARA_AT.GRUPO := 'ESTRUCTURAS EYT';
1259
1260 vECAMARA_AT.G3E_FNO := fno;
1261 vECAMARA_AT.G3E_CNO := fno + 1;
1262 vECAMARA_AT.G3E_CID := 1;
1263 vECAMARA_AT.G3E_FID := fid;
1264 vECAMARA_AT.G3E_id := ECAMARA_AT_SEQ.NEXTVAL;
1265
1266 insert into T$ECAMARA_AT values vECAMARA_AT;
1267
1268 exception
1269 when assembly_fisico_invalido then
1270 rollback;
1271 insert into etl_transformacion_log
1272 values
1273 (vTABLA_EXTRACION,
1274 'T$ECAMARA_AT',
1275 c.code,
1276 1,
1277 cErrorAssemblyFisico || c.assembly,
1278 pCircuito,
1279 sysdate);
1280 commit;
1281 continue;
1282 when others then
1283 vERROR := SUBSTR(SQLERRM, 1, 64);
1284 rollback;
1285 insert into etl_transformacion_log
1286 values
1287 (vTABLA_EXTRACION,
1288 'T$ECAMARA_AT',
1289 c.code,
1290 1,
1291 vERROR,
1292 pCircuito,
1293 sysdate);
1294 commit;
1295 continue;
1296 end;
1297
1298 --ECAMARA_PT
1299 vECAMARA_PT := null;
1300 vECAMARA_PT.G3E_FNO := fno;
1301 vECAMARA_PT.G3E_CNO := fno + 10;
1302 vECAMARA_PT.G3E_CID := 1;
1303 vECAMARA_PT.G3E_FID := fid;
1304 vECAMARA_PT.G3E_ID := ECAMARA_PT_SEQ.NEXTVAL;
1305 vECAMARA_PT.G3E_GEOMETRY := geom;
1306
1307 insert into T$ECAMARA_PT values vECAMARA_PT;
1308
1309 --CCONECTIVIDAD_ES
1310 --vCONN
1311 vCONN := null;
1312 vCONN.G3E_FNO := fno;
1313 vCONN.G3E_CNO := 68;
1314 vCONN.G3E_CID := 1;
1315 vCONN.G3E_FID := fid;
1316 vCONN.G3E_ID := CCONECTIVIDAD_ES_SEQ.NEXTVAL;
1317 vCONN.EST_ESTABLE := 'CLOSED';
1318 vCONN.NODO1_ID := 0;
1319 vCONN.NODO2_ID := 0;
1320
1321 insert into T$CCONECTIVIDAD_ES values vCONN;
1322
1323 --CPROPIETARIO
1324 if c.owner in ('C', 'P') then
1325 vPROP := null;
1326 vPROP.PORCENTAJE_PROP_1 := 100;
1327
1328 if c.towner = 'C' and c.owner != 'CHEC' then
1329 insert into etl_transformacion_log
1330 values
1331 (vTABLA_EXTRACION,
1332 'T$CPROPIETARIO',
1333 c.code,
1334 2,
1335 cErrorPropietario,
1336 pCircuito,
1337 sysdate);
1338 commit;
1339 end if;
1340
1341 if c.towner = 'C' then
1342 vPROP.PROPIETARIO_1 := 'CHEC';
1343 elsif c.towner = 'P' then
1344 vPROP.PROPIETARIO_1 := 'PARTICULAR';
1345 vPROP.NOMBRE_PROP := c.owner;
1346 end if;
1347
1348 vPROP.G3E_FNO := fno;
1349 vPROP.G3E_CNO := 69;
1350 vPROP.G3E_CID := 1;
1351 vPROP.G3E_FID := fid;
1352 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
1353
1354 insert into T$CPROPIETARIO values vPROP;
1355
1356 end if;
1357
1358 --NORMAS NODOS ELETRICOS
1359 cid := 1;
1360 for ne in (select *
1361 from x$conectividad
1362 where phnode in (c.code, 'T_' || c.code)) loop
1363
1364 vNORMA := null;
1365
1366 vNORMA.G3E_FNO := fno;
1367 vNORMA.G3E_CNO := 70;
1368 vNORMA.G3E_CID := cid;
1369 vNORMA.G3E_FID := fid;
1370 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
1371 vNORMA.CIRCUITO := ne.fparent;
1372 vNORMA.NORMA := ne.assembly;
1373 vNORMA.CANTIDAD := 1;
1374
1375 insert into T$NORMA values vNORMA;
1376
1377 cid := cid + 1;
1378 end loop;
1379
1380 --CARRENDAMIENTO
1381 vCARREN := null;
1382 vCARREN.G3E_FNO := fno;
1383 vCARREN.G3E_CNO := 63;
1384 vCARREN.G3E_CID := 0;
1385 vCARREN.G3E_FID := fid;
1386
1387 for carren in (select * from x$arrendamiento where phnode = c.code) loop
1388 vCARREN.G3E_CID := vCARREN.G3E_CID + 1;
1389 vCARREN.G3E_ID := CARRENDAMIENTO_SEQ.NEXTVAL;
1390
1391 vCARREN.USO := carren.TYPE;
1392 vCARREN.ACTIVO := 'SI';
1393 vCARREN.OPERADOR := carren.COMPANY;
1394 --carren.cuaadrilla
1395 --carren.code
1396 --caren.height
1397
1398 insert into T$CARRENDAMIENTO values vCARREN;
1399
1400 end loop;
1401
1402 vRegistros := vRegistros + 1;
1403 insert into ETL_CODE2FID
1404 values
1405 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
1406 commit;
1407 end loop;
1408 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
1409 end;
1410
1411 procedure PT_TORRE_TRANSMISION(pCircuito in VARCHAR2) is
1412 geom sdo_geometry;
1413
1414 vERROR VARCHAR2(80);
1415 vUSER VARCHAR2(100);
1416
1417 vCCOMUN T$CCOMUN%ROWTYPE;
1418 vCARREN T$CARRENDAMIENTO%ROWTYPE;
1419 vPROP T$CPROPIETARIO%ROWTYPE;
1420 vETOR_TRM_AT T$ETOR_TRM_AT%ROWTYPE;
1421 vETOR_TRM_PT T$ETOR_TRM_PT%ROWTYPE;
1422 vNORMA T$NORMA%ROWTYPE;
1423
1424 vASSEMBLY_EL X$CONECTIVIDAD.ASSEMBLY%TYPE;
1425
1426 vAPOYOS NUMBER(2);
1427 vVIENTOP VARCHAR2(2);
1428 vVIENTOS NUMBER(2);
1429 vTIERRA VARCHAR2(2);
1430
1431 vCount number(2);
1432 cid number(2);
1433
1434 fid number(10);
1435 fno number(5) := 17000;
1436
1437 vTABLA_EXTRACION VARCHAR2(80) := 'X$TORRE_TRANSMISION';
1438
1439 vTime timestamp := CURRENT_TIMESTAMP;
1440 vRegistros number(8) := 0;
1441
1442 begin
1443
1444 for c in (select * from X$TORRE_TRANSMISION) loop
1445
1446 select count(1)
1447 into vCount
1448 from x$conectividad
1449 where phnode = c.code
1450 and fparent = pCircuito;
1451
1452 if vCount = 0 then
1453 continue;
1454 end if;
1455
1456 begin
1457 select g3e_fid
1458 into fid
1459 from etl_code2fid
1460 where code = c.code
1461 and g3e_fno = fno;
1462
1463 insert into ETL_CODE2FID
1464 values
1465 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
1466
1467 commit;
1468 continue;
1469 exception
1470 when others then
1471 null;
1472 end;
1473
1474 geom := ConvertPoint2Sigma(c.xpos, c.ypos, c.zpos);
1475
1476 fid := g3e_fid_seq.nextval;
1477
1478 --CCOMUN
1479 vCCOMUN := null;
1480 vCCOMUN.G3E_FNO := fno;
1481 vCCOMUN.G3E_CNO := 60;
1482 vCCOMUN.G3E_CID := 1;
1483 vCCOMUN.G3E_FID := fid;
1484 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
1485 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
1486 vCCOMUN.UBICACION := c.ADDRESS; --
1487 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
1488 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
1489 vCCOMUN.PROYECTO := c.PROJECT; --
1490 vCCOMUN.COOR_X := c.XPOS; --
1491 vCCOMUN.COOR_Y := c.YPOS; --
1492 vCCOMUN.COOR_Z := c.ZPOS;
1493 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
1494 c.code,
1495 pCircuito,
1496 vTABLA_EXTRACION); --
1497 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
1498 c.code,
1499 pCircuito,
1500 vTABLA_EXTRACION); --
1501 vCCOMUN.ESTADO := 'OPERACION'; --
1502 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
1503 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
1504 vCCOMUN.FECHA_COLOCACION := sysdate;
1505 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
1506
1507 vUSER := c.USER_;
1508
1509 vCCOMUN.CONTRATO_INSTALACION := null;
1510 vCCOMUN.TRABAJO_PROGRAMADO := null;
1511 vCCOMUN.TIPO_PROYECTO := null;
1512
1513 if instr(vUSER, '/') > 0 then
1514 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
1515 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
1516 if instr(vUSER, '/') > 0 then
1517 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
1518 1,
1519 instr(vUSER, '/') - 1);
1520 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
1521 instr(vUSER, '/') + 1);
1522 else
1523 vCCOMUN.CONTRATO_INSTALACION := null;
1524 vCCOMUN.TRABAJO_PROGRAMADO := null;
1525 vCCOMUN.TIPO_PROYECTO := null;
1526 insert into etl_transformacion_log
1527 values
1528 (vTABLA_EXTRACION,
1529 'T$CCOMUN',
1530 c.code,
1531 2,
1532 cErrorUser,
1533 pCircuito,
1534 sysdate);
1535 commit;
1536 end if;
1537 end if;
1538
1539 if c.POBLACION = 'U' then
1540 vCCOMUN.CLASIFICACION_MERCADO := 'URBANO';
1541 end if;
1542
1543 if c.POBLACION = 'R' then
1544 vCCOMUN.CLASIFICACION_MERCADO := 'RURAL';
1545 end if;
1546
1547 begin
1548 insert into T$CCOMUN values vCCOMUN;
1549 exception
1550 when others then
1551 vERROR := SUBSTR(SQLERRM, 1, 64);
1552 rollback;
1553 insert into etl_transformacion_log
1554 values
1555 (vTABLA_EXTRACION,
1556 'T$CCOMUN',
1557 c.code,
1558 1,
1559 vERROR,
1560 pCircuito,
1561 sysdate);
1562 commit;
1563 continue;
1564 end;
1565
1566 --ETOR_TRM_AT
1567 begin
1568 vETOR_TRM_AT := null;
1569 vETOR_TRM_AT.PROPIETARIO := 'CHEC';
1570 vETOR_TRM_AT.GRUPO := 'ESTRUCTURAS EYT';
1571
1572 DesgloseAerMVPHNODE(c.assembly,
1573 vETOR_TRM_AT.TIPO_TORRE,
1574 vAPOYOS,
1575 vETOR_TRM_AT.ALTURA_TORRE,
1576 vVIENTOP,
1577 vVIENTOS,
1578 vTIERRA);
1579
1580 begin
1581 select assembly
1582 into vASSEMBLY_EL
1583 from x$conectividad
1584 where phnode = c.code
1585 and rownum = 1;
1586 exception
1587 when others then
1588 rollback;
1589 insert into etl_transformacion_log
1590 values
1591 (vTABLA_EXTRACION,
1592 'T$ETOR_TRM_AT',
1593 c.code,
1594 1,
1595 cErrorAssemblyNotFound,
1596 pCircuito,
1597 sysdate);
1598 commit;
1599 continue;
1600 end;
1601
1602 /*
1603 select count(1)
1604 into vCount
1605 from etl_code2fid
1606 where code = substr(vASSEMBLY_EL, 6, 1);
1607
1608 if vCount = 0 then
1609 rollback;
1610 insert into etl_transformacion_log
1611 values
1612 (vTABLA_EXTRACION,
1613 'T$ETOR_TRM_AT',
1614 c.code,
1615 1,
1616 cErrorAssemblyEletrico || vASSEMBLY_EL,
1617 pCircuito,
1618 sysdate);
1619 commit;
1620 continue;
1621 end if;
1622 */
1623
1624 select valor_carga
1625 into vETOR_TRM_AT.CLASE_TORRE
1626 from etl_picklists
1627 where valor = substr(vASSEMBLY_EL, 6, 1)
1628 and categoria = 'MATERIAL APOYO';
1629
1630 vETOR_TRM_AT.G3E_FNO := fno;
1631 vETOR_TRM_AT.G3E_CNO := fno + 1;
1632 vETOR_TRM_AT.G3E_CID := 1;
1633 vETOR_TRM_AT.G3E_FID := fid;
1634 vETOR_TRM_AT.G3E_ID := ETOR_TRM_AT_SEQ.NEXTVAL;
1635
1636 insert into T$ETOR_TRM_AT values vETOR_TRM_AT;
1637
1638 exception
1639 when assembly_fisico_invalido then
1640 rollback;
1641 insert into etl_transformacion_log
1642 values
1643 (vTABLA_EXTRACION,
1644 'T$ETOR_TRM_AT',
1645 c.code,
1646 1,
1647 cErrorAssemblyFisico || c.assembly,
1648 pCircuito,
1649 sysdate);
1650 commit;
1651 continue;
1652 end;
1653
1654 --ETOR_TRM_PT
1655 vETOR_TRM_PT := null;
1656 vETOR_TRM_PT.G3E_FNO := fno;
1657 vETOR_TRM_PT.G3E_CNO := fno + 10;
1658 vETOR_TRM_PT.G3E_CID := 1;
1659 vETOR_TRM_PT.G3E_FID := fid;
1660 vETOR_TRM_PT.G3E_ID := ETOR_TRM_AT_SEQ.NEXTVAL;
1661 vETOR_TRM_PT.G3E_GEOMETRY := geom;
1662
1663 insert into T$ETOR_TRM_PT values vETOR_TRM_PT;
1664
1665 --CPROPIETARIO
1666 if c.owner in ('C', 'P') then
1667 vPROP := null;
1668 vPROP.PORCENTAJE_PROP_1 := 100;
1669
1670 if c.towner = 'C' and c.owner != 'CHEC' then
1671 insert into etl_transformacion_log
1672 values
1673 (vTABLA_EXTRACION,
1674 'T$CPROPIETARIO',
1675 c.code,
1676 2,
1677 cErrorPropietario,
1678 pCircuito,
1679 sysdate);
1680 commit;
1681 end if;
1682
1683 if c.towner = 'C' then
1684 vPROP.PROPIETARIO_1 := 'CHEC';
1685 elsif c.towner = 'P' then
1686 vPROP.PROPIETARIO_1 := 'PARTICULAR';
1687 vPROP.NOMBRE_PROP := c.owner;
1688 end if;
1689
1690 vPROP.G3E_FNO := fno;
1691 vPROP.G3E_CNO := 69;
1692 vPROP.G3E_CID := 1;
1693 vPROP.G3E_FID := fid;
1694 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
1695
1696 insert into T$CPROPIETARIO values vPROP;
1697
1698 end if;
1699
1700 cid := 1;
1701
1702 --NORMA (Apoyos)
1703 if vAPOYOS != '0' then
1704 vNORMA := null;
1705 begin
1706 select norma, cantidad, grupo
1707 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
1708 from etl_normas
1709 where tipo = 'APOYOS'
1710 and g3e_fno = fno
1711 and valor = vAPOYOS;
1712
1713 vNORMA.G3E_FNO := fno;
1714 vNORMA.G3E_CNO := 70;
1715 vNORMA.G3E_CID := cid;
1716 vNORMA.G3E_FID := fid;
1717 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
1718
1719 insert into T$NORMA values vNORMA;
1720
1721 cid := cid + 1;
1722 exception
1723 when others then
1724 rollback;
1725 insert into etl_transformacion_log
1726 values
1727 (vTABLA_EXTRACION,
1728 'T$NORMA',
1729 c.code,
1730 1,
1731 cErrorApoyos || c.assembly,
1732 pCircuito,
1733 sysdate);
1734 commit;
1735 continue;
1736 end;
1737 end if;
1738
1739 --NORMA (VIENTO PRIMARIO)
1740 if substr(vVIENTOP, 2, 1) != '0' then
1741 vNORMA := null;
1742 begin
1743 select norma, cantidad, grupo
1744 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
1745 from etl_normas
1746 where tipo = 'VIENTO PRIMARIO'
1747 and g3e_fno = fno
1748 and valor = vVIENTOP;
1749
1750 vNORMA.G3E_FNO := fno;
1751 vNORMA.G3E_CNO := 70;
1752 vNORMA.G3E_CID := cid;
1753 vNORMA.G3E_FID := fid;
1754 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
1755
1756 insert into T$NORMA values vNORMA;
1757
1758 cid := cid + 1;
1759 exception
1760 when others then
1761 rollback;
1762 insert into etl_transformacion_log
1763 values
1764 (vTABLA_EXTRACION,
1765 'T$NORMA',
1766 c.code,
1767 1,
1768 cErrorVientoPrimario || c.assembly,
1769 pCircuito,
1770 sysdate);
1771 commit;
1772 continue;
1773 end;
1774 end if;
1775
1776 --NORMA (VIENTO SECUNDARIO)
1777 if vVIENTOS != '0' then
1778 vNORMA := null;
1779 begin
1780 select norma, cantidad, grupo
1781 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
1782 from etl_normas
1783 where tipo = 'VIENTO SECUNDARIO'
1784 and g3e_fno = fno
1785 and valor = vVIENTOS;
1786
1787 vNORMA.G3E_FNO := fno;
1788 vNORMA.G3E_CNO := 70;
1789 vNORMA.G3E_CID := cid;
1790 vNORMA.G3E_FID := fid;
1791 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
1792
1793 insert into T$NORMA values vNORMA;
1794
1795 cid := cid + 1;
1796 exception
1797 when others then
1798 rollback;
1799 insert into etl_transformacion_log
1800 values
1801 (vTABLA_EXTRACION,
1802 'T$NORMA',
1803 c.code,
1804 1,
1805 cErrorVientoSecundario || c.assembly,
1806 pCircuito,
1807 sysdate);
1808 commit;
1809 continue;
1810 end;
1811 end if;
1812
1813 --NORMA (TIERRA)
1814 if vTIERRA = 'T' then
1815 vNORMA := null;
1816 begin
1817 select norma, cantidad, grupo
1818 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
1819 from etl_normas
1820 where tipo = 'TIERRA'
1821 and g3e_fno = fno
1822 and valor = vTIERRA;
1823
1824 vNORMA.G3E_FNO := fno;
1825 vNORMA.G3E_CNO := 70;
1826 vNORMA.G3E_CID := cid;
1827 vNORMA.G3E_FID := fid;
1828 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
1829
1830 insert into T$NORMA values vNORMA;
1831
1832 cid := cid + 1;
1833 exception
1834 when others then
1835 rollback;
1836 insert into etl_transformacion_log
1837 values
1838 (vTABLA_EXTRACION,
1839 'T$NORMA',
1840 c.code,
1841 1,
1842 cErrorTierra || c.assembly,
1843 pCircuito,
1844 sysdate);
1845 commit;
1846 continue;
1847 end;
1848 end if;
1849
1850 --CARRENDAMIENTO
1851 vCARREN := null;
1852 vCARREN.G3E_FNO := fno;
1853 vCARREN.G3E_CNO := 63;
1854 vCARREN.G3E_CID := 0;
1855 vCARREN.G3E_FID := fid;
1856
1857 for carren in (select *
1858 from x$arrendamiento
1859 where phnode = c.code
1860 or phnode = 'T_' || c.code) loop
1861 vCARREN.G3E_CID := vCARREN.G3E_CID + 1;
1862 vCARREN.G3E_ID := CARRENDAMIENTO_SEQ.NEXTVAL;
1863
1864 vCARREN.USO := carren.TYPE;
1865 vCARREN.ACTIVO := 'SI';
1866 vCARREN.OPERADOR := carren.COMPANY;
1867 --carren.cuaadrilla
1868 --carren.code
1869 --caren.height
1870
1871 insert into T$CARRENDAMIENTO values vCARREN;
1872
1873 end loop;
1874
1875 vRegistros := vRegistros + 1;
1876 insert into ETL_CODE2FID
1877 values
1878 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
1879
1880 commit;
1881 end loop;
1882 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
1883 end;
1884
1885 procedure PT_POSTE(pCircuito in VARCHAR2) is
1886 geom sdo_geometry;
1887
1888 vERROR VARCHAR2(80);
1889 vUSER VARCHAR2(100);
1890 vCOUNT NUMBER;
1891
1892 vCCOMUN T$CCOMUN%ROWTYPE;
1893 vPROP T$CPROPIETARIO%ROWTYPE;
1894 vEPOSTE_AT T$EPOSTE_AT%ROWTYPE;
1895 vEPOSTE_PT T$EPOSTE_PT%ROWTYPE;
1896 vCARREN T$CARRENDAMIENTO%ROWTYPE;
1897 vNORMA T$NORMA%ROWTYPE;
1898
1899 vAPOYOS NUMBER(2);
1900 vVIENTOP VARCHAR2(2);
1901 vVIENTOS NUMBER(2);
1902 vTIERRA VARCHAR2(2);
1903
1904 fid number(10);
1905 fno number(5) := 17100;
1906
1907 vTABLA_EXTRACION VARCHAR2(80) := 'X$POSTE';
1908
1909 cid number(2);
1910
1911 vTime timestamp := CURRENT_TIMESTAMP;
1912 vRegistros number(8) := 0;
1913
1914 begin
1915
1916 for c in (select * from x$poste) loop
1917
1918 select count(1)
1919 into vCount
1920 from x$conectividad
1921 where phnode = c.code
1922 and fparent = pCircuito;
1923
1924 if vCount = 0 then
1925 continue;
1926 end if;
1927
1928 begin
1929 select g3e_fid
1930 into fid
1931 from etl_code2fid
1932 where code = c.code
1933 and g3e_fno = fno;
1934
1935 insert into ETL_CODE2FID
1936 values
1937 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
1938
1939 commit;
1940 --se o registro ja foi processado somene indicar que ele pertence a este circuito também
1941
1942 continue;
1943 exception
1944 when others then
1945 null;
1946 end;
1947
1948 geom := ConvertPoint2Sigma(c.xpos, c.ypos, c.zpos);
1949
1950 fid := g3e_fid_seq.nextval;
1951
1952 --CCOMUN
1953 vCCOMUN := null;
1954 vCCOMUN.G3E_FNO := fno;
1955 vCCOMUN.G3E_CNO := 60;
1956 vCCOMUN.G3E_CID := 1;
1957 vCCOMUN.G3E_FID := fid;
1958 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
1959 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
1960 vCCOMUN.UBICACION := c.ADDRESS; --
1961 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
1962 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
1963 vCCOMUN.PROYECTO := c.PROJECT; --
1964 vCCOMUN.COOR_X := c.XPOS; --
1965 vCCOMUN.COOR_Y := c.YPOS; --
1966 vCCOMUN.COOR_Z := c.ZPOS;
1967 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
1968 c.code,
1969 pCircuito,
1970 vTABLA_EXTRACION); --
1971 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
1972 c.code,
1973 pCircuito,
1974 vTABLA_EXTRACION); --
1975 vCCOMUN.ESTADO := 'OPERACION'; --
1976 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
1977 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
1978 vCCOMUN.FECHA_COLOCACION := sysdate;
1979 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
1980
1981 vUSER := c.USER_;
1982
1983 vCCOMUN.CONTRATO_INSTALACION := null;
1984 vCCOMUN.TRABAJO_PROGRAMADO := null;
1985 vCCOMUN.TIPO_PROYECTO := null;
1986
1987 if instr(vUSER, '/') > 0 then
1988 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
1989 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
1990 if instr(vUSER, '/') > 0 then
1991 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
1992 1,
1993 instr(vUSER, '/') - 1);
1994 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
1995 instr(vUSER, '/') + 1);
1996 else
1997 vCCOMUN.CONTRATO_INSTALACION := null;
1998 vCCOMUN.TRABAJO_PROGRAMADO := null;
1999 vCCOMUN.TIPO_PROYECTO := null;
2000 insert into etl_transformacion_log
2001 values
2002 (vTABLA_EXTRACION,
2003 'T$CCOMUN',
2004 c.code,
2005 2,
2006 cErrorUser,
2007 pCircuito,
2008 sysdate);
2009 commit;
2010 end if;
2011 end if;
2012
2013 if c.POBLACION = 'U' then
2014 vCCOMUN.CLASIFICACION_MERCADO := 'URBANO';
2015 end if;
2016
2017 if c.POBLACION = 'R' then
2018 vCCOMUN.CLASIFICACION_MERCADO := 'RURAL';
2019 end if;
2020
2021 begin
2022 insert into T$CCOMUN values vCCOMUN;
2023 exception
2024 when others then
2025 vERROR := SUBSTR(SQLERRM, 1, 64);
2026 rollback;
2027 insert into etl_transformacion_log
2028 values
2029 (vTABLA_EXTRACION,
2030 'T$CCOMUN',
2031 c.code,
2032 1,
2033 vERROR,
2034 pCircuito,
2035 sysdate);
2036 commit;
2037 continue;
2038 end;
2039
2040 --EPOSTE_AT
2041 begin
2042 vEPOSTE_AT := null;
2043 vEPOSTE_AT.CODIGO := c.CODE;
2044 vEPOSTE_AT.GRUPO := 'ESTRUCTURAS EYT';
2045 --vEPOSTE_AT.PROPIETARIO := c.owner;
2046
2047 if c.assembly = 'PORTICO' then
2048 vEPOSTE_AT.ALTURA := 12;
2049 --vEPOSTE_AT.CLASE := 'PORTICO';
2050 vEPOSTE_AT.MATERIAL := 'METALICO';
2051 vAPOYOS := 0;
2052 vVIENTOP := 0;
2053 vVIENTOS := 0;
2054 vTIERRA := 0;
2055 elsif c.assembly = 'FACHADA' then
2056 vEPOSTE_AT.TIPO_INSTALACION := 'FACHADA';
2057 vEPOSTE_AT.ALTURA := 4;
2058 vEPOSTE_AT.CLASE := 'PERCHA';
2059 vEPOSTE_AT.MATERIAL := 'METALICO';
2060 vAPOYOS := 0;
2061 vVIENTOP := 0;
2062 vVIENTOS := 0;
2063 vTIERRA := 0;
2064 else
2065
2066 DesgloseAerMVPHNODE(c.assembly,
2067 vEPOSTE_AT.CLASE,
2068 vAPOYOS,
2069 vEPOSTE_AT.ALTURA,
2070 vVIENTOP,
2071 vVIENTOS,
2072 vTIERRA);
2073
2074 vEPOSTE_AT.MATERIAL := DecodeMaterialPoste(vEPOSTE_AT.CLASE);
2075
2076 end if;
2077
2078 vEPOSTE_AT.G3E_FNO := fno;
2079 vEPOSTE_AT.G3E_CNO := fno + 1;
2080 vEPOSTE_AT.G3E_CID := 1;
2081 vEPOSTE_AT.G3E_FID := fid;
2082 vEPOSTE_AT.G3E_ID := EPOSTE_AT_SEQ.NEXTVAL;
2083
2084 insert into T$EPOSTE_AT values vEPOSTE_AT;
2085
2086 exception
2087 when assembly_fisico_invalido then
2088 rollback;
2089 insert into etl_transformacion_log
2090 values
2091 (vTABLA_EXTRACION,
2092 'T$EPOSTE_AT',
2093 c.code,
2094 1,
2095 cErrorAssemblyFisico || c.assembly,
2096 pCircuito,
2097 sysdate);
2098 commit;
2099 continue;
2100 end;
2101
2102 --EPOSTE
2103 vEPOSTE_PT.G3E_FNO := fno;
2104 vEPOSTE_PT.G3E_CNO := fno + 10;
2105 vEPOSTE_PT.G3E_CID := 1;
2106 vEPOSTE_PT.G3E_FID := fid;
2107 vEPOSTE_PT.G3E_ID := EPOSTE_PT_SEQ.NEXTVAL;
2108 vEPOSTE_PT.G3E_GEOMETRY := geom;
2109
2110 insert into T$EPOSTE_PT values vEPOSTE_PT;
2111
2112 --CPROPIETARIO
2113 if c.towner in ('C', 'P') then
2114 vPROP := null;
2115 vPROP.PORCENTAJE_PROP_1 := 100;
2116
2117 if c.towner = 'C' and c.owner != 'CHEC' then
2118 insert into etl_transformacion_log
2119 values
2120 (vTABLA_EXTRACION,
2121 'T$CPROPIETARIO',
2122 c.code,
2123 2,
2124 cErrorPropietario,
2125 pCircuito,
2126 sysdate);
2127 commit;
2128 end if;
2129
2130 if c.towner = 'C' then
2131 vPROP.PROPIETARIO_1 := 'CHEC';
2132 elsif c.towner = 'P' then
2133 vPROP.PROPIETARIO_1 := 'PARTICULAR';
2134 vPROP.NOMBRE_PROP := c.owner;
2135 end if;
2136
2137 vPROP.G3E_FNO := fno;
2138 vPROP.G3E_CNO := 69;
2139 vPROP.G3E_CID := 1;
2140 vPROP.G3E_FID := fid;
2141 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
2142
2143 insert into T$CPROPIETARIO values vPROP;
2144 else
2145 rollback;
2146 insert into etl_transformacion_log
2147 values
2148 (vTABLA_EXTRACION,
2149 'T$EPOSTE_AT',
2150 c.code,
2151 1,
2152 cErrorSinPropietario,
2153 pCircuito,
2154 sysdate);
2155 commit;
2156 continue;
2157
2158 end if;
2159
2160 cid := 1;
2161
2162 --NORMA (Apoyos)
2163 if vAPOYOS != '0' then
2164 vNORMA := null;
2165 begin
2166 select norma, cantidad, grupo
2167 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
2168 from etl_normas
2169 where tipo = 'APOYOS'
2170 and g3e_fno = fno
2171 and valor = vAPOYOS;
2172
2173 vNORMA.G3E_FNO := fno;
2174 vNORMA.G3E_CNO := 70;
2175 vNORMA.G3E_CID := cid;
2176 vNORMA.G3E_FID := fid;
2177 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
2178 vNORMA.CIRCUITO := pCircuito;
2179
2180 insert into T$NORMA values vNORMA;
2181
2182 cid := cid + 1;
2183 exception
2184 when others then
2185 rollback;
2186 insert into etl_transformacion_log
2187 values
2188 (vTABLA_EXTRACION,
2189 'T$NORMA',
2190 c.code,
2191 1,
2192 cErrorApoyos || c.assembly,
2193 pCircuito,
2194 sysdate);
2195 commit;
2196 continue;
2197 end;
2198 end if;
2199
2200 --NORMA (VIENTO PRIMARIO)
2201 if substr(vVIENTOP, 2, 1) != '0' then
2202 vNORMA := null;
2203 begin
2204 select norma, cantidad, grupo
2205 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
2206 from etl_normas
2207 where tipo = 'VIENTO PRIMARIO'
2208 and g3e_fno = fno
2209 and valor = vVIENTOP;
2210
2211 vNORMA.G3E_FNO := fno;
2212 vNORMA.G3E_CNO := 70;
2213 vNORMA.G3E_CID := cid;
2214 vNORMA.G3E_FID := fid;
2215 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
2216 vNORMA.CIRCUITO := pCircuito;
2217 insert into T$NORMA values vNORMA;
2218
2219 cid := cid + 1;
2220 exception
2221 when others then
2222 rollback;
2223 insert into etl_transformacion_log
2224 values
2225 (vTABLA_EXTRACION,
2226 'T$NORMA',
2227 c.code,
2228 1,
2229 cErrorVientoPrimario || c.assembly,
2230 pCircuito,
2231 sysdate);
2232 commit;
2233 continue;
2234 end;
2235 end if;
2236
2237 --NORMA (VIENTO SECUNDARIO)
2238 if vVIENTOS != '0' then
2239 vNORMA := null;
2240 begin
2241 select norma, cantidad, grupo
2242 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
2243 from etl_normas
2244 where tipo = 'VIENTO SECUNDARIO'
2245 and g3e_fno = fno
2246 and valor = vVIENTOS;
2247
2248 vNORMA.G3E_FNO := fno;
2249 vNORMA.G3E_CNO := 70;
2250 vNORMA.G3E_CID := cid;
2251 vNORMA.G3E_FID := fid;
2252 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
2253 vNORMA.CIRCUITO := pCircuito;
2254 insert into T$NORMA values vNORMA;
2255
2256 cid := cid + 1;
2257 exception
2258 when others then
2259 rollback;
2260 insert into etl_transformacion_log
2261 values
2262 (vTABLA_EXTRACION,
2263 'T$NORMA',
2264 c.code,
2265 1,
2266 cErrorVientoSecundario || c.assembly,
2267 pCircuito,
2268 sysdate);
2269 commit;
2270 continue;
2271 end;
2272 end if;
2273
2274 --NORMA (TIERRA)
2275 if vTIERRA = 'T' then
2276 vNORMA := null;
2277 begin
2278 select norma, cantidad, grupo
2279 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
2280 from etl_normas
2281 where tipo = 'TIERRA'
2282 and g3e_fno = fno
2283 and valor = vTIERRA;
2284
2285 vNORMA.G3E_FNO := fno;
2286 vNORMA.G3E_CNO := 70;
2287 vNORMA.G3E_CID := cid;
2288 vNORMA.G3E_FID := fid;
2289 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
2290 vNORMA.CIRCUITO := pCircuito;
2291 insert into T$NORMA values vNORMA;
2292
2293 cid := cid + 1;
2294 exception
2295 when others then
2296 rollback;
2297 insert into etl_transformacion_log
2298 values
2299 (vTABLA_EXTRACION,
2300 'T$NORMA',
2301 c.code,
2302 1,
2303 cErrorTierra || c.assembly,
2304 pCircuito,
2305 sysdate);
2306 commit;
2307 continue;
2308 end;
2309 end if;
2310
2311 --NORMAS NODOS ELETRICOS
2312 for ne in (select *
2313 from x$conectividad
2314 where phnode in (c.code, 'T_' || c.code)) loop
2315 vNORMA := null;
2316
2317 vNORMA.G3E_FNO := fno;
2318 vNORMA.G3E_CNO := 70;
2319 vNORMA.G3E_CID := cid;
2320 vNORMA.G3E_FID := fid;
2321 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
2322 vNORMA.CIRCUITO := ne.fparent;
2323 vNORMA.NORMA := ne.assembly;
2324 vNORMA.CANTIDAD := 1;
2325
2326 insert into T$NORMA values vNORMA;
2327
2328 cid := cid + 1;
2329 end loop;
2330
2331 --CARRENDAMIENTO
2332 vCARREN := null;
2333 vCARREN.G3E_FNO := fno;
2334 vCARREN.G3E_CNO := 63;
2335 vCARREN.G3E_CID := 0;
2336 vCARREN.G3E_FID := fid;
2337
2338 for carren in (select *
2339 from x$arrendamiento
2340 where phnode = c.code
2341 or phnode = 'T_' || c.code) loop
2342 vCARREN.G3E_CID := vCARREN.G3E_CID + 1;
2343 vCARREN.G3E_ID := CARRENDAMIENTO_SEQ.NEXTVAL;
2344
2345 vCARREN.USO := carren.TYPE;
2346 vCARREN.ACTIVO := 'SI';
2347 vCARREN.OPERADOR := carren.COMPANY;
2348 --carren.cuaadrilla
2349 --carren.code
2350 --caren.height
2351
2352 insert into T$CARRENDAMIENTO values vCARREN;
2353
2354 end loop;
2355
2356 vRegistros := vRegistros + 1;
2357 insert into ETL_CODE2FID
2358 values
2359 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
2360
2361 commit;
2362 end loop;
2363 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
2364 end;
2365
2366 procedure PT_NODO_CONDUCTOR(pCircuito in VARCHAR2) is
2367 geom sdo_geometry;
2368 vERROR VARCHAR2(80);
2369 vUSER VARCHAR2(100);
2370
2371 vCCOMUN T$CCOMUN%ROWTYPE;
2372 vCARREN T$CARRENDAMIENTO%ROWTYPE;
2373 vPROP T$CPROPIETARIO%ROWTYPE;
2374 vENOD_CON_AT T$ENOD_CON_AT%ROWTYPE;
2375 vENOD_CON_PT T$ENOD_CON_PT%ROWTYPE;
2376 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
2377 vELNODE X$CONECTIVIDAD%ROWTYPE;
2378
2379 fid number(10);
2380 fno number(5) := 19100;
2381
2382 vTABLA_EXTRACION VARCHAR2(80) := 'X$NODO_CONDUCTOR';
2383
2384 vTime timestamp := CURRENT_TIMESTAMP;
2385 vRegistros number(8) := 0;
2386
2387 begin
2388
2389 for c in (select p.*
2390 from x$nodo_conductor p
2391 inner join x$conectividad c
2392 on c.phnode = p.code
2393 where c.fparent = pCircuito) loop
2394
2395 geom := ConvertPoint2Sigma(c.xpos, c.ypos, c.zpos);
2396
2397 fid := g3e_fid_seq.nextval;
2398
2399 --CCOMUN
2400 vCCOMUN := null;
2401 vCCOMUN.G3E_FNO := fno;
2402 vCCOMUN.G3E_CNO := 60;
2403 vCCOMUN.G3E_CID := 1;
2404 vCCOMUN.G3E_FID := fid;
2405 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
2406 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
2407 vCCOMUN.UBICACION := c.ADDRESS; --
2408 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
2409 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
2410 vCCOMUN.PROYECTO := c.PROJECT; --
2411 vCCOMUN.COOR_X := c.XPOS; --
2412 vCCOMUN.COOR_Y := c.YPOS; --
2413 vCCOMUN.COOR_Z := c.ZPOS;
2414 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
2415 c.code,
2416 pCircuito,
2417 vTABLA_EXTRACION); --
2418
2419 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
2420 c.code,
2421 pCircuito,
2422 vTABLA_EXTRACION); --
2423 vCCOMUN.ESTADO := 'OPERACION'; --
2424 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
2425 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
2426 vCCOMUN.FECHA_COLOCACION := sysdate;
2427 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
2428
2429 vUSER := c.USER_;
2430
2431 vCCOMUN.CONTRATO_INSTALACION := null;
2432 vCCOMUN.TRABAJO_PROGRAMADO := null;
2433 vCCOMUN.TIPO_PROYECTO := null;
2434
2435 if instr(vUSER, '/') > 0 then
2436 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
2437 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
2438 if instr(vUSER, '/') > 0 then
2439 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
2440 1,
2441 instr(vUSER, '/') - 1);
2442 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
2443 instr(vUSER, '/') + 1);
2444 else
2445 vCCOMUN.CONTRATO_INSTALACION := null;
2446 vCCOMUN.TRABAJO_PROGRAMADO := null;
2447 vCCOMUN.TIPO_PROYECTO := null;
2448 insert into etl_transformacion_log
2449 values
2450 (vTABLA_EXTRACION,
2451 'T$CCOMUN',
2452 c.code,
2453 2,
2454 cErrorUser,
2455 pCircuito,
2456 sysdate);
2457 commit;
2458 end if;
2459 end if;
2460
2461 if c.POBLACION = 'U' then
2462 vCCOMUN.CLASIFICACION_MERCADO := 'URBANO';
2463 end if;
2464
2465 if c.POBLACION = 'R' then
2466 vCCOMUN.CLASIFICACION_MERCADO := 'RURAL';
2467 end if;
2468
2469 begin
2470 insert into T$CCOMUN values vCCOMUN;
2471 exception
2472 when others then
2473 vERROR := SUBSTR(SQLERRM, 1, 64);
2474 rollback;
2475 insert into etl_transformacion_log
2476 values
2477 (vTABLA_EXTRACION,
2478 'T$CCOMUN',
2479 c.code,
2480 1,
2481 vERROR,
2482 pCircuito,
2483 sysdate);
2484 commit;
2485 continue;
2486 end;
2487
2488 --ENOD_CON_AT
2489 begin
2490 vENOD_CON_AT := null;
2491
2492 vENOD_CON_AT.CODIGO := c.CODE;
2493 vENOD_CON_AT.TIPO_EMPALME := 'GOTERA';
2494
2495 vENOD_CON_AT.G3E_FNO := fno;
2496 vENOD_CON_AT.G3E_CNO := fno + 1;
2497 vENOD_CON_AT.G3E_CID := 1;
2498 vENOD_CON_AT.G3E_FID := fid;
2499 vENOD_CON_AT.G3E_ID := ENOD_CON_AT_SEQ.NEXTVAL;
2500
2501 insert into T$ENOD_CON_AT values vENOD_CON_AT;
2502
2503 exception
2504 when others then
2505 rollback;
2506 insert into etl_transformacion_log
2507 values
2508 (vTABLA_EXTRACION,
2509 'T$ENOD_CON_AT',
2510 c.code,
2511 1,
2512 cErrorGeneral,
2513 pCircuito,
2514 sysdate);
2515 commit;
2516 continue;
2517 end;
2518
2519 --ENOD_CON_PT
2520 vENOD_CON_PT := null;
2521 vENOD_CON_PT.G3E_FNO := fno;
2522 vENOD_CON_PT.G3E_CNO := fno + 10;
2523 vENOD_CON_PT.G3E_CID := 1;
2524 vENOD_CON_PT.G3E_FID := fid;
2525 vENOD_CON_PT.G3E_ID := ENOD_CON_PT_SEQ.NEXTVAL;
2526 vENOD_CON_PT.G3E_GEOMETRY := geom;
2527
2528 insert into T$ENOD_CON_PT values vENOD_CON_PT;
2529
2530 --CPROPIETARIO
2531 if c.owner in ('C', 'P') then
2532 vPROP := null;
2533 vPROP.PORCENTAJE_PROP_1 := 100;
2534
2535 if c.towner = 'C' and c.owner != 'CHEC' then
2536 insert into etl_transformacion_log
2537 values
2538 (vTABLA_EXTRACION,
2539 'T$CPROPIETARIO',
2540 c.code,
2541 2,
2542 cErrorPropietario,
2543 pCircuito,
2544 sysdate);
2545 commit;
2546 end if;
2547
2548 if c.towner = 'C' then
2549 vPROP.PROPIETARIO_1 := 'CHEC';
2550 elsif c.towner = 'P' then
2551 vPROP.PROPIETARIO_1 := 'PARTICULAR';
2552 vPROP.NOMBRE_PROP := c.owner;
2553 end if;
2554
2555 vPROP.G3E_FNO := fno;
2556 vPROP.G3E_CNO := 69;
2557 vPROP.G3E_CID := 1;
2558 vPROP.G3E_FID := fid;
2559 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
2560
2561 insert into T$CPROPIETARIO values vPROP;
2562
2563 end if;
2564
2565 --CONNECTIVIDAD
2566 begin
2567 select *
2568 into vELNODE
2569 from X$CONECTIVIDAD
2570 where phnode = c.code
2571 and fparent = pCircuito;
2572 exception
2573 when others then
2574 rollback;
2575 insert into etl_transformacion_log
2576 values
2577 (vTABLA_EXTRACION,
2578 'T$CONNECTIVIDAD',
2579 c.code,
2580 1,
2581 vERROR,
2582 pCircuito,
2583 sysdate);
2584 commit;
2585 continue;
2586 end;
2587 vCONN := null;
2588 vCONN.FASES := DecodeFase(vELNODE.PHASES);
2589
2590 vCONN.EST_ESTABLE := 'CLOSED';
2591 vCONN.EST_OPERATIVO := 'CLOSED';
2592 vCONN.ESTADO := 'OPERACION';
2593
2594 vCONN.CIRCUITO := vELNODE.FPARENT;
2595
2596 vCONN.TENSION := to_char(vELNODE.KVNOM);
2597 vCONN.TIPO_RED := DecodeTipoRed(vELNODE.KVNOM);
2598 vCONN.NODO1_ID := null;
2599 --vCONN.NODO_TRANSFORM := vELNODE.TPARENT;
2600 vCONN.NODO_TRANSFORM_V := vELNODE.TPARENT;
2601
2602 select nodo
2603 into vCONN.NODO1_ID
2604 from (select connt.nodo1_id nodo
2605 from x$conectividad conn
2606 inner join x$conductor_primario cp
2607 on cp.elnode1 = conn.code
2608 inner join etl_code2fid etl
2609 on etl.code = cp.code
2610 inner join t$cconectividad_e connt
2611 on connt.g3e_fid = etl.g3e_fid
2612 where connt.g3e_fno = 19000
2613 and conn.phnode = c.code
2614 union
2615 select connt.nodo2_id nodo
2616 from x$conectividad conn
2617 inner join x$conductor_primario cp
2618 on cp.elnode2 = conn.code
2619 inner join etl_code2fid etl
2620 on etl.code = cp.code
2621 inner join t$cconectividad_e connt
2622 on connt.g3e_fid = etl.g3e_fid
2623 where connt.g3e_fno = 19000
2624 and conn.phnode = c.code
2625 union
2626 select connt.nodo1_id nodo
2627 from x$conectividad conn
2628 inner join x$conductor_secundario cp
2629 on cp.elnode1 = conn.code
2630 inner join etl_code2fid etl
2631 on etl.code = cp.code
2632 inner join t$cconectividad_e connt
2633 on connt.g3e_fid = etl.g3e_fid
2634 where connt.g3e_fno = 21200
2635 and conn.phnode = c.code
2636 union
2637 select connt.nodo2_id nodo
2638 from x$conectividad conn
2639 inner join x$conductor_secundario cp
2640 on cp.elnode2 = conn.code
2641 inner join etl_code2fid etl
2642 on etl.code = cp.code
2643 inner join t$cconectividad_e connt
2644 on connt.g3e_fid = etl.g3e_fid
2645 where connt.g3e_fno = 21200
2646 and conn.phnode = c.code)
2647 where rownum = 1;
2648
2649 if vCONN.NODO1_ID is null then
2650 select nodo
2651 into vCONN.NODO1_ID
2652 from (select connt.nodo1_id nodo
2653 from x$conectividad conn
2654 inner join x$conductor_transmision cp
2655 on cp.elnode1 = conn.code
2656 inner join etl_code2fid etl
2657 on etl.code = cp.code
2658 inner join t$cconectividad_e connt
2659 on connt.g3e_fid = etl.g3e_fid
2660 where connt.g3e_fno = 18900
2661 and conn.phnode = c.code
2662 union
2663 select connt.nodo2_id nodo
2664 from x$conectividad conn
2665 inner join x$conductor_transmision cp
2666 on cp.elnode2 = conn.code
2667 inner join etl_code2fid etl
2668 on etl.code = cp.code
2669 inner join t$cconectividad_e connt
2670 on connt.g3e_fid = etl.g3e_fid
2671 where connt.g3e_fno = 18900
2672 and conn.phnode = c.code)
2673 where rownum = 1;
2674 end if;
2675
2676 if vCONN.NODO1_ID is null then
2677 vCONN.NODO1_ID := 0;
2678 end if;
2679
2680 vCONN.NODO2_ID := 0;
2681
2682 vCONN.G3E_FNO := fno;
2683 vCONN.G3E_CNO := 61;
2684 vCONN.G3E_CID := 1;
2685 vCONN.G3E_FID := fid;
2686 vCONN.SUBESTACION := substr(pCircuito, 1, 3);
2687 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
2688
2689 insert into T$CCONECTIVIDAD_E values vCONN;
2690
2691 --CARRENDAMIENTO
2692 vCARREN := null;
2693 vCARREN.G3E_FNO := fno;
2694 vCARREN.G3E_CNO := 63;
2695 vCARREN.G3E_CID := 0;
2696 vCARREN.G3E_FID := fid;
2697
2698 for carren in (select * from x$arrendamiento where phnode = c.code) loop
2699 vCARREN.G3E_CID := vCARREN.G3E_CID + 1;
2700 vCARREN.G3E_ID := CARRENDAMIENTO_SEQ.NEXTVAL;
2701
2702 vCARREN.USO := carren.TYPE;
2703 vCARREN.ACTIVO := 'SI';
2704 vCARREN.OPERADOR := carren.COMPANY;
2705 --carren.cuaadrilla
2706 --carren.code
2707 --caren.height
2708
2709 insert into T$CARRENDAMIENTO values vCARREN;
2710
2711 end loop;
2712
2713 vRegistros := vRegistros + 1;
2714 insert into ETL_CODE2FID
2715 values
2716 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
2717
2718 commit;
2719 end loop;
2720 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
2721 end;
2722
2723 procedure PT_AISLADERO(pCircuito in VARCHAR2) is
2724 geom sdo_geometry;
2725 geomL sdo_geometry;
2726
2727 vERROR VARCHAR2(80);
2728 vUSER VARCHAR2(100);
2729
2730 vCCOMUN T$CCOMUN%ROWTYPE;
2731
2732 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
2733 vEAISLADE_PT T$EAISLADE_PT%ROWTYPE;
2734 vEAISLADE_AT T$EAISLADE_AT%ROWTYPE;
2735 vPROP T$CPROPIETARIO%ROWTYPE;
2736
2737 vCONDU X$CONDUCTOR_PRIMARIO%ROWTYPE;
2738 vBearing NUMBER;
2739
2740 fid number(10);
2741 fno number(5) := 19300;
2742 fidConduct number(10);
2743 nodePos number(2);
2744
2745 vTABLA_EXTRACION VARCHAR2(80) := 'X$AILADERO';
2746
2747 vTime timestamp := CURRENT_TIMESTAMP;
2748 vRegistros number(8) := 0;
2749
2750 begin
2751
2752 for c in (select * from x$aisladero where fparent = pCircuito) loop
2753
2754 begin
2755 vBearing := 0;
2756 select *
2757 into vCONDU
2758 from X$CONDUCTOR_PRIMARIO
2759 where code = c.linesectio;
2760
2761 geomL := ConvertLine2Sigma(vCONDU.xpos1,
2762 vCONDU.ypos1,
2763 0,
2764 vCONDU.xpos2,
2765 vCONDU.ypos2,
2766 0);
2767
2768 vBearing := CalcularBearing(geomL);
2769 exception
2770 when others then
2771 null;
2772 end;
2773
2774 geom := ConvertPoint2Sigma(c.xpos, c.ypos, 0, vBearing);
2775
2776 fid := g3e_fid_seq.nextval;
2777
2778 --CCOMUN
2779 vCCOMUN := null;
2780 vCCOMUN.G3E_FNO := fno;
2781 vCCOMUN.G3E_CNO := 60;
2782 vCCOMUN.G3E_CID := 1;
2783 vCCOMUN.G3E_FID := fid;
2784 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
2785 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
2786 vCCOMUN.UBICACION := c.ADDRESS; --
2787 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
2788 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
2789 vCCOMUN.PROYECTO := c.PROJECT; --
2790 vCCOMUN.COOR_X := c.XPOS; --
2791 vCCOMUN.COOR_Y := c.YPOS; --
2792 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
2793 c.code,
2794 pCircuito,
2795 vTABLA_EXTRACION); --
2796 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
2797 c.code,
2798 pCircuito,
2799 vTABLA_EXTRACION); --
2800 vCCOMUN.ESTADO := 'OPERACION'; --
2801 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
2802 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
2803 vCCOMUN.FECHA_COLOCACION := sysdate;
2804 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
2805
2806 vUSER := c.USER_;
2807
2808 vCCOMUN.CONTRATO_INSTALACION := null;
2809 vCCOMUN.TRABAJO_PROGRAMADO := null;
2810 vCCOMUN.TIPO_PROYECTO := null;
2811
2812 if instr(vUSER, '/') > 0 then
2813 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
2814 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
2815 if instr(vUSER, '/') > 0 then
2816 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
2817 1,
2818 instr(vUSER, '/') - 1);
2819 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
2820 instr(vUSER, '/') + 1);
2821 else
2822 vCCOMUN.CONTRATO_INSTALACION := null;
2823 vCCOMUN.TRABAJO_PROGRAMADO := null;
2824 vCCOMUN.TIPO_PROYECTO := null;
2825 insert into etl_transformacion_log
2826 values
2827 (vTABLA_EXTRACION,
2828 'T$CCOMUN',
2829 c.code,
2830 2,
2831 cErrorUser,
2832 pCircuito,
2833 sysdate);
2834 commit;
2835 end if;
2836 end if;
2837
2838 begin
2839 insert into T$CCOMUN values vCCOMUN;
2840 exception
2841 when others then
2842 vERROR := SUBSTR(SQLERRM, 1, 64);
2843 rollback;
2844 insert into etl_transformacion_log
2845 values
2846 (vTABLA_EXTRACION,
2847 'T$CCOMUN',
2848 c.code,
2849 1,
2850 vERROR,
2851 pCircuito,
2852 sysdate);
2853 commit;
2854 continue;
2855 end;
2856
2857 --EAISLADE_AT
2858 begin
2859 vEAISLADE_AT := null;
2860 vEAISLADE_AT.CODIGO := c.CODE;
2861 vEAISLADE_AT.FABRICANTE := c.MAKER;
2862
2863 case c.ASSEMBLY
2864 when '1CC' then
2865 vEAISLADE_AT.TIPO_AISLADERO := 'NORMAL';
2866 when '2CC' then
2867 vEAISLADE_AT.TIPO_AISLADERO := 'CAJA VELA';
2868 when '3CC' then
2869 vEAISLADE_AT.TIPO_AISLADERO := 'CAJA VELA';
2870 when 'CR' then
2871 vEAISLADE_AT.TIPO_AISLADERO := 'CON CAMERA ROMPEARCO';
2872 when '2CR' then
2873 vEAISLADE_AT.TIPO_AISLADERO := 'CON CAMERA ROMPEARCO';
2874 when '3CR' then
2875 vEAISLADE_AT.TIPO_AISLADERO := 'CON CAMERA ROMPEARCO';
2876 when 'ER' then
2877 vEAISLADE_AT.TIPO_AISLADERO := 'ELETRONICO ROMPEARCO';
2878 when '3ER' then
2879 vEAISLADE_AT.TIPO_AISLADERO := 'ELETRONICO ROMPEARCO';
2880 when 'EL' then
2881 vEAISLADE_AT.TIPO_AISLADERO := 'ELETRONICO';
2882 when 'CFR' then
2883 vEAISLADE_AT.TIPO_AISLADERO := 'REPETICION';
2884 when '1CFR' then
2885 vEAISLADE_AT.TIPO_AISLADERO := 'REPETICION';
2886 when '2CFR' then
2887 vEAISLADE_AT.TIPO_AISLADERO := 'REPETICION';
2888 when '3CFR' then
2889 vEAISLADE_AT.TIPO_AISLADERO := 'REPETICION';
2890 else
2891 rollback;
2892 insert into etl_transformacion_log
2893 values
2894 (vTABLA_EXTRACION,
2895 'T$EAISLADE_AT',
2896 c.code,
2897 1,
2898 cErrorAssemblyFisico || c.assembly,
2899 pCircuito,
2900 sysdate);
2901 commit;
2902 continue;
2903 end case;
2904
2905 if c.TIPOFUSES = 'PUENTE' then
2906 vEAISLADE_AT.TIPO_FUSIBLE := 'PUENTE';
2907 vEAISLADE_AT.CAPACIDAD := 0;
2908 elsif instr(c.TIPOFUSES, 'D') > 0 then
2909 vEAISLADE_AT.TIPO_FUSIBLE := 'D';
2910 vEAISLADE_AT.CAPACIDAD := to_number(replace(replace(c.TIPOFUSES,
2911 'D',
2912 null),
2913 'C',
2914 ','));
2915 elsif instr(c.TIPOFUSES, 'H') > 0 then
2916 vEAISLADE_AT.TIPO_FUSIBLE := 'H';
2917 vEAISLADE_AT.CAPACIDAD := to_number(replace(c.TIPOFUSES,
2918 'H',
2919 null));
2920 elsif instr(c.TIPOFUSES, 'K') > 0 then
2921 vEAISLADE_AT.TIPO_FUSIBLE := 'K';
2922 vEAISLADE_AT.CAPACIDAD := to_number(replace(c.TIPOFUSES,
2923 'K',
2924 null));
2925 elsif instr(c.TIPOFUSES, 'T') > 0 then
2926 vEAISLADE_AT.TIPO_FUSIBLE := 'T';
2927 vEAISLADE_AT.CAPACIDAD := to_number(replace(c.TIPOFUSES,
2928 'T',
2929 null));
2930 end if;
2931
2932 vEAISLADE_AT.G3E_FNO := fno;
2933 vEAISLADE_AT.G3E_CNO := fno + 1;
2934 vEAISLADE_AT.G3E_CID := 1;
2935 vEAISLADE_AT.G3E_FID := fid;
2936 vEAISLADE_AT.G3E_ID := EAISLADE_AT_SEQ.NEXTVAL;
2937
2938 insert into T$EAISLADE_AT values vEAISLADE_AT;
2939
2940 exception
2941 when assembly_fisico_invalido then
2942 rollback;
2943 insert into etl_transformacion_log
2944 values
2945 (vTABLA_EXTRACION,
2946 'T$EAISLADE_AT',
2947 c.code,
2948 1,
2949 cErrorAssemblyFisico || c.assembly,
2950 pCircuito,
2951 sysdate);
2952 commit;
2953 continue;
2954 end;
2955
2956 --EAISLADE_PT
2957 vEAISLADE_PT := null;
2958 vEAISLADE_PT.G3E_FNO := fno;
2959 vEAISLADE_PT.G3E_CNO := fno + 10;
2960 vEAISLADE_PT.G3E_CID := 1;
2961 vEAISLADE_PT.G3E_FID := fid;
2962 vEAISLADE_PT.G3E_ID := EAISLADE_PT_SEQ.NEXTVAL;
2963 vEAISLADE_PT.G3E_GEOMETRY := geom;
2964
2965 insert into T$EAISLADE_PT values vEAISLADE_PT;
2966
2967 --CCONECTIVIDAD_E
2968 vCONN := null;
2969 vCONN.CAPACIDAD_NOMINAL := c.AMP;
2970 vCONN.FASES := DecodeFase(c.PHASES);
2971
2972 if c.STATE = 0 then
2973 vCONN.EST_ESTABLE := 'OPEN';
2974 vCONN.EST_OPERATIVO := 'OPEN';
2975 else
2976 vCONN.EST_ESTABLE := 'CLOSED';
2977 vCONN.EST_OPERATIVO := 'CLOSED';
2978 vCONN.CIRCUITO_SALIDA := c.FPARENT;
2979
2980 end if;
2981
2982 vCONN.ESTADO := 'OPERACION';
2983 vCONN.CIRCUITO := c.FPARENT;
2984 vCONN.SUBESTACION := substr(c.fparent, 1, 3);
2985 vCONN.TENSION := to_char(c.KV);
2986 vCONN.NODO1_ID := PTC_BuscarNodoSwitches(c.linesectio,
2987 c.xpos,
2988 c.ypos,
2989 fidConduct,
2990 nodePos);
2991
2992 vCONN.NODO2_ID := g3e_node_seq.nextval;
2993
2994 begin
2995 select TPARENT
2996 into vCONN.NODO_TRANSFORM_V
2997 from x$conectividad
2998 where phnode = c.code
2999 and tparent is not null
3000 and rownum = 1;
3001
3002 exception
3003 when others then
3004 null;
3005 end;
3006
3007 --if nodePos = 1 then
3008 update T$CCONECTIVIDAD_E
3009 set nodo2_id = vCONN.NODO2_ID
3010 where nodo2_id = vCONN.NODO1_ID
3011 and g3e_fid != fidConduct;
3012 -- end if;
3013
3014 --if nodePos = 2 then
3015 update T$CCONECTIVIDAD_E
3016 set nodo1_id = vCONN.NODO2_ID
3017 where nodo1_id = vCONN.NODO1_ID
3018 and g3e_fid != fidConduct;
3019 --end if;
3020 commit;
3021
3022 vCONN.G3E_FNO := fno;
3023 vCONN.G3E_CNO := 61;
3024 vCONN.G3E_CID := 1;
3025 vCONN.G3E_FID := fid;
3026 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
3027
3028 insert into T$CCONECTIVIDAD_E values vCONN;
3029
3030 --CPROPIETARIO
3031 if c.owner in ('C', 'P') then
3032 vPROP := null;
3033 vPROP.PORCENTAJE_PROP_1 := 100;
3034
3035 if c.towner = 'C' and c.owner != 'CHEC' then
3036 insert into etl_transformacion_log
3037 values
3038 (vTABLA_EXTRACION,
3039 'T$CPROPIETARIO',
3040 c.code,
3041 2,
3042 cErrorPropietario,
3043 pCircuito,
3044 sysdate);
3045 commit;
3046 end if;
3047
3048 if c.towner = 'C' then
3049 vPROP.PROPIETARIO_1 := 'CHEC';
3050 elsif c.towner = 'P' then
3051 vPROP.PROPIETARIO_1 := 'PARTICULAR';
3052 vPROP.NOMBRE_PROP := c.owner;
3053 end if;
3054 vPROP.G3E_FNO := fno;
3055 vPROP.G3E_CNO := 69;
3056 vPROP.G3E_CID := 1;
3057 vPROP.G3E_FID := fid;
3058 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
3059
3060 insert into T$CPROPIETARIO values vPROP;
3061
3062 end if;
3063
3064 vRegistros := vRegistros + 1;
3065 insert into ETL_CODE2FID
3066 values
3067 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
3068
3069 commit;
3070 end loop;
3071 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
3072 end;
3073
3074 procedure PT_CUCHILLA(pCircuito in VARCHAR2) is
3075 geom sdo_geometry;
3076 geomL sdo_geometry;
3077
3078 vERROR VARCHAR2(80);
3079 vUSER VARCHAR2(100);
3080
3081 vCCOMUN T$CCOMUN%ROWTYPE;
3082 vPROP T$CPROPIETARIO%ROWTYPE;
3083 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
3084 vECUCHILL_AT T$ECUCHILL_AT%ROWTYPE;
3085 vECUCHILL_PT T$ECUCHILL_PT%ROWTYPE;
3086
3087 fid number(10);
3088 fno number(5) := 19400;
3089 fidConduct number(10);
3090 nodePos number(2);
3091
3092 vTABLA_EXTRACION VARCHAR2(80) := 'X$CUCHILLA';
3093
3094 vCONDU X$CONDUCTOR_PRIMARIO%ROWTYPE;
3095 vBearing NUMBER;
3096
3097 vTime timestamp := CURRENT_TIMESTAMP;
3098 vRegistros number(8) := 0;
3099
3100 begin
3101
3102 for c in (select *
3103 from X$CUCHILLA
3104 where fparent = pCircuito
3105 and code != pCircuito) loop
3106 begin
3107
3108 select *
3109 into vCONDU
3110 from X$CONDUCTOR_PRIMARIO
3111 where code = c.linesectio;
3112
3113 geomL := ConvertLine2Sigma(vCONDU.xpos1,
3114 vCONDU.ypos1,
3115 0,
3116 vCONDU.xpos2,
3117 vCONDU.ypos2,
3118 0);
3119
3120 vBearing := CalcularBearing(geomL);
3121
3122 exception
3123 when others then
3124 null;
3125 end;
3126
3127 geom := ConvertPoint2Sigma(c.xpos, c.ypos);
3128
3129 fid := g3e_fid_seq.nextval;
3130
3131 --CCOMUN
3132 vCCOMUN := null;
3133 vCCOMUN.G3E_FNO := fno;
3134 vCCOMUN.G3E_CNO := 60;
3135 vCCOMUN.G3E_CID := 1;
3136 vCCOMUN.G3E_FID := fid;
3137 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
3138 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
3139 vCCOMUN.UBICACION := c.ADDRESS; --
3140 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
3141 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
3142 vCCOMUN.PROYECTO := c.PROJECT; --
3143 vCCOMUN.COOR_X := c.XPOS; --
3144 vCCOMUN.COOR_Y := c.YPOS; --
3145 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
3146 c.code,
3147 pCircuito,
3148 vTABLA_EXTRACION); --
3149
3150 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
3151 c.code,
3152 pCircuito,
3153 vTABLA_EXTRACION); --
3154 vCCOMUN.ESTADO := 'OPERACION'; --
3155 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
3156 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
3157 vCCOMUN.FECHA_COLOCACION := sysdate;
3158 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
3159
3160 vUSER := c.USER_;
3161
3162 vCCOMUN.CONTRATO_INSTALACION := null;
3163 vCCOMUN.TRABAJO_PROGRAMADO := null;
3164 vCCOMUN.TIPO_PROYECTO := null;
3165
3166 if instr(vUSER, '/') > 0 then
3167 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
3168 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
3169 if instr(vUSER, '/') > 0 then
3170 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
3171 1,
3172 instr(vUSER, '/') - 1);
3173 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
3174 instr(vUSER, '/') + 1);
3175 else
3176 vCCOMUN.CONTRATO_INSTALACION := null;
3177 vCCOMUN.TRABAJO_PROGRAMADO := null;
3178 vCCOMUN.TIPO_PROYECTO := null;
3179 insert into etl_transformacion_log
3180 values
3181 (vTABLA_EXTRACION,
3182 'T$CCOMUN',
3183 c.code,
3184 2,
3185 cErrorUser,
3186 pCircuito,
3187 sysdate);
3188 commit;
3189 end if;
3190 end if;
3191
3192 begin
3193 insert into T$CCOMUN values vCCOMUN;
3194 exception
3195 when others then
3196 vERROR := SUBSTR(SQLERRM, 1, 64);
3197 rollback;
3198 insert into etl_transformacion_log
3199 values
3200 (vTABLA_EXTRACION,
3201 'T$CCOMUN',
3202 c.code,
3203 1,
3204 vERROR,
3205 pCircuito,
3206 sysdate);
3207 commit;
3208 continue;
3209 end;
3210
3211 --vECUCHILL_AT
3212
3213 vECUCHILL_AT := null;
3214 vECUCHILL_AT.G3E_FNO := fno;
3215 vECUCHILL_AT.G3E_CNO := fno + 1;
3216 vECUCHILL_AT.G3E_CID := 1;
3217 vECUCHILL_AT.G3E_FID := fid;
3218 vECUCHILL_AT.G3E_ID := ECUCHILL_AT_SEQ.NEXTVAL;
3219 vECUCHILL_AT.CODIGO := c.CODE;
3220 vECUCHILL_AT.FABRICANTE := c.MAKER;
3221 vECUCHILL_AT.USO := 'NORMAL';
3222
3223 insert into T$ECUCHILL_AT values vECUCHILL_AT;
3224
3225 --ECUCHILL_PT
3226 vECUCHILL_PT := null;
3227 vECUCHILL_PT.G3E_FNO := fno;
3228 vECUCHILL_PT.G3E_CNO := fno + 10;
3229 vECUCHILL_PT.G3E_CID := 1;
3230 vECUCHILL_PT.G3E_FID := fid;
3231 vECUCHILL_PT.G3E_ID := ECUCHILL_PT_SEQ.NEXTVAL;
3232 vECUCHILL_PT.G3E_GEOMETRY := geom;
3233
3234 insert into T$ECUCHILL_PT values vECUCHILL_PT;
3235
3236 --CCONECTIVIDAD_E
3237 vCONN := null;
3238 vCONN.CAPACIDAD_NOMINAL := c.AMP;
3239 vCONN.FASES := DecodeFase(c.PHASES);
3240 vCONN.ESTADO := 'OPERACION';
3241
3242 if c.STATE = 0 then
3243 vCONN.EST_ESTABLE := 'OPEN';
3244 vCONN.EST_OPERATIVO := 'OPEN';
3245 else
3246 vCONN.EST_ESTABLE := 'CLOSED';
3247 vCONN.EST_OPERATIVO := 'CLOSED';
3248 vCONN.CIRCUITO_SALIDA := c.FPARENT;
3249
3250 end if;
3251
3252 vCONN.CIRCUITO := c.FPARENT;
3253 vCONN.SUBESTACION := substr(c.fparent, 1, 3);
3254 vCONN.TENSION := to_char(c.KV);
3255 vCONN.NODO1_ID := PTC_BuscarNodoSwitches(c.linesectio,
3256 c.xpos,
3257 c.ypos,
3258 fidConduct,
3259 nodePos);
3260
3261 vCONN.NODO2_ID := g3e_node_seq.nextval;
3262
3263 begin
3264 select TPARENT
3265 into vCONN.NODO_TRANSFORM_V
3266 from x$conectividad
3267 where phnode = c.code
3268 and tparent is not null
3269 and rownum = 1;
3270
3271 exception
3272 when others then
3273 null;
3274 end;
3275 -- if nodePos = 1 then
3276 update T$CCONECTIVIDAD_E
3277 set nodo2_id = vCONN.NODO2_ID
3278 where nodo2_id = vCONN.NODO1_ID
3279 and g3e_fid != fidConduct;
3280 -- end if;
3281
3282 -- if nodePos = 2 then
3283 update T$CCONECTIVIDAD_E
3284 set nodo1_id = vCONN.NODO2_ID
3285 where nodo1_id = vCONN.NODO1_ID
3286 and g3e_fid != fidConduct;
3287 -- end if;
3288 commit;
3289
3290 vCONN.G3E_FNO := fno;
3291 vCONN.G3E_CNO := 61;
3292 vCONN.G3E_CID := 1;
3293 vCONN.G3E_FID := fid;
3294 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
3295
3296 insert into T$CCONECTIVIDAD_E values vCONN;
3297
3298 --CPROPIETARIO
3299 if c.owner in ('C', 'P') then
3300 vPROP := null;
3301 vPROP.PORCENTAJE_PROP_1 := 100;
3302
3303 if c.towner = 'C' and c.owner != 'CHEC' then
3304 insert into etl_transformacion_log
3305 values
3306 (vTABLA_EXTRACION,
3307 'T$CPROPIETARIO',
3308 c.code,
3309 2,
3310 cErrorPropietario,
3311 pCircuito,
3312 sysdate);
3313 commit;
3314 end if;
3315
3316 if c.towner = 'C' then
3317 vPROP.PROPIETARIO_1 := 'CHEC';
3318 elsif c.towner = 'P' then
3319 vPROP.PROPIETARIO_1 := 'PARTICULAR';
3320 vPROP.NOMBRE_PROP := c.owner;
3321 end if;
3322
3323 vPROP.G3E_FNO := fno;
3324 vPROP.G3E_CNO := 69;
3325 vPROP.G3E_CID := 1;
3326 vPROP.G3E_FID := fid;
3327 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
3328
3329 insert into T$CPROPIETARIO values vPROP;
3330
3331 end if;
3332
3333 vRegistros := vRegistros + 1;
3334 insert into ETL_CODE2FID
3335 values
3336 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
3337
3338 commit;
3339 end loop;
3340 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
3341 end;
3342
3343 procedure PT_INTERRUPTOR(pCircuito in VARCHAR2) is
3344 geom sdo_geometry;
3345 geomL sdo_geometry;
3346
3347 vERROR VARCHAR2(80);
3348 vUSER VARCHAR2(100);
3349
3350 vCCOMUN T$CCOMUN%ROWTYPE;
3351 vPROP T$CPROPIETARIO%ROWTYPE;
3352 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
3353 vEINTERRU_AT T$EINTERRU_AT%ROWTYPE;
3354 vEINTERRU_PT T$EINTERRU_PT%ROWTYPE;
3355 vEINTERRU_CTO_TX T$EINTERRU_CTO_TX%ROWTYPE;
3356
3357 fid number(10);
3358 fno number(5) := 18800;
3359 fidConduct number(10);
3360 nodePos number(2);
3361
3362 vTABLA_EXTRACION VARCHAR2(80) := 'X$INTERRUPTOR';
3363
3364 vCONDU X$CONDUCTOR_PRIMARIO%ROWTYPE;
3365 vBearing NUMBER;
3366
3367 vTime timestamp := CURRENT_TIMESTAMP;
3368 vRegistros number(8) := 0;
3369
3370 begin
3371
3372 for c in (select *
3373 from X$INTERRUPTOR
3374 where fparent = pCircuito
3375 and code != pCircuito) loop
3376
3377 begin
3378
3379 select *
3380 into vCONDU
3381 from X$CONDUCTOR_PRIMARIO
3382 where code = c.linesectio;
3383
3384 geomL := ConvertLine2Sigma(vCONDU.xpos1,
3385 vCONDU.ypos1,
3386 0,
3387 vCONDU.xpos2,
3388 vCONDU.ypos2,
3389 0);
3390
3391 vBearing := CalcularBearing(geomL);
3392 exception
3393 when others then
3394 null;
3395 end;
3396
3397 geom := ConvertPoint2Sigma(c.xpos, c.ypos);
3398
3399 fid := g3e_fid_seq.nextval;
3400
3401 --CCOMUN
3402 vCCOMUN := null;
3403 vCCOMUN.G3E_FNO := fno;
3404 vCCOMUN.G3E_CNO := 60;
3405 vCCOMUN.G3E_CID := 1;
3406 vCCOMUN.G3E_FID := fid;
3407 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
3408 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
3409 vCCOMUN.UBICACION := c.ADDRESS; --
3410 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
3411 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
3412 vCCOMUN.PROYECTO := c.PROJECT; --
3413 vCCOMUN.COOR_X := c.XPOS; --
3414 vCCOMUN.COOR_Y := c.YPOS; --
3415 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
3416 c.code,
3417 pCircuito,
3418 vTABLA_EXTRACION); --
3419 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
3420 c.code,
3421 pCircuito,
3422 vTABLA_EXTRACION); --
3423 vCCOMUN.ESTADO := 'OPERACION'; --
3424 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
3425 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
3426 vCCOMUN.FECHA_COLOCACION := sysdate;
3427 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
3428
3429 vUSER := c.USER_;
3430
3431 vCCOMUN.CONTRATO_INSTALACION := null;
3432 vCCOMUN.TRABAJO_PROGRAMADO := null;
3433 vCCOMUN.TIPO_PROYECTO := null;
3434
3435 if instr(vUSER, '/') > 0 then
3436 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
3437 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
3438 if instr(vUSER, '/') > 0 then
3439 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
3440 1,
3441 instr(vUSER, '/') - 1);
3442 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
3443 instr(vUSER, '/') + 1);
3444 else
3445 vCCOMUN.CONTRATO_INSTALACION := null;
3446 vCCOMUN.TRABAJO_PROGRAMADO := null;
3447 vCCOMUN.TIPO_PROYECTO := null;
3448 insert into etl_transformacion_log
3449 values
3450 (vTABLA_EXTRACION,
3451 'T$CCOMUN',
3452 c.code,
3453 2,
3454 cErrorUser,
3455 pCircuito,
3456 sysdate);
3457 commit;
3458 end if;
3459 end if;
3460
3461 begin
3462 insert into T$CCOMUN values vCCOMUN;
3463 exception
3464 when others then
3465 vERROR := SUBSTR(SQLERRM, 1, 64);
3466 rollback;
3467 insert into etl_transformacion_log
3468 values
3469 (vTABLA_EXTRACION,
3470 'T$CCOMUN',
3471 c.code,
3472 1,
3473 vERROR,
3474 pCircuito,
3475 sysdate);
3476 commit;
3477 continue;
3478 end;
3479
3480 --vEINTERRU_AT
3481
3482 vEINTERRU_AT := null;
3483 vEINTERRU_AT.G3E_FNO := fno;
3484 vEINTERRU_AT.G3E_CNO := fno + 1;
3485 vEINTERRU_AT.G3E_CID := 1;
3486 vEINTERRU_AT.G3E_FID := fid;
3487 vEINTERRU_AT.G3E_ID := EINTERRU_AT_SEQ.NEXTVAL;
3488 vEINTERRU_AT.CODIGO := c.CODE;
3489 vEINTERRU_AT.FABRICANTE := c.MAKER;
3490 vEINTERRU_AT.TIPO_INTERRUPTOR := c.ASSEMBLY;
3491
3492 insert into T$EINTERRU_AT values vEINTERRU_AT;
3493
3494 --ECUCHILL_PT
3495 vEINTERRU_PT := null;
3496 vEINTERRU_PT.G3E_FNO := fno;
3497 vEINTERRU_PT.G3E_CNO := fno + 10;
3498 vEINTERRU_PT.G3E_CID := 1;
3499 vEINTERRU_PT.G3E_FID := fid;
3500 vEINTERRU_PT.G3E_ID := EINTERRU_PT_SEQ.NEXTVAL;
3501 vEINTERRU_PT.G3E_GEOMETRY := geom;
3502
3503 insert into T$EINTERRU_PT values vEINTERRU_PT;
3504
3505 --EINTERRU_CTO_TX
3506 vEINTERRU_CTO_TX := null;
3507 vEINTERRU_CTO_TX.G3E_FNO := fno;
3508 vEINTERRU_CTO_TX.G3E_CNO := fno + 40;
3509 vEINTERRU_CTO_TX.G3E_CID := 1;
3510 vEINTERRU_CTO_TX.G3E_FID := fid;
3511 vEINTERRU_CTO_TX.G3E_ID := EINTERRU_CTO_TX_SEQ.NEXTVAL;
3512 vEINTERRU_CTO_TX.G3E_GEOMETRY := ConvertPoint2SigmaTexto(c.xpos,
3513 c.ypos);
3514
3515 insert into T$EINTERRU_CTO_TX values vEINTERRU_CTO_TX;
3516
3517 --CCONECTIVIDAD_E
3518 vCONN := null;
3519 vCONN.CAPACIDAD_NOMINAL := c.AMP;
3520 vCONN.FASES := DecodeFase(c.PHASES);
3521 vCONN.ESTADO := 'OPERACION';
3522
3523 if c.STATE = 0 then
3524 vCONN.EST_ESTABLE := 'OPEN';
3525 vCONN.EST_OPERATIVO := 'OPEN';
3526 else
3527 vCONN.EST_ESTABLE := 'CLOSED';
3528 vCONN.EST_OPERATIVO := 'CLOSED';
3529 vCONN.CIRCUITO_SALIDA := c.FPARENT;
3530
3531 end if;
3532
3533 vCONN.CIRCUITO := c.FPARENT;
3534 vCONN.SUBESTACION := substr(c.fparent, 1, 3);
3535 vCONN.TENSION := to_char(c.KV);
3536 vCONN.TIPO_RED := DecodeTipoRed(c.KV);
3537 vCONN.NODO1_ID := PTC_BuscarNodoSwitches(c.linesectio,
3538 c.xpos,
3539 c.ypos,
3540 fidConduct,
3541 nodePos);
3542
3543 vCONN.NODO2_ID := g3e_node_seq.nextval;
3544
3545 begin
3546 select TPARENT
3547 into vCONN.NODO_TRANSFORM_V
3548 from x$conectividad
3549 where phnode = c.code
3550 and tparent is not null
3551 and rownum = 1;
3552
3553 exception
3554 when others then
3555 null;
3556 end;
3557 -- if nodePos = 1 then
3558 update T$CCONECTIVIDAD_E
3559 set nodo2_id = vCONN.NODO2_ID
3560 where nodo2_id = vCONN.NODO1_ID
3561 and g3e_fid != fidConduct;
3562 -- end if;
3563
3564 -- if nodePos = 2 then
3565 update T$CCONECTIVIDAD_E
3566 set nodo1_id = vCONN.NODO2_ID
3567 where nodo1_id = vCONN.NODO1_ID
3568 and g3e_fid != fidConduct;
3569 -- end if;
3570 commit;
3571
3572 vCONN.G3E_FNO := fno;
3573 vCONN.G3E_CNO := 61;
3574 vCONN.G3E_CID := 1;
3575 vCONN.G3E_FID := fid;
3576 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
3577
3578 insert into T$CCONECTIVIDAD_E values vCONN;
3579
3580 --CPROPIETARIO
3581 if c.owner in ('C', 'P') then
3582 vPROP := null;
3583 vPROP.PORCENTAJE_PROP_1 := 100;
3584
3585 if c.towner = 'C' and c.owner != 'CHEC' then
3586 insert into etl_transformacion_log
3587 values
3588 (vTABLA_EXTRACION,
3589 'T$CPROPIETARIO',
3590 c.code,
3591 2,
3592 cErrorPropietario,
3593 pCircuito,
3594 sysdate);
3595 commit;
3596 end if;
3597
3598 if c.towner = 'C' then
3599 vPROP.PROPIETARIO_1 := 'CHEC';
3600 elsif c.towner = 'P' then
3601 vPROP.PROPIETARIO_1 := 'PARTICULAR';
3602 vPROP.NOMBRE_PROP := c.owner;
3603 end if;
3604
3605 vPROP.G3E_FNO := fno;
3606 vPROP.G3E_CNO := 69;
3607 vPROP.G3E_CID := 1;
3608 vPROP.G3E_FID := fid;
3609 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
3610
3611 insert into T$CPROPIETARIO values vPROP;
3612
3613 end if;
3614
3615 vRegistros := vRegistros + 1;
3616 insert into ETL_CODE2FID
3617 values
3618 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
3619
3620 commit;
3621 end loop;
3622 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
3623 end;
3624
3625 procedure PT_RECONECTADOR(pCircuito in VARCHAR2) is
3626 geom sdo_geometry;
3627 geomL sdo_geometry;
3628
3629 vERROR VARCHAR2(80);
3630 vUSER VARCHAR2(100);
3631
3632 vCCOMUN T$CCOMUN%ROWTYPE;
3633 vPROP T$CPROPIETARIO%ROWTYPE;
3634 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
3635 vERECONEC_AT T$ERECONEC_AT%ROWTYPE;
3636 vERECONEC_PT T$ERECONEC_PT%ROWTYPE;
3637
3638 fid number(10);
3639 fno number(5) := 19800;
3640 fidConduct number(10);
3641 nodePos number(2);
3642
3643 vTABLA_EXTRACION VARCHAR2(80) := 'X$RECONECTADOR';
3644
3645 vCONDU X$CONDUCTOR_PRIMARIO%ROWTYPE;
3646 vBearing NUMBER;
3647
3648 vTime timestamp := CURRENT_TIMESTAMP;
3649 vRegistros number(8) := 0;
3650
3651 begin
3652
3653 for c in (select *
3654 from x$reconectador
3655 where fparent = pCircuito
3656 and code != pCircuito) loop
3657
3658 begin
3659
3660 select *
3661 into vCONDU
3662 from X$CONDUCTOR_PRIMARIO
3663 where code = c.linesectio;
3664
3665 geomL := ConvertLine2Sigma(vCONDU.xpos1,
3666 vCONDU.ypos1,
3667 0,
3668 vCONDU.xpos2,
3669 vCONDU.ypos2,
3670 0);
3671
3672 vBearing := CalcularBearing(geomL);
3673 exception
3674 when others then
3675 null;
3676 end;
3677
3678 geom := ConvertPoint2Sigma(c.xpos, c.ypos);
3679
3680 fid := g3e_fid_seq.nextval;
3681
3682 --CCOMUN
3683 vCCOMUN := null;
3684 vCCOMUN.G3E_FNO := fno;
3685 vCCOMUN.G3E_CNO := 60;
3686 vCCOMUN.G3E_CID := 1;
3687 vCCOMUN.G3E_FID := fid;
3688 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
3689 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
3690 vCCOMUN.UBICACION := c.ADDRESS; --
3691 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
3692 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
3693 vCCOMUN.PROYECTO := c.PROJECT; --
3694 vCCOMUN.COOR_X := c.XPOS; --
3695 vCCOMUN.COOR_Y := c.YPOS; --
3696 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
3697 c.code,
3698 pCircuito,
3699 vTABLA_EXTRACION); --
3700 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
3701 c.code,
3702 pCircuito,
3703 vTABLA_EXTRACION); --
3704 vCCOMUN.ESTADO := 'OPERACION'; --
3705 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
3706 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
3707 vCCOMUN.FECHA_COLOCACION := sysdate;
3708 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
3709
3710 vUSER := c.USER_;
3711
3712 vCCOMUN.CONTRATO_INSTALACION := null;
3713 vCCOMUN.TRABAJO_PROGRAMADO := null;
3714 vCCOMUN.TIPO_PROYECTO := null;
3715
3716 if instr(vUSER, '/') > 0 then
3717 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
3718 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
3719 if instr(vUSER, '/') > 0 then
3720 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
3721 1,
3722 instr(vUSER, '/') - 1);
3723 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
3724 instr(vUSER, '/') + 1);
3725 else
3726 vCCOMUN.CONTRATO_INSTALACION := null;
3727 vCCOMUN.TRABAJO_PROGRAMADO := null;
3728 vCCOMUN.TIPO_PROYECTO := null;
3729 insert into etl_transformacion_log
3730 values
3731 (vTABLA_EXTRACION,
3732 'T$CCOMUN',
3733 c.code,
3734 2,
3735 cErrorUser,
3736 pCircuito,
3737 sysdate);
3738 commit;
3739 end if;
3740 end if;
3741
3742 begin
3743 insert into T$CCOMUN values vCCOMUN;
3744 exception
3745 when others then
3746 vERROR := SUBSTR(SQLERRM, 1, 64);
3747 rollback;
3748 insert into etl_transformacion_log
3749 values
3750 (vTABLA_EXTRACION,
3751 'T$CCOMUN',
3752 c.code,
3753 1,
3754 vERROR,
3755 pCircuito,
3756 sysdate);
3757 commit;
3758 continue;
3759 end;
3760
3761 --ERECONEC_AT
3762 begin
3763 vERECONEC_AT := null;
3764 vERECONEC_AT.G3E_FNO := fno;
3765 vERECONEC_AT.G3E_CNO := fno + 1;
3766 vERECONEC_AT.G3E_CID := 1;
3767 vERECONEC_AT.G3E_FID := fid;
3768 vERECONEC_AT.G3E_ID := ERECONEC_AT_SEQ.NEXTVAL;
3769
3770 vERECONEC_AT.CODIGO := c.CODE;
3771 vERECONEC_AT.FABRICANTE := c.MAKER;
3772
3773 case c.ASSEMBLY
3774 when '3RL' then
3775 vERECONEC_AT.USO := 'NORMAL';
3776 when '3RG' then
3777 vERECONEC_AT.USO := 'RECONECTADOR CON SALIDA';
3778 else
3779 rollback;
3780 insert into etl_transformacion_log
3781 values
3782 (vTABLA_EXTRACION,
3783 'T$ERECONEC_AT',
3784 c.code,
3785 1,
3786 cErrorAssemblyFisico || c.assembly,
3787 pCircuito,
3788 sysdate);
3789 commit;
3790 continue;
3791 end case;
3792
3793 insert into T$ERECONEC_AT values vERECONEC_AT;
3794
3795 exception
3796 when assembly_fisico_invalido then
3797 rollback;
3798 insert into etl_transformacion_log
3799 values
3800 (vTABLA_EXTRACION,
3801 'T$ERECONEC_AT',
3802 c.code,
3803 1,
3804 cErrorAssemblyFisico || c.assembly,
3805 pCircuito,
3806 sysdate);
3807 commit;
3808 continue;
3809 end;
3810
3811 --ERECONEC_PT
3812 vERECONEC_PT := null;
3813 vERECONEC_PT.G3E_FNO := fno;
3814 vERECONEC_PT.G3E_CNO := fno + 10;
3815 vERECONEC_PT.G3E_CID := 1;
3816 vERECONEC_PT.G3E_FID := fid;
3817 vERECONEC_PT.G3E_ID := ERECONEC_PT_SEQ.NEXTVAL;
3818 vERECONEC_PT.G3E_GEOMETRY := geom;
3819
3820 insert into T$ERECONEC_PT values vERECONEC_PT;
3821
3822 --CCONECTIVIDAD_E
3823 vCONN := null;
3824 vCONN.CAPACIDAD_NOMINAL := c.AMP;
3825 vCONN.FASES := DecodeFase(c.PHASES);
3826 vCONN.ESTADO := 'OPERACION';
3827
3828 if c.STATE = 0 then
3829 vCONN.EST_ESTABLE := 'OPEN';
3830 vCONN.EST_OPERATIVO := 'OPEN';
3831 else
3832 vCONN.EST_ESTABLE := 'CLOSED';
3833 vCONN.EST_OPERATIVO := 'CLOSED';
3834 vCONN.CIRCUITO_SALIDA := c.FPARENT;
3835
3836 end if;
3837
3838 vCONN.CIRCUITO := c.FPARENT;
3839 vCONN.SUBESTACION := substr(c.fparent, 1, 3);
3840
3841 vCONN.TENSION := to_char(c.KV);
3842 vCONN.TIPO_RED := DecodeTipoRed(c.KV);
3843
3844 vCONN.NODO1_ID := PTC_BuscarNodoSwitches(c.linesectio,
3845 c.xpos,
3846 c.ypos,
3847 fidConduct,
3848 nodePos);
3849
3850 vCONN.NODO2_ID := g3e_node_seq.nextval;
3851
3852 begin
3853 select TPARENT
3854 into vCONN.NODO_TRANSFORM_V
3855 from x$conectividad
3856 where phnode = c.code
3857 and tparent is not null
3858 and rownum = 1;
3859
3860 --vCONN.NODO_TRANSFORM_V := vCONN.NODO_TRANSFORM;
3861
3862 exception
3863 when others then
3864 null;
3865 end;
3866 -- if nodePos = 1 then
3867 update T$CCONECTIVIDAD_E
3868 set nodo2_id = vCONN.NODO2_ID
3869 where nodo2_id = vCONN.NODO1_ID
3870 and g3e_fid != fidConduct;
3871 -- end if;
3872
3873 -- if nodePos = 2 then
3874 update T$CCONECTIVIDAD_E
3875 set nodo1_id = vCONN.NODO2_ID
3876 where nodo1_id = vCONN.NODO1_ID
3877 and g3e_fid != fidConduct;
3878 --end if;
3879 commit;
3880
3881 vCONN.G3E_FNO := fno;
3882 vCONN.G3E_CNO := 61;
3883 vCONN.G3E_CID := 1;
3884 vCONN.G3E_FID := fid;
3885 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
3886
3887 insert into T$CCONECTIVIDAD_E values vCONN;
3888
3889 --CPROPIETARIO
3890 if c.owner in ('C', 'P') then
3891 vPROP := null;
3892 vPROP.PORCENTAJE_PROP_1 := 100;
3893
3894 if c.towner = 'C' and c.owner != 'CHEC' then
3895 insert into etl_transformacion_log
3896 values
3897 (vTABLA_EXTRACION,
3898 'T$CPROPIETARIO',
3899 c.code,
3900 2,
3901 cErrorPropietario,
3902 pCircuito,
3903 sysdate);
3904 commit;
3905 end if;
3906
3907 if c.towner = 'C' then
3908 vPROP.PROPIETARIO_1 := 'CHEC';
3909 elsif c.towner = 'P' then
3910 vPROP.PROPIETARIO_1 := 'PARTICULAR';
3911 vPROP.NOMBRE_PROP := c.owner;
3912 end if;
3913
3914 vPROP.G3E_FNO := fno;
3915 vPROP.G3E_CNO := 69;
3916 vPROP.G3E_CID := 1;
3917 vPROP.G3E_FID := fid;
3918 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
3919
3920 insert into T$CPROPIETARIO values vPROP;
3921
3922 end if;
3923
3924 vRegistros := vRegistros + 1;
3925 insert into ETL_CODE2FID
3926 values
3927 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
3928
3929 commit;
3930 end loop;
3931 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
3932 end;
3933
3934 procedure PT_SECCIONALIZADOR(pCircuito in VARCHAR2) is
3935 geom sdo_geometry;
3936 geomL sdo_geometry;
3937
3938 vERROR VARCHAR2(80);
3939 vUSER VARCHAR2(100);
3940
3941 vCCOMUN T$CCOMUN%ROWTYPE;
3942 vPROP T$CPROPIETARIO%ROWTYPE;
3943 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
3944 vESECCION_AT T$ESECCION_AT%ROWTYPE;
3945 vESECCION_PT T$ESECCION_PT%ROWTYPE;
3946
3947 fid number(10);
3948 fno number(5) := 19800;
3949 fidConduct number(10);
3950 nodePos number(2);
3951
3952 vTABLA_EXTRACION VARCHAR2(80) := 'X$SECCIONALIZADOR';
3953
3954 vCONDU X$CONDUCTOR_PRIMARIO%ROWTYPE;
3955 vBearing NUMBER;
3956
3957 vTime timestamp := CURRENT_TIMESTAMP;
3958 vRegistros number(8) := 0;
3959
3960 begin
3961
3962 for c in (select * from x$seccionalizador where fparent = pCircuito) loop
3963
3964 begin
3965
3966 select *
3967 into vCONDU
3968 from X$CONDUCTOR_PRIMARIO
3969 where code = c.linesectio;
3970
3971 geomL := ConvertLine2Sigma(vCONDU.xpos1,
3972 vCONDU.ypos1,
3973 0,
3974 vCONDU.xpos2,
3975 vCONDU.ypos2,
3976 0);
3977
3978 vBearing := CalcularBearing(geomL);
3979 exception
3980 when others then
3981 null;
3982 end;
3983
3984 geom := ConvertPoint2Sigma(c.xpos, c.ypos);
3985
3986 fid := g3e_fid_seq.nextval;
3987
3988 --CCOMUN
3989 vCCOMUN := null;
3990 vCCOMUN.G3E_FNO := fno;
3991 vCCOMUN.G3E_CNO := 60;
3992 vCCOMUN.G3E_CID := 1;
3993 vCCOMUN.G3E_FID := fid;
3994 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
3995 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
3996 vCCOMUN.UBICACION := c.ADDRESS; --
3997 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
3998 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
3999 vCCOMUN.PROYECTO := c.PROJECT; --
4000 vCCOMUN.COOR_X := c.XPOS; --
4001 vCCOMUN.COOR_Y := c.YPOS; --
4002 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
4003 c.code,
4004 pCircuito,
4005 vTABLA_EXTRACION); --
4006 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
4007 c.code,
4008 pCircuito,
4009 vTABLA_EXTRACION); --
4010 vCCOMUN.ESTADO := 'OPERACION'; --
4011 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
4012 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
4013 vCCOMUN.FECHA_COLOCACION := sysdate;
4014 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
4015
4016 vUSER := c.USER_;
4017
4018 vCCOMUN.CONTRATO_INSTALACION := null;
4019 vCCOMUN.TRABAJO_PROGRAMADO := null;
4020 vCCOMUN.TIPO_PROYECTO := null;
4021
4022 if instr(vUSER, '/') > 0 then
4023 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
4024 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
4025 if instr(vUSER, '/') > 0 then
4026 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
4027 1,
4028 instr(vUSER, '/') - 1);
4029 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
4030 instr(vUSER, '/') + 1);
4031 else
4032 vCCOMUN.CONTRATO_INSTALACION := null;
4033 vCCOMUN.TRABAJO_PROGRAMADO := null;
4034 vCCOMUN.TIPO_PROYECTO := null;
4035 insert into etl_transformacion_log
4036 values
4037 (vTABLA_EXTRACION,
4038 'T$CCOMUN',
4039 c.code,
4040 2,
4041 cErrorUser,
4042 pCircuito,
4043 sysdate);
4044 commit;
4045 end if;
4046 end if;
4047
4048 begin
4049 insert into T$CCOMUN values vCCOMUN;
4050 exception
4051 when others then
4052 vERROR := SUBSTR(SQLERRM, 1, 64);
4053 rollback;
4054 insert into etl_transformacion_log
4055 values
4056 (vTABLA_EXTRACION,
4057 'T$CCOMUN',
4058 c.code,
4059 1,
4060 vERROR,
4061 pCircuito,
4062 sysdate);
4063 commit;
4064 continue;
4065 end;
4066
4067 --ESECCION_AT
4068 begin
4069 vESECCION_AT := null;
4070 vESECCION_AT.G3E_FNO := fno;
4071 vESECCION_AT.G3E_CNO := fno + 1;
4072 vESECCION_AT.G3E_CID := 1;
4073 vESECCION_AT.G3E_FID := fid;
4074 vESECCION_AT.G3E_ID := ESECCION_AT_SEQ.NEXTVAL;
4075
4076 vESECCION_AT.CODIGO := c.CODE;
4077 vESECCION_AT.FABRICANTE := c.MAKER;
4078
4079 case c.ASSEMBLY
4080 when '3SC' then
4081 vESECCION_AT.TIPO := 'Seccionador operaci?n con carga y cuchillas';
4082 when '3OC' then
4083 vESECCION_AT.TIPO := 'Seccionador trifasico de operaci?n con carga';
4084 else
4085 rollback;
4086 insert into etl_transformacion_log
4087 values
4088 (vTABLA_EXTRACION,
4089 'T$ESECCION_AT',
4090 c.code,
4091 1,
4092 cErrorAssemblyFisico || c.assembly,
4093 pCircuito,
4094 sysdate);
4095 commit;
4096 continue;
4097 end case;
4098
4099 insert into T$ESECCION_AT values vESECCION_AT;
4100
4101 exception
4102 when assembly_fisico_invalido then
4103 rollback;
4104 insert into etl_transformacion_log
4105 values
4106 (vTABLA_EXTRACION,
4107 'T$ESECCION_AT',
4108 c.code,
4109 1,
4110 cErrorAssemblyFisico || c.assembly,
4111 pCircuito,
4112 sysdate);
4113 commit;
4114 continue;
4115 end;
4116
4117 --ESECCION_PT
4118 vESECCION_PT := null;
4119 vESECCION_PT.G3E_FNO := fno;
4120 vESECCION_PT.G3E_CNO := fno + 10;
4121 vESECCION_PT.G3E_CID := 1;
4122 vESECCION_PT.G3E_FID := fid;
4123 vESECCION_PT.G3E_ID := ERECONEC_PT_SEQ.NEXTVAL;
4124 vESECCION_PT.G3E_GEOMETRY := geom;
4125
4126 insert into T$ESECCION_PT values vESECCION_PT;
4127
4128 --CCONECTIVIDAD_E
4129 vCONN := null;
4130 vCONN.CAPACIDAD_NOMINAL := c.AMP;
4131 vCONN.FASES := DecodeFase(c.PHASES);
4132 vCONN.ESTADO := 'OPERACION';
4133
4134 if c.STATE = 0 then
4135 vCONN.EST_ESTABLE := 'OPEN';
4136 vCONN.EST_OPERATIVO := 'OPEN';
4137 else
4138 vCONN.EST_ESTABLE := 'CLOSED';
4139 vCONN.EST_OPERATIVO := 'CLOSED';
4140 vCONN.CIRCUITO_SALIDA := c.FPARENT;
4141
4142 end if;
4143
4144 vCONN.CIRCUITO := c.FPARENT;
4145 vCONN.SUBESTACION := substr(c.fparent, 1, 3);
4146 vCONN.TENSION := to_char(c.KV);
4147 vCONN.TIPO_RED := DecodeTipoRed(c.KV);
4148
4149 vCONN.NODO1_ID := PTC_BuscarNodoSwitches(c.linesectio,
4150 c.xpos,
4151 c.ypos,
4152 fidConduct,
4153 nodePos);
4154
4155 vCONN.NODO2_ID := g3e_node_seq.nextval;
4156 begin
4157 select TPARENT
4158 into vCONN.NODO_TRANSFORM_V
4159 from x$conectividad
4160 where phnode = c.code
4161 and tparent is not null
4162 and rownum = 1;
4163
4164 --vCONN.NODO_TRANSFORM_V := vCONN.NODO_TRANSFORM;
4165
4166 exception
4167 when others then
4168 null;
4169 end;
4170 -- if nodePos = 1 then
4171 update T$CCONECTIVIDAD_E
4172 set nodo2_id = vCONN.NODO2_ID
4173 where nodo2_id = vCONN.NODO1_ID
4174 and g3e_fid != fidConduct;
4175 -- end if;
4176
4177 --if nodePos = 2 then
4178 update T$CCONECTIVIDAD_E
4179 set nodo1_id = vCONN.NODO2_ID
4180 where nodo1_id = vCONN.NODO1_ID
4181 and g3e_fid != fidConduct;
4182 --end if;
4183 commit;
4184
4185 vCONN.G3E_FNO := fno;
4186 vCONN.G3E_CNO := 61;
4187 vCONN.G3E_CID := 1;
4188 vCONN.G3E_FID := fid;
4189 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
4190
4191 insert into T$CCONECTIVIDAD_E values vCONN;
4192
4193 --CPROPIETARIO
4194 if c.owner in ('C', 'P') then
4195 vPROP := null;
4196 vPROP.PORCENTAJE_PROP_1 := 100;
4197
4198 if c.towner = 'C' and c.owner != 'CHEC' then
4199 insert into etl_transformacion_log
4200 values
4201 (vTABLA_EXTRACION,
4202 'T$CPROPIETARIO',
4203 c.code,
4204 2,
4205 cErrorPropietario,
4206 pCircuito,
4207 sysdate);
4208 commit;
4209 end if;
4210
4211 if c.towner = 'C' then
4212 vPROP.PROPIETARIO_1 := 'CHEC';
4213 elsif c.towner = 'P' then
4214 vPROP.PROPIETARIO_1 := 'PARTICULAR';
4215 vPROP.NOMBRE_PROP := c.owner;
4216 end if;
4217
4218 vPROP.G3E_FNO := fno;
4219 vPROP.G3E_CNO := 69;
4220 vPROP.G3E_CID := 1;
4221 vPROP.G3E_FID := fid;
4222 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
4223
4224 insert into T$CPROPIETARIO values vPROP;
4225
4226 end if;
4227
4228 vRegistros := vRegistros + 1;
4229 insert into ETL_CODE2FID
4230 values
4231 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
4232
4233 commit;
4234 end loop;
4235 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
4236 end;
4237
4238 procedure PT_REFERENCIA(pCircuito in VARCHAR2) is
4239 geom sdo_geometry;
4240 geomL sdo_geometry;
4241
4242 vERROR VARCHAR2(80);
4243 vUSER VARCHAR2(100);
4244
4245 vCCOMUN T$CCOMUN%ROWTYPE;
4246 vPROP T$CPROPIETARIO%ROWTYPE;
4247 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
4248 vEREFEREN_PT T$EREFEREN_PT%ROWTYPE;
4249 vEREFEREN_AT T$EREFEREN_AT%ROWTYPE;
4250
4251 fid number(10);
4252 fno number(5) := 19800;
4253 fidConduct number(10);
4254 nodePos number(2);
4255
4256 vTABLA_EXTRACION VARCHAR2(80) := 'X$REFERENCIA';
4257
4258 vCONDU X$CONDUCTOR_PRIMARIO%ROWTYPE;
4259 vBearing NUMBER;
4260
4261 vTime timestamp := CURRENT_TIMESTAMP;
4262 vRegistros number(8) := 0;
4263
4264 begin
4265
4266 for c in (select * from x$REFERENCIA where fparent = pCircuito) loop
4267
4268 begin
4269
4270 select *
4271 into vCONDU
4272 from X$CONDUCTOR_PRIMARIO
4273 where code = c.linesectio;
4274
4275 geomL := ConvertLine2Sigma(vCONDU.xpos1,
4276 vCONDU.ypos1,
4277 0,
4278 vCONDU.xpos2,
4279 vCONDU.ypos2,
4280 0);
4281
4282 vBearing := CalcularBearing(geomL);
4283 exception
4284 when others then
4285 null;
4286 end;
4287
4288 geom := ConvertPoint2Sigma(c.xpos, c.ypos);
4289
4290 fid := g3e_fid_seq.nextval;
4291
4292 --CCOMUN
4293 vCCOMUN := null;
4294 vCCOMUN.G3E_FNO := fno;
4295 vCCOMUN.G3E_CNO := 60;
4296 vCCOMUN.G3E_CID := 1;
4297 vCCOMUN.G3E_FID := fid;
4298 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
4299 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
4300 vCCOMUN.UBICACION := c.ADDRESS; --
4301 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
4302 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
4303 vCCOMUN.PROYECTO := c.PROJECT; --
4304 vCCOMUN.COOR_X := c.XPOS; --
4305 vCCOMUN.COOR_Y := c.YPOS; --
4306 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
4307 c.code,
4308 pCircuito,
4309 vTABLA_EXTRACION); --
4310 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
4311 c.code,
4312 pCircuito,
4313 vTABLA_EXTRACION); --
4314 vCCOMUN.ESTADO := 'OPERACION'; --
4315 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
4316 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
4317 vCCOMUN.FECHA_COLOCACION := sysdate;
4318 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
4319
4320 vUSER := c.USER_;
4321
4322 vCCOMUN.CONTRATO_INSTALACION := null;
4323 vCCOMUN.TRABAJO_PROGRAMADO := null;
4324 vCCOMUN.TIPO_PROYECTO := null;
4325
4326 if instr(vUSER, '/') > 0 then
4327 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
4328 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
4329 if instr(vUSER, '/') > 0 then
4330 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
4331 1,
4332 instr(vUSER, '/') - 1);
4333 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
4334 instr(vUSER, '/') + 1);
4335 else
4336 vCCOMUN.CONTRATO_INSTALACION := null;
4337 vCCOMUN.TRABAJO_PROGRAMADO := null;
4338 vCCOMUN.TIPO_PROYECTO := null;
4339 insert into etl_transformacion_log
4340 values
4341 (vTABLA_EXTRACION,
4342 'T$CCOMUN',
4343 c.code,
4344 2,
4345 cErrorUser,
4346 pCircuito,
4347 sysdate);
4348 commit;
4349 end if;
4350 end if;
4351
4352 begin
4353 insert into T$CCOMUN values vCCOMUN;
4354 exception
4355 when others then
4356 vERROR := SUBSTR(SQLERRM, 1, 64);
4357 rollback;
4358 insert into etl_transformacion_log
4359 values
4360 (vTABLA_EXTRACION,
4361 'T$CCOMUN',
4362 c.code,
4363 1,
4364 vERROR,
4365 pCircuito,
4366 sysdate);
4367 commit;
4368 continue;
4369 end;
4370
4371 --EREFEREN_AT
4372 begin
4373
4374 vEREFEREN_AT := null;
4375 vEREFEREN_AT.G3E_FNO := fno;
4376 vEREFEREN_AT.G3E_CNO := fno + 1;
4377 vEREFEREN_AT.G3E_CID := 1;
4378 vEREFEREN_AT.G3E_FID := fid;
4379 vEREFEREN_AT.G3E_ID := EREFEREN_AT_SEQ.NEXTVAL;
4380 vEREFEREN_AT.CODIGO := c.CODE;
4381
4382 insert into T$EREFEREN_AT values vEREFEREN_AT;
4383 exception
4384 when assembly_fisico_invalido then
4385 rollback;
4386 insert into etl_transformacion_log
4387 values
4388 (vTABLA_EXTRACION,
4389 'T$EREFEREN_AT',
4390 c.code,
4391 1,
4392 cErrorGeneral,
4393 pCircuito,
4394 sysdate);
4395 commit;
4396 continue;
4397 end;
4398
4399 --EREFEREN_PT
4400 vEREFEREN_PT := null;
4401 vEREFEREN_PT.G3E_FNO := fno;
4402 vEREFEREN_PT.G3E_CNO := fno + 10;
4403 vEREFEREN_PT.G3E_CID := 1;
4404 vEREFEREN_PT.G3E_FID := fid;
4405 vEREFEREN_PT.G3E_ID := EREFEREN_PT_SEQ.NEXTVAL;
4406 vEREFEREN_PT.G3E_GEOMETRY := geom;
4407
4408 insert into T$EREFEREN_PT values vEREFEREN_PT;
4409
4410 --CCONECTIVIDAD_E
4411 vCONN := null;
4412 vCONN.CAPACIDAD_NOMINAL := c.AMP;
4413 vCONN.FASES := DecodeFase(c.PHASES);
4414 vCONN.ESTADO := 'OPERACION';
4415
4416 if c.STATE = 0 then
4417 vCONN.EST_ESTABLE := 'OPEN';
4418 vCONN.EST_OPERATIVO := 'OPEN';
4419 else
4420 vCONN.EST_ESTABLE := 'CLOSED';
4421 vCONN.EST_OPERATIVO := 'CLOSED';
4422 end if;
4423
4424 vCONN.CIRCUITO := c.FPARENT;
4425 vCONN.SUBESTACION := substr(c.fparent, 1, 3);
4426 vCONN.TENSION := to_char(c.KV);
4427 vCONN.TIPO_RED := DecodeTipoRed(c.KV);
4428
4429 vCONN.NODO1_ID := PTC_BuscarNodoSwitches(c.linesectio,
4430 c.xpos,
4431 c.ypos,
4432 fidConduct,
4433 nodePos);
4434
4435 vCONN.NODO2_ID := g3e_node_seq.nextval;
4436
4437 begin
4438 select TPARENT
4439 into vCONN.NODO_TRANSFORM_V
4440 from x$conectividad
4441 where phnode = c.code
4442 and tparent is not null
4443 and rownum = 1;
4444
4445 --vCONN.NODO_TRANSFORM_V := vCONN.NODO_TRANSFORM;
4446
4447 exception
4448 when others then
4449 null;
4450 end;
4451
4452 --if nodePos = 1 then
4453 update T$CCONECTIVIDAD_E
4454 set nodo2_id = vCONN.NODO2_ID
4455 where nodo2_id = vCONN.NODO1_ID
4456 and g3e_fid != fidConduct;
4457 -- end if;
4458
4459 --if nodePos = 2 then
4460 update T$CCONECTIVIDAD_E
4461 set nodo1_id = vCONN.NODO2_ID
4462 where nodo1_id = vCONN.NODO1_ID
4463 and g3e_fid != fidConduct;
4464 --end if;
4465 commit;
4466
4467 vCONN.G3E_FNO := fno;
4468 vCONN.G3E_CNO := 61;
4469 vCONN.G3E_CID := 1;
4470 vCONN.G3E_FID := fid;
4471 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
4472
4473 insert into T$CCONECTIVIDAD_E values vCONN;
4474
4475 --CPROPIETARIO
4476 if c.owner in ('C', 'P') then
4477 vPROP := null;
4478 vPROP.PORCENTAJE_PROP_1 := 100;
4479
4480 if c.towner = 'C' and c.owner != 'CHEC' then
4481 insert into etl_transformacion_log
4482 values
4483 (vTABLA_EXTRACION,
4484 'T$CPROPIETARIO',
4485 c.code,
4486 2,
4487 cErrorPropietario,
4488 pCircuito,
4489 sysdate);
4490 commit;
4491 end if;
4492
4493 if c.towner = 'C' then
4494 vPROP.PROPIETARIO_1 := 'CHEC';
4495 elsif c.towner = 'P' then
4496 vPROP.PROPIETARIO_1 := 'PARTICULAR';
4497 vPROP.NOMBRE_PROP := c.owner;
4498 end if;
4499
4500 vPROP.G3E_FNO := fno;
4501 vPROP.G3E_CNO := 69;
4502 vPROP.G3E_CID := 1;
4503 vPROP.G3E_FID := fid;
4504 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
4505
4506 insert into T$CPROPIETARIO values vPROP;
4507
4508 end if;
4509
4510 vRegistros := vRegistros + 1;
4511 insert into ETL_CODE2FID
4512 values
4513 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
4514
4515 commit;
4516 end loop;
4517 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
4518 end;
4519
4520 procedure PT_SUICHE(pCircuito in VARCHAR2) is
4521 geom sdo_geometry;
4522 geomL sdo_geometry;
4523
4524 vERROR VARCHAR2(80);
4525 vUSER VARCHAR2(100);
4526
4527 vCCOMUN T$CCOMUN%ROWTYPE;
4528 vPROP T$CPROPIETARIO%ROWTYPE;
4529 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
4530 vESUICHE_PT T$ESUICHE_PT%ROWTYPE;
4531 vESUICHE_AT T$ESUICHE_AT%ROWTYPE;
4532 vESUICHE_COD_TX T$ESUICHE_COD_TX%ROWTYPE;
4533
4534 fid number(10);
4535 fno number(5) := 19700;
4536 fidConduct number(10);
4537 nodePos number(2);
4538
4539 vTABLA_EXTRACION VARCHAR2(80) := 'X$SUICHE';
4540
4541 vCONDU X$CONDUCTOR_PRIMARIO%ROWTYPE;
4542 vBearing NUMBER;
4543
4544 vTime timestamp := CURRENT_TIMESTAMP;
4545 vRegistros number(8) := 0;
4546
4547 begin
4548
4549 for c in (select * from x$suiche where fparent = pCircuito) loop
4550
4551 begin
4552
4553 select *
4554 into vCONDU
4555 from X$CONDUCTOR_PRIMARIO
4556 where code = c.linesectio;
4557
4558 geomL := ConvertLine2Sigma(vCONDU.xpos1,
4559 vCONDU.ypos1,
4560 0,
4561 vCONDU.xpos2,
4562 vCONDU.ypos2,
4563 0);
4564
4565 vBearing := CalcularBearing(geomL);
4566
4567 exception
4568 when others then
4569 null;
4570 end;
4571 geom := ConvertPoint2Sigma(c.xpos, c.ypos);
4572
4573 fid := g3e_fid_seq.nextval;
4574
4575 --CCOMUN
4576 vCCOMUN := null;
4577 vCCOMUN.G3E_FNO := fno;
4578 vCCOMUN.G3E_CNO := 60;
4579 vCCOMUN.G3E_CID := 1;
4580 vCCOMUN.G3E_FID := fid;
4581 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
4582 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
4583 vCCOMUN.UBICACION := c.ADDRESS; --
4584 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
4585 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
4586 vCCOMUN.PROYECTO := c.PROJECT; --
4587 vCCOMUN.COOR_X := c.XPOS; --
4588 vCCOMUN.COOR_Y := c.YPOS; --
4589 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
4590 c.code,
4591 pCircuito,
4592 vTABLA_EXTRACION); --
4593 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
4594 c.code,
4595 pCircuito,
4596 vTABLA_EXTRACION); --
4597 vCCOMUN.ESTADO := 'OPERACION'; --
4598 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
4599 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
4600 vCCOMUN.FECHA_COLOCACION := sysdate;
4601 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
4602
4603 vUSER := c.USER_;
4604
4605 vCCOMUN.CONTRATO_INSTALACION := null;
4606 vCCOMUN.TRABAJO_PROGRAMADO := null;
4607 vCCOMUN.TIPO_PROYECTO := null;
4608
4609 if instr(vUSER, '/') > 0 then
4610 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
4611 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
4612 if instr(vUSER, '/') > 0 then
4613 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
4614 1,
4615 instr(vUSER, '/') - 1);
4616 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
4617 instr(vUSER, '/') + 1);
4618 else
4619 vCCOMUN.CONTRATO_INSTALACION := null;
4620 vCCOMUN.TRABAJO_PROGRAMADO := null;
4621 vCCOMUN.TIPO_PROYECTO := null;
4622 insert into etl_transformacion_log
4623 values
4624 (vTABLA_EXTRACION,
4625 'T$CCOMUN',
4626 c.code,
4627 2,
4628 cErrorUser,
4629 pCircuito,
4630 sysdate);
4631 commit;
4632 end if;
4633 end if;
4634
4635 begin
4636 insert into T$CCOMUN values vCCOMUN;
4637 exception
4638 when others then
4639 vERROR := SUBSTR(SQLERRM, 1, 64);
4640 rollback;
4641 insert into etl_transformacion_log
4642 values
4643 (vTABLA_EXTRACION,
4644 'T$CCOMUN',
4645 c.code,
4646 1,
4647 vERROR,
4648 pCircuito,
4649 sysdate);
4650 commit;
4651 continue;
4652 end;
4653
4654 --ESUICHE_AT
4655 begin
4656 vESUICHE_AT := null;
4657 vESUICHE_AT.G3E_FNO := fno;
4658 vESUICHE_AT.G3E_CNO := fno + 1;
4659 vESUICHE_AT.G3E_CID := 1;
4660 vESUICHE_AT.G3E_FID := fid;
4661 vESUICHE_AT.G3E_ID := ESUICHE_AT_SEQ.NEXTVAL;
4662
4663 if c.ASSEMBLY = '3ISA' then
4664 vESUICHE_AT.AISLAMIENTO := 'ACEITE';
4665 elsif c.ASSEMBLY = '3IS6' then
4666 vESUICHE_AT.AISLAMIENTO := 'SF6';
4667 else
4668 rollback;
4669 insert into etl_transformacion_log
4670 values
4671 (vTABLA_EXTRACION,
4672 'T$ESUICHE_AT',
4673 c.code,
4674 1,
4675 cErrorAssemblyFisico || c.assembly,
4676 pCircuito,
4677 sysdate);
4678 commit;
4679 continue;
4680 end if;
4681
4682 vESUICHE_AT.CODIGO := c.CODE;
4683 vESUICHE_AT.OPERACION := 'MANUAL';
4684 vESUICHE_AT.FABRICANTE := c.MAKER;
4685 vESUICHE_AT.USO := 'SUICHE';
4686
4687 insert into T$ESUICHE_AT values vESUICHE_AT;
4688
4689 exception
4690 when assembly_fisico_invalido then
4691 rollback;
4692 insert into etl_transformacion_log
4693 values
4694 (vTABLA_EXTRACION,
4695 'T$ESUICHE_AT',
4696 c.code,
4697 1,
4698 cErrorAssemblyFisico || c.assembly,
4699 pCircuito,
4700 sysdate);
4701 commit;
4702 continue;
4703 end;
4704
4705 --ESUICHE_PT
4706 vESUICHE_PT := null;
4707 vESUICHE_PT.G3E_FNO := fno;
4708 vESUICHE_PT.G3E_CNO := fno + 10;
4709 vESUICHE_PT.G3E_CID := 1;
4710 vESUICHE_PT.G3E_FID := fid;
4711 vESUICHE_PT.G3E_ID := ESUICHE_PT_SEQ.NEXTVAL;
4712 vESUICHE_PT.G3E_GEOMETRY := geom;
4713
4714 insert into T$ESUICHE_PT values vESUICHE_PT;
4715
4716 --CCONECTIVIDAD_E
4717 vCONN := null;
4718 vCONN.CAPACIDAD_NOMINAL := c.AMP;
4719 vCONN.FASES := DecodeFase(c.PHASES);
4720 vCONN.ESTADO := 'OPERACION';
4721
4722 vCONN.CIRCUITO := c.FPARENT;
4723 if c.STATE = 0 then
4724 vCONN.EST_ESTABLE := 'OPEN';
4725 vCONN.EST_OPERATIVO := 'OPEN';
4726 else
4727 vCONN.EST_ESTABLE := 'CLOSED';
4728 vCONN.EST_OPERATIVO := 'CLOSED';
4729 vCONN.CIRCUITO_SALIDA := c.FPARENT;
4730 end if;
4731
4732 vCONN.SUBESTACION := substr(c.fparent, 1, 3);
4733 vCONN.TENSION := to_char(c.KV);
4734 vCONN.TIPO_RED := DecodeTipoRed(c.KV);
4735
4736 vCONN.NODO1_ID := PTC_BuscarNodoSwitches(c.linesectio,
4737 c.xpos,
4738 c.ypos,
4739 fidConduct,
4740 nodePos);
4741
4742 vCONN.NODO2_ID := g3e_node_seq.nextval;
4743
4744 begin
4745 select min(TPARENT), min(kvnom)
4746 into vCONN.NODO_TRANSFORM_V, vCONN.CAPACIDAD_NOMINAL
4747 from x$conectividad
4748 where code = c.code
4749 and rownum = 1;
4750
4751 -- vCONN.TIPO_RED := DecodeTipoRed(vCONN.CAPACIDAD_NOMINAL);
4752 --vCONN.NODO_TRANSFORM_V := vCONN.NODO_TRANSFORM;
4753
4754 exception
4755 when others then
4756 null;
4757 end;
4758
4759 --if nodePos = 1 then
4760 update T$CCONECTIVIDAD_E
4761 set nodo2_id = vCONN.NODO2_ID
4762 where nodo2_id = vCONN.NODO1_ID
4763 and g3e_fid != fidConduct;
4764 --end if;
4765
4766 -- if nodePos = 2 then
4767 update T$CCONECTIVIDAD_E
4768 set nodo1_id = vCONN.NODO2_ID
4769 where nodo1_id = vCONN.NODO1_ID
4770 and g3e_fid != fidConduct;
4771 -- end if;
4772 commit;
4773
4774 vCONN.G3E_FNO := fno;
4775 vCONN.G3E_CNO := 61;
4776 vCONN.G3E_CID := 1;
4777 vCONN.G3E_FID := fid;
4778 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
4779
4780 insert into T$CCONECTIVIDAD_E values vCONN;
4781
4782 --CPROPIETARIO
4783 if c.towner in ('C', 'P') then
4784 vPROP := null;
4785 vPROP.PORCENTAJE_PROP_1 := 100;
4786
4787 if c.towner = 'C' and c.owner != 'CHEC' then
4788 insert into etl_transformacion_log
4789 values
4790 (vTABLA_EXTRACION,
4791 'T$CPROPIETARIO',
4792 c.code,
4793 2,
4794 cErrorPropietario,
4795 pCircuito,
4796 sysdate);
4797 commit;
4798 end if;
4799
4800 if c.towner = 'C' then
4801 vPROP.PROPIETARIO_1 := 'CHEC';
4802 elsif c.towner = 'P' then
4803 vPROP.PROPIETARIO_1 := 'PARTICULAR';
4804 vPROP.NOMBRE_PROP := c.owner;
4805 end if;
4806
4807 vPROP.G3E_FNO := fno;
4808 vPROP.G3E_CNO := 69;
4809 vPROP.G3E_CID := 1;
4810 vPROP.G3E_FID := fid;
4811 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
4812
4813 insert into T$CPROPIETARIO values vPROP;
4814
4815 end if;
4816
4817 --ESUICHE_COD_TX
4818 vESUICHE_COD_TX := null;
4819 vESUICHE_COD_TX.G3E_FNO := fno;
4820 vESUICHE_COD_TX.G3E_CNO := fno + 40;
4821 vESUICHE_COD_TX.G3E_CID := 1;
4822 vESUICHE_COD_TX.G3E_FID := fid;
4823 vESUICHE_COD_TX.G3E_ID := ESUICHE_COD_TX_SEQ.NEXTVAL;
4824 vESUICHE_COD_TX.G3E_GEOMETRY := ConvertPoint2SigmaTexto(c.xpos,
4825 c.ypos);
4826
4827 insert into T$ESUICHE_COD_TX values vESUICHE_COD_TX;
4828
4829 vRegistros := vRegistros + 1;
4830 insert into ETL_CODE2FID
4831 values
4832 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
4833
4834 commit;
4835 end loop;
4836 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
4837 end;
4838
4839 procedure PT_CONDUCTOR_PRIMARIO(pCircuito in VARCHAR2) is
4840 geom sdo_geometry;
4841 vERROR VARCHAR2(80);
4842 vUSER VARCHAR2(100);
4843
4844 vCCOMUN T$CCOMUN%ROWTYPE;
4845 vPROP T$CPROPIETARIO%ROWTYPE;
4846 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
4847
4848 vECON_PRI_AT T$ECON_PRI_AT%ROWTYPE;
4849 vECON_PRI_LN T$ECON_PRI_LN%ROWTYPE;
4850 vECON_PRI_CTO_TX T$ECON_PRI_CTO_TX%ROWTYPE;
4851 vCCONTENEDOR T$CCONTENEDOR%ROWTYPE;
4852 vCPERTENENCIA T$CPERTENENCIA%ROWTYPE;
4853
4854 fid number(10);
4855 fno number(5) := 19000;
4856
4857 vTABLA_EXTRACION VARCHAR2(80) := 'X$CONDUCTOR_PRIMARIO';
4858
4859 vTime timestamp := CURRENT_TIMESTAMP;
4860 vRegistros number(8) := 0;
4861
4862 cursor ElementosSostenidos(cCodigo VARCHAR2) is
4863 select e.g3e_fid, e.g3e_fno
4864 from x$conductor_primario cp
4865 inner join x$conectividad con
4866 on con.code = cp.elnode1 --elnode1
4867 inner join etl_code2fid e
4868 on e.code = con.phnode --mvphonde
4869 where cp.code = cCodigo
4870 and e.g3e_fno in (17100, 17000, 17400)
4871 union
4872 select e.g3e_fid, e.g3e_fno
4873 from x$conductor_primario cp
4874 inner join x$conectividad con
4875 on con.code = cp.elnode2 --elnode2
4876 inner join etl_code2fid e
4877 on e.code = con.phnode --mvphonde
4878 where cp.code = cCodigo
4879 and e.g3e_fno in (17100, 17000, 17400);
4880
4881 begin
4882
4883 for c in (select * from x$conductor_primario where fparent = pCircuito) loop
4884
4885 geom := ConvertLine2Sigma(c.xpos1,
4886 c.ypos1,
4887 BuscarZetaNodoEletrico(c.elnode1),
4888 c.xpos2,
4889 c.ypos2,
4890 BuscarZetaNodoEletrico(c.elnode2));
4891
4892 fid := g3e_fid_seq.nextval;
4893
4894 --CCOMUN
4895 vCCOMUN := null;
4896 vCCOMUN.G3E_FNO := fno;
4897 vCCOMUN.G3E_CNO := 60;
4898 vCCOMUN.G3E_CID := 1;
4899 vCCOMUN.G3E_FID := fid;
4900 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
4901 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
4902 vCCOMUN.UBICACION := c.ADDRESS; --
4903 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
4904 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
4905 vCCOMUN.PROYECTO := c.PROJECT; --
4906 vCCOMUN.COOR_X := c.XPOS1; --
4907 vCCOMUN.COOR_Y := c.YPOS1; --
4908 vCCOMUN.COOR_Z := c.ZPOS1;
4909
4910 /*
4911 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
4912 c.code,
4913 pCircuito,
4914 vTABLA_EXTRACION); --
4915 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
4916 c.code,
4917 pCircuito,
4918 vTABLA_EXTRACION); --
4919 */
4920 vCCOMUN.ESTADO := 'OPERACION'; --
4921 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
4922 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
4923 vCCOMUN.FECHA_COLOCACION := sysdate;
4924 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
4925
4926 vUSER := c.USER_;
4927
4928 vCCOMUN.CONTRATO_INSTALACION := null;
4929 vCCOMUN.TRABAJO_PROGRAMADO := null;
4930 vCCOMUN.TIPO_PROYECTO := null;
4931
4932 if instr(vUSER, '/') > 0 then
4933 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
4934 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
4935 if instr(vUSER, '/') > 0 then
4936 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
4937 1,
4938 instr(vUSER, '/') - 1);
4939 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
4940 instr(vUSER, '/') + 1);
4941 else
4942 vCCOMUN.CONTRATO_INSTALACION := null;
4943 vCCOMUN.TRABAJO_PROGRAMADO := null;
4944 vCCOMUN.TIPO_PROYECTO := null;
4945 insert into etl_transformacion_log
4946 values
4947 (vTABLA_EXTRACION,
4948 'T$CCOMUN',
4949 c.code,
4950 2,
4951 cErrorUser,
4952 pCircuito,
4953 sysdate);
4954 commit;
4955 end if;
4956 end if;
4957
4958 if c.POBLACION = 'U' then
4959 vCCOMUN.CLASIFICACION_MERCADO := 'URBANO';
4960 end if;
4961
4962 if c.POBLACION = 'R' then
4963 vCCOMUN.CLASIFICACION_MERCADO := 'RURAL';
4964 end if;
4965
4966 begin
4967 insert into T$CCOMUN values vCCOMUN;
4968 exception
4969 when others then
4970 vERROR := SUBSTR(SQLERRM, 1, 64);
4971 rollback;
4972 insert into etl_transformacion_log
4973 values
4974 (vTABLA_EXTRACION,
4975 'T$CCOMUN',
4976 c.code,
4977 1,
4978 vERROR,
4979 pCircuito,
4980 sysdate);
4981 commit;
4982 continue;
4983 end;
4984
4985 --ECON_PRI_AT
4986 begin
4987 vECON_PRI_AT := null;
4988 vECON_PRI_AT.CODE_CONDUCTOR := c.CONDUCTOR;
4989 vECON_PRI_AT.CODIGO := c.CODE;
4990 vECON_PRI_AT.CODE_NEUTRAL := c.NEUTRAL;
4991 vECON_PRI_AT.GUARDA := c.GUARDA;
4992 vECON_PRI_AT.USO := 'NORMAL';
4993
4994 select calibre, material, aislamento
4995 into vECON_PRI_AT.CALIBRE,
4996 vECON_PRI_AT.MATERIAL,
4997 vECON_PRI_AT.AISLAMIENTO
4998 from conducto
4999 where code = c.CONDUCTOR
5000 and rownum = 1;
5001
5002 vECON_PRI_AT.G3E_FNO := fno;
5003 vECON_PRI_AT.G3E_CNO := fno + 1;
5004 vECON_PRI_AT.G3E_CID := 1;
5005 vECON_PRI_AT.G3E_FID := fid;
5006 vECON_PRI_AT.G3E_ID := ECON_PRI_AT_SEQ.NEXTVAL;
5007
5008 insert into T$ECON_PRI_AT values vECON_PRI_AT;
5009
5010 exception
5011 when others then
5012 rollback;
5013 insert into etl_transformacion_log
5014 values
5015 (vTABLA_EXTRACION,
5016 'T$ECON_PRI_AT',
5017 c.code,
5018 1,
5019 cErrorAssemblyFisico || c.code,
5020 pCircuito,
5021 sysdate);
5022 commit;
5023 continue;
5024 end;
5025
5026 --ECON_PRI_LN
5027 vECON_PRI_LN := null;
5028 vECON_PRI_LN.G3E_FNO := fno;
5029 vECON_PRI_LN.G3E_CNO := fno + 20;
5030 vECON_PRI_LN.G3E_CID := 1;
5031 vECON_PRI_LN.G3E_FID := fid;
5032 vECON_PRI_LN.G3E_ID := ECON_PRI_LN_SEQ.NEXTVAL;
5033 vECON_PRI_LN.G3E_GEOMETRY := geom;
5034
5035 insert into T$ECON_PRI_LN values vECON_PRI_LN;
5036
5037 --CCONECTIVIDAD_E
5038 vCONN := null;
5039 vCONN.NODO1_ID := PTC_BuscarNodoConductor(c.code, c.elnode1);
5040 vCONN.NODO2_ID := PTC_BuscarNodoConductor(c.code, c.elnode2);
5041
5042 if vCONN.NODO1_ID = 0 then
5043 vCONN.NODO1_ID := g3e_node_seq.nextval;
5044 update CHEC_NODOS_ELEC
5045 set nivel = 'MVELNODE', nodo_mde = vCONN.NODO1_ID
5046 where code = c.elnode1;
5047 end if;
5048
5049 if vCONN.NODO2_ID = 0 then
5050 vCONN.NODO2_ID := g3e_node_seq.nextval;
5051 update CHEC_NODOS_ELEC
5052 set nivel = 'MVELNODE', nodo_mde = vCONN.NODO2_ID
5053 where code = c.elnode2;
5054 end if;
5055
5056 vCONN.G3E_FNO := fno;
5057 vCONN.G3E_CNO := 61;
5058 vCONN.G3E_CID := 1;
5059 vCONN.G3E_FID := fid;
5060 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
5061
5062 vCONN.LOCALIZACION := DecodeLocalizacion(c.CLASS);
5063 vCONN.LONGITUD := to_number(c.LENGTH);
5064 vCONN.FASES := DecodeFase(c.PHASES);
5065 vCONN.CIRCUITO := c.FPARENT;
5066 vCONN.SUBESTACION := substr(pCircuito, 1, 3);
5067 vCONN.TENSION := to_char(c.KVNOM);
5068 vCONN.EST_ESTABLE := 'CLOSED';
5069 vCONN.EST_OPERATIVO := 'CLOSED';
5070 vCONN.ESTADO := 'OPERACION';
5071 vCONN.TIPO_RED := DecodeTipoRed(c.KVNOM);
5072
5073 insert into T$CCONECTIVIDAD_E values vCONN;
5074
5075 --CPROPIETARIO
5076 if c.towner in ('C', 'P') then
5077 vPROP := null;
5078 vPROP.PORCENTAJE_PROP_1 := 100;
5079
5080 if c.towner = 'C' and c.owner != 'CHEC' then
5081 insert into etl_transformacion_log
5082 values
5083 (vTABLA_EXTRACION,
5084 'T$CPROPIETARIO',
5085 c.code,
5086 2,
5087 cErrorPropietario,
5088 pCircuito,
5089 sysdate);
5090 commit;
5091 end if;
5092
5093 if c.towner = 'C' then
5094 vPROP.PROPIETARIO_1 := 'CHEC';
5095 elsif c.towner = 'P' then
5096 vPROP.PROPIETARIO_1 := 'PARTICULAR';
5097 vPROP.NOMBRE_PROP := c.owner;
5098 end if;
5099
5100 vPROP.G3E_FNO := fno;
5101 vPROP.G3E_CNO := 69;
5102 vPROP.G3E_CID := 1;
5103 vPROP.G3E_FID := fid;
5104 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
5105
5106 insert into T$CPROPIETARIO values vPROP;
5107
5108 end if;
5109 --CCONTENEDOR
5110 vCCONTENEDOR := null;
5111
5112 vCCONTENEDOR.G3E_FNO := fno;
5113 vCCONTENEDOR.G3E_CNO := 65;
5114 vCCONTENEDOR.G3E_FID := fid;
5115
5116 for postes in ElementosSostenidos(c.code) loop
5117
5118 select max(G3E_CID)
5119 into vCCONTENEDOR.G3E_CID
5120 from T$CCONTENEDOR
5121 where G3E_OWNERFID = postes.g3e_fid
5122 and G3E_OWNERFNO = postes.g3e_fno;
5123
5124 if vCCONTENEDOR.G3E_CID is null then
5125 vCCONTENEDOR.G3E_CID := 0;
5126 end if;
5127
5128 vCCONTENEDOR.G3E_CID := vCCONTENEDOR.G3E_CID + 1;
5129 vCCONTENEDOR.G3E_ID := CCONTENEDOR_SEQ.NEXTVAL;
5130 vCCONTENEDOR.G3E_OWNERFID := postes.g3e_fid;
5131 vCCONTENEDOR.G3E_OWNERFNO := postes.g3e_fno;
5132
5133 insert into T$CCONTENEDOR values vCCONTENEDOR;
5134
5135 end loop;
5136
5137 --CPERTENENCIA
5138 vCPERTENENCIA := null;
5139
5140 vCPERTENENCIA.G3E_CID := 1;
5141 vCPERTENENCIA.G3E_ID := CPERTENENCIA_SEQ.NEXTVAL;
5142 vCPERTENENCIA.G3E_FNO := fno;
5143 vCPERTENENCIA.G3E_CNO := 64;
5144 vCPERTENENCIA.G3E_FID := fid;
5145
5146 insert into T$CPERTENENCIA values vCPERTENENCIA;
5147
5148 --Textos Circuitos;
5149 if sdo_geom.sdo_length(geom, tol => 0.05, unit => 'unit=M') > 30 then
5150 vECON_PRI_CTO_TX := null;
5151 vECON_PRI_CTO_TX.G3E_CID := 1;
5152 vECON_PRI_CTO_TX.G3E_ID := CPERTENENCIA_SEQ.NEXTVAL;
5153 vECON_PRI_CTO_TX.G3E_FNO := fno;
5154 vECON_PRI_CTO_TX.G3E_CNO := 19042;
5155 vECON_PRI_CTO_TX.G3E_FID := fid;
5156 vECON_PRI_CTO_TX.G3E_GEOMETRY := CrearComponenteTexto(geom);
5157
5158 insert into T$ECON_PRI_CTO_TX values vECON_PRI_CTO_TX;
5159
5160 end if;
5161
5162 vRegistros := vRegistros + 1;
5163
5164 insert into ETL_CODE2FID
5165 values
5166 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
5167 commit;
5168 end loop;
5169 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
5170 end;
5171
5172 procedure PT_CONDUCTOR_SECUNDARIO(pCircuito in VARCHAR2) is
5173 geom sdo_geometry;
5174 vERROR VARCHAR2(80);
5175 vUSER VARCHAR2(100);
5176
5177 vCCOMUN T$CCOMUN%ROWTYPE;
5178 vPROP T$CPROPIETARIO%ROWTYPE;
5179 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
5180
5181 vECON_SES_AT T$ECON_SES_AT%ROWTYPE;
5182 vECON_SES_LN T$ECON_SES_LN%ROWTYPE;
5183 vCCONTENEDOR T$CCONTENEDOR%ROWTYPE;
5184 vCPERTENENCIA T$CPERTENENCIA%ROWTYPE;
5185
5186 fid number(10);
5187 fno number(5) := 21200;
5188
5189 vTABLA_EXTRACION VARCHAR2(80) := 'X$CONDUCTOR_SECUNDARIO';
5190
5191 vTime timestamp := CURRENT_TIMESTAMP;
5192 vRegistros number(8) := 0;
5193
5194 cursor ElementosSostenidos(cCodigo VARCHAR2) is
5195 select e.g3e_fid, e.g3e_fno
5196 from x$conductor_primario cp
5197 inner join x$conectividad con
5198 on con.code = cp.elnode1 --elnode1
5199 inner join etl_code2fid e
5200 on e.code = con.phnode --mvphonde
5201 where cp.code = cCodigo
5202 and e.g3e_fno in (17100, 17000, 18100, 17400)
5203 union
5204 select e.g3e_fid, e.g3e_fno
5205 from x$conductor_primario cp
5206 inner join x$conectividad con
5207 on con.code = cp.elnode2 --elnode2
5208 inner join etl_code2fid e
5209 on e.code = con.phnode --mvphonde
5210 where cp.code = cCodigo
5211 and e.g3e_fno in (17100, 17000, 18100, 17400)
5212 union
5213 select e.g3e_fid, e.g3e_fno
5214 from x$conductor_secundario cp
5215 inner join x$conectividad con
5216 on con.code = cp.elnode1 --elnode1
5217 inner join etl_code2fid e
5218 on e.code = con.phnode --mvphonde
5219 where cp.code = cCodigo
5220 and e.g3e_fno in (17100, 17000, 18100, 17400)
5221 union
5222 select e.g3e_fid, e.g3e_fno
5223 from x$conductor_secundario cp
5224 inner join x$conectividad con
5225 on con.code = cp.elnode2 --elnode2
5226 inner join etl_code2fid e
5227 on e.code = con.phnode --mvphonde
5228 where cp.code = cCodigo
5229 and e.g3e_fno in (17100, 17000, 18100, 17400);
5230
5231 begin
5232
5233 for c in (select * from x$conductor_secundario where fparent = pCircuito) loop
5234 geom := ConvertLine2Sigma(c.xpos1,
5235 c.ypos1,
5236 BuscarZetaNodoEletrico(c.elnode1),
5237 c.xpos2,
5238 c.ypos2,
5239 BuscarZetaNodoEletrico(c.elnode2));
5240
5241 fid := g3e_fid_seq.nextval;
5242
5243 --CCOMUN
5244 vCCOMUN := null;
5245 vCCOMUN.G3E_FNO := fno;
5246 vCCOMUN.G3E_CNO := 60;
5247 vCCOMUN.G3E_CID := 1;
5248 vCCOMUN.G3E_FID := fid;
5249 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
5250 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
5251 vCCOMUN.UBICACION := c.ADDRESS; --
5252 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
5253 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
5254 vCCOMUN.PROYECTO := c.PROJECT; --
5255 vCCOMUN.COOR_X := c.XPOS1; --
5256 vCCOMUN.COOR_Y := c.YPOS1; --
5257 vCCOMUN.COOR_Z := c.ZPOS1;
5258
5259 /*
5260 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
5261 c.code,
5262 pCircuito,
5263 vTABLA_EXTRACION); --
5264 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
5265 c.code,
5266 pCircuito,
5267 vTABLA_EXTRACION); --
5268 */
5269
5270 vCCOMUN.ESTADO := 'OPERACION'; --
5271 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
5272 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
5273 vCCOMUN.FECHA_COLOCACION := sysdate;
5274 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
5275
5276 vUSER := c.USER_;
5277
5278 vCCOMUN.CONTRATO_INSTALACION := null;
5279 vCCOMUN.TRABAJO_PROGRAMADO := null;
5280 vCCOMUN.TIPO_PROYECTO := null;
5281
5282 if instr(vUSER, '/') > 0 then
5283 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
5284 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
5285 if instr(vUSER, '/') > 0 then
5286 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
5287 1,
5288 instr(vUSER, '/') - 1);
5289 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
5290 instr(vUSER, '/') + 1);
5291 else
5292 vCCOMUN.CONTRATO_INSTALACION := null;
5293 vCCOMUN.TRABAJO_PROGRAMADO := null;
5294 vCCOMUN.TIPO_PROYECTO := null;
5295 insert into etl_transformacion_log
5296 values
5297 (vTABLA_EXTRACION,
5298 'T$CCOMUN',
5299 c.code,
5300 2,
5301 cErrorUser,
5302 pCircuito,
5303 sysdate);
5304 commit;
5305 end if;
5306 end if;
5307
5308 if c.POBLACION = 'U' then
5309 vCCOMUN.CLASIFICACION_MERCADO := 'URBANO';
5310 end if;
5311
5312 if c.POBLACION = 'R' then
5313 vCCOMUN.CLASIFICACION_MERCADO := 'RURAL';
5314 end if;
5315
5316 begin
5317 insert into T$CCOMUN values vCCOMUN;
5318 exception
5319 when others then
5320 vERROR := SUBSTR(SQLERRM, 1, 64);
5321 rollback;
5322 insert into etl_transformacion_log
5323 values
5324 (vTABLA_EXTRACION,
5325 'T$CCOMUN',
5326 c.code,
5327 1,
5328 vERROR,
5329 pCircuito,
5330 sysdate);
5331 commit;
5332 continue;
5333 end;
5334
5335 --ECON_SES_AT
5336 begin
5337 vECON_SES_AT := null;
5338 vECON_SES_AT.CODE_CONDUCTOR := c.CONDUCTOR;
5339 vECON_SES_AT.CODIGO := c.CODE;
5340 vECON_SES_AT.CODE_NEUTRAL := c.NEUTRAL;
5341 vECON_SES_AT.TIPO := DecodeTipoConductorSec(c.USO);
5342 vECON_SES_AT.CLASE_RED_SEC := DecodeTipoConductorSec(c.USO); --MIRAR Este cmapo
5343
5344 select calibre, material, aislamento
5345 into vECON_SES_AT.CALIBRE,
5346 vECON_SES_AT.MATERIAL,
5347 vECON_SES_AT.AISLAMIENTO
5348 from conducto
5349 where code = c.CONDUCTOR
5350 and rownum = 1;
5351
5352 if vECON_SES_AT.MATERIAL is null then
5353 rollback;
5354
5355 insert into etl_transformacion_log
5356 values
5357 (vTABLA_EXTRACION,
5358 'T$ECON_SES_AT',
5359 c.code,
5360 1,
5361 cErrorMaterial,
5362 pCircuito,
5363 sysdate);
5364 commit;
5365 continue;
5366
5367 end if;
5368
5369 vECON_SES_AT.G3E_FNO := fno;
5370 vECON_SES_AT.G3E_CNO := fno + 1;
5371 vECON_SES_AT.G3E_CID := 1;
5372 vECON_SES_AT.G3E_FID := fid;
5373 vECON_SES_AT.G3E_ID := ECON_SES_AT_SEQ.NEXTVAL;
5374
5375 insert into T$ECON_SES_AT values vECON_SES_AT;
5376
5377 exception
5378 when others then
5379 rollback;
5380 vERROR := SUBSTR(SQLERRM, 1, 64);
5381
5382 insert into etl_transformacion_log
5383 values
5384 (vTABLA_EXTRACION,
5385 'T$ECON_SES_AT',
5386 c.code,
5387 1,
5388 vERROR,
5389 pCircuito,
5390 sysdate);
5391 commit;
5392 continue;
5393 end;
5394
5395 --ECON_SES_LN
5396 vECON_SES_LN := null;
5397 vECON_SES_LN.G3E_FNO := fno;
5398 vECON_SES_LN.G3E_CNO := fno + 20;
5399 vECON_SES_LN.G3E_CID := 1;
5400 vECON_SES_LN.G3E_FID := fid;
5401 vECON_SES_LN.G3E_ID := ECON_SES_LN_SEQ.NEXTVAL;
5402 vECON_SES_LN.G3E_GEOMETRY := geom;
5403
5404 insert into T$ECON_SES_LN values vECON_SES_LN;
5405
5406 --CCONECTIVIDAD_E
5407 vCONN := null;
5408 vCONN.NODO1_ID := PTC_BuscarNodoConductorSec(c.code, c.elnode1);
5409 vCONN.NODO2_ID := PTC_BuscarNodoConductorSec(c.code, c.elnode2);
5410
5411 if vCONN.NODO1_ID = 0 then
5412 vCONN.NODO1_ID := g3e_node_seq.nextval;
5413 update CHEC_NODOS_ELEC
5414 set nivel = 'LVELNODE', nodo_mde = vCONN.NODO1_ID
5415 where code = c.elnode1;
5416 end if;
5417
5418 if vCONN.NODO2_ID = 0 then
5419 vCONN.NODO2_ID := g3e_node_seq.nextval;
5420 update CHEC_NODOS_ELEC
5421 set nivel = 'LVELNODE', nodo_mde = vCONN.NODO2_ID
5422 where code = c.elnode2;
5423 end if;
5424
5425 vCONN.G3E_FNO := fno;
5426 vCONN.G3E_CNO := 61;
5427 vCONN.G3E_CID := 1;
5428 vCONN.G3E_FID := fid;
5429 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
5430
5431 vCONN.LOCALIZACION := DecodeLocalizacion(c.CLASS);
5432 vCONN.LONGITUD := to_number(c.LENGTH);
5433 vCONN.FASES := DecodeFase(c.PHASES);
5434 vCONN.CIRCUITO := c.FPARENT;
5435 vCONN.TENSION_SECUNDARIA := to_char(c.KVNOM);
5436 vCONN.EST_ESTABLE := 'CLOSED';
5437 vCONN.TIPO_RED := 'SECUNDARIA';
5438 vCONN.EST_OPERATIVO := 'CLOSED';
5439 --vCONN.NODO_TRANSFORM := c.TPARENT;
5440 vCONN.NODO_TRANSFORM_V := c.TPARENT;
5441 vCONN.ESTADO := 'OPERACION';
5442 vCONN.SUBESTACION := substr(pCircuito, 1, 3);
5443
5444 insert into T$CCONECTIVIDAD_E values vCONN;
5445
5446 --CPROPIETARIO
5447 if c.towner in ('C', 'P') then
5448 vPROP := null;
5449 vPROP.PORCENTAJE_PROP_1 := 100;
5450
5451 if c.towner = 'C' and c.owner != 'CHEC' then
5452 insert into etl_transformacion_log
5453 values
5454 (vTABLA_EXTRACION,
5455 'T$CPROPIETARIO',
5456 c.code,
5457 2,
5458 cErrorPropietario,
5459 pCircuito,
5460 sysdate);
5461 commit;
5462 end if;
5463
5464 if c.towner = 'C' then
5465 vPROP.PROPIETARIO_1 := 'CHEC';
5466 elsif c.towner = 'P' then
5467 vPROP.PROPIETARIO_1 := 'PARTICULAR';
5468 vPROP.NOMBRE_PROP := c.owner;
5469 end if;
5470
5471 vPROP.G3E_FNO := fno;
5472 vPROP.G3E_CNO := 69;
5473 vPROP.G3E_CID := 1;
5474 vPROP.G3E_FID := fid;
5475 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
5476
5477 insert into T$CPROPIETARIO values vPROP;
5478
5479 end if;
5480
5481 --CCONTENEDOR
5482
5483 vCCONTENEDOR := null;
5484 select max(G3E_CID)
5485 into vCCONTENEDOR.G3E_CID
5486 from T$CCONTENEDOR
5487 where G3E_FID = fid;
5488
5489 if vCCONTENEDOR.G3E_CID is null then
5490 vCCONTENEDOR.G3E_CID := 0;
5491 end if;
5492
5493 vCCONTENEDOR.G3E_FNO := fno;
5494 vCCONTENEDOR.G3E_CNO := 65;
5495 vCCONTENEDOR.G3E_FID := fid;
5496
5497 for postes in ElementosSostenidos(c.code) loop
5498
5499 vCCONTENEDOR.G3E_CID := vCCONTENEDOR.G3E_CID + 1;
5500 vCCONTENEDOR.G3E_ID := CCONTENEDOR_SEQ.NEXTVAL;
5501 vCCONTENEDOR.G3E_OWNERFID := postes.g3e_fid;
5502 vCCONTENEDOR.G3E_OWNERFNO := postes.g3e_fno;
5503
5504 insert into T$CCONTENEDOR values vCCONTENEDOR;
5505
5506 end loop;
5507
5508 --CPERTENENCIA
5509 vCPERTENENCIA := null;
5510
5511 vCPERTENENCIA.G3E_CID := 1;
5512 vCPERTENENCIA.G3E_ID := CPERTENENCIA_SEQ.NEXTVAL;
5513 vCPERTENENCIA.G3E_FNO := fno;
5514 vCPERTENENCIA.G3E_CNO := 64;
5515 vCPERTENENCIA.G3E_FID := fid;
5516
5517 insert into T$CPERTENENCIA values vCPERTENENCIA;
5518
5519 vRegistros := vRegistros + 1;
5520 insert into ETL_CODE2FID
5521 values
5522 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
5523 commit;
5524 end loop;
5525 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
5526 end;
5527
5528 procedure PT_CONDUCTOR_TRANSMISION(pCircuito in VARCHAR2) is
5529 geom sdo_geometry;
5530
5531 vERROR VARCHAR2(80);
5532 vUSER VARCHAR2(100);
5533
5534 vCCOMUN T$CCOMUN%ROWTYPE;
5535
5536 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
5537 vECON_TRA_AT T$ECON_TRA_AT%ROWTYPE;
5538 vECON_TRA_LN T$ECON_TRA_LN%ROWTYPE;
5539 vCCONTENEDOR T$CCONTENEDOR%ROWTYPE;
5540 vCPERTENENCIA T$CPERTENENCIA%ROWTYPE;
5541 vPROP T$CPROPIETARIO%ROWTYPE;
5542
5543 fid number(10);
5544 fno number(5) := 18900;
5545
5546 vTABLA_EXTRACION VARCHAR2(80) := 'X$CONDUCTOR_TRANSMISION';
5547
5548 vTime timestamp := CURRENT_TIMESTAMP;
5549 vRegistros number(8) := 0;
5550
5551 cursor ElementosSostenidos(cCodigo VARCHAR2) is
5552 select e.g3e_fid, e.g3e_fno
5553 from x$conductor_transmision cp
5554 inner join x$conectividad con
5555 on con.code = cp.elnode1 --elnode1
5556 inner join etl_code2fid e
5557 on e.code = con.phnode --mvphonde
5558 where cp.code = cCodigo
5559 and e.g3e_fno in (17100, 17000, 17400)
5560 union
5561 select e.g3e_fid, e.g3e_fno
5562 from x$conductor_transmision cp
5563 inner join x$conectividad con
5564 on con.code = cp.elnode2 --elnode2
5565 inner join etl_code2fid e
5566 on e.code = con.phnode --mvphonde
5567 where cp.code = cCodigo
5568 and e.g3e_fno in (17100, 17000, 17400);
5569
5570 begin
5571
5572 for c in (select *
5573 from x$conductor_transmision
5574 where fparent = pCircuito) loop
5575 geom := ConvertLine2Sigma(c.xpos1,
5576 c.ypos1,
5577 BuscarZetaNodoEletrico(c.elnode1),
5578 c.xpos2,
5579 c.ypos2,
5580 BuscarZetaNodoEletrico(c.elnode2));
5581
5582 fid := g3e_fid_seq.nextval;
5583
5584 --CCOMUN
5585 vCCOMUN := null;
5586 vCCOMUN.G3E_FNO := fno;
5587 vCCOMUN.G3E_CNO := 60;
5588 vCCOMUN.G3E_CID := 1;
5589 vCCOMUN.G3E_FID := fid;
5590 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
5591 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
5592 vCCOMUN.UBICACION := c.ADDRESS; --
5593 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
5594 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
5595 vCCOMUN.PROYECTO := c.PROJECT; --
5596 vCCOMUN.COOR_X := c.XPOS1; --
5597 vCCOMUN.COOR_Y := c.YPOS1; --
5598 vCCOMUN.COOR_Z := c.ZPOS1;
5599 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
5600 c.code,
5601 pCircuito,
5602 vTABLA_EXTRACION); --
5603 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
5604 c.code,
5605 pCircuito,
5606 vTABLA_EXTRACION); --
5607 vCCOMUN.ESTADO := 'OPERACION'; --
5608 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
5609 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
5610 vCCOMUN.FECHA_COLOCACION := sysdate;
5611 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
5612
5613 vUSER := c.USER_;
5614
5615 vCCOMUN.CONTRATO_INSTALACION := null;
5616 vCCOMUN.TRABAJO_PROGRAMADO := null;
5617 vCCOMUN.TIPO_PROYECTO := null;
5618
5619 if instr(vUSER, '/') > 0 then
5620 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
5621 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
5622 if instr(vUSER, '/') > 0 then
5623 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
5624 1,
5625 instr(vUSER, '/') - 1);
5626 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
5627 instr(vUSER, '/') + 1);
5628 else
5629 vCCOMUN.CONTRATO_INSTALACION := null;
5630 vCCOMUN.TRABAJO_PROGRAMADO := null;
5631 vCCOMUN.TIPO_PROYECTO := null;
5632 insert into etl_transformacion_log
5633 values
5634 (vTABLA_EXTRACION,
5635 'T$CCOMUN',
5636 c.code,
5637 2,
5638 cErrorUser,
5639 pCircuito,
5640 sysdate);
5641 commit;
5642 end if;
5643 end if;
5644
5645 if c.POBLACION = 'U' then
5646 vCCOMUN.CLASIFICACION_MERCADO := 'URBANO';
5647 end if;
5648
5649 if c.POBLACION = 'R' then
5650 vCCOMUN.CLASIFICACION_MERCADO := 'RURAL';
5651 end if;
5652
5653 begin
5654 insert into T$CCOMUN values vCCOMUN;
5655 exception
5656 when others then
5657 vERROR := SUBSTR(SQLERRM, 1, 64);
5658 rollback;
5659 insert into etl_transformacion_log
5660 values
5661 (vTABLA_EXTRACION,
5662 'T$CCOMUN',
5663 c.code,
5664 1,
5665 vERROR,
5666 pCircuito,
5667 sysdate);
5668 commit;
5669 continue;
5670 end;
5671
5672 --ECON_TRA_AT
5673 begin
5674
5675 vECON_TRA_AT := null;
5676
5677 vECON_TRA_AT.CODE_CONDUCTOR := c.CONDUCTOR;
5678 vECON_TRA_AT.CODIGO := c.CODE;
5679 vECON_TRA_AT.CODE_GUARDA := c.GUARDA;
5680
5681 select calibre, material
5682 into vECON_TRA_AT.CALIBRE, vECON_TRA_AT.MATERIAL
5683 from conducto
5684 where code = c.CONDUCTOR
5685 and rownum = 1;
5686
5687 vECON_TRA_AT.CALIBRE_CABLEG := null;
5688 vECON_TRA_AT.MATERIAL_CABLEG := null;
5689
5690 if vECON_TRA_AT.CODE_GUARDA is not null then
5691 select calibre, material
5692 into vECON_TRA_AT.CALIBRE_CABLEG, vECON_TRA_AT.MATERIAL_CABLEG
5693 from conducto
5694 where code = c.GUARDA
5695 and rownum = 1;
5696 end if;
5697
5698 vECON_TRA_AT.G3E_FNO := fno;
5699 vECON_TRA_AT.G3E_CNO := fno + 1;
5700 vECON_TRA_AT.G3E_CID := 1;
5701 vECON_TRA_AT.G3E_FID := fid;
5702 vECON_TRA_AT.G3E_ID := ECON_TRA_AT_SEQ.NEXTVAL;
5703
5704 insert into T$ECON_TRA_AT values vECON_TRA_AT;
5705
5706 exception
5707 when others then
5708 rollback;
5709 insert into etl_transformacion_log
5710 values
5711 (vTABLA_EXTRACION,
5712 'T$ECON_TRA_AT',
5713 c.code,
5714 1,
5715 cErrorAssemblyFisico || c.code,
5716 pCircuito,
5717 sysdate);
5718 commit;
5719 continue;
5720 end;
5721
5722 --ECON_TRA_LN
5723 vECON_TRA_LN := null;
5724 vECON_TRA_LN.G3E_FNO := fno;
5725 vECON_TRA_LN.G3E_CNO := fno + 20;
5726 vECON_TRA_LN.G3E_CID := 1;
5727 vECON_TRA_LN.G3E_FID := fid;
5728 vECON_TRA_LN.G3E_ID := ECON_TRA_LN_SEQ.NEXTVAL;
5729 vECON_TRA_LN.G3E_GEOMETRY := geom;
5730
5731 insert into T$ECON_TRA_LN values vECON_TRA_LN;
5732
5733 --CCONECTIVIDAD_E
5734 vCONN := null;
5735 vCONN.NODO1_ID := PTC_BuscarNodoConductor(c.code, c.elnode1);
5736 vCONN.NODO2_ID := PTC_BuscarNodoConductor(c.code, c.elnode2);
5737
5738 if vCONN.NODO1_ID = 0 then
5739 vCONN.NODO1_ID := g3e_node_seq.nextval;
5740 update CHEC_NODOS_ELEC
5741 set nivel = 'MVELNODE', nodo_mde = vCONN.NODO1_ID
5742 where code = c.elnode1;
5743 end if;
5744
5745 if vCONN.NODO2_ID = 0 then
5746 vCONN.NODO2_ID := g3e_node_seq.nextval;
5747 update CHEC_NODOS_ELEC
5748 set nivel = 'MVELNODE', nodo_mde = vCONN.NODO2_ID
5749 where code = c.elnode2;
5750 end if;
5751
5752 vCONN.G3E_FNO := fno;
5753 vCONN.G3E_CNO := 61;
5754 vCONN.G3E_CID := 1;
5755 vCONN.G3E_FID := fid;
5756 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
5757
5758 vCONN.LOCALIZACION := DecodeLocalizacion(c.CLASS);
5759 vCONN.LONGITUD := to_number(c.LENGTH);
5760 vCONN.FASES := DecodeFase(c.PHASES);
5761 vCONN.CIRCUITO := c.FPARENT;
5762 vCONN.TENSION := to_char(c.KVNOM);
5763 vCONN.EST_ESTABLE := 'CLOSED';
5764 vCONN.EST_OPERATIVO := 'CLOSED';
5765 vCONN.ESTADO := 'OPERACION';
5766 vCONN.SUBESTACION := substr(pCircuito, 1, 3);
5767
5768 vCONN.TIPO_RED := DecodeTipoRed(c.KVNOM);
5769
5770 insert into T$CCONECTIVIDAD_E values vCONN;
5771
5772 --CPROPIETARIO
5773 if c.towner in ('C', 'P') then
5774 vPROP := null;
5775 vPROP.PORCENTAJE_PROP_1 := 100;
5776
5777 if c.towner = 'C' and c.owner != 'CHEC' then
5778 insert into etl_transformacion_log
5779 values
5780 (vTABLA_EXTRACION,
5781 'T$CPROPIETARIO',
5782 c.code,
5783 2,
5784 cErrorPropietario,
5785 pCircuito,
5786 sysdate);
5787 commit;
5788 end if;
5789
5790 if c.towner = 'C' then
5791 vPROP.PROPIETARIO_1 := 'CHEC';
5792 elsif c.towner = 'P' then
5793 vPROP.PROPIETARIO_1 := 'PARTICULAR';
5794 vPROP.NOMBRE_PROP := c.owner;
5795 end if;
5796
5797 vPROP.G3E_FNO := fno;
5798 vPROP.G3E_CNO := 69;
5799 vPROP.G3E_CID := 1;
5800 vPROP.G3E_FID := fid;
5801 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
5802
5803 insert into T$CPROPIETARIO values vPROP;
5804
5805 end if;
5806
5807 --CCONTENEDOR
5808 vCCONTENEDOR := null;
5809
5810 select max(G3E_CID)
5811 into vCCONTENEDOR.G3E_CID
5812 from T$CCONTENEDOR
5813 where G3E_FID = fid;
5814
5815 if vCCONTENEDOR.G3E_CID is null then
5816 vCCONTENEDOR.G3E_CID := 0;
5817 end if;
5818
5819 vCCONTENEDOR.G3E_FNO := fno;
5820 vCCONTENEDOR.G3E_CNO := 65;
5821 vCCONTENEDOR.G3E_FID := fid;
5822
5823 for torres in ElementosSostenidos(c.code) loop
5824
5825 vCCONTENEDOR.G3E_CID := vCCONTENEDOR.G3E_CID + 1;
5826 vCCONTENEDOR.G3E_ID := CCONTENEDOR_SEQ.NEXTVAL;
5827 vCCONTENEDOR.G3E_OWNERFID := torres.g3e_fid;
5828 vCCONTENEDOR.G3E_OWNERFNO := torres.g3e_fno;
5829
5830 insert into T$CCONTENEDOR values vCCONTENEDOR;
5831
5832 end loop;
5833
5834 --CPERTENENCIA
5835 vCPERTENENCIA := null;
5836
5837 vCPERTENENCIA.G3E_CID := 1;
5838 vCPERTENENCIA.G3E_ID := CPERTENENCIA_SEQ.NEXTVAL;
5839 vCPERTENENCIA.G3E_FNO := fno;
5840 vCPERTENENCIA.G3E_CNO := 64;
5841 vCPERTENENCIA.G3E_FID := fid;
5842
5843 insert into T$CPERTENENCIA values vCPERTENENCIA;
5844
5845 vRegistros := vRegistros + 1;
5846 insert into ETL_CODE2FID
5847 values
5848 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
5849 commit;
5850 end loop;
5851 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
5852 end;
5853
5854 procedure PT_BARRAJE(pCircuito in VARCHAR2) is
5855 geom sdo_geometry;
5856
5857 vERROR VARCHAR2(80);
5858 vUSER VARCHAR2(100);
5859
5860 vCCOMUN T$CCOMUN%ROWTYPE;
5861 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
5862 vEBARRAJE_AT T$EBARRAJE_AT%ROWTYPE;
5863 vEBARRAJE_LN T$EBARRAJE_LN%ROWTYPE;
5864
5865 fid number(10);
5866 fno number(5) := 18700;
5867
5868 vCount NUMBER(3);
5869
5870 vTABLA_EXTRACION VARCHAR2(80) := 'X$BARRAJE';
5871
5872 vTime timestamp := CURRENT_TIMESTAMP;
5873 vRegistros number(8) := 0;
5874
5875 begin
5876
5877 for c in (select *
5878 from x$barraje
5879 where substation = substr(pCircuito, 1, 3)) loop
5880
5881 select count(1) into vCount from T$EBARRAJE_AT where codigo = c.code;
5882 if vCount > 0 then
5883 continue;
5884 end if;
5885 geom := ConvertPoint2Barraje(c.xpos, c.ypos, c.orientatio);
5886
5887 fid := g3e_fid_seq.nextval;
5888 --CCOMUN
5889 vCCOMUN := null;
5890 vCCOMUN.G3E_FNO := fno;
5891 vCCOMUN.G3E_CNO := 60;
5892 vCCOMUN.G3E_CID := 1;
5893 vCCOMUN.G3E_FID := fid;
5894 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
5895 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
5896 vCCOMUN.UBICACION := c.ADDRESS; --
5897 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
5898 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
5899 vCCOMUN.PROYECTO := c.PROJECT; --
5900 vCCOMUN.COOR_X := c.XPOS; --
5901 vCCOMUN.COOR_Y := c.YPOS; --
5902 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
5903 c.code,
5904 pCircuito,
5905 vTABLA_EXTRACION); --
5906 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
5907 c.code,
5908 pCircuito,
5909 vTABLA_EXTRACION); --
5910 vCCOMUN.ESTADO := 'OPERACION'; --
5911 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
5912 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
5913 vCCOMUN.FECHA_COLOCACION := sysdate;
5914 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
5915
5916 vUSER := c.USER_;
5917
5918 vCCOMUN.CONTRATO_INSTALACION := null;
5919 vCCOMUN.TRABAJO_PROGRAMADO := null;
5920 vCCOMUN.TIPO_PROYECTO := null;
5921
5922 if instr(vUSER, '/') > 0 then
5923 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
5924 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
5925 if instr(vUSER, '/') > 0 then
5926 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
5927 1,
5928 instr(vUSER, '/') - 1);
5929 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
5930 instr(vUSER, '/') + 1);
5931 else
5932 vCCOMUN.CONTRATO_INSTALACION := null;
5933 vCCOMUN.TRABAJO_PROGRAMADO := null;
5934 vCCOMUN.TIPO_PROYECTO := null;
5935 insert into etl_transformacion_log
5936 values
5937 (vTABLA_EXTRACION,
5938 'T$CCOMUN',
5939 c.code,
5940 2,
5941 cErrorUser,
5942 pCircuito,
5943 sysdate);
5944 commit;
5945 end if;
5946 end if;
5947
5948 begin
5949 insert into T$CCOMUN values vCCOMUN;
5950 exception
5951 when others then
5952 vERROR := SUBSTR(SQLERRM, 1, 64);
5953 rollback;
5954 insert into etl_transformacion_log
5955 values
5956 (vTABLA_EXTRACION,
5957 'T$CCOMUN',
5958 c.code,
5959 1,
5960 vERROR,
5961 pCircuito,
5962 sysdate);
5963 commit;
5964 continue;
5965 end;
5966
5967 --EBARRAJE_AT
5968 begin
5969 vEBARRAJE_AT := null;
5970 vEBARRAJE_AT.G3E_FNO := fno;
5971 vEBARRAJE_AT.G3E_CNO := fno + 1;
5972 vEBARRAJE_AT.G3E_CID := 1;
5973 vEBARRAJE_AT.G3E_FID := fid;
5974 vEBARRAJE_AT.G3E_ID := EBARRAJE_AT_SEQ.NEXTVAL;
5975
5976 vEBARRAJE_AT.CODIGO := c.CODE;
5977 vEBARRAJE_AT.MVA3PH_SCC := c.MVA3PH_SCC;
5978 vEBARRAJE_AT.MVA1PH_SCC := c.MVA1PH_SCC;
5979
5980 insert into T$EBARRAJE_AT values vEBARRAJE_AT;
5981 exception
5982 when others then
5983 rollback;
5984 insert into etl_transformacion_log
5985 values
5986 (vTABLA_EXTRACION,
5987 'T$EBARRAJE_AT',
5988 c.code,
5989 1,
5990 cErrorGeneral,
5991 pCircuito,
5992 sysdate);
5993 commit;
5994 continue;
5995 end;
5996
5997 --EBARRAJE_LN
5998 vEBARRAJE_LN := null;
5999 vEBARRAJE_LN.G3E_FNO := fno;
6000 vEBARRAJE_LN.G3E_CNO := fno + 20;
6001 vEBARRAJE_LN.G3E_CID := 1;
6002 vEBARRAJE_LN.G3E_FID := fid;
6003 vEBARRAJE_LN.G3E_ID := EBARRAJE_LN_SEQ.NEXTVAL;
6004 vEBARRAJE_LN.G3E_GEOMETRY := geom;
6005
6006 insert into T$EBARRAJE_LN values vEBARRAJE_LN;
6007
6008 --CCONECTIVIDAD_E
6009 vCONN := null;
6010 vCONN.CAPACIDAD_NOMINAL := c.AMP;
6011
6012 vCONN.EST_ESTABLE := 'CLOSED';
6013 vCONN.EST_OPERATIVO := 'CLOSED';
6014 vCONN.ESTADO := 'OPERACION';
6015
6016 vCONN.CIRCUITO := null;
6017 vCONN.TENSION := to_char(c.KV);
6018 vCONN.NODO1_ID := g3e_node_seq.nextval;
6019 vCONN.NODO2_ID := vCONN.NODO1_ID;
6020
6021 vCONN.G3E_FNO := fno;
6022 vCONN.G3E_CNO := 61;
6023 vCONN.G3E_CID := 1;
6024 vCONN.G3E_FID := fid;
6025 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
6026 vCONN.SUBESTACION := substr(pCircuito, 1, 3);
6027
6028 insert into T$CCONECTIVIDAD_E values vCONN;
6029
6030 vRegistros := vRegistros + 1;
6031 insert into ETL_CODE2FID
6032 values
6033 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
6034
6035 commit;
6036 end loop;
6037 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
6038 end;
6039
6040 procedure PT_SUBESTACION(pCircuito in VARCHAR2) is
6041 geom sdo_geometry;
6042
6043 vERROR VARCHAR2(80);
6044 vUSER VARCHAR2(100);
6045
6046 vCCOMUN T$CCOMUN%ROWTYPE;
6047 vESUBESTA_AT T$ESUBESTA_AT%ROWTYPE;
6048 vESUBESTA_AR T$ESUBESTA_AR%ROWTYPE;
6049
6050 fid number(10);
6051 fno number(5) := 17700;
6052
6053 vCount NUMBER(3);
6054
6055 vTABLA_EXTRACION VARCHAR2(80) := 'X$SUBESTACION';
6056
6057 vTime timestamp := CURRENT_TIMESTAMP;
6058 vRegistros number(8) := 0;
6059
6060 begin
6061
6062 for c in (select *
6063 from x$subestacion
6064 where code = substr(pCircuito, 1, 3)) loop
6065
6066 select count(1) into vCount from T$ESUBESTA_AT where codigo = c.code;
6067 if vCount > 0 then
6068 continue;
6069 end if;
6070 geom := ConvertPoint2Subestacion(c.xpos, c.ypos, 0.15);
6071
6072 fid := g3e_fid_seq.nextval;
6073 --CCOMUN
6074 vCCOMUN := null;
6075 vCCOMUN.G3E_FNO := fno;
6076 vCCOMUN.G3E_CNO := 60;
6077 vCCOMUN.G3E_CID := 1;
6078 vCCOMUN.G3E_FID := fid;
6079 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
6080 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
6081 vCCOMUN.UBICACION := c.ADDRESS; --
6082 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
6083 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
6084 vCCOMUN.PROYECTO := c.PROJECT; --
6085 vCCOMUN.COOR_X := c.XPOS; --
6086 vCCOMUN.COOR_Y := c.YPOS; --
6087 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
6088 c.code,
6089 pCircuito,
6090 vTABLA_EXTRACION); --
6091 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
6092 c.code,
6093 pCircuito,
6094 vTABLA_EXTRACION); --
6095 vCCOMUN.ESTADO := 'OPERACION'; --
6096 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
6097 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
6098 vCCOMUN.FECHA_COLOCACION := sysdate;
6099 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
6100
6101 vUSER := c.USER_;
6102
6103 vCCOMUN.CONTRATO_INSTALACION := null;
6104 vCCOMUN.TRABAJO_PROGRAMADO := null;
6105 vCCOMUN.TIPO_PROYECTO := null;
6106
6107 if instr(vUSER, '/') > 0 then
6108 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
6109 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
6110 if instr(vUSER, '/') > 0 then
6111 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
6112 1,
6113 instr(vUSER, '/') - 1);
6114 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
6115 instr(vUSER, '/') + 1);
6116 else
6117 vCCOMUN.CONTRATO_INSTALACION := null;
6118 vCCOMUN.TRABAJO_PROGRAMADO := null;
6119 vCCOMUN.TIPO_PROYECTO := null;
6120 insert into etl_transformacion_log
6121 values
6122 (vTABLA_EXTRACION,
6123 'T$CCOMUN',
6124 c.code,
6125 2,
6126 cErrorUser,
6127 pCircuito,
6128 sysdate);
6129 commit;
6130 end if;
6131 end if;
6132
6133 begin
6134 insert into T$CCOMUN values vCCOMUN;
6135 exception
6136 when others then
6137 vERROR := SUBSTR(SQLERRM, 1, 64);
6138 rollback;
6139 insert into etl_transformacion_log
6140 values
6141 (vTABLA_EXTRACION,
6142 'T$CCOMUN',
6143 c.code,
6144 1,
6145 vERROR,
6146 pCircuito,
6147 sysdate);
6148 commit;
6149 continue;
6150 end;
6151
6152 --ESUBESTA_AT
6153 begin
6154 vESUBESTA_AT := null;
6155 vESUBESTA_AT.G3E_FNO := fno;
6156 vESUBESTA_AT.G3E_CNO := fno + 1;
6157 vESUBESTA_AT.G3E_CID := 1;
6158 vESUBESTA_AT.G3E_FID := fid;
6159 vESUBESTA_AT.G3E_ID := ESUBESTA_AT_SEQ.NEXTVAL;
6160
6161 vESUBESTA_AT.CODIGO := c.CODE;
6162 vESUBESTA_AT.NOMBRE_SUB := c.DESCRIPTIO;
6163
6164 insert into T$ESUBESTA_AT values vESUBESTA_AT;
6165 exception
6166 when others then
6167 rollback;
6168 insert into etl_transformacion_log
6169 values
6170 (vTABLA_EXTRACION,
6171 'T$ESUBESTA_AT',
6172 c.code,
6173 1,
6174 cErrorGeneral,
6175 pCircuito,
6176 sysdate);
6177 commit;
6178 continue;
6179 end;
6180
6181 --ESUBESTA_AR
6182 vESUBESTA_AR := null;
6183 vESUBESTA_AR.G3E_FNO := fno;
6184 vESUBESTA_AR.G3E_CNO := fno + 30;
6185 vESUBESTA_AR.G3E_CID := 1;
6186 vESUBESTA_AR.G3E_FID := fid;
6187 vESUBESTA_AR.G3E_ID := ESUBESTA_AR_SEQ.NEXTVAL;
6188 vESUBESTA_AR.G3E_GEOMETRY := geom;
6189
6190 insert into T$ESUBESTA_AR values vESUBESTA_AR;
6191
6192 vRegistros := vRegistros + 1;
6193 insert into ETL_CODE2FID
6194 values
6195 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
6196
6197 commit;
6198 end loop;
6199 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
6200 end;
6201
6202 procedure PT_TRANSF_POT(pCircuito in varchar2) is
6203 geom sdo_geometry;
6204
6205 vERROR VARCHAR2(80);
6206
6207 vCCOMUN T$CCOMUN%ROWTYPE;
6208 vETRA_PTNC_AT T$ETRA_PTNC_AT%ROWTYPE;
6209 vETRA_PTNC_PT T$ETRA_PTNC_PT%ROWTYPE;
6210
6211 fid number(10);
6212 fno number(5) := 29000;
6213
6214 vTABLA_EXTRACION VARCHAR2(80) := 'X$TRANSF_POT';
6215
6216 vTime timestamp := CURRENT_TIMESTAMP;
6217 vRegistros number(8) := 0;
6218
6219 begin
6220
6221 for c in (select * from X$TRANSF_POT) loop
6222 geom := ConvertPoint2Subestacion(c.xpos, c.ypos, 15);
6223
6224 fid := g3e_fid_seq.nextval;
6225 --CCOMUN
6226 vCCOMUN := null;
6227 vCCOMUN.G3E_FNO := fno;
6228 vCCOMUN.G3E_CNO := 60;
6229 vCCOMUN.G3E_CID := 1;
6230 vCCOMUN.G3E_FID := fid;
6231 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
6232 --vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
6233 --vCCOMUN.UBICACION := c.ADDRESS; --
6234 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
6235 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
6236 --vCCOMUN.PROYECTO := c.PROJECT; --
6237 vCCOMUN.COOR_X := c.XPOS; --
6238 vCCOMUN.COOR_Y := c.YPOS; --
6239 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
6240 c.code,
6241 pCircuito,
6242 vTABLA_EXTRACION); --
6243 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
6244 c.code,
6245 pCircuito,
6246 vTABLA_EXTRACION); --
6247 vCCOMUN.ESTADO := 'OPERACION'; --
6248 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
6249 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
6250 vCCOMUN.FECHA_COLOCACION := sysdate;
6251 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
6252
6253 begin
6254 insert into T$CCOMUN values vCCOMUN;
6255 exception
6256 when others then
6257 vERROR := SUBSTR(SQLERRM, 1, 64);
6258 rollback;
6259 insert into etl_transformacion_log
6260 values
6261 (vTABLA_EXTRACION,
6262 'T$CCOMUN',
6263 c.code,
6264 1,
6265 vERROR,
6266 pCircuito,
6267 sysdate);
6268 commit;
6269 continue;
6270 end;
6271
6272 --ETRA_PTNC_AT
6273 begin
6274 vETRA_PTNC_AT := null;
6275 vETRA_PTNC_AT.G3E_FNO := fno;
6276 vETRA_PTNC_AT.G3E_CNO := fno + 1;
6277 vETRA_PTNC_AT.G3E_CID := 1;
6278 vETRA_PTNC_AT.G3E_FID := fid;
6279 vETRA_PTNC_AT.G3E_ID := ETRA_PTNC_AT_SEQ.NEXTVAL;
6280
6281 vETRA_PTNC_AT.CODIGO_PT := c.CODE;
6282 vETRA_PTNC_AT.FABRICANTE := c.MAKER;
6283 vETRA_PTNC_AT.PRECISION := c.PRESS;
6284 vETRA_PTNC_AT.RELACION := c.RELAS;
6285 vETRA_PTNC_AT.REL_ACTUAL := c.RACTUAL;
6286 vETRA_PTNC_AT.IMPEDANCIA := c.BURDEN;
6287 vETRA_PTNC_AT.CLASE := c.CLASE;
6288 vETRA_PTNC_AT.TIPO_PT := c.TIPO;
6289 vETRA_PTNC_AT.ERROR_FASE := c.EFASE;
6290 vETRA_PTNC_AT.ERROR_MAGN := c.EMAG;
6291
6292 insert into T$ETRA_PTNC_AT values vETRA_PTNC_AT;
6293 exception
6294 when others then
6295 rollback;
6296 insert into etl_transformacion_log
6297 values
6298 (vTABLA_EXTRACION,
6299 'T$ETRA_PTNC_AT',
6300 c.code,
6301 1,
6302 cErrorGeneral,
6303 pCircuito,
6304 sysdate);
6305 commit;
6306 continue;
6307 end;
6308
6309 --ETRA_PTNC_PT
6310 vETRA_PTNC_PT := null;
6311 vETRA_PTNC_PT.G3E_FNO := fno;
6312 vETRA_PTNC_PT.G3E_CNO := fno + 10;
6313 vETRA_PTNC_PT.G3E_CID := 1;
6314 vETRA_PTNC_PT.G3E_FID := fid;
6315 vETRA_PTNC_PT.G3E_ID := ETRA_PTNC_PT_SEQ.NEXTVAL;
6316 vETRA_PTNC_PT.G3E_GEOMETRY := geom;
6317
6318 insert into T$ETRA_PTNC_PT values vETRA_PTNC_PT;
6319
6320 vRegistros := vRegistros + 1;
6321 insert into ETL_CODE2FID
6322 values
6323 (vTABLA_EXTRACION, c.code, fno, fid, null);
6324
6325 commit;
6326 end loop;
6327 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
6328 end;
6329
6330 procedure PT_TRANSFORMADOR(pCircuito in VARCHAR2) is
6331 geom sdo_geometry;
6332
6333 vERROR VARCHAR2(80);
6334 vUSER VARCHAR2(100);
6335
6336 vCCOMUN T$CCOMUN%ROWTYPE;
6337 vPROP T$CPROPIETARIO%ROWTYPE;
6338 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
6339 vETRANSFO_AT T$ETRANSFO_AT%ROWTYPE;
6340 vETRANSFO_PT T$ETRANSFO_PT%ROWTYPE;
6341
6342 fid number(10);
6343 fno number(5) := 20400;
6344
6345 vTABLA_EXTRACION VARCHAR2(80) := 'X$TRANSFORMADOR';
6346
6347 vTime timestamp := CURRENT_TIMESTAMP;
6348 vRegistros number(8) := 0;
6349
6350 begin
6351
6352 for c in (select * from X$TRANSFORMADOR where fparent = pCircuito) loop
6353 geom := ConvertPoint2Sigma(c.xpos, c.ypos);
6354
6355 fid := g3e_fid_seq.nextval;
6356
6357 --CCOMUN
6358 vCCOMUN := null;
6359 vCCOMUN.G3E_FNO := fno;
6360 vCCOMUN.G3E_CNO := 60;
6361 vCCOMUN.G3E_CID := 1;
6362 vCCOMUN.G3E_FID := fid;
6363 vCCOMUN.G3E_ID := CCOMUN_SEQ.NEXTVAL;
6364 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
6365 vCCOMUN.UBICACION := c.ADDRESS; --
6366 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
6367 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
6368 vCCOMUN.PROYECTO := c.PROJECT; --
6369 vCCOMUN.FECHA_REMPLAZO := c.DATE_REM;
6370 vCCOMUN.FECHA_FABRICACION := c.DATE_FAB;
6371 vCCOMUN.FECHA_OPERACION := c.DATE_INST;
6372 vCCOMUN.COOR_X := c.XPOS; --
6373 vCCOMUN.COOR_Y := c.YPOS; --
6374 vCCOMUN.COOR_Z := c.ZPOS;
6375 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
6376 c.code,
6377 pCircuito,
6378 vTABLA_EXTRACION); --
6379
6380 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
6381 c.code,
6382 pCircuito,
6383 vTABLA_EXTRACION); --
6384 vCCOMUN.ESTADO := 'OPERACION'; --
6385 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
6386 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
6387 vCCOMUN.FECHA_COLOCACION := sysdate;
6388 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
6389
6390 vUSER := c.USER_;
6391
6392 vCCOMUN.CONTRATO_INSTALACION := null;
6393 vCCOMUN.TRABAJO_PROGRAMADO := null;
6394 vCCOMUN.TIPO_PROYECTO := null;
6395
6396 if instr(vUSER, '/') > 0 then
6397 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
6398 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
6399 if instr(vUSER, '/') > 0 then
6400 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
6401 1,
6402 instr(vUSER, '/') - 1);
6403 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
6404 instr(vUSER, '/') + 1);
6405 else
6406 vCCOMUN.CONTRATO_INSTALACION := null;
6407 vCCOMUN.TRABAJO_PROGRAMADO := null;
6408 vCCOMUN.TIPO_PROYECTO := null;
6409 insert into etl_transformacion_log
6410 values
6411 (vTABLA_EXTRACION,
6412 'T$CCOMUN',
6413 c.code,
6414 2,
6415 cErrorUser,
6416 pCircuito,
6417 sysdate);
6418 commit;
6419 end if;
6420 end if;
6421
6422 if c.POBLACION = 'U' then
6423 vCCOMUN.CLASIFICACION_MERCADO := 'URBANO';
6424 end if;
6425
6426 if c.POBLACION = 'R' then
6427 vCCOMUN.CLASIFICACION_MERCADO := 'RURAL';
6428 end if;
6429
6430 begin
6431 insert into T$CCOMUN values vCCOMUN;
6432 exception
6433 when others then
6434 vERROR := SUBSTR(SQLERRM, 1, 64);
6435 rollback;
6436 insert into etl_transformacion_log
6437 values
6438 (vTABLA_EXTRACION,
6439 'T$CCOMUN',
6440 c.code,
6441 1,
6442 vERROR,
6443 pCircuito,
6444 sysdate);
6445 commit;
6446 continue;
6447 end;
6448
6449 --ETRANSFO_AT
6450
6451 begin
6452 vETRANSFO_AT := null;
6453 vETRANSFO_AT.CODIGO := c.CODE;
6454 vETRANSFO_AT.TIPO_PROPIETARIO := c.OWNER1;
6455 case c.AUTOPROT
6456 when 'S' then
6457 vETRANSFO_AT.TIPO_PROTECCION := 'Autoprotegido';
6458 when 'N' then
6459 vETRANSFO_AT.TIPO_PROTECCION := 'Convencional';
6460 else
6461 vETRANSFO_AT.TIPO_PROTECCION := null;
6462 end case;
6463
6464 vETRANSFO_AT.IMPEDANCIA := c.IMPEDANCE;
6465 vETRANSFO_AT.NRO_TRANSFORMADOR := -1;
6466 vETRANSFO_AT.FABRICANTE_TRAFO := c.MARCA;
6467 vETRANSFO_AT.TIPO_SUBESTACION := DecodeTipoSubestacion(c.TIPOSUB);
6468 vETRANSFO_AT.AREA := c.ZONE; --MIRAR ESEte
6469 vETRANSFO_AT.USO := c.CASO;
6470 vETRANSFO_AT.NRO_TRANSFORMADOR_V := c.INVNUMBER;
6471 if vETRANSFO_AT.USO is null then
6472 vETRANSFO_AT.USO := 'NORMAL';
6473 end if;
6474
6475 vETRANSFO_AT.DESCNX_CON_REGLETA := 'NO';
6476
6477 vETRANSFO_AT.BANCO := c.NUM_TRFS;
6478 vETRANSFO_AT.SERIAL := c.SERIAL;
6479 vETRANSFO_AT.TENSION_CREG := c.NCALIDAD;
6480 vETRANSFO_AT.ZONA_RIESGO := 'DESCONOCIDO';
6481
6482 if vCCOMUN.DEPARTAMENTO is null or vCCOMUN.MUNICIPIO is null then
6483 rollback;
6484 insert into etl_transformacion_log
6485 values
6486 (vTABLA_EXTRACION,
6487 'T$ETRANSFO_AT',
6488 c.code,
6489 1,
6490 cErrorDepMun,
6491 pCircuito,
6492 sysdate);
6493 commit;
6494 continue;
6495 end if;
6496
6497 vETRANSFO_AT.DEPARTAMENTO := vCCOMUN.DEPARTAMENTO;
6498 vETRANSFO_AT.MUNICIPIO := vCCOMUN.MUNICIPIO;
6499
6500 vETRANSFO_AT.G3E_FNO := fno;
6501 vETRANSFO_AT.G3E_CNO := fno + 1;
6502 vETRANSFO_AT.G3E_CID := 1;
6503 vETRANSFO_AT.G3E_FID := fid;
6504 vETRANSFO_AT.G3E_id := ETRANSFO_AT_SEQ.NEXTVAL;
6505
6506 insert into T$ETRANSFO_AT values vETRANSFO_AT;
6507
6508 exception
6509 when others then
6510 vERROR := SUBSTR(SQLERRM, 1, 64);
6511 rollback;
6512 insert into etl_transformacion_log
6513 values
6514 (vTABLA_EXTRACION,
6515 'T$ETRANSFO_AT',
6516 c.code,
6517 1,
6518 vERROR,
6519 pCircuito,
6520 sysdate);
6521 commit;
6522 continue;
6523 end;
6524
6525 --ETRANSFO_PT
6526 vETRANSFO_PT := null;
6527 vETRANSFO_PT.G3E_FNO := fno;
6528 vETRANSFO_PT.G3E_CNO := fno + 10;
6529 vETRANSFO_PT.G3E_CID := 1;
6530 vETRANSFO_PT.G3E_FID := fid;
6531 vETRANSFO_PT.G3E_ID := ETRANSFO_PT_SEQ.NEXTVAL;
6532 vETRANSFO_PT.G3E_GEOMETRY := geom;
6533
6534 insert into T$ETRANSFO_PT values vETRANSFO_PT;
6535
6536 --CCONECTIVIDAD_E
6537 vCONN := null;
6538 -- vCONN.NODO_TRANSFORM := c.CODE;
6539 vCONN.FASES := DecodeFase(c.PHASES);
6540 vCONN.CIRCUITO := c.FPARENT;
6541 case c.TIPO_RED
6542 when 'S' then
6543 vCONN.LOCALIZACION := 'SUBTERRANEO';
6544 when 'A' then
6545 vCONN.LOCALIZACION := 'AEREO';
6546 else
6547 vCONN.LOCALIZACION := null;
6548 end case;
6549
6550 vCONN.EST_ESTABLE := 'CLOSED';
6551 vCONN.EST_OPERATIVO := 'CLOSED';
6552 vCONN.ESTADO := 'OPERACION';
6553
6554 select to_char(KVA), to_char(KV1), to_char(KV2)
6555 into vCONN.CAPACIDAD_NOMINAL,
6556 vCONN.TENSION,
6557 vCONN.TENSION_SECUNDARIA
6558 from trftypes
6559 where code = c.trftype
6560 and rownum = 1;
6561
6562 vCONN.CIRCUITO := c.FPARENT;
6563 vCONN.TIPO_RED := 'PRIMARIA';
6564
6565 /*
6566 begin
6567 select kvnom
6568 into vCONN.TENSION
6569 from x$conectividad
6570 where phnode = c.phnode;
6571 vCONN.TIPO_RED := DecodeTipoRed(vCONN.TENSION);
6572 exception
6573 when no_data_found then
6574 null;
6575 end;
6576 */
6577 -- vCONN.TENSION := to_char(c.KV);
6578
6579 vCONN.NODO1_ID := PTC_BuscarNodoTransforAlta(c.elnode);
6580 vCONN.NODO2_ID := PTC_BuscarNodoTransforBaja(c.lvelnode);
6581
6582 vCONN.G3E_FNO := fno;
6583 vCONN.G3E_CNO := 61;
6584 vCONN.G3E_CID := 1;
6585 vCONN.G3E_FID := fid;
6586 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
6587 vCONN.SUBESTACION := substr(pCircuito, 1, 3);
6588
6589 insert into T$CCONECTIVIDAD_E values vCONN;
6590
6591 --CPROPIETARIO
6592 if c.owner1 in ('S', 'N') then
6593 vPROP := null;
6594 vPROP.PORCENTAJE_PROP_1 := 100;
6595
6596 if c.owner1 = 'N' and c.owner != 'CHEC' then
6597 insert into etl_transformacion_log
6598 values
6599 (vTABLA_EXTRACION,
6600 'T$CPROPIETARIO',
6601 c.code,
6602 2,
6603 cErrorPropietario,
6604 pCircuito,
6605 sysdate);
6606 commit;
6607 end if;
6608
6609 if c.owner1 = 'N' then
6610 vPROP.PROPIETARIO_1 := 'CHEC';
6611 elsif c.owner1 = 'S' then
6612 vPROP.PROPIETARIO_1 := 'PARTICULAR';
6613 vPROP.NOMBRE_PROP := c.owner;
6614 end if;
6615
6616 vPROP.G3E_FNO := fno;
6617 vPROP.G3E_CNO := 69;
6618 vPROP.G3E_CID := 1;
6619 vPROP.G3E_FID := fid;
6620 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
6621
6622 insert into T$CPROPIETARIO values vPROP;
6623
6624 end if;
6625
6626 vRegistros := vRegistros + 1;
6627 insert into ETL_CODE2FID
6628 values
6629 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
6630 commit;
6631 end loop;
6632 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
6633 end;
6634
6635 procedure PT_PARARRAYO(pCircuito in VARCHAR2) is
6636 geom sdo_geometry;
6637
6638 vERROR VARCHAR2(80);
6639
6640 vCCOMUN T$CCOMUN%ROWTYPE;
6641 vPROP T$CPROPIETARIO%ROWTYPE;
6642 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
6643 vEPARARRA_AT T$EPARARRA_AT%ROWTYPE;
6644 vEPARARRA_PT T$EPARARRA_PT%ROWTYPE;
6645
6646 fid number(10);
6647 fno number(5) := 20100;
6648
6649 vTABLA_EXTRACION VARCHAR2(80) := 'X$PARARRAYOS';
6650
6651 vTime timestamp := CURRENT_TIMESTAMP;
6652 vRegistros number(8) := 0;
6653
6654 begin
6655
6656 for c in (select p.*,
6657 c.owner,
6658 c.towner,
6659 c.isconnecte,
6660 c.spacing,
6661 c.height,
6662 c.xpos,
6663 c.ypos,
6664 c.phases,
6665 c.assembly,
6666 c.fparent,
6667 c.code elnode
6668 from x$pararrayos p
6669 inner join x$conectividad c
6670 on c.prayos = p.code
6671 where c.fparent = pCircuito) loop
6672
6673 geom := ConvertPoint2Sigma(c.xpos, c.ypos);
6674
6675 fid := g3e_fid_seq.nextval;
6676
6677 --CCOMUN
6678 vCCOMUN := null;
6679 vCCOMUN.G3E_FNO := fno;
6680 vCCOMUN.G3E_CNO := 60;
6681 vCCOMUN.G3E_CID := 1;
6682 vCCOMUN.G3E_FID := fid;
6683 vCCOMUN.G3E_ID := CCOMUN_SEQ.NEXTVAL;
6684 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
6685 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
6686
6687 vCCOMUN.COOR_X := c.XPOS; --
6688 vCCOMUN.COOR_Y := c.YPOS; --
6689 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
6690 c.code,
6691 pCircuito,
6692 vTABLA_EXTRACION); --
6693
6694 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
6695 c.code,
6696 pCircuito,
6697 vTABLA_EXTRACION); --
6698 vCCOMUN.ESTADO := 'OPERACION'; --
6699 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
6700 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
6701 vCCOMUN.FECHA_COLOCACION := sysdate;
6702 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
6703
6704 begin
6705 insert into T$CCOMUN values vCCOMUN;
6706 exception
6707 when others then
6708 vERROR := SUBSTR(SQLERRM, 1, 64);
6709 rollback;
6710 insert into etl_transformacion_log
6711 values
6712 (vTABLA_EXTRACION,
6713 'T$CCOMUN',
6714 c.code,
6715 1,
6716 vERROR,
6717 pCircuito,
6718 sysdate);
6719 commit;
6720 continue;
6721 end;
6722
6723 --EPARARRA_AT
6724 begin
6725 vEPARARRA_AT := null;
6726 vEPARARRA_AT.TENSION_OPERACION := c.VNOM;
6727 vEPARARRA_AT.TIPO_PARARRAYOS := c.CLASE;
6728 vEPARARRA_AT.CODIGO := c.CODE;
6729
6730 select t.id_cat
6731 into vEPARARRA_AT.CARACTERISTICAS_TECNICAS
6732 from EPARARRA_TECNICA t
6733 where t.vcebado = c.vcebado
6734 and t.vmax = c.vmax
6735 and t.bil = c.bil;
6736
6737 vEPARARRA_AT.G3E_FNO := fno;
6738 vEPARARRA_AT.G3E_CNO := fno + 1;
6739 vEPARARRA_AT.G3E_CID := 1;
6740 vEPARARRA_AT.G3E_FID := fid;
6741 vEPARARRA_AT.G3E_id := EPARARRA_AT_SEQ.NEXTVAL;
6742
6743 insert into T$EPARARRA_AT values vEPARARRA_AT;
6744
6745 exception
6746 when others then
6747 vERROR := SUBSTR(SQLERRM, 1, 64);
6748 rollback;
6749 insert into etl_transformacion_log
6750 values
6751 (vTABLA_EXTRACION,
6752 'T$EPARARRA_AT',
6753 c.code,
6754 1,
6755 vERROR,
6756 pCircuito,
6757 sysdate);
6758 commit;
6759 continue;
6760 end;
6761
6762 --EPARARRA_PT
6763 vEPARARRA_PT := null;
6764 vEPARARRA_PT.G3E_FNO := fno;
6765 vEPARARRA_PT.G3E_CNO := fno + 10;
6766 vEPARARRA_PT.G3E_CID := 1;
6767 vEPARARRA_PT.G3E_FID := fid;
6768 vEPARARRA_PT.G3E_ID := EPARARRA_PT_SEQ.NEXTVAL;
6769 vEPARARRA_PT.G3E_GEOMETRY := geom;
6770
6771 insert into T$EPARARRA_PT values vEPARARRA_PT;
6772
6773 --CCONECTIVIDAD_E
6774 vCONN := null;
6775 -- vCONN.NODO_TRANSFORM := c.CODE;
6776 vCONN.FASES := DecodeFase(c.PHASES);
6777 vCONN.CIRCUITO := c.FPARENT;
6778 --vCONN.LOCALIZACION := c.OWNER2;
6779
6780 vCONN.EST_ESTABLE := 'CLOSED';
6781 vCONN.EST_OPERATIVO := 'CLOSED';
6782 vCONN.ESTADO := 'OPERACION';
6783
6784 vCONN.CIRCUITO := c.FPARENT;
6785 -- vCONN.TENSION := to_char(c.KV);
6786 vCONN.NODO1_ID := PTC_BuscarNodoTransforAlta(c.elnode);
6787 vCONN.NODO2_ID := 0;
6788
6789 vCONN.G3E_FNO := fno;
6790 vCONN.G3E_CNO := 61;
6791 vCONN.G3E_CID := 1;
6792 vCONN.G3E_FID := fid;
6793 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
6794
6795 begin
6796 select TPARENT
6797 into vCONN.NODO_TRANSFORM_V
6798 from x$conectividad
6799 where phnode = c.code
6800 and tparent is not null
6801 and rownum = 1;
6802
6803 -- vCONN.NODO_TRANSFORM_V := vCONN.NODO_TRANSFORM;
6804 exception
6805 when others then
6806 null;
6807 end;
6808
6809 insert into T$CCONECTIVIDAD_E values vCONN;
6810
6811 --CPROPIETARIO
6812 if c.owner in ('C', 'P') then
6813 vPROP := null;
6814 vPROP.PORCENTAJE_PROP_1 := 100;
6815
6816 if c.towner = 'C' and c.owner != 'CHEC' then
6817 insert into etl_transformacion_log
6818 values
6819 (vTABLA_EXTRACION,
6820 'T$CPROPIETARIO',
6821 c.code,
6822 2,
6823 cErrorPropietario,
6824 pCircuito,
6825 sysdate);
6826 commit;
6827 end if;
6828
6829 if c.towner = 'C' then
6830 vPROP.PROPIETARIO_1 := 'CHEC';
6831 elsif c.towner = 'P' then
6832 vPROP.PROPIETARIO_1 := 'PARTICULAR';
6833 vPROP.NOMBRE_PROP := c.owner;
6834 end if;
6835
6836 vPROP.G3E_FNO := fno;
6837 vPROP.G3E_CNO := 69;
6838 vPROP.G3E_CID := 1;
6839 vPROP.G3E_FID := fid;
6840 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
6841
6842 insert into T$CPROPIETARIO values vPROP;
6843
6844 end if;
6845
6846 vRegistros := vRegistros + 1;
6847 insert into ETL_CODE2FID
6848 values
6849 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
6850 commit;
6851 end loop;
6852 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
6853 end;
6854
6855 procedure PT_INDICADOR(pCircuito in VARCHAR2) is
6856 geom sdo_geometry;
6857
6858 vERROR VARCHAR2(80);
6859
6860 vCCOMUN T$CCOMUN%ROWTYPE;
6861 vPROP T$CPROPIETARIO%ROWTYPE;
6862 vCPERTENENCIA T$CPERTENENCIA%ROWTYPE;
6863 vEINDICA_AT T$EINDICA_AT%ROWTYPE;
6864 vEINDICA_PT T$EINDICA_PT%ROWTYPE;
6865
6866 fid number(10);
6867 fno number(5) := 20500;
6868
6869 vTABLA_EXTRACION VARCHAR2(80) := 'X$INDICADOR_FALLA';
6870
6871 vTime timestamp := CURRENT_TIMESTAMP;
6872 vRegistros number(8) := 0;
6873
6874 begin
6875
6876 for c in (select p.*,
6877 c.owner,
6878 c.towner,
6879 c.isconnecte,
6880 c.spacing,
6881 c.height,
6882 c.xpos,
6883 c.ypos,
6884 c.phases,
6885 c.assembly,
6886 c.fparent
6887 from x$indicador_falla p
6888 inner join x$conectividad c
6889 on c.ifalla = p.code
6890 where c.fparent = pCircuito) loop
6891
6892 geom := ConvertPoint2Sigma(c.xpos, c.ypos);
6893
6894 fid := g3e_fid_seq.nextval;
6895
6896 --CCOMUN
6897 vCCOMUN := null;
6898 vCCOMUN.G3E_FNO := fno;
6899 vCCOMUN.G3E_CNO := 60;
6900 vCCOMUN.G3E_CID := 1;
6901 vCCOMUN.G3E_FID := fid;
6902 vCCOMUN.G3E_ID := CCOMUN_SEQ.NEXTVAL;
6903 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
6904 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
6905
6906 vCCOMUN.COOR_X := c.XPOS; --
6907 vCCOMUN.COOR_Y := c.YPOS; --
6908 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
6909 c.code,
6910 pCircuito,
6911 vTABLA_EXTRACION); --
6912 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
6913 c.code,
6914 pCircuito,
6915 vTABLA_EXTRACION); --
6916 vCCOMUN.ESTADO := 'OPERACION'; --
6917 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
6918 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
6919 vCCOMUN.FECHA_COLOCACION := sysdate;
6920 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
6921
6922 begin
6923 insert into T$CCOMUN values vCCOMUN;
6924 exception
6925 when others then
6926 vERROR := SUBSTR(SQLERRM, 1, 64);
6927 rollback;
6928 insert into etl_transformacion_log
6929 values
6930 (vTABLA_EXTRACION,
6931 'T$CCOMUN',
6932 c.code,
6933 1,
6934 vERROR,
6935 pCircuito,
6936 sysdate);
6937 commit;
6938 continue;
6939 end;
6940
6941 --EPARARRA_AT
6942 begin
6943 vEINDICA_AT := null;
6944 vEINDICA_AT.FABRICANTE := c.MAKER;
6945 vEINDICA_AT.TIPO_EQUIPO := c.TIPO;
6946 vEINDICA_AT.CODIGO := c.CODE;
6947 vEINDICA_AT.CORRIENTE_ACTUACION := c.IFALLA;
6948 --vEINDICA_AT.INOM := c.INOM;
6949
6950 vEINDICA_AT.G3E_FNO := fno;
6951 vEINDICA_AT.G3E_CNO := fno + 1;
6952 vEINDICA_AT.G3E_CID := 1;
6953 vEINDICA_AT.G3E_FID := fid;
6954 vEINDICA_AT.G3E_Id := EINDICA_AT_SEQ.NEXTVAL;
6955
6956 insert into T$EINDICA_AT values vEINDICA_AT;
6957
6958 exception
6959 when others then
6960 vERROR := SUBSTR(SQLERRM, 1, 64);
6961 rollback;
6962 insert into etl_transformacion_log
6963 values
6964 (vTABLA_EXTRACION,
6965 'T$EPARARRA_AT',
6966 c.code,
6967 1,
6968 vERROR,
6969 pCircuito,
6970 sysdate);
6971 commit;
6972 continue;
6973 end;
6974
6975 --EINDICA_PT
6976 vEINDICA_PT := null;
6977 vEINDICA_PT.G3E_FNO := fno;
6978 vEINDICA_PT.G3E_CNO := fno + 10;
6979 vEINDICA_PT.G3E_CID := 1;
6980 vEINDICA_PT.G3E_FID := fid;
6981 vEINDICA_PT.G3E_ID := EINDICA_PT_SEQ.NEXTVAL;
6982 vEINDICA_PT.G3E_GEOMETRY := geom;
6983
6984 insert into T$EINDICA_PT values vEINDICA_PT;
6985
6986 --CPROPIETARIO
6987 if c.owner in ('C', 'P') then
6988 vPROP := null;
6989 vPROP.PORCENTAJE_PROP_1 := 100;
6990
6991 if c.towner = 'C' and c.owner != 'CHEC' then
6992 insert into etl_transformacion_log
6993 values
6994 (vTABLA_EXTRACION,
6995 'T$CPROPIETARIO',
6996 c.code,
6997 2,
6998 cErrorPropietario,
6999 pCircuito,
7000 sysdate);
7001 commit;
7002 end if;
7003
7004 if c.towner = 'C' then
7005 vPROP.PROPIETARIO_1 := 'CHEC';
7006 elsif c.towner = 'P' then
7007 vPROP.PROPIETARIO_1 := 'PARTICULAR';
7008 vPROP.NOMBRE_PROP := c.owner;
7009 end if;
7010
7011 vPROP.G3E_FNO := fno;
7012 vPROP.G3E_CNO := 69;
7013 vPROP.G3E_CID := 1;
7014 vPROP.G3E_FID := fid;
7015 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
7016
7017 insert into T$CPROPIETARIO values vPROP;
7018
7019 end if;
7020
7021 --CPERTENENCIA
7022 vCPERTENENCIA := null;
7023
7024 vCPERTENENCIA.G3E_CID := 1;
7025 vCPERTENENCIA.G3E_ID := CPERTENENCIA_SEQ.NEXTVAL;
7026 vCPERTENENCIA.G3E_FNO := fno;
7027 vCPERTENENCIA.G3E_CNO := 64;
7028 vCPERTENENCIA.G3E_FID := fid;
7029 vCPERTENENCIA.G3E_OWNERID := PTC_BuscarOwnerIndicador(c.elnode);
7030
7031 insert into T$CPERTENENCIA values vCPERTENENCIA;
7032
7033 vRegistros := vRegistros + 1;
7034 insert into ETL_CODE2FID
7035 values
7036 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
7037 commit;
7038 end loop;
7039 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
7040 end;
7041
7042 procedure PT_FEEDER(pCircuito in VARCHAR2) is
7043 geom sdo_geometry;
7044 geomL sdo_geometry;
7045
7046 vERROR VARCHAR2(80);
7047 vUSER VARCHAR2(100);
7048
7049 vCCOMUN T$CCOMUN%ROWTYPE;
7050 vPROP T$CPROPIETARIO%ROWTYPE;
7051 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
7052 vEINTERRU_AT T$EINTERRU_AT%ROWTYPE;
7053 vEINTERRU_PT T$EINTERRU_PT%ROWTYPE;
7054 vEINTERRU_CTO_TX T$EINTERRU_CTO_TX%ROWTYPE;
7055
7056 vCONDU X$CONDUCTOR_PRIMARIO%ROWTYPE;
7057 vBearing NUMBER;
7058
7059 fid number(10);
7060 fno number(5) := 18800;
7061 fidConduct number(10);
7062 nodePos number(2);
7063
7064 vTABLA_EXTRACION VARCHAR2(80) := 'X$FEEDERS';
7065
7066 vTime timestamp := CURRENT_TIMESTAMP;
7067 vRegistros number(8) := 0;
7068
7069 begin
7070
7071 for c in (select g.*, f.sourcebus
7072 from x$feeders f
7073 inner join (select 'INTERRUPTOR' as TIPO_ALIMENTADOR, h.*
7074 from x$interruptor h
7075 union
7076 select 'RECONECTADOR' as TIPO_ALIMENTADOR, h.*
7077 from x$reconectador h
7078 union
7079 select 'CUCHILLA' as TIPO_ALIMENTADOR, h.*
7080 from x$cuchilla h) g
7081 on g.code = f.code
7082 where f.code = pCircuito) loop
7083
7084 begin
7085 vBearing := 0;
7086 select *
7087 into vCONDU
7088 from X$CONDUCTOR_PRIMARIO
7089 where code = c.linesectio;
7090
7091 geomL := ConvertLine2Sigma(vCONDU.xpos1,
7092 vCONDU.ypos1,
7093 0,
7094 vCONDU.xpos2,
7095 vCONDU.ypos2,
7096 0);
7097
7098 vBearing := CalcularBearing(geomL);
7099 exception
7100 when others then
7101 null;
7102 end;
7103
7104 geom := ConvertPoint2Sigma(c.xpos, c.ypos, 0, vBearing);
7105
7106 begin
7107 select g3e_fid
7108 into fid
7109 from etl_code2fid
7110 where code = c.code
7111 and g3e_fno = fno;
7112
7113 continue;
7114 exception
7115 when others then
7116 null;
7117 end;
7118
7119 fid := g3e_fid_seq.nextval;
7120
7121 --CCOMUN
7122 vCCOMUN := null;
7123 vCCOMUN.G3E_FNO := fno;
7124 vCCOMUN.G3E_CNO := 60;
7125 vCCOMUN.G3E_CID := 1;
7126 vCCOMUN.G3E_FID := fid;
7127 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
7128 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
7129 vCCOMUN.UBICACION := c.ADDRESS; --
7130 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
7131 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
7132 vCCOMUN.PROYECTO := c.PROJECT; --
7133 vCCOMUN.COOR_X := c.XPOS; --
7134 vCCOMUN.COOR_Y := c.YPOS; --
7135 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
7136 c.code,
7137 pCircuito,
7138 vTABLA_EXTRACION); --
7139
7140 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
7141 c.code,
7142 pCircuito,
7143 vTABLA_EXTRACION); --
7144 vCCOMUN.ESTADO := 'OPERACION'; --
7145 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
7146 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
7147 vCCOMUN.FECHA_COLOCACION := sysdate;
7148 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
7149
7150 vUSER := c.USER_;
7151
7152 vCCOMUN.CONTRATO_INSTALACION := null;
7153 vCCOMUN.TRABAJO_PROGRAMADO := null;
7154 vCCOMUN.TIPO_PROYECTO := null;
7155
7156 if instr(vUSER, '/') > 0 then
7157 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
7158 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
7159 if instr(vUSER, '/') > 0 then
7160 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
7161 1,
7162 instr(vUSER, '/') - 1);
7163 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
7164 instr(vUSER, '/') + 1);
7165 else
7166 vCCOMUN.CONTRATO_INSTALACION := null;
7167 vCCOMUN.TRABAJO_PROGRAMADO := null;
7168 vCCOMUN.TIPO_PROYECTO := null;
7169 insert into etl_transformacion_log
7170 values
7171 (vTABLA_EXTRACION,
7172 'T$CCOMUN',
7173 c.code,
7174 2,
7175 cErrorUser,
7176 pCircuito,
7177 sysdate);
7178 commit;
7179 end if;
7180 end if;
7181
7182 begin
7183 insert into T$CCOMUN values vCCOMUN;
7184 exception
7185 when others then
7186 vERROR := SUBSTR(SQLERRM, 1, 64);
7187 rollback;
7188 insert into etl_transformacion_log
7189 values
7190 (vTABLA_EXTRACION,
7191 'T$CCOMUN',
7192 c.code,
7193 1,
7194 vERROR,
7195 pCircuito,
7196 sysdate);
7197 commit;
7198 continue;
7199 end;
7200
7201 --vEINTERRU_AT
7202
7203 vEINTERRU_AT := null;
7204 vEINTERRU_AT.G3E_FNO := fno;
7205 vEINTERRU_AT.G3E_CNO := fno + 1;
7206 vEINTERRU_AT.G3E_CID := 1;
7207 vEINTERRU_AT.G3E_FID := fid;
7208 vEINTERRU_AT.G3E_ID := EINTERRU_AT_SEQ.NEXTVAL;
7209 vEINTERRU_AT.CODIGO := c.CODE;
7210 vEINTERRU_AT.FABRICANTE := c.MAKER;
7211 vEINTERRU_AT.TIPO_INTERRUPTOR := c.ASSEMBLY;
7212
7213 insert into T$EINTERRU_AT values vEINTERRU_AT;
7214
7215 --EINTERRU_PT
7216 vEINTERRU_PT := null;
7217 vEINTERRU_PT.G3E_FNO := fno;
7218 vEINTERRU_PT.G3E_CNO := fno + 10;
7219 vEINTERRU_PT.G3E_CID := 1;
7220 vEINTERRU_PT.G3E_FID := fid;
7221 vEINTERRU_PT.G3E_ID := EINTERRU_PT_SEQ.NEXTVAL;
7222 vEINTERRU_PT.G3E_GEOMETRY := geom;
7223
7224 insert into T$EINTERRU_PT values vEINTERRU_PT;
7225
7226 --EINTERRU_CTO_TX
7227 vEINTERRU_CTO_TX := null;
7228 vEINTERRU_CTO_TX.G3E_FNO := fno;
7229 vEINTERRU_CTO_TX.G3E_CNO := fno + 40;
7230 vEINTERRU_CTO_TX.G3E_CID := 1;
7231 vEINTERRU_CTO_TX.G3E_FID := fid;
7232 vEINTERRU_CTO_TX.G3E_ID := EINTERRU_CTO_TX_SEQ.NEXTVAL;
7233 vEINTERRU_CTO_TX.G3E_GEOMETRY := ConvertPoint2SigmaTexto(c.xpos,
7234 c.ypos,
7235 angle => vBearing +
7236 1.570);
7237
7238 insert into T$EINTERRU_CTO_TX values vEINTERRU_CTO_TX;
7239
7240 --CCONECTIVIDAD_E
7241 vCONN := null;
7242 vCONN.CAPACIDAD_NOMINAL := c.AMP;
7243 vCONN.FASES := DecodeFase(c.PHASES);
7244 vCONN.ESTADO := 'OPERACION';
7245
7246 if c.STATE = 0 then
7247 vCONN.EST_ESTABLE := 'OPEN';
7248 vCONN.EST_OPERATIVO := 'OPEN';
7249 else
7250 vCONN.EST_ESTABLE := 'CLOSED';
7251 vCONN.EST_OPERATIVO := 'CLOSED';
7252 vCONN.CIRCUITO_SALIDA := c.FPARENT;
7253 end if;
7254
7255 vCONN.CIRCUITO := c.FPARENT;
7256 vCONN.SUBESTACION := substr(pCircuito, 1, 3);
7257
7258 vCONN.TENSION := to_char(c.KV);
7259 vCONN.TIPO_RED := DecodeTipoRed(c.KV);
7260
7261 --buscar el nodo del barraje
7262 begin
7263 select n.nodo2_id
7264 into vCONN.NODO1_ID
7265 from etl_code2fid e
7266 inner join t$cconectividad_e n
7267 on n.g3e_fid = e.g3e_fid
7268 and n.g3e_fno = e.g3e_fno
7269 where e.code = c.sourcebus
7270 and e.g3e_fno = 18700;
7271 exception
7272 when others then
7273 vCONN.NODO1_ID := 0;
7274 end;
7275
7276 vCONN.NODO2_ID := PTC_BuscarNodoSwitches(c.linesectio,
7277 c.xpos,
7278 c.ypos,
7279 fidConduct,
7280 nodePos);
7281
7282 begin
7283 select TPARENT
7284 into vCONN.NODO_TRANSFORM_V
7285 from x$conectividad
7286 where phnode = c.code
7287 and tparent is not null
7288 and rownum = 1;
7289
7290 --vCONN.NODO_TRANSFORM_V := vCONN.NODO_TRANSFORM;
7291
7292 exception
7293 when others then
7294 null;
7295 end;
7296
7297 -- if nodePos = 1 then
7298 update T$CCONECTIVIDAD_E
7299 set nodo2_id = vCONN.NODO2_ID
7300 where nodo2_id = vCONN.NODO1_ID
7301 and g3e_fid != fidConduct
7302 and g3e_fno != 18700;
7303 -- end if;
7304
7305 -- if nodePos = 2 then
7306 update T$CCONECTIVIDAD_E
7307 set nodo1_id = vCONN.NODO2_ID
7308 where nodo1_id = vCONN.NODO1_ID
7309 and g3e_fid != fidConduct
7310 and g3e_fno != 18700;
7311 -- end if;
7312 commit;
7313
7314 vCONN.G3E_FNO := fno;
7315 vCONN.G3E_CNO := 61;
7316 vCONN.G3E_CID := 1;
7317 vCONN.G3E_FID := fid;
7318 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
7319
7320 insert into T$CCONECTIVIDAD_E values vCONN;
7321
7322 --CPROPIETARIO
7323 if c.owner in ('C', 'P') then
7324 vPROP := null;
7325 vPROP.PORCENTAJE_PROP_1 := 100;
7326
7327 if c.towner = 'C' and c.owner != 'CHEC' then
7328 insert into etl_transformacion_log
7329 values
7330 (vTABLA_EXTRACION,
7331 'T$CPROPIETARIO',
7332 c.code,
7333 2,
7334 cErrorPropietario,
7335 pCircuito,
7336 sysdate);
7337 commit;
7338 end if;
7339
7340 if c.towner = 'C' then
7341 vPROP.PROPIETARIO_1 := 'CHEC';
7342 elsif c.towner = 'P' then
7343 vPROP.PROPIETARIO_1 := 'PARTICULAR';
7344 vPROP.NOMBRE_PROP := c.owner;
7345 end if;
7346
7347 vPROP.G3E_FNO := fno;
7348 vPROP.G3E_CNO := 69;
7349 vPROP.G3E_CID := 1;
7350 vPROP.G3E_FID := fid;
7351 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
7352
7353 insert into T$CPROPIETARIO values vPROP;
7354
7355 end if;
7356
7357 vRegistros := vRegistros + 1;
7358 insert into ETL_CODE2FID
7359 values
7360 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
7361
7362 commit;
7363 end loop;
7364 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
7365 end;
7366
7367 procedure PT_LUMINARIA(pCircuito in VARCHAR2) is
7368 geom sdo_geometry;
7369
7370 vERROR VARCHAR2(80);
7371
7372 vCCOMUN T$CCOMUN%ROWTYPE;
7373 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
7374 vPROP T$CPROPIETARIO%ROWTYPE;
7375 vCPERTENENCIA T$CPERTENENCIA%ROWTYPE;
7376 vELUMINAR_AT T$ELUMINAR_AT%ROWTYPE;
7377 vELUMINAR_PT T$ELUMINAR_PT%ROWTYPE;
7378
7379 fid number(10);
7380 fno number(5) := 21400;
7381
7382 vTABLA_EXTRACION VARCHAR2(80) := 'X$LUMINARIA';
7383
7384 vTime timestamp := CURRENT_TIMESTAMP;
7385 vRegistros number(8) := 0;
7386
7387 begin
7388
7389 for c in (select p.*,
7390 c.towner,
7391 c.isconnecte,
7392 c.spacing,
7393 c.height,
7394 c.assembly,
7395 c.fparent
7396 from x$luminaria p
7397 inner join x$conectividad c
7398 on c.code = p.elnode
7399 where c.fparent = pCircuito) loop
7400
7401 geom := ConvertPoint2Sigma(c.xpos, c.ypos, c.height);
7402
7403 fid := g3e_fid_seq.nextval;
7404
7405 --CCOMUN
7406 vCCOMUN := null;
7407 vCCOMUN.G3E_FNO := fno;
7408 vCCOMUN.G3E_CNO := 60;
7409 vCCOMUN.G3E_CID := 1;
7410 vCCOMUN.G3E_FID := fid;
7411 vCCOMUN.G3E_ID := CCOMUN_SEQ.NEXTVAL;
7412 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
7413 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
7414
7415 vCCOMUN.COOR_X := c.XPOS; --
7416 vCCOMUN.COOR_Y := c.YPOS; --
7417 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
7418 c.code,
7419 pCircuito,
7420 vTABLA_EXTRACION); --
7421 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
7422 c.code,
7423 pCircuito,
7424 vTABLA_EXTRACION); --
7425 vCCOMUN.ESTADO := 'OPERACION'; --
7426 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
7427 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
7428 vCCOMUN.FECHA_COLOCACION := sysdate;
7429 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
7430
7431 begin
7432 insert into T$CCOMUN values vCCOMUN;
7433 exception
7434 when others then
7435 vERROR := SUBSTR(SQLERRM, 1, 64);
7436 rollback;
7437 insert into etl_transformacion_log
7438 values
7439 (vTABLA_EXTRACION,
7440 'T$CCOMUN',
7441 c.code,
7442 1,
7443 vERROR,
7444 pCircuito,
7445 sysdate);
7446 commit;
7447 continue;
7448 end;
7449
7450 --ELUMINAR_AT
7451 begin
7452 vELUMINAR_AT := null;
7453 vELUMINAR_AT.CODIGO_IDENTIFICACION := c.CODE;
7454 vELUMINAR_AT.NUMERO_LUMINARIA := c.ETIQUETA;
7455 vELUMINAR_AT.HORAS_ACTIVA := c.F_UTILIZACION * 24;
7456 vELUMINAR_AT.POTENCIA_ANTERIOR := c.KW * 1000;
7457 vELUMINAR_AT.POTENCIA := c.KW * 1000;
7458 vELUMINAR_AT.PERDIDAS := c.PERDIDAS;
7459 vELUMINAR_AT.LOCALIZACION := 'POSTE';
7460 vELUMINAR_AT.FECHA_INST_BOMB := TO_DATE('1800-01-01',
7461 'YYYY-MM-DD');
7462
7463 vELUMINAR_AT.G3E_FNO := fno;
7464 vELUMINAR_AT.G3E_CNO := fno + 1;
7465 vELUMINAR_AT.G3E_CID := 1;
7466 vELUMINAR_AT.G3E_FID := fid;
7467 vELUMINAR_AT.G3E_ID := ELUMINAR_AT_SEQ.NEXTVAL;
7468
7469 insert into T$ELUMINAR_AT values vELUMINAR_AT;
7470
7471 exception
7472 when others then
7473 vERROR := SUBSTR(SQLERRM, 1, 64);
7474 rollback;
7475 insert into etl_transformacion_log
7476 values
7477 (vTABLA_EXTRACION,
7478 'T$ELUMINAR_AT',
7479 c.code,
7480 1,
7481 vERROR,
7482 pCircuito,
7483 sysdate);
7484 commit;
7485 continue;
7486 end;
7487
7488 --ELUMINAR_PT
7489 vELUMINAR_PT := null;
7490 vELUMINAR_PT.G3E_FNO := fno;
7491 vELUMINAR_PT.G3E_CNO := fno + 10;
7492 vELUMINAR_PT.G3E_CID := 1;
7493 vELUMINAR_PT.G3E_FID := fid;
7494 vELUMINAR_PT.G3E_ID := ELUMINAR_PT_SEQ.NEXTVAL;
7495 vELUMINAR_PT.G3E_GEOMETRY := geom;
7496
7497 insert into T$ELUMINAR_PT values vELUMINAR_PT;
7498
7499 --CCONECTIVIDAD_E
7500 vCONN.FASES := DecodeFase(c.PHASES);
7501 vCONN.CIRCUITO := c.FPARENT;
7502 vCONN.SUBESTACION := substr(pCircuito, 1, 3);
7503
7504 vCONN.EST_ESTABLE := 'CLOSED';
7505 vCONN.EST_OPERATIVO := 'CLOSED';
7506 vCONN.ESTADO := 'OPERACION';
7507
7508 vCONN.CIRCUITO := c.FPARENT;
7509 -- vCONN.TENSION := to_char(c.KV);
7510 --vCONN.NODO1_ID := PTC_BuscarNodoTransforAlta(c.elnode);
7511 vCONN.NODO1_ID := PTC_BuscarNodoTransforBaja(c.elnode);
7512 vCONN.NODO2_ID := vCONN.NODO1_ID;
7513
7514 vCONN.G3E_FNO := fno;
7515 vCONN.G3E_CNO := 61;
7516 vCONN.G3E_CID := 1;
7517 vCONN.G3E_FID := fid;
7518 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
7519 --vCONN.NODO_TRANSFORM := c.TPARENT;
7520 vCONN.NODO_TRANSFORM_V := c.TPARENT;
7521
7522 insert into T$CCONECTIVIDAD_E values vCONN;
7523
7524 --CPROPIETARIO
7525 if c.owner in ('C', 'P') then
7526 vPROP := null;
7527 vPROP.PORCENTAJE_PROP_1 := 100;
7528
7529 if c.towner = 'C' and c.owner != 'CHEC' then
7530 insert into etl_transformacion_log
7531 values
7532 (vTABLA_EXTRACION,
7533 'T$CPROPIETARIO',
7534 c.code,
7535 2,
7536 cErrorPropietario,
7537 pCircuito,
7538 sysdate);
7539 commit;
7540 end if;
7541
7542 if c.towner = 'C' then
7543 vPROP.PROPIETARIO_1 := 'CHEC';
7544 elsif c.towner = 'P' then
7545 vPROP.PROPIETARIO_1 := 'PARTICULAR';
7546 vPROP.NOMBRE_PROP := c.owner;
7547 end if;
7548
7549 vPROP.G3E_FNO := fno;
7550 vPROP.G3E_CNO := 69;
7551 vPROP.G3E_CID := 1;
7552 vPROP.G3E_FID := fid;
7553 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
7554
7555 insert into T$CPROPIETARIO values vPROP;
7556
7557 end if;
7558
7559 --CPERTENENCIA
7560 vCPERTENENCIA := null;
7561
7562 vCPERTENENCIA.G3E_CID := 1;
7563 vCPERTENENCIA.G3E_ID := CPERTENENCIA_SEQ.NEXTVAL;
7564 vCPERTENENCIA.G3E_FNO := fno;
7565 vCPERTENENCIA.G3E_CNO := 64;
7566 vCPERTENENCIA.G3E_FID := fid;
7567 vCPERTENENCIA.G3E_OWNERID := PTC_BuscarOwnerIndicador(c.elnode);
7568
7569 insert into T$CPERTENENCIA values vCPERTENENCIA;
7570
7571 vRegistros := vRegistros + 1;
7572 insert into ETL_CODE2FID
7573 values
7574 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
7575 commit;
7576 end loop;
7577 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
7578 end;
7579
7580 procedure PT_CAJA_DIS(pCircuito in VARCHAR2) is
7581 geom sdo_geometry;
7582
7583 vERROR VARCHAR2(80);
7584 vUSER VARCHAR2(100);
7585
7586 vCCOMUN T$CCOMUN%ROWTYPE;
7587 vPROP T$CPROPIETARIO%ROWTYPE;
7588 vECAJ_DIS_AT T$ECAJ_DIS_AT%ROWTYPE;
7589 vECAJ_DIS_PT T$ECAJ_DIS_PT%ROWTYPE;
7590 vNORMA T$NORMA%ROWTYPE;
7591
7592 fid number(10);
7593 fno number(5) := 18100;
7594 cid number(5);
7595
7596 vCount number(5);
7597
7598 vTABLA_EXTRACION VARCHAR2(80) := 'X$CAJA_DISTRIBUICION';
7599
7600 vTime timestamp := CURRENT_TIMESTAMP;
7601 vRegistros number(8) := 0;
7602
7603 begin
7604
7605 for c in (select * from X$CAJA_DISTRIBUICION) loop
7606
7607 select count(1)
7608 into vCount
7609 from x$conectividad
7610 where phnode = c.code
7611 and fparent = pCircuito;
7612
7613 if vCount = 0 then
7614 continue;
7615 end if;
7616
7617 geom := ConvertPoint2Sigma(c.xpos, c.ypos);
7618
7619 fid := g3e_fid_seq.nextval;
7620
7621 --CCOMUN
7622 vCCOMUN := null;
7623 vCCOMUN.G3E_FNO := fno;
7624 vCCOMUN.G3E_CNO := 60;
7625 vCCOMUN.G3E_CID := 1;
7626 vCCOMUN.G3E_FID := fid;
7627 vCCOMUN.G3E_ID := CCOMUN_SEQ.NEXTVAL;
7628 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
7629 vCCOMUN.UBICACION := c.ADDRESS; --
7630 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
7631 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
7632 vCCOMUN.PROYECTO := c.PROJECT; --
7633 vCCOMUN.COOR_X := c.XPOS; --
7634 vCCOMUN.COOR_Y := c.YPOS; --
7635 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
7636 c.code,
7637 pCircuito,
7638 vTABLA_EXTRACION); --
7639 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
7640 c.code,
7641 pCircuito,
7642 vTABLA_EXTRACION); --
7643 vCCOMUN.ESTADO := 'OPERACION'; --
7644 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
7645 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
7646 vCCOMUN.FECHA_COLOCACION := sysdate;
7647 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
7648
7649 vUSER := c.USER_;
7650
7651 vCCOMUN.CONTRATO_INSTALACION := null;
7652 vCCOMUN.TRABAJO_PROGRAMADO := null;
7653 vCCOMUN.TIPO_PROYECTO := null;
7654
7655 if instr(vUSER, '/') > 0 then
7656 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
7657 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
7658 if instr(vUSER, '/') > 0 then
7659 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
7660 1,
7661 instr(vUSER, '/') - 1);
7662 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
7663 instr(vUSER, '/') + 1);
7664 else
7665 vCCOMUN.CONTRATO_INSTALACION := null;
7666 vCCOMUN.TRABAJO_PROGRAMADO := null;
7667 vCCOMUN.TIPO_PROYECTO := null;
7668 insert into etl_transformacion_log
7669 values
7670 (vTABLA_EXTRACION,
7671 'T$CCOMUN',
7672 c.code,
7673 2,
7674 cErrorUser,
7675 pCircuito,
7676 sysdate);
7677 commit;
7678 end if;
7679 end if;
7680
7681 if c.POBLACION = 'U' then
7682 vCCOMUN.CLASIFICACION_MERCADO := 'URBANO';
7683 end if;
7684
7685 if c.POBLACION = 'R' then
7686 vCCOMUN.CLASIFICACION_MERCADO := 'RURAL';
7687 end if;
7688
7689 begin
7690 insert into T$CCOMUN values vCCOMUN;
7691 exception
7692 when others then
7693 vERROR := SUBSTR(SQLERRM, 1, 64);
7694 rollback;
7695 insert into etl_transformacion_log
7696 values
7697 (vTABLA_EXTRACION,
7698 'T$CCOMUN',
7699 c.code,
7700 1,
7701 vERROR,
7702 pCircuito,
7703 sysdate);
7704 commit;
7705 continue;
7706 end;
7707
7708 --vECAJ_DIS_AT
7709 begin
7710 vECAJ_DIS_AT := null;
7711
7712 DesgloseSubMVPHNODE(c.assembly,
7713 vECAJ_DIS_AT.DIMENSIONES,
7714 vECAJ_DIS_AT.CLA_CAJA,
7715 vECAJ_DIS_AT.CANTIDAD_DUCTOS,
7716 vECAJ_DIS_AT.DIMENSION_DUCTO);
7717
7718 --vECAJ_DIS_AT.NRO_CAJA := c.CODE;
7719 vECAJ_DIS_AT.NRO_CAJA_V := c.CODE;
7720
7721 vECAJ_DIS_AT.GRUPO := 'ESTRUCTURAS EYT';
7722
7723 vECAJ_DIS_AT.G3E_FNO := fno;
7724 vECAJ_DIS_AT.G3E_CNO := fno + 1;
7725 vECAJ_DIS_AT.G3E_CID := 1;
7726 vECAJ_DIS_AT.G3E_FID := fid;
7727 vECAJ_DIS_AT.G3E_id := ECAJ_DIS_AT_SEQ.NEXTVAL;
7728
7729 insert into T$ECAJ_DIS_AT values vECAJ_DIS_AT;
7730
7731 exception
7732 when assembly_fisico_invalido then
7733 rollback;
7734 insert into etl_transformacion_log
7735 values
7736 (vTABLA_EXTRACION,
7737 'T$ECAJ_DIS_AT',
7738 c.code,
7739 1,
7740 cErrorAssemblyFisico || c.assembly,
7741 pCircuito,
7742 sysdate);
7743 commit;
7744 continue;
7745 when others then
7746 vERROR := SUBSTR(SQLERRM, 1, 64);
7747 rollback;
7748 insert into etl_transformacion_log
7749 values
7750 (vTABLA_EXTRACION,
7751 'T$ECAJ_DIS_AT',
7752 c.code,
7753 1,
7754 vERROR,
7755 pCircuito,
7756 sysdate);
7757 commit;
7758 continue;
7759 end;
7760
7761 --vECAJ_DIS_PT
7762 vECAJ_DIS_PT := null;
7763 vECAJ_DIS_PT.G3E_FNO := fno;
7764 vECAJ_DIS_PT.G3E_CNO := fno + 10;
7765 vECAJ_DIS_PT.G3E_CID := 1;
7766 vECAJ_DIS_PT.G3E_FID := fid;
7767 vECAJ_DIS_PT.G3E_ID := ECAJ_DIS_PT_SEQ.NEXTVAL;
7768 vECAJ_DIS_PT.G3E_GEOMETRY := geom;
7769
7770 insert into T$ECAJ_DIS_PT values vECAJ_DIS_PT;
7771
7772 --CPROPIETARIO
7773 if c.owner in ('C', 'P') then
7774 vPROP := null;
7775 vPROP.PORCENTAJE_PROP_1 := 100;
7776
7777 if c.towner = 'C' and c.owner != 'CHEC' then
7778 insert into etl_transformacion_log
7779 values
7780 (vTABLA_EXTRACION,
7781 'T$CPROPIETARIO',
7782 c.code,
7783 2,
7784 cErrorPropietario,
7785 pCircuito,
7786 sysdate);
7787 commit;
7788 end if;
7789
7790 if c.towner = 'C' then
7791 vPROP.PROPIETARIO_1 := 'CHEC';
7792 elsif c.towner = 'P' then
7793 vPROP.PROPIETARIO_1 := 'PARTICULAR';
7794 vPROP.NOMBRE_PROP := c.owner;
7795 end if;
7796
7797 vPROP.G3E_FNO := fno;
7798 vPROP.G3E_CNO := 69;
7799 vPROP.G3E_CID := 1;
7800 vPROP.G3E_FID := fid;
7801 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
7802
7803 insert into T$CPROPIETARIO values vPROP;
7804
7805 end if;
7806
7807 --NORMAS NODOS ELETRICOS
7808 cid := 1;
7809 for ne in (select *
7810 from x$conectividad
7811 where phnode in (c.code, 'T_' || c.code)) loop
7812 vNORMA := null;
7813
7814 vNORMA.G3E_FNO := fno;
7815 vNORMA.G3E_CNO := 70;
7816 vNORMA.G3E_CID := cid;
7817 vNORMA.G3E_FID := fid;
7818 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
7819 vNORMA.CIRCUITO := ne.fparent;
7820 vNORMA.NORMA := ne.assembly;
7821 vNORMA.CANTIDAD := 1;
7822
7823 insert into T$NORMA values vNORMA;
7824
7825 cid := cid + 1;
7826 end loop;
7827
7828 vRegistros := vRegistros + 1;
7829 insert into ETL_CODE2FID
7830 values
7831 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
7832 commit;
7833 end loop;
7834 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
7835 end;
7836
7837 procedure PT_ACOMETIDA(pCircuito in VARCHAR2) is
7838 geom sdo_geometry;
7839 vERROR VARCHAR2(80);
7840 vUSER VARCHAR2(100);
7841
7842 vCCOMUN T$CCOMUN%ROWTYPE;
7843 vPROP T$CPROPIETARIO%ROWTYPE;
7844 vCONN T$CCONECTIVIDAD_E%ROWTYPE;
7845
7846 vEACO_SEC_AT T$EACO_SEC_AT%ROWTYPE;
7847 vEACO_SEC_LN T$EACO_SEC_LN%ROWTYPE;
7848 vEACO_SEC_CLIENTE_AT T$EACO_SEC_CLIENTE_AT%ROWTYPE;
7849 --vCCONTENEDOR T$CCONTENEDOR%ROWTYPE;
7850 vCPERTENENCIA T$CPERTENENCIA%ROWTYPE;
7851
7852 fid number(10);
7853 fno number(5) := 22000;
7854
7855 vTABLA_EXTRACION VARCHAR2(80) := 'X$ACOMETIDA';
7856 vTime timestamp := CURRENT_TIMESTAMP;
7857 vRegistros number(8) := 0;
7858
7859 begin
7860
7861 for c in (select * from x$acometida where fparent = pCircuito) loop
7862 geom := ConvertLine2Sigma(c.xpos1,
7863 c.ypos1,
7864 BuscarZetaNodoEletrico(c.elnode1),
7865 c.xpos2,
7866 c.ypos2,
7867 BuscarZetaNodoEletrico(c.elnode2));
7868
7869 fid := g3e_fid_seq.nextval;
7870
7871 --CCOMUN
7872 vCCOMUN := null;
7873 vCCOMUN.G3E_FNO := fno;
7874 vCCOMUN.G3E_CNO := 60;
7875 vCCOMUN.G3E_CID := 1;
7876 vCCOMUN.G3E_FID := fid;
7877 vCCOMUN.G3E_id := CCOMUN_SEQ.NEXTVAL;
7878 vCCOMUN.OBSERVACIONES := c.DESCRIPTIO; --
7879 vCCOMUN.UBICACION := c.ADDRESS; --
7880 vCCOMUN.COOR_GPS_LAT := geom.SDO_ORDINATES(2); --
7881 vCCOMUN.COOR_GPS_LON := geom.SDO_ORDINATES(1); --
7882 vCCOMUN.PROYECTO := c.PROJECT; --
7883 vCCOMUN.COOR_X := c.XPOS1; --
7884 vCCOMUN.COOR_Y := c.YPOS1; --
7885 /*
7886 vCCOMUN.DEPARTAMENTO := SpatialDepartamento(geom,
7887 c.code,
7888 pCircuito,
7889 vTABLA_EXTRACION); --
7890 vCCOMUN.MUNICIPIO := SpatialMunicipio(geom,
7891 c.code,
7892 pCircuito,
7893 vTABLA_EXTRACION); --
7894 */
7895 vCCOMUN.ESTADO := 'OPERACION'; --
7896 vCCOMUN.EMPRESA_ORIGEN := 'CHEC';
7897 vCCOMUN.JOB_COLOCACION := 'MIGRACION SPARD';
7898 vCCOMUN.FECHA_COLOCACION := sysdate;
7899 vCCOMUN.USUARIO_COLOCACION := 'GENERGIA';
7900
7901 vUSER := c.USER_;
7902
7903 vCCOMUN.CONTRATO_INSTALACION := null;
7904 vCCOMUN.TRABAJO_PROGRAMADO := null;
7905 vCCOMUN.TIPO_PROYECTO := null;
7906
7907 if instr(vUSER, '/') > 0 then
7908 vCCOMUN.TIPO_PROYECTO := substr(vUSER, 1, instr(vUSER, '/') - 1);
7909 vUSER := substr(vUSER, instr(vUSER, '/') + 1);
7910 if instr(vUSER, '/') > 0 then
7911 vCCOMUN.CONTRATO_INSTALACION := substr(vUSER,
7912 1,
7913 instr(vUSER, '/') - 1);
7914 vCCOMUN.TRABAJO_PROGRAMADO := substr(vUSER,
7915 instr(vUSER, '/') + 1);
7916 else
7917 vCCOMUN.CONTRATO_INSTALACION := null;
7918 vCCOMUN.TRABAJO_PROGRAMADO := null;
7919 vCCOMUN.TIPO_PROYECTO := null;
7920 insert into etl_transformacion_log
7921 values
7922 (vTABLA_EXTRACION,
7923 'T$CCOMUN',
7924 c.code,
7925 2,
7926 cErrorUser,
7927 pCircuito,
7928 sysdate);
7929 commit;
7930 end if;
7931 end if;
7932
7933 if c.POBLACION = 'U' then
7934 vCCOMUN.CLASIFICACION_MERCADO := 'URBANO';
7935 end if;
7936
7937 if c.POBLACION = 'R' then
7938 vCCOMUN.CLASIFICACION_MERCADO := 'RURAL';
7939 end if;
7940
7941 begin
7942 insert into T$CCOMUN values vCCOMUN;
7943 exception
7944 when others then
7945 vERROR := SUBSTR(SQLERRM, 1, 64);
7946 rollback;
7947 insert into etl_transformacion_log
7948 values
7949 (vTABLA_EXTRACION,
7950 'T$CCOMUN',
7951 c.code,
7952 1,
7953 vERROR,
7954 pCircuito,
7955 sysdate);
7956 commit;
7957 continue;
7958 end;
7959
7960 --vEACO_SEC_AT
7961 begin
7962 vEACO_SEC_AT := null;
7963 vEACO_SEC_AT.CODIGO := c.CODE;
7964 vEACO_SEC_AT.TIPO_ACOMETIDA := 'DISTRIBUCION';
7965 vEACO_SEC_AT.NRO_CONDUCTORES_UNO := null;
7966 vEACO_SEC_AT.CAL_CONDUCTORES_UNO := null;
7967 vEACO_SEC_AT.NRO_CONDUCTORES_DOS := null;
7968 vEACO_SEC_AT.CAL_CONDUCTORES_DOS := null;
7969 vEACO_SEC_AT.NRO_INSTALACION := null;
7970 vEACO_SEC_AT.AISLAMIENTO := 'AISLADO';
7971
7972 select substr(descriptio, INSTR(descriptio, '-') - 2, 2),
7973 DECODE(substr(descriptio,
7974 INSTR(descriptio, '-') + 1,
7975 LENGTH(descriptio)),
7976 'CABLE CONCENTRICO',
7977 'CABLE CONCENTRICO',
7978 'ABIERTA'),
7979 substr(descriptio, 0, INSTR(descriptio, ' ') - 1)
7980 into vEACO_SEC_AT.MATERIAL,
7981 vEACO_SEC_AT.CLASE_ACOMETIDA,
7982 vEACO_SEC_AT.CAL_CONDUCTORES_UNO
7983 from conducto
7984 where code = c.conductor
7985 and rownum = 1;
7986
7987 if vEACO_SEC_AT.MATERIAL is null then
7988 rollback;
7989
7990 insert into etl_transformacion_log
7991 values
7992 (vTABLA_EXTRACION,
7993 'T$EACO_SEC_AT',
7994 c.code,
7995 1,
7996 cErrorMaterial,
7997 pCircuito,
7998 sysdate);
7999 commit;
8000 continue;
8001
8002 end if;
8003
8004 vEACO_SEC_AT.G3E_FNO := fno;
8005 vEACO_SEC_AT.G3E_CNO := fno + 1;
8006 vEACO_SEC_AT.G3E_CID := 1;
8007 vEACO_SEC_AT.G3E_FID := fid;
8008 vEACO_SEC_AT.G3E_ID := ECON_SES_AT_SEQ.NEXTVAL;
8009
8010 insert into T$EACO_SEC_AT values vEACO_SEC_AT;
8011
8012 exception
8013 when others then
8014 rollback;
8015 vERROR := SUBSTR(SQLERRM, 1, 64);
8016
8017 insert into etl_transformacion_log
8018 values
8019 (vTABLA_EXTRACION,
8020 'T$EACO_SEC_AT',
8021 c.code,
8022 1,
8023 vERROR,
8024 pCircuito,
8025 sysdate);
8026 commit;
8027 continue;
8028 end;
8029
8030 --EACO_SEC_LN
8031 vEACO_SEC_LN := null;
8032 vEACO_SEC_LN.G3E_FNO := fno;
8033 vEACO_SEC_LN.G3E_CNO := fno + 20;
8034 vEACO_SEC_LN.G3E_CID := 1;
8035 vEACO_SEC_LN.G3E_FID := fid;
8036 vEACO_SEC_LN.G3E_ID := ECON_SES_LN_SEQ.NEXTVAL;
8037 vEACO_SEC_LN.G3E_GEOMETRY := geom;
8038
8039 insert into T$EACO_SEC_LN values vEACO_SEC_LN;
8040
8041 --CCONECTIVIDAD_E
8042 vCONN := null;
8043 vCONN.NODO1_ID := PTC_BuscarNodoConductorSec(c.code, c.elnode1);
8044 vCONN.NODO2_ID := 0; --PTC_BuscarNodoConductorSec(c.code, c.elnode2);
8045
8046 if vCONN.NODO1_ID = 0 then
8047 vCONN.NODO1_ID := g3e_node_seq.nextval;
8048 update CHEC_NODOS_ELEC
8049 set nivel = 'LVELNODE', nodo_mde = vCONN.NODO1_ID
8050 where code = c.elnode1;
8051 end if;
8052
8053 if vCONN.NODO2_ID = 0 then
8054 vCONN.NODO2_ID := g3e_node_seq.nextval;
8055 update CHEC_NODOS_ELEC
8056 set nivel = 'LVELNODE', nodo_mde = vCONN.NODO2_ID
8057 where code = c.elnode2;
8058 end if;
8059
8060 vCONN.G3E_FNO := fno;
8061 vCONN.G3E_CNO := 61;
8062 vCONN.G3E_CID := 1;
8063 vCONN.G3E_FID := fid;
8064 vCONN.G3E_ID := CCONECTIVIDAD_E_SEQ.NEXTVAL;
8065
8066 vCONN.LOCALIZACION := DecodeLocalizacion(c.CLASS);
8067 vCONN.LONGITUD := to_number(c.LENGTH);
8068 vCONN.FASES := DecodeFase(c.PHASES);
8069 vCONN.CIRCUITO := c.FPARENT;
8070 vCONN.TENSION_SECUNDARIA := to_char(c.KVNOM);
8071 vCONN.EST_ESTABLE := 'CLOSED';
8072 vCONN.EST_OPERATIVO := 'CLOSED';
8073 --vCONN.NODO_TRANSFORM := c.TPARENT;
8074 vCONN.NODO_TRANSFORM_V := c.TPARENT;
8075
8076 vCONN.ESTADO := 'OPERACION';
8077 vCONN.TIPO_RED := 'SECUNDARIA';
8078
8079 vCONN.SUBESTACION := substr(pCircuito, 1, 3);
8080
8081 insert into T$CCONECTIVIDAD_E values vCONN;
8082 --CPROPIETARIO
8083 if c.towner in ('C', 'P') then
8084 vPROP := null;
8085 vPROP.PORCENTAJE_PROP_1 := 100;
8086
8087 if c.towner = 'C' and c.owner != 'CHEC' then
8088 insert into etl_transformacion_log
8089 values
8090 (vTABLA_EXTRACION,
8091 'T$CPROPIETARIO',
8092 c.code,
8093 2,
8094 cErrorPropietario,
8095 pCircuito,
8096 sysdate);
8097 commit;
8098 end if;
8099
8100 if c.towner = 'C' then
8101 vPROP.PROPIETARIO_1 := 'CHEC';
8102 elsif c.towner = 'P' then
8103 vPROP.PROPIETARIO_1 := 'PARTICULAR';
8104 vPROP.NOMBRE_PROP := c.owner;
8105 end if;
8106
8107 vPROP.G3E_FNO := fno;
8108 vPROP.G3E_CNO := 69;
8109 vPROP.G3E_CID := 1;
8110 vPROP.G3E_FID := fid;
8111 vPROP.G3E_ID := CPROPIETARIO_SEQ.NEXTVAL;
8112
8113 insert into T$CPROPIETARIO values vPROP;
8114
8115 end if;
8116 --CPERTENENCIA
8117 vCPERTENENCIA := null;
8118
8119 vCPERTENENCIA.G3E_CID := 1;
8120 vCPERTENENCIA.G3E_ID := CPERTENENCIA_SEQ.NEXTVAL;
8121 vCPERTENENCIA.G3E_FNO := fno;
8122 vCPERTENENCIA.G3E_CNO := 64;
8123 vCPERTENENCIA.G3E_FID := fid;
8124
8125 insert into T$CPERTENENCIA values vCPERTENENCIA;
8126
8127 --vEACO_SEC_CLIENTE_AT
8128 begin
8129 vEACO_SEC_CLIENTE_AT := null;
8130 vEACO_SEC_CLIENTE_AT.CUD := null;
8131 vEACO_SEC_CLIENTE_AT.CODIGO := c.elnode2;
8132 vEACO_SEC_CLIENTE_AT.TIPO_MEDIDOR := null;
8133 vEACO_SEC_CLIENTE_AT.NIVEL_TEN := null;
8134 begin
8135 select address,
8136 tparent,
8137 amp,
8138 check_,
8139 dep_id,
8140 DECODE(cnxred, 'A', 'AEREO', 'S', 'SUBTERRANEO', null),
8141 sernumber,
8142 maker,
8143 v,
8144 latitud,
8145 longitud,
8146 level_
8147 into vEACO_SEC_CLIENTE_AT.DIRECCION,
8148 vEACO_SEC_CLIENTE_AT.COD_TRANSFO,
8149 vEACO_SEC_CLIENTE_AT.CAPACIDAD,
8150 vEACO_SEC_CLIENTE_AT.ACTIVO,
8151 vEACO_SEC_CLIENTE_AT.DEPARTAMENTO,
8152 vEACO_SEC_CLIENTE_AT.LOCALIZACION,
8153 vEACO_SEC_CLIENTE_AT.SERIE_MEDIDOR,
8154 vEACO_SEC_CLIENTE_AT.FABRICANTE,
8155 vEACO_SEC_CLIENTE_AT.VOLTAJE,
8156 vEACO_SEC_CLIENTE_AT.LATITUD,
8157 vEACO_SEC_CLIENTE_AT.LONGITUD,
8158 vEACO_SEC_CLIENTE_AT.NIVEL_TEN
8159 from x$cliente
8160 where code = c.elnode2;
8161
8162 exception
8163 when NO_DATA_FOUND then
8164 insert into etl_transformacion_log
8165 values
8166 (vTABLA_EXTRACION,
8167 'T$EACO_SEC_CLIENTE_AT',
8168 c.code,
8169 2,
8170 'No hay cliente para esta acometida',
8171 pCircuito,
8172 sysdate);
8173 commit;
8174 continue;
8175 end;
8176
8177 begin
8178 select m.nombre
8179 into vEACO_SEC_CLIENTE_AT.MUNICIPIO
8180 from x$cliente cl, EMUN_ACO_CLI_LST m
8181 where cl.code = c.elnode2
8182 and cl.dep_id = m.cod_dpto
8183 and cl.city = m.codigo;
8184
8185 exception
8186 when NO_DATA_FOUND then
8187 vEACO_SEC_CLIENTE_AT.MUNICIPIO := null;
8188 continue;
8189 end;
8190
8191 vEACO_SEC_CLIENTE_AT.G3E_FNO := fno;
8192 vEACO_SEC_CLIENTE_AT.G3E_CNO := 22002;
8193 vEACO_SEC_CLIENTE_AT.G3E_CID := 1;
8194 vEACO_SEC_CLIENTE_AT.G3E_FID := fid;
8195 vEACO_SEC_CLIENTE_AT.G3E_ID := EACO_SEC_CLIENTE_AT_SEQ.NEXTVAL;
8196
8197 insert into T$EACO_SEC_CLIENTE_AT values vEACO_SEC_CLIENTE_AT;
8198
8199 exception
8200 when others then
8201 rollback;
8202 vERROR := SUBSTR(SQLERRM, 1, 64);
8203
8204 insert into etl_transformacion_log
8205 values
8206 (vTABLA_EXTRACION,
8207 'T$EACO_SEC_CLIENTE_AT',
8208 c.code,
8209 1,
8210 vERROR,
8211 pCircuito,
8212 sysdate);
8213 commit;
8214 continue;
8215 end;
8216
8217 vRegistros := vRegistros + 1;
8218 insert into ETL_CODE2FID
8219 values
8220 (vTABLA_EXTRACION, c.code, fno, fid, pCircuito);
8221 commit;
8222
8223 end loop;
8224 CrearReport(pCircuito, vTABLA_EXTRACION, vRegistros, vTime);
8225 end;
8226
8227 procedure PT_FLUJO_CIR(pCircuito in VARCHAR2) is
8228
8229 begin
8230
8231 delete from etl_transformacion_log where circuito = pCircuito;
8232 commit;
8233
8234 delete from etl_code2fid where circuito = pCircuito;
8235 commit;
8236
8237 etl_transformacion_chec.pt_subestacion(pCircuito);
8238 etl_transformacion_chec.pt_barraje(pCircuito);
8239 etl_transformacion_chec.pt_poste(pCircuito);
8240 etl_transformacion_chec.pt_torre_transmision(pCircuito);
8241 etl_transformacion_chec.pt_camara(pCircuito);
8242 etl_transformacion_chec.pt_caja_dis(pCircuito);
8243
8244 /*
8245 begin
8246 execute immediate 'drop index idx_t$conn_fid';
8247 exception
8248 when others then
8249 null;
8250 end;
8251 */
8252 etl_transformacion_chec.pt_conductor_transmision(pCircuito);
8253 etl_transformacion_chec.pt_conductor_primario(pCircuito);
8254 etl_transformacion_chec.pt_conductor_secundario(pCircuito);
8255 etl_transformacion_chec.pt_acometida(pCircuito);
8256
8257 /*
8258 execute immediate 'create index idx_t$conn_fid on t$cconectividad_e (g3e_fid)';
8259 execute immediate 'analyze table t$cconectividad_e compute statistics';
8260 */
8261 etl_transformacion_chec.pt_nodo_conductor(pCircuito);
8262 etl_transformacion_chec.pt_feeder(pCircuito);
8263 etl_transformacion_chec.pt_interruptor(pCircuito);
8264 etl_transformacion_chec.pt_cuchilla(pCircuito);
8265 etl_transformacion_chec.pt_aisladero(pCircuito);
8266 etl_transformacion_chec.pt_reconectador(pCircuito);
8267 etl_transformacion_chec.pt_referencia(pCircuito);
8268 etl_transformacion_chec.pt_seccionalizador(pCircuito);
8269 etl_transformacion_chec.pt_suiche(pCircuito);
8270
8271 etl_transformacion_chec.pt_transformador(pCircuito);
8272
8273 etl_transformacion_chec.pt_pararrayo(pCircuito);
8274 etl_transformacion_chec.pt_indicador(pCircuito);
8275 etl_transformacion_chec.pt_luminaria(pCircuito);
8276
8277 SpatialElementosLineares;
8278
8279 end;
8280
8281 procedure PTN_NORMA_ELETRICA(pPHNODE in VARCHAR2,
8282 pFID in NUMBER,
8283 pFNO in NUMBER) is
8284 vNORMA T$NORMA%ROWTYPE;
8285 vEL1 varchar2(2);
8286 vEL2 varchar2(2);
8287 vEL3 varchar2(2);
8288 vEL4 varchar2(2);
8289 vEL5 varchar2(2);
8290 vEL6 varchar2(2);
8291 vEL7 varchar2(2);
8292
8293 vAssembly varchar2(16);
8294
8295 begin
8296
8297 select assembly
8298 into vAssembly
8299 from x$conectividad
8300 where phNode = pPHNODE
8301 and assembly is not null
8302 and rownum = 1;
8303
8304 vEL1 := substr(vAssembly, 1, 1);
8305 vEL2 := substr(vAssembly, 2, 1);
8306 vEL3 := substr(vAssembly, 3, 1);
8307 vEL4 := substr(vAssembly, 4, 1);
8308 vEL5 := substr(vAssembly, 5, 1);
8309 vEL6 := substr(vAssembly, 6, 1);
8310 vEL7 := substr(vAssembly, 7);
8311
8312 vNORMA := null;
8313
8314 begin
8315 select max(nvl(g3e_cid, 0)) + 1
8316 into vNORMA.G3E_CID
8317 from T$NORMA
8318 where g3e_fno = pFNO
8319 and g3e_fid = pFID;
8320 exception
8321 when others then
8322 vNORMA.G3E_CID := 1;
8323 end;
8324
8325 --GRUPO 1
8326 begin
8327 select norma, cantidad, grupo
8328 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
8329 from etl_normas
8330 where tipo = 'ELETRICO GRUPO 1'
8331 and g3e_fno = pFNO
8332 and valor = vEL1;
8333
8334 vNORMA.G3E_FNO := pFNO;
8335 vNORMA.G3E_CNO := 70;
8336 vNORMA.G3E_FID := pFID;
8337 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
8338
8339 insert into T$NORMA values vNORMA;
8340
8341 vNORMA.G3E_CID := vNORMA.G3E_CID + 1;
8342 exception
8343 when others then
8344 null;
8345 end;
8346
8347 --GRUPO 2
8348 begin
8349 select norma, cantidad, grupo
8350 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
8351 from etl_normas
8352 where tipo = 'ELETRICO GRUPO 2'
8353 and g3e_fno = pFNO
8354 and valor = vEL2;
8355
8356 vNORMA.G3E_FNO := pFNO;
8357 vNORMA.G3E_CNO := 70;
8358 vNORMA.G3E_FID := pFID;
8359 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
8360
8361 insert into T$NORMA values vNORMA;
8362
8363 vNORMA.G3E_CID := vNORMA.G3E_CID + 1;
8364 exception
8365 when others then
8366 null;
8367 end;
8368
8369 --GRUPO 3
8370 begin
8371 select norma, cantidad, grupo
8372 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
8373 from etl_normas
8374 where tipo = 'ELETRICO GRUPO 3'
8375 and g3e_fno = pFNO
8376 and valor = vEL3;
8377
8378 vNORMA.G3E_FNO := pFNO;
8379 vNORMA.G3E_CNO := 70;
8380 vNORMA.G3E_FID := pFID;
8381 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
8382
8383 insert into T$NORMA values vNORMA;
8384
8385 vNORMA.G3E_CID := vNORMA.G3E_CID + 1;
8386 exception
8387 when others then
8388 null;
8389 end;
8390
8391 --GRUPO 4
8392 begin
8393 select norma, cantidad, grupo
8394 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
8395 from etl_normas
8396 where tipo = 'ELETRICO GRUPO 4'
8397 and g3e_fno = pFNO
8398 and valor = vEL4;
8399
8400 vNORMA.G3E_FNO := pFNO;
8401 vNORMA.G3E_CNO := 70;
8402 vNORMA.G3E_FID := pFID;
8403 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
8404
8405 insert into T$NORMA values vNORMA;
8406
8407 vNORMA.G3E_CID := vNORMA.G3E_CID + 1;
8408 exception
8409 when others then
8410 null;
8411 end;
8412
8413 --GRUPO 5
8414 begin
8415 select norma, cantidad, grupo
8416 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
8417 from etl_normas
8418 where tipo = 'ELETRICO GRUPO 5'
8419 and g3e_fno = pFNO
8420 and valor = vEL5;
8421
8422 vNORMA.G3E_FNO := pFNO;
8423 vNORMA.G3E_CNO := 70;
8424 vNORMA.G3E_FID := pFID;
8425 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
8426
8427 insert into T$NORMA values vNORMA;
8428
8429 vNORMA.G3E_CID := vNORMA.G3E_CID + 1;
8430 exception
8431 when others then
8432 null;
8433 end;
8434
8435 --GRUPO 6
8436 begin
8437 select norma, cantidad, grupo
8438 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
8439 from etl_normas
8440 where tipo = 'ELETRICO GRUPO 6'
8441 and g3e_fno = pFNO
8442 and valor = vEL6;
8443
8444 vNORMA.G3E_FNO := pFNO;
8445 vNORMA.G3E_CNO := 70;
8446 vNORMA.G3E_FID := pFID;
8447 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
8448 insert into T$NORMA values vNORMA;
8449
8450 vNORMA.G3E_CID := vNORMA.G3E_CID + 1;
8451 exception
8452 when others then
8453 null;
8454 end;
8455
8456 --GRUPO 7
8457 begin
8458 select norma, cantidad, grupo
8459 into vNORMA.NORMA, vNORMA.CANTIDAD, vNORMA.GRUPO
8460 from etl_normas
8461 where tipo = 'ELETRICO GRUPO 7'
8462 and g3e_fno = pFNO
8463 and valor = vEL7;
8464
8465 vNORMA.G3E_FNO := pFNO;
8466 vNORMA.G3E_CNO := 70;
8467 vNORMA.G3E_FID := pFID;
8468 vNORMA.G3E_ID := NORMA_SEQ.NEXTVAL;
8469
8470 insert into T$NORMA values vNORMA;
8471
8472 vNORMA.G3E_CID := vNORMA.G3E_CID + 1;
8473 exception
8474 when others then
8475 null;
8476 end;
8477
8478 exception
8479 when others then
8480 null;
8481 end;
8482
8483 function PTC_BuscarNodoConductor(pCodigo in VARCHAR2, pNodo in VARCHAR2)
8484 return number is
8485
8486 cursor ConductoresConectados(cCodigo VARCHAR2, cNodo VARCHAR2) is
8487 select code, decode(elnode1, cNodo, 1, 2) pos
8488 from x$conductor_primario
8489 where (elnode1 = cNodo or elnode2 = cNodo)
8490 and code != cCodigo;
8491
8492 vNodo NUMBER := 0;
8493 vFID NUMBER := 0;
8494
8495 begin
8496
8497 for conductor in ConductoresConectados(pCodigo, pNodo) loop
8498
8499 begin
8500 select g3e_fid
8501 into vFID
8502 from etl_code2fid
8503 where code = conductor.code
8504 and g3e_fno in (19000, 18900);
8505
8506 if conductor.pos = 1 then
8507 select nodo1_id
8508 into vNodo
8509 from T$CCONECTIVIDAD_E
8510 where g3e_fid = vFID
8511 and g3e_fno != 18700;
8512 else
8513 select nodo2_id
8514 into vNodo
8515 from T$CCONECTIVIDAD_E
8516 where g3e_fid = vFID
8517 and g3e_fno != 18700;
8518 end if;
8519
8520 if vNodo != 0 then
8521
8522 return vNodo;
8523 end if;
8524
8525 exception
8526 when others then
8527 continue;
8528 end;
8529
8530 end loop;
8531
8532 return vNodo;
8533
8534 end;
8535
8536 function PTC_BuscarNodoConductorSec(pCodigo in VARCHAR2,
8537 pNodo in VARCHAR2) return number is
8538
8539 cursor ConductoresConectados(cCodigo VARCHAR2, cNodo VARCHAR2) is
8540 select code, decode(elnode1, cNodo, 1, 2) pos
8541 from x$conductor_secundario
8542 where (elnode1 = cNodo or elnode2 = cNodo)
8543 and code != cCodigo
8544 union all
8545 select code, decode(elnode1, cNodo, 1, 2) pos
8546 from x$acometida
8547 where (elnode1 = cNodo or elnode2 = cNodo)
8548 and code != cCodigo;
8549
8550 vNodo NUMBER := 0;
8551 vFID NUMBER := 0;
8552
8553 begin
8554
8555 for conductor in ConductoresConectados(pCodigo, pNodo) loop
8556
8557 begin
8558 select g3e_fid
8559 into vFID
8560 from etl_code2fid
8561 where code = conductor.code
8562 and g3e_fno in (21200, 22000);
8563
8564 if conductor.pos = 1 then
8565 select nodo1_id
8566 into vNodo
8567 from T$CCONECTIVIDAD_E
8568 where g3e_fid = vFID;
8569 else
8570 select nodo2_id
8571 into vNodo
8572 from T$CCONECTIVIDAD_E
8573 where g3e_fid = vFID;
8574 end if;
8575
8576 if vNodo != 0 then
8577
8578 return vNodo;
8579 end if;
8580
8581 exception
8582 when others then
8583 continue;
8584 end;
8585
8586 end loop;
8587
8588 return vNodo;
8589
8590 end;
8591
8592 function PTC_BuscarNodoSwitches(pLineSection in VARCHAR2,
8593 pX in NUMBER,
8594 pY in NUMBER,
8595 fidConduct in out NUMBER,
8596 nodePos in out NUMBER) return number is
8597
8598 geomPuntoSwitch sdo_geometry;
8599 geomPuntoCondN1 sdo_geometry;
8600 geomPuntoCondN2 sdo_geometry;
8601
8602 vCX1 NUMBER;
8603 vCY1 NUMBER;
8604 vCX2 NUMBER;
8605 vCY2 NUMBER;
8606
8607 vNodo NUMBER;
8608 vFID NUMBER;
8609
8610 vDist1 NUMBER;
8611 vDist2 NUMBER;
8612
8613 begin
8614
8615 --Buscar las coordinadas del conductor asociado
8616
8617 select XPOS1, YPOS1, XPOS2, YPOS2
8618 into vCX1, vCY1, vCX2, vCY2
8619 from (select code, XPOS1, YPOS1, XPOS2, YPOS2
8620 from x$conductor_primario
8621 union all
8622 select code, XPOS1, YPOS1, XPOS2, YPOS2
8623 from x$conductor_transmision)
8624 where code = pLineSection
8625 and rownum = 1;
8626
8627 geomPuntoSwitch := SDO_GEOMETRY(2001,
8628 21891,
8629 NULL,
8630 SDO_ELEM_INFO_ARRAY(1, 1, 1),
8631 SDO_ORDINATE_ARRAY(pX, pY));
8632
8633 geomPuntoCondN1 := SDO_GEOMETRY(2001,
8634 21891,
8635 NULL,
8636 SDO_ELEM_INFO_ARRAY(1, 1, 1),
8637 SDO_ORDINATE_ARRAY(vCX1, vCY1));
8638
8639 geomPuntoCondN2 := SDO_GEOMETRY(2001,
8640 21891,
8641 NULL,
8642 SDO_ELEM_INFO_ARRAY(1, 1, 1),
8643 SDO_ORDINATE_ARRAY(vCX2, vCY2));
8644
8645 vDist1 := SDO_GEOM.SDO_DISTANCE(geomPuntoCondN1, geomPuntoSwitch, 0.005);
8646 vDist2 := SDO_GEOM.SDO_DISTANCE(geomPuntoCondN2, geomPuntoSwitch, 0.005);
8647
8648 select g3e_fid into vFID from etl_code2fid where code = pLineSection;
8649
8650 if vDist1 < vDist2 then
8651 select nodo1_id
8652 into vNodo
8653 from t$cconectividad_e
8654 where g3e_fid = vFid;
8655 nodePos := 1;
8656 else
8657 select nodo2_id
8658 into vNodo
8659 from t$cconectividad_e
8660 where g3e_fid = vFid;
8661 nodePos := 2;
8662 end if;
8663
8664 fidConduct := vFid;
8665 return vNodo;
8666 exception
8667 when others then
8668 return 0;
8669
8670 end;
8671
8672 function PTC_BuscarNodoTransforAlta(pHNode in VARCHAR2) return number is
8673
8674 vNodo NUMBER := 0;
8675 vFID NUMBER := 0;
8676
8677 cursor ConductoresConectados(cNodo VARCHAR2) is
8678 select code, decode(elnode1, cNodo, 1, 2) pos
8679 from x$conductor_primario
8680 where (elnode1 = cNodo or elnode2 = cNodo);
8681
8682 begin
8683
8684 for conductor in ConductoresConectados(pHNode) loop
8685
8686 begin
8687 select g3e_fid
8688 into vFID
8689 from etl_code2fid
8690 where code = conductor.code;
8691
8692 if conductor.pos = 1 then
8693 select nodo1_id
8694 into vNodo
8695 from T$CCONECTIVIDAD_E
8696 where g3e_fid = vFID;
8697 else
8698 select nodo2_id
8699 into vNodo
8700 from T$CCONECTIVIDAD_E
8701 where g3e_fid = vFID;
8702 end if;
8703
8704 if vNodo != 0 then
8705
8706 return vNodo;
8707 end if;
8708
8709 exception
8710 when others then
8711 continue;
8712 end;
8713
8714 end loop;
8715
8716 return vNodo;
8717
8718 end;
8719
8720 function PTC_BuscarNodoTransforBaja(pLNode in VARCHAR2) return number is
8721
8722 vNodo NUMBER := 0;
8723 vFID NUMBER := 0;
8724
8725 cursor ConductoresConectados(cNodo VARCHAR2) is
8726 select code, decode(elnode1, cNodo, 1, 2) pos
8727 from x$conductor_secundario
8728 where (elnode1 = cNodo or elnode2 = cNodo)
8729 union all
8730 select code, decode(elnode1, cNodo, 1, 2) pos
8731 from x$acometida
8732 where (elnode1 = cNodo or elnode2 = cNodo);
8733
8734 begin
8735
8736 for conductor in ConductoresConectados(pLNode) loop
8737
8738 begin
8739 select g3e_fid
8740 into vFID
8741 from etl_code2fid
8742 where code = conductor.code;
8743
8744 if conductor.pos = 1 then
8745 select nodo1_id
8746 into vNodo
8747 from T$CCONECTIVIDAD_E
8748 where g3e_fid = vFID;
8749 else
8750 select nodo2_id
8751 into vNodo
8752 from T$CCONECTIVIDAD_E
8753 where g3e_fid = vFID;
8754 end if;
8755
8756 if vNodo != 0 then
8757 return vNodo;
8758 end if;
8759
8760 exception
8761 when others then
8762 continue;
8763 end;
8764
8765 if vNodo = 0 then
8766 vNodo := 0;
8767 end if;
8768
8769 end loop;
8770
8771 return vNodo;
8772
8773 end;
8774
8775 function PTC_BuscarOwnerIndicador(elnode in VARCHAR) return number is
8776
8777 vNodo NUMBER := 0;
8778 vFID NUMBER := 0;
8779
8780 cursor ConductoresConectados(cNodo VARCHAR2) is
8781 select code, decode(elnode1, cNodo, 1, 2) pos
8782 from x$conductor_secundario
8783 where (elnode1 = cNodo or elnode2 = cNodo)
8784 union
8785 select code, decode(elnode1, cNodo, 1, 2) pos
8786 from x$conductor_transmision
8787 where (elnode1 = cNodo or elnode2 = cNodo);
8788
8789 begin
8790
8791 for conductor in ConductoresConectados(elnode) loop
8792
8793 begin
8794 select g3e_fid
8795 into vFID
8796 from etl_code2fid
8797 where code = conductor.code;
8798
8799 select g3e_id into vNodo from T$CPERTENENCIA where g3e_fid = vFID;
8800
8801 if vNodo != 0 then
8802
8803 return vNodo;
8804 end if;
8805
8806 exception
8807 when others then
8808 continue;
8809 end;
8810
8811 end loop;
8812
8813 return vNodo;
8814
8815 end;
8816
8817 procedure CrearReport(pCircuito in varchar2,
8818 pTabla in varchar2,
8819 pRegistros in number,
8820 pTiempo in timestamp) is
8821
8822 vTiempo number(8);
8823 vDelta interval day(1) to second;
8824 vReg number(5);
8825 begin
8826 vDelta := current_timestamp - pTiempo;
8827
8828 delete from etl_transformacion_report
8829 where circuito = pCircuito
8830 and elemento = pTabla;
8831
8832 select extract(second from vDelta) + extract(minute from vDelta) * 60
8833 into vTiempo
8834 from dual;
8835
8836 select count(1)
8837 into vReg
8838 from etl_transformacion_log
8839 where circuito = pCircuito
8840 and tabla = pTabla
8841 and preoredad = 1;
8842
8843 dbms_output.put_line('Tabla: ' || pTabla || ' - Circuito: ' ||
8844 pCircuito || ' - Reg:' || vReg);
8845
8846 insert into etl_transformacion_report
8847 values
8848 (pCircuito, pTabla, vTiempo, pRegistros, vReg, sysdate);
8849 commit;
8850
8851 end;
8852
8853 procedure PoblarNodosEletricos is
8854
8855 begin
8856 insert into CHEC_NODOS_ELEC
8857 select null, conn.code, conn.phnode, conn.fparent, 0
8858 from x$conectividad conn
8859 where not exists
8860 (select code from CHEC_NODOS_ELEC where code = conn.code);
8861 commit;
8862 end;
8863
8864 procedure BorrarCircuito(pCircuito in varchar2) is
8865
8866 begin
8867
8868 for c2 in (select * from all_all_tables where table_name like 'T$%') loop
8869 begin
8870 execute immediate 'delete from ' || c2.table_name ||
8871 ' where g3e_fid in (select g3e_fid from etl_code2fid where circuito = ''' ||
8872 pCircuito || ''')';
8873 commit;
8874 exception
8875 when others then
8876 null;
8877 end;
8878 end loop;
8879
8880 delete from etl_code2fid where circuito = pCircuito;
8881 commit;
8882 update chec_nodos_elec set nodo_mde = 0 where fparent = pCircuito;
8883 commit;
8884
8885 end;
8886
8887 procedure LimpiarTablasTransformacion is
8888 begin
8889 for tablas in (select table_name
8890 from all_all_tables
8891 where table_name like 'T$%'
8892 and owner = 'GENERGIA') loop
8893 begin
8894 execute immediate 'TRUNCATE TABLE ' || tablas.table_name;
8895 exception
8896 when others then
8897 null;
8898 end;
8899
8900 end loop;
8901
8902 execute immediate 'truncate table etl_transformacion_log';
8903 execute immediate 'truncate table etl_transformacion_report';
8904 execute immediate 'truncate table etl_code2fid';
8905
8906 end;
8907
8908end ETL_TRANSFORMACION_CHEC;
8909/