Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 35

SQL> set echo on

SQL> set time on


SQL> set lines 1000 pages 1000
SQL> set trimspool on
SQL> set define off
SQL> select instance_name, host_name from v$instance;

INSTANCE_NAME HOST_NAME
---------------- ----------------------------------------------------------------
ORCENTRO mapfresvpro

SQL> select to_char(sysdate,'dd-mm-yyyy hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'DD
-------------------
24-11-2023 08:10:14

SQL>
SQL>
SQL> alter session set current_schema=SA;

Session altered.

SQL>
SQL> set lines 200
SQL> col OWNER format a15
SQL> col OBJECT_NAME format a35
SQL> col OBJECT_TYPE format a20
SQL> col STATUS format a10
SQL>
SQL> select owner,object_name,object_type,created,last_ddl_time,timestamp,status
2 from dba_objects
3 where status <> 'VALID'
4 and owner in ('SA')
5 /

OWNER OBJECT_NAME OBJECT_TYPE CREATED


LAST_DDL_ TIMESTAMP STATUS
--------------- ----------------------------------- -------------------- ---------
--------- ------------------- ----------
SA PK_AUDITORIA PACKAGE BODY 08-APR-17
06-NOV-23 2023-11-06:13:38:03 INVALID

SQL>
SQL> CREATE OR REPLACE PROCEDURE SA."SP_PRIMACIERRE_FIANZA" (
2 FECHINI IN DATE DEFAULT NULL,
3 FECHFIN IN DATE DEFAULT NULL,
4 STAT IN OUT CHAR)
5 AS
6 --FECHINI_ DATE := TO_DATE (FECHINI);
7 FECHINI_ DATE := TRUNC (FECHINI); --Se cambia TO_DATE por TRUNC
***mantoro 19062023
8 --FECHFIN_ DATE := TO_DATE (FECHFIN);
9 FECHFIN_ DATE := TRUNC (FECHFIN); --Se cambia TO_DATE por TRUNC
***mantoro 19062023
10 STOO_SELCNT INTEGER;
11 STOO_ERROR INTEGER;
12 STOO_ROWCNT INTEGER;
13 STOO_CROWCNT INTEGER := 0;
14 STOO_FETCHSTATUS INTEGER := 0;
15 STOO_ERRMSG VARCHAR2 (255);
16 STOO_SQLSTATUS INTEGER;
17 ERRORES NUMBER (10, 0);
18 NUMERECI NUMBER (10, 0);
19 FECHEMIS DATE;
20 FECHANUL DATE;
21 FECHINIC DATE;
22 FECHVENC DATE;
23 STATRECI VARCHAR2 (1);
24 DIAS NUMBER (10, 0);
25 DIASTRAS NUMBER (10, 0);
26 MNTOPRMA NUMBER (15, 4);
27 CDGORAMO NUMBER (5, 0);
28 NUMEPOLI NUMBER (10, 0);
29 AGENTE NUMBER (5, 0);
30 RESTO NUMBER (10, 0);
31 NUMELINE NUMBER (5, 0);
32 ESTADO VARCHAR2 (1);
33 PRIMA NUMBER (15, 4);
34 FECHESTA DATE;
35 FECHPROX DATE;
36 FECHA DATE;
37 FACTOR NUMBER (10, 0);
38 MNTODIFE NUMBER (15, 4);
39 RESTOPRMA NUMBER (15, 4);
40 CONTDIFE NUMBER (15, 4);
41 CONTANUL NUMBER (15, 4);
42 CONTPROD NUMBER (15, 4);
43 NUMEAMES NUMBER (10, 0);
44 ANO NUMBER (10, 0);
45 LINEA NUMBER (10, 0);
46 NUMECOMP NUMBER (10, 0);
47 CONCEPTO VARCHAR2 (90);
48 TEMPVAR5 NUMBER := 0;
49 TEMPVAR1 NUMBER := 0;
50 TEMPVAR2 NUMBER := 0;
51 V_VERIFICA NUMBER;
52 V_JSON_CANAL VARCHAR2 (4000);
53 V_STAT VARCHAR2 (1);
54 V_MESSAGE VARCHAR2 (10000);
55
56 V_NUMEAMES NUMBER;
57
58 /*15-11-2023. FAGUARD: SE CREA LA VARIABLE V_USR_EXEC DONDE SE GUARDA EL
USUARIO QUE EJECUTA EL PROCESO PARA PODER
59 ASIGNAR EL CODIGO DE USUARIO QUE INGRESA LA PARTIDA CONTABLE*/
60 V_USR_EXEC VARCHAR2 (50);
61 V_CDGOUSUA NUMBER (5);
62
63 /**/
64
65 CURSOR PRIMAS
66 IS
67 SELECT MRECIPRI.NUMERECI,
68 CDGORAMO,
69 NUMEPOLI,
70 FECHEMIS,
71 FECHINIC,
72 FECHVENC,
73 MNTOPRMA,
74 DATEDIFF ('DD', FECHINIC, FECHVENC),
75 DATEDIFF ('DD', FECHINIC, SP_PRIMACIERRE_FIANZA.FECHFIN_),
76 STATRECI
77 FROM MRECIPRI, MRECIGEN
78 WHERE CDGORAMO = 220
79 AND FECHEMIS BETWEEN SP_PRIMACIERRE_FIANZA.FECHINI_
80 AND SP_PRIMACIERRE_FIANZA.FECHFIN_
81 AND MRECIPRI.NUMERECI = MRECIGEN.NUMERECI;
82
83
84 CURSOR PRIMAS_REP_1
85 IS
86 SELECT MRECIPRI.NUMERECI,
87 CDGORAMO,
88 NUMEPOLI,
89 FECHEMIS,
90 FECHINIC,
91 FECHVENC,
92 FECHANUL,
93 MNTOPRMA,
94 DATEDIFF ('DD', FECHINIC, FECHVENC)
95 FROM MRECIPRI, MRECIGEN
96 WHERE CDGORAMO = 220
97 AND STATRECI = '3'
98 AND FECHANUL BETWEEN SP_PRIMACIERRE_FIANZA.FECHINI_
99 AND SP_PRIMACIERRE_FIANZA.FECHFIN_
100 AND MRECIPRI.NUMERECI = MRECIGEN.NUMERECI;
101
102 CURSOR PRIMAS_REP_2
103 IS
104 SELECT MRECIPRI.NUMERECI,
105 CDGORAMO,
106 NUMEPOLI,
107 FECHEMIS,
108 FECHINIC,
109 FECHVENC,
110 FECHULTM,
111 MNTOPRMA,
112 DATEDIFF ('DD', FECHINIC, FECHVENC)
113 FROM MRECIPRI, MRECIGEN, MRECIANULP
114 WHERE CDGORAMO = 220
115 AND STATRECI = '6'
116 AND FECHULTM BETWEEN SP_PRIMACIERRE_FIANZA.FECHINI_
117 AND SP_PRIMACIERRE_FIANZA.FECHFIN_
118 AND MRECIPRI.NUMERECI = MRECIGEN.NUMERECI
119 AND MRECIPRI.NUMERECI = MRECIANULP.NUMERECI;
120
121 CURSOR PRIMAS_REP_3
122 IS
123 SELECT NUMERECI,
124 CDGORAMO,
125 NUMEPOLI,
126 FECHEMIS,
127 FECHINIC,
128 FECHVENC,
129 PRIMA,
130 MNTODIFE,
131 DATEDIFF ('DD', FECHINIC, FECHVENC),
132 DATEDIFF ('DD', FECHINIC, SP_PRIMACIERRE_FIANZA.FECHFIN_)
133 FROM PRIMADIFE_FIANZA
134 WHERE ESTADO = 'D'
135 AND FECHPROX BETWEEN SP_PRIMACIERRE_FIANZA.FECHINI_
136 AND SP_PRIMACIERRE_FIANZA.FECHFIN_;
137
138 TEMPVAR3 NUMBER := 0;
139 TEMPVAR4 NUMBER := 0;
140 -- NUEVO
141
142 /***********************************************************/
143
144 /* Nombre : sp_primacierre_fianza.stp */
145
146 /* Fecha : 31/01/2001 */
147
148 /* Funcion : Calculo de prima diferida y cierre */
149
150 /* ----------------------------------------------------- */
151
152 /* Autor : Miguel Angel Leon */
153
154 /***********************************************************/
155 BEGIN
156 BEGIN
157 /* centrodb*/
158 SA.SP_ANOMES (SP_PRIMACIERRE_FIANZA.FECHFIN_,
159 SP_PRIMACIERRE_FIANZA.NUMEAMES,
160 TEMPVAR1,
161 TEMPVAR2);
162 EXCEPTION
163 WHEN NO_DATA_FOUND
164 THEN
165 NULL;
166 WHEN OTHERS
167 THEN
168 STOO_ERROR := SQLCODE;
169 STOO_ERRMSG := SQLERRM;
170 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
171 END;
172
173 --SP_PRIMACIERRE_FIANZA.FECHA := TO_DATE (RPAD (TO_CHAR (SYSDATE,
'dd/mm/yyyy'), 10, ' '), 'dd/mm/yyyy'); -- NOTA CAMBIAR A SYSDATE
174 SP_PRIMACIERRE_FIANZA.FECHA := TRUNC (SYSDATE); --Se cambia TO_DATE por
TRUNC ***mantoro 19062023
175 SP_PRIMACIERRE_FIANZA.CONTDIFE := 0;
176 SP_PRIMACIERRE_FIANZA.CONTANUL := 0;
177 SP_PRIMACIERRE_FIANZA.CONTPROD := 0;
178 SP_PRIMACIERRE_FIANZA.STAT := '0';
179
180 /* Primas Emitidas en el periodo */
181 BEGIN
182 STOO_ERROR := 0;
183 STOO_ROWCNT := 0;
184
185 DELETE PRIMACIERRE_FIANZA;
186
187 STOO_ROWCNT := SQL%ROWCOUNT;
188 EXCEPTION
189 WHEN NO_DATA_FOUND
190 THEN
191 NULL;
192 WHEN OTHERS
193 THEN
194 STOO_ERROR := SQLCODE;
195 STOO_ERRMSG := SQLERRM;
196 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
197 END;
198
199 NULL; /*DECLARE CURSOR primas */
200
201 BEGIN
202 STOO_ERROR := 0;
203 STOO_ROWCNT := 0;
204 STOO_CROWCNT := 0;
205
206 OPEN PRIMAS;
207 EXCEPTION
208 WHEN NO_DATA_FOUND
209 THEN
210 NULL;
211 WHEN OTHERS
212 THEN
213 STOO_ERROR := SQLCODE;
214 STOO_ERRMSG := SQLERRM;
215 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
216 END;
217
218 BEGIN
219 STOO_ERROR := 0;
220 STOO_ROWCNT := 0;
221 STOO_CROWCNT := 0;
222
223 FETCH PRIMAS
224 INTO SP_PRIMACIERRE_FIANZA.NUMERECI,
225 SP_PRIMACIERRE_FIANZA.CDGORAMO,
226 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
227 SP_PRIMACIERRE_FIANZA.FECHEMIS,
228 SP_PRIMACIERRE_FIANZA.FECHINIC,
229 SP_PRIMACIERRE_FIANZA.FECHVENC,
230 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
231 SP_PRIMACIERRE_FIANZA.DIAS,
232 SP_PRIMACIERRE_FIANZA.DIASTRAS,
233 SP_PRIMACIERRE_FIANZA.STATRECI;
234 EXCEPTION
235 WHEN OTHERS
236 THEN
237 STOO_ROWCNT := 0;
238 STOO_SELCNT := 0;
239 STOO_ERROR := SQLCODE;
240 STOO_ERRMSG := SQLERRM;
241 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
242 END;
243
244 IF PRIMAS%NOTFOUND
245 THEN
246 STOO_SQLSTATUS := 2;
247 STOO_FETCHSTATUS := -1;
248 ELSE
249 STOO_SQLSTATUS := 0;
250 STOO_FETCHSTATUS := 0;
251 END IF;
252
253 <<I_LOOP1>>
254 WHILE (PRIMAS%FOUND)
255 LOOP
256 BEGIN
257 FOR REC
258 IN (SELECT AGENTE
259 FROM EMISION_FIANZA, SOLICITUD_FIANZA
260 WHERE NUMEFIANZA = SP_PRIMACIERRE_FIANZA.NUMEPOLI
261 AND EMISION_FIANZA.NUMESOLI =
262 SOLICITUD_FIANZA.NUMESOLI)
263 LOOP
264 AGENTE := REC.AGENTE;
265 END LOOP;
266
267 BEGIN
268 STOO_ERROR := 0;
269 STOO_ROWCNT := 0;
270
271 INSERT INTO SA.PRIMACIERRE_FIANZA
272 VALUES (SP_PRIMACIERRE_FIANZA.NUMEAMES,
273 'E',
274 SP_PRIMACIERRE_FIANZA.NUMERECI,
275 SP_PRIMACIERRE_FIANZA.CDGORAMO,
276 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
277 SP_PRIMACIERRE_FIANZA.FECHEMIS,
278 NULL,
279 SP_PRIMACIERRE_FIANZA.FECHINIC,
280 SP_PRIMACIERRE_FIANZA.FECHVENC,
281 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
282 SP_PRIMACIERRE_FIANZA.DIAS,
283 SP_PRIMACIERRE_FIANZA.DIASTRAS,
284 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
285 0,
286 SP_PRIMACIERRE_FIANZA.AGENTE);
287
288 STOO_ROWCNT := SQL%ROWCOUNT;
289 EXCEPTION
290 WHEN NO_DATA_FOUND
291 THEN
292 NULL;
293 WHEN OTHERS
294 THEN
295 STOO_ERROR := SQLCODE;
296 STOO_ERRMSG := SQLERRM;
297 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
298 END;
299
300 IF STOO_ERROR != 0
301 THEN
302 BEGIN
303 -- if @@nestlevel = 1 select @stat
304 SP_PRIMACIERRE_FIANZA.STAT := '1';
305 RAISE_APPLICATION_ERROR (
306 -20999,
307 'No pudo ingresar la prima de emision');
308 ROLLBACK; -- TO SAVEPOINT primacierre_fianza;
309 RETURN;
310 END;
311 END IF;
312
313 --IF (SP_PRIMACIERRE_FIANZA.DIAS > 366 OR TO_NUMBER (TO_CHAR
(SP_PRIMACIERRE_FIANZA.FECHINIC, 'YYYY')) > TO_NUMBER (TO_CHAR
(SP_PRIMACIERRE_FIANZA.FECHA, 'YYYY')))
314 IF ( SP_PRIMACIERRE_FIANZA.DIAS > 366
315 OR EXTRACT (YEAR FROM SP_PRIMACIERRE_FIANZA.FECHINIC) >
316 EXTRACT (YEAR FROM SP_PRIMACIERRE_FIANZA.FECHA)) --
OBTENER LOS A�OS CON EXTRACT ***MANTORO 19062023
317 AND NOT (SP_PRIMACIERRE_FIANZA.STATRECI IN ('3', '6'))
318 AND SP_PRIMACIERRE_FIANZA.AGENTE = 0
319 THEN
320 BEGIN
321 --IF TO_NUMBER (TO_CHAR (SP_PRIMACIERRE_FIANZA.FECHINIC,
'YYYY')) > TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY'))
322 IF EXTRACT (YEAR FROM SP_PRIMACIERRE_FIANZA.FECHINIC) >
323 EXTRACT (YEAR FROM SYSDATE) --OBTENER LOS A�OS CON
EXTRACT ***MANTORO 19062023
324 THEN
325 BEGIN
326 SP_PRIMACIERRE_FIANZA.NUMELINE := 1;
327 SP_PRIMACIERRE_FIANZA.PRIMA :=
328 SP_PRIMACIERRE_FIANZA.MNTOPRMA;
329 SP_PRIMACIERRE_FIANZA.FECHPROX :=
330 SP_PRIMACIERRE_FIANZA.FECHINIC;
331 SP_PRIMACIERRE_FIANZA.ESTADO := 'D';
332 SP_PRIMACIERRE_FIANZA.FECHESTA := NULL;
333
334 --MRAMIREZ 18/02/2013
335 BEGIN
336 STOO_ERROR := 0;
337 STOO_ROWCNT := 0;
338 V_VERIFICA := 0;
339
340 SELECT COUNT (*)
341 INTO V_VERIFICA
342 FROM SA.PRIMADIFE_FIANZA
343 WHERE NUMERECI = SP_PRIMACIERRE_FIANZA.NUMERECI
344 AND NUMELINE = SP_PRIMACIERRE_FIANZA.NUMELINE;
345
346 STOO_ROWCNT := SQL%ROWCOUNT;
347 EXCEPTION
348 WHEN NO_DATA_FOUND
349 THEN
350 NULL;
351 WHEN OTHERS
352 THEN
353 STOO_ERROR := SQLCODE;
354 STOO_ERRMSG := SQLERRM;
355 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
356 END;
357
358 IF V_VERIFICA IS NULL
359 THEN
360 V_VERIFICA := 0;
361 END IF;
362
363 IF V_VERIFICA = 0
364 THEN
365 BEGIN
366 STOO_ERROR := 0;
367 STOO_ROWCNT := 0;
368
369 INSERT INTO SA.PRIMADIFE_FIANZA
370 VALUES (SP_PRIMACIERRE_FIANZA.NUMERECI,
371 SP_PRIMACIERRE_FIANZA.NUMELINE,
372 SP_PRIMACIERRE_FIANZA.CDGORAMO,
373 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
374 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
375 SP_PRIMACIERRE_FIANZA.PRIMA,
376 SP_PRIMACIERRE_FIANZA.FECHEMIS,
377 SP_PRIMACIERRE_FIANZA.FECHA,
378 SP_PRIMACIERRE_FIANZA.ESTADO,
379 SP_PRIMACIERRE_FIANZA.FECHESTA,
380 SP_PRIMACIERRE_FIANZA.FECHPROX,
381 SP_PRIMACIERRE_FIANZA.FECHINIC,
382 SP_PRIMACIERRE_FIANZA.FECHVENC);
383
384 STOO_ROWCNT := SQL%ROWCOUNT;
385 EXCEPTION
386 WHEN NO_DATA_FOUND
387 THEN
388 NULL;
389 WHEN OTHERS
390 THEN
391 STOO_ERROR := SQLCODE;
392 STOO_ERRMSG := SQLERRM;
393 RAISE_APPLICATION_ERROR (SQLCODE,
394 SQLERRM,
395 TRUE);
396 END;
397
398 IF STOO_ERROR != 0
399 THEN
400 BEGIN
401 -- if @@nestlevel = 1 select @stat
402 SP_PRIMACIERRE_FIANZA.STAT := '1';
403 RAISE_APPLICATION_ERROR (
404 -20999,
405 'No pudo ingresar la distribucion de prima
diferida');
406 ROLLBACK; -- TO SAVEPOINT primacierre_fianza;
407 RETURN;
408 END;
409 END IF;
410 END IF;
411 END;
412 /* Bloque antiguo */
413 ELSE
414 BEGIN
415 SP_PRIMACIERRE_FIANZA.NUMELINE := 1;
416 SP_PRIMACIERRE_FIANZA.RESTO :=
SP_PRIMACIERRE_FIANZA.DIAS;
417 SP_PRIMACIERRE_FIANZA.RESTOPRMA :=
418 SP_PRIMACIERRE_FIANZA.MNTOPRMA;
419
420 <<I_LOOP2>>
421 WHILE SP_PRIMACIERRE_FIANZA.RESTO > 0
422 LOOP
423 BEGIN
424 IF SP_PRIMACIERRE_FIANZA.RESTO > 365
425 THEN
426 BEGIN
427 SP_PRIMACIERRE_FIANZA.RESTO :=
428 SP_PRIMACIERRE_FIANZA.RESTO - 365;
429 SP_PRIMACIERRE_FIANZA.FACTOR := 365;
430 END;
431 ELSE
432 BEGIN
433 SP_PRIMACIERRE_FIANZA.FACTOR :=
434 SP_PRIMACIERRE_FIANZA.RESTO;
435 SP_PRIMACIERRE_FIANZA.RESTO := 0;
436 END;
437 END IF;
438
439 SP_PRIMACIERRE_FIANZA.PRIMA :=
440 ROUND (
441 ( SP_PRIMACIERRE_FIANZA.MNTOPRMA
442 / SP_PRIMACIERRE_FIANZA.DIAS)
443 * SP_PRIMACIERRE_FIANZA.FACTOR,
444 2);
445 SP_PRIMACIERRE_FIANZA.RESTOPRMA :=
446 SP_PRIMACIERRE_FIANZA.RESTOPRMA
447 - SP_PRIMACIERRE_FIANZA.PRIMA;
448
449 IF SP_PRIMACIERRE_FIANZA.RESTO <= 0
450 THEN
451 SP_PRIMACIERRE_FIANZA.PRIMA :=
452 SP_PRIMACIERRE_FIANZA.PRIMA
453 + SP_PRIMACIERRE_FIANZA.RESTOPRMA;
454 END IF;
455
456 SP_PRIMACIERRE_FIANZA.ESTADO := 'D';
457 SP_PRIMACIERRE_FIANZA.FECHESTA := NULL;
458
459 IF SP_PRIMACIERRE_FIANZA.NUMELINE = 1
460 THEN
461 BEGIN
462 SP_PRIMACIERRE_FIANZA.FECHPROX :=
463 SP_PRIMACIERRE_FIANZA.FECHINIC;
464
465 IF SP_PRIMACIERRE_FIANZA.FECHPROX <=
466 SP_PRIMACIERRE_FIANZA.FECHFIN_
467 THEN
468 BEGIN
469 SP_PRIMACIERRE_FIANZA.ESTADO := 'P';
470 SP_PRIMACIERRE_FIANZA.FECHESTA :=
471 SP_PRIMACIERRE_FIANZA.FECHA;
472 END;
473 END IF;
474 END;
475 END IF;
476
477 --MRAMIREZ 18/02/2013
478 BEGIN
479 V_VERIFICA := 0;
480
481 SELECT COUNT (*)
482 INTO V_VERIFICA
483 FROM SA.PRIMADIFE_FIANZA
484 WHERE NUMERECI =
485 SP_PRIMACIERRE_FIANZA.NUMERECI
486 AND NUMELINE =
487 SP_PRIMACIERRE_FIANZA.NUMELINE;
488
489 STOO_ROWCNT := SQL%ROWCOUNT;
490 EXCEPTION
491 WHEN NO_DATA_FOUND
492 THEN
493 NULL;
494 WHEN OTHERS
495 THEN
496 STOO_ERROR := SQLCODE;
497 STOO_ERRMSG := SQLERRM;
498 RAISE_APPLICATION_ERROR (SQLCODE,
499 SQLERRM,
500 TRUE);
501 END;
502
503 IF V_VERIFICA IS NULL
504 THEN
505 V_VERIFICA := 0;
506 END IF;
507
508 IF V_VERIFICA = 0
509 THEN
510 BEGIN
511 STOO_ERROR := 0;
512 STOO_ROWCNT := 0;
513
514 INSERT INTO SA.PRIMADIFE_FIANZA
515 VALUES (SP_PRIMACIERRE_FIANZA.NUMERECI,
516 SP_PRIMACIERRE_FIANZA.NUMELINE,
517 SP_PRIMACIERRE_FIANZA.CDGORAMO,
518 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
519 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
520 SP_PRIMACIERRE_FIANZA.PRIMA,
521 SP_PRIMACIERRE_FIANZA.FECHEMIS,
522 SP_PRIMACIERRE_FIANZA.FECHA,
523 SP_PRIMACIERRE_FIANZA.ESTADO,
524 SP_PRIMACIERRE_FIANZA.FECHESTA,
525 SP_PRIMACIERRE_FIANZA.FECHPROX,
526 SP_PRIMACIERRE_FIANZA.FECHINIC,
527 SP_PRIMACIERRE_FIANZA.FECHVENC);
528
529 STOO_ROWCNT := SQL%ROWCOUNT;
530 EXCEPTION
531 WHEN NO_DATA_FOUND
532 THEN
533 NULL;
534 WHEN OTHERS
535 THEN
536 STOO_ERROR := SQLCODE;
537 STOO_ERRMSG := SQLERRM;
538 RAISE_APPLICATION_ERROR (SQLCODE,
539 SQLERRM,
540 TRUE);
541 END;
542
543 IF STOO_ERROR != 0
544 THEN
545 BEGIN
546 -- if @@nestlevel = 1 select @stat
547 SP_PRIMACIERRE_FIANZA.STAT := '1';
548 RAISE_APPLICATION_ERROR (
549 -20999,
550 'No pudo ingresar la distribucion de
prima diferida');
551 ROLLBACK; -- TO SAVEPOINT
primacierre_fianza;
552 RETURN;
553 END;
554 END IF;
555
556 SP_PRIMACIERRE_FIANZA.NUMELINE :=
557 SP_PRIMACIERRE_FIANZA.NUMELINE + 1;
558 SP_PRIMACIERRE_FIANZA.FECHPROX :=
559 DATEADD ('DD',
560 SP_PRIMACIERRE_FIANZA.FACTOR,
561 SP_PRIMACIERRE_FIANZA.FECHPROX);
562 END IF;
563 END;
564 END LOOP;
565 /* Fin del Bloque Antiguo */
566 END;
567 END IF;
568 END;
569 END IF;
570
571 BEGIN
572 BEGIN
573 STOO_SELCNT := 0;
574 STOO_ERROR := 0;
575 STOO_ROWCNT := 0;
576
577 SELECT 1
578 INTO STOO_SELCNT
579 FROM DUAL
580 WHERE EXISTS
581 (SELECT NUMERECI
582 FROM PRIMADIFE_FIANZA
583 WHERE NUMERECI =
584 SP_PRIMACIERRE_FIANZA.NUMERECI
585 AND ESTADO = 'D');
586
587 STOO_ROWCNT := SQL%ROWCOUNT;
588 EXCEPTION
589 WHEN NO_DATA_FOUND
590 THEN
591 STOO_ROWCNT := 0;
592 STOO_SELCNT := 0;
593 WHEN OTHERS
594 THEN
595 STOO_ROWCNT := 0;
596 STOO_SELCNT := 0;
597 STOO_ERROR := SQLCODE;
598 STOO_ERRMSG := SQLERRM;
599 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
600 END;
601
602 IF STOO_SELCNT != 0
603 THEN
604 BEGIN
605 SELECT SUM (MNTODIFE)
606 INTO MNTODIFE
607 FROM PRIMADIFE_FIANZA
608 WHERE NUMERECI = SP_PRIMACIERRE_FIANZA.NUMERECI
609 AND ESTADO = 'D';
610
611 SP_PRIMACIERRE_FIANZA.CONTDIFE :=
612 SP_PRIMACIERRE_FIANZA.CONTDIFE
613 + NVL (SP_PRIMACIERRE_FIANZA.MNTODIFE, 0);
614
615 V_JSON_CANAL :=
616 '[{"PARAMETRO" : "CDGORAMO", VALOR : "'
617 || SP_PRIMACIERRE_FIANZA.CDGORAMO
618 || '"},
619 {"PARAMETRO" : "NUMEPOLI", VALOR : "'
620 || SP_PRIMACIERRE_FIANZA.NUMEPOLI
621 || '"}]';
622
623 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_ATTR (
624 P_MODO => 'I',
625 P_TIPOOPER => 'D',
626 P_NUMEAMES => TEMPVAR1,
627 P_NUMECOMP => -1,
628 P_NUMELINE => -1,
629 P_CORRELATIVO => 0,
630 P_CONVERT_COD_SISUX_SAP => 'S',
631 P_MNTODEBE => NVL (
632
SP_PRIMACIERRE_FIANZA.MNTODIFE,
633 0),
634 P_MNTOHABE => 0,
635 P_RAMO =>
SP_PRIMACIERRE_FIANZA.CDGORAMO,
636 P_CANAL =>
SA.PK_CONTAB_SAP.FN_GET_CANAL_SISUX (
637 V_JSON_CANAL),
638 P_CDGOCONT_SISUX => '46070200101',
639 P_CDGOAUXI_SISUX => '00000',
640 P_STAT => V_STAT,
641 P_MESSAGE => V_MESSAGE);
642
643 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_ATTR (
644 P_MODO => 'I',
645 P_TIPOOPER => 'D',
646 P_NUMEAMES => TEMPVAR1,
647 P_NUMECOMP => -1,
648 P_NUMELINE => -2,
649 P_CORRELATIVO => 0,
650 P_CONVERT_COD_SISUX_SAP => 'S',
651 P_MNTODEBE => 0,
652 P_MNTOHABE => NVL (
653
SP_PRIMACIERRE_FIANZA.MNTODIFE,
654 0),
655 P_RAMO =>
SP_PRIMACIERRE_FIANZA.CDGORAMO,
656 P_CANAL =>
SA.PK_CONTAB_SAP.FN_GET_CANAL_SISUX (
657 V_JSON_CANAL),
658 P_CDGOCONT_SISUX => '2901021',
659 P_CDGOAUXI_SISUX => '00001',
660 P_STAT => V_STAT,
661 P_MESSAGE => V_MESSAGE);
662
663 BEGIN
664 STOO_ERROR := 0;
665 STOO_ROWCNT := 0;
666
667 UPDATE SA.PRIMACIERRE_FIANZA
668 SET PRMAPROD =
669 MNTOPRMA - SP_PRIMACIERRE_FIANZA.MNTODIFE,
670 PRMADIFE = SP_PRIMACIERRE_FIANZA.MNTODIFE
671 WHERE NUMERECI = SP_PRIMACIERRE_FIANZA.NUMERECI;
672
673 STOO_ROWCNT := SQL%ROWCOUNT;
674 EXCEPTION
675 WHEN NO_DATA_FOUND
676 THEN
677 NULL;
678 WHEN OTHERS
679 THEN
680 STOO_ERROR := SQLCODE;
681 STOO_ERRMSG := SQLERRM;
682 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
683 END;
684 END;
685 END IF;
686 END;
687
688 BEGIN
689 STOO_ERROR := 0;
690 STOO_ROWCNT := 0;
691 STOO_CROWCNT := 0;
692
693 FETCH PRIMAS
694 INTO SP_PRIMACIERRE_FIANZA.NUMERECI,
695 SP_PRIMACIERRE_FIANZA.CDGORAMO,
696 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
697 SP_PRIMACIERRE_FIANZA.FECHEMIS,
698 SP_PRIMACIERRE_FIANZA.FECHINIC,
699 SP_PRIMACIERRE_FIANZA.FECHVENC,
700 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
701 SP_PRIMACIERRE_FIANZA.DIAS,
702 SP_PRIMACIERRE_FIANZA.DIASTRAS,
703 SP_PRIMACIERRE_FIANZA.STATRECI;
704 EXCEPTION
705 WHEN OTHERS
706 THEN
707 STOO_ROWCNT := 0;
708 STOO_SELCNT := 0;
709 STOO_ERROR := SQLCODE;
710 STOO_ERRMSG := SQLERRM;
711 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
712 END;
713
714 IF PRIMAS%NOTFOUND
715 THEN
716 STOO_SQLSTATUS := 2;
717 STOO_FETCHSTATUS := -1;
718 ELSE
719 STOO_SQLSTATUS := 0;
720 STOO_FETCHSTATUS := 0;
721 END IF;
722 END;
723 END LOOP;
724
725 CLOSE PRIMAS;
726
727 /* Primas Anuladas en el periodo */
728 NULL;
729 NULL; /*DECLARE CURSOR primas */
730
731 BEGIN
732 STOO_ERROR := 0;
733 STOO_ROWCNT := 0;
734 STOO_CROWCNT := 0;
735
736 OPEN PRIMAS_REP_1;
737 EXCEPTION
738 WHEN NO_DATA_FOUND
739 THEN
740 NULL;
741 WHEN OTHERS
742 THEN
743 STOO_ERROR := SQLCODE;
744 STOO_ERRMSG := SQLERRM;
745 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
746 END;
747
748 FETCH PRIMAS_REP_1
749 INTO SP_PRIMACIERRE_FIANZA.NUMERECI,
750 SP_PRIMACIERRE_FIANZA.CDGORAMO,
751 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
752 SP_PRIMACIERRE_FIANZA.FECHEMIS,
753 SP_PRIMACIERRE_FIANZA.FECHINIC,
754 SP_PRIMACIERRE_FIANZA.FECHVENC,
755 SP_PRIMACIERRE_FIANZA.FECHANUL,
756 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
757 SP_PRIMACIERRE_FIANZA.DIAS;
758
759 IF PRIMAS_REP_1%NOTFOUND
760 THEN
761 STOO_SQLSTATUS := 2;
762 STOO_FETCHSTATUS := -1;
763 ELSE
764 STOO_SQLSTATUS := 0;
765 STOO_FETCHSTATUS := 0;
766 END IF;
767
768 <<I_LOOP3>>
769 WHILE (PRIMAS_REP_1%FOUND)
770 LOOP
771 BEGIN
772 FOR REC
773 IN (SELECT AGENTE
774 FROM EMISION_FIANZA, SOLICITUD_FIANZA
775 WHERE NUMEFIANZA = SP_PRIMACIERRE_FIANZA.NUMEPOLI
776 AND EMISION_FIANZA.NUMESOLI =
777 SOLICITUD_FIANZA.NUMESOLI)
778 LOOP
779 AGENTE := REC.AGENTE;
780 END LOOP;
781
782 /* Modificacion de anulacion de primas diferidas pertenecientes a
otros mes de emision */
783 /* 31/08/2009 mleon */
784
785 SP_PRIMACIERRE_FIANZA.TEMPVAR5 := 0;
786
787 FOR REC
788 IN (SELECT SUM (MNTODIFE) AS ANULADO
789 FROM PRIMADIFE_FIANZA
790 WHERE NUMERECI = SP_PRIMACIERRE_FIANZA.NUMERECI
791 AND FECHEMIS < SP_PRIMACIERRE_FIANZA.FECHINI_
792 AND FECHPROX >= SP_PRIMACIERRE_FIANZA.FECHINI_
793 AND FECHESTA BETWEEN SP_PRIMACIERRE_FIANZA.FECHINI_
794 AND SP_PRIMACIERRE_FIANZA.FECHFIN_
795 AND ESTADO = 'A')
796 LOOP
797 IF REC.ANULADO != NULL
798 THEN
799 SP_PRIMACIERRE_FIANZA.TEMPVAR5 := REC.ANULADO;
800 END IF;
801 END LOOP;
802
803 /* Fin */
804
805 BEGIN
806 STOO_ERROR := 0;
807 STOO_ROWCNT := 0;
808
809 INSERT INTO SA.PRIMACIERRE_FIANZA
810 VALUES (SP_PRIMACIERRE_FIANZA.NUMEAMES,
811 'A',
812 SP_PRIMACIERRE_FIANZA.NUMERECI,
813 SP_PRIMACIERRE_FIANZA.CDGORAMO,
814 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
815 SP_PRIMACIERRE_FIANZA.FECHEMIS,
816 SP_PRIMACIERRE_FIANZA.FECHANUL,
817 SP_PRIMACIERRE_FIANZA.FECHINIC,
818 SP_PRIMACIERRE_FIANZA.FECHVENC,
819 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
820 SP_PRIMACIERRE_FIANZA.DIAS,
821 0,
822 SP_PRIMACIERRE_FIANZA.MNTOPRMA * -1,
823 0,
824 SP_PRIMACIERRE_FIANZA.AGENTE);
825
826 STOO_ROWCNT := SQL%ROWCOUNT;
827 EXCEPTION
828 WHEN NO_DATA_FOUND
829 THEN
830 NULL;
831 WHEN OTHERS
832 THEN
833 STOO_ERROR := SQLCODE;
834 STOO_ERRMSG := SQLERRM;
835 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
836 END;
837
838 IF STOO_ERROR != 0
839 THEN
840 BEGIN
841 -- if @@nestlevel = 1 select @stat
842 SP_PRIMACIERRE_FIANZA.STAT := '1';
843 RAISE_APPLICATION_ERROR (
844 -20999,
845 'No pudo ingresar la prima de emision');
846 ROLLBACK; -- TO SAVEPOINT primacierre_fianza;
847 RETURN;
848 END;
849 END IF;
850
851 BEGIN
852 BEGIN
853 STOO_SELCNT := 0;
854 STOO_ERROR := 0;
855 STOO_ROWCNT := 0;
856
857 SELECT 1
858 INTO STOO_SELCNT
859 FROM DUAL
860 WHERE EXISTS
861 (SELECT NUMERECI
862 FROM PRIMADIFE_FIANZA
863 WHERE NUMERECI =
864 SP_PRIMACIERRE_FIANZA.NUMERECI
865 AND ESTADO = 'D');
866
867 STOO_ROWCNT := SQL%ROWCOUNT;
868 EXCEPTION
869 WHEN NO_DATA_FOUND
870 THEN
871 STOO_ROWCNT := 0;
872 STOO_SELCNT := 0;
873 WHEN OTHERS
874 THEN
875 STOO_ROWCNT := 0;
876 STOO_SELCNT := 0;
877 STOO_ERROR := SQLCODE;
878 STOO_ERRMSG := SQLERRM;
879 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
880 END;
881
882 IF STOO_SELCNT != 0
883 THEN
884 BEGIN
885 SELECT SUM (MNTODIFE)
886 INTO RESTOPRMA
887 FROM PRIMADIFE_FIANZA
888 WHERE NUMERECI = SP_PRIMACIERRE_FIANZA.NUMERECI
889 AND ESTADO = 'D';
890
891 SP_PRIMACIERRE_FIANZA.CONTANUL :=
892 SP_PRIMACIERRE_FIANZA.CONTANUL
893 + SP_PRIMACIERRE_FIANZA.RESTOPRMA;
894
895 V_JSON_CANAL :=
896 '[{"PARAMETRO" : "CDGORAMO", VALOR : "'
897 || SP_PRIMACIERRE_FIANZA.CDGORAMO
898 || '"},
899 {"PARAMETRO" : "NUMEPOLI", VALOR : "'
900 || SP_PRIMACIERRE_FIANZA.NUMEPOLI
901 || '"}]';
902
903 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_ATTR (
904 P_MODO => 'I',
905 P_TIPOOPER => 'D',
906 P_NUMEAMES => TEMPVAR1,
907 P_NUMECOMP => -1,
908 P_NUMELINE => -3,
909 P_CORRELATIVO => 0,
910 P_CONVERT_COD_SISUX_SAP => 'S',
911 P_MNTODEBE =>
SP_PRIMACIERRE_FIANZA.RESTOPRMA,
912 P_MNTOHABE => 0,
913 P_RAMO =>
SP_PRIMACIERRE_FIANZA.CDGORAMO,
914 P_CANAL =>
SA.PK_CONTAB_SAP.FN_GET_CANAL_SISUX (
915 V_JSON_CANAL),
916 P_CDGOCONT_SISUX => '2901021',
917 P_CDGOAUXI_SISUX => '00001',
918 P_STAT => V_STAT,
919 P_MESSAGE => V_MESSAGE);
920
921 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_ATTR (
922 P_MODO => 'I',
923 P_TIPOOPER => 'D',
924 P_NUMEAMES => TEMPVAR1,
925 P_NUMECOMP => -1,
926 P_NUMELINE => -4,
927 P_CORRELATIVO => 0,
928 P_CONVERT_COD_SISUX_SAP => 'S',
929 P_MNTODEBE => 0,
930 P_MNTOHABE =>
SP_PRIMACIERRE_FIANZA.RESTOPRMA,
931 P_RAMO =>
SP_PRIMACIERRE_FIANZA.CDGORAMO,
932 P_CANAL =>
SA.PK_CONTAB_SAP.FN_GET_CANAL_SISUX (
933 V_JSON_CANAL),
934 P_CDGOCONT_SISUX => '51070200101',
935 P_CDGOAUXI_SISUX => '00000',
936 P_STAT => V_STAT,
937 P_MESSAGE => V_MESSAGE);
938
939 BEGIN
940 STOO_ERROR := 0;
941 STOO_ROWCNT := 0;
942
943 UPDATE SA.PRIMADIFE_FIANZA
944 SET ESTADO = 'A',
945 FECHESTA = SP_PRIMACIERRE_FIANZA.FECHA
946 WHERE NUMERECI = SP_PRIMACIERRE_FIANZA.NUMERECI;
947
948 STOO_ROWCNT := SQL%ROWCOUNT;
949 EXCEPTION
950 WHEN NO_DATA_FOUND
951 THEN
952 NULL;
953 WHEN OTHERS
954 THEN
955 STOO_ERROR := SQLCODE;
956 STOO_ERRMSG := SQLERRM;
957 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
958 END;
959 END;
960 END IF;
961 END;
962
963 FETCH PRIMAS_REP_1
964 INTO SP_PRIMACIERRE_FIANZA.NUMERECI,
965 SP_PRIMACIERRE_FIANZA.CDGORAMO,
966 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
967 SP_PRIMACIERRE_FIANZA.FECHEMIS,
968 SP_PRIMACIERRE_FIANZA.FECHINIC,
969 SP_PRIMACIERRE_FIANZA.FECHVENC,
970 SP_PRIMACIERRE_FIANZA.FECHANUL,
971 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
972 SP_PRIMACIERRE_FIANZA.DIAS;
973
974 IF PRIMAS_REP_1%NOTFOUND
975 THEN
976 STOO_SQLSTATUS := 2;
977 STOO_FETCHSTATUS := -1;
978 ELSE
979 STOO_SQLSTATUS := 0;
980 STOO_FETCHSTATUS := 0;
981 END IF;
982 END;
983 END LOOP;
984
985 CLOSE PRIMAS_REP_1;
986
987 /* Pagos Anulados en el periodo */
988 NULL;
989 NULL; /*DECLARE CURSOR primas */
990
991 BEGIN
992 STOO_ERROR := 0;
993 STOO_ROWCNT := 0;
994 STOO_CROWCNT := 0;
995
996 OPEN PRIMAS_REP_2;
997 EXCEPTION
998 WHEN NO_DATA_FOUND
999 THEN
1000 NULL;
1001 WHEN OTHERS
1002 THEN
1003 STOO_ERROR := SQLCODE;
1004 STOO_ERRMSG := SQLERRM;
1005 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1006 END;
1007
1008 FETCH PRIMAS_REP_2
1009 INTO SP_PRIMACIERRE_FIANZA.NUMERECI,
1010 SP_PRIMACIERRE_FIANZA.CDGORAMO,
1011 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
1012 SP_PRIMACIERRE_FIANZA.FECHEMIS,
1013 SP_PRIMACIERRE_FIANZA.FECHINIC,
1014 SP_PRIMACIERRE_FIANZA.FECHVENC,
1015 SP_PRIMACIERRE_FIANZA.FECHANUL,
1016 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
1017 SP_PRIMACIERRE_FIANZA.DIAS;
1018
1019 IF PRIMAS_REP_2%NOTFOUND
1020 THEN
1021 STOO_SQLSTATUS := 2;
1022 STOO_FETCHSTATUS := -1;
1023 ELSE
1024 STOO_SQLSTATUS := 0;
1025 STOO_FETCHSTATUS := 0;
1026 END IF;
1027
1028 <<I_LOOP4>>
1029 WHILE (PRIMAS_REP_2%FOUND)
1030 LOOP
1031 BEGIN
1032 FOR REC
1033 IN (SELECT AGENTE
1034 FROM EMISION_FIANZA, SOLICITUD_FIANZA
1035 WHERE NUMEFIANZA = SP_PRIMACIERRE_FIANZA.NUMEPOLI
1036 AND EMISION_FIANZA.NUMESOLI =
1037 SOLICITUD_FIANZA.NUMESOLI)
1038 LOOP
1039 AGENTE := REC.AGENTE;
1040 END LOOP;
1041
1042 BEGIN
1043 STOO_ERROR := 0;
1044 STOO_ROWCNT := 0;
1045
1046 INSERT INTO SA.PRIMACIERRE_FIANZA
1047 VALUES (SP_PRIMACIERRE_FIANZA.NUMEAMES,
1048 'A',
1049 SP_PRIMACIERRE_FIANZA.NUMERECI,
1050 SP_PRIMACIERRE_FIANZA.CDGORAMO,
1051 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
1052 SP_PRIMACIERRE_FIANZA.FECHEMIS,
1053 SP_PRIMACIERRE_FIANZA.FECHANUL,
1054 SP_PRIMACIERRE_FIANZA.FECHINIC,
1055 SP_PRIMACIERRE_FIANZA.FECHVENC,
1056 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
1057 SP_PRIMACIERRE_FIANZA.DIAS,
1058 0,
1059 SP_PRIMACIERRE_FIANZA.MNTOPRMA * -1,
1060 0,
1061 SP_PRIMACIERRE_FIANZA.AGENTE);
1062
1063 STOO_ROWCNT := SQL%ROWCOUNT;
1064 EXCEPTION
1065 WHEN NO_DATA_FOUND
1066 THEN
1067 NULL;
1068 WHEN OTHERS
1069 THEN
1070 STOO_ERROR := SQLCODE;
1071 STOO_ERRMSG := SQLERRM;
1072 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1073 END;
1074
1075 IF STOO_ERROR != 0
1076 THEN
1077 BEGIN
1078 -- if @@nestlevel = 1 select @stat
1079 SP_PRIMACIERRE_FIANZA.STAT := '1';
1080 RAISE_APPLICATION_ERROR (
1081 -20999,
1082 'No pudo ingresar la prima de emision');
1083 ROLLBACK; -- TO SAVEPOINT
primacierre_fianza;
1084 RETURN;
1085 END;
1086 END IF;
1087
1088 BEGIN
1089 BEGIN
1090 STOO_SELCNT := 0;
1091 STOO_ERROR := 0;
1092 STOO_ROWCNT := 0;
1093
1094 SELECT 1
1095 INTO STOO_SELCNT
1096 FROM DUAL
1097 WHERE EXISTS
1098 (SELECT NUMERECI
1099 FROM PRIMADIFE_FIANZA
1100 WHERE NUMERECI =
1101 SP_PRIMACIERRE_FIANZA.NUMERECI
1102 AND ESTADO = 'D');
1103
1104 STOO_ROWCNT := SQL%ROWCOUNT;
1105 EXCEPTION
1106 WHEN NO_DATA_FOUND
1107 THEN
1108 STOO_ROWCNT := 0;
1109 STOO_SELCNT := 0;
1110 WHEN OTHERS
1111 THEN
1112 STOO_ROWCNT := 0;
1113 STOO_SELCNT := 0;
1114 STOO_ERROR := SQLCODE;
1115 STOO_ERRMSG := SQLERRM;
1116 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1117 END;
1118
1119 IF STOO_SELCNT != 0
1120 THEN
1121 BEGIN
1122 SELECT SUM (MNTODIFE)
1123 INTO RESTOPRMA
1124 FROM PRIMADIFE_FIANZA
1125 WHERE NUMERECI = SP_PRIMACIERRE_FIANZA.NUMERECI
1126 AND ESTADO = 'D';
1127
1128 SP_PRIMACIERRE_FIANZA.CONTANUL :=
1129 SP_PRIMACIERRE_FIANZA.CONTANUL
1130 + SP_PRIMACIERRE_FIANZA.RESTOPRMA;
1131
1132 V_JSON_CANAL :=
1133 '[{"PARAMETRO" : "CDGORAMO", VALOR : "'
1134 || SP_PRIMACIERRE_FIANZA.CDGORAMO
1135 || '"},
1136 {"PARAMETRO" : "NUMEPOLI", VALOR : "'
1137 || SP_PRIMACIERRE_FIANZA.NUMEPOLI
1138 || '"}]';
1139
1140 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_ATTR (
1141 P_MODO => 'I',
1142 P_TIPOOPER => 'D',
1143 P_NUMEAMES => TEMPVAR1,
1144 P_NUMECOMP => -1,
1145 P_NUMELINE => -3,
1146 P_CORRELATIVO => 0,
1147 P_CONVERT_COD_SISUX_SAP => 'S',
1148 P_MNTODEBE =>
SP_PRIMACIERRE_FIANZA.RESTOPRMA,
1149 P_MNTOHABE => 0,
1150 P_RAMO =>
SP_PRIMACIERRE_FIANZA.CDGORAMO,
1151 P_CANAL =>
SA.PK_CONTAB_SAP.FN_GET_CANAL_SISUX (
1152 V_JSON_CANAL),
1153 P_CDGOCONT_SISUX => '2901021',
1154 P_CDGOAUXI_SISUX => '00001',
1155 P_STAT => V_STAT,
1156 P_MESSAGE => V_MESSAGE);
1157
1158 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_ATTR (
1159 P_MODO => 'I',
1160 P_TIPOOPER => 'D',
1161 P_NUMEAMES => TEMPVAR1,
1162 P_NUMECOMP => -1,
1163 P_NUMELINE => -4,
1164 P_CORRELATIVO => 0,
1165 P_CONVERT_COD_SISUX_SAP => 'S',
1166 P_MNTODEBE => 0,
1167 P_MNTOHABE =>
SP_PRIMACIERRE_FIANZA.RESTOPRMA,
1168 P_RAMO =>
SP_PRIMACIERRE_FIANZA.CDGORAMO,
1169 P_CANAL =>
SA.PK_CONTAB_SAP.FN_GET_CANAL_SISUX (
1170 V_JSON_CANAL),
1171 P_CDGOCONT_SISUX => '51070200101',
1172 P_CDGOAUXI_SISUX => '00000',
1173 P_STAT => V_STAT,
1174 P_MESSAGE => V_MESSAGE);
1175
1176 BEGIN
1177 STOO_ERROR := 0;
1178 STOO_ROWCNT := 0;
1179
1180 UPDATE SA.PRIMADIFE_FIANZA
1181 SET ESTADO = 'A',
1182 FECHESTA = SP_PRIMACIERRE_FIANZA.FECHA
1183 WHERE NUMERECI = SP_PRIMACIERRE_FIANZA.NUMERECI;
1184
1185 STOO_ROWCNT := SQL%ROWCOUNT;
1186 EXCEPTION
1187 WHEN NO_DATA_FOUND
1188 THEN
1189 NULL;
1190 WHEN OTHERS
1191 THEN
1192 STOO_ERROR := SQLCODE;
1193 STOO_ERRMSG := SQLERRM;
1194 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1195 END;
1196 END;
1197 END IF;
1198 END;
1199
1200 FETCH PRIMAS_REP_2
1201 INTO SP_PRIMACIERRE_FIANZA.NUMERECI,
1202 SP_PRIMACIERRE_FIANZA.CDGORAMO,
1203 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
1204 SP_PRIMACIERRE_FIANZA.FECHEMIS,
1205 SP_PRIMACIERRE_FIANZA.FECHINIC,
1206 SP_PRIMACIERRE_FIANZA.FECHVENC,
1207 SP_PRIMACIERRE_FIANZA.FECHANUL,
1208 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
1209 SP_PRIMACIERRE_FIANZA.DIAS;
1210
1211 IF PRIMAS_REP_2%NOTFOUND
1212 THEN
1213 STOO_SQLSTATUS := 2;
1214 STOO_FETCHSTATUS := -1;
1215 ELSE
1216 STOO_SQLSTATUS := 0;
1217 STOO_FETCHSTATUS := 0;
1218 END IF;
1219 END;
1220 END LOOP;
1221
1222 CLOSE PRIMAS_REP_2;
1223
1224 /* Primas Diferidas al Producto en el periodo */
1225 NULL;
1226 NULL; /*DECLARE CURSOR primas
*/
1227
1228 BEGIN
1229 STOO_ERROR := 0;
1230 STOO_ROWCNT := 0;
1231 STOO_CROWCNT := 0;
1232
1233 OPEN PRIMAS_REP_3;
1234 EXCEPTION
1235 WHEN NO_DATA_FOUND
1236 THEN
1237 NULL;
1238 WHEN OTHERS
1239 THEN
1240 STOO_ERROR := SQLCODE;
1241 STOO_ERRMSG := SQLERRM;
1242 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1243 END;
1244
1245 FETCH PRIMAS_REP_3
1246 INTO SP_PRIMACIERRE_FIANZA.NUMERECI,
1247 SP_PRIMACIERRE_FIANZA.CDGORAMO,
1248 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
1249 SP_PRIMACIERRE_FIANZA.FECHEMIS,
1250 SP_PRIMACIERRE_FIANZA.FECHINIC,
1251 SP_PRIMACIERRE_FIANZA.FECHVENC,
1252 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
1253 SP_PRIMACIERRE_FIANZA.MNTODIFE,
1254 SP_PRIMACIERRE_FIANZA.DIAS,
1255 SP_PRIMACIERRE_FIANZA.DIASTRAS;
1256
1257 IF PRIMAS_REP_3%NOTFOUND
1258 THEN
1259 STOO_SQLSTATUS := 2;
1260 STOO_FETCHSTATUS := -1;
1261 ELSE
1262 STOO_SQLSTATUS := 0;
1263 STOO_FETCHSTATUS := 0;
1264 END IF;
1265
1266 <<I_LOOP5>>
1267 WHILE (PRIMAS_REP_3%FOUND)
1268 LOOP
1269 BEGIN
1270 SP_PRIMACIERRE_FIANZA.CONTPROD :=
1271 SP_PRIMACIERRE_FIANZA.CONTPROD + SP_PRIMACIERRE_FIANZA.MNTODIFE;
1272
1273 V_JSON_CANAL :=
1274 '[{"PARAMETRO" : "CDGORAMO", VALOR : "'
1275 || SP_PRIMACIERRE_FIANZA.CDGORAMO
1276 || '"},
1277 {"PARAMETRO" : "NUMEPOLI", VALOR : "'
1278 || SP_PRIMACIERRE_FIANZA.NUMEPOLI
1279 || '"}]';
1280
1281 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_ATTR (
1282 P_MODO => 'I',
1283 P_TIPOOPER => 'D',
1284 P_NUMEAMES => TEMPVAR1,
1285 P_NUMECOMP => -1,
1286 P_NUMELINE => -5,
1287 P_CORRELATIVO => 0,
1288 P_CONVERT_COD_SISUX_SAP => 'S',
1289 P_MNTODEBE => SP_PRIMACIERRE_FIANZA.MNTODIFE,
1290 P_MNTOHABE => 0,
1291 P_RAMO => SP_PRIMACIERRE_FIANZA.CDGORAMO,
1292 P_CANAL => SA.PK_CONTAB_SAP.FN_GET_CANAL_SISUX
(
1293 V_JSON_CANAL),
1294 P_CDGOCONT_SISUX => '2901021',
1295 P_CDGOAUXI_SISUX => '00001',
1296 P_STAT => V_STAT,
1297 P_MESSAGE => V_MESSAGE);
1298
1299 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_ATTR (
1300 P_MODO => 'I',
1301 P_TIPOOPER => 'D',
1302 P_NUMEAMES => TEMPVAR1,
1303 P_NUMECOMP => -1,
1304 P_NUMELINE => -6,
1305 P_CORRELATIVO => 0,
1306 P_CONVERT_COD_SISUX_SAP => 'S',
1307 P_MNTODEBE => 0,
1308 P_MNTOHABE => SP_PRIMACIERRE_FIANZA.MNTODIFE,
1309 P_RAMO => SP_PRIMACIERRE_FIANZA.CDGORAMO,
1310 P_CANAL => SA.PK_CONTAB_SAP.FN_GET_CANAL_SISUX
(
1311 V_JSON_CANAL),
1312 P_CDGOCONT_SISUX => '51070200101',
1313 P_CDGOAUXI_SISUX => '00000',
1314 P_STAT => V_STAT,
1315 P_MESSAGE => V_MESSAGE);
1316
1317 BEGIN
1318 STOO_ERROR := 0;
1319 STOO_ROWCNT := 0;
1320
1321 INSERT INTO SA.PRIMACIERRE_FIANZA
1322 VALUES (SP_PRIMACIERRE_FIANZA.NUMEAMES,
1323 'P',
1324 SP_PRIMACIERRE_FIANZA.NUMERECI,
1325 SP_PRIMACIERRE_FIANZA.CDGORAMO,
1326 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
1327 SP_PRIMACIERRE_FIANZA.FECHEMIS,
1328 NULL,
1329 SP_PRIMACIERRE_FIANZA.FECHINIC,
1330 SP_PRIMACIERRE_FIANZA.FECHVENC,
1331 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
1332 SP_PRIMACIERRE_FIANZA.DIAS,
1333 SP_PRIMACIERRE_FIANZA.DIASTRAS,
1334 SP_PRIMACIERRE_FIANZA.MNTODIFE,
1335 0,
1336 0);
1337
1338 STOO_ROWCNT := SQL%ROWCOUNT;
1339 EXCEPTION
1340 WHEN NO_DATA_FOUND
1341 THEN
1342 NULL;
1343 WHEN OTHERS
1344 THEN
1345 STOO_ERROR := SQLCODE;
1346 STOO_ERRMSG := SQLERRM;
1347 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1348 END;
1349
1350 IF STOO_ERROR != 0
1351 THEN
1352 BEGIN
1353 -- if @@nestlevel = 1 select @stat
1354 SP_PRIMACIERRE_FIANZA.STAT := '1';
1355 RAISE_APPLICATION_ERROR (
1356 -20999,
1357 'No pudo ingresar la prima de producto');
1358 ROLLBACK; -- TO SAVEPOINT
primacierre_fianza;
1359 RETURN;
1360 END;
1361 END IF;
1362
1363 FETCH PRIMAS_REP_3
1364 INTO SP_PRIMACIERRE_FIANZA.NUMERECI,
1365 SP_PRIMACIERRE_FIANZA.CDGORAMO,
1366 SP_PRIMACIERRE_FIANZA.NUMEPOLI,
1367 SP_PRIMACIERRE_FIANZA.FECHEMIS,
1368 SP_PRIMACIERRE_FIANZA.FECHINIC,
1369 SP_PRIMACIERRE_FIANZA.FECHVENC,
1370 SP_PRIMACIERRE_FIANZA.MNTOPRMA,
1371 SP_PRIMACIERRE_FIANZA.MNTODIFE,
1372 SP_PRIMACIERRE_FIANZA.DIAS,
1373 SP_PRIMACIERRE_FIANZA.DIASTRAS;
1374
1375 IF PRIMAS_REP_3%NOTFOUND
1376 THEN
1377 STOO_SQLSTATUS := 2;
1378 STOO_FETCHSTATUS := -1;
1379 ELSE
1380 STOO_SQLSTATUS := 0;
1381 STOO_FETCHSTATUS := 0;
1382 END IF;
1383 END;
1384 END LOOP;
1385
1386 CLOSE PRIMAS_REP_3;
1387
1388 NULL;
1389
1390 BEGIN
1391 STOO_ERROR := 0;
1392 STOO_ROWCNT := 0;
1393
1394 UPDATE SA.PRIMADIFE_FIANZA
1395 SET ESTADO = 'P', FECHESTA = SP_PRIMACIERRE_FIANZA.FECHFIN_
1396 WHERE ESTADO = 'D'
1397 AND FECHPROX BETWEEN SP_PRIMACIERRE_FIANZA.FECHINI_
1398 AND SP_PRIMACIERRE_FIANZA.FECHFIN_;
1399
1400 STOO_ROWCNT := SQL%ROWCOUNT;
1401 EXCEPTION
1402 WHEN NO_DATA_FOUND
1403 THEN
1404 NULL;
1405 WHEN OTHERS
1406 THEN
1407 STOO_ERROR := SQLCODE;
1408 STOO_ERRMSG := SQLERRM;
1409 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1410 END;
1411
1412 /* ---------------------- Contabilizacion de las primas diferidas
------------------------ */
1413 BEGIN
1414 /* centrodb*/
1415 SA.SP_ANOMES (SP_PRIMACIERRE_FIANZA.FECHFIN_,
1416 TEMPVAR3,
1417 SP_PRIMACIERRE_FIANZA.ANO,
1418 TEMPVAR4);
1419 EXCEPTION
1420 WHEN NO_DATA_FOUND
1421 THEN
1422 NULL;
1423 WHEN OTHERS
1424 THEN
1425 STOO_ERROR := SQLCODE;
1426 STOO_ERRMSG := SQLERRM;
1427 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1428 END;
1429
1430 V_NUMEAMES := TEMPVAR3;
1431 SP_PRIMACIERRE_FIANZA.LINEA := 0;
1432
1433
1434 -- se registra las primas a corto y lartgo plazo mramirez 27/02/2013 para
la contabilidad de las RESERVAS DE RIESGOS EN CURSO
1435 SELECT NVL (COUNT (*), 0)
1436 INTO V_VERIFICA
1437 FROM SA.TB_RST_PRIMAS_CIERRE
1438 WHERE NUMEAMES = V_NUMEAMES;
1439
1440 IF V_VERIFICA > 0
1441 THEN
1442 DELETE SA.TB_RST_PRIMAS_CIERRE
1443 WHERE NUMEAMES = V_NUMEAMES;
1444 END IF;
1445
1446 ---CORTO PLAZO
1447 INSERT INTO SA.TB_RST_PRIMAS_CIERRE
1448 SELECT V_NUMEAMES,
1449 'C',
1450 CDGORAMO,
1451 NUMEPOLI,
1452 FECHINIC,
1453 FECHVENC,
1454 FIADO,
1455 SUM (PRIMA),
1456 SUM (RESER24)
1457 FROM FIANZAS_COR_VIEW
1458 WHERE FECHVENC >= FECHFIN
1459 GROUP BY V_NUMEAMES,
1460 'C',
1461 CDGORAMO,
1462 NUMEPOLI,
1463 FECHINIC,
1464 FECHVENC,
1465 FIADO;
1466
1467 ---LARGO PLAZO
1468 INSERT INTO SA.TB_RST_PRIMAS_CIERRE
1469 SELECT V_NUMEAMES,
1470 'L',
1471 CDGORAMO,
1472 NUMEPOLI,
1473 FECHINIC,
1474 FECHVENC,
1475 FIADO,
1476 SUM (PRIMA),
1477 SUM (RESER24)
1478 FROM FIANZAS_24A_VIEW
1479 WHERE FECHEMIS BETWEEN FECHINI AND FECHFIN
1480 GROUP BY V_NUMEAMES,
1481 'L',
1482 CDGORAMO,
1483 NUMEPOLI,
1484 FECHINIC,
1485 FECHVENC,
1486 FIADO;
1487
1488 --fin se registra las primas a corto y largo plazo
1489
1490
1491 IF SP_PRIMACIERRE_FIANZA.CONTPROD > 0
1492 OR SP_PRIMACIERRE_FIANZA.CONTDIFE > 0
1493 OR SP_PRIMACIERRE_FIANZA.CONTANUL > 0
1494 THEN
1495 BEGIN
1496 FOR REC
1497 IN (SELECT NUMECOMP + 1 TMPALIAS1
1498 FROM CONTATMP_CONTAB3
1499 WHERE TIPOOPER = 'D'
1500 AND NUMEAMES = SP_PRIMACIERRE_FIANZA.ANO)
1501 LOOP
1502 NUMECOMP := REC.TMPALIAS1;
1503 END LOOP;
1504
1505 BEGIN
1506 STOO_ERROR := 0;
1507 STOO_ROWCNT := 0;
1508
1509 UPDATE SA.CONTATMP_CONTAB3
1510 SET NUMECOMP = SP_PRIMACIERRE_FIANZA.NUMECOMP
1511 WHERE TIPOOPER = 'D' AND NUMEAMES = SP_PRIMACIERRE_FIANZA.ANO;
1512
1513 STOO_ROWCNT := SQL%ROWCOUNT;
1514 EXCEPTION
1515 WHEN NO_DATA_FOUND
1516 THEN
1517 NULL;
1518 WHEN OTHERS
1519 THEN
1520 STOO_ERROR := SQLCODE;
1521 STOO_ERRMSG := SQLERRM;
1522 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1523 END;
1524 END;
1525 END IF;
1526
1527 IF SP_PRIMACIERRE_FIANZA.CONTDIFE > 0
1528 THEN
1529 BEGIN
1530 SP_PRIMACIERRE_FIANZA.LINEA := SP_PRIMACIERRE_FIANZA.LINEA + 1;
1531 SP_PRIMACIERRE_FIANZA.CONCEPTO :=
1532 SUBSTR (
1533 'PRIMA DIFERIDA MES '
1534 || LTRIM (
1535 STR (
1536 TO_NUMBER (
1537 TO_CHAR (SP_PRIMACIERRE_FIANZA.FECHFIN_, 'MM'))))
1538 || '/'
1539 || LTRIM (STR (SP_PRIMACIERRE_FIANZA.ANO))
1540 || ' FIANZA',
1541 1,
1542 90);
1543
1544 BEGIN
1545 STOO_ERROR := 0;
1546 STOO_ROWCNT := 0;
1547
1548 INSERT INTO SA.DPTODASI_CONTAB3
1549 VALUES ('D',
1550 SP_PRIMACIERRE_FIANZA.ANO,
1551 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1552 SP_PRIMACIERRE_FIANZA.LINEA,
1553 '46070200101',
1554 '00000',
1555 NULL,
1556 SP_PRIMACIERRE_FIANZA.CONCEPTO,
1557 SP_PRIMACIERRE_FIANZA.CONTDIFE,
1558 0,
1559 11);
1560
1561 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_UPDATE (
1562 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1563 SP_PRIMACIERRE_FIANZA.LINEA,
1564 -1,
1565 V_STAT);
1566
1567 STOO_ROWCNT := SQL%ROWCOUNT;
1568 EXCEPTION
1569 WHEN NO_DATA_FOUND
1570 THEN
1571 NULL;
1572 WHEN OTHERS
1573 THEN
1574 STOO_ERROR := SQLCODE;
1575 STOO_ERRMSG := SQLERRM;
1576 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1577 END;
1578
1579 SP_PRIMACIERRE_FIANZA.LINEA := SP_PRIMACIERRE_FIANZA.LINEA + 1;
1580
1581 BEGIN
1582 STOO_ERROR := 0;
1583 STOO_ROWCNT := 0;
1584
1585 INSERT INTO SA.DPTODASI_CONTAB3
1586 VALUES ('D',
1587 SP_PRIMACIERRE_FIANZA.ANO,
1588 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1589 SP_PRIMACIERRE_FIANZA.LINEA,
1590 '2901021',
1591 '00001',
1592 NULL,
1593 SP_PRIMACIERRE_FIANZA.CONCEPTO,
1594 0,
1595 SP_PRIMACIERRE_FIANZA.CONTDIFE,
1596 11);
1597
1598 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_UPDATE (
1599 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1600 SP_PRIMACIERRE_FIANZA.LINEA,
1601 -2,
1602 V_STAT);
1603
1604 STOO_ROWCNT := SQL%ROWCOUNT;
1605 EXCEPTION
1606 WHEN NO_DATA_FOUND
1607 THEN
1608 NULL;
1609 WHEN OTHERS
1610 THEN
1611 STOO_ERROR := SQLCODE;
1612 STOO_ERRMSG := SQLERRM;
1613 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1614 END;
1615 END;
1616 END IF;
1617
1618 IF SP_PRIMACIERRE_FIANZA.CONTANUL > 0
1619 THEN
1620 BEGIN
1621 SP_PRIMACIERRE_FIANZA.LINEA := SP_PRIMACIERRE_FIANZA.LINEA + 1;
1622 SP_PRIMACIERRE_FIANZA.CONCEPTO :=
1623 SUBSTR (
1624 'PRIMA DIFERIDA ANULADA MES '
1625 || LTRIM (
1626 STR (
1627 TO_NUMBER (
1628 TO_CHAR (SP_PRIMACIERRE_FIANZA.FECHFIN_, 'MM'))))
1629 || '/'
1630 || LTRIM (STR (SP_PRIMACIERRE_FIANZA.ANO))
1631 || ' FIANZA',
1632 1,
1633 90);
1634
1635 BEGIN
1636 STOO_ERROR := 0;
1637 STOO_ROWCNT := 0;
1638
1639 INSERT INTO SA.DPTODASI_CONTAB3
1640 VALUES ('D',
1641 SP_PRIMACIERRE_FIANZA.ANO,
1642 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1643 SP_PRIMACIERRE_FIANZA.LINEA,
1644 '2901021',
1645 '00001',
1646 NULL,
1647 SP_PRIMACIERRE_FIANZA.CONCEPTO,
1648 SP_PRIMACIERRE_FIANZA.CONTANUL,
1649 0,
1650 11);
1651
1652 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_UPDATE (
1653 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1654 SP_PRIMACIERRE_FIANZA.LINEA,
1655 -3,
1656 V_STAT);
1657
1658 STOO_ROWCNT := SQL%ROWCOUNT;
1659 EXCEPTION
1660 WHEN NO_DATA_FOUND
1661 THEN
1662 NULL;
1663 WHEN OTHERS
1664 THEN
1665 STOO_ERROR := SQLCODE;
1666 STOO_ERRMSG := SQLERRM;
1667 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1668 END;
1669
1670 SP_PRIMACIERRE_FIANZA.LINEA := SP_PRIMACIERRE_FIANZA.LINEA + 1;
1671
1672 BEGIN
1673 STOO_ERROR := 0;
1674 STOO_ROWCNT := 0;
1675
1676 INSERT INTO SA.DPTODASI_CONTAB3
1677 VALUES ('D',
1678 SP_PRIMACIERRE_FIANZA.ANO,
1679 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1680 SP_PRIMACIERRE_FIANZA.LINEA,
1681 '51070200101',
1682 '00000',
1683 NULL,
1684 SP_PRIMACIERRE_FIANZA.CONCEPTO,
1685 0,
1686 SP_PRIMACIERRE_FIANZA.CONTANUL,
1687 11);
1688
1689 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_UPDATE (
1690 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1691 SP_PRIMACIERRE_FIANZA.LINEA,
1692 -4,
1693 V_STAT);
1694
1695 STOO_ROWCNT := SQL%ROWCOUNT;
1696 EXCEPTION
1697 WHEN NO_DATA_FOUND
1698 THEN
1699 NULL;
1700 WHEN OTHERS
1701 THEN
1702 STOO_ERROR := SQLCODE;
1703 STOO_ERRMSG := SQLERRM;
1704 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1705 END;
1706 END;
1707 END IF;
1708
1709 IF SP_PRIMACIERRE_FIANZA.CONTPROD > 0
1710 THEN
1711 BEGIN
1712 SP_PRIMACIERRE_FIANZA.LINEA := SP_PRIMACIERRE_FIANZA.LINEA + 1;
1713 SP_PRIMACIERRE_FIANZA.CONCEPTO :=
1714 SUBSTR (
1715 'PRIMA DIFERIDA LIBERACION MES '
1716 || LTRIM (
1717 STR (
1718 TO_NUMBER (
1719 TO_CHAR (SP_PRIMACIERRE_FIANZA.FECHFIN_, 'MM'))))
1720 || '/'
1721 || LTRIM (STR (SP_PRIMACIERRE_FIANZA.ANO))
1722 || ' FIANZA',
1723 1,
1724 90);
1725
1726 BEGIN
1727 STOO_ERROR := 0;
1728 STOO_ROWCNT := 0;
1729
1730 INSERT INTO SA.DPTODASI_CONTAB3
1731 VALUES ('D',
1732 SP_PRIMACIERRE_FIANZA.ANO,
1733 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1734 SP_PRIMACIERRE_FIANZA.LINEA,
1735 '2901021',
1736 '00001',
1737 NULL,
1738 SP_PRIMACIERRE_FIANZA.CONCEPTO,
1739 SP_PRIMACIERRE_FIANZA.CONTPROD,
1740 0,
1741 11);
1742
1743 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_UPDATE (
1744 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1745 SP_PRIMACIERRE_FIANZA.LINEA,
1746 -5,
1747 V_STAT);
1748
1749 STOO_ROWCNT := SQL%ROWCOUNT;
1750 EXCEPTION
1751 WHEN NO_DATA_FOUND
1752 THEN
1753 NULL;
1754 WHEN OTHERS
1755 THEN
1756 STOO_ERROR := SQLCODE;
1757 STOO_ERRMSG := SQLERRM;
1758 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1759 END;
1760
1761 SP_PRIMACIERRE_FIANZA.LINEA := SP_PRIMACIERRE_FIANZA.LINEA + 1;
1762
1763 BEGIN
1764 STOO_ERROR := 0;
1765 STOO_ROWCNT := 0;
1766
1767 INSERT INTO SA.DPTODASI_CONTAB3
1768 VALUES ('D',
1769 SP_PRIMACIERRE_FIANZA.ANO,
1770 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1771 SP_PRIMACIERRE_FIANZA.LINEA,
1772 '51070200101',
1773 '00000',
1774 NULL,
1775 SP_PRIMACIERRE_FIANZA.CONCEPTO,
1776 0,
1777 SP_PRIMACIERRE_FIANZA.CONTPROD,
1778 11);
1779
1780 PK_CONTAB_SAP.SP_TB_DPTO_DASI_CONTAB3_UPDATE (
1781 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1782 SP_PRIMACIERRE_FIANZA.LINEA,
1783 -6,
1784 V_STAT);
1785
1786 STOO_ROWCNT := SQL%ROWCOUNT;
1787 EXCEPTION
1788 WHEN NO_DATA_FOUND
1789 THEN
1790 NULL;
1791 WHEN OTHERS
1792 THEN
1793 STOO_ERROR := SQLCODE;
1794 STOO_ERRMSG := SQLERRM;
1795 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1796 END;
1797 END;
1798 END IF;
1799
1800 IF SP_PRIMACIERRE_FIANZA.CONTPROD > 0
1801 OR SP_PRIMACIERRE_FIANZA.CONTDIFE > 0
1802 OR SP_PRIMACIERRE_FIANZA.CONTANUL > 0
1803 THEN
1804 BEGIN
1805 BEGIN
1806 STOO_ERROR := 0;
1807 STOO_ROWCNT := 0;
1808
1809
1810
1811 /*15-11-2023. FAGUARD: OBTENIENDO EL USUARIO QUE EST� EJECUTANDO
EL PROCESO*/
1812 V_CDGOUSUA := 0;
1813
1814 SELECT UPPER (
1815 SUBSTR (SYS_CONTEXT ('USERENV', 'SESSION_USER'), 1,
50))
1816 INTO V_USR_EXEC
1817 FROM DUAL;
1818
1819 IF (V_USR_EXEC IS NOT NULL)
1820 THEN
1821 SELECT CDGOUSUA
1822 INTO V_CDGOUSUA
1823 FROM USUARIOS
1824 WHERE TRIM (UPPER (LOGIN)) = TRIM (UPPER (V_USR_EXEC));
1825 END IF;
1826
1827 /*15-11-2023. FAGUARD: FIN DE ASIGNACI�N DE USUARIO QUE EJECUTA
EL PROCESO*/
1828
1829 INSERT INTO SA.USUACOMP
1830 VALUES ('S',
1831 V_CDGOUSUA,
1832 11,
1833 'D',
1834 SP_PRIMACIERRE_FIANZA.ANO,
1835 SP_PRIMACIERRE_FIANZA.NUMECOMP);
1836
1837 STOO_ROWCNT := SQL%ROWCOUNT;
1838 EXCEPTION
1839 WHEN NO_DATA_FOUND
1840 THEN
1841 NULL;
1842 WHEN OTHERS
1843 THEN
1844 STOO_ERROR := SQLCODE;
1845 STOO_ERRMSG := SQLERRM;
1846 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1847 END;
1848
1849 SP_PRIMACIERRE_FIANZA.CONTPROD :=
1850 SP_PRIMACIERRE_FIANZA.CONTPROD
1851 + SP_PRIMACIERRE_FIANZA.CONTDIFE
1852 + SP_PRIMACIERRE_FIANZA.CONTANUL;
1853
1854 BEGIN
1855 STOO_ERROR := 0;
1856 STOO_ROWCNT := 0;
1857
1858 INSERT INTO SA.DPTOMASI_CONTAB3
1859 VALUES ('D',
1860 SP_PRIMACIERRE_FIANZA.ANO,
1861 SP_PRIMACIERRE_FIANZA.NUMECOMP,
1862 SP_PRIMACIERRE_FIANZA.FECHFIN_,
1863 'Comprobante de Primas Diferidas',
1864 SP_PRIMACIERRE_FIANZA.CONTPROD,
1865 SP_PRIMACIERRE_FIANZA.CONTPROD,
1866 1,
1867 NULL,
1868 NULL,
1869 NULL,
1870 1,
1871 NULL,
1872 NULL,
1873 NULL,
1874 NULL,
1875 NULL,
1876 'P',
1877 SP_PRIMACIERRE_FIANZA.LINEA,
1878 1,
1879 11,
1880 0);
1881
1882 STOO_ROWCNT := SQL%ROWCOUNT;
1883 EXCEPTION
1884 WHEN NO_DATA_FOUND
1885 THEN
1886 NULL;
1887 WHEN OTHERS
1888 THEN
1889 STOO_ERROR := SQLCODE;
1890 STOO_ERRMSG := SQLERRM;
1891 RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM, TRUE);
1892 END;
1893 END;
1894 END IF;
1895
1896 -- if @@nestlevel = 1 select @stat
1897
1898
1899 COMMIT WORK;
1900 RETURN;
1901 END SP_PRIMACIERRE_FIANZA;
1902 /

Procedure SP_PRIMACIERRE_FIANZA compiled

SQL>
SQL>
SQL> CREATE OR REPLACE PUBLIC SYNONYM SP_PRIMACIERRE_FIANZA FOR
SA.SP_PRIMACIERRE_FIANZA;

SYNONYM SP_PRIMACIERRE_FIANZA created.

SQL>
SQL>
SQL> GRANT EXECUTE ON SA.SP_PRIMACIERRE_FIANZA TO ROL_GENERAL;

Grant succeeded.

SQL>
SQL> GRANT EXECUTE ON SA.SP_PRIMACIERRE_FIANZA TO USUAFINAL_ADMON;

Grant succeeded.

SQL>
SQL>
SQL>
SQL> select owner,object_name,object_type,created,last_ddl_time,timestamp,status
2 from dba_objects
3 where status <> 'VALID'
4 and owner in ('SA')
5 /

OWNER OBJECT_NAME OBJECT_TYPE CREATED


LAST_DDL_ TIMESTAMP STATUS
--------------- ----------------------------------- -------------------- ---------
--------- ------------------- ----------
SA PK_AUDITORIA PACKAGE BODY 08-APR-17
06-NOV-23 2023-11-06:13:38:03 INVALID

You might also like