{ ------------------------------------------------------------------------------- PROGRAMA : VEPRRP027 OBJETIVO : Relacion de Notas de Creditos PROGRAMADOR : Ing. Juan F. Soto FECHA REALIZACION : Junio 10, 1994 ------------------------------------------------------------------------------- } GLOBALS "veprgb000.4gl" DEFINE nom_cli CHAR(30) DEFINE selec4 CHAR(1000) DEFINE idx_1, idx_2, idx_3 SMALLINT DEFINE fecha_inicial, fecha_final DATE DEFINE salir, salir2, salir3, tipo_venta CHAR(1) DEFINE selec5, selec6 CHAR(1500) 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_itbi DECIMAL(10,2), monto_neto DECIMAL(10,2), status_t CHAR(1) END RECORD DEFINE desc_ft RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, porc DECIMAL(10,2) END RECORD DEFINE det_ft RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, valor DECIMAL(10,2) END RECORD DEFINE monto_desc DECIMAL(10,2) DEFINE monto_ft DECIMAL(10,2) FUNCTION veprrp027() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM vefmrp027 FROM "vefmrp027" DISPLAY FORM vefmrp027 CALL pantalla() DISPLAY "veprrp027" AT 4,3 DISPLAY "Relacion de Notas de Creditos" AT 6,25 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME fecha_inicial,fecha_final AFTER FIELD fecha_inicial IF fecha_inicial is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_inicial END IF 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 IF fecha_final < fecha_inicial THEN LET numero_msg = 86 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 IF fecha_inicial is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_inicial END IF IF fecha_final is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_final END IF IF fecha_final < fecha_inicial THEN LET numero_msg = 86 CALL msg(numero_msg) NEXT FIELD fecha_final END IF EXIT INPUT END INPUT # Busca las ventas locales para el rango de fechas especificado LET selec4 = "SELECT a.cod_cia,a.num_doc,a.fecha_orig,a.tipo_cliente,a.sec_cliente, ", " a.valor_cheque,a.monto_desc,a.valor_efectivo,a.valor,a.status_t ", "FROM cctb00001 a ", "WHERE a.fecha_orig between ? and ? and a.tipo_doc = 'DE' and ", " a.num_doc = a.aplica_a ", "ORDER BY 1,2 " DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE ventas_locales FROM selec4 DECLARE facturas SCROLL CURSOR FOR ventas_locales OPEN facturas USING fecha_inicial, fecha_final DISPLAY " " AT 20,14 START REPORT prn_credito TO "C:\\archivo" DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) LET salir = "N" LET idx_1 = 1 WHILE salir = "N" FETCH ABSOLUTE idx_1 facturas INTO ventas.* 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 ventas.status_t = "E" or ventas.status_t = "D" THEN LET ventas.monto_bruto = 0 LET ventas.monto_desc = 0 LET ventas.monto_itbi = 0 LET ventas.monto_neto = 0 END IF LET idx_1 = idx_1 + 1 OUTPUT TO REPORT prn_credito(ventas.*) END WHILE FINISH REPORT prn_credito CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT prn_credito(x) 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_itbi DECIMAL(10,2), monto_neto DECIMAL(10,2), status_t CHAR(1) END RECORD DEFINE nombre,apellido CHAR(30) DEFINE nombre_cia CHAR(20) DEFINE descuento DECIMAL(10,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 comp_on = ASCII 031 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 LET normall = ASCII 030 LET hora = time PRINT COLUMN 1, comp_on PRINT COLUMN 1, "veprrp027", 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, " Relacion Notas De Creditos", COLUMN 129, hora PRINT COLUMN 53, "Del ", fecha_inicial using "dd/mm/yy", " Al ", fecha_final using "dd/mm/yy" SKIP 1 LINES PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "----------------------------------" PRINT COLUMN 1, "Documen", 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, "Itbis", COLUMN 129, "Valor " PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" , "----------------------------------" BEFORE GROUP OF x.compania IF x.compania= 1 THEN LET nombre_cia = "RAYOVAC" ELSE LET nombre_cia = "DISTRIBUIDORA" END IF IF x.compania is null THEN LET nombre_cia = "NO TIENE CIA" END IF PRINT COLUMN 3, nombre_cia SKIP 1 LINE ON EVERY ROW 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 93, x.monto_itbi using "####,###,###.##", COLUMN 104, x.monto_bruto - x.monto_desc + x.monto_itbi using "####,###,###.##" AFTER GROUP OF x.compania SKIP 1 LINE PRINT COLUMN 33, "Total Compania ---> ", COLUMN 60, GROUP SUM(x.monto_bruto) using "####,###,###.##", COLUMN 71, GROUP SUM(x.monto_desc) using "####,###,###.##", COLUMN 82, GROUP SUM(x.monto_bruto - x.monto_desc) using "####,###,###.##", COLUMN 93, GROUP SUM(x.monto_itbi) using "####,###,###.##", COLUMN 104, GROUP SUM(x.monto_bruto - x.monto_desc + x.monto_itbi) using "####,###,###.##" ON LAST ROW SKIP 1 LINE PRINT # COLUMN 1, negrillas_on, COLUMN 33, "Total General ---> ", 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(x.monto_itbi) using "####,###,###.##", COLUMN 104, SUM(x.monto_bruto - x.monto_desc + x.monto_itbi) using "####,###,###.##" PRINT normall END REPORT