Sunteți pe pagina 1din 44

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

* COMPANIA : BBV PERU - BCO CONTINENTAL


* SISTEMA : ALTAMIRA
* APLICATIVO : COMERCIO EXTERIOR CORPORATIVO
* MODULO : ARQUITECTURA E INTERFASES
* SUB-MODULO : TARIFARIO
* NOMBRE : XC2CY750
*****************************************************************
* XC2CY750 *
* -------- *
* *
* DETALLE DEL PROCESO: *
* *
* -> MANTENIMIENTO DE TARIFAS DIFERIDAS *
*---------------------------------------------------------------*
* - MODIFICACIONES - *
* FECHA USER ID DESCRIPCION *
*------------------------------------------------------------- *
* 20012003 C578A @003 CAMBIO RUTINA PARAMETROS XC7CQPA0 *
* 25022003 C450A @004 QR1CFHA CAMBIADO POR LLAMADOR XC8CM360 *
* 09122008 @005 SOFTTEK SUSTITUCION DEL COPY PEWC5200*
* IDAXFGN DE APLICACION EXTERNO *
* A XC, POR MIGRACION *
* 28012014 XA50350 P53757 NUEVO ESQUEMA DE TRAZABILIDAD *
*****************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. XC2CY750.
DATE-WRITTEN. 02/10/2001.
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 (XC2CY750) **'.
********************* COPYS COBOL *******************************
COPY DFHAID.
01 QGECABC-01.
COPY QGECABC.
P53757*
| *********** COPY PARA GRABACION DE LOGS DE TRAZABILIDAD **********
| 01 WSC-QR5CLOG0 PIC X(08) VALUE 'QR5CLOG0'.
| COPY QRWCLOGT.
| COPY XCWCTR58.
P53757*
*
************** COPY DE LA RUTINA TC2C1000 ***********************
************** TABLAS COORPORATIVAS ***********************
01 W-TCWC0000.
COPY TCWC0000.
COPY TCTC1130.
*--@001--INICIO
01 XC6CM410 PIC X(8) VALUE 'XC6CM410'.
01 XC6CM230 PIC X(8) VALUE 'XC6CM230'.
@004 01 XC8CM360 PIC X(8) VALUE 'XC8CM360'.
*--@001--FIN

************** COPY DE LA RUTINA DE CLIENTES ********************


************** SISTEMA DE PERSONAS ********************
*@005-I
01 PEWC5200.
* COPY PEWC5200.
COPY XCWC200.
*@005-F
************** COPY DE LA RUTINA XC7CQ000 ***********************
************** TABLA INTERNAS COMEXT CORP ***********************
01 W-XC7CQ000 PIC X(08) VALUE 'XC7CQ000'.
01 XCWCQ000.
COPY XCWCQ000.
************* COPY PARA GRABACION DE LOGS *********************
01 W-XC7CTLG0 PIC X(08) VALUE 'XC7CTLG0'.
01 W-XCWCTLG0.
COPY XCWCTLG0.
************* COPY PARA LA RUTINA DE HISTORICO *****************
01 W-XC7CYT50 PIC X(08) VALUE 'XC7CYT50'.
01 W-XCWCYT50.
COPY XCWCYT50.
*-
*--- COPY DE LA RUTINA DE VALIDACION DE FECHAS ---------------

COPY QCECRUTI.

*****COPY DE PARAMETROS POR PAIS


*@003-I
01 XC7CQPA0 PIC X(08) VALUE 'XC7CQPA0'.
01 W-XCWCQPA0.
COPY XCWCQPA0.
*@003-F

************************** 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 PF8 VALUE '08'.
88 PF10 VALUE '10'.
88 SPF10 VALUE '20'.
88 CLEAR VALUE '99'.
05 SW-PERSONA PIC X(02).
05 SW-EXISTE PIC X(02).
05 SW-ENCONTRO PIC X(02).
05 SW-CAMBIO-CLAVE PIC X(02).
*********************** CONSTANTES*******************************
*@002I
* COPY XCWCQPA.
*--- COPY DE PARAMETROS DE CADA PAIS (IDIOMA) -------------------

*01 W-XCWCQPA.
* COPY XCWCQPA.

*@002F
*********************** VARIABLES *******************************
01 WS-VARIABLES.
P53757*
| 02 W-ID-EVENTO PIC S9(9) COMP VALUE ZEROES.
| 02 W-TIPO-EVENTO PIC X(02) VALUE SPACES.
| 02 W-ANTES-DESPUES PIC X(01) VALUE SPACES.
P53757*
02 WS-W-PERIO PIC X(03).
02 WS-ACCESO PIC 9(01).
02 WS-PUNTERO PIC 9(04).
02 WS-PRIAPE PIC X(20).
02 WS-SEGAPE PIC X(20).
02 WS-NOMBRE PIC X(20).
02 WS-NOM-62 PIC X(62).
P53757*
| 02 W-GTS.
| 05 FILLER PIC X(4) VALUE 'XY75'.
| 05 W-GTS-SUFI PIC X(4) VALUE SPACES.
| 02 W-ITEM PIC S9(4) COMP VALUE ZEROES.
| 02 W-GTS-DATOS.
| 05 W-Y75-PRODUC PIC X(02) VALUE SPACES.
| 05 W-Y75-SUBPRO PIC X(04) VALUE SPACES.
| 05 W-Y75-CCLIEN PIC X(20) VALUE SPACES.
| 05 W-Y75-OPERAC PIC X(08) VALUE SPACES.
| 05 W-Y75-CAUTOGE PIC X(08) VALUE SPACES.
| 05 W-Y75-FREFERE PIC X(01) VALUE SPACES.
| 05 W-Y75-CPORDF PIC X(01) VALUE SPACES.
| 05 W-Y75-CFORMG PIC X(08) VALUE SPACES.
| 05 W-Y75-FECHAG PIC X(02) VALUE SPACES.
| 05 W-Y75-DIAGAS PIC X(03) VALUE SPACES.
| 05 W-Y75-PERIOG PIC X(03) VALUE SPACES.
| 05 W-Y75-TDIASG PIC X(01) VALUE SPACES.
| 05 W-Y75-ORDENG PIC X(01) VALUE SPACES.
| 05 W-Y75-CFORMC PIC X(08) VALUE SPACES.
| 05 W-Y75-FECHAC PIC X(02) VALUE SPACES.
| 05 W-Y75-DIACOM PIC X(03) VALUE SPACES.
| 05 W-Y75-PERIOC PIC X(03) VALUE SPACES.
| 05 W-Y75-TDIASC PIC X(03) VALUE SPACES.
| 05 W-Y75-DTDIAC PIC X(07) VALUE SPACES.
| 05 W-Y75-ORDENC PIC X(01) VALUE SPACES.
P53757*
*
02 WS-FECHAS.
05 WS-FECHA-DESDE1 PIC X(10) VALUE SPACES.
05 WS-FECHA-DESDE2 PIC X(10) VALUE SPACES.
05 WS-FECHA-HASTA1 PIC X(10) VALUE SPACES.
05 WS-FECHA-HASTA1 PIC X(10) VALUE SPACES.
05 WS-FECHA.
10 WS-FECHA-T18D2 PIC X(2) VALUE SPACES.
10 WS-FECHA-T18M2 PIC X(2) VALUE SPACES.
10 WS-FECHA-T18A2 PIC X(4) VALUE SPACES.
05 WS-FECHA1.
10 WS-FECHA-T18D1 PIC X(2) VALUE SPACES.
10 WS-FECHA-T18M1 PIC X(2) VALUE SPACES.
10 WS-FECHA-T18A1 PIC X(4) VALUE SPACES.
05 WS-FECHA5.
10 WS-FMAPA-TYA1 PIC X(4) VALUE SPACES.
10 FILLER PIC X(1) VALUE '-'.
10 WS-FMAPA-TYM1 PIC X(2) VALUE SPACES.
10 FILLER PIC X(1) VALUE '-'.
10 WS-FMAPA-TYD1 PIC X(2) VALUE SPACES.
05 W-FECHA5.
10 W-FMAPA-TYD1 PIC X(2) VALUE SPACES.
10 FILLER PIC X(1) VALUE '-'.
10 W-FMAPA-TYM1 PIC X(2) VALUE SPACES.
10 FILLER PIC X(1) VALUE '-'.
10 W-FMAPA-TYA1 PIC X(4) VALUE SPACES.
05 WS-FECHA4.
10 WS-FMAPA-TYA PIC X(4) VALUE SPACES.
10 FILLER PIC X(1) VALUE '-'.
10 WS-FMAPA-TYM PIC X(2) VALUE SPACES.
10 FILLER PIC X(1) VALUE '-'.
10 WS-FMAPA-TYD PIC X(2) VALUE SPACES.
05 W-FECHA4.
10 W-FMAPA-TYD PIC X(2) VALUE SPACES.
10 FILLER PIC X(1) VALUE '-'.
10 W-FMAPA-TYM PIC X(2) VALUE SPACES.
10 FILLER PIC X(1) VALUE '-'.
10 W-FMAPA-TYA PIC X(4) VALUE SPACES.
05 W-CAA-FECHA.
10 W-CAA-TYD PIC X(2) VALUE SPACES.
10 W-CAA-TYM PIC X(2) VALUE SPACES.
10 W-CAA-TYA PIC X(4) VALUE SPACES.
05 W-FREFERE-F PIC X(10) VALUE SPACES.
05 W-FREFERE PIC X(08) VALUE SPACES.
***01 W-VARIABLES-TITULOS1.
**** 05 W-PRODUC PIC X(02).
******05 W-DESPRO PIC X(30).
01 W-VARIABLES-TITULOS.
05 W-PRODUC PIC X(02).
05 W-DESPRO PIC X(30).
05 W-SUBPRO PIC X(04).
05 W-DESSUB PIC X(40).
05 W-CCLIEN PIC X(10).
05 W-DCLIEN PIC X(50).
05 W-COFIOPE PIC X(04).
05 W-CCTAOPE PIC X(10).
05 W-OPERAC PIC X(20).
05 W-LOPERAC PIC X(15) VALUE SPACES.
01 W-VARIABLES.
02 W-VARIABLES-MAPA.
05 W-CPORDF PIC X(03).
05 W-CFORMG PIC X(03).
05 W-FECHAG PIC X(08).
05 W-DIAGAS PIC 9(02).
05 W-PERIOG PIC X(03).
05 W-RPERIOG REDEFINES W-PERIOG PIC 9(03).
05 W-DPERIG PIC X(20).
05 W-TDIASG PIC X(03).
05 W-DTDIAG PIC X(20).
05 W-ORDENG PIC X(03).
05 W-DORDEG PIC X(20).
05 W-CFORMC PIC X(03).
05 W-FECHAC PIC X(08).
05 W-DIACOM PIC 9(02).
05 W-PERIOC PIC X(03).
05 W-RPERIOC REDEFINES W-PERIOC PIC 9(03).
05 W-DPERIC PIC X(20).
05 W-TDIASC PIC X(03).
05 W-DTDIAC PIC X(20).
05 W-ORDENC PIC X(03).
05 W-DORDEC PIC X(20).
02 W-OTRAS-VARIABLES.
05 W-DTITULO PIC X(30).
05 W-ACCION PIC X(03).
05 W-ERROR PIC X(40).
05 W-SQLERR PIC X(07).
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).
05 W-XCNCY75.
15 W-CAUTOGE PIC X(08) VALUE SPACES.
15 W-CAUTOGEL PIC S9(4) COMP.
15 W-DIAGASL PIC S9(4) COMP.
15 W-DIACOML PIC S9(4) COMP.
15 W-CPORDFL PIC S9(4) COMP.
15 W-CFORMGL PIC S9(4) COMP.
15 W-FECHAGL PIC S9(4) COMP.
15 W-PERIOGL PIC S9(4) COMP.
15 W-TDIASGL PIC S9(4) COMP.
15 W-ORDENGL PIC S9(4) COMP.
15 W-CFORMCL PIC S9(4) COMP.
15 W-FECHACL PIC S9(4) COMP.
15 W-PERIOCL PIC S9(4) COMP.
15 W-TDIASCL PIC S9(4) COMP.
15 W-ORDENCL PIC S9(4) COMP.
05 W-XCNCY75-INI PIC X(1000).
***************** DECLARACION DE TABLAS DB2 *********************
EXEC SQL INCLUDE SQLCA END-EXEC.
EXEC SQL INCLUDE XCGTY18 END-EXEC.
EXEC SQL INCLUDE XCGTY17 END-EXEC.
EXEC SQL INCLUDE XCGTY14 END-EXEC.
*********** IDENTIFICADOR DE FINAL DE WORKING STORAGE ***********
01 LT-FINAL-WS.
05 LT-FINAL-W PIC X(40) VALUE
'*** FINAL WORKING STORAGE (XC2CY750) ***'.
* *
LINKAGE SECTION.
*===============
01 DFHCOMMAREA.
COPY QGECCAA.
COPY XCECCMA.
COPY XCECPCA.
COPY XCNCY75.
*@003-I
*01 XCWCQPX-01.
* COPY XCWCQPX.
*@003-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.
*
*@002I
*@003-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.
*@003-F
*@002F
EXEC CICS
IGNORE CONDITION ERROR
END-EXEC.
IF EIBRESP NOT EQUAL DFHRESP(NORMAL)
MOVE 'ERROR CICS XC2CY750' TO ABC-REFERENCIA
MOVE 'XC2CY750' TO ABC-OBJETO-ERROR
PERFORM 999999-ERROR-CICS
END-IF.
SET ADDRESS OF XCNCY75 TO CAA-PTR-COPYIN.
SET ADDRESS OF XCECCMA TO CAA-PTRDATA.
*@003-I
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
*@003-F
IF CAA-CASO = 'R'
MOVE CAA-DATOS TO XPCA-CLAVE
MOVE ' ' TO CAA-CASO
END-IF.

