Files

293 lines
9.0 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : CGPRRP022
OBJETIVO : Listar las Entrada de Diario
PROGRAMADOR : Juan Soto
FECHA REALIZACION : Mayo 9, 1994.
-------------------------------------------------------------------------------
}
GLOBALS
"cgprgb000.4gl"
DEFINE p_mes SMALLINT
DEFINE p_ano CHAR(4)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "smarmotech" USER usuarios USING clave
SELECT a.* INTO p_compania.* FROM companias a
CALL cgprrp022()
END MAIN
FUNCTION cgprrp022()
DEFINE x1 RECORD
id INTEGER,
ref LIKE cgtb00004.ref,
cuenta_no LIKE cgtb00004.cuenta_no,
departamento LIKE cgtb00004.departamento,
cod_aux LIKE cgtb00004.cod_aux,
cod_sec LIKE cgtb00004.cod_sec,
num_doc LIKE cgtb00004.num_doc,
descripcion LIKE cgtb00001.descripcion,
debito LIKE cgtb00004.debito,
credito LIKE cgtb00004.credito,
detalle1 LIKE cgtb00004.detalle_1,
detalle2 LIKE cgtb00004.detalle_2
END RECORD
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
##### Abriendo y desplegando el formulario de captura de datos
OPEN FORM cgfmrp022 FROM "cgfmrp022"
DISPLAY FORM cgfmrp022
CALL pantalla()
DISPLAY "cgprrp022" AT 4,3
DISPLAY "ENTRADAS REGISTRADAS" AT 6,29
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
###### Aceptando los valores para el rango de fecha
INPUT BY NAME p_mes,p_ano
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
SELECT fecha_inicio,fecha_corte INTO fecha1,fecha2 FROM prdtable
WHERE mes = p_mes and
ano = p_ano
CONSTRUCT BY NAME criterio ON a.ref
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
# Busca la informacion requerida
{
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
doble_on,doble_off,comp_on,comp_off,
doce,normal,archivo,copia
}
CALL configureoutput("SVG") RETURNING HANDLER
START REPORT imp_entrada TO XML HANDLER handler
LET selec =
"SELECT '1',a.ref,a.cuenta_no,a.departamento,a.cod_aux,a.cod_sec, ",
" a.num_doc,b.descripcion,a.debito,a.credito,a.detalle_1,detalle_2 ",
"FROM cgtb00004 a,cgtb00001 b ",
"WHERE ",criterio clipped," and a.cuenta_no = b.cuenta_no and ",
" a.tipo = '1' and a.status_t is null and a.fecha between ? and ? ",
"ORDER BY 2,3,1 "
PREPARE comando FROM selec
DECLARE busca CURSOR FOR comando
OPEN busca USING fecha1,fecha2
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)
DISPLAY " "
AT 19,14
##### Loop para enviar informacion al reporte
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
FOREACH busca INTO x1.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
OUTPUT TO REPORT imp_entrada(x1.*)
END FOREACH
FINISH REPORT imp_entrada
END FUNCTION
#### Funcion para dar salida ordenada a la informacion requerida de
#### una entrada de diario de nominas local
REPORT imp_entrada(x)
DEFINE x RECORD
id INTEGER,
ref LIKE cgtb00004.ref,
cuenta_no LIKE cgtb00004.cuenta_no,
departamento LIKE cgtb00004.departamento,
cod_aux LIKE cgtb00004.cod_aux,
cod_sec LIKE cgtb00004.cod_sec,
num_doc LIKE cgtb00004.num_doc,
descripcion LIKE cgtb00001.descripcion,
debito LIKE cgtb00004.debito,
credito LIKE cgtb00004.credito,
detalle1 LIKE cgtb00004.detalle_1,
detalle2 LIKE cgtb00004.detalle_2
END RECORD
DEFINE t_debito,t_credito DECIMAL(12,2)
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(6)
DEFINE negrillas_off CHAR(6)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(2)
DEFINE comprimido CHAR(3)
DEFINE hora CHAR(5)
DEFINE dpto INTEGER
DEFINE nomina1 CHAR(24)
OUTPUT
LEFT MARGIN 0
TOP MARGIN 0
ORDER BY x.ref,x.cuenta_no
FORMAT
PAGE HEADER
{
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 27, ASCII 80
}
LET hora = time
LET l = (100 - LENGTH(p_compania.nombre CLIPPED))/2
PRINT COLUMN 1, doce,negrillas_on
PRINT COLUMN 1, "cgprrp022",
COLUMN l, p_compania.nombre CLIPPED,
COLUMN 93, "Pag. ",pageno using "###"
PRINT COLUMN 38, "Sistema de Contabilidad",
COLUMN 93, today using "dd/mm/yy"
PRINT COLUMN 40, "Entradas al Diario",
COLUMN 96, hora
PRINT COLUMN 38, "Del ",fecha1 USING "dd/mm/yy", " Al ",fecha2
USING "dd/mm/yy"
SKIP 1 LINE
PRINT doce,negrillas_off
BEFORE GROUP OF x.ref
LET t_debito = 0
LET t_credito = 0
PRINT COLUMN 01,"Entrada de Diario No.",
doble_on,x.ref,doble_off
PRINT COLUMN 1,"Observaciones: _____________________________________"
PRINT COLUMN 1," _____________________________________"
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------"
PRINT COLUMN 2, "Cuenta ",
COLUMN 11, "Dpto",
COLUMN 17, "Catalogo",
COLUMN 26, "Refe",
COLUMN 41, "Concepto",
COLUMN 75, "Debe",
COLUMN 93, "Haber",negrillas_off
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------"
ON EVERY ROW
IF t_debito is null THEN
LET t_debito = 0
END IF
IF t_credito is null THEN
LET t_credito = 0
END IF
IF x.debito != 0 THEN
PRINT COLUMN 2, x.cuenta_no,
COLUMN 11, x.departamento using "&&&&",
COLUMN 17, x.cod_aux using "&&","-",x.cod_sec using "&&&&",
COLUMN 26, x.num_doc,
COLUMN 41, x.descripcion[1,25],
COLUMN 68, x.debito using "#,###,###,###.##"
LET t_debito = t_debito + x.debito
END IF
IF x.credito != 0 THEN
PRINT COLUMN 2, x.cuenta_no,
COLUMN 11, x.departamento using "&&&&",
COLUMN 17, x.cod_aux using "&&","-",x.cod_sec using "&&&&",
COLUMN 26, x.num_doc,
COLUMN 41, x.descripcion[1,25],
COLUMN 85, x.credito using "#,###,###,###.##"
LET t_credito = t_credito + x.credito
END IF
AFTER GROUP OF x.ref
PRINT COLUMN 1,negrillas_on
PRINT COLUMN 67,"--------------",
COLUMN 85,"--------------"
PRINT COLUMN 35,"Totales-->",
COLUMN 66, t_debito using "##,###,###,###.##",
COLUMN 83, t_credito using "##,###,###,###.##"
PRINT COLUMN 1, x.detalle1,x.detalle2
SKIP TO TOP OF PAGE
LET t_debito = 0
LET t_credito = 0
PAGE TRAILER
SKIP 4 LINE
PRINT COLUMN 4,"_______________________",
COLUMN 36,"_______________________",
COLUMN 75,"_______________________"
PRINT COLUMN 2," PREPARADO POR ",
COLUMN 36," REVISADO POR ",
COLUMN 75," AUTORIZADO POR "
PRINT COLUMN 1,comp_off,negrillas_off
END REPORT