· 6 years ago · Mar 14, 2019, 03:02 PM
1CREATE OR REPLACE PROCEDURE USPPESP.pr_ldd_ins_tab_fac (P_ITEMTYPE IN VARCHAR2
2,P_ITEMKEY IN VARCHAR2
3,P_ACTIVITY IN VARCHAR2
4,P_RESUL_OK IN OUT BOOLEAN
5,P_TIP_ERR IN OUT VARCHAR2
6) IS
7/********************************************************************************/
8-- EF016129-00-01: Nuevo producto LDD_VPN (similar a LDD_DATOS - TEMP)
9-- 22/05/2002 - Javier Pecyner - Accenture
10---------------------------------------------------------------------------------
11-- Req. GC026652 - Cargos Duplicados
12-- 01/12/2003 - Brusco Florencia - Accenture
13---------------------------------------------------------------------------------
14-- Req. UM046887 - Bonificacion en el Movimiento de BAJA
15-- 03/10/2005 - Gastón Schulz - Accenture
16---------------------------------------------------------------------------------
17-- Req. GC052660 - OS Duplicada
18-- 23/05/2006 - Ariel Botindari
19---------------------------------------------------------------------------------
20-- REQ. GC061223-00-001: Correccion por lineas MultiClaves
21-- 14/03/2007 - Daniel Ortega
22---------------------------------------------------------------------------------
23-- Correccion por Error en Cargos no Recurrentes (PESP_IFCE_COMISION -> L_tra_os_sigeco)
24-- 27/03/2007 - Daniel Ortega
25---------------------------------------------------------------------------------
26-- REQ. GC073704-00-001 - LDD - Modificación EnvÃo trasos a Fact.x Rescisión Contratos
27-- 17/04/2008 - Lucas Clausen
28/********************************************************************************/
29/* ------- CURSOR CON LOS TRAMITES CORRESPONDIENTES A LA SOLICITUD Y RENGLON EN EL ITEM_KEY ------ */
30
31
32L_VAR VARCHAR2(20);
33CURSOR CUR_TRAMITE (P_SOLICITUD IN NUMBER
34 ,P_RENGLON IN VARCHAR2
35 ) IS
36 SELECT *
37 FROM LDD_TRAMITES TRA
38 WHERE TRA.SOL_NRO_SOLIC = P_SOLICITUD
39 AND TRA.REN_NRO_RENGLON = P_RENGLON
40 AND (TRA.TPE_CODIGO, TRA.TMOV_CODIGO, TRA.TRA_NRO_TRAM) =
41 (SELECT TGE.TPE_CODIGO, TGE.TMOV_CODIGO, TGE.TGE_SEC
42 FROM PESP_TRMTE_GEN TGE
43 WHERE TGE.TPE_CODIGO = TRA.TPE_CODIGO
44 AND TGE.TMOV_CODIGO = TRA.TMOV_CODIGO
45 AND TGE.TGE_SEC = TRA.TRA_NRO_TRAM
46 )
47 AND not exists (select 'x' from ldd_versiones_servicios vse
48 where vse.srv_codigo = tra.srv_codigo and
49 vse.vse_version = tra.vse_version and
50 ((vse.vse_intcx = 'TECOTASA' and vse.enl_codigo not like '%FRON%')
51 or vse.vse_duracion = 'T')
52 )
53 AND INSTR(pa_pesp_cons.buscar_valor('LDD','TPE_NO_FACT',sysdate)
54 ,TRA.TPE_CODIGO) = 0 -- el tipo producto se debe facturar
55 ORDER BY TRA.TRA_NRO_TRAM;
56-- REGISTRO DE TRAMITE
57REG_TRAMITE CUR_TRAMITE%ROWTYPE;
58/* -------
59CURSOR CON LOS CARGOS RECURRENTES
60ASOCIADOS AL SERVICIO Y VERSION
61DERIVADOS DE LA SOLICITUD,
62RENGLON Y TRAMITE
63------ */
64CURSOR CUR_CARGOS_RECU (P_SRV_CODIGO IN NUMBER
65 ,P_VSE_VERSION IN NUMBER
66 ,p_tpe_codigo IN VARCHAR2
67 ) IS
68SELECT CRE.CRE_CDGO_CARGO
69 ,CRE.CRE_CANTIDAD
70 ,CRE.CRE_CDGO_CARGO_BONIFICADO
71 ,DECODE (CRE.CRE_CDGO_CARGO,
72 PA_PESP_CONS.BUSCAR_VALOR('PES','TR_CODE_MENDOZA',SYSDATE),
73 NULL,
74 CRE.CRE_DESCUENTO) CRE_DESCUENTO
75 ,CRE.CRE_IMPORTE
76 ,DECODE (CRE.CRE_CDGO_CARGO,
77 PA_PESP_CONS.BUSCAR_VALOR('PES','TR_CODE_MENDOZA',SYSDATE),
78 'CARGO',
79 B.TCR_GR_CARGO) TCR_GR_CARGO
80 ,CRE.CRE_PREFIX_CODE
81 ,CRE.CRE_VALOR_TRANSACCION
82 FROM PESP_TRN_TARIF B,
83 LDD_CARGOS_RECU CRE
84 WHERE CRE.SRV_CODIGO = P_SRV_CODIGO
85 AND CRE.VSE_VERSION = P_VSE_VERSION
86 AND B.TVL_TRANS_CODE = CRE.CRE_CDGO_CARGO
87 AND B.TPE_CODIGO = p_tpe_codigo
88 GROUP BY CRE.CRE_CDGO_CARGO
89 ,CRE.CRE_CANTIDAD
90 ,CRE.CRE_CDGO_CARGO_BONIFICADO
91 ,DECODE (CRE.CRE_CDGO_CARGO,
92 PA_PESP_CONS.BUSCAR_VALOR('PES','TR_CODE_MENDOZA',SYSDATE),
93 NULL,
94 CRE.CRE_DESCUENTO)
95 ,CRE.CRE_IMPORTE
96 ,DECODE (CRE.CRE_CDGO_CARGO,
97 PA_PESP_CONS.BUSCAR_VALOR('PES','TR_CODE_MENDOZA',SYSDATE),
98 'CARGO',
99 B.TCR_GR_CARGO)
100 ,CRE.CRE_PREFIX_CODE
101 ,CRE.CRE_VALOR_TRANSACCION;
102
103-- REGISTRO DE CARGOS RECURRENTES
104REG_CARGOS_RECU CUR_CARGOS_RECU%ROWTYPE;
105/* -------
106CURSOR CON LOS CARGOS NO-RECURRENTES
107ASOCIADOS A LA SOLICITUD,
108RENGLON Y TRAMITE
109------ */
110CURSOR CUR_CARGOS_NO_RECU (P_SOLICITUD IN NUMBER
111 ,P_RENGLON IN NUMBER
112 ,P_TRAMITE IN NUMBER
113 ,p_tpe_codigo IN VARCHAR2
114 ) IS
115 SELECT CNR.CNR_CDGO_CARGO
116 ,CNR.CNR_CANTIDAD
117 ,CNR.CNR_CDGO_CARGO_BONIFICADO
118 ,CNR.CNR_DESCUENTO
119 ,CNR.CNR_VALOR_TRANSACCION
120 ,CNR.CNR_CUOTAS
121 ,B.TCR_GR_CARGO
122 ,CNR.CNR_PREFIX_CODE
123 FROM PESP_TRN_TARIF B
124 ,LDD_CARGOS_NO_RECU CNR
125 WHERE CNR.SOL_NRO_SOLIC = P_SOLICITUD
126 AND CNR.REN_NRO_RENGLON = P_RENGLON
127 AND CNR.TRA_NRO_TRAM = P_TRAMITE
128 AND B.TVL_TRANS_CODE = CNR.CNR_CDGO_CARGO
129 AND B.TPE_CODIGO = p_tpe_codigo
130 GROUP BY CNR.CNR_CDGO_CARGO
131 ,CNR.CNR_CANTIDAD
132 ,CNR.CNR_CDGO_CARGO_BONIFICADO
133 ,CNR.CNR_DESCUENTO
134 ,CNR.CNR_VALOR_TRANSACCION
135 ,CNR.CNR_CUOTAS
136 ,B.TCR_GR_CARGO
137 ,CNR.CNR_PREFIX_CODE;
138-- REGISTRO DE CARGOS NO RECURRENTES
139REG_CARGOS_NO_RECU CUR_CARGOS_NO_RECU%ROWTYPE;
140/* -------
141CONSTANTES
142--------- */
143v_codigo_traso_baja_wf constant number := 400;
144/* -------
145VARIABLES LOCALES
146----- */
147V_EXISTS BOOLEAN;
148V_EXISTS_FOTO BOOLEAN;
149V_DUMMY DUAL.DUMMY%TYPE;
150V_ERROR_SIS BOOLEAN;
151V_ERROR_EST BOOLEAN;
152V_PER_ERROR PESP_ERRORES.PER_ERROR%TYPE;
153V_SOLICITUD NUMBER;
154V_RENGLON NUMBER;
155V_ERROR_SRV BOOLEAN;
156V_ERROR_CGO_RECU BOOLEAN;
157V_ERROR_COMISION_RECU BOOLEAN;
158V_INSERTAR_MOV_COMI BOOLEAN;
159V_PROCE_FOT_SRV BOOLEAN;
160V_CLI_TIT LDD_VERSIONES_SERVICIOS.CLI_CODIGO_TIT%TYPE;
161V_CTA_TIT LDD_VERSIONES_SERVICIOS.CTA_CODIGO_TIT%TYPE;
162V_CLI_USU LDD_VERSIONES_SERVICIOS.CLI_CODIGO_USU%TYPE;
163V_CTA_USU LDD_VERSIONES_SERVICIOS.CTA_CODIGO_USU%TYPE;
164V_SUS_TEMP_DESDE LDD_VERSIONES_SERVICIOS.VSE_FEC_SUSP_TEMP_DSDE%TYPE;
165V_SUS_TEMP_HASTA LDD_VERSIONES_SERVICIOS.VSE_FEC_SUSP_TEMP_HSTA%TYPE;
166V_CODIGO_MONEDA LDD_VERSIONES_SERVICIOS.PMO_CODE%TYPE;
167V_TIVA_CODIGO VARCHAR2(2); /* -- LA COLUMNA DE LDD ES NUMBER(1),
168 PERO EN SIGECO ES VARCHAR2 --- */
169V_TIVA_ZOFR BOOLEAN;
170V_PRESTADOR CHAR(1);
171V_NPA LDD_CARAC_TPE.CTP_FACTURACION%TYPE;
172V_CNTL_DATE PESP_IFCE_MOV_SVC.IMS_CNTL_DATE%TYPE;
173V_EFF_DATE PESP_IFCE_MOV_SVC.IMS_EFF_DATE%TYPE;
174V_TIPG_CODIGO_C PESP_IFCE_MOV_SVC.IMS_TIPG_CODIGO_I%TYPE;
175V_GEOG_CODIGO_C PESP_IFCE_MOV_SVC.IMS_GEO_CODIGO_I%TYPE;
176V_DOMI_CODIGO_C PESP_IFCE_MOV_SVC.IMS_DOMI_CODIGO_I%TYPE;
177V_TIPG_CODIGO_D PESP_IFCE_MOV_SVC.IMS_TIPG_CODIGO_DIST%TYPE;
178V_GEOG_CODIGO_D PESP_IFCE_MOV_SVC.IMS_GEO_CODIGO_DIST%TYPE;
179V_DOMI_CODIGO_D PESP_IFCE_MOV_SVC.IMS_DOMI_CODIGO_DIST%TYPE;
180V_FOTO PESP_IFCE_MOV_SVC.IMS_FOTO%TYPE;
181V_IFS_SEQ PESP_IFCE_FOTO_SVC.IFS_SEQ%TYPE; /* SECUENCIA DE FOTO SERVICIO */
182V_ICO_SEQ PESP_IFCE_COMISION.ICO_SEQ%TYPE; /* SECUENCIA DE COMISION */
183V_IFC_SEQ PESP_IFCE_FOTO_COMISION.IFC_SEQ%TYPE; /* SECUENCIA DE FOTO COMISION */
184V_CDE_CODIGO PESP_DCTO_VLDO.CDE_CODIGO%TYPE;
185V_CODIGO_VOLUMNEN PESP_STND_GRAL.EGR_VALOR%TYPE;
186V_ASOCIA_SIGECO PESP_CDGO_DCTO.CDE_ASOCIA_SIGECO%TYPE;
187v_codigo_mov_traso pesp_tipo_mov_vldo.TMV_COD_MOV_TRASOS%TYPE;
188v_codigo_mov_traso_aux pesp_tipo_mov_vldo.TMV_COD_MOV_TRASOS%TYPE;
189v_codigo_traso_automatico pesp_tipo_mov_vldo.tmv_cod_os_trasos%TYPE;
190v_codigo_traso pesp_tipo_mov_vldo.tmv_cod_os_trasos%TYPE;
191v_traso pesp_tipo_mov_vldo.tmv_cod_os_trasos%TYPE;
192p_valor pesp_stnd_gral.egr_valor%TYPE;
193l_IMC_SEQ pesp_ifce_mov_cgo.IMC_SEQ%TYPE;
194l_IFG_SEQ pesp_ifce_foto_cgos.IFG_SEQ%TYPE;
195v_existe_traso varchar2(1);
196v_tiene_multa varchar2(1);
197l_basico number;
198l_minimo number;
199l_tra_os_sigeco pesp_ifce_mov_svc.ims_nos%TYPE:=NULL;
200l_tra_os_sigeco_nueva LDD_TRAMITES.tra_os_sigeco%TYPE;
201l_tra_os_multa LDD_TRAMITES.tra_os_multa%TYPE:=NULL;
202v_inserta_os_nueva varchar2(1);
203l_activity number;
204V_SRV_CONTROL_DATE PESP_SERVICIOS.SRV_CONTROL_DATE%TYPE;
205v_tiene_Quantity BOOLEAN;
206wcnr_cantidad ldd_cargos_no_recu.cnr_cantidad%TYPE;
207l_existe NUMBER;
208/* agregado para que guarde en la foto los importes de los cargos recurrentes variables*/
209l_cre_importe ldd_cargos_recu.cre_importe%TYPE;
210l_variable pesp_ifce_foto_cgos.ifg_variable%TYPE;
211/*Agrego para el REQ. GC061223-00-001: Correccion por lineas MultiClaves*/
212l_cargo_multiclave LDD_CARGOS_RECU.CRE_CDGO_CARGO%TYPE;
213l_cant_multiclave NUMBER(2);
214l_es_multiclave VARCHAR2(1);
215--------------------------------------------------------------------------------
216-- PROCEDIMIENTO: INS_PLS_TAB_PESP_ERR --
217--------------------------------------------------------------------------------
218-- --
219-- OBJETIVO: SE ENCARGA DE INSERTAR UNA FILA CON UNA DESCRIPCION DEL ERROR --
220-- QUE SE HA PRODUCIDO; EN LA PLSQL TABLE PARA QUE ESTA SEA --
221-- POSTERIORMENTE VOLCADA EN UNA DATABASE TABLE. --
222-- --
223-- PARAMETROS DE ENTRADA: --
224-- P_MENSAJE_ERROR = MENSAJE DE ERROR --
225-- P_SEQ = NUMERO DE SECUENCIA DE --
226-- ERROR. --
227-- --
228--------------------------------------------------------------------------------
229PROCEDURE INS_PLS_TAB_PESP_ERR (P_MENSAJE_ERROR IN VARCHAR2
230 ,P_TIP_ERR IN VARCHAR2
231 ) IS
232l_seq number;
233begin
234 l_seq := pa_pesp_errores.l_pesp_errores.COUNT + 1;
235 pa_pesp_errores.l_pesp_errores(l_seq).per_error := p_mensaje_error;
236 pa_pesp_errores.l_pesp_errores(l_seq).per_tip_err := p_tip_err;
237end;
238--------------------------------------------------------------------------------
239-- La marca quantity (ldd_versiones_servicios.vse_cantidad) se utiliza para
240-- habilitar a determinados servicios a que se le pueda modificar la cantidad de
241-- los Abonos(Cargo Recurente), para la mayoria de los servicios ademas se le aplico
242-- previamente un cambio de titularidad generando en SIGECO una Baja y Alta de la
243-- linea por lo cual estos casos en el envio a facturacion la fecha V_CNTL_DATE deja de
244-- ser SRV_FECHA_ALTA y se pasa a informar srv_control_date
245--------------------------------------------------------------------------------
246FUNCTION Buscar_Quantity(v_SRV_CODIGO IN NUMBER, v_VSE_VERSION IN NUMBER)
247 RETURN BOOLEAN IS
248l_quantity ldd_versiones_servicios.vse_cantidad%TYPE;
249BEGIN
250 BEGIN
251 SELECT nvl(vse_cantidad, -1)
252 INTO l_quantity
253 FROM ldd_versiones_servicios
254 WHERE srv_codigo = v_srv_codigo
255 AND vse_version = v_vse_version;
256 EXCEPTION
257 WHEN no_data_found THEN
258 l_quantity := -1;
259 END;
260 IF ( l_quantity > -1 ) THEN
261 RETURN TRUE;
262 ELSE
263 RETURN FALSE ;
264 END IF;
265END;
266/* ------------
267CUERPO PRINCIPAL
268ESTE PROCEDIMIENTO SE ENCARGA DE EFECTUAR EL PASAJE
269A FACTURACION.
270SU ENTRADA SON LOS DATOS DE FACTURACION DE LAS TABLAS
271DE LDD Y SU SALIDA SON INSERCIONES EN LAS SIGUIENTES
272TABLAS DE PESP:
273- PESP_IFCE_MOV_SVC (MOVIMIENTOS DE SERVICIOS)
274- PESP_IFCE_FOTO_SVC (FOTO DE SERVICIOS)
275- PESP_IFCE_MOV_CGO (MOVIMIENTOS DE CARGOS)
276- PESP_IFCE_FOTO_CGOS (FOTO DE CARGOS)
277- PESP_IFCE_COMISION (COMISIONES)
278- PESP_IFCE_FOTO_COMISION (FOTO COMISIONES)
279------- */
280BEGIN
281 V_ERROR_SIS := FALSE;
282 V_ERROR_EST := FALSE;
283 SAVEPOINT INICIO;
284 -- INICIALIZACIONES
285 P_RESUL_OK := TRUE;
286 V_SOLICITUD := TO_NUMBER(SUBSTR(P_ITEMKEY,4,8));
287 V_RENGLON := TO_NUMBER(SUBSTR(P_ITEMKEY,12,5));
288 p_valor := pa_pesp_cons.buscar_valor( 'LDD', 'TR_CODE_IMPORTE', sysdate);
289 if p_valor is null then
290 p_valor := pa_pesp_cons.buscar_valor( 'LDD', 'TR_CODE_IMP_PF', sysdate);
291 end if;
292 if p_valor is null then
293 V_ERROR_CGO_RECU := TRUE;
294 V_ERROR_SIS := TRUE;
295 V_PER_ERROR := 'ERROR: Problemas al recuperar parametro TR_CODE_IMPORTE en PESP_STND_GRAL';
296 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
297 end if;
298 FOR REG_TRAMITE IN CUR_TRAMITE (V_SOLICITUD, V_RENGLON)
299 LOOP
300 V_ERROR_SRV := FALSE;
301 V_PROCE_FOT_SRV := FALSE;
302 /* ----
303 OBTENCION DE LA CUENTA
304 Y EL CLIENTE
305 TITULAR Y USUARIO
306 ------- */
307 BEGIN
308 SELECT CLI_CODIGO_TIT
309 ,CTA_CODIGO_TIT
310 ,CLI_CODIGO_USU
311 ,CTA_CODIGO_USU
312 ,VSE_FEC_SUSP_TEMP_DSDE
313 ,PMO_CODE
314 INTO V_CLI_TIT
315 ,V_CTA_TIT
316 ,V_CLI_USU
317 ,V_CTA_USU
318 ,V_SUS_TEMP_DESDE
319 ,V_CODIGO_MONEDA
320 FROM LDD_VERSIONES_SERVICIOS
321 WHERE SRV_CODIGO = REG_TRAMITE.SRV_CODIGO AND
322 VSE_VERSION = REG_TRAMITE.VSE_VERSION;
323 EXCEPTION
324 WHEN NO_DATA_FOUND THEN
325 V_ERROR_EST := TRUE;
326 V_ERROR_SRV := TRUE;
327 V_PER_ERROR := 'NO SE ENCUENTRAN DATOS EN LA TABLA LDD_VERSIONES_SERVICIOS'
328 ||' CON EL COD. SERVICIO: '||TO_CHAR(REG_TRAMITE.SRV_CODIGO)
329 ||' VSE_VERSION: '||TO_CHAR(REG_TRAMITE.VSE_VERSION);
330 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
331 WHEN OTHERS THEN
332 V_ERROR_SIS := TRUE;
333 V_ERROR_SRV := TRUE;
334 V_PER_ERROR := 'ERROR AL BUSCAR DATOS EN LA TABLA LDD_VERSIONES_SERVICIOS: '
335 ||SUBSTR(SQLERRM,1,150);
336 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'S');
337 END;
338 /* -----
339 OBTENCION DE LA CONDICION DE IVA DEL CLIENTE USUARIO
340 AGREGAR UN '0' A IZQUIERDA
341 ------ */
342 --Primero verifico si el cliente/cuenta pertenece a Zona Franca.
343 BEGIN
344 v_tiva_zofr := PA_PESP_CUENTA.VERIFICA_CLIENTE_ZONA_FRANCA (V_CLI_USU,
345 V_CTA_USU);
346 EXCEPTION
347 WHEN OTHERS THEN
348 V_ERROR_SIS := TRUE;
349 V_ERROR_SRV := TRUE;
350 V_PER_ERROR := 'ERROR AL VERIFICAR CLIENTE/CUENTA USUARIO EN LA VISTA CUENTA_ZONA_V. '||
351 SUBSTR(SQLERRM,1,150);
352 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
353 END;
354 --
355 IF v_tiva_zofr THEN
356 --Si el cliente/cuenta pertence a Zona Franca le asigno el TIPO de IVA '04'
357 V_TIVA_CODIGO := '04';
358 ELSE
359 --Si no pertenece a Zona Franca, calculo el TIPO de IVA normalmente
360 BEGIN
361 null;
362 SELECT lpad(TO_CHAR(TIVA_CODIGO), 2, '0')
363 INTO V_TIVA_CODIGO
364 FROM CLIENTES_V
365 WHERE CLIE_CODIGO = V_CLI_USU;
366 EXCEPTION
367 WHEN NO_DATA_FOUND THEN
368 V_ERROR_EST := TRUE;
369 V_ERROR_SRV := TRUE;
370 V_PER_ERROR := 'NO SE ENCUENTRAN DATOS EN LA VISTA CLIENTES_V'
371 ||' PARA EL CLIENTE: '||TO_CHAR(V_CLI_USU);
372 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
373 WHEN OTHERS THEN
374 V_ERROR_SIS := TRUE;
375 V_ERROR_SRV := TRUE;
376 V_PER_ERROR := 'ERROR AL BUSCAR DATOS EN LA VISTA CLIENTES_V. '||
377 SUBSTR(SQLERRM,1,150);
378 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
379 END;
380 END IF;
381
382
383 /* -----
384 VERIFICAR SI EL TITULAR ES PRESTADOR
385 OJO PORQUE ESTA FUNCION SI NO SE ENCUENTRA O ALGO RARO DEVUELVE
386 NULL Y ESTE ES UN VALOR POSIBLE AUN CUANDO NO HAYA ERROR
387 ----- */
388 V_PRESTADOR := PA_ATD_CONS_COTA.CLIENTE_PRESTADOR(V_CLI_TIT);
389 IF V_PRESTADOR IS NULL or v_prestador <> 'S' THEN
390 -- debe quedar en N
391 v_prestador := 'N';
392 END IF;
393 dbms_output.put_line('prestador:'||v_prestador);
394 /* ------
395 RECUPERAR NPA
396 -------- */
397 BEGIN
398 SELECT CTP_FACTURACION
399 INTO V_NPA
400 FROM LDD_CARAC_TPE
401 WHERE TPE_CODIGO = REG_TRAMITE.TPE_CODIGO
402 AND CTP_PRESTADOR = V_PRESTADOR;
403 ---
404 EXCEPTION
405 WHEN NO_DATA_FOUND THEN
406 V_ERROR_EST := TRUE;
407 V_ERROR_SRV := TRUE;
408 V_PER_ERROR := 'NO SE ENCUENTRAN DATOS EN LA TABLA LDD_CARAC_TPE'
409 ||' PARA EL TPE: '||REG_TRAMITE.TPE_CODIGO
410 ||' Y LA CONDICION DE PRESTADOR EN '
411 ||V_PRESTADOR;
412 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
413 WHEN OTHERS THEN
414 V_ERROR_SIS := TRUE;
415 V_ERROR_SRV := TRUE;
416 V_PER_ERROR := 'ERROR AL BUSCAR DATOS EN LA TABLA LDD_CARAC_TPE. '||
417 SUBSTR(SQLERRM,1,150);
418 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
419 END;
420 -- RECUPERAR LA FECHA EN QUE NACE EL SERVICIO
421 IF REG_TRAMITE.TMOV_CODIGO = 'CBIOPERM' THEN
422 V_CNTL_DATE := REG_TRAMITE.TRA_FEC_CUMP_OS;
423 IF V_CNTL_DATE IS NULL THEN
424 /*
425 ERROR: NO DEBERIA SER NULO POR MAS QUE EN LA TABLA ORIGEN SE PERMITA
426 */
427 V_ERROR_EST := TRUE;
428 V_ERROR_SRV := TRUE;
429 V_PER_ERROR := 'CNTL DATE, QUE SE INICIALIZO CON LA FECHA DE CUMP.'
430 ||'DE LA ORDEN DE SERVICIO, ES NULA';
431 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
432 END IF;
433 ELSE
434 BEGIN
435 SELECT SRV_FECHA_ALTA, SRV_CONTROL_DATE
436 INTO V_CNTL_DATE , V_SRV_CONTROL_DATE
437 FROM PESP_SERVICIOS
438 WHERE SRV_CODIGO = REG_TRAMITE.SRV_CODIGO;
439 ---
440 EXCEPTION
441 WHEN NO_DATA_FOUND THEN
442 V_ERROR_EST := TRUE;
443 V_ERROR_SRV := TRUE;
444 V_PER_ERROR :=
445 'NO SE ENCUENTRAN DATOS EN LA TABLA PESP_SERVICIOS'
446 ||' PARA EL SERVICIO: '||TO_CHAR(REG_TRAMITE.SRV_CODIGO)
447 ||' VERSION '||TO_CHAR(REG_TRAMITE.VSE_VERSION);
448 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
449 WHEN OTHERS THEN
450 V_ERROR_SIS := TRUE;
451 V_ERROR_SRV := TRUE;
452 V_PER_ERROR :=
453 'ERROR AL BUSCAR DATOS EN LA TABLA PESP_SERVICIOS. '||
454 SUBSTR(SQLERRM,1,150);
455 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
456 END;
457 -- Si existe Quantity, debo informar V_CNTL_DATE con
458 v_tiene_Quantity := Buscar_Quantity(REG_TRAMITE.SRV_CODIGO ,
459 REG_TRAMITE.VSE_VERSION);
460 IF v_tiene_Quantity THEN
461 IF V_SRV_CONTROL_DATE IS NOT NULL THEN
462 V_CNTL_DATE := V_SRV_CONTROL_DATE;
463 END IF;
464 END IF;
465 IF V_CNTL_DATE IS NULL THEN
466 /*
467 ERROR: NO DEBERIA SER NULO POR MAS QUE EN LA TABLA ORIGEN SE PERMITA
468 */
469 V_ERROR_EST := TRUE;
470 V_ERROR_SRV := TRUE;
471 V_PER_ERROR := 'CNTL DATE, QUE SE INICIALIZO CON LA FECHA DE ALTA '
472 ||'DEL SERVICIO, ES NULA';
473 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
474 END IF;
475 END IF;
476 -- RECUPERAR LA FECHA EN QUE SE AFECTA LA FACTURACION
477 IF REG_TRAMITE.TMOV_CODIGO = 'REHABSER' THEN
478 -- Recuperar la susp temp hasta de la version de servicio anterior
479 begin
480 SELECT VSE_FEC_SUSP_TEMP_HSTA
481 INTO V_SUS_TEMP_HASTA
482 FROM LDD_VERSIONES_SERVICIOS A
483 WHERE A.SRV_CODIGO = REG_TRAMITE.SRV_CODIGO AND
484 A.VSE_VERSION = (SELECT MAX(B.VSE_VERSION)
485 FROM LDD_VERSIONES_SERVICIOS B
486 WHERE B.SRV_CODIGO = A.SRV_CODIGO AND
487 B.VSE_ESTADO = 'HI'); /* la version de la susp temp */
488 --
489 exception
490 WHEN NO_DATA_FOUND THEN
491 V_ERROR_EST := TRUE;
492 V_ERROR_SRV := TRUE;
493 V_PER_ERROR :=
494 'NO SE ENCUENTRAN DATOS EN LA TABLA LDD_VERSIONES_SERVICIOS'
495 ||' PARA EL SERVICIO: '||TO_CHAR(REG_TRAMITE.SRV_CODIGO)
496 ||' VERSION '||TO_CHAR(REG_TRAMITE.VSE_VERSION - 1);
497 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
498 WHEN OTHERS THEN
499 V_ERROR_SIS := TRUE;
500 V_ERROR_SRV := TRUE;
501 V_PER_ERROR :=
502 'ERROR AL BUSCAR DATOS EN LA TABLA LDD_VERSIONES_SERVICIOS. '||
503 SUBSTR(SQLERRM,1,150);
504 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
505 end;
506 V_EFF_DATE := V_SUS_TEMP_HASTA;
507 IF V_EFF_DATE IS NULL THEN
508 -- REQ. GC061223-00-001: Correccion por lineas MultiClaves
509 If Not REG_TRAMITE.TRA_FEC_CUMP_OS IS NULL THEN
510 V_EFF_DATE := REG_TRAMITE.TRA_FEC_CUMP_OS;
511 Else
512 /*
513 ERROR: NO DEBERIA SER NULO POR MAS QUE EN LA TABLA ORIGEN SE PERMITA
514 */
515 V_ERROR_EST := TRUE;
516 V_ERROR_SRV := TRUE;
517 V_PER_ERROR := 'EFF DATE, QUE SE INICIALIZO CON LA FECHA DE '
518 ||'SUSPENSION TEMPORARIA HASTA, ES NULA';
519 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
520 End if;
521 END IF;
522 ELSIF
523 REG_TRAMITE.TMOV_CODIGO = 'SUSPTEMP' THEN
524 V_EFF_DATE := V_SUS_TEMP_DESDE;
525 IF V_EFF_DATE IS NULL THEN
526 /*
527 ERROR: NO DEBERIA SER NULO POR MAS QUE EN LA TABLA ORIGEN SE PERMITA
528 */
529 V_ERROR_EST := TRUE;
530 V_ERROR_SRV := TRUE;
531 V_PER_ERROR := 'EFF DATE, QUE SE INICIALIZO CON LA FECHA DE '
532 ||'SUSPENSION TEMPORARIA DESDE, ES NULA';
533 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
534 END IF;
535 ELSIF
536 REG_TRAMITE.TMOV_CODIGO = 'ALTA' THEN
537 -- COMO NO ES CBIOPERM, SE SELECCIONO V_CNTL_DATE Y LO APROVECHO
538 V_EFF_DATE := V_CNTL_DATE;
539 --
540 IF V_EFF_DATE IS NULL THEN
541 /*
542 ERROR: NO DEBERIA SER NULO POR MAS QUE EN LA TABLA ORIGEN SE PERMITA
543 */
544 V_ERROR_EST := TRUE;
545 V_ERROR_SRV := TRUE;
546 V_PER_ERROR := 'EFF DATE, QUE SE INICIALIZO CON LA CNTL DATE '
547 ||'ES NULA';
548 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
549 END IF;
550 ELSIF
551 REG_TRAMITE.TMOV_CODIGO = 'BAJA' THEN
552 V_EFF_DATE := REG_TRAMITE.TRA_FEC_EJEC_OS;
553 --
554 IF V_EFF_DATE IS NULL THEN
555 /*
556 ERROR: NO DEBERIA SER NULO POR MAS QUE EN LA TABLA ORIGEN SE PERMITA
557 */
558 V_ERROR_EST := TRUE;
559 V_ERROR_SRV := TRUE;
560 V_PER_ERROR := 'EFF DATE, QUE SE INICIALIZO CON LA FECHA DE '
561 ||'EJECUCION DE ORDEN DE SERVICIO, ES NULA';
562 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
563 END IF;
564 ELSIF
565 REG_TRAMITE.TMOV_CODIGO = 'SUSPRECO' THEN
566 V_EFF_DATE := REG_TRAMITE.TRA_FEC_EJEC_OS;
567 --
568 IF V_EFF_DATE IS NULL THEN
569 /*
570 ERROR: NO DEBERIA SER NULO POR MAS QUE EN LA TABLA ORIGEN SE PERMITA
571 */
572 V_ERROR_EST := TRUE;
573 V_ERROR_SRV := TRUE;
574 V_PER_ERROR := 'EFF DATE, QUE SE INICIALIZO CON LA FECHA DE '
575 ||'EJECUCION DE ORDEN DE SERVICIO, ES NULA';
576 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
577 END IF;
578 ELSE
579 V_EFF_DATE := REG_TRAMITE.TRA_FEC_CUMP_OS;
580 --
581 IF V_EFF_DATE IS NULL THEN
582 /*
583 ERROR: NO DEBERIA SER NULO POR MAS QUE EN LA TABLA ORIGEN SE PERMITA
584 */
585 V_ERROR_EST := TRUE;
586 V_ERROR_SRV := TRUE;
587 V_PER_ERROR := 'EFF DATE, QUE SE INICIALIZO CON LA FECHA DE '
588 ||'CUMPLIMIENTO DE ORDEN DE SERVICIO, ES NULA';
589 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
590 END IF;
591 END IF;
592 -- SELECCIONAR PARAMETROS DEL DOMICILIO CABECERA
593 BEGIN
594 SELECT DES_TIPG_CODIGO
595 ,DES_GEOG_CODIGO
596 ,DES_DOMI_CODIGO
597 INTO V_TIPG_CODIGO_C
598 ,V_GEOG_CODIGO_C
599 ,V_DOMI_CODIGO_C
600 FROM LDD_VERSIONES_EXTREMOS
601 WHERE SRV_CODIGO = REG_TRAMITE.SRV_CODIGO
602 AND VEX_TIPO_DOMI = REG_TRAMITE.VEX_TIPO_DOMI_CAB
603 AND VEX_VERSION = REG_TRAMITE.VEX_VERSION_CAB;
604 ---
605 EXCEPTION
606 WHEN NO_DATA_FOUND THEN
607 V_ERROR_EST := TRUE;
608 V_ERROR_SRV := TRUE;
609 V_PER_ERROR :=
610 'NO SE ENCUENTRAN DATOS EN LA TABLA LDD_VERSIONES_EXTREMOS'
611 ||' PARA EL SERVICIO '||TO_CHAR(REG_TRAMITE.SRV_CODIGO)
612 ||' TIPO DE DOMICILIO '||REG_TRAMITE.VEX_TIPO_DOMI_CAB
613 ||' Y VERSION '||TO_CHAR(REG_TRAMITE.VEX_VERSION_CAB);
614 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
615 WHEN OTHERS THEN
616 V_ERROR_SIS := TRUE;
617 V_ERROR_SRV := TRUE;
618 V_PER_ERROR :=
619 'ERROR AL BUSCAR DATOS EN LA TABLA LDD_VERSIONES_EXTREMOS (CABECERA). '||
620 SUBSTR(SQLERRM,1,150);
621 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
622 END;
623 -- SELECCIONAR PARAMETROS DEL DOMICILIO DISTANTE
624 BEGIN
625 SELECT DES_TIPG_CODIGO
626 ,DES_GEOG_CODIGO
627 ,DES_DOMI_CODIGO
628 INTO V_TIPG_CODIGO_D
629 ,V_GEOG_CODIGO_D
630 ,V_DOMI_CODIGO_D
631 FROM LDD_VERSIONES_EXTREMOS
632 WHERE SRV_CODIGO = REG_TRAMITE.SRV_CODIGO
633 AND VEX_TIPO_DOMI = REG_TRAMITE.VEX_TIPO_DOMI_DIST
634 AND VEX_VERSION = REG_TRAMITE.VEX_VERSION_DIST;
635 ---
636 EXCEPTION
637 WHEN NO_DATA_FOUND THEN
638 V_ERROR_EST := TRUE;
639 V_ERROR_SRV := TRUE;
640 V_PER_ERROR :=
641 'NO SE ENCUENTRAN DATOS EN LA TABLA LDD_VERSIONES_EXTREMOS'
642 ||' PARA EL SERVICIO '||TO_CHAR(REG_TRAMITE.SRV_CODIGO)
643 ||' TIPO DE DOMICILIO '||REG_TRAMITE.VEX_TIPO_DOMI_DIST
644 ||' Y VERSION '||TO_CHAR(REG_TRAMITE.VEX_VERSION_DIST);
645 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
646 WHEN OTHERS THEN
647 V_ERROR_SIS := TRUE;
648 V_ERROR_SRV := TRUE;
649 V_PER_ERROR :=
650 'ERROR AL BUSCAR DATOS EN LA TABLA LDD_VERSIONES_EXTREMOS (DISTANTE). '||
651 SUBSTR(SQLERRM,1,150);
652 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
653 END;
654 -- SELECCIONAR SI SE NECESITA FOTO O NO
655 BEGIN
656 SELECT TGE_FACT
657 INTO V_FOTO
658 FROM PESP_TRMTE_GEN
659 WHERE TPE_CODIGO = REG_TRAMITE.TPE_CODIGO
660 AND TMOV_CODIGO = REG_TRAMITE.TMOV_CODIGO
661 AND TGE_SEC = REG_TRAMITE.TRA_NRO_TRAM;
662 -----
663 EXCEPTION
664 WHEN NO_DATA_FOUND THEN
665 V_ERROR_EST := TRUE;
666 V_ERROR_SRV := TRUE;
667 V_PER_ERROR :=
668 'NO SE ENCUENTRAN DATOS EN LA TABLA PESP_TRMTE_GEN'
669 ||' PARA EL PRODUCTO '||REG_TRAMITE.TPE_CODIGO
670 ||' TIPO DE MOVIMIENTO '||REG_TRAMITE.TMOV_CODIGO
671 ||' Y NRO DE TRAMITE '||TO_CHAR(REG_TRAMITE.TRA_NRO_TRAM);
672 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
673 WHEN OTHERS THEN
674 V_ERROR_SIS := TRUE;
675 V_ERROR_SRV := TRUE;
676 V_PER_ERROR :=
677 'ERROR AL BUSCAR DATOS EN LA TABLA PESP_TRMTE_GEN. '||
678 SUBSTR(SQLERRM,1,150);
679 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
680 END;
681 IF REG_TRAMITE.TRA_FEC_EMSN_OS IS NULL THEN
682 /*
683 ERROR: NO DEBERIA SER NULO POR MAS QUE EN LA TABLA ORIGEN SE PERMITA
684 */
685 V_ERROR_EST := TRUE;
686 V_ERROR_SRV := TRUE;
687 V_PER_ERROR := 'FECHA DE EMISION DE ORDEN DE SERVICIO, QUE SIRVE PARA '
688 ||'INICIALIZAR CONTACT DATE, ES NULA';
689 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
690 END IF;
691 IF REG_TRAMITE.TRA_OS_SIGECO IS NULL THEN
692 /*
693 ERROR: NO DEBERIA SER NULO POR MAS QUE EN LA TABLA ORIGEN SE PERMITA
694 */
695 V_ERROR_EST := TRUE;
696 V_ERROR_SRV := TRUE;
697 V_PER_ERROR := 'EL CAMPO OS SIGECO DE TRAMITES (QUE SIRVE PARA '
698 ||'INICIALIZAR IMS_NOS) ES NULL';
699 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
700 END IF;
701 -- Recuperar el codigo de trasos
702 BEGIN
703
704 select TMV_COD_MOV_TRASOS, tmv_cod_os_trasos
705 into v_codigo_mov_traso, v_codigo_traso_automatico
706 from pesp_tipo_mov_vldo
707 where tpe_codigo = reg_tramite.tpe_codigo and
708 tmov_codigo = reg_tramite.tmov_codigo;
709
710 dbms_output.put_line('Movimiento: '||reg_tramite.tmov_codigo);
711 dbms_output.put_line('Cod Mov Traso: '||v_codigo_mov_traso);
712 dbms_output.put_line('Codigo de Traso '||v_codigo_traso_automatico);
713
714 ---
715 exception
716 WHEN NO_DATA_FOUND THEN
717 V_ERROR_EST := TRUE;
718 V_ERROR_SRV := TRUE;
719 V_PER_ERROR :=
720 'NO SE ENCUENTRAN DATOS EN LA TABLA PESP_TIPO_MOV_VLDO'
721 ||' PARA EL PRODUCTO '||REG_TRAMITE.TPE_CODIGO
722 ||' TIPO DE MOVIMIENTO '||REG_TRAMITE.TMOV_CODIGO;
723 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
724 WHEN OTHERS THEN
725 V_ERROR_SIS := TRUE;
726 V_ERROR_SRV := TRUE;
727 V_PER_ERROR :=
728 'ERROR AL BUSCAR DATOS EN LA TABLA PESP_TIPO_MOV_VLDO. '||
729 SUBSTR(SQLERRM,1,150);
730 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
731 end;
732 -- INSERCION DEL MOVIMIENTO DE SERVICIO
733 dbms_output.put_line('INSERCION DEL MOVIMIENTO DE SERVICIO ');
734 v_codigo_traso := v_codigo_traso_automatico;
735 v_existe_traso := 'F';
736 v_tiene_multa := 'F';
737 if reg_tramite.tmov_codigo = 'BAJA' then
738 /*UM046877 - GS - 03/10/2005*/
739 /*verifico si tiene multa*/
740 begin
741 pa_ldd_tarif.Cant_Meses_No_Util_Baja_Anio(reg_tramite.sol_nro_solic,
742 reg_tramite.ren_nro_renglon,
743 1,
744 l_basico,
745 l_minimo);
746 If (pa_ldd_tarif.Obt_Cant_Meses_No_Util_Baja (reg_tramite.sol_nro_solic,reg_tramite.ren_nro_renglon,1) > 0)
747 or ((l_minimo + l_basico) > 0) Then
748 v_tiene_multa := 'V';
749 end if;
750 end;
751 begin
752 select 'x'
753 into v_dummy
754 from pesp_ifce_mov_svc
755 where tpe_codigo = reg_tramite.tpe_codigo and
756 ims_nos = to_number(
757 to_char(reg_tramite.sol_nro_solic)||
758 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'));
759 v_existe_traso := 'V';
760 dbms_output.put_line('Existe en pesp_ifce_mov_svc la OS'|| to_char(reg_tramite.sol_nro_solic)||
761 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'));
762 exception
763 when no_data_found then
764 v_existe_traso := 'F';
765 when others then
766 V_ERROR_SIS := TRUE;
767 V_ERROR_SRV := TRUE;
768 V_PER_ERROR :=
769 'ERROR AL VERIFICAR DATOS EN LA TABLA PESP_IFCE_MOV_SVC. '||
770 SUBSTR(SQLERRM,1,150);
771 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
772 end;
773 if v_existe_traso = 'V' then
774 dbms_output.put_line(' Se llamo desde el WF y todavia el facturador
775 no se llevo lo del automatico, por lo que hay que
776 reeemplazarlo por el codigo particular de la baja de wf');
777 /* -- Se llamo desde el WF y todavia el facturador
778 no se llevo lo del automatico, por lo que hay que
779 reeemplazarlo por el codigo particular de la baja de wf
780 */
781 begin
782 if v_tiene_multa = 'F' then
783 dbms_output.put_line('No tiene multa ');
784 v_codigo_mov_traso_aux := 'O';
785 else
786 dbms_output.put_line('TIENE multa ');
787 v_codigo_mov_traso_aux := 'C';
788 v_inserta_os_nueva := 'V';
789 end if;
790
791 update pesp_ifce_mov_svc
792 set tmv_cod_os_trasos = v_codigo_traso_baja_wf,
793 ims_mov_sigeco = v_codigo_mov_traso_aux
794 where tpe_codigo = reg_tramite.tpe_codigo and
795 ims_nos = to_number(
796 to_char(reg_tramite.sol_nro_solic)||
797 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'));
798 dbms_output.put_line('Update pesp_ifce_mov_svc con 400 y o a la OS: '||to_char(reg_tramite.sol_nro_solic)||
799 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'));
800 --
801 if sql%rowcount = 0 then
802 -- error
803 V_ERROR_SIS := TRUE;
804 V_ERROR_SRV := TRUE;
805 V_PER_ERROR :=
806 'ERROR AL MODIFICAR LA TABLA PESP_IFCE_MOV_SVC. '||
807 SUBSTR(SQLERRM,1,150);
808 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
809 end if;
810 exception
811 when others then
812 V_ERROR_SIS := TRUE;
813 V_ERROR_SRV := TRUE;
814 V_PER_ERROR :=
815 'ERROR AL MODIFICAR LA TABLA PESP_IFCE_MOV_SVC. '||
816 SUBSTR(SQLERRM,1,150);
817 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
818 end;
819 l_tra_os_sigeco := reg_tramite.tra_os_sigeco;
820 dbms_output.put_line('l_tra_os_sigeco'||l_tra_os_sigeco);
821 else
822 dbms_output.put_line('No hay nada cargada en las mov ');
823 -- Verificar la fecha de cumplimiento
824 if reg_tramite.tra_fec_cump_os is not null then
825 -- Llego primero el wf
826 v_codigo_traso := v_codigo_traso_baja_wf;
827 v_codigo_mov_traso := 'O';
828 if v_tiene_multa = 'V' then
829 dbms_output.put_line('tiene multa ');
830 dbms_output.put_line('debe insertar una os nueva ');
831 v_inserta_os_nueva := 'V';
832 Loop
833 l_tra_os_multa := pa_pesp_solicitud.buscar_nro_sigeco(reg_tramite.tpe_codigo, reg_tramite.tmov_codigo,'A');
834 l_tra_os_sigeco := l_tra_os_multa;
835 dbms_output.put_line('l_tra_os_sigeco: '||l_tra_os_sigeco);
836 dbms_output.put_line('En tramite reg_tramite.tra_os_sigeco'||reg_tramite.tra_os_sigeco);
837 Exit When l_tra_os_multa <> reg_tramite.tra_os_sigeco;
838 End Loop;
839 -- Actucalizo tabla LDD_TRAMITES con la nueva OS_multa
840 update ldd_tramites
841 set tra_os_multa = l_tra_os_multa
842 where sol_nro_solic = reg_tramite.sol_nro_solic
843 and ren_nro_renglon = reg_tramite.ren_nro_renglon;
844
845 else
846 dbms_output.put_line('no tiene multa ');
847 l_tra_os_sigeco := reg_tramite.tra_os_sigeco;
848 dbms_output.put_line('l_tra_os_sigeco: '||l_tra_os_sigeco);
849 end if;
850 else
851 -- Llego primero el automatico
852 v_codigo_traso := v_codigo_traso_automatico;
853 v_codigo_mov_traso := 'C';
854 l_tra_os_sigeco := reg_tramite.tra_os_sigeco;
855 dbms_output.put_line('Llego primero el automatico ');
856
857 dbms_output.put_line('l_tra_os_sigeco: '||l_tra_os_sigeco);
858 end if;
859 end if;
860 end if; -- BAJA
861 if v_inserta_os_nueva = 'V' THEN
862 dbms_output.put_line('es una baja y se corrio en distintos dias debe insertar una os nueva ');
863 dbms_output.put_line('v_codigo_mov_traso_aux = C ');
864 v_codigo_mov_traso_aux := 'C';
865 else
866 v_codigo_mov_traso_aux := v_codigo_mov_traso;
867 dbms_output.put_line('es una baja y se corrio en distintos dias y NO debe insertar una os nueva ');
868 dbms_output.put_line('v_codigo_mov_traso_aux = '||v_codigo_mov_traso);
869 end if;
870
871 if l_tra_os_sigeco is null then
872 l_tra_os_sigeco := reg_tramite.tra_os_sigeco;
873 end if;
874
875
876 dbms_output.put_line('l_tra_os_sigeco '||l_tra_os_sigeco);
877
878 if v_existe_traso = 'F' then
879 dbms_output.put_line ('Vino solo sirve en casos de baja');
880 --solo sirve en casos de baja
881 BEGIN
882 dbms_output.put_line('va a insertar en PESP_IFCE_MOV_SVC, la os '||
883 to_char(reg_tramite.sol_nro_solic)|| lpad(to_char(l_tra_os_sigeco), 4, '0')
884 || 'con el cod trasos: ' ||v_codigo_traso
885 || 'mov sigeco: '||v_codigo_mov_traso_aux);
886 INSERT INTO PESP_IFCE_MOV_SVC
887 (TPE_CODIGO
888 ,IMS_NOS
889 ,tmv_cod_os_trasos
890 ,IMS_NPA
891 ,IMS_NXX
892 ,IMS_LINE
893 ,IMS_CNTL_DATE
894 ,IMS_EFF_DATE
895 ,IMS_CONTAC_DATE
896 ,IMS_CLIENTE
897 ,IMS_CUENTA
898 ,IMS_CLIENTE_USU
899 ,IMS_CUENTA_USU
900 ,IMS_DOMI_CODIGO_I
901 ,IMS_GEO_CODIGO_I
902 ,IMS_TIPG_CODIGO_I
903 ,IMS_DOMI_CODIGO_DIST
904 ,IMS_GEO_CODIGO_DIST
905 ,IMS_TIPG_CODIGO_DIST
906 ,IMS_OLD_NPA
907 ,IMS_OLD_NXX
908 ,IMS_OLD_LINE
909 ,IMS_OLD_CNTL_DATE
910 ,IMS_FEC_FACT
911 ,IMS_IVA_SVC
912 ,IMS_TMOV
913 ,IMS_MOV_SIGECO
914 ,SRV_CODIGO
915 ,IMS_FOTO
916 ,SOL_NRO_SOLIC
917 ,REN_NRO_RENGLON
918 ,FECHA_CREACION
919 ,USUARIO_CREACION
920 )
921 VALUES
922 (REG_TRAMITE.TPE_CODIGO
923 ,to_number(
924 to_char(reg_tramite.sol_nro_solic)||
925 lpad(to_char(l_tra_os_sigeco), 4, '0')
926 )
927 ,v_codigo_traso
928 ,V_NPA
929 ,SUBSTR(REG_TRAMITE.SRL_NUMERO, -7, 3)
930 ,SUBSTR(REG_TRAMITE.SRL_NUMERO, -4, 4)
931 ,V_CNTL_DATE
932 ,V_EFF_DATE
933 ,REG_TRAMITE.TRA_FEC_EMSN_OS
934 ,V_CLI_TIT
935 ,V_CTA_TIT
936 ,V_CLI_USU
937 ,V_CTA_USU
938 ,V_DOMI_CODIGO_C
939 ,V_GEOG_CODIGO_C
940 ,V_TIPG_CODIGO_C
941 ,V_DOMI_CODIGO_D
942 ,V_GEOG_CODIGO_D
943 ,V_TIPG_CODIGO_D
944 ,NULL
945 ,NULL
946 ,NULL
947 ,NULL
948 ,NULL
949 ,V_TIVA_CODIGO
950 ,REG_TRAMITE.TMOV_CODIGO
951 ,v_codigo_mov_traso_aux
952 ,REG_TRAMITE.SRV_CODIGO
953 ,V_FOTO
954 ,V_SOLICITUD
955 ,V_RENGLON
956 ,SYSDATE
957 ,fu_pesp_obt_usuario ( USER ));
958 -----
959 EXCEPTION
960 WHEN OTHERS THEN
961 V_ERROR_SIS := TRUE;
962 V_ERROR_SRV := TRUE;
963 V_PER_ERROR :=
964 'ERROR AL INSERTAR EN LA TABLA PESP_IFCE_MOV_SVC. '||
965 SUBSTR(SQLERRM,1,150);
966 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
967 DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM,1,200));
968 NULL;
969 END;
970 dbms_output.put_line('inserto'||to_char(l_tra_os_sigeco) );
971 end if; -- v_existe_traso = 'F'
972
973 if v_inserta_os_nueva = 'V' then
974 dbms_output.put_line('inserta una os nueva ');
975 -- Se agrego en el insert el DECODE en el campo EFF_DATE por el Req GC073704-00-001
976 BEGIN
977 v_codigo_mov_traso_aux := 'O';
978 l_tra_os_sigeco_nueva := pa_pesp_solicitud.buscar_nro_sigeco(reg_tramite.tpe_codigo, reg_tramite.tmov_codigo,'A');
979 v_codigo_traso := v_codigo_traso_baja_wf;
980
981 dbms_output.put_line('inserta en PESP_IFCE_MOV_SVC la os '||
982 to_char(reg_tramite.sol_nro_solic)||
983 lpad(to_char(l_tra_os_sigeco_nueva), 4, '0')||
984 ' con el codigo de trasos: '||v_codigo_traso|| 'mov sigeco: '||v_codigo_mov_traso_aux);
985 INSERT INTO PESP_IFCE_MOV_SVC
986 (TPE_CODIGO
987 ,IMS_NOS
988 ,tmv_cod_os_trasos
989 ,IMS_NPA
990 ,IMS_NXX
991 ,IMS_LINE
992 ,IMS_CNTL_DATE
993 ,IMS_EFF_DATE
994 ,IMS_CONTAC_DATE
995 ,IMS_CLIENTE
996 ,IMS_CUENTA
997 ,IMS_CLIENTE_USU
998 ,IMS_CUENTA_USU
999 ,IMS_DOMI_CODIGO_I
1000 ,IMS_GEO_CODIGO_I
1001 ,IMS_TIPG_CODIGO_I
1002 ,IMS_DOMI_CODIGO_DIST
1003 ,IMS_GEO_CODIGO_DIST
1004 ,IMS_TIPG_CODIGO_DIST
1005 ,IMS_OLD_NPA
1006 ,IMS_OLD_NXX
1007 ,IMS_OLD_LINE
1008 ,IMS_OLD_CNTL_DATE
1009 ,IMS_FEC_FACT
1010 ,IMS_IVA_SVC
1011 ,IMS_TMOV
1012 ,IMS_MOV_SIGECO
1013 ,SRV_CODIGO
1014 ,IMS_FOTO
1015 ,SOL_NRO_SOLIC
1016 ,REN_NRO_RENGLON
1017 ,FECHA_CREACION
1018 ,USUARIO_CREACION
1019 )
1020 VALUES
1021 (REG_TRAMITE.TPE_CODIGO
1022 ,to_number(
1023 to_char(reg_tramite.sol_nro_solic)||
1024 lpad(to_char(l_tra_os_sigeco_nueva), 4, '0')
1025 )
1026 ,v_codigo_traso
1027 ,V_NPA
1028 ,SUBSTR(REG_TRAMITE.SRL_NUMERO, -7, 3)
1029 ,SUBSTR(REG_TRAMITE.SRL_NUMERO, -4, 4)
1030 ,V_CNTL_DATE
1031 ,DECODE (reg_tramite.tpe_codigo, 'LDD_DATOS', v_eff_date+1,v_eff_date)
1032 ,REG_TRAMITE.TRA_FEC_EMSN_OS
1033 ,V_CLI_TIT
1034 ,V_CTA_TIT
1035 ,V_CLI_USU
1036 ,V_CTA_USU
1037 ,V_DOMI_CODIGO_C
1038 ,V_GEOG_CODIGO_C
1039 ,V_TIPG_CODIGO_C
1040 ,V_DOMI_CODIGO_D
1041 ,V_GEOG_CODIGO_D
1042 ,V_TIPG_CODIGO_D
1043 ,NULL
1044 ,NULL
1045 ,NULL
1046 ,NULL
1047 ,NULL
1048 ,V_TIVA_CODIGO
1049 ,REG_TRAMITE.TMOV_CODIGO
1050 ,v_codigo_mov_traso_aux
1051 ,REG_TRAMITE.SRV_CODIGO
1052 ,V_FOTO
1053 ,V_SOLICITUD
1054 ,V_RENGLON
1055 ,SYSDATE
1056 ,fu_pesp_obt_usuario ( USER ));
1057 -----
1058 EXCEPTION
1059 WHEN OTHERS THEN
1060 V_ERROR_SIS := TRUE;
1061 V_ERROR_SRV := TRUE;
1062 V_PER_ERROR :=
1063 'ERROR AL INSERTAR EN LA TABLA PESP_IFCE_MOV_SVC. '||
1064 SUBSTR(SQLERRM,1,150);
1065 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1066 NULL;
1067 END;
1068 end if;
1069 -- PROCESAR FOTO-SERVICIO
1070 IF NOT V_ERROR_SRV THEN
1071 V_EXISTS_FOTO := TRUE;
1072 dbms_output.put_line('PROCESAR FOTO-SERVICIO ');
1073 -- VERIFICO EXISTENCIA EN TABLA DE FOTO-SERVICIO
1074 BEGIN
1075 SELECT NULL
1076 INTO V_DUMMY
1077 FROM DUAL
1078 WHERE EXISTS (SELECT 1
1079 FROM PESP_IFCE_FOTO_SVC IFS
1080 WHERE IFS.SRV_CODIGO = REG_TRAMITE.SRV_CODIGO
1081 AND IFS.IFS_NPA = V_NPA
1082 AND IFS.IFS_NXX = SUBSTR(REG_TRAMITE.SRL_NUMERO, -7, 3)
1083 AND IFS.IFS_LINE = SUBSTR(REG_TRAMITE.SRL_NUMERO, -4, 4)
1084 );
1085 EXCEPTION
1086 WHEN NO_DATA_FOUND THEN
1087 V_EXISTS_FOTO := FALSE;
1088 WHEN OTHERS THEN
1089 V_EXISTS_FOTO := FALSE;
1090 V_ERROR_SIS := TRUE;
1091 V_PER_ERROR :=
1092 'ERROR AL BUSCAR LA CLAVE EN LA TABLA PESP_IFCE_FOTO_SVC. '||
1093 SUBSTR(SQLERRM,1,150);
1094 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1095 END;
1096 --- OBTENER PROXIMO VALOR DE LA SECUENCIA PARA LA FOTO-SERVICIO
1097 BEGIN
1098 SELECT NVL(MAX(IFS.IFS_SEQ),0) + 1
1099 INTO V_IFS_SEQ
1100 FROM PESP_IFCE_FOTO_SVC IFS
1101 WHERE IFS.SRV_CODIGO = REG_TRAMITE.SRV_CODIGO
1102 AND IFS.IFS_NPA = V_NPA
1103 AND IFS.IFS_NXX = SUBSTR(REG_TRAMITE.SRL_NUMERO, -7, 3)
1104 AND IFS.IFS_LINE = SUBSTR(REG_TRAMITE.SRL_NUMERO, -4, 4);
1105 -----
1106 EXCEPTION
1107 WHEN OTHERS THEN
1108 V_ERROR_SIS := TRUE;
1109 V_PER_ERROR := 'ERROR AL BUSCAR LA CLAVE EN LA TABLA PESP_IFCE_FOTO_SVC'||
1110 SUBSTR(SQLERRM,1,150);
1111 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1112 END;
1113 -- SI EL MOVIMIENTO ES ALTA O CBIOPERM O MIGRACION...
1114 IF REG_TRAMITE.TMOV_CODIGO = 'ALTA' OR
1115 REG_TRAMITE.TMOV_CODIGO = 'CBIOPERM' OR
1116 REG_TRAMITE.TMOV_CODIGO = 'MIGRACION' THEN
1117 -- ... Y NO EXISTE FOTO, ESTA TODO BIEN
1118 dbms_output.put_line('EL MOVIMIENTO ES ALTA O CBIOPERM O MIGRACION y no existe en la foto ');
1119 IF NOT V_EXISTS_FOTO THEN
1120 BEGIN
1121 V_PROCE_FOT_SRV := TRUE;
1122 dbms_output.put_line('inserta en PESP_IFCE_FOTO_SVC ');
1123 INSERT INTO PESP_IFCE_FOTO_SVC
1124 (SRV_CODIGO
1125 ,IFS_NPA
1126 ,IFS_NXX
1127 ,IFS_LINE
1128 ,IFS_SEQ
1129 ,IFS_CTROL_DATE
1130 ,IFS_NOS
1131 ,TPE_CODIGO
1132 ,FECHA_CREACION
1133 ,USUARIO_CREACION
1134 )
1135 VALUES
1136 (REG_TRAMITE.SRV_CODIGO
1137 ,V_NPA
1138 ,SUBSTR(REG_TRAMITE.SRL_NUMERO, -7, 3)
1139 ,SUBSTR(REG_TRAMITE.SRL_NUMERO, -4, 4)
1140 ,V_IFS_SEQ
1141 ,V_CNTL_DATE
1142 ,NULL
1143 ,REG_TRAMITE.TPE_CODIGO
1144 ,SYSDATE
1145 ,fu_pesp_obt_usuario ( USER )
1146 );
1147 EXCEPTION
1148 WHEN OTHERS THEN
1149 V_ERROR_SIS := TRUE;
1150 V_PROCE_FOT_SRV := FALSE;
1151 V_PER_ERROR :=
1152 'ERROR AL INSERTAR EN LA TABLA PESP_IFCE_FOTO_SVC. '||
1153 SUBSTR(SQLERRM,1,150);
1154 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1155 END;
1156 ELSE
1157 -- ... EXISTE FOTO Y ESTA TODO MAL
1158 V_ERROR_EST := TRUE;
1159 V_PROCE_FOT_SRV := FALSE;
1160 V_PER_ERROR :=
1161 'YA SE HA INGRESADO UN REGISTRO EN LA TABLA PESP_IFCE_FOTO_SVC'||
1162 ' CON LA CLAVE COD. SERVICIO:'||REG_TRAMITE.SRV_CODIGO||
1163 ' NPA:'||V_NPA||
1164 ' NNX:'||SUBSTR(REG_TRAMITE.SRL_NUMERO, -7, 3)||
1165 ' LINE:'||SUBSTR(REG_TRAMITE.SRL_NUMERO, -4, 4);
1166 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'E');
1167 END IF;
1168 -- ... NO ES ALTA NI CBIOPERM NI MIGRACION
1169 ELSE
1170 -- ... Y NO EXISTE FOTO, ESTA TODO MAL
1171 IF NOT V_EXISTS_FOTO THEN
1172 V_ERROR_EST := TRUE;
1173 V_PROCE_FOT_SRV := FALSE;
1174 V_PER_ERROR :=
1175 'no existe foto....EN LA TABLA PESP_IFCE_FOTO_SVC NO SE HA INGRESADO UN REGISTRO '||
1176 ' CON LA CLAVE COD. SERVICIO:'||REG_TRAMITE.SRV_CODIGO||
1177 ' NPA:'||V_NPA||
1178 ' NNX:'||SUBSTR(REG_TRAMITE.SRL_NUMERO, -7, 3)||
1179 ' LINE:'||SUBSTR(REG_TRAMITE.SRL_NUMERO, -4, 4)||
1180 ' Y SE QUIERE DAR UN '||REG_TRAMITE.TMOV_CODIGO;
1181 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'E');
1182 END IF;
1183 END IF; /* -- ALTA */
1184 /* ------
1185 PROCESAR CARGOS RECURRENTES
1186 -------- */
1187
1188 FOR REG_RECU IN CUR_CARGOS_RECU (REG_TRAMITE.SRV_CODIGO,
1189 REG_TRAMITE.VSE_VERSION,
1190 REG_TRAMITE.TPE_CODIGO)
1191 LOOP
1192 dbms_output.put_line(' PROCESA CARGOS RECURRENTES');
1193DBMS_OUTPUT.Put_Line( REG_TRAMITE.SRV_CODIGO||' - S - proceso el cargo: '||REG_RECU.CRE_CDGO_CARGO );
1194 --
1195 V_INSERTAR_MOV_COMI := FALSE;
1196 --
1197 IF REG_RECU.TCR_GR_CARGO = 'CARGO' THEN
1198 -- MOVIMIENTO DE CARGO
1199 dbms_output.put_line('Es un cargo: '||REG_RECU.CRE_CDGO_CARGO);
1200 --REQ. GC061223-00-001: Correccion por lineas MultiClaves.
1201 l_es_multiclave := 'N';
1202 --
1203 IF REG_TRAMITE.TPE_CODIGO = 'LDD_ANADIG' THEN
1204 BEGIN
1205 SELECT CRE_CDGO_CARGO, COUNT(*)
1206 INTO l_cargo_multiclave, l_cant_multiclave
1207 FROM LDD_CARGOS_RECU
1208 WHERE SRV_CODIGO = REG_TRAMITE.SRV_CODIGO
1209 AND VSE_VERSION = REG_TRAMITE.VSE_VERSION
1210 AND CRE_CDGO_CARGO = REG_RECU.CRE_CDGO_CARGO
1211 GROUP BY CRE_CDGO_CARGO
1212 HAVING COUNT(*) = 2;
1213 --
1214 l_es_multiclave := 'S';
1215 --
1216 EXCEPTION
1217 WHEN no_data_found THEN
1218 l_es_multiclave := 'N';
1219 WHEN too_many_rows THEN
1220 l_es_multiclave := 'N';
1221 WHEN others THEN
1222 l_es_multiclave := 'N';
1223 END;
1224 --
1225 END IF;
1226 --FIN REQ. GC061223-00-001: Correccion por lineas MultiClaves.
1227 V_ERROR_CGO_RECU := FALSE;
1228 --
1229 -- Req. GC026652 - Cargos Duplicados - Cargos Recurrentes
1230 --
1231 v_existe_traso := 'F';
1232 --
1233 /* agregado para que guarde en la foto los importes
1234 de los cargos recurrentes variables, y le agregue
1235 la marca de "variable" a estos cargos */
1236 --
1237 IF (INSTR((PA_PESP_CONS.buscar_valor('LDD','TR_CODE_IMPORTE', SYSDATE)),REG_RECU.CRE_CDGO_CARGO) = 0)
1238 AND (INSTR((PA_PESP_CONS.buscar_valor('LDD','TR_CODE_IMP_PF', SYSDATE)),REG_RECU.CRE_CDGO_CARGO) = 0) Then
1239 l_cre_importe := 0.0;
1240 l_variable := null;
1241 ELSE
1242 DBMS_OUTPUT.Put_Line( 'EN ELSE DE VARIABLE' );
1243 l_cre_importe := REG_RECU.CRE_VALOR_TRANSACCION;
1244-- l_cre_importe := REG_RECU.CRE_IMPORTE;
1245 l_variable := 'S';
1246 --
1247 END IF;
1248 --
1249 /* fin agregado cargos recurrentes variables*/
1250 if reg_tramite.tmov_codigo = 'BAJA' then
1251 -- Verifico si existe en pesp_ifce_mov_cgo
1252 begin
1253DBMS_OUTPUT.Put_Line( REG_TRAMITE.SRV_CODIGO||' - S - Entro en la baja');
1254 select 'x'
1255 into v_dummy
1256 from pesp_ifce_mov_cgo
1257 where tpe_codigo = reg_tramite.tpe_codigo
1258 and ims_nos = to_number(to_char(reg_tramite.sol_nro_solic)||
1259 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'))
1260 AND IMC_TRANS_CODE = REG_RECU.CRE_CDGO_CARGO
1261 AND IMC_RECURRENTE = 'S';
1262 --
1263 v_existe_traso := 'V';
1264 exception
1265 when no_data_found then
1266 v_existe_traso := 'F';
1267 when others then
1268 V_ERROR_SIS := TRUE;
1269 V_ERROR_SRV := TRUE;
1270 V_PER_ERROR :=
1271 'ERROR AL VERIFICAR DATOS EN LA TABLA PESP_IFCE_MOV_CGO. '||
1272 SUBSTR(SQLERRM,1,150);
1273 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1274 end;
1275 -- Verifico si existe en pesp_ifce_cgo_hist
1276 begin
1277DBMS_OUTPUT.Put_Line( REG_TRAMITE.SRV_CODIGO||' - S - Verifico si esta en hist');
1278 select 'x'
1279 into v_dummy
1280 from pesp_ifce_cgo_hist
1281 where tpe_codigo = reg_tramite.tpe_codigo
1282 and ISH_NOS = to_number(to_char(reg_tramite.sol_nro_solic)||
1283 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'))
1284 AND IHC_TRANS_CODE = REG_RECU.CRE_CDGO_CARGO
1285 AND IHC_RECURRENTE = 'S';
1286 --
1287 v_existe_traso := 'V';
1288 exception
1289 when no_data_found then
1290 v_existe_traso := 'F';
1291 when others then
1292 V_ERROR_SIS := TRUE;
1293 V_ERROR_SRV := TRUE;
1294 V_PER_ERROR :=
1295 'ERROR AL VERIFICAR DATOS EN LA TABLA PESP_IFCE_MOV_CGO. '||
1296 SUBSTR(SQLERRM,1,150);
1297 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1298 end;
1299 end if;
1300 --
1301DBMS_OUTPUT.Put_Line( REG_TRAMITE.SRV_CODIGO||' - S - v_existe_traso: '||v_existe_traso );
1302 if v_existe_traso = 'F' then
1303 --
1304 BEGIN
1305 -- SE BUSCA EL NUMERO DE SECUENCIA EN DONDE INSERTAR
1306 SELECT NVL(MAX(IMC_SEQ),0) + 1
1307 INTO l_IMC_SEQ
1308 FROM PESP_IFCE_MOV_CGO
1309 WHERE TPE_CODIGO = REG_TRAMITE.TPE_CODIGO
1310 AND IMS_NOS = to_number(
1311 to_char(reg_tramite.sol_nro_solic)||
1312 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0')
1313 )
1314 AND IMC_TRANS_CODE = REG_RECU.CRE_CDGO_CARGO;
1315 ---
1316DBMS_OUTPUT.Put_Line( REG_TRAMITE.SRV_CODIGO||' - S - Despues de Buscar IMC_SEQ');
1317 EXCEPTION
1318 WHEN OTHERS THEN
1319 V_ERROR_CGO_RECU := TRUE;
1320 V_ERROR_SIS := TRUE;
1321 V_PER_ERROR :=
1322 'ERROR AL RECUPERA DATOS DE LA TABLA PESP_IFCE_MOV_CGO. '||
1323 '(CARGOS RECURRENTES) '||
1324 SUBSTR(SQLERRM,1,150);
1325 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1326 END;
1327 BEGIN
1328 NULL;
1329 dbms_output.put_line('CARGOS_RECU: '||to_char(l_IMC_SEQ));
1330DBMS_OUTPUT.Put_Line( REG_TRAMITE.SRV_CODIGO||' - S - Inserto en mov_cgo');
1331 INSERT INTO PESP_IFCE_MOV_CGO
1332 (TPE_CODIGO
1333 ,IMS_NOS
1334 ,IMC_TRANS_CODE
1335 ,IMC_SEQ
1336 ,IMC_QTY
1337 ,IMC_RECURRENTE
1338 ,IMC_IMPORTE
1339 ,IMC_CUOTAS
1340 ,IMC_VARIABLE
1341 ,IMC_PREFIX_CODE
1342 ,FECHA_CREACION
1343 ,USUARIO_CREACION
1344 )
1345 VALUES
1346 (REG_TRAMITE.TPE_CODIGO
1347 ,to_number(
1348 to_char(reg_tramite.sol_nro_solic)||
1349 decode(nvl(l_tra_os_multa,0),0,lpad(to_char(l_tra_os_sigeco), 4, '0'),lpad(to_char(l_tra_os_multa), 4, '0'))
1350 --lpad(to_char(l_tra_os_sigeco), 4, '0')
1351 )
1352 ,REG_RECU.CRE_CDGO_CARGO
1353 ,l_IMC_SEQ
1354 ,DECODE(l_es_multiclave,'S',l_cant_multiclave,REG_RECU.CRE_CANTIDAD)--,REG_RECU.CRE_CANTIDAD
1355 ,'S'
1356 ,decode (instr(p_valor, REG_RECU.CRE_CDGO_CARGO), 0, 0,
1357 REG_RECU.CRE_VALOR_TRANSACCION)
1358 ,NULL
1359 ,l_variable
1360 ,pa_ldd_tarif.Format_Prefix(REG_RECU.CRE_PREFIX_CODE)
1361 ,SYSDATE
1362 ,fu_pesp_obt_usuario ( USER )
1363 );
1364 ---
1365 EXCEPTION
1366 WHEN OTHERS THEN
1367 V_ERROR_CGO_RECU := TRUE;
1368 V_ERROR_SIS := TRUE;
1369 V_PER_ERROR :=
1370 'ERROR AL INSERTAR EN LA TABLA PESP_IFCE_MOV_CGO. '||
1371 '(CARGOS RECURRENTES) '||
1372 SUBSTR(SQLERRM,1,150);
1373 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1374 END;
1375 end if;
1376 -- PROCESAR FOTO-CARGO
1377 IF NOT V_ERROR_CGO_RECU THEN
1378 -- SOLO SI SE PROCESO FOTO SERVICIO
1379 IF V_PROCE_FOT_SRV THEN
1380 BEGIN
1381 -- SE BUSCA EL NUMERO DE SECUENCIA EN DONDE INSERTAR
1382 SELECT NVL(MAX(IFG_SEQ),0) + 1
1383 INTO l_IFG_SEQ
1384 FROM PESP_IFCE_FOTO_CGOS
1385 WHERE SRV_CODIGO = REG_TRAMITE.SRV_CODIGO
1386 AND IFS_NPA = V_NPA
1387 AND IFS_NXX = SUBSTR(REG_TRAMITE.SRL_NUMERO, -7, 3)
1388 AND IFS_LINE = SUBSTR(REG_TRAMITE.SRL_NUMERO, -4, 4)
1389 AND IFS_SEQ = V_IFS_SEQ
1390 AND IFG_TRANS_CODE = REG_RECU.CRE_CDGO_CARGO;
1391 ---
1392 EXCEPTION
1393 WHEN OTHERS THEN
1394 V_ERROR_SIS := TRUE;
1395 V_PER_ERROR :=
1396 'ERROR AL RECUPERA DATOS DE LA TABLA PESP_IFCE_FOTO_CGOS. '||
1397 SUBSTR(SQLERRM,1,150);
1398 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1399 END;
1400 --
1401 BEGIN
1402 INSERT INTO PESP_IFCE_FOTO_CGOS
1403 (SRV_CODIGO
1404 ,IFS_NPA
1405 ,IFS_NXX
1406 ,IFS_LINE
1407 ,IFS_SEQ
1408 ,IFG_TRANS_CODE
1409 ,IFG_SEQ
1410 ,IFG_QTY
1411 ,IFG_IMPORTE
1412 ,IFG_VARIABLE
1413 ,IFG_PREFIX_CODE
1414 ,FECHA_CREACION
1415 ,USUARIO_CREACION
1416 )
1417 VALUES
1418 (REG_TRAMITE.SRV_CODIGO
1419 ,V_NPA
1420 ,SUBSTR(REG_TRAMITE.SRL_NUMERO, -7, 3)
1421 ,SUBSTR(REG_TRAMITE.SRL_NUMERO, -4, 4)
1422 ,V_IFS_SEQ
1423 ,REG_RECU.CRE_CDGO_CARGO
1424 ,l_IFG_SEQ
1425 ,DECODE(l_es_multiclave,'S',l_cant_multiclave,REG_RECU.CRE_CANTIDAD)--,REG_RECU.CRE_CANTIDAD
1426 ,l_cre_importe --0
1427 ,l_variable
1428 ,pa_ldd_tarif.Format_Prefix(REG_RECU.CRE_PREFIX_CODE)
1429 ,SYSDATE
1430 ,fu_pesp_obt_usuario ( USER )
1431 );
1432 -----
1433 EXCEPTION
1434 WHEN OTHERS THEN
1435 V_ERROR_SIS := TRUE;
1436 V_PER_ERROR :=
1437 'ERROR AL INSERTAR EN LA TABLA PESP_IFCE_FOTO_CGOS. '||
1438 SUBSTR(SQLERRM,1,150);
1439 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1440 END;
1441 END IF; /* PROCE_FOT_SRV */
1442 END IF; /* --- ERROR CGO RECU */
1443 ELSE -- NO ES CARGO
1444 dbms_output.put_line('no es un cargo, es '||REG_RECU.TCR_GR_CARGO);
1445 -- MOVIMIENTO COMISION
1446 IF REG_RECU.TCR_GR_CARGO = 'DTOS' THEN
1447 -- TRAER EL CODIGO DE DESCUENTO
1448 BEGIN
1449 SELECT CDE_CODIGO
1450 INTO V_CDE_CODIGO
1451 FROM PESP_DCTO_VLDO
1452 WHERE TPE_CODIGO = REG_TRAMITE.TPE_CODIGO AND
1453 (DVA_TR_CODE_U = REG_RECU.CRE_CDGO_CARGO OR
1454 DVA_TR_CODE_I = REG_RECU.CRE_CDGO_CARGO)
1455 AND PMO_CODE= nvl(V_CODIGO_MONEDA,'P');
1456 ---
1457 EXCEPTION
1458 WHEN NO_DATA_FOUND THEN
1459 V_ERROR_EST := TRUE;
1460 V_PER_ERROR :=
1461 'NO SE ENCUENTRAN DATOS EN LA TABLA PESP_DCTO_VLDO'
1462 ||' PARA EL TPE: '
1463 ||REG_TRAMITE.TPE_CODIGO
1464 ||' Y EL CODIGO DE CARGO '
1465 ||REG_RECU.CRE_CDGO_CARGO;
1466 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
1467 WHEN OTHERS THEN
1468 V_ERROR_SIS := TRUE;
1469 V_PER_ERROR :=
1470 'ERROR AL BUSCAR DATOS EN LA TABLA PESP_DCTO_VLDO. '||
1471 SUBSTR(SQLERRM,1,150);
1472 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1473 END;
1474 /* --
1475 COMPARA CON CODIGO DE DESCUENTO CON DESC. POR VOLUMEN
1476 ---- */
1477 BEGIN
1478 SELECT 'X'
1479 INTO V_DUMMY
1480 FROM DUAL
1481 WHERE V_CDE_CODIGO !=
1482 (SELECT A.EGR_VALOR
1483 FROM PESP_STND_GRAL A
1484 WHERE A.EGR_PRODUCTO = 'LDD' AND
1485 A.EGR_CODIGO = 'DTO_VOLUMEN' AND
1486 A.EGR_FEC_DSDE = (SELECT MAX(B.EGR_FEC_DSDE)
1487 FROM PESP_STND_GRAL B
1488 WHERE B.EGR_PRODUCTO = 'LDD' AND
1489 B.EGR_CODIGO = 'DTO_VOLUMEN'));
1490 ----
1491 V_INSERTAR_MOV_COMI := TRUE;
1492 ---
1493 EXCEPTION
1494 WHEN NO_DATA_FOUND THEN
1495 -- DESCUENTO POR VOLUMEN => NO INSERTAR
1496 NULL; -- INSERTAR YA ESTA EN FALSE
1497 WHEN OTHERS THEN
1498 V_ERROR_SIS := TRUE;
1499 V_PER_ERROR :=
1500 'ERROR AL COMPARAR CODIGOS DE DESCUENTOS. '||
1501 SUBSTR(SQLERRM,1,150);
1502 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1503 END;
1504 IF V_INSERTAR_MOV_COMI THEN
1505 -- RECUPERAR EL ASOCIA SIGECO
1506 BEGIN
1507 SELECT CDE_ASOCIA_SIGECO
1508 INTO V_ASOCIA_SIGECO
1509 FROM PESP_CDGO_DCTO
1510 WHERE CDE_CODIGO = V_CDE_CODIGO;
1511 --
1512 EXCEPTION
1513 WHEN NO_DATA_FOUND THEN
1514 V_INSERTAR_MOV_COMI := FALSE;
1515 V_ERROR_EST := TRUE;
1516 V_PER_ERROR :=
1517 'NO SE ENCUENTRAN DATOS EN LA TABLA PESP_CDGO_DCTO'
1518 ||' PARA EL CODIGO DE DESCUENTO: '
1519 ||V_CDE_CODIGO;
1520 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'E');
1521 WHEN OTHERS THEN
1522 V_ERROR_SIS := TRUE;
1523 V_PER_ERROR :=
1524 'ERROR AL BUSCAR DATOS EN LA TABLA PESP_CDGO_DCTO. '||
1525 SUBSTR(SQLERRM,1,150);
1526 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1527 END;
1528 END IF; -- INSERTAR MOV COMI
1529 ELSE
1530 -- ES BONIFICACION => INSERTAR
1531 V_INSERTAR_MOV_COMI := TRUE;
1532 -- SIEMPRE DEBE IR A FACTURACION CON EL CARGO BONIFICADO, POR LO QUE ...
1533 V_ASOCIA_SIGECO := 'S';
1534 END IF; -- DESCUENTO
1535 END IF; -- CARGO
1536 /* ----
1537 VERIFICAR SI SE DEBE INSERTAR
1538 MOVIMIENTO DE COMISION Y TAMBIEN FOTO
1539 --- */
1540 IF V_INSERTAR_MOV_COMI THEN
1541 V_ERROR_COMISION_RECU := FALSE;
1542 --
1543 -- Req. GC026652 - Cargos Duplicados - Descuentos recurrentes
1544 v_existe_traso := 'F';
1545 --
1546 if reg_tramite.tmov_codigo = 'BAJA' then
1547 --
1548 -- Verifico si existe en pesp_ifce_comision
1549 BEGIN
1550 --
1551 select 'x'
1552 into v_dummy
1553 from pesp_ifce_comision
1554 where tpe_codigo = reg_tramite.tpe_codigo
1555 and ims_nos = to_number(to_char(reg_tramite.sol_nro_solic)||
1556 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'))
1557 AND ICO_COMMISION_CODE = REG_RECU.CRE_CDGO_CARGO
1558 AND ICO_COMMISION_TRANS_CODE = DECODE (V_ASOCIA_SIGECO,
1559 'S', REG_RECU.CRE_CDGO_CARGO_BONIFICADO,'')
1560 AND ICO_RECURRENTE = 'S';
1561 --
1562 v_existe_traso := 'V';
1563 exception
1564 when no_data_found then
1565 v_existe_traso := 'F';
1566 when others then
1567 V_ERROR_SIS := TRUE;
1568 V_ERROR_SRV := TRUE;
1569 V_PER_ERROR :=
1570 'ERROR AL VERIFICAR DATOS EN LA TABLA PESP_IFCE_COMISION. '||
1571 SUBSTR(SQLERRM,1,150);
1572 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1573 end;
1574 -- Verifico si existe en pesp_ifce_com_hist
1575 BEGIN
1576 --
1577 select 'x'
1578 into v_dummy
1579 from pesp_ifce_com_hist
1580 where tpe_codigo = reg_tramite.tpe_codigo
1581 and ISH_NOS = to_number(to_char(reg_tramite.sol_nro_solic)||
1582 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'))
1583 AND ICH_COMMISION_CODE = REG_RECU.CRE_CDGO_CARGO
1584 AND ICH_COMMISION_TRANS_CODE = DECODE (V_ASOCIA_SIGECO,
1585 'S', REG_RECU.CRE_CDGO_CARGO_BONIFICADO,'')
1586 AND ICH_RECURRENTE = 'S';
1587 --
1588 v_existe_traso := 'V';
1589 exception
1590 when no_data_found then
1591 v_existe_traso := 'F';
1592 when others then
1593 V_ERROR_SIS := TRUE;
1594 V_ERROR_SRV := TRUE;
1595 V_PER_ERROR :=
1596 'ERROR AL VERIFICAR DATOS EN LA TABLA PESP_IFCE_COMISION. '||
1597 SUBSTR(SQLERRM,1,150);
1598 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1599 end;
1600 end if;
1601 --
1602 if v_existe_traso = 'F' then
1603 -- ELEGIR EL MAYOR VALOR DE LA SECUENCIA COMISION MAS 1
1604 BEGIN
1605 SELECT NVL(MAX(ICO_SEQ),0) + 1
1606 INTO V_ICO_SEQ
1607 FROM PESP_IFCE_COMISION
1608 WHERE TPE_CODIGO = REG_TRAMITE.TPE_CODIGO AND
1609 IMS_NOS = to_number(
1610 to_char(reg_tramite.sol_nro_solic)||
1611 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0')
1612 ) AND
1613 ICO_COMMISION_CODE = REG_RECU.CRE_CDGO_CARGO;
1614 -----
1615 EXCEPTION
1616 WHEN OTHERS THEN
1617 V_ERROR_COMISION_RECU := TRUE;
1618 V_ERROR_SIS := TRUE;
1619 V_PER_ERROR :=
1620 'ERROR AL BUSCAR LA CLAVE EN LA TABLA PESP_IFCE_COMISION'||
1621 '(CARGOS RECURRENTES) '||
1622 SUBSTR(SQLERRM,1,150);
1623 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1624 END;
1625 BEGIN
1626
1627 /*BORRARRRRRRRRRRRRRRRRR*/
1628 dbms_output.put_line('l_tra_os_multa: '||l_tra_os_multa);
1629 IF l_tra_os_multa IS NULL THEN
1630 dbms_output.put_line('VA INSERTAR EN PESP_IFCE_COMISION LA OS: '||to_char(reg_tramite.sol_nro_solic)||l_tra_os_sigeco||' CARGO: '||REG_RECU.CRE_CDGO_CARGO);
1631 ELSE
1632 dbms_output.put_line('VA INSERTAR EN PESP_IFCE_COMISION LA OS'||to_char(reg_tramite.sol_nro_solic)||l_tra_os_MULTA||' CARGO: '||REG_RECU.CRE_CDGO_CARGO);
1633 END IF;
1634 /*BORRARRRRRRRRRRRRRRRRR*/
1635 INSERT INTO PESP_IFCE_COMISION
1636 (TPE_CODIGO
1637 ,IMS_NOS
1638 ,ICO_COMMISION_CODE
1639 ,ICO_SEQ
1640 ,ICO_REVISED_QTY_COMMISION
1641 ,ICO_COMMISION_TRANS_CODE
1642 ,ICO_COMMISSION_RATE
1643 ,ICO_RECURRENTE
1644 ,FECHA_CREACION
1645 ,USUARIO_CREACION
1646 )
1647 VALUES
1648 (REG_TRAMITE.TPE_CODIGO
1649 ,to_number(
1650 to_char(reg_tramite.sol_nro_solic)||
1651 decode(nvl(l_tra_os_multa,0),0,lpad(to_char(l_tra_os_sigeco), 4, '0'),lpad(to_char(l_tra_os_multa), 4, '0'))
1652 --lpad(to_char(l_tra_os_sigeco), 4, '0')
1653 )
1654 ,REG_RECU.CRE_CDGO_CARGO
1655 ,V_ICO_SEQ
1656 ,'+'||lpad(to_char(REG_RECU.CRE_CANTIDAD), 2, '0')
1657 ,DECODE (V_ASOCIA_SIGECO,
1658 'S', REG_RECU.CRE_CDGO_CARGO_BONIFICADO
1659 ,'')
1660 ,REG_RECU.CRE_DESCUENTO
1661 ,'S'
1662 ,SYSDATE
1663 ,fu_pesp_obt_usuario ( USER )
1664 );
1665 EXCEPTION
1666 WHEN OTHERS THEN
1667 V_ERROR_COMISION_RECU := TRUE;
1668 V_ERROR_SIS := TRUE;
1669 V_PER_ERROR :=
1670 'ERROR AL INSERTAR EN LA TABLA PESP_IFCE_COMISION. '||
1671 '(CARGOS RECURRENTES) '||
1672 SUBSTR(SQLERRM,1,150);
1673 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1674 END;
1675 END IF; /**/
1676 /* ---
1677 FOTO COMISION
1678 ------ */
1679 IF NOT V_ERROR_COMISION_RECU THEN
1680 -- SOLO SI SE PROCESO FOTO SERVICIO
1681 IF V_PROCE_FOT_SRV THEN
1682 --
1683 BEGIN
1684 SELECT NVL(MAX(IFC_SEQ),0) + 1
1685 INTO V_IFC_SEQ
1686 FROM PESP_IFCE_FOTO_COMISION
1687 WHERE SRV_CODIGO = REG_TRAMITE.SRV_CODIGO AND
1688 IFS_NPA = V_NPA AND
1689 IFS_NXX = SUBSTR(REG_TRAMITE.SRL_NUMERO, -7, 3) AND
1690 IFS_LINE = SUBSTR(REG_TRAMITE.SRL_NUMERO, -4, 4) AND
1691 IFS_SEQ = V_IFS_SEQ AND
1692 IFC_COMMISION_CODE = REG_RECU.CRE_CDGO_CARGO;
1693 EXCEPTION
1694 WHEN OTHERS THEN
1695 V_ERROR_SIS := TRUE;
1696 V_PER_ERROR :=
1697 'ERROR AL BUSCAR LA CLAVE EN LA TABLA PESP_IFCE_FOTO_COMISION'||
1698 SUBSTR(SQLERRM,1,150);
1699 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1700 END;
1701 BEGIN
1702 INSERT INTO PESP_IFCE_FOTO_COMISION
1703 (SRV_CODIGO
1704 ,IFS_NPA
1705 ,IFS_NXX
1706 ,IFS_LINE
1707 ,IFS_SEQ
1708 ,IFC_COMMISION_CODE
1709 ,IFC_SEQ
1710 ,IFC_REVISED_QTY_COMMISION
1711 ,IFC_COMMISION_TRANS_CODE
1712 ,IFC_COMMISION_RATE
1713 ,FECHA_CREACION
1714 ,USUARIO_CREACION
1715 )
1716 VALUES
1717 (REG_TRAMITE.SRV_CODIGO
1718 ,V_NPA
1719 ,SUBSTR(REG_TRAMITE.SRL_NUMERO, -7, 3)
1720 ,SUBSTR(REG_TRAMITE.SRL_NUMERO, -4, 4)
1721 ,V_IFS_SEQ
1722 ,REG_RECU.CRE_CDGO_CARGO
1723 ,V_IFC_SEQ
1724 ,'+'||lpad(to_char(REG_RECU.CRE_CANTIDAD), 2, '0')
1725 ,DECODE (V_ASOCIA_SIGECO,
1726 'S', REG_RECU.CRE_CDGO_CARGO_BONIFICADO
1727 ,'')
1728 ,REG_RECU.CRE_DESCUENTO
1729 ,SYSDATE
1730 ,fu_pesp_obt_usuario ( USER )
1731 );
1732 EXCEPTION
1733 WHEN OTHERS THEN
1734 V_ERROR_SIS := TRUE;
1735 V_PER_ERROR :=
1736 'ERROR AL INSERTAR EN LA TABLA PESP_IFCE_FOTO_COMISION. '||
1737 SUBSTR(SQLERRM,1,150);
1738 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1739 END;
1740 END IF; -- FOTO SRV
1741 END IF; -- ERROR COMISION RECU
1742 END IF; -- INSERTAR MOV COMISION
1743DBMS_OUTPUT.Put_Line( REG_TRAMITE.SRV_CODIGO||' - S - Fin del cargo '||REG_RECU.CRE_CDGO_CARGO);
1744 END LOOP; /* CARGOS RECU */
1745 /* ------
1746 PROCESAR CARGOS NO RECURRENTES
1747 -------- */
1748 begin
1749 l_activity := to_number(p_activity);
1750 exception
1751 when others Then
1752 -- p_activity no es number
1753 l_activity := '';
1754 end;
1755 IF pac_wf_Apis.fu_obtener_nom_act(l_activity) != 'ENVIAR_DATOS_FAC' Then
1756 FOR REG_NO_RECU IN CUR_CARGOS_NO_RECU (V_SOLICITUD,
1757 V_RENGLON, REG_TRAMITE.TRA_NRO_TRAM
1758 ,REG_TRAMITE.TPE_CODIGO)
1759 LOOP
1760 dbms_output.put_line('VA A PROCESAR EL CARGO NO RECURRENTE : '||REG_NO_RECU.CNR_CDGO_CARGO);
1761 BEGIN
1762 wcnr_cantidad := REG_NO_RECU.CNR_CANTIDAD ;
1763 IF REG_TRAMITE.TMOV_CODIGO = 'RECONFIG' then
1764 select count(cnr_cantidad)
1765 into wcnr_cantidad
1766 from ldd_cargos_NO_recu
1767 where sol_nro_solic = to_char(reg_tramite.sol_nro_solic)
1768 and ren_nro_renglon = to_char(reg_tramite.ren_nro_renglon)
1769 and tra_nro_tram = 1
1770 and cnr_cdgo_cargo = REG_NO_RECU.CNR_CDGO_CARGO;
1771 end if;
1772 END;
1773 -- MOVIMIENTO DE CARGO
1774 IF REG_NO_RECU.TCR_GR_CARGO = 'CARGO' THEN
1775 -- Req. GC026652 - Cargos Duplicados - Cargos NO Recurrentes
1776 v_existe_traso := 'F';
1777 --
1778 if reg_tramite.tmov_codigo = 'BAJA' then
1779 -- Verifico si es un Preaviso de Baja
1780 BEGIN
1781 select tmv_cod_os_trasos
1782 into v_traso
1783 from pesp_ifce_mov_svc
1784 where tpe_codigo = reg_tramite.tpe_codigo
1785 and ims_nos = to_number(to_char(reg_tramite.sol_nro_solic)||
1786 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'));
1787 exception
1788 when no_data_found then
1789 v_existe_traso := 'F';
1790 when others then
1791 V_ERROR_SIS := TRUE;
1792 V_ERROR_SRV := TRUE;
1793 V_PER_ERROR :=
1794 'ERROR AL VERIFICAR DATOS EN LA TABLA PESP_IFCE_COMISION. '||
1795 SUBSTR(SQLERRM,1,150);
1796 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1797
1798 END;
1799
1800
1801 if v_traso = 504 then
1802 v_existe_traso := 'V';
1803 else
1804 -- Verifico si existe en pesp_ifce_mov_cgo
1805 begin
1806 select 'x'
1807 into v_dummy
1808 from pesp_ifce_mov_cgo
1809 where tpe_codigo = reg_tramite.tpe_codigo
1810 and ims_nos = to_number(to_char(reg_tramite.sol_nro_solic)||
1811 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'))
1812 AND IMC_TRANS_CODE = REG_NO_RECU.CNR_CDGO_CARGO
1813 AND IMC_RECURRENTE = 'N';
1814 --
1815 v_existe_traso := 'V';
1816 exception
1817 when no_data_found then
1818 v_existe_traso := 'F';
1819 when others then
1820 V_ERROR_SIS := TRUE;
1821 V_ERROR_SRV := TRUE;
1822 V_PER_ERROR :=
1823 'ERROR AL VERIFICAR DATOS EN LA TABLA PESP_IFCE_MOV_CGO. '||
1824 SUBSTR(SQLERRM,1,150);
1825 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1826 end;
1827 --
1828 -- Verifico si existe en pesp_ifce_cgo_hist
1829 begin
1830 select 'x'
1831 into v_dummy
1832 from pesp_ifce_cgo_hist
1833 where tpe_codigo = reg_tramite.tpe_codigo
1834 and ISH_NOS = to_number(to_char(reg_tramite.sol_nro_solic)||
1835 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'))
1836 AND IHC_TRANS_CODE = REG_NO_RECU.CNR_CDGO_CARGO
1837 AND IHC_RECURRENTE = 'N';
1838 --
1839 v_existe_traso := 'V';
1840 exception
1841 when no_data_found then
1842 v_existe_traso := 'F';
1843 when others then
1844 V_ERROR_SIS := TRUE;
1845 V_ERROR_SRV := TRUE;
1846 V_PER_ERROR :=
1847 'ERROR AL VERIFICAR DATOS EN LA TABLA PESP_IFCE_MOV_CGO. '||
1848 SUBSTR(SQLERRM,1,150);
1849 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1850 end;
1851 end if; --Preaviso
1852 end if;
1853 --
1854 if v_existe_traso = 'F' then
1855 BEGIN
1856 -- SE BUSCA EL NUMERO DE SECUENCIA EN DONDE INSERTAR
1857 dbms_output.put_line('CNR: '||REG_TRAMITE.TPE_CODIGO||' '||
1858 to_char(reg_tramite.sol_nro_solic)||
1859 to_char(reg_tramite.tra_os_sigeco)||' '||
1860 REG_NO_RECU.CNR_CDGO_CARGO);
1861 SELECT NVL(MAX(IMC_SEQ),0) + 1
1862 INTO l_IMC_SEQ
1863 FROM PESP_IFCE_MOV_CGO
1864 WHERE TPE_CODIGO = REG_TRAMITE.TPE_CODIGO
1865 AND IMS_NOS = to_number(
1866 to_char(reg_tramite.sol_nro_solic)||
1867 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0')
1868 )
1869 AND IMC_TRANS_CODE = REG_NO_RECU.CNR_CDGO_CARGO;
1870 ---
1871 EXCEPTION
1872 WHEN OTHERS THEN
1873 V_ERROR_SIS := TRUE;
1874 V_PER_ERROR :=
1875 'ERROR AL RECUPERA DATOS DE LA TABLA PESP_IFCE_MOV_CGO. '||
1876 '(CARGOS NO RECURRENTES) '||
1877 SUBSTR(SQLERRM,1,150);
1878 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1879 END;
1880 BEGIN
1881 NULL;
1882 dbms_output.put_line('CARGOS_NO_RECU: '||to_char(l_IMC_SEQ));
1883 /*BORRARRRRRRRRRRRRRRRRR*/
1884 dbms_output.put_line('l_tra_os_multa: '||l_tra_os_multa);
1885 IF l_tra_os_multa IS NULL THEN
1886
1887 dbms_output.put_line('VA INSERTAR EN PESP_IFCE_COMISION LA OS: '||to_char(reg_tramite.sol_nro_solic)||l_tra_os_sigeco||' CARGO: '||REG_NO_RECU.CNR_CDGO_CARGO);
1888 ELSE
1889 dbms_output.put_line('VA INSERTAR EN PESP_IFCE_COMISION LA OS'||to_char(reg_tramite.sol_nro_solic)||l_tra_os_MULTA||' CARGO: '||REG_NO_RECU.CNR_CDGO_CARGO);
1890 END IF;
1891 /*BORRARRRRRRRRRRRRRRRRR*/
1892 INSERT INTO PESP_IFCE_MOV_CGO
1893 (TPE_CODIGO
1894 ,IMS_NOS
1895 ,IMC_TRANS_CODE
1896 ,IMC_SEQ
1897 ,IMC_QTY
1898 ,IMC_RECURRENTE
1899 ,IMC_IMPORTE
1900 ,IMC_CUOTAS
1901 ,IMC_PREFIX_CODE
1902 ,FECHA_CREACION
1903 ,USUARIO_CREACION
1904 )
1905 VALUES
1906 (REG_TRAMITE.TPE_CODIGO
1907 ,to_number(
1908 to_char(reg_tramite.sol_nro_solic)||
1909 decode(nvl(l_tra_os_multa,0),0,lpad(to_char(l_tra_os_sigeco), 4, '0'),lpad(to_char(l_tra_os_multa), 4, '0'))
1910 --lpad(to_char(l_tra_os_sigeco),4,'0')
1911 )
1912 ,REG_NO_RECU.CNR_CDGO_CARGO
1913 ,l_IMC_SEQ
1914-- ,REG_NO_RECU.CNR_CANTIDAD
1915 ,wcnr_cantidad
1916 ,'N'
1917 ,decode (instr(p_valor, REG_NO_RECU.CNR_CDGO_CARGO), 0, 0,
1918 REG_NO_RECU.CNR_VALOR_TRANSACCION)
1919 ,REG_NO_RECU.CNR_CUOTAS
1920 ,pa_ldd_tarif.Format_Prefix(REG_NO_RECU.CNR_PREFIX_CODE)
1921 ,SYSDATE
1922 ,fu_pesp_obt_usuario ( USER )
1923 );
1924 ---
1925 EXCEPTION
1926 WHEN OTHERS THEN
1927 V_ERROR_SIS := TRUE;
1928 V_PER_ERROR :=
1929 'ERROR AL INSERTAR EN LA TABLA PESP_IFCE_MOV_CGO. '||
1930 '(CARGOS NO RECURRENTES) '||
1931 SUBSTR(SQLERRM,1,150);
1932 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1933 END;
1934 end if; /**/
1935 -- MOVIMIENTO COMISION
1936 ELSE -- CARGO
1937 -- ES DTOS O BONIF => SE INSERTA COMISION SIN TENER EN CUENTA ASOCIA SIGECO
1938 -- ELEGIR EL MAYOR VALOR DE LA SECUENCIA COMISION MAS 1
1939 --
1940 -- Req. GC026652 - Cargos Duplicados - Descuentos NO Recurrentes
1941 v_existe_traso := 'F';
1942 --
1943 dbms_output.put_line('ES DTOS O BONIF ');
1944 if reg_tramite.tmov_codigo = 'BAJA' then
1945 dbms_output.put_line('Verifico si es un Preaviso de Baja ');
1946 --
1947 -- Verifico si es un Preaviso de Baja
1948 BEGIN
1949 select tmv_cod_os_trasos
1950 into v_traso
1951 from pesp_ifce_mov_svc
1952 where tpe_codigo = reg_tramite.tpe_codigo
1953 and ims_nos = to_number(to_char(reg_tramite.sol_nro_solic)||
1954 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'));
1955 EXCEPTION
1956 WHEN NO_DATA_FOUND THEN
1957 NULL;
1958 END;
1959
1960 if v_traso = 504 then
1961 v_existe_traso := 'V';
1962 else
1963 -- Verificar si existe en pesp_ifce_comision
1964 BEGIN
1965 --
1966 select 'x'
1967 into v_dummy
1968 from pesp_ifce_comision
1969 where tpe_codigo = reg_tramite.tpe_codigo
1970 and ims_nos = to_number(to_char(reg_tramite.sol_nro_solic)||
1971 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'))
1972 AND ICO_COMMISION_CODE = REG_NO_RECU.CNR_CDGO_CARGO
1973 AND ICO_COMMISION_TRANS_CODE = REG_NO_RECU.CNR_CDGO_CARGO_BONIFICADO
1974 AND ICO_RECURRENTE = 'N';
1975 --
1976 v_existe_traso := 'V';
1977 exception
1978 when no_data_found then
1979 v_existe_traso := 'F';
1980 when others then
1981 V_ERROR_SIS := TRUE;
1982 V_ERROR_SRV := TRUE;
1983 V_PER_ERROR :=
1984 'ERROR AL VERIFICAR DATOS EN LA TABLA PESP_IFCE_COMISION. '||
1985 SUBSTR(SQLERRM,1,150);
1986 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
1987 end;
1988 --
1989 -- Verificar si existe en pesp_ifce_com_hist
1990 --
1991 BEGIN
1992 --
1993 select 'x'
1994 into v_dummy
1995 from pesp_ifce_com_hist
1996 where tpe_codigo = reg_tramite.tpe_codigo
1997 and ISH_NOS = to_number(to_char(reg_tramite.sol_nro_solic)||
1998 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'))
1999 AND ICH_COMMISION_CODE = REG_NO_RECU.CNR_CDGO_CARGO
2000 AND ICH_COMMISION_TRANS_CODE = REG_NO_RECU.CNR_CDGO_CARGO_BONIFICADO
2001 AND ICH_RECURRENTE = 'N';
2002 --
2003 v_existe_traso := 'V';
2004 exception
2005 when no_data_found then
2006 v_existe_traso := 'F';
2007 when others then
2008 V_ERROR_SIS := TRUE;
2009 V_ERROR_SRV := TRUE;
2010 V_PER_ERROR :=
2011 'ERROR AL VERIFICAR DATOS EN LA TABLA PESP_IFCE_COMISION. '||
2012 SUBSTR(SQLERRM,1,150);
2013 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
2014 end;
2015 end if; --Preaviso
2016 end if;
2017 --
2018 if v_existe_traso = 'F' then
2019 dbms_output.put_line('NO EXISTE EL TRASOS ');
2020 BEGIN
2021 SELECT NVL(MAX(ICO_SEQ),0) + 1
2022 INTO V_ICO_SEQ
2023 FROM PESP_IFCE_COMISION
2024 WHERE TPE_CODIGO = REG_TRAMITE.TPE_CODIGO AND
2025 IMS_NOS = to_number(
2026 to_char(reg_tramite.sol_nro_solic)||
2027 lpad(to_char(L_tra_os_sigeco), 4, '0')
2028-- lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0')
2029 ) AND
2030 ICO_COMMISION_CODE = REG_NO_RECU.CNR_CDGO_CARGO;
2031 -----
2032 EXCEPTION
2033 WHEN OTHERS THEN
2034 V_ERROR_SIS := TRUE;
2035 V_PER_ERROR :=
2036 'ERROR AL BUSCAR LA CLAVE EN LA TABLA PESP_IFCE_COMISION'||
2037 '(CARGOS NO RECURRENTES) '||
2038 SUBSTR(SQLERRM,1,150);
2039 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
2040 END;
2041
2042 BEGIN
2043 dbms_output.put_line ( 'VA A INSERTAR EN PESP_IFCE_COMISION LA OS: '||
2044 to_char(reg_tramite.sol_nro_solic)||
2045 lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0'));
2046 INSERT INTO PESP_IFCE_COMISION
2047 (TPE_CODIGO
2048 ,IMS_NOS
2049 ,ICO_COMMISION_CODE
2050 ,ICO_SEQ
2051 ,ICO_REVISED_QTY_COMMISION
2052 ,ICO_COMMISION_TRANS_CODE
2053 ,ICO_COMMISSION_RATE
2054 ,ICO_RECURRENTE
2055 ,FECHA_CREACION
2056 ,USUARIO_CREACION
2057 )
2058 VALUES
2059 (REG_TRAMITE.TPE_CODIGO
2060 ,to_number(
2061 to_char(reg_tramite.sol_nro_solic)||
2062 lpad(to_char(L_tra_os_sigeco), 4, '0')
2063 --lpad(to_char(reg_tramite.tra_os_sigeco), 4, '0')
2064 )
2065 ,REG_NO_RECU.CNR_CDGO_CARGO
2066 ,V_ICO_SEQ
2067 ,'+'||lpad(to_char(REG_NO_RECU.CNR_CANTIDAD), 2, '0')
2068 ,REG_NO_RECU.CNR_CDGO_CARGO_BONIFICADO
2069 ,REG_NO_RECU.CNR_DESCUENTO
2070 ,'N'
2071 ,SYSDATE
2072 ,fu_pesp_obt_usuario ( USER )
2073 );
2074 dbms_output.put_line ( 'INSERTO EN PESP_IFCE_COMISION LA OS');
2075
2076 ---
2077 EXCEPTION
2078 WHEN OTHERS THEN
2079 V_ERROR_SIS := TRUE;
2080 V_PER_ERROR :=
2081 'ERROR AL INSERTAR EN LA TABLA PESP_IFCE_COMISION. '||
2082 '(CARGOS NO RECURRENTES) '||
2083 SUBSTR(SQLERRM,1,150);
2084 INS_PLS_TAB_PESP_ERR (V_PER_ERROR,'S');
2085 END;
2086 END IF; -- = 'F'
2087 END IF; -- = 'CARGO'
2088 END LOOP; -- CARGOS NO RECU
2089 END IF; -- p_Activity != 'ENVIAR_DATOS_FAC'
2090 END IF; /* --- NO HAY ERROR-SRV */
2091 -- ACTUALIZAR FECHA DE FACTURACION DEL TRAMITE
2092 BEGIN
2093 UPDATE LDD_TRAMITES
2094 SET TRA_FEC_ENV_FACT = decode(tmov_codigo, 'CBIOENLA',
2095 tra_fec_cump_os,
2096 decode(tmov_codigo, 'CBIOBONI',
2097 tra_fec_cump_os,'CBIOCONTR',
2098 tra_fec_cump_os,
2099 SYSDATE)
2100 )
2101 WHERE SOL_NRO_SOLIC = V_SOLICITUD
2102 AND REN_NRO_RENGLON = V_RENGLON
2103 AND TRA_NRO_TRAM = REG_TRAMITE.TRA_NRO_TRAM;
2104 EXCEPTION
2105 WHEN OTHERS THEN
2106 V_ERROR_SIS := TRUE;
2107 V_PER_ERROR := 'ERROR AL ACTUALIZAR LA TABLA LDD_TRAMITES. '||
2108 SUBSTR(SQLERRM,1,150);
2109 INS_PLS_TAB_PESP_ERR (V_PER_ERROR, 'S');
2110 END;
2111 END LOOP; /* CUR TRAMITES */
2112 -- CONSIDERACIONES FINALES
2113 IF V_ERROR_SIS OR V_ERROR_EST THEN
2114 P_RESUL_OK := FALSE;
2115 END IF;
2116 IF NOT P_RESUL_OK THEN
2117 dbms_output.put_line('hubo error: '||V_PER_ERROR);
2118 ROLLBACK TO INICIO;
2119 IF V_ERROR_SIS THEN
2120 P_TIP_ERR := 'S';
2121 ELSE
2122 P_TIP_ERR := 'E';
2123 END IF;
2124 END IF;
2125END;