{ ------------------------------------------------------------------------------- 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