MOVE CAA-FECHA-CONT2(9:2) TO W-CAA-FECHA (1:2) 07280000


MOVE CAA-FECHA-CONT2(6:2) TO W-CAA-FECHA (3:2) 07280000
MOVE CAA-FECHA-CONT2(1:4) TO W-CAA-FECHA (5:4). 07280000
PERFORM LIMPIAR-CURSOR.
P53757*
| MOVE CAA-TERMINAL TO W-GTS-SUFI.
P53757*
*
*****************************************************************
* *
* 200000-PROCESO-PROGRAMA *
* *
* LOS PASOS A DAR EN ESTE PARRAFO SON LOS SIGUIENTES: *
* *
* DECIDIR ENTRE LOS DOS ESTADOS POSIBLES *
* *
* - INICIO *
* - CONTINUACION *
* - CONFIRMACION *
*****************************************************************
*
200000-PROCESO-PROGRAMA.
*
EVALUATE TRUE
WHEN CAA-88-ESTADO-INICIO
PERFORM 210000-ESTADO-INICIO
WHEN CAA-88-ESTADO-CONTIN
PERFORM 220000-ESTADO-CONTINUACION
WHEN CAA-88-ESTADO-CONFIR
PERFORM 230000-ESTADO-CONFIRMACION
END-EVALUATE.
*
*****************************************************************
* *
* 210000-ESTADO-INICIO *
* *
*****************************************************************
210000-ESTADO-INICIO.
*
MOVE XCNCY75 TO W-XCNCY75-INI
MOVE LOW-VALUES TO XCNCY75
MOVE XPCA-CAUTOGE TO W-CAUTOGE.
MOVE '31129999' TO W-FREFERE.
MOVE '9999-12-31' TO W-FREFERE-F.
IF XPCA-YALTA EQUAL 'S'
PERFORM 211000-PREPARAR-ALTA
ELSE
PERFORM 222000-CONSULTAR
END-IF.
P53757*
| PERFORM 210100-WRITEQ-TS
P53757*
MOVE -1 TO W-CAUTOGEL.
*
*-----------------------------*
211000-PREPARAR-ALTA.
*-----------------------------*
IF W-CAUTOGE EQUAL SPACES OR
W-CAUTOGE EQUAL LOW-VALUES
MOVE 'XCA0011' TO CAA-COD-AVISO1
MOVE 'COD.AUTOGENERADO' TO CAA-VAR1-AVISO1
MOVE -1 TO W-CAUTOGEL
ELSE
PERFORM 222210-ACCESAR-XCDTY18
IF SW-EXISTE EQUAL 'SI'
MOVE 'XCE0014' TO CAA-COD-ERROR
MOVE 'COD.AUTOGENERADO' TO CAA-VAR1-ERROR
MOVE -1 TO W-CAUTOGEL
END-IF
END-IF.
P53757*
| ******************************************************************
| * *
| * 210100-WRITEQ-TS *
| * *
| ******************************************************************
| 210100-WRITEQ-TS.
|
| MOVE CAA-TERMINAL TO W-GTS-SUFI
|
| 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 Y75-PRODUC TO W-Y75-PRODUC
| MOVE Y75-SUBPRO TO W-Y75-SUBPRO
| MOVE Y75-CCLIEN TO W-Y75-CCLIEN
| MOVE Y75-OPERAC TO W-Y75-OPERAC
| MOVE Y75-CAUTOGE TO W-Y75-CAUTOGE
| MOVE Y75-FREFERE TO W-Y75-FREFERE
| MOVE Y75-CPORDF TO W-Y75-CPORDF
| MOVE Y75-CFORMG TO W-Y75-CFORMG
| MOVE Y75-FECHAG TO W-Y75-FECHAG
| MOVE Y75-DIAGAS TO W-Y75-DIAGAS
| MOVE Y75-PERIOG TO W-Y75-PERIOG
| MOVE Y75-TDIASG TO W-Y75-TDIASG
| MOVE Y75-ORDENG TO W-Y75-ORDENG
| MOVE Y75-CFORMC TO W-Y75-CFORMC
| MOVE Y75-FECHAC TO W-Y75-FECHAC
| MOVE Y75-DIACOM TO W-Y75-DIACOM
| MOVE Y75-PERIOC TO W-Y75-PERIOC
| MOVE Y75-TDIASC TO W-Y75-TDIASC
| MOVE Y75-DTDIAC TO W-Y75-DTDIAC
| MOVE Y75-ORDENC TO W-Y75-ORDENC
|
| 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*
*
*****************************************************************
* *
* 220000-ESTADO-CONTINUACION *
* *
* EQUIVALENTE A 'RECIBIR MAPA' *
* *
* 1. VALIDAR CAMPOS VARIABLES DE MAPA *
* 2. VALIDAR TECLA PULSADA (PF3 O INTRO VALIDARS) *
* CUALQUIER OTRO CASO MOSTRARA MENSAJE DE ERROR *
* 3. INDICARA A ARQUITECTURA CUAL ES LA SIGUIENTE TRANSACCION *
* SEGUN INFORMACION DE ENTRADA *
* *
*****************************************************************
*
220000-ESTADO-CONTINUACION.
*
PERFORM 221000-CARGAR-WORKA-PANTALLA.
PERFORM 221000-COMPARAR-CLAVE.
MOVE CAA-TECLA TO SW-TECLA.
EVALUATE TRUE
WHEN PFENTER
IF SW-CAMBIO-CLAVE = 'SI'
PERFORM 222000-CONSULTAR
ELSE
PERFORM 222000-VALIDAR
END-IF
WHEN PF2
PERFORM 223000-MODIFICACION
WHEN PF3
PERFORM 224000-ALTA
WHEN PF4
PERFORM 225000-LIMPIAR
WHEN PF6
PERFORM 226000-DAR-DE-BAJA
WHEN SPF10
PERFORM 229000-MOVER-AUDITORIA
WHEN OTHER
MOVE 'XCE0001' TO CAA-COD-ERROR
END-EVALUATE.
MOVE -1 TO W-CAUTOGEL.
*
*---------------------*
221000-CARGAR-WORKA-PANTALLA.
*---------------------*
MOVE Y75-CAUTOGE TO W-CAUTOGE.
IF Y75-FREFERE EQUAL SPACES OR LOW-VALUES
MOVE '31129999' TO Y75-FREFERE
END-IF.
MOVE Y75-FREFERE TO W-FREFERE.
MOVE Y75-CPORDF TO W-CPORDF .
MOVE Y75-CFORMG TO W-CFORMG .
MOVE Y75-FECHAG TO W-FECHAG .
MOVE Y75-DIAGAS TO W-DIAGAS .
MOVE Y75-PERIOG TO W-PERIOG .
MOVE Y75-TDIASG TO W-TDIASG .
MOVE Y75-ORDENG TO W-ORDENG .
MOVE Y75-CFORMC TO W-CFORMC .
MOVE Y75-FECHAC TO W-FECHAC .
MOVE Y75-DIACOM TO W-DIACOM .
MOVE Y75-PERIOC TO W-PERIOC .
MOVE Y75-TDIASC TO W-TDIASC .
MOVE Y75-ORDENC TO W-ORDENC .
INSPECT W-CPORDF REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-CFORMG REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-FECHAG REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-DIAGAS REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-PERIOG REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-TDIASG REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-ORDENG REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-CFORMC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-FECHAC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-DIACOM REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-PERIOC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-TDIASC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-ORDENC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT W-CPORDF REPLACING ALL '_' BY SPACES.
INSPECT W-CFORMG REPLACING ALL '_' BY SPACES.
INSPECT W-DIAGAS REPLACING ALL '_' BY SPACES.
INSPECT W-PERIOG REPLACING ALL '_' BY SPACES.
INSPECT W-TDIASG REPLACING ALL '_' BY SPACES.
INSPECT W-ORDENG REPLACING ALL '_' BY SPACES.
INSPECT W-CFORMC REPLACING ALL '_' BY SPACES.
INSPECT W-DIACOM REPLACING ALL '_' BY SPACES.
INSPECT W-PERIOC REPLACING ALL '_' BY SPACES.
INSPECT W-TDIASC REPLACING ALL '_' BY SPACES.
INSPECT W-ORDENC REPLACING ALL '_' BY SPACES.
*---------------------*
221000-COMPARAR-CLAVE.
*---------------------*
IF W-CAUTOGE EQUAL XPCA-CAUTOGE
AND W-FREFERE = XPCA-FREFERE
MOVE 'NO' TO SW-CAMBIO-CLAVE
ELSE
MOVE 'SI' TO SW-CAMBIO-CLAVE
END-IF.
*
******************************************************************
* *
* 222000-CONSULTAR *
* *
******************************************************************
222000-CONSULTAR.
*
PERFORM 222100-VALIDAR-CLAVE.
PERFORM 222300-OBTENER-TITULOS.
PERFORM 222300-MOVER-TITULOS.
PERFORM 222200-CONSULTAR-DATOS.
PERFORM 222300-VALIDAR-DATOS.
MOVE 'XCA0001' TO CAA-COD-AVISO1.
MOVE 'CONSULTA' TO CAA-VAR1-AVISO1.
MOVE -1 TO W-CAUTOGEL.
*
*---------------------*
222100-VALIDAR-CLAVE.
*---------------------*
IF W-CAUTOGE EQUAL SPACES OR LOW-VALUES OR ZEROES
THEN MOVE 'XCE0006' TO CAA-COD-ERROR
MOVE 'AUTOGENERADO ' TO CAA-VAR1-ERROR
INITIALIZE W-VARIABLES-TITULOS
INITIALIZE W-VARIABLES-MAPA
PERFORM 300000-FIN-PROGRAMA.
IF W-FREFERE EQUAL SPACES OR LOW-VALUES
MOVE '31129999' TO Y75-FREFERE
MOVE '31129999' TO W-FREFERE
MOVE '9999-12-31' TO W-FREFERE-F.
PERFORM 222110-DESCARGAR-COMMAREA.
PERFORM 222130-BORRAR-DESCR-DATOS.
PERFORM 222190-CARGA-COMMAREA.
*------------------------*
*------------------------*
222110-DESCARGAR-COMMAREA.
*------------------------*
MOVE LOW-VALUES TO XPCA-CAUTOGE.
MOVE LOW-VALUES TO XPCA-FREFERE.
*------------------------*
222130-BORRAR-DESCR-DATOS.
*------------------------*
MOVE SPACES TO W-DPERIG .
MOVE SPACES TO W-DTDIAG .
MOVE SPACES TO W-DORDEG .
MOVE SPACES TO W-DPERIC .
MOVE SPACES TO W-DTDIAC .
MOVE SPACES TO W-DORDEC .
*----------------------*
222300-OBTENER-TITULOS.
*----------------------*
PERFORM 222300-LEER-XCDTY17.
PERFORM 222300-VALIDAR-CLIENTE.
PERFORM 222300-OBTENER-CPRODUC.
PERFORM 222300-OBTENER-CSUBPRD.
PERFORM 222300-OBTENER-CLIENTE.
*-----------------------*
222300-VALIDAR-CLIENTE.
*-----------------------*
IF TY17-XC-YPUNTUA = XPCA-YPUNTUA AND
TY17-XC-YDIFERI = XPCA-YDIFERI
THEN NEXT SENTENCE
ELSE
IF XPCA-YPUNTUA = 'S'
INITIALIZE W-VARIABLES-MAPA
INITIALIZE W-VARIABLES-TITULOS
PERFORM 01-PROTEGER-CAMPOS
MOVE 'AUTOGENERADO NO ' TO CAA-VAR1-ERROR
MOVE 'CONSULTA PUNTUAL ' TO CAA-VAR2-ERROR
MOVE 'XCE0079' TO CAA-COD-ERROR
MOVE -1 TO W-CAUTOGEL
PERFORM 300000-FIN-PROGRAMA
END-IF
IF XPCA-YPUNTUA = 'N'
INITIALIZE W-VARIABLES-MAPA
INITIALIZE W-VARIABLES-TITULOS
PERFORM 01-PROTEGER-CAMPOS
MOVE 'AUTOGENERADO NO ' TO CAA-VAR1-ERROR
MOVE 'CONSULTA ESPECIAL ' TO CAA-VAR2-ERROR
MOVE 'XCE0079' TO CAA-COD-ERROR
MOVE -1 TO W-CAUTOGEL
PERFORM 300000-FIN-PROGRAMA
END-IF
END-IF.
*-------------------*
222300-LEER-XCDTY17.
*--------------------*
MOVE W-CAUTOGE TO TY17-XC-CAUTOGE.
EXEC SQL
SELECT
TY17_XC_CENTIDA,
TY17_XC_CPRODUC,
TY17_XC_CSUBPRD,
TY17_XC_CCLILOC,
TY17_XC_CFASE ,
TY17_XC_COFIOPE,
TY17_XC_CCTAOPE,
TY17_XC_YDIFERI,
TY17_XC_YPUNTUA
INTO
:TY17-XC-CENTIDA,
:TY17-XC-CPRODUC,
:TY17-XC-CSUBPRD,
:TY17-XC-CCLILOC,
:TY17-XC-CFASE ,
:TY17-XC-COFIOPE,
:TY17-XC-CCTAOPE,
:TY17-XC-YDIFERI,
:TY17-XC-YPUNTUA
FROM XCDTY17
WHERE
TY17_XC_CAUTOGE = :W-CAUTOGE
END-EXEC.
EVALUATE SQLCODE
WHEN 00
MOVE TY17-XC-CPRODUC TO W-PRODUC
MOVE TY17-XC-CSUBPRD TO W-SUBPRO
MOVE TY17-XC-CCLILOC TO W-CCLIEN
MOVE '00' TO W-OPERAC (1:2)
MOVE TY17-XC-CPRODUC TO W-OPERAC (3:2)
MOVE '-' TO W-OPERAC (5:1)
MOVE TY17-XC-COFIOPE TO W-OPERAC (6:4)
MOVE '-' TO W-OPERAC (10:1)
MOVE TY17-XC-CCTAOPE TO W-OPERAC (11:10)
WHEN +100
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'AUTOGENERADO ' TO CAA-VAR1-ERROR
MOVE 'EN MAESTRO PREFERENC' TO CAA-VAR2-ERROR
MOVE -1 TO W-CAUTOGEL
INITIALIZE W-VARIABLES-MAPA
INITIALIZE W-VARIABLES-TITULOS
PERFORM 01-PROTEGER-CAMPOS
PERFORM 300000-FIN-PROGRAMA
WHEN OTHER
MOVE 'ACCESA-XCDTY17' TO W-REFERENCIA
MOVE 'XC2CY750' TO W-PROGRAMA
MOVE 'XCDTY17' TO W-TABLA
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*----------------------*
222300-MOVER-TITULOS.
*----------------------*
MOVE LOW-VALUES TO XCNCY75.
MOVE W-DESPRO TO Y75-DESPRO .
MOVE W-DESSUB TO Y75-DESSUB .
MOVE SPACES TO Y75-DCLIEN
MOVE WS-NOMBRE TO Y75-DCLIEN (1:15)
MOVE WS-PRIAPE TO Y75-DCLIEN (17:15)
MOVE WS-SEGAPE TO Y75-DCLIEN (34:15) .
MOVE W-OPERAC TO Y75-OPERAC .
IF TY17-XC-YPUNTUA = 'S' AND TY17-XC-YDIFERI = 'S'
MOVE ' POR OPERACION ' TO W-DTITULO
MOVE 'OPERACION : ' TO W-LOPERAC
MOVE 'OPERACION :' TO Y75-LOPERAC
END-IF
IF TY17-XC-YPUNTUA = 'N' AND TY17-XC-YDIFERI = 'S'
MOVE ' POR CLIENTE ' TO W-DTITULO
MOVE SPACES TO Y75-LOPERAC
MOVE SPACES TO Y75-OPERAC
MOVE SPACES TO W-LOPERAC
MOVE SPACES TO W-OPERAC
END-IF.
*----------------------*
222300-OBTENER-CPRODUC.
*----------------------*
INITIALIZE TCWC0000.
MOVE '0111' TO W000-CDTABLA.
MOVE W-PRODUC TO W000-CLAVTG.
MOVE 'NO' TO SW-EXISTE.
PERFORM 222300-ACCESAR-TC2C1000.
IF SW-EXISTE = 'SI'
MOVE W000-CONTOCUR(1:40) TO W-DESPRO
ELSE
MOVE 'NO EXISTE PROD EN TC' TO W-DESPRO
END-IF.
*-----------------------*
222300-ACCESAR-TC2C1000.
*-----------------------*
MOVE CAA-ENTIDAD TO W000-STBANCO.
MOVE CAA-IDIOMA-TERM TO W000-TCCIDIOM.
MOVE '01' TO W000-NUCLAVE.

