{ ------------------------------------------------------------------------------- PROGRAMA : VEPRRP021 OBJETIVO : Control de Entrega Factura PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Junio 28, 1993 ------------------------------------------------------------------------------- } 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 vent RECORD fecha DATE, factura INTEGER, fech_factura DATE, tipo_cliente SMALLINT, sec_cliente SMALLINT, sec_vend SMALLINT, monto DECIMAL(10,2), debito DECIMAL(10,2), credito DECIMAL(10,2), balance DECIMAL(10,2) 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 veprrp021() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM vefmrp021 FROM "vefmrp021" DISPLAY FORM vefmrp021 CALL pantalla() DISPLAY "veprrp021" AT 4,3 DISPLAY "Control Entrega de facturas" AT 6,26 ## Tipo de papel necesario para imprimir el reporte LET tipo_papel = 1 CALL msgrp000(tipo_papel) ## Criterio de busqueda para la impresion INPUT BY NAME fecha_inicial BEFORE FIELD fecha_inicial LEt fecha_inicial = today AFTER FIELD fecha_inicial IF fecha_inicial is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_inicial END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF # Busca las ventas locales para el rango de fechas especificado CONSTRUCT criterio ON a.sec_vend FROM sec_vend LET selec4 = "SELECT a.fecha,a.factura, a.fech_factura, a.tipo_cliente, ", " a.sec_cliente,a.sec_vend,a.monto,a.debito,a.credito ", "FROM vetb00031 a ", "WHERE a.fecha = ? AND a.status_t IS NULL AND ",criterio clipped, " ORDER BY 2 " DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE ventas_locales FROM selec4 DECLARE facturas CURSOR FOR ventas_locales OPEN facturas USING fecha_inicial START REPORT vent_ft TO "C:\\archivo" DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere >>" AT 19,14 ATTRIBUTE (REVERSE) LET salir = "N" WHILE salir != "S" FETCH facturas INTO vent.* 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 vent.monto IS NULL THEN LET vent.monto = 0 END IF IF vent.debito IS NULL THEN LET vent.debito = 0 END IF IF vent.credito IS NULL THEN LET vent.credito = 0 END IF LET vent.balance = vent.monto + vent.debito - vent.credito OUTPUT TO REPORT vent_ft(vent.*) END WHILE FINISH REPORT vent_ft CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT vent_ft(x) DEFINE x RECORD fecha DATE, factura INTEGER, fech_factura DATE, tipo_cliente SMALLINT, sec_cliente SMALLINT, sec_vend SMALLINT, monto DECIMAL(10,2), debito DECIMAL(10,2), credito DECIMAL(10,2), balance DECIMAL(10,2) END RECORD, totalg1,totalg2,totalg3,totalg4,balance DECIMAL(10,2) DEFINE nomb,apell CHAR(15) 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 2 BOTTOM MARGIN 2 ORDER BY x.sec_vend 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 LET lj = (133 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, comp_on PRINT COLUMN 1, "veprrp021", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 126, "Pag. ",pageno using "###" PRINT COLUMN 42, " Sistema de Ventas ", COLUMN 124, today using "dd/mm/yy" PRINT COLUMN 42, " Control Entrega de Facturas ", COLUMN 129, hora PRINT COLUMN 57, "Fecha: ",x.fecha using "dd/mm/yy" SKIP 1 LINES PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "----------------------------------" PRINT COLUMN 117, "Valor a" PRINT COLUMN 1, "Factura", COLUMN 11, "Fecha", COLUMN 20, "C l i e n t e", COLUMN 66, "Monto RD$", COLUMN 85, "Debito ", COLUMN 102, "Credito ", COLUMN 117, "Cobrar" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" , "----------------------------------" # , negrillas_off BEFORE GROUP OF x.sec_vend SELECT nom1_emp,apell1_emp INTO nomb,apell FROM adtb00003 WHERE (status_t IS NULL OR status_t IN ("I")) AND num_emp = x.sec_vend PRINT COLUMN 1,negrillas_on PRINT COLUMN 2, x.sec_vend USING "&&&&"," ", nomb clipped," ",apell clipped,negrillas_off SKIP 1 LINE ON EVERY ROW LET nom_cli = NULL SELECT nombre INTO nom_cli FROM vetb00004 WHERE tipo_cliente = x.tipo_cliente and sec_cliente = x.sec_cliente and status_t is null IF nom_cli IS NULL THEN LET nom_cli = "Cliente no existe. Verifique" END IF PRINT COLUMN 1, x.factura using "######", COLUMN 9, x.fech_factura using "dd/mm/yy", COLUMN 20, x.tipo_cliente using "&&","-", x.sec_cliente using "&&&&"," ", nom_cli clipped, COLUMN 61, x.monto using "###,###,##&.&&", COLUMN 77, x.debito using "###,###,##&.&&", COLUMN 96, x.credito USING "###,###,##&.&&", COLUMN 109, x.balance using "###,###,##&.&&" AFTER GROUP OF x.sec_vend SKIP 1 LINE PRINT COLUMN 33, "Total General Ventas ---> ", COLUMN 61, GROUP SUM(x.monto) USING "###,###,##&.&&", COLUMN 77, GROUP SUM(x.debito) USING "###,###,##&.&&", COLUMN 96, GROUP SUM(x.credito) USING "###,###,##&.&&", COLUMN 109, GROUP SUM(x.balance) USING "###,###,##&.&&" SKIP 5 LINE PRINT column 1,normall PRINT COLUMN 1,"Firma del Vendedor : ___________________________" SKIP 1 LINE PRINT COLUMN 1,"Fecha ____/____/____" PRINT COLUMN 1,comp_off SKIP TO TOP OF PAGE END REPORT