Está en la página 1de 62

*----------------------------------------------------------------

* COMPANIA : BBV PERU - BCO CONTINENTAL


* SISTEMA : ALTAMIRA
* APLICATIVO : COMERCIO EXTERIOR CORPORATIVO
* MODULO : ARQUITECTURA E INTERFASES
* SUB-MODULO : TARIFARIO
* OBJETIVO : MANTENIMIENTO MAESTRO TARIFA PREFERENCIAL
* TRANSACCION: XY64
******************************************************************
IDENTIFICATION DIVISION.

PROGRAM-ID. XC2CY640.
AUTHOR. GUILLERMO NAVACH S.
DATE-WRITTEN. 18/09/2001.

******************************************************************
* LOG DE MODIFICACIONES *
******************************************************************
* AUTOR FECHA DESCRIPCION *
* USUARIO DDMMAAAA *
* ---------- -------- --------------------------------------- *
* @001 C578A 20012003 CAMBIO RUTINA PARAMETROS XC7CQPA0 *
* @002 C415A 22042003 CAMBIO DE PRODUCTO 11 EN DURO *
* @003 C452A 16102003 ATENCION 191-M-ARG *
* @006 SOFTTEK 09122008 SUSTITUCION DEL COPY *
* IDAXFGN PEWC5200 DE APLICATIVO *
* EXTERNO A XC, POR MIGRACION *
* @007 @SOFTTEK 31042009 SUBSTITUCION DE COPYS PEWC5000, *
* IDAXCHH DE APLICATIVO EXTERNO A XC *
******************************************************************
* PETICION USUARIO FECHA DESCRIPCION *
* -------- ------- ----- ----------- *
* 200312229 @004 M.MARQUEZ 03032004 134-CDE *
* 200404021 @005 M.MARQUEZ 06072004 029-GES *
*---------------------------------------------------------------*
* 27-01-14 |XA50351| | LA MODIFICACION CONSISTE EN GRABAR *
* CDA INFORMATICA |P53757 | UN LOG CON LOS DATOS DE PANTALLA *
* | | | PARA TRAZABILIDAD CUANDO SE REALI- *
* | | | ZA UN ALTA, UNA BAJA, O MODIF. *
*---------------------------------------------------------------*
******************************************************************
* ENVIRONMENT DIVISION *
******************************************************************
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
******************************************************************
* DATA DIVISION *
* *
******************************************************************
*
DATA DIVISION.
*
WORKING-STORAGE SECTION.
*------------------------*
*********** IDENTIFICADOR DE INICIO DE WORKING STORAGE ***********
01 LT-INICIO-WS.
05 LT-INICIO-W PIC X(40) VALUE
'*** INICIO WORKING STORAGE (XC2CY640) **'.
P53757*
| *********** COPY PARA GRABACION DE LOGS DE TRAZABILIDAD **********
| 01 W-QR5CLOG0 PIC X(08) VALUE 'QR5CLOG0'.
| COPY QRWCLOGT.
| COPY XCWCTR55.
P53757*

********************* COPYS COBOL ********************************