CALL XC6CM410 USING DFHEIBLK TCWC0000

EVALUATE W000-CDRETORN
WHEN '00'
MOVE 'SI' TO SW-EXISTE
WHEN '10'
MOVE 'NO' TO SW-EXISTE
WHEN '30'
MOVE 'NI' TO SW-EXISTE
WHEN '80'
MOVE 'ACCESAR-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)
MOVE -1 TO W-CAUTOGEL
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE.
*----------------------*
222300-OBTENER-CSUBPRD.
*----------------------*
INITIALIZE TCWC0000.
MOVE WQPA-CTCSPRD TO W000-CDTABLA.
MOVE W-PRODUC TO W000-CLAVTG(1:2).
MOVE W-SUBPRO TO W000-CLAVTG(3:4).
MOVE 'NO' TO SW-EXISTE.
PERFORM 222300-ACCESAR-TC2C1000.
MOVE SPACES TO W-DESSUB
IF SW-EXISTE = 'SI'
MOVE W000-CONTOCUR (4:40) TO W-DESSUB
ELSE
MOVE 'NO EXISTE SUBPR EN TC' TO W-DESSUB
END-IF.
*----------------------*
222300-OBTENER-CLIENTE.
*----------------------*
OJOJO MOVE TY17-XC-CCLILOC TO W-CCLIEN .
INSPECT W-CCLIEN REPLACING ALL '_' BY SPACES.
INSPECT W-CCLIEN REPLACING ALL LOW-VALUES BY SPACES.
IF W-CCLIEN EQUAL SPACES
MOVE 'NO TIENE CODIGO CLIENTE ' TO W-DCLIEN
********** MOVE 'XCE0006' TO CAA-COD-ERROR
********** MOVE 'CLIENTE' TO CAA-VAR1-ERROR
********** PERFORM 300000-FIN-PROGRAMA
END-IF.
*
MOVE SPACES TO W-DCLIEN
INITIALIZE PEWC5200.
MOVE W-CCLIEN TO W520-NUMCLIEN.
MOVE 'NO' TO SW-EXISTE.
IF W-CCLIEN NOT EQUAL SPACE
PERFORM 222301-ACCESA-PE2C5200
IF SW-EXISTE = 'SI'
PERFORM 222302-FORMATEAR-NOMBRE
MOVE WS-NOM-62 TO W-DCLIEN
ELSE
MOVE '<<CLIENTE NO EXISTE EN BDATOS>> ' TO W-DCLIEN
********** MOVE 'XCE0013' TO CAA-COD-ERROR
********** MOVE 'EL CODIGO CLIENTE:' TO CAA-VAR1-ERROR
********** MOVE W-CCLIEN TO CAA-VAR2-ERROR
********** PERFORM 300000-FIN-PROGRAMA
END-IF
END-IF.
*-----------------------*
222301-ACCESA-PE2C5200.
*-----------------------*
CALL XC6CM230 USING DFHEIBLK PEWC5200
EVALUATE W520-PECRETOR
WHEN '00'
WHEN '20'
MOVE 'SI' TO SW-EXISTE
WHEN '10'
MOVE 'NO' TO SW-EXISTE
WHEN '99'
MOVE 'ACCESA-PE2C5200' TO W-REFERENCIA
MOVE 'PE2C5200' TO W-PROGRAMA
MOVE W520-TABLENAME TO W-TABLA
MOVE W520-SQLCODE TO W-SQLCODE
MOVE W520-SQLERRM TO W-SQLERRM
PERFORM 999999-ERROR-DB2
WHEN OTHER
MOVE 'XCE0020' TO CAA-COD-ERROR
MOVE W520-PECRETOR TO CAA-VAR1-ERROR
MOVE 'PE2C5200' TO CAA-VAR2-ERROR
MOVE CAA-CODTRAN TO CAA-VAR2-ERROR(16:4)
******** PERFORM 999999-LOG-ERR-PE2C5200
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE.
*-----------------------*
222302-FORMATEAR-NOMBRE.
*-----------------------*
MOVE SPACES TO WS-NOM-62.
MOVE 1 TO WS-PUNTERO.
MOVE W520-NOMBRE TO WS-NOMBRE.
MOVE W520-PRIAPE TO WS-PRIAPE.
MOVE W520-SEGAPE TO WS-SEGAPE.
*
IF W520-SUJGRUP = 'F'
MOVE 'SI' TO SW-PERSONA
ELSE
MOVE 'NO' TO SW-PERSONA
END-IF.
*
STRING WS-NOMBRE DELIMITED BY ' '
INTO WS-NOM-62
WITH POINTER WS-PUNTERO
END-STRING.
*
IF SW-PERSONA = 'SI'
IF WS-PRIAPE NOT = SPACES AND
WS-PRIAPE NOT = LOW-VALUES
STRING ' ' WS-PRIAPE DELIMITED BY ' '
INTO WS-NOM-62
WITH POINTER WS-PUNTERO
END-STRING
END-IF
ELSE
IF WS-PRIAPE NOT = SPACES AND
WS-PRIAPE NOT = LOW-VALUES
STRING WS-PRIAPE DELIMITED BY ' '
INTO WS-NOM-62
WITH POINTER WS-PUNTERO
END-STRING
END-IF
END-IF.
*
IF SW-PERSONA = 'SI'
IF WS-SEGAPE NOT = SPACES AND
WS-SEGAPE NOT = LOW-VALUES
STRING ' ' WS-SEGAPE DELIMITED BY ' '
INTO WS-NOM-62
WITH POINTER WS-PUNTERO
END-STRING
END-IF
ELSE
IF WS-SEGAPE NOT = SPACES AND
WS-SEGAPE NOT = LOW-VALUES
STRING WS-SEGAPE DELIMITED BY ' '
INTO WS-NOM-62
WITH POINTER WS-PUNTERO
END-STRING
END-IF
END-IF.
*-----------------------*
222190-CARGA-COMMAREA.
*-----------------------*
MOVE W-CAUTOGE TO XPCA-CAUTOGE.
MOVE W-FREFERE TO XPCA-FREFERE.
*---------------------*
222200-CONSULTAR-DATOS.
*---------------------*
PERFORM 222210-ACCESAR-XCDTY18.
IF SW-EXISTE = 'SI'
MOVE TY18-XC-FREFERE TO W-FREFERE-F
MOVE TY18-XC-CPORDIF TO W-CPORDF
MOVE TY18-XC-CFORDF1 TO W-CFORMG
MOVE TY18-XC-FDIFER1 (9:2) TO W-FECHAG(1:2)
MOVE TY18-XC-FDIFER1 (6:2) TO W-FECHAG(3:2)
MOVE TY18-XC-FDIFER1 (1:4) TO W-FECHAG(5:4)
MOVE TY18-XC-CTIPDI1 TO W-TDIASG
MOVE TY18-XC-NDIA1 TO W-DIAGAS
MOVE TY18-XC-CPERIO1 TO W-PERIOG
MOVE TY18-XC-CORDEN1 TO W-ORDENG
MOVE TY18-XC-CFORDF2 TO W-CFORMC
MOVE TY18-XC-FDIFER2 (9:2) TO W-FECHAC(1:2)
MOVE TY18-XC-FDIFER2 (6:2) TO W-FECHAC(3:2)
MOVE TY18-XC-FDIFER2 (1:4) TO W-FECHAC(5:4)
MOVE TY18-XC-CTIPDI2 TO W-TDIASC
MOVE TY18-XC-NDIA2 TO W-DIACOM
MOVE TY18-XC-CPERIO2 TO W-PERIOC
MOVE TY18-XC-CORDEN2 TO W-ORDENC
ELSE
******** MOVE LOW-VALUES TO XCNCY75
INITIALIZE W-VARIABLES-MAPA
MOVE 'XCA0010' TO CAA-COD-AVISO1
MOVE 'AUTOGENERADO' TO CAA-VAR1-AVISO1
MOVE 'EN DIFERIDOS ' TO CAA-VAR2-AVISO1
MOVE -1 TO W-CAUTOGEL
PERFORM 01-PROTEGER-CAMPOS
PERFORM 300000-FIN-PROGRAMA
END-IF.
*---------------------*
222210-ACCESAR-XCDTY18.
*---------------------*
PERFORM 222211-CARGA-CLAVE-XCDTY18.
EXEC SQL
SELECT
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
INTO
: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
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 'XC2CY750' TO W-PROGRAMA
MOVE 'ACCESAR-XCDTY18' TO W-REFERENCIA
MOVE -1 TO W-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*----------------------------*
222211-CARGA-CLAVE-XCDTY18.
*----------------------------*
MOVE W-CAUTOGE TO TY18-XC-CAUTOGE.
MOVE W-FREFERE (1:2) TO W-FREFERE-F (9:2)
MOVE '-' TO W-FREFERE-F (8:1)
MOVE W-FREFERE (3:2) TO W-FREFERE-F (6:2)
MOVE '-' TO W-FREFERE-F (5:1)
MOVE W-FREFERE (5:4) TO W-FREFERE-F (1:4)
MOVE W-FREFERE-F TO TY18-XC-FREFERE.
*--------------------------*
222300-VALIDAR-DATOS-INICIO.
*--------------------------*
PERFORM 222130-BORRAR-DESCR-DATOS
PERFORM 222300-OBTENER-TITULOS.
PERFORM 222300-MOVER-TITULOS.
PERFORM 222300-VALIDAR-DATOS-1.
PERFORM 222300-MOVER-DATOS-1.
*---------------------*
222300-VALIDAR-DATOS.
*---------------------*
PERFORM 222130-BORRAR-DESCR-DATOS
PERFORM 222300-OBTENER-TITULOS.
PERFORM 222300-MOVER-TITULOS.
PERFORM 222300-VALIDAR-DATOS-1.
PERFORM 222300-MOVER-DATOS-1.
* 09750000
222300-MOVER-DATOS-1. 09760000
*--------------------- 09770000
MOVE W-CPORDF TO Y75-CPORDF .
MOVE W-CFORMG TO Y75-CFORMG .
MOVE W-FECHAG TO Y75-FECHAG .
MOVE W-DIAGAS TO Y75-DIAGAS .
MOVE W-PERIOG TO Y75-PERIOG .
MOVE W-DPERIG TO Y75-DPERIG .
MOVE W-TDIASG TO Y75-TDIASG .
MOVE W-DTDIAG TO Y75-DTDIAG .
MOVE W-ORDENG TO Y75-ORDENG .
MOVE W-DORDEG TO Y75-DORDEG .
MOVE W-CFORMC TO Y75-CFORMC .
MOVE W-FECHAC TO Y75-FECHAC .
MOVE W-DIACOM TO Y75-DIACOM .
MOVE W-PERIOC TO Y75-PERIOC .
MOVE W-DPERIC TO Y75-DPERIC .
MOVE W-TDIASC TO Y75-TDIASC .
MOVE W-DTDIAC TO Y75-DTDIAC .
MOVE W-ORDENC TO Y75-ORDENC .
MOVE W-DORDEC TO Y75-DORDEC .

