{ ------------------------------------------------------------------------------- PROGRAMA : VEPRRP016 OBJETIVO : Relacion de Ventas PROGRAMADOR : Ing. Juan F. Soto FECHA REALIZACION : AGOSTO 26, 1997. ------------------------------------------------------------------------------- } GLOBALS "veprgb000.4gl" DEFINE nom_cli CHAR(30) DEFINE fecha_inicial,fecha_final DATE DEFINE ventas RECORD compania SMALLINT, factura INTEGER, fecha_factura DATE, tipo_cliente SMALLINT, sec_cliente SMALLINT, monto_bruto DECIMAL(10,2), monto_desc DECIMAL(10,2), monto_neto DECIMAL(10,2), status_t CHAR(1) , cond_pago LIKE vetb00002.cond_pago END RECORD FUNCTION veprrp216() DEFINE p_costo DECIMAL(12,2) OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM vefmrp016 FROM "vefmrp016" DISPLAY FORM vefmrp016 CALL pantalla() DISPLAY "veprrp216" AT 4,3 DISPLAY "Analisis De Beneficios Al STD" AT 6,25 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME fecha_inicial,fecha_final BEFORE FIELD fecha_final LET fecha_final = today AFTER FIELD fecha_final IF fecha_final is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_final END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF EXIT INPUT END INPUT # Busca las ventas locales para el rango de fechas especificado DECLARE facturas CURSOR FOR SELECT a.cod_cia, a.factura, a.fecha_factura, a.tipo_cliente,a.sec_cliente, a.sub_total,a.monto_desc,a.neto,a.status_t, a.cond_pago FROM vetb00002 a WHERE a.fecha_factura BETWEEN fecha_inicial AND fecha_final ORDER BY 2 DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) DISPLAY " " AT 20,14 START REPORT ventas_ft1 TO "C:\\archivo" DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) FOREACH facturas INTO ventas.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF IF ventas.status_t = "E" THEN LET ventas.monto_bruto = 0 LET ventas.monto_desc = 0 LET ventas.monto_neto = 0 END IF # VALORA LA FACTURA AL COSTO STD. LET p_costo = 0 SELECT SUM(a.cantidad*(b.material+b.labor+b.gastos)) INTO p_costo FROM vetb00003 a, iptb00004 b WHERE a.factura = ventas.factura AND a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec AND b.ventas = 1 AND b.mes_fin = 12 AND b.ano = YEAR(fecha_final) AND a.status_t IS NULL IF p_costo IS NULL THEN LET p_costo = 0 END IF OUTPUT TO REPORT ventas_ft1(ventas.*,p_costo) END FOREACH FINISH REPORT ventas_ft1 CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT ventas_ft1(x,costo) DEFINE x RECORD compania SMALLINT, factura INTEGER, fecha_factura DATE, tipo_cliente SMALLINT, sec_cliente SMALLINT, monto_bruto DECIMAL(10,2), monto_desc DECIMAL(10,2), monto_neto DECIMAL(10,2), status_t CHAR(1) , cond_pago LIKE vetb00002.cond_pago END RECORD DEFINE t_costo,costo,descuento DECIMAL(12,2) DEFINE valor_factura DECIMAL(10,2) 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 normall CHAR(3) DEFINE comprimido CHAR(3) DEFINE hora CHAR(5) 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 normall = ASCII 030 LET hora = time LET lj = (155 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, doce,comp_on PRINT COLUMN 1, "veprrp216", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 148, "Pag. ",pageno using "###" PRINT COLUMN 69, "Sistema de Ventas", COLUMN 146, today using "dd/mm/yyyy" PRINT COLUMN 57, "Analisis De Margenes De Beneficios Al STD", COLUMN 151, hora PRINT COLUMN 1, "Del ", fecha_inicial USING "dd/mm/yy"," Al ", fecha_final using "dd/mm/yy" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------------------------------------------" PRINT COLUMN 115, "Costo ", COLUMN 128, "Margen " , COLUMN 140, "Porc." PRINT COLUMN 1, "Factura", COLUMN 11, "Fecha", COLUMN 20, "C l i e n t e", COLUMN 66, "Monto RD$", COLUMN 81, "Descuento", COLUMN 97, "Neto RD$", COLUMN 115, "STD ", COLUMN 129, "Benef." , COLUMN 140, "Margen", COLUMN 148, "Condicion" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" , "--------------------------------------------------------" # , negrillas_off ON EVERY ROW IF t_costo IS NULL THEN LET t_costo = 0 END IF SELECT a.* INTO condicion.* FROM vetb00012 a WHERE a.cond_pago = x.cond_pago LET nom_cli = NULL IF x.status_t IS NULL THEN SELECT a.nombre INTO nom_cli FROM vetb00004 a WHERE a.tipo_cliente = x.tipo_cliente and a.sec_cliente = x.sec_cliente and a.status_t is null IF nom_cli IS NULL THEN LET nom_cli = "Cliente no existe. Verifique" END IF ELSE LET nom_cli = "NULA" END IF PRINT COLUMN 1, x.factura using "######", COLUMN 9, x.fecha_factura using "dd/mm/yy", COLUMN 20, x.tipo_cliente using "&&","-", x.sec_cliente using "&&&&"," ", nom_cli clipped, COLUMN 60, x.monto_bruto using "####,###,###.##", COLUMN 71, x.monto_desc using "####,###,###.##", COLUMN 82, x.monto_bruto - x.monto_desc using "####,###,###.##", COLUMN 94, costo using "####,###,###.##", COLUMN 104, x.monto_bruto - x.monto_desc - costo using "###,###,###.##" ; IF nom_cli != "NULA" THEN PRINT COLUMN 140, ((x.monto_bruto - x.monto_desc - costo) / (x.monto_bruto - x.monto_desc)) * 100 using "###.##"; END IF PRINT COLUMN 152, condicion.descrip CLIPPED LET t_costo = t_costo + costo ON LAST ROW PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" , "--------------------------------------------------------" PRINT COLUMN 33, "Total General Ventas ---> ", COLUMN 60, SUM(x.monto_bruto) using "####,###,###.##", COLUMN 71, SUM(x.monto_desc) using "####,###,###.##", COLUMN 82, SUM(x.monto_bruto - x.monto_desc) using "####,###,###.##", COLUMN 93, SUM(costo) using "####,###,###.##", COLUMN 104, SUM(x.monto_bruto - x.monto_desc - costo) using "####,###,###.##" , COLUMN 140, ((SUM(x.monto_bruto) - SUM(x.monto_desc)-costo) / (SUM(x.monto_bruto) - SUM(x.monto_desc))) * 100 using "###.##"; LET t_costo = 0 PRINT normall END REPORT