01 QGECABC-01.
COPY QGECABC.
*
******************************************************************
* AREA DE ENLACE DE LA RUTINA GRABACION LOG COMEXT
* XC7CTLG0
******************************************************************
*
01 XCWCTLG0.
COPY XCWCTLG0.
******************************************************************
* AREA DE ENLACE DE LA RUTINA AUTOGENERADO TARIFA PREFERENCIAL
* XC7CYT40
******************************************************************
*
01 XCWCYT40-01.
COPY XCWCYT40.
******************************************************************
* AREA DE ENLACE DE LA RUTINA GENERA HISTORICOS PREFERENCIAL
* XC7CYT50
******************************************************************
*
01 XCWCYT50-01.
COPY XCWCYT50.
******************************************************************
* AREA DE ENLACE DE LA RUTINA VERIFICA OPERACION CDI STAND BY
* XC7CYT60
******************************************************************
*
01 XCWCYT60.
COPY XCWCYT60.
************** COPY DE LA RUTINA TC2C1000 ************************
************** TABLAS CORPORATIVAS GENERALES *********************
01 W-TCWC0000.
COPY TCWC0000.
COPY TCTC1110.
************** COPY DE LA RUTINA PE2C5000 ************************
01 PEWC5000.
*@007-I
* COPY PEWC5000.
COPY XCWCM240.
*@007-F
************** COPY DE LA RUTINA PE2C5200 ************************
*@006-I
01 PEWC5200.
* COPY PEWC5200.
COPY XCWC200.
*@006-F
************** COPY DE LA RUTINA XC7CQ000 ************************
************** TABLAS INTERNAS COMEXTCORP*************************
01 XCWCQ000.
COPY XCWCQ000.
*****COPY DE PARAMETROS POR PAIS
*@001-I
01 XC7CQPA0 PIC X(08) VALUE 'XC7CQPA0'.
01 W-XCWCQPA0.
COPY XCWCQPA0.
*@001-F
************************** ATRIBUTOS *****************************
01 W-ATRIBUTO.
05 ATRI-NOP PIC X VALUE ' '.
05 ATRI-NOP-FST PIC X VALUE 'A'.
05 ATRI-NOP-BRI PIC X VALUE 'H'.
05 ATRI-NOP-BRI-FST PIC X VALUE 'I'.
05 ATRI-NOP-NOV PIC X VALUE '<'.
05 ATRI-NOP-NOV-FST PIC X VALUE '('.
05 ATRI-NOP-NUM PIC X VALUE 'M'.
05 ATRI-NOP-NUM-FST PIC X VALUE 'N'.
05 ATRI-NOP-NUM-BRI PIC X VALUE 'Q'.
05 ATRI-NOP-NUM-BRI-FST PIC X VALUE 'R'.
05 ATRI-PRO PIC X VALUE '0'.
05 ATRI-PRO-FST PIC X VALUE '1'.
05 ATRI-PRO-BRI PIC X VALUE '8'.
05 ATRI-PRO-BRI-FST PIC X VALUE '9'.
05 ATRI-PRO-NOV PIC X VALUE '@'.
05 ATRI-PRO-NOV-FST PIC X VALUE QUOTE.
************************** SWITCHES ******************************
01 SWITCHES.
05 SW-TECLA PIC X(2) VALUE ' '.
88 PFENTER VALUE '00'.
88 PF2 VALUE '02'.
88 PF3 VALUE '03'.
88 PF4 VALUE '04'.
88 PF6 VALUE '06'.
88 PF7 VALUE '07'.
88 PF10 VALUE '10'.
88 PF13 VALUE '13'.
88 SPF10 VALUE '20'.
88 CLEAR VALUE '99'.
05 SW-EXISTE PIC X(02).
05 SW-PERSONA PIC X(02).
05 SW-CAMBIO-CLAVE PIC X(02).
05 SW-FIN-CURSOR-Y15 PIC X(02).
05 SW-FIN-CURSOR-Y16 PIC X(02).
*********************** CONSTANTES********************************
01 W-CONSTANTES.
02 XC6CM230 PIC X(08) VALUE 'XC6CM230'.
02 XC6CM240 PIC X(08) VALUE 'XC6CM240'.
02 XC6CM410 PIC X(08) VALUE 'XC6CM410'.
02 XC6CM420 PIC X(08) VALUE 'XC6CM420'.
02 CT-DTIPPRE-CDI-FIN PIC X(40) VALUE
'N=NORMAL/F=FLAT/A=ALL-IN (CDI O FINANC.)'.
02 CT-DTIPPRE-CDI-SBY PIC X(40) VALUE
'N=NORMAL/G=FLAT/B=ALL-IN (CDI STAND BY)'.
02 CT-DTIPPRE-NO-CDI-FIN PIC X(40) VALUE
'N=NORMAL (NO CDI NI FINANC.)'.
02 CT-DTIPPRE-POR-CLI PIC X(40) VALUE
'N=NORMAL (POR CLIENTE)'.
02 CT-DTODCON-SN PIC X(40) VALUE
'S=SI/N=NO'.
02 CT-DTODCON-S PIC X(40) VALUE
'S=SI (DIFERIDO)'.
161003*@003-I
02 CT-DTIPPRE-FLAT-FIN PIC X(40) VALUE
'D=DESEMBOLSO/V=CANCELACION(FLAT FINANC.)'.
161003*@003-F
*********************** CONTADORES********************************
01 W-CONTADORES.
02 I PIC 9(03).
02 J PIC 9(03).
*********************** VARIABLES ********************************
01 W-VARIABLES.
P53757*
| 05 W-ID-EVENTO PIC S9(9) COMP.
| 05 W-TIPO-EVENTO PIC X(02).
| 05 W-ANTES-DESPUES PIC X(01).
|
| 05 W-GTS.
| 10 FILLER PIC X(4) VALUE 'XY64'.
| 10 W-GTS-SUFI PIC X(4) VALUE SPACES.
| 05 W-ITEM PIC S9(4) COMP VALUE ZEROES.
| 05 W-GTS-DATOS.
| 10 W-GTS-Y64-CAUTOGE PIC X(008) VALUE SPACES.
| 10 W-GTS-Y64-OPERACI PIC X(019) VALUE SPACES.
| 10 W-GTS-Y64-CENTIDA PIC X(004) VALUE SPACES.
| 10 W-GTS-Y64-COFIOPE PIC X(004) VALUE SPACES.
| 10 W-GTS-Y64-CCTAOPE PIC X(010) VALUE SPACES.
| 10 W-GTS-Y64-CPRODUC PIC X(002) VALUE SPACES.
| 10 W-GTS-Y64-DPRODUC PIC X(040) VALUE SPACES.
| 10 W-GTS-Y64-CSUBPRD PIC X(004) VALUE SPACES.
| 10 W-GTS-Y64-DSUBPRD PIC X(040) VALUE SPACES.
| 10 W-GTS-Y64-CCLILOC PIC X(008) VALUE SPACES.
| 10 W-GTS-Y64-DCLILOC PIC X(040) VALUE SPACES.
| 10 W-GTS-Y64-FREFERE PIC X(008) VALUE SPACES.
| 10 W-GTS-Y64-FDESDE PIC X(008) VALUE SPACES.
| 10 W-GTS-Y64-FHASTA PIC X(008) VALUE SPACES.
| 10 W-GTS-Y64-YTODCON PIC X(001) VALUE SPACES.
| 10 W-GTS-Y64-CTIPPRE PIC X(001) VALUE SPACES.
| 10 W-GTS-Y64-YACTIVA PIC X(001) VALUE SPACES.
| 10 W-GTS-Y64-DOBSERV PIC X(035) VALUE SPACES.
P53757*
05 W-SQLCODE PIC +9(03).
05 W-SQLERRM PIC X(70).
05 W-TABLA PIC X(08).
05 W-PROGRAMA PIC X(08).
05 W-REFERENCIA PIC X(20).
01 W-VARIABLES-PANT.
05 W-XCNCY64-INI PIC X(1000).
05 W-CFASE PIC X(10).
05 W-COFIOPE PIC X(04).
05 W-CCTAOPE PIC X(10).
05 W-YDIFERI PIC X(01).
05 W-YPUNTUA PIC X(01).
05 W-CPRODUC PIC X(02).
05 W-CSUBPRD PIC X(04).
05 W-CCLILOC PIC X(08).
05 W-CAUTOGE PIC X(08).
05 W-FREFERE PIC X(08).
05 W-FDESDE PIC X(08).
05 W-FHASTA PIC X(08).
05 W-YACTIVA PIC X(01).
05 W-YTODCON PIC X(01).
05 W-CTIPPRE PIC X(03).
05 W-DOBSERV PIC X(35).
05 W-YDENLIN PIC X(01).
05 W-IMTOLIN PIC 9(11)V99.
05 W-IOPELIN PIC 9(11)V99.
05 W-IUTILIN PIC 9(11)V99.
05 W-FINILIN PIC X(10).
05 W-FFINLIN PIC X(10).
01 VARIABLES-DIVERSAS.
05 WS-PUNTERO PIC 9(04).
05 WS-PRIAPE PIC X(20).
05 WS-SEGAPE PIC X(20).
05 WS-NOMBRE PIC X(20).
05 WS-NOM-62 PIC X(62).
*200312229 @004-I
05 WN-NUMERO PIC 9(08) VALUE 0.
05 WX-NUMERO REDEFINES WN-NUMERO PIC X(08).
*200312229 @004-F
01 W-VARIABLES-AUX.
05 FEC1 PIC X(10).
05 FEC2 PIC X(10).
05 W-FDESDE-ANT PIC X(10).
05 W-MAX-FREFERE PIC X(10).
05 W-FDESDE-AAAA-MM-DD PIC X(10).
05 W-FHASTA-AAAA-MM-DD PIC X(10).
01 W-VARIABLES-FECHA.
02 W-TIMESTAMP PIC X(26).
02 W-TIMESTAMP-R REDEFINES W-TIMESTAMP.
04 W-FHOY-AAAA-MM-DD PIC X(10).
04 W-HORA PIC X(16).
02 W-FHOY-DDMMAAAA PIC X(08).
02 W-FECHA-AAAA-MM-DD.
04 W-FRAMD-AAAA PIC X(04).
04 W-FRAMD-RAYA1 PIC X(01).
04 W-FRAMD-MM PIC X(02).
04 W-FRAMD-RAYA2 PIC X(01).
04 W-FRAMD-DD PIC X(02).
02 W-FECHA-DD-MM-AAAA.
04 W-FRDMA-DD PIC X(02).
04 W-FRDMA-RAYA1 PIC X(01).
04 W-FRDMA-MM PIC X(02).
04 W-FRDMA-RAYA2 PIC X(01).
04 W-FRDMA-AAAA PIC X(04).
02 W-FECHA-DDMMAAAA.
04 W-FECHA-DD PIC X(02).
04 W-FECHA-MM PIC X(02).
04 W-FECHA-AAAA PIC X(04).
*
***************** DECLARACION DE TABLAS DB2 **********************
EXEC SQL INCLUDE SQLCA END-EXEC.
EXEC SQL INCLUDE XCGTY17 END-EXEC.
EXEC SQL INCLUDE XCGTY14 END-EXEC.
EXEC SQL INCLUDE XCGTY16 END-EXEC.
EXEC SQL INCLUDE XCGTY15 END-EXEC.
EXEC SQL INCLUDE XCGTY21 END-EXEC.
EXEC SQL INCLUDE XCGTY18 END-EXEC.
*
***************** DECLARACION DE CURSOR DB2 **********************
*
***************** TABLA XCDTY15 **********************************
EXEC SQL
DECLARE CURSOR-Y15 CURSOR FOR
SELECT
TY15_XC_CENTIDA,
TY15_XC_CTARIFA,
TY15_XC_CPERIOD,
TY15_XC_CTIPCAL,
TY15_XC_CADEVEN,
TY15_XC_YACTIVA,
TY15_XC_YEXONER,
TY15_XC_YMINIMO,
TY15_XC_YMINSTD,
TY15_XC_YMINPOR,
TY15_XC_CENTALT,
TY15_XC_COFIALT,
TY15_XC_CTERALT,
TY15_XC_CUSUALT,
TY15_XC_FTSTALT,
TY15_XC_CENTUMO,
TY15_XC_COFIUMO,
TY15_XC_CTERUMO,
TY15_XC_CUSUUMO,
TY15_XC_FTSTUMO
FROM XCDTY15
WHERE
TY15_XC_CAUTOGE = :TY15-XC-CAUTOGE AND
TY15_XC_FREFERE = :TY15-XC-FREFERE
END-EXEC.
*
***************** TABLA XCDTY16 **********************************
EXEC SQL
DECLARE CURSOR-Y16 CURSOR FOR
SELECT
TY16_XC_CENTIDA,
TY16_XC_CTARIFA,
TY16_XC_NRANGO ,
TY16_XC_ILIMSUP,
TY16_XC_IMINIMO,
TY16_XC_IMAXIMO,
TY16_XC_IVALIMP,
TY16_XC_NVALTAS,
TY16_XC_CENTALT,
TY16_XC_COFIALT,
TY16_XC_CTERALT,
TY16_XC_CUSUALT,
TY16_XC_FTSTALT,
TY16_XC_CENTUMO,
TY16_XC_COFIUMO,
TY16_XC_CTERUMO,
TY16_XC_CUSUUMO,
TY16_XC_FTSTUMO
FROM XCDTY16
WHERE
TY16_XC_CAUTOGE = :TY16-XC-CAUTOGE AND
TY16_XC_FREFERE = :TY16-XC-FREFERE
END-EXEC.
*********** IDENTIFICADOR DE FINAL DE WORKING STORAGE ************
01 LT-FINAL-WS.
05 LT-FINAL-W PIC X(40) VALUE
'*** FINAL WORKING STORAGE (XC2CY640) ***'.
* *
LINKAGE SECTION.
*===============
01 DFHCOMMAREA.
COPY QGECCAA.
COPY XCECCMA.
COPY XCECPCA.
COPY XCNCY64.
*@001-I
*01 XCWCQPX-01.
* COPY XCWCQPX.
*@001-F
*
******************************************************************
* *
* PROCEDURE DIVISION *
* *
******************************************************************
*
PROCEDURE DIVISION.
*
PERFORM 100000-INICIO-PROGRAMA.
PERFORM 200000-PROCESO-PROGRAMA.
PERFORM 300000-FIN-PROGRAMA.
*
******************************************************************
* *
* 100000-INICIO-PROGRAMA *
* *
******************************************************************
100000-INICIO-PROGRAMA.
*
INITIALIZE QGECABC.
*
EXEC CICS
IGNORE CONDITION ERROR
END-EXEC.
IF EIBRESP NOT EQUAL DFHRESP(NORMAL)
MOVE 'ERROR CICS XC2CY640' TO ABC-REFERENCIA
MOVE 'XC2CY640' TO ABC-OBJETO-ERROR
PERFORM 999999-ERROR-CICS
END-IF.
SET ADDRESS OF XCNCY64 TO CAA-PTR-COPYIN.
SET ADDRESS OF XCECCMA TO CAA-PTRDATA.
*@001-I
* EXEC CICS LOAD PROGRAM('XC1AQPA0')
* SET(ADDRESS OF XCWCQPX-01)
* NOHANDLE
* END-EXEC.
* IF EIBRESP NOT EQUAL DFHRESP(NORMAL)
* MOVE 'ERROR CICS XC1AQPA0' TO ABC-REFERENCIA
* MOVE 'XC1AQPA0' TO ABC-OBJETO-ERROR
* PERFORM 999999-ERROR-CICS
* END-IF.
MOVE CAA-ENTIDAD TO WQPA-CENTIDA-I
EXEC CICS
LINK PROGRAM (XC7CQPA0)
COMMAREA (W-XCWCQPA0)
END-EXEC
IF EIBRESP NOT EQUAL DFHRESP(NORMAL)
MOVE 'ERROR CICS IGNORA ERROR' TO ABC-REFERENCIA
MOVE 'XC7CQPA0' TO ABC-PROGRAMA
PERFORM 999999-ERROR-CICS
END-IF
*
EVALUATE WQPA-CODRETORN
WHEN '00'
CONTINUE
WHEN OTHER
MOVE 'XCE0020' TO CAA-COD-ERROR
MOVE WQPA-CODRETORN TO CAA-VAR1-ERROR
MOVE 'XC7CQPA0' TO CAA-VAR2-ERROR
MOVE CAA-CODTRAN TO CAA-VAR2-ERROR(16:4)
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE
*@001-F
IF CAA-CASO = 'R'
MOVE CAA-DATOS TO XPCA-CLAVE
MOVE SPACES TO CAA-CASO
END-IF.
P53757*
| MOVE CAA-TERMINAL TO W-GTS-SUFI.
P53757*
*
******************************************************************
* *
* 200000-PROCESO-PROGRAMA *
* *
******************************************************************
200000-PROCESO-PROGRAMA.
*
EVALUATE TRUE
WHEN CAA-88-ESTADO-CONTIN
PERFORM 220000-ESTADO-CONTINUACION
WHEN CAA-88-ESTADO-CONFIR
PERFORM 230000-ESTADO-CONFIRMACION
WHEN OTHER
PERFORM 210000-ESTADO-INICIO
END-EVALUATE.
*
******************************************************************
* *
* 210000-ESTADO-INICIO *
* *
******************************************************************
210000-ESTADO-INICIO.
*
MOVE XCNCY64 TO W-XCNCY64-INI.
MOVE LOW-VALUES TO XCNCY64.
PERFORM 211000-PREPARA-PANTALLA.
IF XPCA-YALTA EQUAL 'S'
MOVE 'N' TO XPCA-YALTA
PERFORM 212000-PREPARA-ALTA
ELSE
PERFORM 222200-CONSULTA-DATOS
END-IF.
PERFORM 219000-LOW-POR-RAYAS-BLANCOS.
PERFORM 222300-VALIDA-DATOS.
P53757*
| PERFORM 210100-WRITEQ-TS.
P53757*
MOVE -1 TO Y64-CAUTOGEL.
*
P53757*
| ******************************************************************
| * 210100-WRITEQ-TS *
| ******************************************************************
| 210100-WRITEQ-TS.
|
|
| EXEC CICS
| DELETEQ TS
| QUEUE(W-GTS)
| END-EXEC
| *
| EVALUATE EIBRESP
| WHEN (DFHRESP(NORMAL))
| CONTINUE
| WHEN (DFHRESP(QIDERR))
| CONTINUE
| WHEN OTHER
| MOVE 'ERROR CICS DELETEQ ' TO ABC-REFERENCIA
|
| MOVE W-GTS TO ABC-OBJETO-ERROR
| PERFORM 999999-ERROR-CICS
| END-EVALUATE
|
| MOVE Y64-CAUTOGE TO W-GTS-Y64-CAUTOGE
| MOVE Y64-OPERACI TO W-GTS-Y64-OPERACI
| MOVE Y64-CENTIDA TO W-GTS-Y64-CENTIDA
| MOVE Y64-COFIOPE TO W-GTS-Y64-COFIOPE
| MOVE Y64-CCTAOPE TO W-GTS-Y64-CCTAOPE
| MOVE Y64-CPRODUC TO W-GTS-Y64-CPRODUC
| MOVE Y64-DPRODUC TO W-GTS-Y64-DPRODUC
| MOVE Y64-CSUBPRD TO W-GTS-Y64-CSUBPRD
| MOVE Y64-DSUBPRD TO W-GTS-Y64-DSUBPRD
| MOVE Y64-CCLILOC TO W-GTS-Y64-CCLILOC
| MOVE Y64-DCLILOC TO W-GTS-Y64-DCLILOC
| MOVE Y64-FREFERE TO W-GTS-Y64-FREFERE
| MOVE Y64-FDESDE TO W-GTS-Y64-FDESDE
| MOVE Y64-FHASTA TO W-GTS-Y64-FHASTA
| MOVE Y64-YTODCON TO W-GTS-Y64-YTODCON
| MOVE Y64-CTIPPRE TO W-GTS-Y64-CTIPPRE
| MOVE Y64-YACTIVA TO W-GTS-Y64-YACTIVA
| MOVE Y64-DOBSERV TO W-GTS-Y64-DOBSERV
| *
| EXEC CICS
| WRITEQ TS
| QUEUE (W-GTS)
| FROM (W-GTS-DATOS)
| MAIN
| END-EXEC
| *
| EVALUATE EIBRESP
| WHEN DFHRESP(NORMAL)
| CONTINUE
| WHEN OTHER
| MOVE 'ERROR CICS WRITEQ ' TO ABC-REFERENCIA
| MOVE W-GTS TO ABC-OBJETO-ERROR
| PERFORM 999999-ERROR-CICS
| END-EVALUATE.
P53757*
*-----------------------*
211000-PREPARA-PANTALLA.
*-----------------------*
INSPECT XPCA-CAUTOGE REPLACING ALL '_' BY SPACES.
INSPECT XPCA-CAUTOGE REPLACING ALL LOW-VALUES BY SPACES.
IF XPCA-CAUTOGE NOT EQUAL SPACES
PERFORM 211100-DATOS-CAUTOGE
PERFORM 211200-CARGA-PANTALLA
PERFORM 211300-DESCRIBE-CLAVE
ELSE
PERFORM 211200-CARGA-PANTALLA
PERFORM 222100-VALIDA-CLAVE
END-IF.
PERFORM 211400-VALIDA-FREFERE.
*--------------------*
211100-DATOS-CAUTOGE.
*--------------------*
PERFORM 211110-ACCESA-XCDTY17-DATOS.
IF SW-EXISTE EQUAL 'SI'
MOVE TY17-XC-YDIFERI TO XPCA-YDIFERI
MOVE TY17-XC-YPUNTUA TO XPCA-YPUNTUA
MOVE TY17-XC-COFIOPE TO XPCA-COFIOPE
MOVE TY17-XC-CCTAOPE TO XPCA-CCTAOPE
MOVE TY17-XC-CPRODUC TO XPCA-CPRODUC
MOVE TY17-XC-CSUBPRD TO XPCA-CSUBPRD
MOVE TY17-XC-CCLILOC TO XPCA-CCLILOC
ELSE
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'NUM. PREFERENCIAL:' TO CAA-VAR1-ERROR
MOVE TY17-XC-CAUTOGE TO CAA-VAR2-ERROR
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------------*
211110-ACCESA-XCDTY17-DATOS.
*---------------------------*
MOVE XPCA-CAUTOGE TO TY17-XC-CAUTOGE.
MOVE CAA-ENTIDAD TO TY17-XC-CENTIDA.
EXEC SQL
SELECT
TY17_XC_CPRODUC,
TY17_XC_CSUBPRD,
TY17_XC_CCLILOC,
TY17_XC_CFASE ,
TY17_XC_COFIOPE,
TY17_XC_CCTAOPE,
TY17_XC_YDIFERI,
TY17_XC_YPUNTUA,
TY17_XC_CENTALT,
TY17_XC_COFIALT,
TY17_XC_CTERALT,
TY17_XC_CUSUALT,
TY17_XC_FTSTALT,
TY17_XC_CENTUMO,
TY17_XC_COFIUMO,
TY17_XC_CTERUMO,
TY17_XC_CUSUUMO,
TY17_XC_FTSTUMO
INTO
:TY17-XC-CPRODUC,
:TY17-XC-CSUBPRD,
:TY17-XC-CCLILOC,
:TY17-XC-CFASE ,
:TY17-XC-COFIOPE,
:TY17-XC-CCTAOPE,
:TY17-XC-YDIFERI,
:TY17-XC-YPUNTUA,
:TY17-XC-CENTALT,
:TY17-XC-COFIALT,
:TY17-XC-CTERALT,
:TY17-XC-CUSUALT,
:TY17-XC-FTSTALT,
:TY17-XC-CENTUMO,
:TY17-XC-COFIUMO,
:TY17-XC-CTERUMO,
:TY17-XC-CUSUUMO,
:TY17-XC-FTSTUMO
FROM XCDTY17
WHERE TY17_XC_CAUTOGE =: TY17-XC-CAUTOGE AND
TY17_XC_CENTIDA =: TY17-XC-CENTIDA
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'SI' TO SW-EXISTE
WHEN +100
MOVE 'NO' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY17' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'ACCESA-XCDTY17-DATOS'
TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*---------------------*
211200-CARGA-PANTALLA.
*---------------------*
PERFORM 211210-VALIDA-YDIFERI.
PERFORM 211220-VALIDA-YPUNTUA.
MOVE XPCA-CAUTOGE TO Y64-CAUTOGE.
MOVE XPCA-COFIOPE TO Y64-COFIOPE.
MOVE XPCA-CCTAOPE TO Y64-CCTAOPE.
MOVE XPCA-CPRODUC TO Y64-CPRODUC.
MOVE XPCA-CSUBPRD TO Y64-CSUBPRD.
MOVE XPCA-CCLILOC TO Y64-CCLILOC.
MOVE XPCA-FREFERE TO Y64-FREFERE.
PERFORM 219000-LOW-POR-RAYAS-BLANCOS.
*---------------------*
211210-VALIDA-YDIFERI.
*---------------------*
EVALUATE XPCA-YDIFERI
WHEN SPACES
MOVE 'XCE0006' TO CAA-COD-ERROR
MOVE 'IND. DIFERIDO' TO CAA-VAR1-ERROR
PERFORM 300000-FIN-PROGRAMA
WHEN 'S'
MOVE 'DIFERIDOS' TO Y64-DDIFERI
MOVE CT-DTODCON-S TO Y64-DTODCON
WHEN 'N'
MOVE SPACES TO Y64-DDIFERI
MOVE CT-DTODCON-SN TO Y64-DTODCON
WHEN OTHER
MOVE 'XCE0016' TO CAA-COD-ERROR
MOVE 'IND. DIFERIDO:' TO CAA-VAR1-ERROR
MOVE XPCA-YDIFERI TO CAA-VAR2-ERROR
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE.
*---------------------*
211220-VALIDA-YPUNTUA.
*---------------------*
EVALUATE XPCA-YPUNTUA
WHEN SPACES
MOVE 'XCE0006' TO CAA-COD-ERROR
MOVE 'IND. PUNTUAL' TO CAA-VAR1-ERROR
PERFORM 300000-FIN-PROGRAMA
WHEN 'S'
MOVE 'POR OPERACION' TO Y64-DPUNTUA
MOVE ' OPERACION :' TO Y64-OPERACI
MOVE CAA-ENTIDAD TO Y64-CENTIDA
MOVE ATRI-PRO-FST TO Y64-CENTIDAA
MOVE ATRI-NOP-BRI-FST TO Y64-COFIOPEA
MOVE ATRI-NOP-BRI-FST TO Y64-CCTAOPEA
MOVE ATRI-PRO-BRI-FST TO Y64-CPRODUCA
MOVE ATRI-PRO-BRI-FST TO Y64-CSUBPRDA
MOVE ATRI-PRO-BRI-FST TO Y64-CCLILOCA
MOVE XPCA-COFIOPE TO W-COFIOPE
MOVE XPCA-CCTAOPE TO W-CCTAOPE
PERFORM 211221-VERIFICA-STAND-BY
WHEN 'N'
MOVE 'POR CLIENTE' TO Y64-DPUNTUA
MOVE SPACES TO Y64-OPERACI
MOVE SPACES TO Y64-CENTIDA
MOVE ATRI-PRO-FST TO Y64-CENTIDAA
MOVE ATRI-PRO-BRI-FST TO Y64-COFIOPEA
MOVE ATRI-PRO-BRI-FST TO Y64-CCTAOPEA
MOVE ATRI-NOP-BRI-FST TO Y64-CPRODUCA
MOVE ATRI-NOP-BRI-FST TO Y64-CSUBPRDA
MOVE ATRI-NOP-BRI-FST TO Y64-CCLILOCA
MOVE CT-DTIPPRE-POR-CLI TO Y64-DTIPPRE
WHEN OTHER
MOVE 'XCE0016' TO CAA-COD-ERROR
MOVE 'IND. PUNTUAL:' TO CAA-VAR1-ERROR
MOVE XPCA-YPUNTUA TO CAA-VAR2-ERROR
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE.
*------------------------*
211221-VERIFICA-STAND-BY.
*------------------------*
IF W-CCTAOPE(3:1) = '1' OR '5' OR '6'
MOVE CT-DTIPPRE-CDI-FIN TO Y64-DTIPPRE
161003*@003-I
IF W-CCTAOPE(3:1) = '5' OR '6'
MOVE CT-DTIPPRE-FLAT-FIN TO Y64-DTIPPR1
ELSE
CONTINUE
END-IF
161003*@003-F
ELSE
MOVE CT-DTIPPRE-NO-CDI-FIN TO Y64-DTIPPRE
END-IF.
INITIALIZE XCWCYT60.
MOVE CAA-ENTIDAD TO WTY6-XCYCENTOPE.
MOVE W-COFIOPE TO WTY6-XCYCOFIOPE.
MOVE W-CCTAOPE TO WTY6-XCYCCTAOPE.
PERFORM 211221-ACCESA-XC7CYT60.
IF SW-EXISTE = 'SI' AND
WTY6-XCYCDISTB EQUAL 'S'
MOVE CT-DTIPPRE-CDI-SBY TO Y64-DTIPPRE
END-IF.
*----------------------*
211221-ACCESA-XC7CYT60.
*----------------------*
EXEC CICS 11550054
LINK PROGRAM ('XC7CYT60') 11560054
COMMAREA (XCWCYT60) 11570054
END-EXEC. 11580054
IF EIBRESP NOT EQUAL DFHRESP(NORMAL)
MOVE 'ERROR CICS XC7CYT60' TO ABC-REFERENCIA
MOVE 'XC7CYT60' TO ABC-OBJETO-ERROR
PERFORM 999999-ERROR-CICS
END-IF.
EVALUATE WTY6-RETORNO 11590054
WHEN '00' 11600054
MOVE 'SI' TO SW-EXISTE 11610054
WHEN '20' 11600054
WHEN '11' 11600054
WHEN '12' 11600054
MOVE 'NO' TO SW-EXISTE 11610054
WHEN '99'
MOVE 'ACCESA-XC7CYT60' TO W-REFERENCIA
MOVE 'XC7CYT60' TO W-PROGRAMA
MOVE WTY6-TABLENAME TO W-TABLA
MOVE WTY6-SQLCODE TO W-SQLCODE
MOVE WTY6-SQLERRM-DATA TO W-SQLERRM
PERFORM 999999-ERROR-DB2
WHEN OTHER
MOVE 'XCE0020' TO CAA-COD-ERROR
MOVE WTY6-RETORNO TO CAA-VAR1-ERROR
MOVE 'XC7CYT60' TO CAA-VAR2-ERROR
MOVE CAA-CODTRAN TO CAA-VAR2-ERROR(16:4)
PERFORM 999999-LOG-ERR-XC7CYT60
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE. 11700054
*-------------------*
212000-PREPARA-ALTA.
*-------------------*
IF XPCA-CAUTOGE NOT EQUAL SPACES
MOVE 'XCE0014' TO CAA-COD-ERROR
MOVE 'NUM. PREF.: ' TO CAA-VAR1-ERROR
MOVE XPCA-CAUTOGE TO CAA-VAR1-ERROR(13:08)
MOVE ', CLAVE INFORMADA' TO CAA-VAR2-ERROR
PERFORM 300000-FIN-PROGRAMA
END-IF.
PERFORM 224310-BUSCA-TIMESTAMP.
MOVE W-FHOY-AAAA-MM-DD TO W-FECHA-AAAA-MM-DD.
MOVE W-FRAMD-DD TO W-FECHA-DD.
MOVE W-FRAMD-MM TO W-FECHA-MM.
MOVE W-FRAMD-AAAA TO W-FECHA-AAAA.
MOVE W-FECHA-DDMMAAAA TO Y64-FDESDE.
MOVE '31129999' TO Y64-FHASTA.
IF XPCA-YDIFERI EQUAL 'S'
MOVE 'S' TO Y64-YTODCON
ELSE
MOVE 'N' TO Y64-YTODCON
END-IF.
MOVE 'N' TO Y64-CTIPPRE.
MOVE 'S' TO Y64-YACTIVA.
*---------------------*
211300-DESCRIBE-CLAVE.
*---------------------*
PERFORM 211310-DESCRIBE-CPRODUC.
PERFORM 211320-DESCRIBE-CSUBPRD.
PERFORM 211330-DESCRIBE-CCLILOC.
*-----------------------*
211310-DESCRIBE-CPRODUC.
*-----------------------*
INITIALIZE TCWC0000.
MOVE '0111' TO W000-CDTABLA.
MOVE XPCA-CPRODUC TO W000-CLAVTG.
PERFORM 222141-ACCESA-TC2C1000.
IF SW-EXISTE = 'SI'
MOVE W000-CONTOCUR TO T111-DATOS
MOVE T111-TCNPROD TO Y64-DPRODUC
ELSE
MOVE '**NO EXISTE**' TO Y64-DPRODUC
END-IF.
*-----------------------*
211320-DESCRIBE-CSUBPRD.
*-----------------------*
INITIALIZE TCWC0000.
MOVE WQPA-CTCSPRD TO W000-CDTABLA.
MOVE XPCA-CPRODUC TO W000-CLAVTG(1:2).
MOVE XPCA-CSUBPRD TO W000-CLAVTG(3:4).
PERFORM 222141-ACCESA-TC2C1000.
IF SW-EXISTE = 'SI'
MOVE W000-CONTOCUR(4:40) TO Y64-DSUBPRD
ELSE
MOVE '**NO EXISTE**' TO Y64-DSUBPRD
END-IF.
*-----------------------*
211330-DESCRIBE-CCLILOC.
*-----------------------*
INITIALIZE PEWC5200.
MOVE XPCA-CCLILOC TO W520-NUMCLIEN.
PERFORM 222161-ACCESA-PE2C5200.
IF SW-EXISTE = 'NO'
MOVE '**NO EXISTE**' TO Y64-DCLILOC
ELSE
PERFORM 222162-FORMATEAR-NOMBRE
MOVE WS-NOM-62 TO Y64-DCLILOC 0362
IF XPCA-YPUNTUA EQUAL 'S'
INITIALIZE PEWC5000
MOVE CAA-ENTIDAD TO W500-PECENTID
MOVE XPCA-COFIOPE TO W500-OFIAPE
MOVE XPCA-CCTAOPE(1:2) TO W500-CODISER
MOVE XPCA-CCTAOPE(3:8) TO W500-NUMECTA
PERFORM 222133-ACCESA-PE2C5000
IF SW-EXISTE EQUAL 'NO' OR
W500-NUMCLIEN(1) NOT EQUAL XPCA-CCLILOC
MOVE '**NO TITULAR**' TO Y64-DCLILOC
END-IF
END-IF
END-IF.
*---------------------*
211400-VALIDA-FREFERE.
*---------------------*
MOVE XPCA-FREFERE TO W-FREFERE.
INSPECT W-FREFERE REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-FREFERE REPLACING ALL '_' BY SPACES.
IF W-FREFERE EQUAL SPACES
MOVE '31129999' TO XPCA-FREFERE
Y64-FREFERE
END-IF.
IF XPCA-FREFERE NOT EQUAL '31129999'
MOVE 'XCE0005' TO CAA-COD-ERROR
MOVE 'F. REFER.' TO CAA-VAR1-ERROR
MOVE XPCA-FREFERE TO CAA-VAR1-ERROR(11:8)
MOVE '31129999' TO CAA-VAR2-ERROR
MOVE -1 TO Y64-FREFEREL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*-----------------------------*
219000-LOW-POR-RAYAS-BLANCOS.
*-----------------------------*
IF XPCA-YPUNTUA EQUAL 'S'
INSPECT Y64-COFIOPE REPLACING ALL LOW-VALUES BY '_'
INSPECT Y64-COFIOPE REPLACING ALL SPACES BY '_'
INSPECT Y64-CCTAOPE REPLACING ALL LOW-VALUES BY '_'
INSPECT Y64-CCTAOPE REPLACING ALL SPACES BY '_'
END-IF.
INSPECT Y64-CPRODUC REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y64-CPRODUC REPLACING ALL SPACES BY '_'.
INSPECT Y64-DPRODUC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y64-CSUBPRD REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y64-CSUBPRD REPLACING ALL SPACES BY '_'.
INSPECT Y64-DSUBPRD REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y64-CCLILOC REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y64-CCLILOC REPLACING ALL SPACES BY '_'.
INSPECT Y64-DCLILOC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y64-CAUTOGE REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y64-CAUTOGE REPLACING ALL SPACES BY '_'.
INSPECT Y64-FREFERE REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y64-FREFERE REPLACING ALL SPACES BY '_'.
INSPECT Y64-FDESDE REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y64-FHASTA REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y64-YTODCON REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y64-YTODCON REPLACING ALL SPACES BY '_'.
INSPECT Y64-CTIPPRE REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y64-CTIPPRE REPLACING ALL SPACES BY '_'.
INSPECT Y64-YACTIVA REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y64-YACTIVA REPLACING ALL SPACES BY '_'.
INSPECT Y64-DOBSERV REPLACING ALL LOW-VALUES BY SPACES.
*
******************************************************************
* *
* 220000-ESTADO-CONTINUACION *
* *
******************************************************************
220000-ESTADO-CONTINUACION.
*
PERFORM 219000-LOW-POR-RAYAS-BLANCOS.
PERFORM 221000-COMPARA-CLAVE.
MOVE CAA-TECLA TO SW-TECLA.
EVALUATE TRUE
WHEN PFENTER PERFORM 222000-CONSULTA-VALIDACION
WHEN PF2 PERFORM 223000-MODIFICACION
WHEN PF3 PERFORM 224000-ALTA
WHEN PF4 PERFORM 225000-LIMPIA
WHEN PF6 PERFORM 226000-BAJA
WHEN PF10 PERFORM 227000-DETALLE
WHEN SPF10 PERFORM 229000-AUDITORIA
WHEN OTHER MOVE 'XCE0001' TO CAA-COD-ERROR
END-EVALUATE.
MOVE -1 TO Y64-CAUTOGEL.
*
*---------------------*
221000-COMPARA-CLAVE.
*---------------------*
MOVE Y64-COFIOPE TO W-COFIOPE.
MOVE Y64-CCTAOPE TO W-CCTAOPE.
MOVE Y64-CPRODUC TO W-CPRODUC.
MOVE Y64-CSUBPRD TO W-CSUBPRD.
MOVE Y64-CCLILOC TO W-CCLILOC.
INSPECT W-CPRODUC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-CSUBPRD REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-CCLILOC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-COFIOPE REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-CCTAOPE REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-CPRODUC REPLACING ALL '_' BY SPACES.
INSPECT W-CSUBPRD REPLACING ALL '_' BY SPACES.
INSPECT W-CCLILOC REPLACING ALL '_' BY SPACES.
INSPECT W-COFIOPE REPLACING ALL '_' BY SPACES.
INSPECT W-CCTAOPE REPLACING ALL '_' BY SPACES.
IF W-CPRODUC EQUAL XPCA-CPRODUC AND
W-CSUBPRD EQUAL XPCA-CSUBPRD AND
W-CCLILOC EQUAL XPCA-CCLILOC AND
W-COFIOPE EQUAL XPCA-COFIOPE AND
W-CCTAOPE EQUAL XPCA-CCTAOPE
MOVE 'NO' TO SW-CAMBIO-CLAVE
ELSE
MOVE 'SI' TO SW-CAMBIO-CLAVE
END-IF.
******************************************************************
* *
* 222000-CONSULTA-VALIDACION *
* *
******************************************************************
222000-CONSULTA-VALIDACION.
*
IF SW-CAMBIO-CLAVE = 'SI'
PERFORM 222100-VALIDA-CLAVE
PERFORM 222200-CONSULTA-DATOS
PERFORM 222300-VALIDA-DATOS
ELSE
PERFORM 222300-VALIDA-DATOS
PERFORM 222400-MENSAJE-VALIDACION
END-IF.
*-------------------*
222100-VALIDA-CLAVE.
*-------------------*
PERFORM 222110-DESCARGA-COMMAREA.
PERFORM 222120-BORRA-DESCRIPCIONES.
PERFORM 222130-VALIDA-OPERACION.
PERFORM 222140-VALIDA-CPRODUC.
PERFORM 222150-VALIDA-CSUBPRD.
PERFORM 222160-VALIDA-CCLILOC.
PERFORM 222170-BUSCA-CAUTOGE.
PERFORM 222190-CARGA-COMMAREA.
*------------------------*
222110-DESCARGA-COMMAREA.
*------------------------*
MOVE LOW-VALUES TO XPCA-CAUTOGE.
MOVE LOW-VALUES TO XPCA-COFIOPE.
MOVE LOW-VALUES TO XPCA-CCTAOPE.
MOVE LOW-VALUES TO XPCA-CPRODUC.
MOVE LOW-VALUES TO XPCA-CSUBPRD.
MOVE LOW-VALUES TO XPCA-CCLILOC.
*--------------------------*
222120-BORRA-DESCRIPCIONES.
*--------------------------*
IF XPCA-YPUNTUA EQUAL 'S'
MOVE SPACES TO Y64-CPRODUC
MOVE SPACES TO Y64-CCLILOC
MOVE SPACES TO Y64-DTIPPRE
161003*@003-I
MOVE SPACES TO Y64-DTIPPR1
161003*@003-F
END-IF.
MOVE '________' TO Y64-CAUTOGE.
MOVE SPACES TO Y64-DPRODUC.
MOVE SPACES TO Y64-DSUBPRD.
MOVE SPACES TO Y64-DCLILOC.
*-----------------------*
222130-VALIDA-OPERACION.
*-----------------------*
IF XPCA-YPUNTUA EQUAL 'S'
PERFORM 222131-VALIDA-COFIOPE
PERFORM 222132-VALIDA-CCTAOPE
PERFORM 222133-BUSCA-CCLILOC
PERFORM 222134-CARGA-PROD-SUBP
PERFORM 211221-VERIFICA-STAND-BY
ELSE
MOVE SPACES TO Y64-COFIOPE
MOVE SPACES TO Y64-CCTAOPE
MOVE SPACES TO W-COFIOPE
MOVE SPACES TO W-CCTAOPE
MOVE CT-DTIPPRE-POR-CLI TO Y64-DTIPPRE
END-IF.
*---------------------*
222131-VALIDA-COFIOPE.
*---------------------*
MOVE Y64-COFIOPE TO W-COFIOPE.
INSPECT W-COFIOPE REPLACING ALL '_' BY SPACES.
INSPECT W-COFIOPE REPLACING ALL LOW-VALUES BY SPACES.
IF W-COFIOPE EQUAL SPACES
MOVE 'XCE0006' TO CAA-COD-ERROR
MOVE 'OFICINA OPERACION' TO CAA-VAR1-ERROR
MOVE -1 TO Y64-COFIOPEL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------*
222132-VALIDA-CCTAOPE.
*---------------------*
MOVE Y64-CCTAOPE TO W-CCTAOPE.
INSPECT W-CCTAOPE REPLACING ALL '_' BY SPACES.
INSPECT W-CCTAOPE REPLACING ALL LOW-VALUES BY SPACES.
IF W-CCTAOPE EQUAL SPACES
MOVE 'XCE0006' TO CAA-COD-ERROR
MOVE 'CUENTA OPERACION' TO CAA-VAR1-ERROR
MOVE -1 TO Y64-CCTAOPEL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*--------------------*
222133-BUSCA-CCLILOC.
*--------------------*
INITIALIZE PEWC5000.
MOVE CAA-ENTIDAD TO W500-PECENTID.
MOVE W-COFIOPE TO W500-OFIAPE.
MOVE W-CCTAOPE(1:2) TO W500-CODISER.
MOVE W-CCTAOPE(3:8) TO W500-NUMECTA.
PERFORM 222133-ACCESA-PE2C5000.
IF SW-EXISTE = 'SI'
MOVE W500-NUMCLIEN(1) TO Y64-CCLILOC
ELSE
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'EL CODIGO OPERACION:' TO CAA-VAR1-ERROR
MOVE CAA-ENTIDAD TO CAA-VAR2-ERROR(01:04)
MOVE W-COFIOPE TO CAA-VAR2-ERROR(06:04)
MOVE W-CCTAOPE TO CAA-VAR2-ERROR(11:10)
MOVE -1 TO Y64-COFIOPEL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*-----------------------*
222133-ACCESA-PE2C5000.
*-----------------------*
MOVE 'P' TO W500-PEYSELEC.
MOVE 'T' TO W500-CLAINTER.
MOVE ZEROS TO W500-SECINTER.
* EXEC CICS
* LINK PROGRAM ('PE2C5000')
* COMMAREA (PEWC5000)
* END-EXEC.
* IF EIBRESP NOT EQUAL DFHRESP(NORMAL)
* MOVE 'ERROR CICS PE2C5000' TO ABC-REFERENCIA
* MOVE 'PE2C5000' TO ABC-OBJETO-ERROR
* PERFORM 999999-ERROR-CICS
* END-IF.
CALL XC6CM240 USING DFHEIBLK PEWC5000.
EVALUATE W500-PECRETOR
WHEN '00' MOVE 'SI' TO SW-EXISTE
WHEN '10' MOVE 'NO' TO SW-EXISTE
WHEN '80' MOVE 'NO' TO SW-EXISTE
WHEN '99'
MOVE 'ACCESA-PE2C5000' TO W-REFERENCIA
MOVE 'PE2C5000' TO W-PROGRAMA
MOVE W500-TABLENAME TO W-TABLA
MOVE W500-SQLCODE TO W-SQLCODE
MOVE W500-SQLERRM TO W-SQLERRM
PERFORM 999999-ERROR-DB2
WHEN OTHER
MOVE 'XCE0020' TO CAA-COD-ERROR
MOVE W500-PECRETOR TO CAA-VAR1-ERROR
MOVE 'PE2C5000' TO CAA-VAR2-ERROR
MOVE CAA-CODTRAN TO CAA-VAR2-ERROR(16:4)
PERFORM 999999-LOG-ERR-PE2C5000
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE.
*----------------------*
222134-CARGA-PROD-SUBP.
*----------------------*
MOVE W-CCTAOPE(1:2) TO Y64-CPRODUC.
*@002-I
* IF Y64-CPRODUC NOT EQUAL '11'
IF Y64-CPRODUC NOT EQUAL WQPA-CPRODUC
*@002-F
MOVE ATRI-NOP-BRI-FST TO Y64-CSUBPRDA
ELSE
MOVE '000' TO Y64-CSUBPRD(1:3)
MOVE W-CCTAOPE(3:1) TO Y64-CSUBPRD(4:1)
MOVE ATRI-PRO-BRI-FST TO Y64-CSUBPRDA
END-IF.
*---------------------*
222140-VALIDA-CPRODUC.
*---------------------*
MOVE Y64-CPRODUC TO W-CPRODUC.
INSPECT W-CPRODUC REPLACING ALL '_' BY SPACES.
INSPECT W-CPRODUC REPLACING ALL LOW-VALUES BY SPACES.
IF W-CPRODUC EQUAL SPACES
MOVE 'XCE0006' TO CAA-COD-ERROR
MOVE 'PRODUCTO' TO CAA-VAR1-ERROR
MOVE -1 TO Y64-CPRODUCL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*
INITIALIZE TCWC0000.
MOVE '0111' TO W000-CDTABLA.
MOVE W-CPRODUC TO W000-CLAVTG.
PERFORM 222141-ACCESA-TC2C1000.
IF SW-EXISTE = 'SI'
MOVE W000-CONTOCUR TO T111-DATOS
MOVE T111-TCNPROD TO Y64-DPRODUC
ELSE
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'EL CODIGO PRODUCTO:' TO CAA-VAR1-ERROR
MOVE W-CPRODUC TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CPRODUCL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*-----------------------*
222141-ACCESA-TC2C1000.
*-----------------------*
MOVE CAA-ENTIDAD TO W000-STBANCO.
MOVE CAA-IDIOMA-TERM TO W000-TCCIDIOM.
MOVE '01' TO W000-NUCLAVE.
* EXEC CICS
* LINK PROGRAM ('TC2C1000')
* COMMAREA (TCWC0000)
* END-EXEC.
* IF EIBRESP NOT EQUAL DFHRESP(NORMAL)
* MOVE 'ERROR CICS TC2C1000' TO ABC-REFERENCIA
* MOVE 'TC2C1000' TO ABC-OBJETO-ERROR
* PERFORM 999999-ERROR-CICS
* END-IF.
CALL XC6CM410 USING DFHEIBLK TCWC0000.
EVALUATE W000-CDRETORN
WHEN '00' MOVE 'SI' TO SW-EXISTE
WHEN '10' MOVE 'NO' TO SW-EXISTE
WHEN '80'
MOVE 'ACCESA-TC2C1000' TO W-REFERENCIA
MOVE 'TC2C1000' TO W-PROGRAMA
MOVE W000-TABLENAME TO W-TABLA
MOVE W000-SQLCODE TO W-SQLCODE
MOVE W000-SQLERRM TO W-SQLERRM
PERFORM 999999-ERROR-DB2
WHEN OTHER
MOVE 'XCE0020' TO CAA-COD-ERROR
MOVE W000-CDRETORN TO CAA-VAR1-ERROR
MOVE 'TC2C1000' TO CAA-VAR2-ERROR
MOVE CAA-CODTRAN TO CAA-VAR2-ERROR(16:4)
PERFORM 999999-LOG-ERR-TC2C1000
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE.
*---------------------*
222150-VALIDA-CSUBPRD.
*---------------------*
MOVE Y64-CSUBPRD TO W-CSUBPRD.
INSPECT W-CSUBPRD REPLACING ALL '_' BY SPACES.
INSPECT W-CSUBPRD REPLACING ALL LOW-VALUES BY SPACES.
INITIALIZE TCWC0000.
MOVE WQPA-CTCSPRD TO W000-CDTABLA.
MOVE W-CPRODUC TO W000-CLAVTG(1:2).
MOVE W-CSUBPRD TO W000-CLAVTG(3:4).
PERFORM 222141-ACCESA-TC2C1000.
IF SW-EXISTE = 'SI'
MOVE W000-CONTOCUR(4:40) TO Y64-DSUBPRD
ELSE
IF W-CSUBPRD EQUAL SPACES
MOVE 'XCE0006' TO CAA-COD-ERROR
MOVE 'SUBPRODUCTO' TO CAA-VAR1-ERROR
MOVE -1 TO Y64-CSUBPRDL
PERFORM 300000-FIN-PROGRAMA
END-IF
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'PRODUCTO:' TO CAA-VAR1-ERROR
MOVE W-CPRODUC TO CAA-VAR1-ERROR(11:2)
MOVE 'SUBPRODUCTO:' TO CAA-VAR2-ERROR
MOVE W-CSUBPRD TO CAA-VAR2-ERROR(14:4)
MOVE -1 TO Y64-CSUBPRDL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------*
222160-VALIDA-CCLILOC.
*---------------------*
MOVE Y64-CCLILOC TO W-CCLILOC.
INSPECT W-CCLILOC REPLACING ALL '_' BY SPACES.
INSPECT W-CCLILOC REPLACING ALL LOW-VALUES BY SPACES.
IF W-CCLILOC EQUAL SPACES
MOVE 'XCE0006' TO CAA-COD-ERROR
MOVE 'CLIENTE' TO CAA-VAR1-ERROR
MOVE -1 TO Y64-CCLILOCL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*
INITIALIZE PEWC5200.
MOVE W-CCLILOC TO W520-NUMCLIEN.
PERFORM 222161-ACCESA-PE2C5200.
IF SW-EXISTE = 'SI'
PERFORM 222162-FORMATEAR-NOMBRE
MOVE WS-NOM-62 TO Y64-DCLILOC 03620000
ELSE
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'EL CODIGO CLIENTE:' TO CAA-VAR1-ERROR
MOVE W-CCLILOC TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CCLILOCL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*-----------------------*
222161-ACCESA-PE2C5200.
*-----------------------*
* EXEC CICS 02730002
* LINK PROGRAM ('PE2C5200') 02750002
* COMMAREA (PEWC5200) 02760002
* NOHANDLE 02770002
* END-EXEC. 02780002
* IF EIBRESP NOT EQUAL DFHRESP(NORMAL) 02790002
* MOVE 'ERROR CICS PE2C5200' TO ABC-REFERENCIA 02800001
* MOVE 'PE2C5200' TO ABC-OBJETO-ERROR 02810001
* PERFORM 999999-ERROR-CICS 02820001
* END-IF. 02830002
CALL XC6CM230 USING DFHEIBLK PEWC5200 02840039
EVALUATE W520-PECRETOR 02860002
WHEN '00' 02870002
WHEN '20' 02880002
MOVE 'SI' TO SW-EXISTE 02890002
WHEN '10' 02900002
MOVE 'NO' TO SW-EXISTE 02910002
WHEN '99' 02920002
MOVE 'ACCESA-PE2C5200' TO W-REFERENCIA 02930039
MOVE 'PE2C5200' TO W-PROGRAMA 02940039
MOVE W520-TABLENAME TO W-TABLA 02950039
MOVE W520-SQLCODE TO W-SQLCODE 02960039
MOVE W520-SQLERRM TO W-SQLERRM 02970001
PERFORM 999999-ERROR-DB2 02980039
WHEN OTHER 02990002
MOVE 'XCE0020' TO CAA-COD-ERROR 03000039
MOVE W520-PECRETOR TO CAA-VAR1-ERROR 03010039
MOVE 'PE2C5200' TO CAA-VAR2-ERROR 03020039
MOVE CAA-CODTRAN TO CAA-VAR2-ERROR(16:4) 03030001
PERFORM 999999-LOG-ERR-PE2C5200 03040001
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE. 03050002
*-----------------------* 03060000
222162-FORMATEAR-NOMBRE. 03070000
*-----------------------* 03080000
MOVE SPACES TO WS-NOM-62. 03090000
MOVE 1 TO WS-PUNTERO. 03100000
MOVE W520-NOMBRE TO WS-NOMBRE. 03110000
MOVE W520-PRIAPE TO WS-PRIAPE. 03120000
MOVE W520-SEGAPE TO WS-SEGAPE. 03130000
* 03140000
IF W520-SUJGRUP = 'F' 03150000
MOVE 'SI' TO SW-PERSONA 03160000
ELSE 03170000
MOVE 'NO' TO SW-PERSONA 03180000
END-IF. 03190000
* 03200000
STRING WS-NOMBRE DELIMITED BY ' ' 03210000
INTO WS-NOM-62 03220000
WITH POINTER WS-PUNTERO 03230000
END-STRING. 03240000
* 03250000
IF SW-PERSONA = 'SI' 03260000
IF WS-PRIAPE NOT = SPACES AND 03270000
WS-PRIAPE NOT = LOW-VALUES 03280000
STRING ' ' WS-PRIAPE DELIMITED BY ' ' 03290000
INTO WS-NOM-62 03300000
WITH POINTER WS-PUNTERO 03310000
END-STRING 03320000
END-IF 03330000
ELSE 03340000
IF WS-PRIAPE NOT = SPACES AND 03350000
WS-PRIAPE NOT = LOW-VALUES 03360000
STRING WS-PRIAPE DELIMITED BY ' ' 03370000
INTO WS-NOM-62 03380000
WITH POINTER WS-PUNTERO 03390000
END-STRING 03400000
END-IF 03410000
END-IF. 03420000
* 03430000
IF SW-PERSONA = 'SI' 03440000
IF WS-SEGAPE NOT = SPACES AND 03450000
WS-SEGAPE NOT = LOW-VALUES 03460000
STRING ' ' WS-SEGAPE DELIMITED BY ' ' 03470000
INTO WS-NOM-62 03480000
WITH POINTER WS-PUNTERO 03490000
END-STRING 03500000
END-IF 03510000
ELSE 03520000
IF WS-SEGAPE NOT = SPACES AND 03530000
WS-SEGAPE NOT = LOW-VALUES 03540000
STRING WS-SEGAPE DELIMITED BY ' ' 03550000
INTO WS-NOM-62 03560000
WITH POINTER WS-PUNTERO 03570000
END-STRING 03580000
END-IF 03590000
END-IF. 03600000
* 03610000
*---------------------*
222170-BUSCA-CAUTOGE.
*---------------------*
PERFORM 222171-ACCESA-XCDTY17-CAUTOGE.
IF SW-EXISTE EQUAL 'SI'
MOVE TY17-XC-CAUTOGE TO Y64-CAUTOGE
ELSE
MOVE '________' TO Y64-CAUTOGE
END-IF.
*-----------------------------*
222171-ACCESA-XCDTY17-CAUTOGE.
*-----------------------------*
MOVE CAA-ENTIDAD TO TY17-XC-CENTIDA.
MOVE W-CPRODUC TO TY17-XC-CPRODUC.
MOVE W-CSUBPRD TO TY17-XC-CSUBPRD.
MOVE W-CCLILOC TO TY17-XC-CCLILOC.
MOVE '0001' TO TY17-XC-CFASE.
MOVE W-COFIOPE TO TY17-XC-COFIOPE.
MOVE W-CCTAOPE TO TY17-XC-CCTAOPE.
MOVE XPCA-YDIFERI TO TY17-XC-YDIFERI.
MOVE XPCA-YPUNTUA TO TY17-XC-YPUNTUA.
EXEC SQL
SELECT
TY17_XC_CAUTOGE
INTO
:TY17-XC-CAUTOGE
FROM XCDTY17
WHERE TY17_XC_CENTIDA =: TY17-XC-CENTIDA AND
TY17_XC_CPRODUC =: TY17-XC-CPRODUC AND
TY17_XC_CSUBPRD =: TY17-XC-CSUBPRD AND
TY17_XC_CCLILOC =: TY17-XC-CCLILOC AND
TY17_XC_CFASE =: TY17-XC-CFASE AND
TY17_XC_COFIOPE =: TY17-XC-COFIOPE AND
TY17_XC_CCTAOPE =: TY17-XC-CCTAOPE AND
TY17_XC_YDIFERI =: TY17-XC-YDIFERI AND
TY17_XC_YPUNTUA =: TY17-XC-YPUNTUA
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'SI' TO SW-EXISTE
WHEN +100
MOVE 'NO' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY17' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'ACCESA-XCDTY17-CAUTOGE'
TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*---------------------*
222190-CARGA-COMMAREA.
*---------------------*
MOVE Y64-CAUTOGE TO W-CAUTOGE.
MOVE Y64-COFIOPE TO W-COFIOPE.
MOVE Y64-CCTAOPE TO W-CCTAOPE.
MOVE Y64-CPRODUC TO W-CPRODUC.
MOVE Y64-CSUBPRD TO W-CSUBPRD.
MOVE Y64-CCLILOC TO W-CCLILOC.
INSPECT W-CAUTOGE REPLACING ALL '_' BY SPACES.
INSPECT W-COFIOPE REPLACING ALL '_' BY SPACES.
INSPECT W-CCTAOPE REPLACING ALL '_' BY SPACES.
INSPECT W-CPRODUC REPLACING ALL '_' BY SPACES.
INSPECT W-CSUBPRD REPLACING ALL '_' BY SPACES.
INSPECT W-CCLILOC REPLACING ALL '_' BY SPACES.
MOVE W-CAUTOGE TO XPCA-CAUTOGE.
MOVE W-COFIOPE TO XPCA-COFIOPE.
MOVE W-CCTAOPE TO XPCA-CCTAOPE.
MOVE W-CPRODUC TO XPCA-CPRODUC.
MOVE W-CSUBPRD TO XPCA-CSUBPRD.
MOVE W-CCLILOC TO XPCA-CCLILOC.
*---------------------*
222200-CONSULTA-DATOS.
*---------------------*
MOVE Y64-CAUTOGE TO W-CAUTOGE.
INSPECT W-CAUTOGE REPLACING ALL '_' BY SPACES.
INSPECT W-CAUTOGE REPLACING ALL LOW-VALUES BY SPACES.
IF W-CAUTOGE EQUAL SPACES
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'NUM. PREFERENCIAL' TO CAA-VAR1-ERROR
MOVE 'PARA CLAVE INFORMADA' TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
MOVE ATRI-NOP-FST TO Y64-FDESDEA
PERFORM 300000-FIN-PROGRAMA
END-IF.
PERFORM 222210-CARGA-CLAVE-XCDTY14.
PERFORM 222220-ACCESA-XCDTY14.
IF SW-EXISTE = 'SI'
MOVE TY14-XC-FDESDE TO W-FECHA-AAAA-MM-DD
MOVE W-FRAMD-DD TO W-FECHA-DD
MOVE W-FRAMD-MM TO W-FECHA-MM
MOVE W-FRAMD-AAAA TO W-FECHA-AAAA
MOVE W-FECHA-DDMMAAAA TO Y64-FDESDE
PERFORM 224310-BUSCA-TIMESTAMP
IF TY14-XC-FDESDE >= W-FHOY-AAAA-MM-DD
MOVE ATRI-PRO-BRI-FST TO Y64-FDESDEA
ELSE
MOVE ATRI-NOP-FST TO Y64-FDESDEA
END-IF
MOVE TY14-XC-FHASTA TO W-FECHA-AAAA-MM-DD
MOVE W-FRAMD-DD TO W-FECHA-DD
MOVE W-FRAMD-MM TO W-FECHA-MM
MOVE W-FRAMD-AAAA TO W-FECHA-AAAA
MOVE W-FECHA-DDMMAAAA TO Y64-FHASTA
MOVE TY14-XC-YTODCON TO Y64-YTODCON
MOVE TY14-XC-DOBSERV TO Y64-DOBSERV
MOVE TY14-XC-CTIPPRE TO Y64-CTIPPRE
MOVE TY14-XC-YACTIVA TO Y64-YACTIVA
MOVE 'XCA0001' TO CAA-COD-AVISO2
MOVE 'CONSULTA' TO CAA-VAR1-AVISO2
ELSE
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'RELACION NUM. PREFER.' TO CAA-VAR1-ERROR
MOVE '- F. REFERENCIA,' TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
MOVE ATRI-NOP-FST TO Y64-FDESDEA
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------------*
222210-CARGA-CLAVE-XCDTY14.
*---------------------------*
MOVE Y64-CAUTOGE TO W-CAUTOGE.
MOVE Y64-FREFERE TO W-FREFERE.
INSPECT W-CAUTOGE REPLACING ALL '_' BY SPACES.
MOVE W-CAUTOGE TO TY14-XC-CAUTOGE.
MOVE W-FREFERE TO W-FECHA-DDMMAAAA.
MOVE W-FECHA-AAAA TO W-FRAMD-AAAA.
MOVE '-' TO W-FRAMD-RAYA1.
MOVE W-FECHA-MM TO W-FRAMD-MM.
MOVE '-' TO W-FRAMD-RAYA2.
MOVE W-FECHA-DD TO W-FRAMD-DD.
MOVE W-FECHA-AAAA-MM-DD TO TY14-XC-FREFERE.
*----------------------*
222220-ACCESA-XCDTY14.
*----------------------*
EXEC SQL
SELECT
TY14_XC_FDESDE ,
TY14_XC_FHASTA ,
TY14_XC_YTODCON,
TY14_XC_DOBSERV,
TY14_XC_CTIPPRE,
TY14_XC_YACTIVA,
TY14_XC_YDENLIN,
TY14_XC_IMTOLIN,
TY14_XC_FINILIN,
TY14_XC_FFINLIN,
TY14_XC_IOPELIN,
TY14_XC_IUTILIN,
TY14_XC_CENTALT,
TY14_XC_COFIALT,
TY14_XC_CTERALT,
TY14_XC_CUSUALT,
TY14_XC_FTSTALT,
TY14_XC_CENTUMO,
TY14_XC_COFIUMO,
TY14_XC_CTERUMO,
TY14_XC_CUSUUMO,
TY14_XC_FTSTUMO
INTO
:TY14-XC-FDESDE ,
:TY14-XC-FHASTA ,
:TY14-XC-YTODCON,
:TY14-XC-DOBSERV,
:TY14-XC-CTIPPRE,
:TY14-XC-YACTIVA,
:TY14-XC-YDENLIN,
:TY14-XC-IMTOLIN,
:TY14-XC-FINILIN,
:TY14-XC-FFINLIN,
:TY14-XC-IOPELIN,
:TY14-XC-IUTILIN,
:TY14-XC-CENTALT,
:TY14-XC-COFIALT,
:TY14-XC-CTERALT,
:TY14-XC-CUSUALT,
:TY14-XC-FTSTALT,
:TY14-XC-CENTUMO,
:TY14-XC-COFIUMO,
:TY14-XC-CTERUMO,
:TY14-XC-CUSUUMO,
:TY14-XC-FTSTUMO
FROM XCDTY14
WHERE TY14_XC_CAUTOGE =: TY14-XC-CAUTOGE AND
TY14_XC_FREFERE =: TY14-XC-FREFERE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'SI' TO SW-EXISTE
WHEN +100
MOVE 'NO' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY14' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'ACCESA-XCDTY14' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*-------------------*
222300-VALIDA-DATOS.
*-------------------*
PERFORM 222310-VALIDA-FDESDE.
PERFORM 222320-VALIDA-FHASTA.
PERFORM 222330-VALIDA-YTODCON.
PERFORM 222340-VALIDA-CTIPPRE.
PERFORM 222350-VALIDA-YACTIVA.
*--------------------*
222310-VALIDA-FDESDE.
*--------------------*
MOVE Y64-FDESDE TO W-FDESDE.
INSPECT W-FDESDE REPLACING ALL '_' BY SPACES.
INSPECT W-FDESDE REPLACING ALL LOW-VALUES BY SPACES.
IF W-FDESDE EQUAL SPACES
MOVE 'XCA0011' TO CAA-COD-AVISO1
MOVE 'F. INICIO VIGENCIA' TO CAA-VAR1-AVISO1
MOVE -1 TO Y64-FDESDEL
PERFORM 300000-FIN-PROGRAMA
END-IF.
MOVE W-FDESDE TO W-FECHA-DDMMAAAA.
MOVE W-FECHA-AAAA TO W-FRAMD-AAAA.
MOVE '-' TO W-FRAMD-RAYA1.
MOVE W-FECHA-MM TO W-FRAMD-MM.
MOVE '-' TO W-FRAMD-RAYA2.
MOVE W-FECHA-DD TO W-FRAMD-DD.
MOVE W-FECHA-AAAA-MM-DD TO W-FDESDE-AAAA-MM-DD.
PERFORM 224310-BUSCA-TIMESTAMP.
MOVE W-FHOY-AAAA-MM-DD TO W-FECHA-AAAA-MM-DD.
MOVE W-FRAMD-DD TO W-FECHA-DD.
MOVE W-FRAMD-MM TO W-FECHA-MM.
MOVE W-FRAMD-AAAA TO W-FECHA-AAAA.
MOVE W-FECHA-DDMMAAAA TO W-FHOY-DDMMAAAA.
IF (W-FDESDE-AAAA-MM-DD < W-FHOY-AAAA-MM-DD) AND
(SW-TECLA NOT EQUAL SPACES)
MOVE 'XCE0032' TO CAA-COD-ERROR
MOVE 'INI. VIG. ' TO CAA-VAR1-ERROR
MOVE W-FDESDE TO CAA-VAR1-ERROR(11:08)
MOVE 'H. ' TO CAA-VAR2-ERROR
MOVE W-FHOY-DDMMAAAA TO CAA-VAR2-ERROR(04:08)
MOVE -1 TO Y64-FDESDEL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*--------------------*
222320-VALIDA-FHASTA.
*--------------------*
MOVE Y64-FHASTA TO W-FHASTA.
INSPECT W-FHASTA REPLACING ALL '_' BY SPACES.
INSPECT W-FHASTA REPLACING ALL LOW-VALUES BY SPACES.
IF W-FHASTA EQUAL SPACES
MOVE 'XCA0011' TO CAA-COD-AVISO1
MOVE 'F. FIN VIGENCIA' TO CAA-VAR1-AVISO1
MOVE -1 TO Y64-FHASTAL
PERFORM 300000-FIN-PROGRAMA
END-IF.
MOVE W-FHASTA TO W-FECHA-DDMMAAAA.
MOVE W-FECHA-AAAA TO W-FRAMD-AAAA.
MOVE '-' TO W-FRAMD-RAYA1.
MOVE W-FECHA-MM TO W-FRAMD-MM.
MOVE '-' TO W-FRAMD-RAYA2.
MOVE W-FECHA-DD TO W-FRAMD-DD.
MOVE W-FECHA-AAAA-MM-DD TO W-FHASTA-AAAA-MM-DD.
IF W-FHASTA-AAAA-MM-DD < W-FDESDE-AAAA-MM-DD
MOVE 'XCA0021' TO CAA-COD-AVISO1
MOVE 'F FIN VIG:' TO CAA-VAR1-AVISO1
MOVE W-FHASTA TO CAA-VAR1-AVISO1(13:08)
MOVE '< F INI VIG:' TO CAA-VAR2-AVISO1
MOVE W-FDESDE TO CAA-VAR2-AVISO1(13:08)
MOVE -1 TO Y64-FHASTAL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------*
222330-VALIDA-YTODCON.
*---------------------*
MOVE Y64-YTODCON TO W-YTODCON.
INSPECT W-YTODCON REPLACING ALL '_' BY SPACES.
INSPECT W-YTODCON REPLACING ALL LOW-VALUES BY SPACES.
IF W-YTODCON EQUAL SPACES
MOVE 'XCA0011' TO CAA-COD-AVISO1
MOVE 'IND TODO CONCEPTO' TO CAA-VAR1-AVISO1
MOVE -1 TO Y64-YTODCONL
PERFORM 300000-FIN-PROGRAMA
END-IF.
IF (Y64-DTODCON EQUAL CT-DTODCON-SN AND
W-YTODCON NOT EQUAL 'S' AND
W-YTODCON NOT EQUAL 'N') OR
(Y64-DTODCON EQUAL CT-DTODCON-S AND
W-YTODCON NOT EQUAL 'S')
MOVE 'XCA0021' TO CAA-COD-AVISO1
MOVE 'IND. TODO CONCEPTO:' TO CAA-VAR1-AVISO1
MOVE W-YTODCON TO CAA-VAR2-AVISO1
MOVE -1 TO Y64-YTODCONL
PERFORM 300000-FIN-PROGRAMA
END-IF.
IF W-YTODCON NOT EQUAL 'S'
MOVE Y64-CAUTOGE TO TY21-XC-CAUTOGE
MOVE '9999-12-31' TO TY21-XC-FREFERE
PERFORM 231232-ACCESA-XCDTY21
IF SW-EXISTE EQUAL 'SI'
MOVE 'XCA0021' TO CAA-COD-AVISO1
MOVE 'HAY DETALL TODO/CPTO' TO CAA-VAR1-AVISO1
MOVE '; IND.: "' TO CAA-VAR2-AVISO1
MOVE W-YTODCON TO CAA-VAR2-AVISO1(10:1)
MOVE '"' TO CAA-VAR2-AVISO1(11:1)
MOVE -1 TO Y64-YTODCONL
PERFORM 300000-FIN-PROGRAMA
END-IF
END-IF.
IF W-YTODCON NOT EQUAL 'N'
MOVE Y64-CAUTOGE TO TY15-XC-CAUTOGE
MOVE '9999-12-31' TO TY15-XC-FREFERE
PERFORM 231251-ABRIR-CURSOR-Y15
PERFORM 231252-FETCH-CURSOR-Y15
PERFORM 231254-CERRAR-CURSOR-Y15
IF SW-FIN-CURSOR-Y15 NOT EQUAL 'SI'
MOVE 'XCA0021' TO CAA-COD-AVISO1
MOVE 'HAY DETALL CADA/CPTO' TO CAA-VAR1-AVISO1
MOVE '; IND.: "' TO CAA-VAR2-AVISO1
MOVE W-YTODCON TO CAA-VAR2-AVISO1(10:1)
MOVE '"' TO CAA-VAR2-AVISO1(11:1)
MOVE -1 TO Y64-YTODCONL
PERFORM 300000-FIN-PROGRAMA
END-IF
END-IF.
*---------------------*
222340-VALIDA-CTIPPRE.
*---------------------*
MOVE Y64-CTIPPRE TO W-CTIPPRE.
INSPECT W-CTIPPRE REPLACING ALL '_' BY SPACES.
INSPECT W-CTIPPRE REPLACING ALL LOW-VALUES BY SPACES.
IF W-CTIPPRE EQUAL SPACES
MOVE 'XCA0011' TO CAA-COD-AVISO1
MOVE 'TIPO PREFERENCIAL' TO CAA-VAR1-AVISO1
MOVE -1 TO Y64-CTIPPREL
PERFORM 300000-FIN-PROGRAMA
END-IF.
IF (Y64-DTIPPRE EQUAL CT-DTIPPRE-CDI-FIN AND
161003*@003-I
W-CTIPPRE NOT EQUAL 'D' AND
W-CTIPPRE NOT EQUAL 'V' AND
161003*@003-F
W-CTIPPRE NOT EQUAL 'N' AND
W-CTIPPRE NOT EQUAL 'F' AND
W-CTIPPRE NOT EQUAL 'A') OR
(Y64-DTIPPRE EQUAL CT-DTIPPRE-CDI-SBY AND
W-CTIPPRE NOT EQUAL 'N' AND
W-CTIPPRE NOT EQUAL 'G' AND
W-CTIPPRE NOT EQUAL 'B') OR
(Y64-DTIPPRE EQUAL CT-DTIPPRE-NO-CDI-FIN AND
W-CTIPPRE NOT EQUAL 'N') OR
(Y64-DTIPPRE EQUAL CT-DTIPPRE-POR-CLI AND
W-CTIPPRE NOT EQUAL 'N')
MOVE 'XCA0021' TO CAA-COD-AVISO1
MOVE 'TIPO PREFERENCIAL:' TO CAA-VAR1-AVISO1
MOVE W-CTIPPRE TO CAA-VAR2-AVISO1
MOVE -1 TO Y64-CTIPPREL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------*
222350-VALIDA-YACTIVA.
*---------------------*
MOVE Y64-YACTIVA TO W-YACTIVA.
INSPECT W-YACTIVA REPLACING ALL '_' BY SPACES.
INSPECT W-YACTIVA REPLACING ALL LOW-VALUES BY SPACES.
IF W-YACTIVA EQUAL SPACES
MOVE 'XCA0011' TO CAA-COD-AVISO1
MOVE 'IND. ACTIVA' TO CAA-VAR1-AVISO1
MOVE -1 TO Y64-YACTIVAL
PERFORM 300000-FIN-PROGRAMA
END-IF.
IF W-YACTIVA NOT EQUAL 'S' AND
W-YACTIVA NOT EQUAL 'N'
MOVE 'XCA0021' TO CAA-COD-AVISO1
MOVE 'IND. ACTIVA' TO CAA-VAR1-AVISO1
MOVE -1 TO Y64-YACTIVAL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*--------------------------*
222400-MENSAJE-VALIDACION.
*--------------------------*
IF XPCA-CAUTOGE NOT EQUAL SPACES
MOVE 'XCA0007' TO CAA-COD-AVISO1
MOVE 'PARA MODIFICACION' TO CAA-VAR1-AVISO1
ELSE
MOVE 'XCA0007' TO CAA-COD-AVISO1
MOVE 'PARA ALTA' TO CAA-VAR1-AVISO1
END-IF.
*
******************************************************************
* *
* 223000-MODIFICACION *
* *
******************************************************************
223000-MODIFICACION.
*
IF SW-CAMBIO-CLAVE = 'NO'
PERFORM 222300-VALIDA-DATOS
* PERFORM 223100-VIGENTE-A-HISTORICO
PERFORM 223100-VIGENTE-A-HISTORICO-RUT
PERFORM 223200-MODIFICA-XCDTY14
ELSE
MOVE 'XCE0002' TO CAA-COD-ERROR
MOVE 'INTRO' TO CAA-VAR1-ERROR
MOVE 'VALIDAR CLAVE' TO CAA-VAR2-ERROR
END-IF.
*
*--------------------------*
223100-VIGENTE-A-HISTORICO.
*--------------------------*
PERFORM 231210-BUSCA-MAX-FREFERE.
PERFORM 233110-BUSCA-FDESDE-ANT.
IF W-FDESDE-AAAA-MM-DD > W-MAX-FREFERE AND
W-FDESDE-ANT < W-FHOY-AAAA-MM-DD
MOVE '9999-12-31' TO FEC1
MOVE W-FDESDE-AAAA-MM-DD TO FEC2
PERFORM 231220-FEC1-A-FEC2-XCDTY14
PERFORM 231230-FEC1-A-FEC2-XCDTY21
PERFORM 231240-FEC1-A-FEC2-XCDTY18
PERFORM 231250-FEC1-A-FEC2-XCDTY15
PERFORM 231260-FEC1-A-FEC2-XCDTY16
MOVE 'XCA0001' TO CAA-COD-AVISO2
MOVE 'ALTA HISTORICO' TO CAA-VAR1-AVISO2
END-IF.
*-----------------------*
233110-BUSCA-FDESDE-ANT.
*-----------------------*
PERFORM 222210-CARGA-CLAVE-XCDTY14.
PERFORM 222220-ACCESA-XCDTY14.
IF SW-EXISTE = 'SI'
MOVE TY14-XC-FDESDE TO W-FDESDE-ANT
ELSE
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'RELACION NUM. PREF.' TO CAA-VAR1-ERROR
MOVE 'CON F. REFERENCIA' TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*------------------------------*
223100-VIGENTE-A-HISTORICO-RUT.
*------------------------------*
MOVE Y64-CAUTOGE TO W-CAUTOGE.
INSPECT W-CAUTOGE REPLACING ALL '_' BY SPACES.
IF W-CAUTOGE EQUAL SPACES
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'NUM. REFERENCIAL' TO CAA-VAR1-ERROR
MOVE -1 TO Y64-CAUTOGEL
PERFORM 300000-FIN-PROGRAMA
END-IF.
MOVE W-CAUTOGE TO WYT5-INP-AUTOGEN.
MOVE W-FDESDE-AAAA-MM-DD TO WYT5-INP-FDESDE .
MOVE CAA-ENTIDAD TO WYT5-INP-CENTALT.
MOVE CAA-CENTRO-CONT TO WYT5-INP-COFIALT.
MOVE CAA-TERMINAL TO WYT5-INP-CTERALT.
MOVE CAA-USERID TO WYT5-INP-CUSUALT.
MOVE 'N' TO WYT5-YGRABA-TY14.
PERFORM 224130-ACCESA-XC7CYT50.
IF SW-EXISTE EQUAL 'SI'
MOVE 'XCA0001' TO CAA-COD-AVISO2
MOVE 'ALTA HISTORICO' TO CAA-VAR1-AVISO2
END-IF.
*----------------------*
224130-ACCESA-XC7CYT50.
*----------------------*
EXEC CICS 11550054
LINK PROGRAM ('XC7CYT50') 11560054
COMMAREA (XCWCYT50) 11570054
END-EXEC. 11580054
IF EIBRESP NOT EQUAL DFHRESP(NORMAL)
MOVE 'ERROR CICS XC7CYT50' TO ABC-REFERENCIA
MOVE 'XC7CYT50' TO ABC-OBJETO-ERROR
PERFORM 999999-ERROR-CICS
END-IF.
EVALUATE WYT5-CTL-CRETORN 11590054
WHEN '00' 11600054
MOVE 'SI' TO SW-EXISTE 11610054
WHEN '35' 11600054
WHEN '36' 11600054
MOVE 'NO' TO SW-EXISTE 11610054
WHEN '40' 11600054
MOVE 'XCE0016' TO CAA-COD-ERROR
MOVE 'F. INI. VIG.' TO CAA-VAR1-ERROR
MOVE WYT5-INP-FDESDE TO CAA-VAR2-ERROR
MOVE -1 TO Y64-FDESDEL
PERFORM 999999-ROLLBACK
PERFORM 300000-FIN-PROGRAMA
WHEN '99'
MOVE WYT5-CTL-REFERE1 TO W-REFERENCIA
MOVE 'XC7CYT50' TO W-PROGRAMA
MOVE WYT5-CTL-REFETAB TO W-TABLA
MOVE WYT5-CTL-CSQLERR TO W-SQLCODE
PERFORM 999999-ERROR-DB2
WHEN OTHER
MOVE 'XCE0020' TO CAA-COD-ERROR
MOVE WYT5-CTL-CRETORN TO CAA-VAR1-ERROR
MOVE 'XC7CYT50' TO CAA-VAR2-ERROR
MOVE CAA-CODTRAN TO CAA-VAR2-ERROR(16:4)
PERFORM 999999-ROLLBACK
PERFORM 999999-LOG-ERR-XC7CYT50
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE. 11700054
*-----------------------*
223200-MODIFICA-XCDTY14.
*-----------------------*
PERFORM 222210-CARGA-CLAVE-XCDTY14.
PERFORM 224200-CARGA-DATOS-XCDTY14.
PERFORM 224400-AUDITORIA-UMO-XCDTY14.
P53757*
PERFORM 223230-MODIF-ANTES-TRAZAB
P53757*
PERFORM 223210-UPDATE-XCDTY14.
P53757*
PERFORM 223240-MODIF-DESPUES-TRAZAB
PERFORM 210100-WRITEQ-TS
P53757*
IF SW-EXISTE EQUAL 'SI'
PERFORM 999999-LOG-UPDATE-Y14
MOVE ATRI-PRO-BRI-FST TO Y64-FDESDEA
MOVE 'XCA0001' TO CAA-COD-AVISO1
MOVE 'MODIFICACION' TO CAA-VAR1-AVISO1
ELSE
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'RELACION NUM. PREFER.' TO CAA-VAR1-ERROR
MOVE 'Y F. REFERENCIA' TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------*
223210-UPDATE-XCDTY14.
*---------------------*
EXEC SQL
UPDATE XCDTY14
SET TY14_XC_FDESDE =: TY14-XC-FDESDE ,
TY14_XC_FHASTA =: TY14-XC-FHASTA ,
TY14_XC_YTODCON =: TY14-XC-YTODCON,
TY14_XC_DOBSERV =: TY14-XC-DOBSERV,
TY14_XC_CTIPPRE =: TY14-XC-CTIPPRE,
TY14_XC_YACTIVA =: TY14-XC-YACTIVA,
TY14_XC_YDENLIN =: TY14-XC-YDENLIN,
TY14_XC_IMTOLIN =: TY14-XC-IMTOLIN,
TY14_XC_FINILIN =: TY14-XC-FINILIN,
TY14_XC_FFINLIN =: TY14-XC-FFINLIN,
TY14_XC_IOPELIN =: TY14-XC-IOPELIN,
TY14_XC_IUTILIN =: TY14-XC-IUTILIN,
TY14_XC_CENTUMO =: TY14-XC-CENTUMO,
TY14_XC_COFIUMO =: TY14-XC-COFIUMO,
TY14_XC_CTERUMO =: TY14-XC-CTERUMO,
TY14_XC_CUSUUMO =: TY14-XC-CUSUUMO,
TY14_XC_FTSTUMO =: TY14-XC-FTSTUMO
WHERE
TY14_XC_CAUTOGE =: TY14-XC-CAUTOGE AND
TY14_XC_FREFERE =: TY14-XC-FREFERE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'SI' TO SW-EXISTE
WHEN +100
MOVE 'NO' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY14' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'UPDATE-XCDTY14' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
P53757*
| *---------------------------*
| 223230-MODIF-ANTES-TRAZAB.
| *---------------------------*
| MOVE 1 TO W-ITEM
| *
| EXEC CICS
| READQ TS QUEUE(W-GTS)
| INTO(W-GTS-DATOS)
| ITEM(W-ITEM)
| END-EXEC
| *
| EVALUATE EIBRESP
| WHEN (DFHRESP(NORMAL))
| MOVE W-GTS-Y64-CAUTOGE TO TR55-CAUTOGE
| MOVE W-GTS-Y64-OPERACI TO TR55-OPERACI
| MOVE W-GTS-Y64-CENTIDA TO TR55-CENTIDA
| MOVE W-GTS-Y64-COFIOPE TO TR55-COFIOPE
| MOVE W-GTS-Y64-CCTAOPE TO TR55-CCTAOPE
| MOVE W-GTS-Y64-CPRODUC TO TR55-CPRODUC
| MOVE W-GTS-Y64-DPRODUC TO TR55-DPRODUC
| MOVE W-GTS-Y64-CSUBPRD TO TR55-CSUBPRD
| MOVE W-GTS-Y64-DSUBPRD TO TR55-DSUBPRD
| MOVE W-GTS-Y64-CCLILOC TO TR55-CCLILOC
| MOVE W-GTS-Y64-DCLILOC TO TR55-DCLILOC
| MOVE W-GTS-Y64-FREFERE TO TR55-FREFERE
| MOVE W-GTS-Y64-FDESDE TO TR55-FDESDE
| MOVE W-GTS-Y64-FHASTA TO TR55-FHASTA
| MOVE W-GTS-Y64-YTODCON TO TR55-YTODCON
| MOVE W-GTS-Y64-CTIPPRE TO TR55-CTIPPRE
| MOVE W-GTS-Y64-YACTIVA TO TR55-YACTIVA
| MOVE W-GTS-Y64-DOBSERV TO TR55-DOBSERV
| MOVE 11111 TO W-ID-EVENTO
| MOVE 'M' TO W-TIPO-EVENTO
| MOVE 'A' TO W-ANTES-DESPUES
| PERFORM 910000-TRAZABILIDAD
| WHEN (DFHRESP(ITEMERR))
| WHEN (DFHRESP(QIDERR))
| CONTINUE
| WHEN OTHER
| MOVE 'ERROR CICS READQ ' TO ABC-REFERENCIA
| MOVE W-GTS TO ABC-OBJETO-ERROR
| PERFORM 999999-ERROR-CICS
| END-EVALUATE.
| *
| *---------------------------*
| 223240-MODIF-DESPUES-TRAZAB.
| *---------------------------*
| MOVE Y64-CAUTOGE TO TR55-CAUTOGE
| MOVE Y64-OPERACI TO TR55-OPERACI
| MOVE Y64-CENTIDA TO TR55-CENTIDA
| MOVE Y64-COFIOPE TO TR55-COFIOPE
| MOVE Y64-CCTAOPE TO TR55-CCTAOPE
| MOVE Y64-CPRODUC TO TR55-CPRODUC
| MOVE Y64-DPRODUC TO TR55-DPRODUC
| MOVE Y64-CSUBPRD TO TR55-CSUBPRD
| MOVE Y64-DSUBPRD TO TR55-DSUBPRD
| MOVE Y64-CCLILOC TO TR55-CCLILOC
| MOVE Y64-DCLILOC TO TR55-DCLILOC
| MOVE Y64-FREFERE TO TR55-FREFERE
| MOVE Y64-FDESDE TO TR55-FDESDE
| MOVE Y64-FHASTA TO TR55-FHASTA
| MOVE Y64-YTODCON TO TR55-YTODCON
| MOVE Y64-CTIPPRE TO TR55-CTIPPRE
| MOVE Y64-YACTIVA TO TR55-YACTIVA
| MOVE Y64-DOBSERV TO TR55-DOBSERV
| MOVE 11111 TO W-ID-EVENTO
| MOVE 'M' TO W-TIPO-EVENTO
| MOVE 'D' TO W-ANTES-DESPUES
| PERFORM 910000-TRAZABILIDAD.
P53757*
******************************************************************
* *
* 224000-ALTA *
* *
******************************************************************
224000-ALTA.
*
PERFORM 222100-VALIDA-CLAVE.
PERFORM 222300-VALIDA-DATOS.
PERFORM 224100-AUTOGENERADO.
PERFORM 222210-CARGA-CLAVE-XCDTY14.
PERFORM 224200-CARGA-DATOS-XCDTY14.
PERFORM 224300-AUDITORIA-ALT-XCDTY14.
PERFORM 224400-AUDITORIA-UMO-XCDTY14.
P53757*
PERFORM 224500-ALTA-TRAZAB
P53757*
PERFORM 224500-ALTA-XCDTY14.
MOVE ATRI-PRO-BRI-FST TO Y64-FDESDEA
MOVE 'XCA0001' TO CAA-COD-AVISO1.
MOVE 'ALTA' TO CAA-VAR1-AVISO1.
*
*-------------------*
224100-AUTOGENERADO.
*-------------------*
PERFORM 224110-CARGA-DATOS-XC7CYT40.
PERFORM 224120-AUDITORIA-ALT-XC7CYT40.
PERFORM 224130-ACCESA-XC7CYT40.
IF SW-EXISTE EQUAL 'NO'
MOVE WYT4-OUT-AUTOGE TO Y64-CAUTOGE
MOVE WYT4-OUT-AUTOGE TO XPCA-CAUTOGE
ELSE
MOVE 'XCE0014' TO CAA-COD-ERROR
MOVE 'NUM. PREFERENCIAL' TO CAA-VAR1-ERROR
MOVE 'PARA CLAVE INGRESADA' TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ROLLBACK
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------------*
224110-CARGA-DATOS-XC7CYT40.
*---------------------------*
MOVE Y64-CPRODUC TO W-CPRODUC.
MOVE Y64-CSUBPRD TO W-CSUBPRD.
MOVE Y64-CCLILOC TO W-CCLILOC.
MOVE '0001' TO W-CFASE .
MOVE Y64-COFIOPE TO W-COFIOPE.
MOVE Y64-CCTAOPE TO W-CCTAOPE.
MOVE XPCA-YDIFERI TO W-YDIFERI.
MOVE XPCA-YPUNTUA TO W-YPUNTUA.
INSPECT W-CPRODUC REPLACING ALL '_' BY SPACES.
INSPECT W-CSUBPRD REPLACING ALL '_' BY SPACES.
INSPECT W-CCLILOC REPLACING ALL '_' BY SPACES.
INSPECT W-CFASE REPLACING ALL '_' BY SPACES.
INSPECT W-COFIOPE REPLACING ALL '_' BY SPACES.
INSPECT W-CCTAOPE REPLACING ALL '_' BY SPACES.
INSPECT W-YDIFERI REPLACING ALL '_' BY SPACES.
INSPECT W-YPUNTUA REPLACING ALL '_' BY SPACES.
MOVE CAA-ENTIDAD TO WYT4-INP-CENTIDA.
MOVE W-CPRODUC TO WYT4-INP-CPRODUC.
MOVE W-CSUBPRD TO WYT4-INP-CSUBPRD.
MOVE W-CCLILOC TO WYT4-INP-CCLILOC.
MOVE W-CFASE TO WYT4-INP-CFASE .
MOVE W-COFIOPE TO WYT4-INP-COFIOPE.
MOVE W-CCTAOPE TO WYT4-INP-CCTAOPE.
MOVE W-YDIFERI TO WYT4-INP-YDIFERI.
MOVE W-YPUNTUA TO WYT4-INP-YPUNTUA.
*----------------------------*
224120-AUDITORIA-ALT-XC7CYT40.
*----------------------------*
MOVE CAA-ENTIDAD TO WYT4-INP-CENTALT.
MOVE CAA-CENTRO-CONT TO WYT4-INP-COFIALT.
MOVE CAA-TERMINAL TO WYT4-INP-CTERALT.
MOVE CAA-USERID TO WYT4-INP-CUSUALT.
*----------------------*
224130-ACCESA-XC7CYT40.
*----------------------*
EXEC CICS 11550054
LINK PROGRAM ('XC7CYT40') 11560054
COMMAREA (XCWCYT40) 11570054
END-EXEC. 11580054
IF EIBRESP NOT EQUAL DFHRESP(NORMAL)
MOVE 'ERROR CICS XC7CYT40' TO ABC-REFERENCIA
MOVE 'XC7CYT40' TO ABC-OBJETO-ERROR
PERFORM 999999-ERROR-CICS
END-IF.
EVALUATE WYT4-CTL-CRETORN 11590054
WHEN '00' 11600054
MOVE 'NO' TO SW-EXISTE 11610054
WHEN '10' 11600054
MOVE 'SI' TO SW-EXISTE 11610054
WHEN '99'
MOVE WYT4-CTL-REFERE1 TO W-REFERENCIA
MOVE 'XC7CYT40' TO W-PROGRAMA
MOVE WYT4-CTL-REFETAB TO W-TABLA
MOVE WYT4-CTL-CSQLERR TO W-SQLCODE
PERFORM 999999-ERROR-DB2
WHEN OTHER
MOVE 'XCE0020' TO CAA-COD-ERROR
MOVE WYT4-CTL-CRETORN TO CAA-VAR1-ERROR
MOVE 'XC7CYT40' TO CAA-VAR2-ERROR
MOVE CAA-CODTRAN TO CAA-VAR2-ERROR(16:4)
PERFORM 999999-ROLLBACK
PERFORM 999999-LOG-ERR-XC7CYT40
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE. 11700054
*---------------------------*
224200-CARGA-DATOS-XCDTY14.
*---------------------------*
MOVE Y64-YTODCON TO W-YTODCON.
MOVE Y64-DOBSERV TO W-DOBSERV.
MOVE Y64-CTIPPRE TO W-CTIPPRE.
MOVE Y64-CTIPPRE TO W-CTIPPRE.
MOVE Y64-YACTIVA TO W-YACTIVA.
MOVE 'N' TO W-YDENLIN.
MOVE ZEROES TO W-IMTOLIN.
MOVE '0001-01-01' TO W-FINILIN.
MOVE '0001-01-01' TO W-FFINLIN.
MOVE ZEROES TO W-IOPELIN.
MOVE ZEROES TO W-IUTILIN.
INSPECT W-YTODCON REPLACING ALL '_' BY SPACES.
INSPECT W-DOBSERV REPLACING ALL '_' BY SPACES.
INSPECT W-CTIPPRE REPLACING ALL '_' BY SPACES.
INSPECT W-YACTIVA REPLACING ALL '_' BY SPACES.
INSPECT W-YDENLIN REPLACING ALL '_' BY SPACES.
MOVE W-FDESDE-AAAA-MM-DD TO TY14-XC-FDESDE .
MOVE W-FHASTA-AAAA-MM-DD TO TY14-XC-FHASTA .
MOVE W-YTODCON TO TY14-XC-YTODCON.
MOVE W-DOBSERV TO TY14-XC-DOBSERV.
MOVE W-CTIPPRE TO TY14-XC-CTIPPRE.
MOVE W-YACTIVA TO TY14-XC-YACTIVA.
MOVE W-YDENLIN TO TY14-XC-YDENLIN.
MOVE W-IMTOLIN TO TY14-XC-IMTOLIN.
MOVE W-FINILIN TO TY14-XC-FINILIN.
MOVE W-FFINLIN TO TY14-XC-FFINLIN.
MOVE W-IOPELIN TO TY14-XC-IOPELIN.
MOVE W-IUTILIN TO TY14-XC-IUTILIN.
*----------------------------*
224300-AUDITORIA-ALT-XCDTY14.
*----------------------------*
MOVE CAA-ENTIDAD TO TY14-XC-CENTALT.
MOVE CAA-CENTRO-CONT TO TY14-XC-COFIALT.
MOVE CAA-USERID TO TY14-XC-CUSUALT.
MOVE CAA-TERMINAL TO TY14-XC-CTERALT.
PERFORM 224310-BUSCA-TIMESTAMP.
MOVE W-TIMESTAMP TO TY14-XC-FTSTALT.
*----------------------*
224310-BUSCA-TIMESTAMP.
*----------------------*
EXEC SQL
SET :W-TIMESTAMP = CURRENT TIMESTAMP
END-EXEC.
IF SQLCODE NOT EQUAL ZEROES
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE SPACES TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'BUSCA-TIMESTAMP' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-IF.
*----------------------------*
224400-AUDITORIA-UMO-XCDTY14.
*----------------------------*
MOVE CAA-ENTIDAD TO TY14-XC-CENTUMO.
MOVE CAA-CENTRO-CONT TO TY14-XC-COFIUMO.
MOVE CAA-USERID TO TY14-XC-CUSUUMO.
MOVE CAA-TERMINAL TO TY14-XC-CTERUMO.
PERFORM 224310-BUSCA-TIMESTAMP.
MOVE W-TIMESTAMP TO TY14-XC-FTSTUMO.
P53757*
| *-------------------*
| 224500-ALTA-TRAZAB.
| *-------------------*
| MOVE Y64-CAUTOGE TO TR55-CAUTOGE
| MOVE Y64-OPERACI TO TR55-OPERACI
| MOVE Y64-CENTIDA TO TR55-CENTIDA
| MOVE Y64-COFIOPE TO TR55-COFIOPE
| MOVE Y64-CCTAOPE TO TR55-CCTAOPE
| MOVE Y64-CPRODUC TO TR55-CPRODUC
| MOVE Y64-DPRODUC TO TR55-DPRODUC
| MOVE Y64-CSUBPRD TO TR55-CSUBPRD
| MOVE Y64-DSUBPRD TO TR55-DSUBPRD
| MOVE Y64-CCLILOC TO TR55-CCLILOC
| MOVE Y64-DCLILOC TO TR55-DCLILOC
| MOVE Y64-FREFERE TO TR55-FREFERE
| MOVE Y64-FDESDE TO TR55-FDESDE
| MOVE Y64-FHASTA TO TR55-FHASTA
| MOVE Y64-YTODCON TO TR55-YTODCON
| MOVE Y64-CTIPPRE TO TR55-CTIPPRE
| MOVE Y64-YACTIVA TO TR55-YACTIVA
| MOVE Y64-DOBSERV TO TR55-DOBSERV
| MOVE 11111 TO W-ID-EVENTO
| MOVE 'A' TO W-TIPO-EVENTO
| MOVE 'D' TO W-ANTES-DESPUES
| PERFORM 910000-TRAZABILIDAD.
P53757*
*-------------------*
224500-ALTA-XCDTY14.
*-------------------*
PERFORM 224510-INSERT-XCDTY14.
IF SW-EXISTE EQUAL 'NO'
PERFORM 999999-LOG-INSERT-Y14
ELSE
MOVE 'XCE0014' TO CAA-COD-ERROR
MOVE 'N. PREF. + F. REFER.' TO CAA-VAR1-ERROR
MOVE DCLXCDTY14(1:18) TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ROLLBACK
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------*
224510-INSERT-XCDTY14.
*---------------------*
EXEC SQL
INSERT
INTO XCDTY14
VALUES (:TY14-XC-CAUTOGE
,:TY14-XC-FREFERE
,:TY14-XC-FDESDE
,:TY14-XC-FHASTA
,:TY14-XC-YTODCON
,:TY14-XC-DOBSERV
,:TY14-XC-CTIPPRE
,:TY14-XC-YACTIVA
,:TY14-XC-YDENLIN
,:TY14-XC-IMTOLIN
,:TY14-XC-FINILIN
,:TY14-XC-FFINLIN
,:TY14-XC-IOPELIN
,:TY14-XC-IUTILIN
,:TY14-XC-CENTALT
,:TY14-XC-COFIALT
,:TY14-XC-CTERALT
,:TY14-XC-CUSUALT
,:TY14-XC-FTSTALT
,:TY14-XC-CENTUMO
,:TY14-XC-COFIUMO
,:TY14-XC-CTERUMO
,:TY14-XC-CUSUUMO
,:TY14-XC-FTSTUMO
, NULL
, NULL
, NULL)
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'NO' TO SW-EXISTE
WHEN -803
MOVE 'SI' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY14' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'INSERT-XCDTY14' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
******************************************************************
* *
* 225000-LIMPIA *
* *
******************************************************************
225000-LIMPIA.
*
MOVE LOW-VALUES TO XCNCY64.
PERFORM 222110-DESCARGA-COMMAREA.
PERFORM 211000-PREPARA-PANTALLA.
*
******************************************************************
* *
* 226000-BAJA *
* *
******************************************************************
226000-BAJA.
*
IF SW-CAMBIO-CLAVE EQUAL 'NO'
PERFORM 222200-CONSULTA-DATOS
MOVE 'XCA0002' TO CAA-COD-AVISO1
ELSE
MOVE 'XCE0002' TO CAA-COD-ERROR
MOVE 'INTRO' TO CAA-VAR1-ERROR
MOVE 'VALIDAR CLAVE' TO CAA-VAR2-ERROR
END-IF.
*
******************************************************************
* *
* 227000-DETALLE *
* *
******************************************************************
227000-DETALLE.
*
IF SW-CAMBIO-CLAVE EQUAL 'NO'
PERFORM 222200-CONSULTA-DATOS
MOVE 'S' TO XPCA-YMANT
MOVE 'N' TO XPCA-YALTA
PERFORM INFORMAR-RETORNO-QGECCAA
ELSE
MOVE 'XCE0002' TO CAA-COD-ERROR
MOVE 'INTRO' TO CAA-VAR1-ERROR
MOVE 'VALIDAR CLAVE' TO CAA-VAR2-ERROR
END-IF.
*
******************************************************************
* *
* 229000-AUDITORIA *
* *
******************************************************************
229000-AUDITORIA.
*
IF SW-CAMBIO-CLAVE EQUAL 'NO'
PERFORM 229100-CONSULTA-AUDITORIA
MOVE 'N' TO XPCA-YALTA
PERFORM INFORMAR-RETORNO-QGECCAA
ELSE
MOVE 'XCE0002' TO CAA-COD-ERROR
MOVE 'INTRO' TO CAA-VAR1-ERROR
MOVE 'VALIDAR CLAVE' TO CAA-VAR2-ERROR
END-IF.
*
*--------------------------*
229100-CONSULTA-AUDITORIA.
*--------------------------*
PERFORM 222210-CARGA-CLAVE-XCDTY14.
PERFORM 222220-ACCESA-XCDTY14.
IF SW-EXISTE = 'SI'
MOVE TY14-XC-CENTALT TO XPCA-CENTALT
MOVE TY14-XC-COFIALT TO XPCA-COFIALT
MOVE TY14-XC-CUSUALT TO XPCA-CUSUALT
MOVE TY14-XC-CTERALT TO XPCA-CTERALT
MOVE TY14-XC-FTSTALT TO XPCA-FTSTALT
MOVE TY14-XC-CENTUMO TO XPCA-CENTUMO
MOVE TY14-XC-COFIUMO TO XPCA-COFIUMO
MOVE TY14-XC-CUSUUMO TO XPCA-CUSUUMO
MOVE TY14-XC-CTERUMO TO XPCA-CTERUMO
MOVE TY14-XC-FTSTUMO TO XPCA-FTSTUMO
ELSE
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'RELACION NUM. PREF.' TO CAA-VAR1-ERROR
MOVE 'CON F. REFERENCIA' TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*------------------------*
INFORMAR-RETORNO-QGECCAA.
*------------------------*
MOVE 'R' TO CAA-CASO-CAD.
MOVE XPCA-CLAVE TO CAA-DATOS-CAD.
MOVE XPCA-CLAVE TO CAA-DATOS.
******************************************************************
* *
* 230000-ESTADO-CONFIRMACION *
* *
******************************************************************
230000-ESTADO-CONFIRMACION.
*
MOVE CAA-TECLA TO SW-TECLA.
EVALUATE TRUE
WHEN PF7
IF CAA-88-MOD-TAG-NO
PERFORM 231000-BAJA-CASCADA
ELSE
MOVE 'XCE0017' TO CAA-COD-ERROR
MOVE 'BAJA' TO CAA-VAR1-ERROR
END-IF
WHEN OTHER
MOVE 'XCA0004' TO CAA-COD-AVISO1
END-EVALUATE.
MOVE -1 TO Y64-CAUTOGEL.
*
*-------------------*
231000-BAJA-CASCADA.
*-------------------*
* PERFORM 222310-VALIDA-FDESDE.
PERFORM 231100-BAJA-VIGENTE.
IF SW-EXISTE EQUAL 'HI'
PERFORM 231200-HISTORICO-A-VIGENTE
PERFORM 231300-BAJA-HISTORICO
PERFORM 222200-CONSULTA-DATOS
MOVE 'XCA0001' TO CAA-COD-AVISO2
MOVE 'HIST. A VIGENTE OK' TO CAA-VAR1-AVISO2
ELSE
MOVE '________' TO Y64-CAUTOGE
MOVE SPACES TO XPCA-CAUTOGE
MOVE ATRI-NOP-FST TO Y64-FDESDEA
END-IF.
MOVE 'XCA0001' TO CAA-COD-AVISO1.
MOVE 'BAJA' TO CAA-VAR1-AVISO1.
*-------------------*
231100-BAJA-VIGENTE.
*-------------------*
PERFORM 222210-CARGA-CLAVE-XCDTY14.
P53757*
| PERFORM 231111-BAJA-TRAZAB.
P53757*
* PERFORM 231110-BAJA-XCDTY16.
* PERFORM 231120-BAJA-XCDTY15.
* PERFORM 231130-BAJA-XCDTY21.
* PERFORM 231140-BAJA-XCDTY18.
PERFORM 231150-BAJA-XCDTY14.
PERFORM 231160-BAJA-XCDTY17.
*-------------------*
231110-BAJA-XCDTY16.
*-------------------*
MOVE TY14-XC-CAUTOGE TO TY16-XC-CAUTOGE.
MOVE TY14-XC-FREFERE TO TY16-XC-FREFERE.
PERFORM 231111-DELETE-XCDTY16.
IF SW-EXISTE EQUAL 'SI'
PERFORM 999999-LOG-DELETE-Y16
END-IF.
*---------------------*
231111-DELETE-XCDTY16.
*---------------------*
EXEC SQL
DELETE FROM XCDTY16
WHERE TY16_XC_CAUTOGE =: TY16-XC-CAUTOGE AND
TY16_XC_FREFERE =: TY16-XC-FREFERE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS MOVE 'SI' TO SW-EXISTE
WHEN +100 MOVE 'NO' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY16' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'DELETE-XCDTY16' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
P53757*
| *-------------------*
| 231111-BAJA-TRAZAB.
| *-------------------*
| MOVE Y64-CAUTOGE TO TR55-CAUTOGE
| MOVE Y64-OPERACI TO TR55-OPERACI
| MOVE Y64-CENTIDA TO TR55-CENTIDA
| MOVE Y64-COFIOPE TO TR55-COFIOPE
| MOVE Y64-CCTAOPE TO TR55-CCTAOPE
| MOVE Y64-CPRODUC TO TR55-CPRODUC
| MOVE Y64-DPRODUC TO TR55-DPRODUC
| MOVE Y64-CSUBPRD TO TR55-CSUBPRD
| MOVE Y64-DSUBPRD TO TR55-DSUBPRD
| MOVE Y64-CCLILOC TO TR55-CCLILOC
| MOVE Y64-DCLILOC TO TR55-DCLILOC
| MOVE Y64-FREFERE TO TR55-FREFERE
| MOVE Y64-FDESDE TO TR55-FDESDE
| MOVE Y64-FHASTA TO TR55-FHASTA
| MOVE Y64-YTODCON TO TR55-YTODCON
| MOVE Y64-CTIPPRE TO TR55-CTIPPRE
| MOVE Y64-YACTIVA TO TR55-YACTIVA
| MOVE Y64-DOBSERV TO TR55-DOBSERV
| MOVE 11111 TO W-ID-EVENTO
| MOVE 'B' TO W-TIPO-EVENTO
| MOVE 'A' TO W-ANTES-DESPUES
| PERFORM 910000-TRAZABILIDAD.
P53757*
*-------------------*
231120-BAJA-XCDTY15.
*-------------------*
MOVE TY14-XC-CAUTOGE TO TY15-XC-CAUTOGE.
MOVE TY14-XC-FREFERE TO TY15-XC-FREFERE.
PERFORM 231121-DELETE-XCDTY15.
IF SW-EXISTE EQUAL 'SI'
PERFORM 999999-LOG-DELETE-Y15
END-IF.
*---------------------*
231121-DELETE-XCDTY15.
*---------------------*
EXEC SQL
DELETE FROM XCDTY15
WHERE TY15_XC_CAUTOGE =: TY15-XC-CAUTOGE AND
TY15_XC_FREFERE =: TY15-XC-FREFERE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS MOVE 'SI' TO SW-EXISTE
WHEN +100 MOVE 'NO' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY15' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'DELETE-XCDTY15' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*-------------------*
231130-BAJA-XCDTY21.
*-------------------*
MOVE TY14-XC-CAUTOGE TO TY21-XC-CAUTOGE.
MOVE TY14-XC-FREFERE TO TY21-XC-FREFERE.
PERFORM 231131-DELETE-XCDTY21.
IF SW-EXISTE EQUAL 'SI'
PERFORM 999999-LOG-DELETE-Y21
END-IF.
*---------------------*
231131-DELETE-XCDTY21.
*---------------------*
EXEC SQL
DELETE FROM XCDTY21
WHERE TY21_XC_CAUTOGE =: TY21-XC-CAUTOGE AND
TY21_XC_FREFERE =: TY21-XC-FREFERE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS MOVE 'SI' TO SW-EXISTE
WHEN +100 MOVE 'NO' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY21' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'DELETE-XCDTY21' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*-------------------*
231140-BAJA-XCDTY18.
*-------------------*
MOVE TY14-XC-CAUTOGE TO TY18-XC-CAUTOGE.
MOVE TY14-XC-FREFERE TO TY18-XC-FREFERE.
PERFORM 231141-DELETE-XCDTY18.
IF SW-EXISTE EQUAL 'SI'
PERFORM 999999-LOG-DELETE-Y18
END-IF.
*---------------------*
231141-DELETE-XCDTY18.
*---------------------*
EXEC SQL
DELETE FROM XCDTY18
WHERE TY18_XC_CAUTOGE =: TY18-XC-CAUTOGE AND
TY18_XC_FREFERE =: TY18-XC-FREFERE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS MOVE 'SI' TO SW-EXISTE
WHEN +100 MOVE 'NO' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY18' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'DELETE-XCDTY18' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*-------------------*
231150-BAJA-XCDTY14.
*-------------------*
PERFORM 231151-DELETE-XCDTY14.
EVALUATE SW-EXISTE
WHEN 'SI'
PERFORM 999999-LOG-DELETE-Y14
WHEN 'TA'
MOVE 'XCA0008' TO CAA-COD-AVISO1
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ROLLBACK
PERFORM 300000-FIN-PROGRAMA
WHEN 'NO'
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'RELACION NUM. PREFER.' TO CAA-VAR1-ERROR
MOVE 'Y F. REFERERENCIA' TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ROLLBACK
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE.
*---------------------*
231151-DELETE-XCDTY14.
*---------------------*
EXEC SQL
DELETE FROM XCDTY14
WHERE TY14_XC_CAUTOGE =: TY14-XC-CAUTOGE AND
TY14_XC_FREFERE =: TY14-XC-FREFERE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS MOVE 'SI' TO SW-EXISTE
WHEN +100 MOVE 'NO' TO SW-EXISTE
WHEN -532 MOVE 'TA' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY14' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'DELETE-XCDTY14' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*-------------------*
231160-BAJA-XCDTY17.
*-------------------*
MOVE TY14-XC-CAUTOGE TO TY17-XC-CAUTOGE.
PERFORM 231161-DELETE-XCDTY17.
EVALUATE SW-EXISTE
WHEN 'SI'
PERFORM 999999-LOG-DELETE-Y17
WHEN 'NO'
WHEN 'HI'
CONTINUE
END-EVALUATE.
*---------------------*
231161-DELETE-XCDTY17.
*---------------------*
EXEC SQL
DELETE FROM XCDTY17
WHERE TY17_XC_CAUTOGE =: TY17-XC-CAUTOGE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS MOVE 'SI' TO SW-EXISTE
WHEN +100 MOVE 'NO' TO SW-EXISTE
WHEN -532 MOVE 'HI' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY17' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'DELETE-XCDTY17' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*--------------------------*
231200-HISTORICO-A-VIGENTE.
*--------------------------*
PERFORM 231210-BUSCA-MAX-FREFERE.
MOVE W-MAX-FREFERE TO FEC1.
MOVE '9999-12-31' TO FEC2.
PERFORM 231220-FEC1-A-FEC2-XCDTY14.
PERFORM 231230-FEC1-A-FEC2-XCDTY21.
PERFORM 231240-FEC1-A-FEC2-XCDTY18.
PERFORM 231250-FEC1-A-FEC2-XCDTY15.
PERFORM 231260-FEC1-A-FEC2-XCDTY16.
*------------------------*
231210-BUSCA-MAX-FREFERE.
*------------------------*
EXEC SQL
SELECT MAX(TY14_XC_FREFERE)
INTO :W-MAX-FREFERE
FROM XCDTY14
WHERE TY14_XC_CAUTOGE = :TY14-XC-CAUTOGE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
CONTINUE
WHEN +100
WHEN -305
MOVE '0001-01-01' TO W-MAX-FREFERE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY14' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'BUSCA-MAX-FREFERE' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*--------------------------*
231220-FEC1-A-FEC2-XCDTY14.
*--------------------------*
MOVE FEC1 TO TY14-XC-FREFERE.
PERFORM 222220-ACCESA-XCDTY14.
IF SW-EXISTE EQUAL 'SI'
MOVE FEC2 TO TY14-XC-FREFERE
PERFORM 224500-ALTA-XCDTY14
END-IF.
*--------------------------*
231230-FEC1-A-FEC2-XCDTY21.
*--------------------------*
MOVE TY14-XC-CAUTOGE TO TY21-XC-CAUTOGE.
MOVE FEC1 TO TY21-XC-FREFERE.
PERFORM 231232-ACCESA-XCDTY21.
IF SW-EXISTE EQUAL 'SI'
MOVE FEC2 TO TY21-XC-FREFERE
PERFORM 231233-ALTA-XCDTY21
END-IF.
*---------------------*
231232-ACCESA-XCDTY21.
*---------------------*
EXEC SQL
SELECT
TY21_XC_CTIPCAL,
TY21_XC_YEXONER,
TY21_XC_YMINIMO,
TY21_XC_YMINSTD,
TY21_XC_YMINPOR,
TY21_XC_IVALIMP,
TY21_XC_NVALTAS,
TY21_XC_CENTALT,
TY21_XC_COFIALT,
TY21_XC_CTERALT,
TY21_XC_CUSUALT,
TY21_XC_FTSTALT,
TY21_XC_CENTUMO,
TY21_XC_COFIUMO,
TY21_XC_CTERUMO,
TY21_XC_CUSUUMO,
TY21_XC_FTSTUMO
INTO
:TY21-XC-CTIPCAL,
:TY21-XC-YEXONER,
:TY21-XC-YMINIMO,
:TY21-XC-YMINSTD,
:TY21-XC-YMINPOR,
:TY21-XC-IVALIMP,
:TY21-XC-NVALTAS,
:TY21-XC-CENTALT,
:TY21-XC-COFIALT,
:TY21-XC-CTERALT,
:TY21-XC-CUSUALT,
:TY21-XC-FTSTALT,
:TY21-XC-CENTUMO,
:TY21-XC-COFIUMO,
:TY21-XC-CTERUMO,
:TY21-XC-CUSUUMO,
:TY21-XC-FTSTUMO
FROM XCDTY21
WHERE TY21_XC_CAUTOGE =: TY21-XC-CAUTOGE AND
TY21_XC_FREFERE =: TY21-XC-FREFERE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'SI' TO SW-EXISTE
WHEN +100
MOVE 'NO' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY21' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'ACCESA-XCDTY21' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*-------------------*
231233-ALTA-XCDTY21.
*-------------------*
PERFORM 231233-INSERT-XCDTY21.
IF SW-EXISTE EQUAL 'NO'
PERFORM 999999-LOG-INSERT-Y21
ELSE
MOVE 'XCE0014' TO CAA-COD-ERROR
MOVE 'N. PREF. + F. REFER.' TO CAA-VAR1-ERROR
MOVE DCLXCDTY21(1:18) TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ROLLBACK
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------*
231233-INSERT-XCDTY21.
*---------------------*
EXEC SQL
INSERT
INTO XCDTY21
VALUES (:TY21-XC-CAUTOGE
,:TY21-XC-FREFERE
,:TY21-XC-CTIPCAL
,:TY21-XC-YEXONER
,:TY21-XC-YMINIMO
,:TY21-XC-YMINSTD
,:TY21-XC-YMINPOR
,:TY21-XC-IVALIMP
,:TY21-XC-NVALTAS
,:TY21-XC-CENTALT
,:TY21-XC-COFIALT
,:TY21-XC-CTERALT
,:TY21-XC-CUSUALT
,:TY21-XC-FTSTALT
,:TY21-XC-CENTUMO
,:TY21-XC-COFIUMO
,:TY21-XC-CTERUMO
,:TY21-XC-CUSUUMO
,:TY21-XC-FTSTUMO
, NULL
, NULL
, NULL
, NULL)
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'NO' TO SW-EXISTE
WHEN -803
MOVE 'SI' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY21' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'INSERT-XCDTY21' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*--------------------------*
231240-FEC1-A-FEC2-XCDTY18.
*--------------------------*
MOVE TY14-XC-CAUTOGE TO TY18-XC-CAUTOGE.
MOVE FEC1 TO TY18-XC-FREFERE.
PERFORM 231242-ACCESA-XCDTY18.
IF SW-EXISTE EQUAL 'SI'
MOVE FEC2 TO TY18-XC-FREFERE
PERFORM 231243-ALTA-XCDTY18
END-IF.
*---------------------*
231242-ACCESA-XCDTY18.
*---------------------*
EXEC SQL
SELECT
TY18_XC_CPORDIF,
TY18_XC_FDESDE1,
TY18_XC_FHASTA1,
TY18_XC_YTODCO1,
TY18_XC_CFORDF1,
TY18_XC_FDIFER1,
TY18_XC_CTIPDI1,
TY18_XC_NDIA1 ,
TY18_XC_CPERIO1,
TY18_XC_CORDEN1,
TY18_XC_FDESDE2,
TY18_XC_FHASTA2,
TY18_XC_YTODCO2,
TY18_XC_CFORDF2,
TY18_XC_FDIFER2,
TY18_XC_CTIPDI2,
TY18_XC_NDIA2 ,
TY18_XC_CPERIO2,
TY18_XC_CORDEN2,
TY18_XC_CENTALT,
TY18_XC_COFIALT,
TY18_XC_CTERALT,
TY18_XC_CUSUALT,
TY18_XC_FTSTALT,
TY18_XC_CENTUMO,
TY18_XC_COFIUMO,
TY18_XC_CTERUMO,
TY18_XC_CUSUUMO,
TY18_XC_FTSTUMO
INTO
:TY18-XC-CPORDIF,
:TY18-XC-FDESDE1,
:TY18-XC-FHASTA1,
:TY18-XC-YTODCO1,
:TY18-XC-CFORDF1,
:TY18-XC-FDIFER1,
:TY18-XC-CTIPDI1,
:TY18-XC-NDIA1 ,
:TY18-XC-CPERIO1,
:TY18-XC-CORDEN1,
:TY18-XC-FDESDE2,
:TY18-XC-FHASTA2,
:TY18-XC-YTODCO2,
:TY18-XC-CFORDF2,
:TY18-XC-FDIFER2,
:TY18-XC-CTIPDI2,
:TY18-XC-NDIA2 ,
:TY18-XC-CPERIO2,
:TY18-XC-CORDEN2,
:TY18-XC-CENTALT,
:TY18-XC-COFIALT,
:TY18-XC-CTERALT,
:TY18-XC-CUSUALT,
:TY18-XC-FTSTALT,
:TY18-XC-CENTUMO,
:TY18-XC-COFIUMO,
:TY18-XC-CTERUMO,
:TY18-XC-CUSUUMO,
:TY18-XC-FTSTUMO
FROM XCDTY18
WHERE TY18_XC_CAUTOGE =: TY18-XC-CAUTOGE AND
TY18_XC_FREFERE =: TY18-XC-FREFERE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'SI' TO SW-EXISTE
WHEN +100
MOVE 'NO' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY18' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'ACCESA-XCDTY18' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*-------------------*
231243-ALTA-XCDTY18.
*-------------------*
PERFORM 231243-INSERT-XCDTY18.
IF SW-EXISTE EQUAL 'NO'
PERFORM 999999-LOG-INSERT-Y18
ELSE
MOVE 'XCE0014' TO CAA-COD-ERROR
MOVE 'N. PREF. + F. REFER.' TO CAA-VAR1-ERROR
MOVE DCLXCDTY18(1:18) TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ROLLBACK
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------*
231243-INSERT-XCDTY18.
*---------------------*
EXEC SQL
INSERT
INTO XCDTY18
VALUES (:TY18-XC-CAUTOGE
,:TY18-XC-FREFERE
,:TY18-XC-CPORDIF
,:TY18-XC-FDESDE1
,:TY18-XC-FHASTA1
,:TY18-XC-YTODCO1
,:TY18-XC-CFORDF1
,:TY18-XC-FDIFER1
,:TY18-XC-CTIPDI1
,:TY18-XC-NDIA1
,:TY18-XC-CPERIO1
,:TY18-XC-CORDEN1
,:TY18-XC-FDESDE2
,:TY18-XC-FHASTA2
,:TY18-XC-YTODCO2
,:TY18-XC-CFORDF2
,:TY18-XC-FDIFER2
,:TY18-XC-CTIPDI2
,:TY18-XC-NDIA2
,:TY18-XC-CPERIO2
,:TY18-XC-CORDEN2
,:TY18-XC-CENTALT
,:TY18-XC-COFIALT
,:TY18-XC-CTERALT
,:TY18-XC-CUSUALT
,:TY18-XC-FTSTALT
,:TY18-XC-CENTUMO
,:TY18-XC-COFIUMO
,:TY18-XC-CTERUMO
,:TY18-XC-CUSUUMO
,:TY18-XC-FTSTUMO
, NULL
, NULL
, NULL
, NULL)
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'NO' TO SW-EXISTE
WHEN -803
MOVE 'SI' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY18' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'INSERT-XCDTY18' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*--------------------------*
231250-FEC1-A-FEC2-XCDTY15.
*--------------------------*
MOVE TY14-XC-CAUTOGE TO TY15-XC-CAUTOGE.
MOVE FEC1 TO TY15-XC-FREFERE.
PERFORM 231251-ABRIR-CURSOR-Y15.
PERFORM 231252-FETCH-CURSOR-Y15.
PERFORM UNTIL SW-FIN-CURSOR-Y15 EQUAL 'SI'
MOVE FEC2 TO TY15-XC-FREFERE
PERFORM 231253-ALTA-XCDTY15
PERFORM 231252-FETCH-CURSOR-Y15
END-PERFORM.
PERFORM 231254-CERRAR-CURSOR-Y15.
*-----------------------*
231251-ABRIR-CURSOR-Y15.
*-----------------------*
EXEC SQL
OPEN CURSOR-Y15
END-EXEC.
IF SQLCODE EQUAL ZEROES
MOVE 'NO' TO SW-FIN-CURSOR-Y15
ELSE
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY15' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'ABRIR-CURSOR-Y15' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-IF.
*-----------------------*
231252-FETCH-CURSOR-Y15.
*-----------------------*
EXEC SQL
FETCH CURSOR-Y15
INTO
:TY15-XC-CENTIDA,
:TY15-XC-CTARIFA,
:TY15-XC-CPERIOD,
:TY15-XC-CTIPCAL,
:TY15-XC-CADEVEN,
:TY15-XC-YACTIVA,
:TY15-XC-YEXONER,
:TY15-XC-YMINIMO,
:TY15-XC-YMINSTD,
:TY15-XC-YMINPOR,
:TY15-XC-CENTALT,
:TY15-XC-COFIALT,
:TY15-XC-CTERALT,
:TY15-XC-CUSUALT,
:TY15-XC-FTSTALT,
:TY15-XC-CENTUMO,
:TY15-XC-COFIUMO,
:TY15-XC-CTERUMO,
:TY15-XC-CUSUUMO,
:TY15-XC-FTSTUMO
END-EXEC.
EVALUATE SQLCODE
WHEN ZERO
CONTINUE
WHEN +100
MOVE 'SI' TO SW-FIN-CURSOR-Y15
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY15' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'FETCH-CURSOR-Y15' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*-------------------*
231253-ALTA-XCDTY15.
*-------------------*
*200404021 @005 SE GRABA AAAAMMDD
*200312229 @004-I
MOVE TY14-XC-FREFERE(1:4) TO WX-NUMERO (1:4)
MOVE TY14-XC-FREFERE(6:2) TO WX-NUMERO (5:2)
MOVE TY14-XC-FREFERE(9:2) TO WX-NUMERO (7:2)
MOVE WN-NUMERO TO TY15-XC-ILIBRE1
*200312229 @004-F
PERFORM 231253-INSERT-XCDTY15.
IF SW-EXISTE EQUAL 'NO'
PERFORM 999999-LOG-INSERT-Y15
ELSE
MOVE 'XCE0014' TO CAA-COD-ERROR
MOVE 'CLAVE TABLA TARIFA' TO CAA-VAR1-ERROR
MOVE 'CADA CONCEPTO' TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ROLLBACK
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------*
231253-INSERT-XCDTY15.
*---------------------*
EXEC SQL
INSERT
INTO XCDTY15
VALUES (:TY15-XC-CAUTOGE
,:TY15-XC-FREFERE
,:TY15-XC-CENTIDA
,:TY15-XC-CTARIFA
,:TY15-XC-CPERIOD
,:TY15-XC-CTIPCAL
,:TY15-XC-CADEVEN
,:TY15-XC-YACTIVA
,:TY15-XC-YEXONER
,:TY15-XC-YMINIMO
,:TY15-XC-YMINSTD
,:TY15-XC-YMINPOR
,:TY15-XC-CENTALT
,:TY15-XC-COFIALT
,:TY15-XC-CTERALT
,:TY15-XC-CUSUALT
,:TY15-XC-FTSTALT
,:TY15-XC-CENTUMO
,:TY15-XC-COFIUMO
,:TY15-XC-CTERUMO
,:TY15-XC-CUSUUMO
,:TY15-XC-FTSTUMO
*200312229 @004-I
* , NULL
,:TY15-XC-ILIBRE1
*200312229 @004-F
, NULL)
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'NO' TO SW-EXISTE
WHEN -803
MOVE 'SI' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY15' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'INSERT-XCDTY15' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*-------------------------*
231254-CERRAR-CURSOR-Y15.
*-------------------------*
EXEC SQL
CLOSE CURSOR-Y15
END-EXEC
IF SQLCODE NOT EQUAL ZERO
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY15' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'CERRAR-CURSOR-Y15' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-IF.
*------------------------*
231260-FEC1-A-FEC2-XCDTY16.
*------------------------*
MOVE TY14-XC-CAUTOGE TO TY16-XC-CAUTOGE.
MOVE FEC1 TO TY16-XC-FREFERE.
PERFORM 231261-ABRIR-CURSOR-Y16.
PERFORM 231262-FETCH-CURSOR-Y16.
PERFORM UNTIL SW-FIN-CURSOR-Y16 EQUAL 'SI'
MOVE FEC2 TO TY16-XC-FREFERE
PERFORM 231263-ALTA-XCDTY16
PERFORM 231262-FETCH-CURSOR-Y16
END-PERFORM.
PERFORM 231264-CERRAR-CURSOR-Y16.
*-----------------------*
231261-ABRIR-CURSOR-Y16.
*-----------------------*
EXEC SQL
OPEN CURSOR-Y16
END-EXEC.
IF SQLCODE EQUAL ZEROES
MOVE 'NO' TO SW-FIN-CURSOR-Y16
ELSE
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY16' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'ABRIR-CURSOR-Y16' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-IF.
*-----------------------*
231262-FETCH-CURSOR-Y16.
*-----------------------*
EXEC SQL
FETCH CURSOR-Y16
INTO
:TY16-XC-CENTIDA,
:TY16-XC-CTARIFA,
:TY16-XC-NRANGO ,
:TY16-XC-ILIMSUP,
:TY16-XC-IMINIMO,
:TY16-XC-IMAXIMO,
:TY16-XC-IVALIMP,
:TY16-XC-NVALTAS,
:TY16-XC-CENTALT,
:TY16-XC-COFIALT,
:TY16-XC-CTERALT,
:TY16-XC-CUSUALT,
:TY16-XC-FTSTALT,
:TY16-XC-CENTUMO,
:TY16-XC-COFIUMO,
:TY16-XC-CTERUMO,
:TY16-XC-CUSUUMO,
:TY16-XC-FTSTUMO
END-EXEC.
EVALUATE SQLCODE
WHEN ZERO
CONTINUE
WHEN +100
MOVE 'SI' TO SW-FIN-CURSOR-Y16
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY16' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'FETCH-CURSOR-Y16' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*-------------------*
231263-ALTA-XCDTY16.
*-------------------*
PERFORM 231263-INSERT-XCDTY16.
IF SW-EXISTE EQUAL 'NO'
PERFORM 999999-LOG-INSERT-Y16
ELSE
MOVE 'XCE0014' TO CAA-COD-ERROR
MOVE 'CLAVE TABLA TARIFA' TO CAA-VAR1-ERROR
MOVE 'CADA CONCEPTO' TO CAA-VAR2-ERROR
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ROLLBACK
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------*
231263-INSERT-XCDTY16.
*---------------------*
EXEC SQL
INSERT
INTO XCDTY16
VALUES (:TY16-XC-CAUTOGE
,:TY16-XC-FREFERE
,:TY16-XC-CENTIDA
,:TY16-XC-CTARIFA
,:TY16-XC-NRANGO
,:TY16-XC-ILIMSUP
,:TY16-XC-IMINIMO
,:TY16-XC-IMAXIMO
,:TY16-XC-IVALIMP
,:TY16-XC-NVALTAS
,:TY16-XC-CENTALT
,:TY16-XC-COFIALT
,:TY16-XC-CTERALT
,:TY16-XC-CUSUALT
,:TY16-XC-FTSTALT
,:TY16-XC-CENTUMO
,:TY16-XC-COFIUMO
,:TY16-XC-CTERUMO
,:TY16-XC-CUSUUMO
,:TY16-XC-FTSTUMO
, NULL
, NULL
, NULL)
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'NO' TO SW-EXISTE
WHEN -803
MOVE 'SI' TO SW-EXISTE
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY16' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'INSERT-XCDTY16' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*-------------------------*
231264-CERRAR-CURSOR-Y16.
*-------------------------*
EXEC SQL
CLOSE CURSOR-Y16
END-EXEC
IF SQLCODE NOT EQUAL ZERO
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY16' TO W-TABLA
MOVE 'XC2CY640' TO W-PROGRAMA
MOVE 'CERRAR-CURSOR-Y16' TO W-REFERENCIA
MOVE -1 TO Y64-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-IF.
*---------------------*
231300-BAJA-HISTORICO.
*---------------------*
MOVE W-MAX-FREFERE TO TY14-XC-FREFERE.
PERFORM 231110-BAJA-XCDTY16.
PERFORM 231120-BAJA-XCDTY15.
PERFORM 231130-BAJA-XCDTY21.
PERFORM 231140-BAJA-XCDTY18.
PERFORM 231150-BAJA-XCDTY14.
*
******************************************************************
* *
* 300000-FIN-PROGRAMA *
* *
* -DEVOLVER CONTROL A LA ARQUITECTURA *
* *
******************************************************************
300000-FIN-PROGRAMA.
*
EVALUATE TRUE
WHEN CAA-88-ESTADO-INICIO
PERFORM 310000-INFORMAR-CAA-INICIO
WHEN CAA-88-ESTADO-CONTIN
PERFORM 320000-INFORMAR-CAA-CONTIN
WHEN OTHER
PERFORM 330000-INFORMAR-CAA-CONFIR
END-EVALUATE.
*
EXEC CICS
RETURN
END-EXEC.
******************************************************************
* *
* 310000-INFORMAR-CAA-INICIO *
* *
* 1. SETEAR VARIABLES DE LA CAA, COMO QUEDAN EN ESTADO INICIO *
* *
******************************************************************
310000-INFORMAR-CAA-INICIO.
*
IF CAA-88-COD-ERROR-VACIO
MOVE CAA-CODTRAN TO CAA-CODTRAN-SIG
SET CAA-88-ACCION-TERMINAL TO TRUE
SET CAA-88-ESTADO-CONTIN TO TRUE
ELSE
SET CAA-88-CODTRAN-SIG-SAME TO TRUE
SET CAA-88-ACCION-TERMINAL TO TRUE
SET CAA-88-ESTADO-CONTIN TO TRUE
MOVE W-XCNCY64-INI TO XCNCY64
MOVE 'R' TO CAA-CASO
END-IF.
*
******************************************************************
* *
* 320000-INFORMAR-CAA-CONTIN *
* *
* 1. SETEAR VARIABLES DE CAA, COMO QUEDAN EN ESTADO CONTINUACION *
* *
******************************************************************
320000-INFORMAR-CAA-CONTIN.
*
IF CAA-88-COD-ERROR-VACIO
EVALUATE TRUE
WHEN PF6
SET CAA-88-CODTRAN-SIG-SAME TO TRUE
SET CAA-88-ACCION-TERMINAL TO TRUE
SET CAA-88-ESTADO-CONFIR TO TRUE
WHEN PF10
IF XPCA-YDIFERI EQUAL 'S'
MOVE 'XY75' TO CAA-CODTRAN-SIG
ELSE
IF Y64-YTODCON EQUAL 'S'
MOVE 'XY66' TO CAA-CODTRAN-SIG
ELSE
MOVE 'XY68' TO CAA-CODTRAN-SIG
END-IF
END-IF
SET CAA-88-ACCION-PROGRAMA TO TRUE
SET CAA-88-ESTADO-INICIO TO TRUE
SET CAA-88-CADENA-ANADIR TO TRUE
WHEN SPF10
MOVE 'XY78' TO CAA-CODTRAN-SIG
SET CAA-88-ACCION-PROGRAMA TO TRUE
SET CAA-88-ESTADO-INICIO TO TRUE
SET CAA-88-CADENA-ANADIR TO TRUE
WHEN OTHER
SET CAA-88-CODTRAN-SIG-SAME TO TRUE
SET CAA-88-ACCION-TERMINAL TO TRUE
SET CAA-88-ESTADO-CONTIN TO TRUE
END-EVALUATE
ELSE
SET CAA-88-CODTRAN-SIG-SAME TO TRUE
SET CAA-88-ACCION-TERMINAL TO TRUE
SET CAA-88-ESTADO-CONTIN TO TRUE
END-IF.
*
******************************************************************
* *
* 330000-INFORMAR-CAA-CONFIR *
* *
* 1. SETEAR VARIABLES DE CAA, COMO QUEDAN EN ESTADO CONFIRMACION *
* *
******************************************************************
330000-INFORMAR-CAA-CONFIR.
*
SET CAA-88-CODTRAN-SIG-SAME TO TRUE.
SET CAA-88-ACCION-TERMINAL TO TRUE.
SET CAA-88-ESTADO-CONTIN TO TRUE.
*
P53757*
| *--------------------*
| 910000-TRAZABILIDAD.
| *--------------------*
| INITIALIZE QRWCLOGT
| SET LOGT-MENSAJE TO ADDRESS OF XCWCTR55
| MOVE W-ID-EVENTO TO LOGT-ID-EVENTO
| MOVE W-TIPO-EVENTO TO LOGT-TIPO-EVENTO
| MOVE 'XC' TO LOGT-APLICATIVO
| MOVE 'XY64' TO LOGT-PROCESO
| MOVE W-ANTES-DESPUES TO LOGT-ANTES-DESPUES
| MOVE 'PAR' TO LOGT-MODALIDAD
| MOVE CAA-USERID TO LOGT-USUARIO
| MOVE CAA-TERMINAL TO LOGT-TERMINAL
| MOVE CAA-CANAL-OPERACION TO LOGT-CANAL
| MOVE CAA-CENTRO-CONT TO LOGT-SUCURSAL
|
| CALL W-QR5CLOG0 USING QRWCLOGT
|
| IF NOT LOGT-RETORNO-OK
| MOVE 'XCE0016' TO CAA-COD-ERROR
| MOVE LOGT-DESC-ERROR(1:20) TO CAA-VAR1-ERROR
| MOVE LOGT-DESC-ERROR(21:20) TO CAA-VAR2-ERROR
| PERFORM 300000-FIN-PROGRAMA
| END-IF.
P53757*
*-----------------*
999999-ERROR-CICS.
*-----------------*
MOVE 'S' TO ABC-ABEND.
MOVE 'XC2CY640' TO ABC-PROGRAMA.
MOVE EIBFN TO ABC-EIBFN.
MOVE EIBRSRCE TO ABC-EIBRSRCE.
MOVE EIBRCODE TO ABC-EIBRCODE.
MOVE EIBRESP TO ABC-EIBRESP1.
MOVE EIBRESP2 TO ABC-EIBRESP2.
EXEC CICS LINK PROGRAM('QG1CABC')
COMMAREA(QGECABC)
END-EXEC.
*-----------------*
999999-ERROR-DB2.
*-----------------*
MOVE 'N' TO ABC-ABEND.
MOVE W-PROGRAMA TO ABC-PROGRAMA.
MOVE W-REFERENCIA TO ABC-REFERENCIA.
MOVE W-TABLA TO ABC-OBJETO-ERROR.
MOVE W-SQLCODE TO ABC-SQLCODE.
MOVE W-SQLERRM TO ABC-SQLERRM.
EXEC CICS
LINK
PROGRAM ('QG1CABC')
COMMAREA (QGECABC)
END-EXEC.
*
MOVE 'XCE0025' TO CAA-COD-ERROR.
MOVE W-TABLA TO CAA-VAR1-ERROR.
MOVE 'PGM' TO CAA-VAR1-ERROR(09:3).
MOVE W-PROGRAMA TO CAA-VAR1-ERROR(13:8).
MOVE W-SQLCODE TO CAA-VAR2-ERROR.
MOVE CAA-CODTRAN TO CAA-VAR2-ERROR(7:4).
PERFORM 300000-FIN-PROGRAMA.
*---------------*
999999-ROLLBACK.
*---------------*
EXEC CICS
SYNCPOINT ROLLBACK
END-EXEC.
*---------------------*
999999-LOG-UPDATE-Y14. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'MOD' TO WTLG-CTIPREG.
MOVE 'LOG-UPDATE-Y14' TO WTLG-DTXTREF.
MOVE 'XCDTY14' TO WTLG-CTABREF.
MOVE 'XCGTY14' TO WTLG-CCPYAP1.
MOVE DCLXCDTY14 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-INSERT-Y17. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ALT' TO WTLG-CTIPREG.
MOVE 'LOG-INSERT-Y17' TO WTLG-DTXTREF.
MOVE 'XCDTY17' TO WTLG-CTABREF.
MOVE 'XCGTY17' TO WTLG-CCPYAP1.
MOVE DCLXCDTY17 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-INSERT-Y14. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ALT' TO WTLG-CTIPREG.
MOVE 'LOG-INSERT-Y14' TO WTLG-DTXTREF.
MOVE 'XCDTY14' TO WTLG-CTABREF.
MOVE 'XCGTY14' TO WTLG-CCPYAP1.
MOVE DCLXCDTY14 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-INSERT-Y21. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ALT' TO WTLG-CTIPREG.
MOVE 'LOG-INSERT-Y21' TO WTLG-DTXTREF.
MOVE 'XCDTY21' TO WTLG-CTABREF.
MOVE 'XCGTY21' TO WTLG-CCPYAP1.
MOVE DCLXCDTY21 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-INSERT-Y18. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ALT' TO WTLG-CTIPREG.
MOVE 'LOG-INSERT-Y18' TO WTLG-DTXTREF.
MOVE 'XCDTY18' TO WTLG-CTABREF.
MOVE 'XCGTY18' TO WTLG-CCPYAP1.
MOVE DCLXCDTY18 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-INSERT-Y15. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ALT' TO WTLG-CTIPREG.
MOVE 'LOG-INSERT-Y15' TO WTLG-DTXTREF.
MOVE 'XCDTY15' TO WTLG-CTABREF.
MOVE 'XCGTY15' TO WTLG-CCPYAP1.
MOVE DCLXCDTY15 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-INSERT-Y16. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ALT' TO WTLG-CTIPREG.
MOVE 'LOG-INSERT-Y16' TO WTLG-DTXTREF.
MOVE 'XCDTY16' TO WTLG-CTABREF.
MOVE 'XCGTY16' TO WTLG-CCPYAP1.
MOVE DCLXCDTY16 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-DELETE-Y16. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'BAJ' TO WTLG-CTIPREG.
MOVE 'LOG-DELETE-Y16' TO WTLG-DTXTREF.
MOVE 'XCDTY16' TO WTLG-CTABREF.
MOVE 'XCGTY16' TO WTLG-CCPYAP1.
MOVE DCLXCDTY16 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-DELETE-Y15. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'BAJ' TO WTLG-CTIPREG.
MOVE 'LOG-DELETE-Y15' TO WTLG-DTXTREF.
MOVE 'XCDTY15' TO WTLG-CTABREF.
MOVE 'XCGTY15' TO WTLG-CCPYAP1.
MOVE DCLXCDTY15 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-DELETE-Y21. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'BAJ' TO WTLG-CTIPREG.
MOVE 'LOG-DELETE-Y21' TO WTLG-DTXTREF.
MOVE 'XCDTY21' TO WTLG-CTABREF.
MOVE 'XCGTY21' TO WTLG-CCPYAP1.
MOVE DCLXCDTY21 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-DELETE-Y18. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'BAJ' TO WTLG-CTIPREG.
MOVE 'LOG-DELETE-Y18' TO WTLG-DTXTREF.
MOVE 'XCDTY18' TO WTLG-CTABREF.
MOVE 'XCGTY18' TO WTLG-CCPYAP1.
MOVE DCLXCDTY18 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-DELETE-Y14. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'BAJ' TO WTLG-CTIPREG.
MOVE 'LOG-DELETE-Y14' TO WTLG-DTXTREF.
MOVE 'XCDTY14' TO WTLG-CTABREF.
MOVE 'XCGTY14' TO WTLG-CCPYAP1.
MOVE DCLXCDTY14 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*---------------------*
999999-LOG-DELETE-Y17. 10830054
*---------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'BAJ' TO WTLG-CTIPREG.
MOVE 'LOG-DELETE-Y17' TO WTLG-DTXTREF.
MOVE 'XCDTY17' TO WTLG-CTABREF.
MOVE 'XCGTY17' TO WTLG-CCPYAP1.
MOVE DCLXCDTY17 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*-----------------------*
999999-LOG-ERR-PE2C5000. 10830054
*-----------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ERR' TO WTLG-CTIPREG.
MOVE 'LOG-ERR-PE2C5000' TO WTLG-DTXTREF.
MOVE CAA-VAR1-ERROR TO WTLG-CERROR.
MOVE CAA-VAR2-ERROR TO WTLG-CRUTREF.
MOVE 'PEWC5000' TO WTLG-CCPYAP1.
MOVE PEWC5000 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*-----------------------*
999999-LOG-ERR-TC2C1000. 10830054
*-----------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ERR' TO WTLG-CTIPREG.
MOVE 'LOG-ERR-TC2C1000' TO WTLG-DTXTREF.
MOVE CAA-VAR1-ERROR TO WTLG-CERROR.
MOVE CAA-VAR2-ERROR TO WTLG-CRUTREF.
MOVE 'TCWC0000' TO WTLG-CCPYAP1.
MOVE TCWC0000 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*-----------------------*
999999-LOG-ERR-PE2C5200. 10830054
*-----------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ERR' TO WTLG-CTIPREG.
MOVE 'LOG-ERR-PE2C5200' TO WTLG-DTXTREF.
MOVE CAA-VAR1-ERROR TO WTLG-CERROR.
MOVE CAA-VAR2-ERROR TO WTLG-CRUTREF.
MOVE 'PEWC5200' TO WTLG-CCPYAP1.
MOVE PEWC5200 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*-----------------------*
999999-LOG-ERR-XC7CYT40. 10830054
*-----------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ERR' TO WTLG-CTIPREG.
MOVE 'LOG-ERR-XC7CYT40' TO WTLG-DTXTREF.
MOVE CAA-VAR1-ERROR TO WTLG-CERROR.
MOVE CAA-VAR2-ERROR TO WTLG-CRUTREF.
MOVE 'XCWCYT40' TO WTLG-CCPYAP1.
MOVE XCWCYT40 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*-----------------------*
999999-LOG-ERR-XC7CYT50. 10830054
*-----------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ERR' TO WTLG-CTIPREG.
MOVE 'LOG-ERR-XC7CYT50' TO WTLG-DTXTREF.
MOVE CAA-VAR1-ERROR TO WTLG-CERROR.
MOVE CAA-VAR2-ERROR TO WTLG-CRUTREF.
MOVE 'XCWCYT50' TO WTLG-CCPYAP1.
MOVE XCWCYT50 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*-----------------------*
999999-LOG-ERR-XC7CYT60. 10830054
*-----------------------* 10840054
INITIALIZE WTLG-REGISTRO. 10860054
MOVE 'ERR' TO WTLG-CTIPREG.
MOVE 'LOG-ERR-XC7CYT60' TO WTLG-DTXTREF.
MOVE CAA-VAR1-ERROR TO WTLG-CERROR.
MOVE CAA-VAR2-ERROR TO WTLG-CRUTREF.
MOVE 'XCWCYT60' TO WTLG-CCPYAP1.
MOVE XCWCYT60 TO WTLG-DDATAP1.
PERFORM 999999-ACCESA-XC7CTLG0.
*----------------------*
999999-ACCESA-XC7CTLG0. 10830054
*----------------------* 10840054
MOVE 'XY' TO WTLG-CMODULO. 10870054
MOVE 'L' TO WTLG-CLINBAT. 10880054
MOVE 'XC2CY640' TO WTLG-CPROGRA. 10890054
MOVE CAA-CODTRAN TO WTLG-CTRANSA. 10900054
MOVE CAA-USERID TO WTLG-CUSUARI. 10910054
MOVE CAA-TERMINAL-CONT TO WTLG-CTERMIN. 10920054
MOVE 'XCNCY64' TO WTLG-CCPYAP2. 11100054
MOVE XCNCY64 TO WTLG-DDATAP2. 11110054
MOVE 'XCECPCA' TO WTLG-CCPYAP3.
MOVE XCECPCA TO WTLG-DDATAP3.
MOVE CAA-ENTIDAD TO WTLG-CENTPRO. 10930054
MOVE CAA-CENTRO-CONT TO WTLG-COFIPRO. 10940054
EXEC CICS 11550054
LINK PROGRAM ('XC7CTLG0') 11560054
COMMAREA (XCWCTLG0) 11570054
END-EXEC. 11580054
IF EIBRESP NOT EQUAL DFHRESP(NORMAL)
MOVE 'ERROR CICS XC7CTLG0' TO ABC-REFERENCIA
MOVE 'XC7CTLG0' TO ABC-OBJETO-ERROR
PERFORM 999999-ERROR-CICS
END-IF.
EVALUATE WTLG-CDRETO 11590054
WHEN '00' 11600054
CONTINUE 11610054
WHEN '99'
MOVE 'ACCESA-XC7CTLG0' TO W-REFERENCIA
MOVE 'XC7CTLG0' TO W-PROGRAMA
MOVE WTLG-SQLTBL TO W-TABLA
MOVE WTLG-SQLCOD TO W-SQLCODE
MOVE WTLG-SQLMEN TO W-SQLERRM
PERFORM 999999-ERROR-DB2
WHEN OTHER
MOVE 'XCE0020' TO CAA-COD-ERROR
MOVE WTLG-CDRETO TO CAA-VAR1-ERROR
MOVE 'XC7CTLG0' TO CAA-VAR2-ERROR
MOVE CAA-CODTRAN TO CAA-VAR2-ERROR(16:4)
PERFORM 999999-ROLLBACK
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE. 11700054
* 11710054

También podría gustarte