* 09750000
222300-VALIDAR-DATOS-1. 09760000
*--------------------- 09770000
09780000
EVALUATE W-CPORDF 09790000
WHEN 'G' 09800000
IF W-CFORMG = 'F' 09810000
PERFORM 01-VALIDA-GASTOS-FECHA 09820000
END-IF 09830000
IF W-CFORMG = 'D' 09840000
PERFORM 02-VALIDA-GASTOS-DIA 09850000
END-IF 09860000
IF W-CFORMG = ' ' OR LOW-VALUES 09840000
MOVE 'XCA0011' TO CAA-COD-AVISO1 09880000
MOVE 'FORMA DIF. EN GASTO' TO CAA-VAR1-AVISO109890000
MOVE -1 TO W-CFORMGL 09910000
PERFORM 300000-FIN-PROGRAMA 09920000
END-IF 09860000
IF W-CFORMG NOT = 'F' AND 09840000
W-CFORMG NOT = 'D' 09840000
MOVE 'XCE0016' TO CAA-COD-ERROR 09880000
MOVE 'FORMA DIF. EN GASTO' TO CAA-VAR1-ERROR 09890000
MOVE -1 TO W-CFORMGL 09910000
PERFORM 300000-FIN-PROGRAMA 09920000
END-IF 09930000
WHEN 'C' 09950000
IF W-CFORMC = 'F' 09960000
PERFORM 03-VALIDA-COMISIONES-FECHA 09970000
END-IF 09980000
IF W-CFORMC = 'D' 09990000
PERFORM 04-VALIDA-COMISIONES-DIA 10000000
END-IF
IF W-CFORMC = ' ' OR LOW-VALUES 09840000
MOVE 'XCA0011' TO CAA-COD-AVISO1 09880000
MOVE 'FORMA DIF. COMISION' TO CAA-VAR1-AVISO109890000
MOVE -1 TO W-CFORMCL 09910000
PERFORM 300000-FIN-PROGRAMA 09920000
END-IF 09860000
IF W-CFORMC NOT = 'F' AND 09840000
W-CFORMC NOT = 'D' 09840000
MOVE 'XCE0016' TO CAA-COD-ERROR 09880000
MOVE 'FORMA DIF. COMISION' TO CAA-VAR1-ERROR 09890000
MOVE -1 TO W-CFORMCL 09910000
PERFORM 300000-FIN-PROGRAMA 09920000
END-IF 09930000
WHEN 'A' 10100000
IF W-CFORMG = 'F' AND W-CFORMC = 'F' 10110000
PERFORM 01-VALIDA-GASTOS-FECHA 10120000
PERFORM 03-VALIDA-COMISIONES-FECHA 10130000
END-IF 10140000
IF W-CFORMG = 'D' AND W-CFORMC = 'D' 10150000
PERFORM 02-VALIDA-GASTOS-DIA 10160000
PERFORM 04-VALIDA-COMISIONES-DIA 10170000
END-IF 10180000
IF W-CFORMG = 'F' AND W-CFORMC = 'D' 10190000
PERFORM 01-VALIDA-GASTOS-FECHA 10200000
PERFORM 04-VALIDA-COMISIONES-DIA 10210000
END-IF 10220000
IF W-CFORMG = 'D' AND W-CFORMC = 'F' 10230000
PERFORM 02-VALIDA-GASTOS-DIA 10240000
PERFORM 03-VALIDA-COMISIONES-FECHA 10250000
END-IF 10260000
IF W-CFORMG = ' ' OR LOW-VALUES 09840000
MOVE 'XCA0011' TO CAA-COD-AVISO1 09880000
MOVE 'FORMA DIF. EN GASTO' TO CAA-VAR1-AVISO109890000
MOVE -1 TO W-CFORMGL 09910000
PERFORM 300000-FIN-PROGRAMA 09920000
END-IF
IF W-CFORMG NOT = 'F' AND 09860000
W-CFORMG NOT = 'D' 09860000
MOVE 'XCE0016' TO CAA-COD-ERROR 09880000
MOVE 'FORMA DIF. EN GASTO' TO CAA-VAR1-ERROR 09890000
MOVE -1 TO W-CFORMGL 09910000
PERFORM 300000-FIN-PROGRAMA 09920000
END-IF 09930000
IF W-CFORMC EQUAL SPACES OR LOW-VALUES 09860000
MOVE 'XCA0011' TO CAA-COD-AVISO1 09880000
MOVE 'FORMA DIF. COMISION' TO CAA-VAR1-AVISO109890000
MOVE -1 TO W-CFORMCL 09910000
PERFORM 300000-FIN-PROGRAMA 09920000
END-IF 09860000
IF W-CFORMC NOT = 'F' AND 09860000
W-CFORMC NOT = 'D' 09860000
MOVE 'XCE0016' TO CAA-COD-ERROR 09880000
MOVE 'FORMA DIF. COMISION' TO CAA-VAR1-ERROR 09890000
MOVE -1 TO W-CFORMCL 09910000
PERFORM 300000-FIN-PROGRAMA 09920000
END-IF 09930000
WHEN OTHER 10490000
MOVE 'XCE0016' TO CAA-COD-ERROR 10510000
MOVE 'DIFERIR G,C,A ' TO CAA-VAR1-ERROR 10520000
MOVE -1 TO W-CPORDFL 10530000
PERFORM 300000-FIN-PROGRAMA 10540000
END-EVALUATE. 10550000
222300-VALIDAR-PERIODO.
*----------------------
IF WS-ACCESO = 1
IF W-RPERIOG < W-DIAGAS
MOVE 'XCA0021' TO CAA-COD-AVISO1
MOVE 'PERIODO ' TO CAA-VAR1-AVISO1(1:10)
MOVE 'GASTO ' TO CAA-VAR1-AVISO1(11:10)
MOVE '< ' TO CAA-VAR2-AVISO1(1:03)
MOVE 'NUM.DIAS ' TO CAA-VAR2-AVISO1(4:10)
MOVE -1 TO W-PERIOGL
PERFORM 300000-FIN-PROGRAMA
END-IF
END-IF
IF WS-ACCESO = 2
IF W-RPERIOC < W-DIACOM
MOVE 'XCA0021' TO CAA-COD-AVISO1
MOVE 'PERIODO ' TO CAA-VAR1-AVISO1(1:10)
MOVE 'COMISION ' TO CAA-VAR1-AVISO1(11:10)
MOVE '< ' TO CAA-VAR2-AVISO1(1:03)
MOVE 'NUM.DIAS ' TO CAA-VAR2-AVISO1(4:10)
MOVE -1 TO W-PERIOCL
PERFORM 300000-FIN-PROGRAMA
END-IF
END-IF

