Files

264 lines
8.7 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : VEPRRP032
OBJETIVO : Precio Real Vs Precio Factura.
PROGRAMADOR : Tadeo A.Ferreras F.
FECHA REALIZACION : Abril 08, 1995
-------------------------------------------------------------------------------
}
GLOBALS "veprgb000.4gl"
DEFINE fecha1,fecha2 DATE
DEFINE salir CHAR(1)
FUNCTION veprrp032()
DEFINE factura RECORD
sec_cliente INTEGER,
nombre CHAR(30),
factura INTEGER,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
precio_fact DECIMAL(12,2),
precio_real DECIMAL(12,2),
descripcion CHAR(30)
END RECORD
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM vefmrp032 FROM "vefmrp032"
DISPLAY FORM vefmrp032
CALL pantalla()
DISPLAY "veprrp032" AT 4,3
DISPLAY "Precio Real Vs Precio Factura" AT 6,25
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME fecha1,fecha2
ON KEY (F2)
RUN "copy pantalla.bat impresion.bat"
DISPLAY "ACTIVACION REPORTE POR WORDPAD" AT 20,15 ATTRIBUTE(RED)
AFTER INPUT
EXIT INPUT
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
IF fecha1 > fecha2 THEN
LET fecha2 = fecha1
END IF
# Busca Los Movimientos de las Facturas con su factura
CONSTRUCT BY NAME criterio ON a.sec_cliente
ON KEY (F2)
RUN "copy pantalla.bat impresion.bat"
DISPLAY "ACTIVACION REPORTE POR WORDPAD" AT 20,15 ATTRIBUTE(RED)
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
LET selec =
"SELECT a.sec_cliente,b.nombre,a.factura,c.cod_n,c.cod_grupo,c.cod_tipo, ",
" c.cod_sec,c.precio,a.sec_vend ",
"FROM vetb00002 a,vetb00003 c, OUTER vetb00004 b ",
"WHERE a.sec_cliente = b.sec_cliente AND a.factura = c.factura AND ",
" a.status_t IS NULL AND a.fecha_factura IS NOT NULL AND ",
" a.fecha_factura BETWEEN ? AND ? AND ",
" a.sec_cliente IS NOT NULL AND b.sec_cliente IS NOT NULL AND ",
" a.tipo_cliente = b.tipo_cliente AND ",criterio CLIPPED,
" ORDER BY 1,3 "
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE busca_movi FROM selec
DECLARE movi_curs SCROLL CURSOR FOR busca_movi
OPEN movi_curs USING fecha1,fecha2
START REPORT reporte_32 TO "C:\\archivo"
#START REPORT reporte_32 TO "rpve32"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
LET salir = "N"
WHILE salir != "S"
FETCH movi_curs INTO factura.*
IF STATUS = NOTFOUND THEN
LET salir = "S"
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF factura.sec_cliente IS NOT NULL THEN
LET factura.precio_real = 0
SELECT avg(b.precio) INTO factura.precio_real FROM vetb00025 b
WHERE b.sec_cliente=factura.sec_cliente AND b.cod_n = factura.cod_n AND
b.cod_grupo=factura.cod_grupo AND b.cod_tipo=factura.cod_tipo AND
b.cod_sec = factura.cod_sec AND b.status_t IS NULL
IF factura.precio_real = 0 OR STATUS = NOTFOUND THEN
SELECT AVG(b.precio) INTO factura.precio_real FROM vetb00025 b
WHERE b.sec_cliente IS NULL AND b.cod_n = factura.cod_n AND
b.cod_grupo=factura.cod_grupo AND b.cod_tipo=factura.cod_tipo AND
b.cod_sec = factura.cod_sec AND b.status_t IS NULL
END IF
LET factura.descripcion = "Registro No Existe"
IF factura.precio_real <> factura.precio_fact THEN
SELECT MAX(a.descrip_esp) INTO factura.descripcion FROM iptb00002 a
WHERE a.cod_n = factura.cod_n AND a.cod_grupo=factura.cod_grupo AND
a.cod_tipo=factura.cod_tipo AND a.cod_sec = factura.cod_sec AND
a.status_t IS NULL
OUTPUT TO REPORT reporte_32(factura.*)
END IF
END IF
END WHILE
FINISH REPORT reporte_32
CLEAR SCREEN
RUN "impresion C:\\archivo"
RUN "copy printer2.bat impresion.bat"
END FUNCTION
REPORT reporte_32(x)
DEFINE x RECORD
sec_cliente INTEGER,
nombre CHAR(30),
factura INTEGER,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
precio_fact DECIMAL(12,2),
precio_real DECIMAL(12,2),
descripcion CHAR(30)
END RECORD,
nombre_vend CHAR(32)
DEFINE nombre1,apellido1 CHAR(15)
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(2)
DEFINE hora CHAR(5)
DEFINE total_gral DECIMAL(12,2)
DEFINE nombre_transp CHAR(30)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
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 18
LET hora = time
LET lj = (133 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT comp_on,negrillas_on
PRINT COLUMN 1, "veprrp032",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 126, "Pag. ",pageno using "###"
PRINT COLUMN 44, " Sistema de Ventas ",
COLUMN 126, today using "dd/mm/yy"
PRINT COLUMN 44, " Precio Real Vs Precio Factura",
COLUMN 129, hora
SKIP 1 LINES
PRINT COLUMN 1, "FECHA: DEL ",fecha1 USING "dd/mm/yy",
" AL ",fecha2 USING "dd/mm/yy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"----------------------------------"
PRINT COLUMN 1, "Cliente",
COLUMN 38, "Factura ",
COLUMN 50, "Articulo",
COLUMN 95, "Precio Fact.",
COLUMN 110, "Costo + ITBI",
COLUMN 125, "Diferencia"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"----------------------------------"
PRINT negrillas_off
BEFORE GROUP OF x.sec_cliente
PRINT negrillas_on
PRINT COLUMN 1, x.sec_cliente USING "&&&&"," ",x.nombre CLIPPED,
negrillas_off
BEFORE GROUP OF x.factura
PRINT COLUMN 36, x.factura USING "##########";
ON EVERY ROW
PRINT COLUMN 50, x.cod_n USING "&",x.cod_grupo USING "&",
x.cod_tipo USING "&&",x.cod_sec USING "&&&"," ",
x.descripcion CLIPPED,
COLUMN 95, x.precio_fact USING "###,###.##",
COLUMN 110, x.precio_real USING "###,###.##",
COLUMN 125, x.precio_real-x.precio_fact USING "(((,(((.##)"
AFTER GROUP OF x.sec_cliente
SKIP 1 LINE
PRINT COLUMN 95, "----------",
COLUMN 110, "----------",
COLUMN 125, "-----------"
PRINT COLUMN 95, GROUP SUM(x.precio_fact) USING "###,###.##",
COLUMN 110, GROUP SUM(x.precio_real) USING "###,###.##",
COLUMN 125, GROUP SUM(x.precio_real-x.precio_fact)
USING "(((,(((.##)"
ON LAST ROW
PRINT negrillas_on
PRINT COLUMN 95, "----------",
COLUMN 110, "----------",
COLUMN 125, "-----------"
PRINT COLUMN 50,"TOTAL GENERAL",
COLUMN 92, SUM(x.precio_fact) USING "##,###,###.##",
COLUMN 107, SUM(x.precio_real) USING "##,###,###.##",
COLUMN 122, SUM(x.precio_real-x.precio_fact)
USING "((,(((,(((.##)"
PRINT normal,negrillas_off
END REPORT