{ ------------------------------------------------------------------------------- PROGRAMA : VEPRRP019 OBJETIVO : Relacion de Ventas en unidades PROGRAMADOR : Juan Fco. Soto FECHA REALIZACION : Junio 3, 1993 ------------------------------------------------------------------------------- } GLOBALS "veprgb000.4gl" DEFINE mes SMALLINT DEFINE cod_cia SMALLINT DEFINE p_datos RECORD fecha_in DATE, fecha_fin DATE END RECORD FUNCTION veprrp019() DEFINE vendedor RECORD sec_vend SMALLINT, fecha_factura DATE, factura INTEGER, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, cantidad INTEGER , precio DECIMAL(10,2), porc_venta DECIMAL(10,4), descrip_esp CHAR(30), nombre_vend CHAR(30), apellido_vend CHAR(30) , vende CHAR(6), codigo CHAR(7) END RECORD #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21, PROMPT LINE 14 OPEN FORM vefmrp019 FROM "vefmrp019" DISPLAY FORM vefmrp019 CALL pantalla() DISPLAY "veprrp019" AT 4,3 DISPLAY "Relacion Ventas en Unidades" AT 6,26 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME cod_cia,p_datos.* CONSTRUCT criterio ON a.sec_vend,b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec FROM sec_vend,cod_n,cod_grupo,cod_tipo,cod_sec IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LABEL pide: PROMPT "1- Unisys 1354 2- IBM PRO"C:\\archivo" " FOR tipo_imp IF tipo_imp != 1 AND tipo_imp != 2 THEN LET numero_msg = -1301 CALL msg(numero_msg) GOTO pide END IF IF tipo_imp = 2 THEN START REPORT vendidas TO "C:\\archivo" ELSE START REPORT vendidas TO PIPE "lp -dcentral" END IF DISPLAY " " AT 19,14 DISPLAY "<< Buscando Las Informaciones... Espere Por Favor >>" AT 19,14 LET selec = "SELECT a.sec_vend,a.fecha_factura,a.factura,b.cod_n,b.cod_grupo, ", " b.cod_tipo,b.cod_sec,b.cantidad,b.cantidad * b.precio ", "FROM vetb00002 a,vetb00003 b ", "WHERE a.fecha_factura between ? and ? and a.factura = b.factura and ", " a.cod_cia = ? and a.status_t is null and ",criterio clipped PREPARE b_vende FROM selec DECLARE c_vende CURSOR FOR b_vende OPEN c_vende USING p_datos.fecha_in,p_datos.fecha_fin,cod_cia DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose... Espere Por Favor >>" AT 19,14 WHILE STATUS != NOTFOUND FETCH c_vende INTO vendedor.* IF status = notfound THEN EXIT WHILE END IF SELECT descrip_esp INTO vendedor.descrip_esp FROM iptb00002 WHERE cod_n = vendedor.cod_n and cod_grupo = vendedor.cod_grupo and cod_tipo = vendedor.cod_tipo and cod_sec = vendedor.cod_sec SELECT nom1_emp,apell1_emp INTO vendedor.nombre_vend,vendedor.apellido_vend FROM adtb00003 WHERE num_emp = vendedor.sec_vend LET vendedor.vende = vendedor.sec_vend using "&&&&" LET vendedor.codigo = vendedor.cod_n using "&", vendedor.cod_grupo using "&", vendedor.cod_tipo using "&&", vendedor.cod_sec using "&&&" OUTPUT TO REPORT vendidas (vendedor.*) END WHILE FINISH REPORT vendidas CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT vendidas(x) DEFINE x RECORD sec_vend SMALLINT, fecha_factura DATE, factura INTEGER, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, cantidad INTEGER , precio DECIMAL(10,2), porc_venta DECIMAL(10,4), descrip_esp CHAR(30), nombre_vend CHAR(30), apellido_vend CHAR(30) , vendedor CHAR(6) , codigo CHAR(7) END RECORD DEFINE j RECORD factura INTEGER, fecha DATE, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descrip_esp CHAR(30), precio DECIMAL(10,2), cantidad INTEGER END RECORD DEFINE nombre_mes CHAR(10) DEFINE ii,total_clientes INTEGER DEFINE doble_on CHAR(3) DEFINE doble_off CHAR(3) DEFINE negrillas_on CHAR(6) DEFINE negrillas_off CHAR(6) DEFINE comp_on CHAR(3) DEFINE comp_off CHAR(3) DEFINE doce CHAR(6) DEFINE normal CHAR(6) DEFINE hora CHAR(5) DEFINE i SMALLINT DEFINE porc DECIMAL(10,4) DEFINE val_vend,cant_vend,val_dev,cant_dev,total_gen,total_vend, total_dev,cant_pagar DECIMAL(12,2) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 4 ORDER BY x.vendedor,x.codigo,x.factura FORMAT PAGE HEADER IF tipo_imp = 2 THEN 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 ELSE 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 29 LET doce = ASCII 30 LET normal = ASCII 029 END IF LET hora = time LET lj = (97 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, doce, negrillas_on PRINT COLUMN 1, "veprrp019", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 90, "Pag.", COLUMN 95, pageno using "###" PRINT COLUMN 41, "Sistema de Ventas ", COLUMN 88, today using "dd/mm/yyyy" PRINT COLUMN 34, "Relacion de Ventas por Vendedor", COLUMN 93, hora, negrillas_off IF cod_cia = 1 THEN PRINT COLUMN 1, "Rayovac Dominicana" ELSE PRINT COLUMN 1, "Distribuidora Dominicana de Pilas" END IF PRINT COLUMN 1, "Del ",p_datos.fecha_in using "dd/mm/yy"," Al ", p_datos.fecha_fin using "dd/mm/yy" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" PRINT COLUMN 1, "PRODUCTO", COLUMN 45, "FACTURA", COLUMN 53, "FECHA", COLUMN 63, "VALOR", COLUMN 75, "UNIDADES" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" IF total_gen is null THEN LET total_gen = 0 END IF SKIP 1 LINE BEFORE GROUP OF x.vendedor LET total_vend = 0 LET total_dev = 0 PRINT COLUMN 1,doble_on,"VENDEDOR : ", x.nombre_vend clipped," ", x.apellido_vend clipped, doble_off SKIP 1 LINE BEFORE GROUP OF x.codigo PRINT COLUMN 1,x.cod_n using "&","-",x.cod_grupo using "&","-", x.cod_tipo using "&&","-",x.cod_sec using "&&&", " ",x.descrip_esp CLIPPED; LET val_vend = 0 LET cant_vend = 0 ON EVERY ROW PRINT COLUMN 45, x.factura using "&&&&&&", COLUMN 53, x.fecha_factura using "dd/mm/yy", COLUMN 62, x.precio using "###,###", COLUMN 74, x.cantidad using "###,###" LET val_vend = val_vend + x.precio LET cant_vend = cant_vend + x.cantidad AFTER GROUP OF x.codigo PRINT COLUMN 60, "----------", COLUMN 74, "----------" PRINT COLUMN 30, " V E N T A -->", COLUMN 58, GROUP SUM(x.precio) using "###,###,###", COLUMN 72, GROUP SUM(x.cantidad) using "#,###,###" LET total_vend = total_vend + val_vend SELECT SUM(c.precio*a.cantidad_2),SUM(a.cantidad_2) INTO val_dev,cant_dev FROM iptb00006 a,vetb00003 c,vetb00002 d WHERE a.cod_n = x.cod_n AND a.cod_grupo = x.cod_grupo AND a.cod_tipo = x.cod_tipo AND a.cod_sec = x.cod_sec AND a.cod_n = c.cod_n AND a.cod_grupo = c.cod_grupo AND a.cod_tipo = c.cod_tipo AND a.cod_sec = c.cod_sec AND a.cod_mov IN (12,13) AND a.fecha BETWEEN p_datos.fecha_in AND p_datos.fecha_fin AND a.fact_no = c.factura AND a.status_t IS NULL AND a.fact_no = d.factura AND d.sec_vend = x.vendedor AND a.status_t IS NULL AND d.cod_cia = cod_cia IF val_dev IS NULL THEN LET val_dev = 0 END IF IF cant_dev IS NULL THEN LET cant_dev = 0 END IF LET total_dev = total_dev + val_dev IF cant_dev > 0 THEN PRINT COLUMN 30, "D E V O L U C I O N -->", COLUMN 58, val_dev using "###,###,###", COLUMN 72, cant_dev using "#,###,###" PRINT COLUMN 62, "----------", COLUMN 74, "----------" PRINT COLUMN 30, " T O T A L -->", COLUMN 58, val_vend - val_dev using "###,###,###", COLUMN 72, cant_vend - cant_dev using "#,###,###" END IF SKIP 1 LINE AFTER GROUP OF x.vendedor PRINT COLUMN 1,negrillas_on PRINT COLUMN 10, "TOTAL VALOR VENDIDO --> ", COLUMN 58, total_vend USING "###,###,###" PRINT COLUMN 10, "TOTAL VALOR DEVUELTO --> ", COLUMN 58, total_dev USING "###,###,###" PRINT COLUMN 58, "-----------" PRINT COLUMN 10, "TOTAL VALOR VENDEDOR --> ", COLUMN 58, total_vend - total_dev USING "###,###,###" PRINT COLUMN 1,negrillas_off END REPORT