INITIALIZE XCWCQ000
MOVE '1' TO WQ01-COPCIO
MOVE CAA-ENTIDAD TO WQ01-CBANCO
MOVE '07' TO WQ01-CMODLO
MOVE '018' TO WQ01-CTABLA
MOVE WQPA-CIDIPAI TO WQ01-CIDIOM
EVALUATE WS-ACCESO
WHEN 1
IF W-PERIOG = SPACES OR LOW-VALUES
MOVE 'XCA0011' TO CAA-COD-AVISO1
MOVE 'PERIODO GASTO' TO CAA-VAR1-AVISO1
MOVE -1 TO W-PERIOGL
PERFORM 300000-FIN-PROGRAMA
END-IF
MOVE W-PERIOG TO WQ01-CCLAVE
WHEN 2
IF W-PERIOC = SPACES OR LOW-VALUES
MOVE 'XCA0011' TO CAA-COD-AVISO1
MOVE 'PERIODO COMISION' TO CAA-VAR1-AVISO1
MOVE -1 TO W-PERIOCL
PERFORM 300000-FIN-PROGRAMA
END-IF
MOVE W-PERIOC TO WQ01-CCLAVE
END-EVALUATE
PERFORM 2223910-ACCESA-XC7CQ000
EVALUATE SW-ENCONTRO
WHEN 'SI'
IF WS-ACCESO = 1
MOVE WQ01-DATOSAL (1) TO W-DPERIG
END-IF
IF WS-ACCESO = 2
MOVE WQ01-DATOSAL (1) TO W-DPERIC
END-IF
WHEN OTHER
MOVE 'XCA0010' TO CAA-COD-AVISO1
MOVE 'CODIGO DE PERIODO' TO CAA-VAR1-AVISO1
IF WS-ACCESO = 1
MOVE -1 TO W-PERIOGL
END-IF
IF WS-ACCESO = 2
MOVE -1 TO W-PERIOCL
END-IF
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE.
*****************************************************************
* 2223910-ACCESA-XC7CQ000 *
*---------------------------------------------------------------*
* LLAMADA A RUTINA DE TABLAS INTERNAS PARA VALIDAR EL *
* CAMPO PERIODO. *
*****************************************************************
*
2223910-ACCESA-XC7CQ000.
*-----------------------*
EXEC CICS
LINK PROGRAM ('XC7CQ000')
COMMAREA (XCWCQ000)
END-EXEC
IF EIBRESP NOT EQUAL DFHRESP(NORMAL)
MOVE 'ERROR EN XC7CQ000' TO ABC-REFERENCIA
MOVE 'XC7CQ000' TO ABC-OBJETO-ERROR
PERFORM 999999-ERROR-CICS
END-IF
EVALUATE WQ01-CDRETO
WHEN '00'
MOVE 'SI' TO SW-ENCONTRO
WHEN '30'
MOVE 'NO' TO SW-ENCONTRO
WHEN OTHER
MOVE WQ01-COD-ARQ TO CAA-COD-ERROR
MOVE WQ01-VAR1-ARQ TO CAA-VAR1-ERROR
MOVE WQ01-VAR1-ARQ TO CAA-VAR1-ERROR
MOVE WQ01-VAR2-ARQ TO CAA-VAR2-ERROR
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE.
*
*
* 06810000
01-OTORGAR-ATRIBUTOS. 06820000
IF W-CPORDF = 'G'
MOVE ' ' TO W-CFORMC 06840000
MOVE '01010001' TO W-FECHAC 06840000
MOVE ZEROES TO W-DIACOM 06840000
MOVE ZEROES TO W-PERIOC 06860000
MOVE SPACES TO W-TDIASC 06880000
MOVE SPACES TO W-ORDENC 06900000
MOVE '/' TO Y75-CFORMCA 06840000
Y75-FECHACA 06840000
Y75-DIACOMA 06840000
Y75-PERIOCA 06860000
Y75-TDIASCA 06880000
Y75-ORDENCA 06900000
MOVE 'A' TO Y75-CFORMGA
IF W-CFORMG = 'F'
MOVE 'A' TO Y75-FECHAGA 06840000
MOVE '/' TO Y75-DIAGASA 06840000
Y75-PERIOGA 06860000
Y75-TDIASGA 06880000
Y75-ORDENGA 06900000
MOVE ZEROES TO W-DIAGAS 06840000
MOVE SPACES TO W-PERIOG 06860000
W-TDIASG 06880000
W-ORDENG 06900000
END-IF
IF W-CFORMG = 'D'
MOVE 'A' TO Y75-DIAGASA 06840000
Y75-PERIOGA 06860000
Y75-TDIASGA 06880000
Y75-ORDENGA 06900000
MOVE '/' TO Y75-FECHAGA 06840000
MOVE '01010001' TO W-FECHAG 06840000
END-IF
END-IF.
**************** COMISION
IF W-CPORDF = 'C'
MOVE ' ' TO W-CFORMG 06840000
MOVE '01010001' TO W-FECHAG 06840000
MOVE ZEROES TO W-DIAGAS 06840000
MOVE ZEROES TO W-PERIOG 06860000
MOVE SPACES TO W-TDIASG 06880000
MOVE SPACES TO W-ORDENG 06900000
MOVE '/' TO Y75-CFORMGA 06840000
Y75-FECHAGA 06840000
Y75-DIAGASA 06840000
Y75-PERIOGA 06860000
Y75-TDIASGA 06880000
Y75-ORDENGA 06900000
MOVE 'A' TO Y75-CFORMCA
IF W-CFORMC = 'F'
MOVE 'A' TO Y75-FECHACA 06840000
MOVE '/' TO Y75-DIACOMA 06840000
Y75-PERIOGA 06860000
Y75-TDIASGA 06880000
Y75-ORDENGA 06900000
MOVE ZEROES TO W-DIACOM 06840000
MOVE SPACES TO W-PERIOG 06860000
W-TDIASG 06880000
W-ORDENG 06900000
END-IF
IF W-CFORMC = 'D'
MOVE 'A' TO Y75-DIACOMA 06840000
Y75-PERIOCA 06860000
Y75-TDIASCA 06880000
Y75-ORDENCA 06900000
MOVE '/' TO Y75-FECHACA 06840000
MOVE '01010001' TO W-FECHAC 06840000
END-IF
END-IF.
***************
********OJO SE DIFIEREN AMBAS
IF W-CPORDF = 'A'
MOVE 'A' TO Y75-CFORMCA 06840000
Y75-FECHACA 06840000
Y75-DIACOMA 06840000
Y75-PERIOCA 06860000
Y75-TDIASCA 06880000
Y75-ORDENCA 06900000
MOVE 'A' TO Y75-CFORMGA 06840000
Y75-FECHAGA 06840000
Y75-DIAGASA 06840000
Y75-PERIOGA 06860000
Y75-TDIASGA 06880000
Y75-ORDENGA 06900000
IF W-CFORMG = 'F'
MOVE '/' TO Y75-DIAGASA 06840000
Y75-PERIOGA 06860000
Y75-TDIASGA 06880000
Y75-ORDENGA 06900000
MOVE ZEROES TO W-DIAGAS 06840000
MOVE SPACES TO W-PERIOG 06860000
W-TDIASG 06880000
W-ORDENG 06900000
END-IF
IF W-CFORMG = 'D'
MOVE '/' TO Y75-FECHAGA 06840000
MOVE '01010001' TO W-FECHAG 06840000
END-IF
********************COMISIONES ****+
IF W-CFORMC = 'F'
MOVE '/' TO Y75-DIACOMA 06840000
Y75-PERIOCA 06860000
Y75-TDIASCA 06880000
Y75-ORDENCA 06900000
MOVE ZEROES TO W-DIACOM 06840000
MOVE SPACES TO W-PERIOC 06860000
W-TDIASC 06880000
W-ORDENC 06900000
END-IF
IF W-CFORMC = 'D'
MOVE '/' TO Y75-FECHACA 06840000
MOVE '01010001' TO W-FECHAC 06840000
END-IF
END-IF.
01-PROTEGER-CAMPOS. 06820000
MOVE '/' TO Y75-CFORMCA 06840000
Y75-FECHACA 06840000
Y75-DIACOMA 06840000
Y75-PERIOCA 06860000
Y75-TDIASCA 06880000
Y75-ORDENCA . 06900000
MOVE '/' TO Y75-CFORMGA 06840000
Y75-FECHAGA 06840000
Y75-DIAGASA 06840000
Y75-PERIOGA 06860000
Y75-TDIASGA 06880000
Y75-ORDENGA . 06900000
***************************************************************** 06750000
* 01-VALIDA-GASTOS-FECHA * 06760000
*---------------------------------------------------------------* 06770000
* EN ESTE PARRAFO SE EFECTUALA VALIDACION DE LOS DATOS QUE * 06780000
* INGRESARON EN LA PANTALLA. * 06790000
***************************************************************** 06800000
01-VALIDA-GASTOS-FECHA. 06820000
*---------------------------- 06830000
IF W-CPORDF = 'G' OR 'A' 06850000
MOVE ZEROES TO W-DIAGAS 06860000
MOVE SPACES TO W-PERIOG 06870000
W-TDIASG 06880000
W-DTDIAG 06890000
W-ORDENG 06900000
W-DORDEG 06910000
END-IF
07080000
*RUTINA PARA VALIDAR FECHA 07090000
07100000
INITIALIZE QCECRUTI 07110000
07120000
MOVE 8 TO RUTI-LONG 07130000
MOVE W-FECHAG TO RUTI-CAMPO 07140000
07150000
@004 * CALL 'QR1CFHA' USING QCECRUTI 07160000
@004 CALL XC8CM360 USING QCECRUTI 07160000
07170000
EVALUATE RUTI-CODERR 07180000
WHEN SPACES 07190000
*FECHA CORRECTA 07200000
MOVE W-FECHAG(1:2) TO WS-FMAPA-TYD1 W-FMAPA-TYD1 07210000
MOVE W-FECHAG(3:2) TO WS-FMAPA-TYM1 W-FMAPA-TYM1 07220000
MOVE W-FECHAG(5:4) TO WS-FMAPA-TYA1 W-FMAPA-TYA1 07230000
IF (WS-FECHA5 <= CAA-FECHA-CONT2) 07240000
MOVE 'XCA0021' TO CAA-COD-AVISO1 07260000
MOVE 'FEC.GASTO ' TO CAA-VAR1-AVISO1(1:10) 07270000
MOVE W-FECHAG TO CAA-VAR1-AVISO1(11:10) 07270000
MOVE '<,=' TO CAA-VAR2-AVISO1(1:03) 07270000
MOVE W-CAA-FECHA TO CAA-VAR2-AVISO1(4:10) 07280000
MOVE -1 TO W-FECHAGL 07290000
PERFORM 300000-FIN-PROGRAMA 07300000
END-IF 07319000
WHEN OTHER 07350000
*FECHA INCORRECTA 07360000
MOVE 'XCE0016' TO CAA-COD-ERROR 07380000
MOVE Y75-FECHAG TO CAA-VAR1-ERROR 07390000
MOVE 'FECHA GASTO' TO CAA-VAR2-ERROR 07400000
MOVE -1 TO W-FECHAGL 07410000
PERFORM 300000-FIN-PROGRAMA 07420000
END-EVALUATE. 07430000
***************************************************************** 07440000
* 02-VALIDA-GASTOS-DIA * 07450000
*---------------------------------------------------------------* 07460000
* EN ESTE PARRAFO SE EFECTUALA VALIDACION DE LOS DATOS QUE * 07470000
* INGRESARON EN LA PANTALLA. * 07480000
***************************************************************** 07490000
* 07500000
02-VALIDA-GASTOS-DIA. 07510000
*---------------------------- 07520000
07530000
IF W-CPORDF = 'G' OR 'A' 07540000
MOVE '01010001' TO W-FECHAG 07550000
END-IF
07670000
IF W-DIAGAS < 1 OR W-DIAGAS > 28 07730000
MOVE 'XCA0011' TO CAA-COD-AVISO1 07750000
MOVE 'DIA [1,28] EN GASTOS' TO CAA-VAR1-AVISO1 07760000
MOVE -1 TO W-DIAGASL 07780000
PERFORM 300000-FIN-PROGRAMA 07790000
END-IF 07800000

MOVE 1 TO WS-ACCESO 07680000


MOVE W-PERIOG TO WS-W-PERIO 07690000
PERFORM 222300-VALIDAR-PERIODO 07700000
MOVE 0 TO WS-ACCESO 07710000

IF W-TDIASG = SPACES OR LOW-VALUES 07990000


MOVE 'XCA0011' TO CAA-COD-AVISO1
MOVE 'TIPO DE DIA EN GASTO' TO CAA-VAR1-AVISO1
MOVE -1 TO W-TDIASGL
PERFORM 300000-FIN-PROGRAMA
END-IF
IF W-TDIASG = '001' OR '01' OR '1' OR '002' OR '02' 07990000
OR '2' 08000000
EVALUATE W-TDIASG 08010000
WHEN '001' 08020000
WHEN '01' 08030000
WHEN '1' 08040000
MOVE 'NATURAL' TO W-DTDIAG 08050000
MOVE '001' TO W-TDIASG
WHEN '002' 08060000
WHEN '02' 08070000
WHEN '2' 08080000
MOVE 'HABIL' TO W-DTDIAG 08090000
MOVE '002' TO W-TDIASG
END-EVALUATE 08100000
ELSE 08110000
MOVE 'XCE0005' TO CAA-COD-ERROR 08130000
MOVE 'TIPO DE DIAS GASTOS' TO CAA-VAR1-ERROR 08140000
MOVE '1 2' TO CAA-VAR2-ERROR 08150000
MOVE -1 TO W-TDIASGL 08160000
PERFORM 300000-FIN-PROGRAMA 08170000
END-IF. 08180000
07720000
07810000
IF W-ORDENG = ' ' OR LOW-VALUES 07820000
MOVE 'XCA0011' TO CAA-COD-AVISO1
MOVE 'ORDEN DE FECHA ' TO CAA-VAR1-AVISO1
MOVE -1 TO W-ORDENGL
PERFORM 300000-FIN-PROGRAMA
END-IF
IF W-ORDENG = 'A' OR 'D' 07820000
EVALUATE W-ORDENG 07830000
WHEN 'A' 07840000
MOVE 'ASCENDENTE' TO W-DORDEG 07850000
WHEN OTHER 07860000
MOVE 'DESCENDENTE' TO W-DORDEG 07870000
END-EVALUATE 07880000
ELSE 07890000
MOVE 'XCE0005' TO CAA-COD-ERROR 07910000
MOVE 'ORDEN GASTOS' TO CAA-VAR1-ERROR 07920000
MOVE 'A D' TO CAA-VAR2-ERROR 07930000
MOVE -1 TO W-ORDENGL 07940000
PERFORM 300000-FIN-PROGRAMA 07950000
END-IF 07960000
07970000
INSPECT W-PERIOG REPLACING ALL '_' BY SPACES. 07980000
* 08210000
***************************************************************** 08220000
* 03-VALIDA-COMISIONES-FECHA * 08230000
*---------------------------------------------------------------* 08240000
* EN ESTE PARRAFO SE EFECTUALA VALIDACION DE LOS DATOS QUE * 08250000
* INGRESARON EN LA PANTALLA. * 08260000
***************************************************************** 08270000
* 08280000
03-VALIDA-COMISIONES-FECHA. 08290000
*--------------------------- 08300000
08310000
IF W-CPORDF = 'C' OR 'A' 08320000
MOVE ZEROES TO W-DIACOM 08330000
MOVE SPACES TO W-PERIOC 08340000
W-TDIASC 08350000
W-DTDIAC 08360000
W-ORDENC 08370000
W-DORDEC 08380000
END-IF
08550000
*RUTINA PARA VALIDAR FECHA 08560000
08570000
INITIALIZE QCECRUTI 08580000
08590000
MOVE 8 TO RUTI-LONG 08600000
MOVE W-FECHAC TO RUTI-CAMPO 08610000
08620000
@004 * CALL 'QR1CFHA' USING QCECRUTI 08630000
@004 CALL XC8CM360 USING QCECRUTI 08630000
08640000
EVALUATE RUTI-CODERR 08650000
WHEN SPACES 08660000
*FECHA CORRECTA 08670000
08750000
MOVE W-FECHAC(1:2) TO W-FMAPA-TYD WS-FMAPA-TYD 08680000
MOVE W-FECHAC(3:2) TO W-FMAPA-TYM WS-FMAPA-TYM 08690000
MOVE W-FECHAC(5:4) TO W-FMAPA-TYA WS-FMAPA-TYA 08700000
IF (WS-FECHA4 <= CAA-FECHA-CONT2) 08710000
MOVE 'XCA0021' TO CAA-COD-AVISO1 07260000
MOVE 'FEC.COMIS ' TO CAA-VAR1-AVISO1(1:10) 07270000
MOVE W-FECHAC TO CAA-VAR1-AVISO1(11:10) 07270000
MOVE '<,=' TO CAA-VAR2-AVISO1(1:03) 07270000
MOVE W-CAA-FECHA TO CAA-VAR2-AVISO1(4:10) 07280000
MOVE -1 TO W-FECHACL 08760000
PERFORM 300000-FIN-PROGRAMA 08770000
END-IF 08787000
WHEN OTHER 08820000
*FECHA INCORRECTA 08830000
MOVE 'XCE0016' TO CAA-COD-ERROR 08850000
MOVE W-FECHAC TO CAA-VAR1-ERROR 08860000
MOVE 'FECHA COMISION' TO CAA-VAR2-ERROR 08870000
MOVE -1 TO W-FECHACL 08880000
PERFORM 300000-FIN-PROGRAMA 08890000
END-EVALUATE. 08900000
* 08910000
***************************************************************** 08920000
* 04-VALIDA-COMISIONES-DIA * 08930000
*---------------------------------------------------------------* 08940000
* EN ESTE PARRAFO SE EFECTUALA VALIDACION DE LOS DATOS QUE * 08950000
* INGRESARON EN LA PANTALLA. * 08960000
***************************************************************** 08970000
* 08980000
04-VALIDA-COMISIONES-DIA. 08990000
*------------------------- 09000000
09010000
IF W-CPORDF = 'A' OR 'A' 09020000
MOVE '01010001' TO W-FECHAC 09030000
END-IF 09040000
09150000
09200000
IF W-DIACOM < 1 OR W-DIACOM > 28 09210000
MOVE 'XCA0011' TO CAA-COD-AVISO1 09230000
MOVE 'DIA [1,28] EN GASTOS' TO CAA-VAR1-AVISO1 09240000
MOVE -1 TO W-DIACOML 09260000
PERFORM 300000-FIN-PROGRAMA 09270000
END-IF 09280000
09290000
MOVE 2 TO WS-ACCESO 09160000
MOVE W-PERIOC TO WS-W-PERIO 09170000
PERFORM 222300-VALIDAR-PERIODO 09180000
MOVE 0 TO WS-ACCESO 09190000

