Documente Academic
Documente Profesional
Documente Cultură
COPY QCECRUTI.
*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.
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
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
*---------------*
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.