H**================================================================** H** Modulo - PUMA ** H** ** H** Aplicaci¢n - Renwals Procces ** H** ** H** Objetivo - Realizar la impresion de las boletas de deposito ** H** correspondiente al mes del ultimo proceso de Re- ** H** novaciones. ** H** H** Programo - B. Perez/ESIL Argentina 11.09.1995 ** H** ** H**================================================================** H DECEDIT('0,') DFTNAME(PMT530) DATEDIT(*DMY/) * Archivo de cartas para renoivaciones FPMT515P IF E K DISK * Archivo de Nø DE BOLETAS FPMGDCPL0 UF E K DISK * Archivo de cartas retenidas FPMJGCPL1 IF E K DISK * Archivo de cartas retenidas- para delete FPMJGCPL2 UF E K DISK * Archivo de cartas retenidas- para delete FPMabrel0 iF E K DISK * Archivo Printer boleta de deposito FPMT530R1 O E PRINTER OFLIND(*IN97) D** Constantes para numeros de cuentas citi. D $PESO C CONST(0806058033) D $DOLA C CONST(2806058036) D $LOPE C CONST(274) D $LODO C CONST(9066) D $LOP1 C CONST(' 274') D $LOD1 C CONST('9066') * DS para formatear Nø de polizas 7 posiciones D DS INZ D DSPOLI 1 7 0 D DSPOL6 1 6 0 D DSPOL1 7 7 0 * DS para formatear Nø de polizas con serparador D DS INZ D DSPOLF 1 8 D DSPOF6 1 6 D DSPOF7 7 7 D DSPOF1 8 8 * DS para formatear cuentas del banco D DS INZ D DSCUEN 1 10 0 D DSCUE1 1 1 0 D DSCUE6 2 7 0 D DSCUE3 8 10 0 * DS para formatear codigo de barra D DS INZ D CODBAR 1 25 D ws_contante_1 1 8 inz('541/020/') D ws_poliza 9 16 0 D ws_contante_2 17 25 inz('/000/00 ') * DS para datos de impresion en codigo de barra U$S D DS D CODBAR$ 1 30 0 * constante * poliza D $OLIZA 1 8 0 inz(0) * moneda D $URR01 9 9 0 inz(0) * importe D $AIMPR 10 24 2 inz(0) * importe D $filler 25 30 0 inz(0) D DS D CODBARU 1 30 0 * constante * poliza D UOLIZA 1 8 0 inz(0) * moneda D UURR01 9 9 0 inz(0) * importe D UAIMPR 10 24 2 inz(0) * importe D Ufiller 25 30 0 inz(0) * DS para formatear cuentas del banco CON SEPARADOR D DS INZ D DSCUEF 1 12 D DSCUF1 1 1 D DSCUF2 2 2 D DSCUF6 3 8 D DSCUF9 9 9 D DSCUF3 10 12 * DS para formatear cliente con Nø de agente D DS INZ D DSDETA 1 48 D DSCLIE 1 33 D DSBLAN 34 36 D DSAGEN 37 44 * DS para armar clave archivo de retenciaon a borrar D DS INZ D DSFECH 1 6 0 D DSYY 1 2 0 D DSMM 3 4 0 D DSDD 5 6 0 * * DFec_AAMD S D DATFMT(*ISO) DFec_DMAA S D DATFMT(*EUR) * D SDS D SDSPGM 1 10 D PGMNAM 1 10 D ZZPGM 1 10 D SDSWST 244 253 D SDSUSR 254 263 C**=============================================================== ** C** M A I N ** C**=============================================================== ** C/SPACE 3 C** Llama rutina de inicio C EXSR SR99 * llama rutina de proceso C EXSR SR01 * Fin de programas C MOVE *ON *INLR * ***************************************************************** * SR01 : Rutina de Proceso principal * * * ==== * SR01 * * * * ***************************************************************** C SR01 BEGSR * DECA * Verifica si es proceso renewals o un Re-Prin C SELECT * si es del proceso renewals procesa todos los registros para el mes C KYNPOL WHENEQ *ZEROS * Rutina que procesa todos los registros C EXSR SR02 * si es un Re - Print procesa solo el registro solicitado C KYNPOL WHENNE *ZEROS * Rutina para Re - Print C EXSR SR03 * C ENDSL * C ENDSR ***************************************************************** * SR02 : Rutina de Proceso para todas las polizas con* * * ==== renewals para mes de proceso * SR02 * * * * ***************************************************************** C SR02 BEGSR * se posiciona en archivo de cartas por fechas C KYDATE SETLL PMT515P * C KYDATE READE PMT515P 60 * Loop por fechas C *IN60 DOWEQ *OFF * C Z-ADD OBBMNB KYNPOL * chequea que la poliza no figure como retenida C KEYHLD CHAIN PMJGCPL1 80 * si no existe la procesa C *IN80 IFEQ *ON * mientras exista registros con la misma fecha de proceso * llama rutina de impresi¢n de boletas C EXSR SRBOLE * C ENDIF * C KYDATE READE PMT515P 60 * C ENDDO * C ENDSR ***************************************************************** * SR03 : Rutina de Proceso para Re - Print de boletas* * * ==== * SR03 * * * * ***************************************************************** C SR03 BEGSR * accede al archivo de cartas C KEYPMT CHAIN PMT515P 80 * Si existe procesa C *IN80 IFEQ *OFF * C Z-ADD OBBMNB KYNPOL * chequea que la poliza no figure como retenida C KEYHLD CHAIN PMJGCPL1 81 * si no existe la procesa C *IN81 IFEQ *ON * mientras exista registros con la misma fecha de proceso * llama rutina de impresi¢n de boletas C EXSR SRBOLE * C ENDIF * C ENDIF * C ENDSR ***************************************************************** * SRBOLE: Rutina de Impresi¢n de boleta de deposito * * * ====== * SRBOLE* * * * ***************************************************************** C SRBOLE BEGSR * Asigna Nø de boleta C KEYNBO CHAIN PMGDCPL0 81 * adiciona uno al ultimo numero usado y lo mueve a la boleta de deposito C *IN81 IFEQ *OFF C ADD 1 GDVANB C Z-ADD GDVANB PRNBOL * actualiza el Ultimo nro. utilizado C UPDATE FGDCPVB C ENDIF * apaga indicadores de tachado de lineas C MOVE *OFF *IN68 C MOVE *OFF *IN69 * Importe C CLEAR PRIMPO C MOVEL DUEPRM PRIMPO * campo que contiene concatenado cliente y Nø de agente C CLEAR PRTITU C CLEAR PRAGEN C CLEAR DSDETA * Mueve cliente C MOVEL CLNNAM PRTITU C MOVEL CLNNAM DSCLIE * Agente C* MOVEL AGTNUM PRAGEN C* MOVE AGTNUM DSAGEN * C* MOVEL DSDETA PRDET1 C* MOVEL DSDETA PRDET2 * Nro. de poliza C MOVEL *BLANKS PRNPO4$C C MOVEL *BLANKS PRNPO4UC * Formatea Nø de poliza xxxxxx-x C Z-ADD OBBMNB DSPOLI C EXSR SRFMTP * * linea con guiones C MOVEL *ALL'-' PRLINA C MOVEL *ALL'-' PRLINB C MOVEL *ALL'-' PRLINC * enciende indicador para anular incremento automatico C MOVE *ON *IN68 * si es OPTIONS no permite suma unica adicional C OBJ9CD IFEQ '23' C MOVE *ON *IN69 C ENDIF * Imprime boleta de deposito. ** C Z-ADD OBBMNB WS_POLIZA c obbmnb chain pmabrel0 c if %FOUND(PMABREL0) C ENDIF * C MOVE AJAWD1 Fec_aamd C MOVE Fec_aamd Fec_dmaa C MOVE Fec_dmaa FECHAVTO C EVAL PRAGEN = DSPOLF C EVAL DSAGEN = DSPOLF * SR ** C MOVEL DUEPRM CUR 1 C* CUR IFEQ 'U' C MOVEL *ALL'-' PRLINDUC C MOVEL *ALL'-' PRLINFUC C MOVEL *ALL'-' PRLINHUC C MOVEL DSPOLF PRNPO4UC C MOVEL *ALL'-' PRLINDUZ C MOVEL *ALL'-' PRLINFUZ C MOVEL *ALL'-' PRLINHUZ C MOVEL DSPOLF PRNPO4UZ C MOVEL *ALL'-' PRLINDUB C MOVEL *ALL'-' PRLINFUB C MOVEL *ALL'-' PRLINHUB C MOVEL DSPOLF PRNPO4UB C* ELSE C MOVEL *ALL'-' PRLIND$C C MOVEL *ALL'-' PRLINF$C C MOVEL *ALL'-' PRLINH$C C MOVEL DSPOLF PRNPO4$C C MOVEL *ALL'-' PRLIND$Z C MOVEL *ALL'-' PRLINF$Z C MOVEL *ALL'-' PRLINH$Z C MOVEL DSPOLF PRNPO4$Z C MOVEL *ALL'-' PRLIND$B C MOVEL *ALL'-' PRLINF$B C MOVEL *ALL'-' PRLINH$B C MOVEL DSPOLF PRNPO4$B C* ENDIF C Z-ADD OBBMNB Uoliza C Z-ADD 3 UURR01 C Z-ADD RENPRA UAIMPR C Z-ADD OBBMNB $oliza C Z-ADD 1 $URR01 C Z-ADD RENPRA $AIMPR ** c move CODBAR$ barcod$ c move CODBARU barcodU ** C WRITE RGBOLE C WRITE RGBOL1 C WRITE RGBOL1P C WRITE RGBOL2 C WRITE RGBOL2P * Graba registro en blanco para imprimir preformato al dorso C WRITE RGFILL * C clear $oliza C clear PRLIND$C C clear PRLINF$C C clear PRLINH$C C clear PRNPO4$C C clear PRLIND$Z C clear PRLINF$Z C clear PRLINH$Z C clear PRNPO4$Z C clear PRLIND$B C clear PRLINF$B C clear PRLINH$B C clear PRNPO4$B C clear Uoliza C clear PRLINDuC C clear PRLINFuC C clear PRLINHuC C clear PRNPO4uC C clear PRLINDuZ C clear PRLINFuZ C clear PRLINHuZ C clear PRNPO4uZ C clear PRLINDuB C clear PRLINFuB C clear PRLINHuB C clear PRNPO4uB C ENDSR ***************************************************************** * SRFMTP: Rutina para formateo de Nø de poliza * * * ==== * SRFMTP* * * * ***************************************************************** * C SRFMTP BEGSR * C MOVEL DSPOL6 DSPOF6 C MOVEL DSPOL1 DSPOF1 C MOVEL '-' DSPOF7 * C ENDSR ***************************************************************** * SRCUEF: Rutina para formateo de Nø de cuentas del * * * ==== Citi. * SRCUEF* * * * ***************************************************************** * C SRCUEF BEGSR * C MOVEL DSCUE1 DSCUF1 C MOVEL DSCUE6 DSCUF6 C MOVEL DSCUE3 DSCUF3 C MOVEL '/' DSCUF2 C MOVEL '/' DSCUF9 * C ENDSR ***************************************************************** * SR99 : Rutina de inicializaci¢n de por £nica vez * * * ==== * SR99 * * * * ***************************************************************** * C SR99 BEGSR * SR99 * SEGMENTO 02 : Definici¢n de lista de parametro SR99 * ----------- SR99 C *ENTRY PLIST C PARM KYDATE C PARM KYNPOL * * SEGMENTO 03 : Definici¢n de claves de acceso SR99 * ----------- SR99 C KEYPMT KLIST C KFLD KYDATE C KFLD KYNPOL * SR99 C KEYNBO KLIST C KFLD KYNBOL 3 * SR99 C KEYHLD KLIST C KFLD KYTIPO 2 C KFLD KYNPOL * SR99 C KEYDEL KLIST C KFLD KYTIPO C KFLD KYCODE * SR99 * SEGMENTO 04 : Definici¢n de variables booleanas SR99 * ----------- SR99 C *LIKE DEFINE AJAWD1 KYDATE C *LIKE DEFINE OBBMNB KYNPOL C *LIKE DEFINE JGT8CD KYCODE * SR99 * SEGMENTO 99 : Inicializaci¢n para proceso SR99 * ----------- SR99 * recupera Nø de cuenta EN PESOS C Z-ADD $PESO DSCUEN * C EXSR SRCUEF * C* MOVEL DSCUEF PRCUE1 C* MOVEL DSCUEF PRCUE3 C* MOVEL DSCUEF PRCUE5 * recupera Nø de cuenta EN DOLARES C Z-ADD $DOLA DSCUEN * C EXSR SRCUEF * C* MOVEL DSCUEF PRCUE2 C* MOVEL DSCUEF PRCUE4 C* MOVEL DSCUEF PRCUE6 * Nø de lock bOX C* MOVEL $LOP1 PRLOC1 C* MOVEL $LOD1 PRLOC2 C* Z-ADD $LOPE PRLOC3 C* Z-ADD $LODO PRLOC4 C* Z-ADD $LOPE PRLOC5 C* Z-ADD $LODO PRLOC6 * ARMA CLAVE PARA NRO. DE BOLETA C MOVEL 'NBD' KYNBOL C MOVEL 'RN' KYTIPO * Borra archivo de dtos retenidos con mas de 6 meses para renova- * ciones. C MOVEL 'ANI' KYCODE * Siempre resta 3 meses a la fecha de proceso C Z-ADD UYEAR DSYY C Z-ADD UMONTH DSMM C Z-ADD 01 DSDD * C SELECT * Trata enero C DSMM WHENEQ 1 * C Z-ADD 10 DSMM C SUB 1 DSYY * Trata febrero C DSMM WHENEQ 2 * C Z-ADD 11 DSMM C SUB 1 DSYY * Trata Marzo C DSMM WHENEQ 3 * C Z-ADD 12 DSMM C SUB 1 DSYY * otros meses resta directamente 3 C OTHER * C SUB 3 DSMM * C ENDSL * se posiciona en el archivo con el valor mas bajo C KEYDEL SETLL PMJGCPL2 * 1ra. lectura del loop para borrar C KEYDEL READE PMJGCPL2 60 * C *IN60 DOWEQ *OFF * si la fecha de creacion tiene mas de 3 meses se borra C JGAADT IFLE DSFECH * Borra registro C DELETE FJGCPL6 * si el registro tratado es >= sale del loop C ELSE * C LEAVE * C ENDIF * Siguinete lectura del loop C KEYDEL READE PMJGCPL2 60 * C ENDDO * C ENDSR *