09450000
INSPECT W-PERIOC REPLACING ALL '_' BY SPACES 09460000
IF W-TDIASC EQUAL SPACES OR LOW-VALUES 09470000
MOVE 'XCA0011' TO CAA-COD-AVISO1
MOVE 'TIPO DE DIA EN COMIS.' TO CAA-VAR1-AVISO1
MOVE -1 TO W-TDIASCL
PERFORM 300000-FIN-PROGRAMA
END-IF
IF W-TDIASC = '001' OR '01' OR '1' OR '002' OR '02' 09470000
OR '2' 09480000
EVALUATE W-TDIASC 09490000
WHEN '001' 09500000
WHEN '01' 09510000
WHEN '1' 09520000
MOVE 'NATURAL' TO W-DTDIAC 09530000
WHEN '002' 09540000
WHEN '02' 09550000
WHEN '2' 09560000
MOVE 'HABIL' TO W-DTDIAC 09570000
END-EVALUATE 09580000
ELSE 09590000
MOVE 'XCE0005' TO CAA-COD-ERROR 09610000
MOVE 'TIPO DE DIAS COMIS.' TO CAA-VAR1-ERROR 09620000
MOVE '1 2' TO CAA-VAR2-ERROR 09630000
MOVE -1 TO W-TDIASCL 09640000
PERFORM 300000-FIN-PROGRAMA 09650000
END-IF. 09660000

IF W-ORDENC = ' ' OR LOW-VALUES 09300000


MOVE 'XCA0011' TO CAA-COD-AVISO1 09610000
MOVE 'ORDEN FECHA COMIS.' TO CAA-VAR1-AVISO1 09620000
MOVE -1 TO W-ORDENCL 09640000
PERFORM 300000-FIN-PROGRAMA 09650000
END-IF
IF W-ORDENC = 'A' OR 'D' 09300000
EVALUATE W-ORDENC 09310000
WHEN 'A' 09320000
MOVE 'ASCENDENTE' TO W-DORDEC 09330000
WHEN OTHER 09340000
MOVE 'DESCENDENTE' TO W-DORDEC 09350000
END-EVALUATE 09360000
ELSE 09370000
MOVE 'XCE0005' TO CAA-COD-ERROR 09390000
MOVE 'ORDEN COMISIONES ' TO CAA-VAR1-ERROR 09400000
MOVE 'A D' TO CAA-VAR2-ERROR 09410000
MOVE -1 TO W-ORDENCL 09420000
PERFORM 300000-FIN-PROGRAMA 09430000
END-IF. 09440000
* 09680000
******************************************************************
* *
* 222000-VALIDAR *
* *
******************************************************************
222000-VALIDAR.
**
PERFORM 222300-VALIDAR-DATOS.
PERFORM 222210-ACCESAR-XCDTY18.
IF SW-EXISTE = 'SI'
MOVE 'XCA0007' TO CAA-COD-AVISO1
MOVE 'PARA MODIFICACION' TO CAA-VAR2-AVISO1
MOVE -1 TO W-CAUTOGEL
ELSE
MOVE 'XCA0007' TO CAA-COD-AVISO1
MOVE 'PARA ALTA' TO CAA-VAR2-AVISO1
MOVE -1 TO W-CAUTOGEL
END-IF.
******************************************************************
* *
* 223000-MODIFICACION *
* *
******************************************************************
223000-MODIFICACION.
*
PERFORM 222300-OBTENER-TITULOS.
PERFORM 222300-MOVER-TITULOS.
IF SW-CAMBIO-CLAVE = 'NO'
PERFORM 222300-VALIDAR-DATOS
P53757*
| PERFORM 223300-MODIF-ANTES-TRAZAB
P53757*
PERFORM 223100-MODIFICA-XCDTY18
P53757*
| PERFORM 223400-MODIF-DESPUES-TRAZAB
|
| PERFORM 210100-WRITEQ-TS
P53757*
ELSE
MOVE 'XCA0003' TO CAA-COD-AVISO1
MOVE ' INTRO ' TO CAA-VAR1-AVISO1
MOVE 'VALIDAR CLAVE' TO CAA-VAR2-AVISO1
MOVE -1 TO W-CAUTOGEL
END-IF.
*------------------------*
223100-MODIFICA-XCDTY18.
*------------------------*
MOVE 'MOD' TO W-ACCION.
PERFORM 222211-CARGA-CLAVE-XCDTY18.
PERFORM 224120-CARGA-DATOS-XCDTY18.
PERFORM 224100-GRABAR-HISTORICO.
PERFORM 224140-AUDITORIA-UMO-XCDTY18.
EXEC SQL
UPDATE XCDTY18
SET TY18_XC_CPORDIF =: TY18-XC-CPORDIF,
TY18_XC_FDESDE1 = '0001-01-01',
TY18_XC_FHASTA1 = '9999-12-31',
TY18_XC_YTODCO1 =: TY18-XC-YTODCO1,
TY18_XC_CFORDF1 =: TY18-XC-CFORDF1,
TY18_XC_FDIFER1 =: TY18-XC-FDIFER1,
TY18_XC_CTIPDI1 =: TY18-XC-CTIPDI1,
TY18_XC_NDIA1 =: TY18-XC-NDIA1 ,
TY18_XC_CPERIO1 =: TY18-XC-CPERIO1,
TY18_XC_CORDEN1 =: TY18-XC-CORDEN1,
TY18_XC_FDESDE2 = '0001-01-01',
TY18_XC_FHASTA2 = '9999-12-31',
TY18_XC_YTODCO2 =: TY18-XC-YTODCO2,
TY18_XC_CFORDF2 =: TY18-XC-CFORDF2,
TY18_XC_FDIFER2 =: TY18-XC-FDIFER2,
TY18_XC_CTIPDI2 =: TY18-XC-CTIPDI2,
TY18_XC_NDIA2 =: TY18-XC-NDIA2 ,
TY18_XC_CPERIO2 =: TY18-XC-CPERIO2,
TY18_XC_CORDEN2 =: TY18-XC-CORDEN2,
TY18_XC_CENTUMO =: TY18-XC-CENTUMO,
TY18_XC_COFIUMO =: TY18-XC-COFIUMO,
TY18_XC_CTERUMO =: TY18-XC-CTERUMO,
TY18_XC_CUSUUMO =: TY18-XC-CUSUUMO,
TY18_XC_FTSTUMO = CURRENT TIMESTAMP
WHERE
TY18_XC_CAUTOGE =: TY18-XC-CAUTOGE AND
TY18_XC_FREFERE =: TY18-XC-FREFERE
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'XCA0001' TO CAA-COD-AVISO1
MOVE 'MODIFICACION' TO CAA-VAR1-AVISO1
MOVE -1 TO W-CAUTOGEL
WHEN +100
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'AUTOGENERADO ' TO CAA-VAR1-ERROR
MOVE -1 TO W-CAUTOGEL
PERFORM 999999-ROLLBACK
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY18' TO W-TABLA
MOVE 'XC2CY750' TO W-PROGRAMA
MOVE 'MODIFICA-XCDTY18' TO W-REFERENCIA
MOVE -1 TO W-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
P53757*
| *-------------------------------*
| 223300-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-Y75-PRODUC TO TR58-PRODUC
| MOVE W-Y75-SUBPRO TO TR58-SUBPRO
| MOVE W-Y75-CCLIEN TO TR58-CCLIEN
| MOVE W-Y75-OPERAC TO TR58-OPERAC
| MOVE W-Y75-CAUTOGE TO TR58-CAUTOGE
| MOVE W-Y75-FREFERE TO TR58-FREFERE
| MOVE W-Y75-CPORDF TO TR58-CPORDF
| MOVE W-Y75-CFORMG TO TR58-CFORMG
| MOVE W-Y75-FECHAG TO TR58-FECHAG
| MOVE W-Y75-DIAGAS TO TR58-DIAGAS
| MOVE W-Y75-PERIOG TO TR58-PERIOG
| MOVE W-Y75-TDIASG TO TR58-TDIASG
| MOVE W-Y75-ORDENG TO TR58-ORDENG
| MOVE W-Y75-CFORMC TO TR58-CFORMC
| MOVE W-Y75-FECHAC TO TR58-FECHAC
| MOVE W-Y75-DIACOM TO TR58-DIACOM
| MOVE W-Y75-PERIOC TO TR58-PERIOC
| MOVE W-Y75-TDIASC TO TR58-TDIASC
| MOVE W-Y75-DTDIAC TO TR58-DTDIAC
| MOVE W-Y75-ORDENC TO TR58-ORDENC
| MOVE 11111 TO W-ID-EVENTO
| MOVE 'M' TO W-TIPO-EVENTO
| MOVE 'A' TO W-ANTES-DESPUES
| PERFORM 2241510-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.
| *-------------------------------*
| 223400-MODIF-DESPUES-TRAZAB.
| *-------------------------------*
| MOVE Y75-PRODUC TO TR58-PRODUC
| MOVE Y75-SUBPRO TO TR58-SUBPRO
| MOVE Y75-CCLIEN TO TR58-CCLIEN
| MOVE Y75-OPERAC TO TR58-OPERAC
| MOVE Y75-CAUTOGE TO TR58-CAUTOGE
| MOVE Y75-FREFERE TO TR58-FREFERE
| MOVE Y75-CPORDF TO TR58-CPORDF
| MOVE Y75-CFORMG TO TR58-CFORMG
| MOVE Y75-FECHAG TO TR58-FECHAG
| MOVE Y75-DIAGAS TO TR58-DIAGAS
| MOVE Y75-PERIOG TO TR58-PERIOG
| MOVE Y75-TDIASG TO TR58-TDIASG
| MOVE Y75-ORDENG TO TR58-ORDENG
| MOVE Y75-CFORMC TO TR58-CFORMC
| MOVE Y75-FECHAC TO TR58-FECHAC
| MOVE Y75-DIACOM TO TR58-DIACOM
| MOVE Y75-PERIOC TO TR58-PERIOC
| MOVE Y75-TDIASC TO TR58-TDIASC
| MOVE Y75-DTDIAC TO TR58-DTDIAC
| MOVE Y75-ORDENC TO TR58-ORDENC
| MOVE 11111 TO W-ID-EVENTO
| MOVE 'M' TO W-TIPO-EVENTO
| MOVE 'D' TO W-ANTES-DESPUES
| PERFORM 2241510-TRAZABILIDAD.
| *-------------------------------*
| 2241510-TRAZABILIDAD.
| *--------------------------------*
| INITIALIZE QRWCLOGT
| SET LOGT-MENSAJE TO ADDRESS OF XCWCTR58
| MOVE W-ID-EVENTO TO LOGT-ID-EVENTO
| MOVE W-TIPO-EVENTO TO LOGT-TIPO-EVENTO
| MOVE 'XC' TO LOGT-APLICATIVO
| MOVE 'XY75' 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 WSC-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*
*
******************************************************************
* *
* 224000-ALTA *
* *
******************************************************************
224000-ALTA.
*
PERFORM 222100-VALIDAR-CLAVE.
PERFORM 222300-VALIDAR-DATOS.
PERFORM 224100-GRABAR-HISTORICO.
EVALUATE WYT5-CTL-CRETORN
WHEN 00
WHEN 35
WHEN 36
PERFORM 224100-ALTA-XCDTY18
WHEN OTHER
IF WYT5-CTL-CARQERR(3:1) = 'E'
MOVE WYT5-CTL-CARQERR TO CAA-COD-ERROR
END-IF
IF WYT5-CTL-CARQERR(3:1) = 'A'
MOVE WYT5-CTL-CARQERR TO CAA-COD-AVISO1
END-IF
PERFORM 300000-FIN-PROGRAMA
END-EVALUATE.
*
*------------------------*
224100-GRABAR-HISTORICO.
*------------------------*
MOVE W-CAUTOGE TO WYT5-INP-AUTOGEN.
**** MOVE '9999-12-31' TO WYT5-INP-FREFERE.
MOVE CAA-ENTIDAD TO WYT5-INP-CENTALT.
MOVE CAA-CENTRO-CONT TO WYT5-INP-COFIALT.
MOVE CAA-USERID TO WYT5-INP-CTERALT.
MOVE CAA-TERMINAL TO WYT5-INP-CUSUALT.
EXEC CICS
LINK
PROGRAM ('XC7CYT50')
COMMAREA (XCWCYT50)
NOHANDLE
END-EXEC

