Sei sulla pagina 1di 3

PROCEDURE SUS_AUTO_COTIZ (nIdePol NUMBER,cCliente VARCHAR2) IS cArchivo cActual cLinea cNombre cRuta UTL_FILE.

FILE_TYPE; VARCHAR2(14) VARCHAR2(500) VARCHAR2(300) VARCHAR2(100) := := := := 0; NULL; NULL; 'ASISTXT';

CURSOR C1 IS SELECT DISTINCT MC.NUMCERT CERTIFICADO, MC.STSMODCOBERT STS_ASEG, PR_UTIL.BUSCA_NOMCLI (C.CODCLI) ASEGURADO, NVL (PR.BUSCA_MARCA_VEH (CV.CODMARCA), 'INVALIDO') MARCA, NVL (PR.BUSCA_MODELO_VEH (CV.CODMARCA, CV.CODMODELO), 'INVALIDO') MODELO, CV.ANOVEH ANO, NVL (CV.COLOR, 'INVALIDO') COLOR, NVL (CV.NUMPLACA, 'INVALIDO') PLACA, CV.SERIALCARROCERIA SERIALCARROCERIA, CV.NUMPUESTOS PUESTOS, NVL (CV.MTOCOSTOVEH, MC.SUMAASEGMONEDA) SUMA_ASEG, NVL ( (SELECT SUM (MC2.PRIMAMONEDA) FROM MOD_COBERT MC2, COBERT_CERT CC WHERE MC2.NUMMOD IN (SELECT MAX (X.NUMMOD) FROM MOD_COBERT X WHERE X.NUMCERT = CV.NUMCERT AND X.IDEPOL = CV.IDEPOL) AND MC2.IDECOBERT = CC.IDECOBERT AND CC.CODCOBERT IN ('CA01', 'CA02', 'CA03', 'CA04') AND CC.NUMCERT = CV.NUMCERT AND CC.IDEPOL = CV.IDEPOL), 0) PRIMA_CASCO, NVL ( (SELECT SUM (MC2.TASA) FROM MOD_COBERT MC2, COBERT_CERT CC WHERE MC2.NUMMOD IN (SELECT MAX (X.NUMMOD) FROM MOD_COBERT X WHERE X.NUMCERT = CV.NUMCERT AND X.IDEPOL = CV.IDEPOL) AND MC2.IDECOBERT = CC.IDECOBERT AND CC.CODCOBERT IN ('CA01', 'CA02', 'CA03') --, 'CA04') AND CC.NUMCERT = CV.NUMCERT AND CC.IDEPOL = CV.IDEPOL), 0) TASA_CASCO, NVL ( (SELECT SUM (MC2.PRIMAMONEDA) FROM MOD_COBERT MC2, COBERT_CERT CC WHERE MC2.NUMMOD IN (SELECT MAX (X.NUMMOD) FROM MOD_COBERT X WHERE X.NUMCERT = CV.NUMCERT AND X.IDEPOL = CV.IDEPOL) AND MC2.IDECOBERT = CC.IDECOBERT AND CC.CODCOBERT = 'CA04' AND CC.NUMCERT = CV.NUMCERT AND CC.IDEPOL = CV.IDEPOL), 0)

