Files
MBS/PROYECTO/cgdir/cgprrp027.4gl
T

232 lines
6.8 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : CGPRRP027
OBJETIVO : OTRAS RETENCIONES DE LOS CHEQUES
PROGRAMADOR : Ing. Juan F. Soto
FECHA REALIZACION : Febrero 21, 1996
-------------------------------------------------------------------------------
}
GLOBALS "cgprgb000.4gl"
DEFINE fecha1,fecha2 DATE
FUNCTION cgprrp027()
## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
DEFINE pcheques RECORD
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto LIKE cgtb00005.monto,
retenido DECIMAL(12,2)
END RECORD,
p_ref1 CHAR(9)
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM cgfmrp027 FROM "cgfmrp027"
DISPLAY FORM cgfmrp027
CALL pantalla()
DISPLAY "cgprrp027" AT 4,3
DISPLAY "Relacion de Pagos Para Retibuciones Complementarias" AT 6,15
## INDICA EL TIPO DE PAPEL NECESARIO PARA EL REPORTE. 1 - PAPEL 9 1/2 X 11
## 2 - PAPEL 14 7/8 X 11
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME fecha1,fecha2
AFTER FIELD fecha1
IF fecha1 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
AFTER FIELD fecha2
IF fecha2 IS NULL OR fecha1 > fecha2 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DECLARE busca CURSOR FOR
SELECT UNIQUE a.cheque_no,a.fecha,a.portador,a.monto
FROM cgtb00005 a
WHERE a.fecha BETWEEN fecha1 AND fecha2 AND (a.status_t IS NULL or
a.status_t = "C")
ORDER BY 3
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
START REPORT otras_r TO PIPE "lp"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE
## SALIDA AL REPORTE
FOREACH busca INTO pcheques.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET p_ref1 = "CK.",pcheques.cheque_no using "&&&&&&"
SELECT credito INTO pcheques.retenido FROM cgtb00004
WHERE ref = p_ref1 and cuenta_no = "2173" and
fecha between fecha1 and fecha2 and
credito > 0
IF STATUS != NOTFOUND THEN
OUTPUT TO REPORT otras_r(pcheques.*)
END IF
LET pcheques.retenido = 0
END FOREACH
FINISH REPORT otras_r
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
REPORT otras_r(x)
DEFINE x RECORD
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto LIKE cgtb00005.monto,
retenido DECIMAL(12,2)
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE dueno CHAR(30)
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(3)
DEFINE negrillas_off CHAR(3)
DEFINE comp_on CHAR(3)
DEFINE comp_off CHAR(3)
DEFINE doce CHAR(2)
DEFINE normal CHAR(2)
DEFINE hora CHAR(5)
DEFINE l smallint
DEFINE estado CHAR(1)
DEFINE inicio,final,cheque,i,tot_che INTEGER
DEFINE total,valor DECIMAL(12,2)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
FORMAT
PAGE HEADER
LET doble_on = ASCII 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 027, ASCII 098
LET negrillas_off = ASCII 027, ASCII 099
LET comp_on = ASCII 031
LET comp_off = ASCII 029
LET doce = ASCII 030
LET normal = ASCII 029
LET hora = time
PRINT COLUMN 1, normal,
COLUMN 2, "cgprrp027",
COLUMN 14, negrillas_on,
COLUMN 15, doble_on,
COLUMN 16, comp_on,
COLUMN 17, "M A R M O T E C H, S. A.",
COLUMN 65, negrillas_off,
COLUMN 66, doble_off,
COLUMN 67, comp_off,
COLUMN 77, "Pag. ",pageno using "###"
PRINT COLUMN 28, "Sistema de Contabilidad",
COLUMN 75, today using "dd/mm/yy"
PRINT COLUMN 20, "Relacion De Pagos Para Retibuciones Complementarias",
COLUMN 78, hora
PRINT COLUMN 28, "Del"," ",fecha1 using "dd/mm/yy",
" Al ",fecha2 using "dd/mm/yy",
COLUMN 75, negrillas_off
PRINT doce
PRINT COLUMN 2, "---------------------------------------------------",
"---------------------------------------------"
PRINT COLUMN 2, "Cheque No.",
COLUMN 15, "Fecha",
COLUMN 26, "Nombre",
COLUMN 70, "Monto CK.",
COLUMN 90, "Retenido"
PRINT COLUMN 90, "S/2173"
PRINT COLUMN 2, "----------------------------------------------------",
"--------------------------------------------"
skip 1 line
## AQUI SE INDICA LA IMPRESION DEL DETALLE
ON EVERY ROW
PRINT COLUMN 5, x.cheque_no using "&&&&&&&",
COLUMN 15, x.fecha USING "dd/mm/yy",
COLUMN 26, x.portador clipped," ",
COLUMN 64, x.monto using "###,###,###.##",
COLUMN 89, x.retenido using "###,###.##"
AFTER GROUP OF x.portador
PRINT COLUMN 1, negrillas_on ,
COLUMN 66, "--------------",
COLUMN 88, "---------------"
PRINT COLUMN 26, x.portador clipped,
COLUMN 64, GROUP SUM(x.monto) +
GROUP SUM(x.retenido) using "###,###,###.##" ,
COLUMN 85, GROUP SUM(x.retenido) using "###,###,###.##"
PRINT COLUMN 1, negrillas_off
SKIP 1 LINE
ON LAST ROW
PRINT COLUMN 1, negrillas_on ,
COLUMN 66, "==============",
COLUMN 88, "==============="
PRINT COLUMN 26, "Total General",
COLUMN 64, SUM(x.monto) +
SUM(x.retenido) using "###,###,###.##" ,
COLUMN 85, SUM(x.retenido) using "###,###,###.##"
PRINT COLUMN 1, negrillas_off
END REPORT