{ ------------------------------------------------------------------------------- PROGRAMA : VEPRRP008 OBJETIVO : Estadisticas de Validacion Facturas PROGRAMADOR : Lic. Abner Montalvo Zapata FECHA REALIZACION : Enero 20, 1993 ------------------------------------------------------------------------------- } GLOBALS "veprgb000.4gl" DEFINE selec_v CHAR(1000) DEFINE p_ventas RECORD LIKE vetb00002.* DEFINE p_vetb04 RECORD LIKE vetb00004.*, psub LIKE vetb00002.sub_total DEFINE idx1,idx2 INTEGER DEFINE fecha1,fecha2 DATE MAIN DEFER INTERRUPT SELECT * INTO p_companias.* FROM companias CALL pantalla() CALL veprrp046() END MAIN FUNCTION veprrp046() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21, PROMPT LINE 14 OPEN FORM vefmrp001 FROM "vefmrp001" DISPLAY FORM vefmrp001 CALL pantalla() DISPLAY "veprrp046" AT 4,3 DISPLAY "Validacion de Facturas" AT 6,29 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME fecha1,fecha2 AFTER FIELD fecha1 IF fecha1 IS NULL OR fecha1 > TODAY THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha1 END IF AFTER FIELD fecha2 IF fecha2 IS NULL OR fecha2 < fecha1 THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha1 END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF IF fecha1 IS NULL OR fecha1 > TODAY THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha1 END IF IF fecha2 IS NULL OR fecha2 < fecha1 THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha1 END IF EXIT INPUT 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.ventas,a.factura,a.cond_pago,a.tipo_cliente FROM ventas,factura,cond_pago,tipo_cliente IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF # Busca los codigos de los productos terminados # Busca las ventas reales del ano actual hasta el mes indicado anteriormente LET selec_v = "SELECT a.*,b.* FROM vetb00002 a,vetb00004 b ", "WHERE a.tipo_cliente=b.tipo_cliente AND a.sec_cliente=b.sec_cliente AND ", " a.fecha_factura BETWEEN '",fecha1," '"," AND '",fecha2, " '"," AND ", criterio CLIPPED," ORDER BY a.conduce" DISPLAY " " AT 19,14 DISPLAY "<>" AT 19,14 ATTRIBUTE (REVERSE) FOREACH movi_vr INTO p_ventas.*,p_vetb04.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF # Busca el sub_total { LET psub = 0 SELECT SUM(a.cantidad*a.precio) INTO psub FROM vetb00003 a WHERE a.factura = p_ventas.factura LET p_ventas.sub_total = psub } IF p_ventas.status_t = "E" THEN LET psub = 0 LET p_ventas.sub_total = 0 LET p_ventas.monto_desc = 0 LET p_ventas.monto_itbi = 0 LET p_ventas.neto = 0 LET p_vetb04.nombre = "FACTURA NULA" END IF OUTPUT TO REPORT p_ventas1(p_ventas.*,p_vetb04.*) END FOREACH FINISH REPORT p_ventas1 RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT p_ventas1(x,v) DEFINE x RECORD LIKE vetb00002.* DEFINE v RECORD LIKE vetb00004.* DEFINE vendedor,imp,imp1 CHAR (1) DEFINE descrip_venta CHAR(22) DEFINE descrip1 CHAR(30) DEFINE doble_on,doble_off,negrillas_on,negrillas_off,comp_on,comp_off, doce,normal CHAR(2) DEFINE hora CHAR(5), etiqueta CHAR(20) 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 27, ASCII 80 LET hora = time LET lj = (100 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1,doce PRINT COLUMN 1,"veprrp046", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 93, "Pag. ", pageno using "###" PRINT COLUMN 41, "Sistema de Ventas", COLUMN 93, today using "dd/mm/yy" PRINT COLUMN 40, "Validacion Facturas y Conduce", COLUMN 96, hora PRINT COLUMN 1, "DEL ",fecha1 USING "DD/MM/YYYY"," AL ", fecha2 USING "DD/MM/YYYY" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" PRINT COLUMN 1, "FACTURA", COLUMN 9, "CLIENTE", COLUMN 82, "CONDUCE" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" ON EVERY ROW IF x.factura = x.conduce or x.conduce IS NULL THEN LET etiqueta = "FACTURA SIN CONDUCE" ELSE LET etiqueta = NULL END IF PRINT COLUMN 1, x.factura USING "&&&&&", COLUMN 9, x.tipo_cliente USING "&&","-", x.sec_cliente USING "&&&&"," ",v.nombre[1,30], COLUMN 82, x.conduce USING "&&&&&&" ON LAST ROW PRINT ASCII 27, ASCII 80 END REPORT FUNCTION pantalla() DEFINE fecha CHAR(8), hora char(5) , lj SMALLINT, p_companias RECORD LIKE companias.* LET fecha = today USING "dd/mm/yy" LET hora = time SELECT * INTO p_companias.* FROM companias LET lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2 DISPLAY p_companias.nombre CLIPPED AT 4,lj ATTRIBUTE (REVERSE,blue) DISPLAY fecha AT 4,70 ATTRIBUTE (blue) DISPLAY "Sistema de Ventas" AT 5,31 DISPLAY hora AT 6,73 ATTRIBUTE(blue) CALL fgl_drawbox(5,79,3,1) CALL fgl_drawbox(1,79,22,1) END FUNCTION