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

344 lines
10 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : EDPRRP011
OBJETIVO : Listar las Entrada de Diario ctas. por Pagar Exportacion
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Julio 28, 1994
-------------------------------------------------------------------------------
}
DATABASE rayovac
GLOBALS
###### Variables para busqueda de rango de fecha
DEFINE mes SMALLINT ,
ano CHAR(4) ,
tasa DECIMAL(5,2) ,
p_fecha,fecha1, fecha2 DATE ,
afecta,ventas CHAR(1),
entra CHAR(14),
entra1 CHAR(5),
detalle CHAR(30)
###### Variables para almacenar los datos selecionados
DEFINE selec5, selec6 CHAR(1500)
###### Variables que la almacenan la informacion enviada al reporte
###### Variables que la almacenan la informacion enviada al reporte
DEFINE diario2 RECORD
cuenta_no CHAR(8),
departamento INTEGER,
cod_aux SMALLINT,
cod_sec SMALLINT,
factura CHAR(10),
debito DECIMAL(12,2),
credito DECIMAL(12,2)
END RECORD
DEFINE descripcion CHAR(30),
tipo_papel SMALLINT
END GLOBALS
MAIN
DEFER INTERRUPT
CALL edprrp011()
END MAIN
FUNCTION edprrp011()
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
##### Abriendo y desplegando el formulario de captura de datos
OPEN FORM edfmrp011 FROM "edfmrp011"
DISPLAY FORM edfmrp011
CALL pantalla()
DISPLAY "edprrp011" AT 4,3
DISPLAY "Entrada de Diario CXP Exportacion" AT 6,23
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
###### Aceptando los valores para el rango de fecha
INPUT BY NAME entra,fecha1,fecha2,detalle,afecta
AFTER FIELD entra
SELECT UNIQUE ref FROM cgtb00004 WHERE ref = entra
IF STATUS != NOTFOUND THEN
ERROR "(12) REGISTRO EXISTE"
NEXT FIELD entra
END IF
LET entra1 = entra
BEFORE FIELD fecha1
SELECT max(fecha) INTO p_fecha FROM cgtb00004
WHERE ref[1,5] = entra1
LET fecha1 = p_fecha + 1
DISPLAY BY NAME fecha1
AFTER FIELD fecha1
IF fecha1 IS NULL THEN
ERROR "(16) CAMPO EN BLANCO"
NEXT FIELD fecha1
END IF
IF fecha1 <= p_fecha THEN
ERROR "(179) EXISTE ENTRADA DE DIARIO CON ESA FECHA"
NEXT FIELD fecha1
END IF
AFTER FIELD fecha2
IF fecha2 IS NULL THEN
ERROR "(16) CAMPO EN BLANCO"
NEXT FIELD fecha2
END IF
IF fecha1 > fecha2 THEN
ERROR "(86) FECHA INICIAL NO PUEDE SER MAYOR QUE LA ANTERIOR"
NEXT FIELD fecha1
END IF
END INPUT
##### Creando la facilidad para cancelar proceso con DELETE O SUPR
IF int_flag THEN
ERROR "(2) OPERACION CANCELADA"
LET int_flag = false
#RETURN
END IF
# Busca la informacion requerida
DECLARE buscar1 CURSOR FOR
SELECT b.cuenta_no,b.departamento,b.cod_aux,b.cod_sec,b.num_doc,
SUM(b.debito),SUM(b.credito)
FROM cptb00003 b
WHERE b.status_t IS NULL AND
b.fecha BETWEEN fecha1 AND fecha2 and b.cod_sp = 22
GROUP BY 1,2,3,4,5
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 17,14
ATTRIBUTE (REVERSE,BOLD)
##### Envia la Informacion al printer de contabilidad
START REPORT report11 TO PIPE "lp -dcentral"
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 17,14 ATTRIBUTE (REVERSE)
##### Loop para enviar informacion al reporte
FOREACH buscar1 INTO diario2.*
IF int_flag THEN
ERROR "(2) OPERACION CANCELADA"
LET int_flag = FALSE
EXIT FOREACH
END IF
OUTPUT TO REPORT report11(diario2.*)
END FOREACH
FINISH REPORT report11
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
#### Funcion para dar salida ordenada a la informacion requerida de
#### una entrada de diario de ventas exportacion
REPORT report11(x)
DEFINE x RECORD
cuenta_no CHAR(8),
departamento INTEGER,
cod_aux SMALLINT,
cod_sec SMALLINT,
factura CHAR(10),
debito DECIMAL(12,2),
credito DECIMAL(12,2)
END RECORD
#### Acumula los valores de las diferentes cuentas para entrada diario de venta
DEFINE total1,total2,total3,total4,total5,total6 DECIMAL(12,2),
cuenta CHAR(8),
descr CHAR(30),
total7,total8 DECIMAL(12,2), ##Acumula totales DEBITO Y CREDITO
ano1 CHAR(4),
doble_on CHAR(4),
doble_off CHAR(4),
negrillas_on CHAR(6),
negrillas_off CHAR(6),
comp_on CHAR(2),
comp_off CHAR(2) ,
doce CHAR(2),
normal CHAR(2) ,
normall CHAR(3) ,
comprimido CHAR(3),
hora CHAR(5),
dpto CHAR(4),
venta1 CHAR(24),
aux CHAR(7),
tasa1 DECIMAL(5,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY x.cod_sec DESC,x.factura,x.cuenta_no
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 31
LET comp_off = ASCII 029
LET comprimido = ASCII 031
LET doce = ASCII 030
LET normal = ASCII 27, ASCII 80
LET normall = ASCII 029
LET hora = time
PRINT COLUMN 1, comp_off
PRINT COLUMN 1, "edprrp011",
COLUMN 26, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 75, "Pag. ",pageno using "###"
PRINT COLUMN 27, "Sistema de Cuentas por Cobrar",
COLUMN 75, today using "dd/mm/yy"
PRINT COLUMN 20, "Entrada de Diario Ctas X Pagar Exportacion",
COLUMN 78, hora
PRINT COLUMN 30, "Del ",fecha1 USING "dd/mm/yy", " Al ",fecha2
USING "dd/mm/yy"
# , negrillas_off
SKIP 1 LINE
PRINT COLUMN 01,"Entrada de Diario No. ",doble_on,entra,doble_off
PRINT COLUMN 01, "Observaciones: _____________________________________"
PRINT COLUMN 01, " _____________________________________"
PRINT COLUMN 1,
"--------------------------------------------------",
"----------------------------------",
negrillas_on,comp_on
PRINT COLUMN 2, "Cuenta",
COLUMN 13, "Dpto",
COLUMN 22, "Cta. Aux.",
COLUMN 34, "Ref.",
COLUMN 101, "Debe",
COLUMN 126, "Haber",negrillas_off,comp_off
PRINT COLUMN 1,
"--------------------------------------------------",
"----------------------------------",comp_on
ON EVERY ROW
LET descripcion = "CUENTA NO EXISTE"
SELECT a.descripcion INTO descripcion
FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_no
IF total1 IS NULL THEN
LET total1 = 0
END IF
IF total2 IS NULL THEN
LET total2 = 0
END IF
IF x.debito > 0 AND x.debito IS NOT NULL THEN
LET total1 = total1 + x.debito
END IF
IF x.credito > 0 AND x.credito IS NOT NULL THEN
LET total2 = total2 + x.credito
END IF
PRINT COLUMN 2, x.cuenta_no,
COLUMN 13, x.departamento USING "&&&&",
COLUMN 22, x.cod_aux USING "&&","-",x.cod_sec USING "&&&&",
COLUMN 34, x.factura CLIPPED,
COLUMN 46, descripcion CLIPPED,
COLUMN 85, x.debito using "###,###,###.##",
COLUMN 120, x.credito using "###,###,###.##"
IF afecta = "S" THEN
INSERT INTO cgtb00004
VALUES(fecha2,1,entra,x.cuenta_no,x.departamento,
x.factura,x.cod_aux,x.cod_sec,null,detalle,null,
x.debito,x.credito,null,user,current,null,null)
END IF
ON LAST ROW
###### Imprime total DEBITO y total CREDITO
PRINT COLUMN 1,negrillas_on
PRINT COLUMN 85,"______________",
COLUMN 120,"______________"
PRINT COLUMN 35,"Totales-->",
COLUMN 85,total1 USING "###,###,###.##",
COLUMN 120,total2 USING "###,###,###.##"
SKIP 2 LINE
PRINT COLUMN 1, detalle
SKIP 1 LINE
PRINT COLUMN 1,comp_off,negrillas_off
END REPORT
{
Esta funcion se utiliza para desplegar mensajes de los reportes de
los sistemas de Ray-O-Vac Dominicana.
Realizada por Lic. Abner Montalvo y Johnny Soto Agosto 21, 1992
}
FUNCTION msgrp000(tipo_papel)
DEFINE tipo_papel SMALLINT,
longitud CHAR(11),
linea_papel CHAR(50)
CASE
WHEN tipo_papel = 1
LET longitud = " 9 1/2 x 11"
WHEN tipo_papel = 2
LET longitud = "14 7/8 x 11"
END CASE
LET linea_papel = "Coloque papel ",longitud," en la impresora."
DISPLAY linea_papel
AT 15,14
DISPLAY "Asegurese de que la impresora este encendida."
AT 16,14
DISPLAY "<Esc> Ejecuta impresion <Supr> Cancela impresion"
AT 18,14
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5)
LET fecha = today USING "dd/mm/yy"
LET hora = time
DISPLAY "R A Y . O . V A C D O M I N I C A N A, S. A." AT 4,17
ATTRIBUTE (REVERSE,YELLOW)
DISPLAY fecha AT 4,70 ATTRIBUTE (YELLOW)
DISPLAY "Sistema de Contabilidad General" AT 5,24
DISPLAY hora AT 6,73 ATTRIBUTE(YELLOW)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
RUN "type C:\\archivo > %USPRINT%" END FUNCTION