IF EIBRESP NOT EQUAL DFHRESP(NORMAL)


MOVE 'RUT XC7CYL70' TO ABC-REFERENCIA
GO TO 999999-ERROR-CICS
END-IF.
*---------------------*
224100-ALTA-XCDTY18.
*---------------------*
PERFORM 222300-OBTENER-TITULOS.
PERFORM 222300-MOVER-TITULOS.
MOVE 'ALT' TO W-ACCION.
PERFORM 222211-CARGA-CLAVE-XCDTY18.
PERFORM 224120-CARGA-DATOS-XCDTY18.
PERFORM 224130-AUDITORIA-ALT-XCDTY18.
PERFORM 224140-AUDITORIA-UMO-XCDTY18.
P53757*
| PERFORM 224150-ALTA-TRAZAB.
P53757*
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
,CURRENT TIMESTAMP
,:TY18-XC-CENTUMO
,:TY18-XC-COFIUMO
,:TY18-XC-CTERUMO
,:TY18-XC-CUSUUMO
,CURRENT TIMESTAMP
,NULL
,NULL
,NULL
,NULL )
END-EXEC.
EVALUATE SQLCODE
WHEN ZEROS
MOVE 'XCA0001' TO CAA-COD-AVISO1
MOVE 'ALTA ' TO CAA-VAR1-AVISO1
MOVE -1 TO W-CAUTOGEL
WHEN -803
MOVE 'XCE0014' TO CAA-COD-ERROR
MOVE 'COD.AUTOGENERADO' TO CAA-VAR1-ERROR
MOVE -1 TO W-CAUTOGEL
PERFORM 999999-ROLLBACK
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY18' TO W-TABLA
MOVE 'XC2CY750' TO W-PROGRAMA
MOVE 'ALTA-XCDTY18' TO W-REFERENCIA
MOVE -1 TO W-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
*--------------------------*
224120-CARGA-DATOS-XCDTY18.
*--------------------------*
MOVE W-CPORDF TO TY18-XC-CPORDIF.
MOVE '0001-01-01' TO TY18-XC-FDESDE1.
MOVE '9999-12-31' TO TY18-XC-FHASTA1.
MOVE 'S' TO TY18-XC-YTODCO1.
MOVE W-CFORMG TO TY18-XC-CFORDF1.
IF W-FECHAG EQUAL SPACES OR LOW-VALUES
MOVE '01010001' TO W-FECHAG.
IF W-FECHAG IS NOT NUMERIC
MOVE '01010001' TO W-FECHAG.
IF W-FECHAC EQUAL SPACES OR LOW-VALUES
MOVE '01010001' TO W-FECHAC.
IF W-FECHAC IS NOT NUMERIC
MOVE '01010001' TO W-FECHAC.
MOVE W-FECHAG(1:2) TO TY18-XC-FDIFER1 (9:2)
MOVE '-' TO TY18-XC-FDIFER1 (8:1)
MOVE W-FECHAG(3:2) TO TY18-XC-FDIFER1 (6:2)
MOVE '-' TO TY18-XC-FDIFER1 (5:1)
MOVE W-FECHAG(5:4) TO TY18-XC-FDIFER1 (1:4)
MOVE W-TDIASG TO TY18-XC-CTIPDI1.
MOVE W-DIAGAS TO TY18-XC-NDIA1 .
MOVE W-PERIOG TO TY18-XC-CPERIO1.
MOVE W-ORDENG TO TY18-XC-CORDEN1.
MOVE '0001-01-01' TO TY18-XC-FDESDE2.
MOVE '9999-12-31' TO TY18-XC-FHASTA2.
MOVE 'S' TO TY18-XC-YTODCO2.
MOVE W-CFORMC TO TY18-XC-CFORDF2.
MOVE W-FECHAC(1:2) TO TY18-XC-FDIFER2 (9:2)
MOVE '-' TO TY18-XC-FDIFER2 (8:1)
MOVE W-FECHAC(3:2) TO TY18-XC-FDIFER2 (6:2)
MOVE '-' TO TY18-XC-FDIFER2 (5:1)
MOVE W-FECHAC(5:4) TO TY18-XC-FDIFER2 (1:4)
MOVE W-TDIASC TO TY18-XC-CTIPDI2.
MOVE W-DIACOM TO TY18-XC-NDIA2 .
MOVE W-PERIOC TO TY18-XC-CPERIO2.
MOVE W-ORDENC TO TY18-XC-CORDEN2.
*-----------------------------*
224130-AUDITORIA-ALT-XCDTY18.
*-----------------------------*
MOVE CAA-ENTIDAD TO TY18-XC-CENTALT.
MOVE CAA-CENTRO-CONT TO TY18-XC-COFIALT.
MOVE CAA-USERID TO TY18-XC-CUSUALT.
MOVE CAA-TERMINAL TO TY18-XC-CTERALT.
*-----------------------------*
224140-AUDITORIA-UMO-XCDTY18.
*-----------------------------*
MOVE CAA-ENTIDAD TO TY18-XC-CENTUMO.
MOVE CAA-CENTRO-CONT TO TY18-XC-COFIUMO.
MOVE CAA-USERID TO TY18-XC-CUSUUMO.
MOVE CAA-TERMINAL TO TY18-XC-CTERUMO.
P53757*
| *-----------------------------*
| 224150-ALTA-TRAZAB.
| *-----------------------------*
| MOVE Y75-PRODUC TO TR58-PRODUC
| MOVE Y75-SUBPRO TO TR58-SUBPRO
| MOVE Y75-CCLIEN TO TR58-CCLIEN
| MOVE Y75-OPERAC TO TR58-OPERAC
| MOVE Y75-CAUTOGE TO TR58-CAUTOGE
| MOVE Y75-FREFERE TO TR58-FREFERE
| MOVE Y75-CPORDF TO TR58-CPORDF
| MOVE Y75-CFORMG TO TR58-CFORMG
| MOVE Y75-FECHAG TO TR58-FECHAG
| MOVE Y75-DIAGAS TO TR58-DIAGAS
| MOVE Y75-PERIOG TO TR58-PERIOG
| MOVE Y75-TDIASG TO TR58-TDIASG
| MOVE Y75-ORDENG TO TR58-ORDENG
| MOVE Y75-CFORMC TO TR58-CFORMC
| MOVE Y75-FECHAC TO TR58-FECHAC
| MOVE Y75-DIACOM TO TR58-DIACOM
| MOVE Y75-PERIOC TO TR58-PERIOC
| MOVE Y75-TDIASC TO TR58-TDIASC
| MOVE Y75-DTDIAC TO TR58-DTDIAC
| MOVE Y75-ORDENC TO TR58-ORDENC
| MOVE 11111 TO W-ID-EVENTO
| MOVE 'A' TO W-TIPO-EVENTO
| MOVE 'D' TO W-ANTES-DESPUES
| PERFORM 2241510-TRAZABILIDAD.
P53757*
******************************************************************
* *
* 225000-LIMPIAR *
* *
******************************************************************
225000-LIMPIAR.
*
INITIALIZE W-XCNCY75.
INITIALIZE W-VARIABLES-MAPA
PERFORM 222100-VALIDAR-CLAVE.
*
******************************************************************
* *
* 226000-DAR-DE-BAJA *
* *
******************************************************************
226000-DAR-DE-BAJA.
*
PERFORM 222300-OBTENER-TITULOS.
PERFORM 222300-MOVER-TITULOS.
IF SW-CAMBIO-CLAVE EQUAL 'NO'
MOVE 'XCA0003' TO CAA-COD-AVISO1
MOVE 'PF7' TO CAA-VAR1-AVISO1
MOVE 'CONFIRMAR BAJA' TO CAA-VAR2-AVISO1
MOVE -1 TO W-CAUTOGEL
ELSE
MOVE 'XCA0003' TO CAA-COD-AVISO1
MOVE ' INTRO ' TO CAA-VAR1-AVISO1
MOVE 'VALIDAR CLAVE' TO CAA-VAR2-AVISO1
MOVE -1 TO W-CAUTOGEL
END-IF.
*
******************************************************************
* *
* 229000-MOVER-AUDITORIA *
* *
******************************************************************
229000-MOVER-AUDITORIA.
*
IF SW-CAMBIO-CLAVE EQUAL 'NO'
PERFORM 229100-CONSULTAR-MOVER-AUDIT
MOVE 'N' TO XPCA-YALTA
PERFORM INFORMAR-RETORNO-QGECCAA
ELSE
MOVE 'XCA0003' TO CAA-COD-AVISO1
MOVE ' INTRO ' TO CAA-VAR1-AVISO1
MOVE 'VALIDAR CLAVE' TO CAA-VAR2-AVISO1
MOVE -1 TO W-CAUTOGEL
END-IF.
*
*--------------------------------*
229100-CONSULTAR-MOVER-AUDIT.
*--------------------------------*
PERFORM 222210-ACCESAR-XCDTY18.
IF SW-EXISTE = 'SI'
MOVE TY18-XC-CENTALT TO XPCA-CENTALT
MOVE TY18-XC-COFIALT TO XPCA-COFIALT
MOVE TY18-XC-CUSUALT TO XPCA-CUSUALT
MOVE TY18-XC-CTERALT TO XPCA-CTERALT
MOVE TY18-XC-FTSTALT TO XPCA-FTSTALT
MOVE TY18-XC-CENTUMO TO XPCA-CENTUMO
MOVE TY18-XC-COFIUMO TO XPCA-COFIUMO
MOVE TY18-XC-CUSUUMO TO XPCA-CUSUUMO
MOVE TY18-XC-CTERUMO TO XPCA-CTERUMO
MOVE TY18-XC-FTSTUMO TO XPCA-FTSTUMO
ELSE
INITIALIZE W-VARIABLES-MAPA
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'AUTOGENERADO ' TO CAA-VAR1-ERROR
MOVE 'EN MAESTRO PREFERENC' TO CAA-VAR2-ERROR
MOVE -1 TO W-CAUTOGEL
PERFORM 300000-FIN-PROGRAMA
END-IF.
*------------------------*
INFORMAR-RETORNO-QGECCAA.
*------------------------*
MOVE 'R' TO CAA-CASO-CAD.
MOVE XPCA-CLAVE TO CAA-DATOS-CAD.
******************************************************************
* *
* 230000-ESTADO-CONFIRMACION *
* *
* 1. CONFIRMAR SOLO SI SE UTILIZA UNA DAR-DE-BAJA *
* 2. VERIFICAR QUE TECLA DE FUNCION SEA VALIDAR *
* SI CORRECTA - VERIFICA QUE NO SE HAYA MODIFICADO INFORMA *
* CION DE LA PANTALLA *
* - REALIZA DELETE FISICO DE REGISTRO DE TRANS. *
* NO CORRECTO - ENVIA MENSAJE DE ERROR *
******************************************************************
230000-ESTADO-CONFIRMACION.
*
PERFORM 221000-CARGAR-WORKA-PANTALLA.
MOVE CAA-TECLA TO SW-TECLA.
PERFORM 222300-OBTENER-TITULOS.
PERFORM 222300-MOVER-TITULOS.
EVALUATE TRUE
WHEN PF7
IF CAA-88-MOD-TAG-NO
PERFORM 221100-DAR-DE-BAJA-XCDTY18
ELSE
MOVE 'XCE0017' TO CAA-COD-ERROR
END-IF
WHEN OTHER
MOVE 'XCA0004' TO CAA-COD-AVISO1
END-EVALUATE.
MOVE -1 TO W-CAUTOGEL.
*
*------------------*
221100-DAR-DE-BAJA-XCDTY18.
*------------------*
MOVE 'BAJ' TO W-ACCION.
PERFORM 222211-CARGA-CLAVE-XCDTY18.
P53757*
| PERFORM 221110-BAJA-TRAZAB.
P53757*
PERFORM 224100-GRABAR-HISTORICO.
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 'XCA0001 ' TO CAA-COD-AVISO1
MOVE 'BAJA' TO CAA-VAR1-AVISO1
MOVE -1 TO W-CAUTOGEL
WHEN -532
MOVE 'XCA0008' TO CAA-COD-AVISO1
PERFORM 999999-ROLLBACK
WHEN +100
MOVE 'XCE0013' TO CAA-COD-ERROR
MOVE 'EL CODIGO DE' TO CAA-VAR1-ERROR
MOVE 'AUTOGENERADO' TO CAA-VAR2-ERROR
PERFORM 999999-ROLLBACK
MOVE -1 TO W-CAUTOGEL
WHEN OTHER
MOVE SQLCODE TO W-SQLCODE
MOVE SQLERRM TO W-SQLERRM
MOVE 'XCDTY18' TO W-TABLA
MOVE 'XC2CY750' TO W-PROGRAMA
MOVE 'DAR-DE-BAJA-XCDTY18' TO W-REFERENCIA
MOVE -1 TO W-CAUTOGEL
PERFORM 999999-ERROR-DB2
END-EVALUATE.
P53757*
| *--------------------*
| 221110-BAJA-TRAZAB.
| *--------------------*
| MOVE Y75-PRODUC TO TR58-PRODUC
| MOVE Y75-SUBPRO TO TR58-SUBPRO
| MOVE Y75-CCLIEN TO TR58-CCLIEN
| MOVE Y75-OPERAC TO TR58-OPERAC
| MOVE Y75-CAUTOGE TO TR58-CAUTOGE
| MOVE Y75-FREFERE TO TR58-FREFERE
| MOVE Y75-CPORDF TO TR58-CPORDF
| MOVE Y75-CFORMG TO TR58-CFORMG
| MOVE Y75-FECHAG TO TR58-FECHAG
| MOVE Y75-DIAGAS TO TR58-DIAGAS
| MOVE Y75-PERIOG TO TR58-PERIOG
| MOVE Y75-TDIASG TO TR58-TDIASG
| MOVE Y75-ORDENG TO TR58-ORDENG
| MOVE Y75-CFORMC TO TR58-CFORMC
| MOVE Y75-FECHAC TO TR58-FECHAC
| MOVE Y75-DIACOM TO TR58-DIACOM
| MOVE Y75-PERIOC TO TR58-PERIOC
| MOVE Y75-TDIASC TO TR58-TDIASC
| MOVE Y75-DTDIAC TO TR58-DTDIAC
| MOVE Y75-ORDENC TO TR58-ORDENC
| MOVE 11111 TO W-ID-EVENTO
| MOVE 'B' TO W-TIPO-EVENTO
| MOVE 'A' TO W-ANTES-DESPUES
| PERFORM 2241510-TRAZABILIDAD.
P53757*
*
******************************************************************
* *
* 300000-FIN-PROGRAMA *
* *
* -DEVOLVER CONTROL A LA ARQUITECTURA *
* *
******************************************************************
300000-FIN-PROGRAMA.
*
PERFORM 310000-CARGA-PANTALLA.
*
EVALUATE TRUE
WHEN CAA-88-ESTADO-INICIO
PERFORM 320000-INFORMAR-CAA-INICIO
WHEN CAA-88-ESTADO-CONTIN
PERFORM 330000-INFORMAR-CAA-CONTIN
WHEN OTHER
PERFORM 340000-INFORMAR-CAA-CONFIR
END-EVALUATE.
*
EXEC CICS
RETURN
END-EXEC.
*
*----------------------*
310000-CARGA-PANTALLA.
*----------------------*
EVALUATE TRUE ALSO FALSE
WHEN CAA-88-ESTADO-INICIO ALSO CAA-88-COD-ERROR-VACIO
CONTINUE
WHEN OTHER
MOVE LOW-VALUES TO XCNCY75
PERFORM 01-OTORGAR-ATRIBUTOS
IF CAA-COD-ERROR = 'XCE0079'
PERFORM 01-PROTEGER-CAMPOS
END-IF
MOVE W-DTITULO TO Y75-DTITULO
MOVE W-PRODUC TO Y75-PRODUC
MOVE W-DESPRO TO Y75-DESPRO
MOVE W-SUBPRO TO Y75-SUBPRO
MOVE W-DESSUB TO Y75-DESSUB
MOVE W-OPERAC TO Y75-OPERAC
OJO
MOVE W-LOPERAC TO Y75-LOPERAC
MOVE W-CCLIEN TO Y75-CCLIEN
MOVE W-DCLIEN TO Y75-DCLIEN
MOVE W-CAUTOGE TO Y75-CAUTOGE
MOVE W-FREFERE TO Y75-FREFERE
MOVE W-CPORDF TO Y75-CPORDF
MOVE W-CFORMG TO Y75-CFORMG
MOVE W-FECHAG TO Y75-FECHAG
MOVE W-DIAGAS TO Y75-DIAGAS
MOVE W-PERIOG TO Y75-PERIOG
MOVE W-DPERIG TO Y75-DPERIG
MOVE W-TDIASG TO Y75-TDIASG
MOVE W-DTDIAG TO Y75-DTDIAG
MOVE W-DTDIAG TO Y75-DTDIAG
MOVE W-ORDENG TO Y75-ORDENG
MOVE W-DORDEG TO Y75-DORDEG
MOVE W-CFORMC TO Y75-CFORMC
MOVE W-FECHAC TO Y75-FECHAC
MOVE W-DIACOM TO Y75-DIACOM
MOVE W-PERIOC TO Y75-PERIOC
MOVE W-DPERIC TO Y75-DPERIC
MOVE W-TDIASC TO Y75-TDIASC
MOVE W-DTDIAC TO Y75-DTDIAC
MOVE W-ORDENC TO Y75-ORDENC
MOVE W-DORDEC TO Y75-DORDEC
PERFORM 391000-LOW-POR-RAYAS-BLANCOS
PERFORM COLOCAR-CURSOR
END-EVALUATE.
*----------------*
LIMPIAR-CURSOR.
*----------------*
MOVE -1 TO Y75-CAUTOGEL.
MOVE ZEROES TO W-DIAGASL .
MOVE ZEROES TO W-DIACOML .
MOVE ZEROES TO W-CPORDFL .
MOVE ZEROES TO W-CFORMGL .
MOVE ZEROES TO W-FECHAGL .
MOVE ZEROES TO W-PERIOGL .
MOVE ZEROES TO W-TDIASGL .
MOVE ZEROES TO W-ORDENGL .
MOVE ZEROES TO W-CFORMCL .
MOVE ZEROES TO W-FECHACL .
MOVE ZEROES TO W-PERIOCL .
MOVE ZEROES TO W-TDIASCL .
MOVE ZEROES TO W-ORDENCL .
*----------------*
COLOCAR-CURSOR.
*----------------*
IF W-CAUTOGEL = -1
MOVE -1 TO Y75-CAUTOGEL.
IF W-DIAGASL = -1
MOVE -1 TO Y75-DIAGASL .
IF W-DIACOML = -1
MOVE -1 TO Y75-DIACOML .
IF W-CPORDFL = -1
MOVE -1 TO Y75-CPORDFL .
IF W-CFORMGL = -1
MOVE -1 TO Y75-CFORMGL .
IF W-FECHAGL = -1
MOVE -1 TO Y75-FECHAGL .
IF W-PERIOGL = -1
MOVE -1 TO Y75-PERIOGL .
IF W-TDIASGL = -1
MOVE -1 TO Y75-TDIASGL .
IF W-ORDENGL = -1
MOVE -1 TO Y75-ORDENGL .
IF W-CFORMCL = -1
MOVE -1 TO Y75-CFORMCL .
IF W-FECHACL = -1
MOVE -1 TO Y75-FECHACL .
IF W-PERIOCL = -1
MOVE -1 TO Y75-PERIOCL .
IF W-TDIASCL = -1
MOVE -1 TO Y75-TDIASCL .
IF W-ORDENCL = -1
MOVE -1 TO Y75-ORDENCL .
*-----------------------------*
391000-LOW-POR-RAYAS-BLANCOS.
*-----------------------------*
INSPECT Y75-CPORDF REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-CFORMG REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-PERIOG REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-TDIASG REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-CFORMG REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-PERIOG REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-TDIASG REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-ORDENG REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-CFORMC REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-PERIOC REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-TDIASC REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-ORDENC REPLACING ALL LOW-VALUES BY '_'.
INSPECT Y75-CPORDF REPLACING ALL SPACES BY '_'.
INSPECT Y75-CFORMG REPLACING ALL SPACES BY '_'.
INSPECT Y75-PERIOG REPLACING ALL SPACES BY '_'.
INSPECT Y75-TDIASG REPLACING ALL SPACES BY '_'.
INSPECT Y75-CFORMG REPLACING ALL SPACES BY '_'.
INSPECT Y75-PERIOG REPLACING ALL SPACES BY '_'.
INSPECT Y75-TDIASG REPLACING ALL SPACES BY '_'.
INSPECT Y75-ORDENG REPLACING ALL SPACES BY '_'.
INSPECT Y75-CFORMC REPLACING ALL SPACES BY '_'.
INSPECT Y75-PERIOC REPLACING ALL SPACES BY '_'.
INSPECT Y75-TDIASC REPLACING ALL SPACES BY '_'.
INSPECT Y75-ORDENC REPLACING ALL SPACES BY '_'.
INSPECT Y75-DESPRO REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y75-DIAGAS REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y75-DPERIG REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y75-DTDIAG REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y75-DIAGAS REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y75-DTDIAG REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y75-DORDEC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y75-DORDEG REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y75-DIACOM REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y75-DPERIC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y75-DTDIAC REPLACING ALL LOW-VALUES BY SPACES.
INSPECT Y75-CPORDF REPLACING ALL SPACES BY '_'.
INSPECT Y75-CFORMG REPLACING ALL SPACES BY '_'.
INSPECT Y75-PERIOG REPLACING ALL SPACES BY '_'.
INSPECT Y75-TDIASG REPLACING ALL SPACES BY '_'.
INSPECT Y75-CFORMG REPLACING ALL SPACES BY '_'.
INSPECT Y75-PERIOG REPLACING ALL SPACES BY '_'.
INSPECT Y75-TDIASG REPLACING ALL SPACES BY '_'.
INSPECT Y75-ORDENG REPLACING ALL SPACES BY '_'.
INSPECT Y75-CFORMC REPLACING ALL SPACES BY '_'.
INSPECT Y75-PERIOC REPLACING ALL SPACES BY '_'.
INSPECT Y75-TDIASC REPLACING ALL SPACES BY '_'.
INSPECT Y75-ORDENC REPLACING ALL SPACES BY '_'.
*
******************************************************************
* *
* 320000-INFORMAR-CAA-INICIO *
* *
* 1. SETEAR VARIABLES DE LA CAA, COMO QUEDAN EN ESTADO INICIO *
* *
******************************************************************
320000-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
MOVE W-XCNCY75-INI TO XCNCY75
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-CONTIN *
* *
* 1. SETEAR VARIABLES DE CAA, COMO QUEDAN EN ESTADO CONTINUACION *
* *
******************************************************************
330000-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 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.
*
******************************************************************
* *
* 340000-INFORMAR-CAA-CONFIR *
* *
* 1. SETEAR VARIABLES DE CAA, COMO QUEDAN EN ESTADO CONFIRMACION *
* *
******************************************************************
340000-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.
*
*-----------------*
999999-ERROR-CICS.
*-----------------*
PERFORM 9999999-GRABAR-LOG.
MOVE 'S' TO ABC-ABEND.
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.
*-----------------*
PERFORM 9999999-GRABAR-LOG.
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.
*-----------------*
9999999-GRABAR-LOG.
*-----------------*
INITIALIZE WTLG-REGISTRO
MOVE W-SQLCODE TO W-SQLERR
MOVE W-SQLERR TO WTLG-CERROR
MOVE 'XY' TO WTLG-CMODULO
MOVE 'L' TO WTLG-CLINBAT
MOVE 'XC2CY750' TO WTLG-CPROGRA
MOVE CAA-CODTRAN TO WTLG-CTRANSA
MOVE CAA-USERID TO WTLG-CUSUARI
MOVE CAA-TERMINAL TO WTLG-CTERMIN
MOVE CAA-ENTIDAD TO WTLG-CENTOPE
MOVE SPACES TO WTLG-COFIOPE
MOVE SPACES TO WTLG-CCTAOPE
MOVE ZEROES TO WTLG-NSECOPE
MOVE ZEROES TO WTLG-NSECEMB
MOVE ZEROES TO WTLG-NSECLIQ
MOVE ZEROES TO WTLG-NSECMOV
MOVE SPACES TO WTLG-CPROACT
MOVE SPACES TO WTLG-CNIVACT
MOVE SPACES TO WTLG-CACCACT
MOVE W-ACCION TO WTLG-CTIPREG
MOVE W-REFERENCIA TO WTLG-DTXTREF
MOVE SPACE TO WTLG-CRUTREF
MOVE SPACE TO WTLG-CKEYREF
MOVE 'XCECPCA' TO WTLG-CCPYAP1
MOVE 'XCDTY18' TO WTLG-CCPYAP2
MOVE XCECPCA TO WTLG-DDATAP1
MOVE DCLXCDTY18 TO WTLG-DDATAP2
MOVE CAA-ENTIDAD TO WTLG-CENTPRO
MOVE CAA-CENTRO-CONT TO WTLG-COFIPRO
EXEC CICS
LINK PROGRAM (W-XC7CTLG0)
COMMAREA (W-XCWCTLG0)
END-EXEC.
MOVE SPACES TO W-ERROR
EVALUATE WTLG-CDRETO
WHEN '00'
CONTINUE
WHEN OTHER
MOVE 'XCE0020' TO CAA-COD-ERROR
MOVE 'EN DB2' TO CAA-VAR1-ERROR(5:6)
MOVE WTLG-CDRETO TO CAA-VAR1-ERROR(1:4)
MOVE 'ACCESO XC7CTLG0' TO W-REFERENCIA
MOVE 'XC7CTLG0' TO CAA-VAR2-ERROR
END-EVALUATE.

S-ar putea să vă placă și