PRIMA_EVENTO_CATASTROFICO, NVL ( (SELECT SUM (MC2.PRIMAMONEDA) FROM MOD_COBERT MC2, COBERT_CERT CC WHERE MC2.NUMMOD IN (SELECT MAX (X.NUMMOD) FROM MOD_COBERT X WHERE X.NUMCERT = CV.NUMCERT AND X.IDEPOL AND MC2.IDECOBERT = CC.IDECOBERT AND CC.CODCOBERT IN ('RC01', 'RC02') AND CC.NUMCERT = CV.NUMCERT AND CC.IDEPOL = CV.IDEPOL), 0) PRIMA_RCV, NVL ( (SELECT SUM (MC2.PRIMAMONEDA) FROM MOD_COBERT MC2, COBERT_CERT CC WHERE MC2.NUMMOD IN (SELECT MAX (X.NUMMOD) FROM MOD_COBERT X WHERE X.NUMCERT = CV.NUMCERT AND X.IDEPOL AND MC2.IDECOBERT = CC.IDECOBERT AND CC.CODCOBERT IN ('AC01', 'AC02', 'AC03') AND CC.NUMCERT = CV.NUMCERT AND CC.IDEPOL = CV.IDEPOL), 0) PRIMA_APOV, NVL ( (SELECT SUM (MC2.PRIMAMONEDA) FROM MOD_COBERT MC2, COBERT_CERT CC WHERE MC2.NUMMOD IN (SELECT MAX (X.NUMMOD) FROM MOD_COBERT X WHERE X.NUMCERT = CV.NUMCERT AND X.IDEPOL AND MC2.IDECOBERT = CC.IDECOBERT AND CC.CODCOBERT IN ('RC04') AND CC.NUMCERT = CV.NUMCERT AND CC.IDEPOL = CV.IDEPOL), 0) PRIMA_DEFENSA_PENAL, NVL ( (SELECT SUM (MC2.PRIMAMONEDA) FROM MOD_COBERT MC2, COBERT_CERT CC WHERE MC2.NUMMOD IN (SELECT MAX (X.NUMMOD) FROM MOD_COBERT X WHERE X.NUMCERT = CV.NUMCERT AND X.IDEPOL AND MC2.IDECOBERT = CC.IDECOBERT AND CC.CODCOBERT IN ('RC03') AND CC.NUMCERT = CV.NUMCERT AND CC.IDEPOL = CV.IDEPOL), 0) PRIMA_EXCESO_DE_LIMITE, NVL ( (SELECT SUM (MC2.PRIMAMONEDA) FROM MOD_COBERT MC2, COBERT_CERT CC WHERE MC2.NUMMOD IN (SELECT MAX (X.NUMMOD) FROM MOD_COBERT X WHERE X.NUMCERT = CV.NUMCERT AND X.IDEPOL

= CV.IDEPOL)

= CV.IDEPOL)

= CV.IDEPOL)

= CV.IDEPOL)

= CV.IDEPOL)

AND AND AND AND

MC2.IDECOBERT = CC.IDECOBERT CC.CODCOBERT IN ('AS01') CC.NUMCERT = CV.NUMCERT CC.IDEPOL = CV.IDEPOL),

0) PRIMA_GRUA, NVL ( (SELECT SUM (MC2.PRIMAMONEDA) FROM MOD_COBERT MC2, COBERT_CERT CC WHERE MC2.NUMMOD IN (SELECT MAX (X.NUMMOD) FROM MOD_COBERT X WHERE X.NUMCERT = CV.NUMCERT AND X.IDEPOL = CV.IDEPOL) AND MC2.IDECOBERT = CC.IDECOBERT AND CC.NUMCERT = CV.NUMCERT AND CC.IDEPOL = CV.IDEPOL), 0) PRIMA FROM MOD_COBERT MC, COBERT_CERT CC, POLIZA P, CERTIFICADO C, CERT_RAMO CT, CERT_VEH CV WHERE MC.IDEPOL = :IDEPOL AND P.IDEPOL = MC.IDEPOL AND MC.IDECOBERT = CC.IDECOBERT AND CT.CODRAMOCERT = MC.CODRAMOCERT AND CT.NUMCERT = MC.NUMCERT AND CT.IDEPOL = MC.IDEPOL AND CT.IDEPOL = CV.IDEPOL AND CT.NUMCERT = CV.NUMCERT AND CV.IDEPOL = C.IDEPOL AND CV.NUMCERT = C.NUMCERT AND MC.NUMCERT = CC.NUMCERT AND MC.CODRAMOCERT = CC.CODRAMOCERT AND MC.IDEPOL = CC.IDEPOL ORDER BY CERTIFICADO; BEGIN cNombre := cCliente||'_SUS_AUTO_COTIZ'||'.txt'; cArchivo := UTL_FILE.FOPEN (cRuta,cNombre,'w'); FOR x IN C1 LOOP cLinea := (x.CERTIFICADO||';'||x.STS_CERTIFICADO||';'||x.ASEGURADO| |';'||x.MARCA||';'||x.MODELO ||';'||x.AO||';'||x.COLOR ||';'|| x.PLACA||';'||x.SERIAL_DE_CARROCERIA||';'||x.NRO_PUESTOS ||';'||x.SUMA_ASEGURADA ||';'||x.PRIMA_CASCO ||';'||x.TASA_CASCO ||';'|| x.PRIMA_EVENTO_CATASTROFICO ||';'||x.PRIMA_RCV ||';'||x. PRIMA_APOV||';'||x.PRIMA_DEFENSA_PENAL||';'||x.PRIMA_EXCESO_DE_LIMITE||';'||x.PR IMA_GRUA||';'||x.PRIMA_GRUA); UTL_FILE.PUT_LINE(cArchivo, cLinea); END LOOP; UTL_FILE.FCLOSE(cArchivo); END;

Potrebbero piacerti anche