Files

344 lines
10 KiB
Plaintext

{
==============================================================================
PROGRAMA : TEPRRP007
SISTEMA : Sistema de Tesoreria
Objetivo : Relacion de Cheque Emitidos
PROGRAMADOR : Tadeo A. Ferreras
FECHA : Diciembre 05, 1995
==============================================================================
}
GLOBALS
"teprgb000.4gl"
DEFINE tipos STRING
DEFINE datos_7 RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
DEFINE fecha_inicial,fecha_final DATE
DEFINE tasa DECIMAL(7,3)
DEFINE salir CHAR(1)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL STARTLOG("teprrp001.txt")
CONNECT to "smarmotech" USER usuarios USING clave
SELECT a.* INTO p_compania.* FROM companias a
DISPLAY usuarios
CALL teprrp007()
END MAIN
FUNCTION teprrp007()
LET int_flag = FALSE
OPTIONS
FORM LINE 8
OPEN FORM tefmrp007 FROM "tefmrp007"
DISPLAY FORM tefmrp007
DISPLAY "teprrp007" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Relacion de Cheques Emitidos" AT 6,26 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME fecha_inicial,fecha_final,tasa,tipos
AFTER FIELD fecha_inicial
IF fecha_inicial IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
AFTER FIELD fecha_final
IF fecha_final IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_inicial > fecha_final THEN
LET numero_msg = 51
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON a.cuenta_no,a.cheque_no FROM cuenta_no,cheque_no
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
{
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
}
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DISPLAY "tipos",tipos
IF tipos="e" THEN
LET selec =
"SELECT UNIQUE a.cuenta_no,a.cheque_no,a.fecha,a.portador,a.monto, ",
" a.status_t,b.codigo,c.descripcion ",
"FROM cgtb00005 a, tetb00006 b, outer tetb00003 c ",
"WHERE ",criterio CLIPPED," AND (a.fecha BETWEEN ? AND ?) AND ",
" a.cuenta_no = b.banco AND ",
" a.cheque_no = b.cheque_no AND ",
" b.codigo = c.codigo and a.status_t is null ",
"ORDER BY 1,2"
ELSE
LET selec =
"SELECT UNIQUE a.cuenta_no,a.cheque_no,a.fecha,a.portador,a.monto, ",
" a.status_t,b.codigo,c.descripcion ",
"FROM cgtb00005 a, tetb00006 b, outer tetb00003 c ",
"WHERE ",criterio CLIPPED," AND (a.fecha BETWEEN ? AND ?) AND ",
" a.cuenta_no = b.banco AND ",
" a.cheque_no = b.cheque_no AND ",
" b.codigo = c.codigo and a.status_t=? ",
"ORDER BY 1,2"
END IF
DISPLAY "<<<Buscando Informacion... Espere por Favor>>>" AT 19,14
ATTRIBUTE(BLUE)
PREPARE comando FROM selec
DECLARE busco CURSOR FOR comando
# OPEN busco USING fecha_inicial,fecha_final
{ ELSE
LET selec = "SELECT UNIQUE a.cuenta_no,a.cheque_no,a.fecha,a.portador,a.monto, ",
" a.status_t,b.codigo,c.descripcion ",
"FROM cgtb00005 a, tetb00006 b, outer tetb00003 c ",
"WHERE ",criterio CLIPPED," AND (a.fecha BETWEEN ? AND ?) AND ",
" a.cuenta_no = b.banco AND ",
" a.cheque_no = b.cheque_no AND ",
" b.codigo = c.codigo and a.status_t=? ",
"ORDER BY 1,2"
DISPLAY "<<<Buscando Informacion... Espere por Favor>>>" AT 19,14
ATTRIBUTE(BLUE)
PREPARE comando1 FROM selec
DECLARE busco1 CURSOR FOR comando1
# OPEN busco1 USING fecha_inicial,fecha_final,tipos
END IF }
LET idx=1
# IF tipos="e" THEN
FOREACH busco USING fecha_inicial,fecha_final,tipos INTO datos_7.*
IF idx=1 THEN
LET r_output="PDF"
IF fgl_report_loadCurrentSettings("teprrp007.4rp") THEN -- load the .4rp file
LET preview=1
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
# IF handler IS NOT NULL THEN -- report engine was configured ok
START REPORT cheque_e TO XML HANDLER HANDLER
END IF
{ IF idx=1 THEN
IF fgl_report_loadCurrentSettings("teprrp007r.4rp") THEN -- load the .4rp file
LET preview=1
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
# IF handler IS NOT NULL THEN -- report engine was configured ok
START REPORT cheque_e2 TO XML HANDLER HANDLER
END IF }
DISPLAY "<<<Reporte Generandose... Espere por Favor>>>" AT 19,14
ATTRIBUTE(YELLOW)
DISPLAY datos_7.cuenta_no AT 21,30
DISPLAY datos_7.cheque_no AT 21,40
IF datos_7.status_t = "N" THEN
LET datos_7.monto = 0
LET datos_7.portador = "NULO"
END IF
IF datos_7.cuenta_no = 1113 THEN
LET datos_7.monto = datos_7.monto * tasa
END IF
# OUTPUT TO REPORT cheque_e2(datos_7.*)
OUTPUT TO REPORT cheque_e(datos_7.*)
LET idx=idx+1
END FOREACH
IF idx > 1 THEN
# FINISH REPORT cheque_e2
FINISH REPORT cheque_e
ELSE
CALL fgl_winmessage("ERROR","NO EXISTEN REGISTROS CON ESA CONDICION","INFO")
END IF
END FUNCTION
REPORT cheque_e(x)
DEFINE x RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE numero_ch CHAR(9),
descripcion CHAR(30),
detalle1 CHAR(40),
detalle2 CHAR(37)
DEFINE hora CHAR(5),fecha DATE
DEFINE total1,total2 DEC(10,2)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
FORMAT
PAGE HEADER
LET fecha = today
LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
LET total1=0
LET total2=0
BEFORE GROUP OF x.cheque_no
LET numero_ch = NULL
LET detalle1 = NULL
LET detalle2 = NULL
IF x.status_t = "N" THEN
LET detalle1 = "CHEQUE ANULADO"
LET detalle2 = " "
ELSE
LET numero_ch = NULL
LET numero_ch = "CK.",x.cheque_no USING "&&&&&&"
SELECT UNIQUE a.detalle_1,a.detalle_2[1,37]
INTO detalle1,detalle2
FROM cgtb00004 a
WHERE a.tipo=2 AND a.cuenta_no=x.cuenta_no AND a.ref = numero_ch
AND a.detalles IN( x.cuenta_no) AND a.status_t IS NULL
END IF
BEFORE GROUP OF x.cuenta_no
LET total1=0
ON EVERY ROW
IF x.monto IS NULL THEN
LET x.monto=0
END IF
DISPLAY x.cheque_no
PRINTX x.*,descripcion,p_compania.*,detalle1,detalle2,hora,fecha,fecha_inicial,fecha_final
AFTER GROUP OF x.cuenta_no
LET total1=GROUP SUM(x.monto)
PRINTX total1
ON LAST ROW
LET total2=0
LET total2=SUM(x.monto)
PRINTX total2
END REPORT
REPORT cheque_e2(x)
DEFINE x RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE numero_ch CHAR(9),
descripcion CHAR(30),
detalle1 CHAR(40),
detalle2 CHAR(37)
DEFINE hora CHAR(5),
fecha DATE,total1,total2 DECIMAL(12,2)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
ORDER BY x.codigo
FORMAT
PAGE HEADER
LET hora = TIME
LET fecha=today
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
BEFORE GROUP OF x.cuenta_no
SELECT a.descripcion INTO descripcion FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_no
PRINTX descripcion
ON EVERY ROW
IF x.monto IS NULL THEN
LET x.monto=0
END IF
PRINTX x.*,p_compania.*,fecha_inicial,fecha_final
AFTER GROUP OF x.codigo
LET total1=0
LET total1=GROUP SUM(x.monto)
PRINTX total1
ON LAST ROW
LET total2=0
LET total2=SUM(x.monto)
PRINTX total2
END REPORT