{ ------------------------------------------------------------------------------- PROGRAMA : CCPRRP026 OBJETIVO : Comprobacion Valores de Ventas PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Marzo 29, 1993 ------------------------------------------------------------------------------- } GLOBALS "veprgb000.4gl" DEFINE idx_5, idx_6, idx_7, idx_8 SMALLINT DEFINE fecha_inicial, fecha_final DATE DEFINE salir4, salir5, salir6, salir7, salir8 CHAR(1) DEFINE selec4, selec5, selec6, selec7, selec8 CHAR(1500) DEFINE tot_gen RECORD tot_1 DECIMAL(10,2), tot_2 DECIMAL(10,2), tot_3 DECIMAL(10,2), tot_4 DECIMAL(10,2), tot_5 DECIMAL(10,2) END RECORD DEFINE reg4 RECORD monto DECIMAL(12,2) END RECORD DEFINE reg5 RECORD monto DECIMAL(12,2) END RECORD DEFINE reg6 RECORD monto DECIMAL(12,2) END RECORD DEFINE reg7 RECORD monto DECIMAL(12,2) END RECORD DEFINE reg8 RECORD monto DECIMAL(12,2) END RECORD DEFINE ventas26 RECORD monto_a DECIMAL(10,2), monto_b DECIMAL(10,2), monto_c DECIMAL(10,2), monto_a1 DECIMAL(10,2), monto_d DECIMAL(10,2) END RECORD FUNCTION veprrp026() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM vefmrp026 FROM "vefmrp026" DISPLAY FORM vefmrp026 CALL pantalla() DISPLAY "veprrp026" AT 4,3 DISPLAY "Comprobacion de Valores de Ventas" AT 6,23 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 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 LET selec4 = "SELECT SUM(b.sub_total) FROM vetb00002 b ", "WHERE b.fecha_factura between ? and ? AND b.cond_pago != 1 AND ", " (b.status_t IS NULL OR b.status_t = 'D' )AND b.ventas = '1' " DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE ventas4 FROM selec4 DECLARE accion4 CURSOR FOR ventas4 OPEN accion4 USING fecha_inicial, fecha_final LET selec5 = "SELECT SUM(b.sub_total) FROM vetb00002 b ", "WHERE b.status_t IS NULL AND b.fecha_factura BETWEEN ? AND ? AND ", " b.cond_pago = 1 AND b.ventas = '1' " DISPLAY "<>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE ventas5 FROM selec5 DECLARE accion5 SCROLL CURSOR FOR ventas5 OPEN accion5 USING fecha_inicial, fecha_final LET selec6 = "SELECT SUM(b.sub_total) FROM vetb00002 b ", "WHERE b.fecha_factura BETWEEN ? AND ? AND b.status_t = 'D' AND ", " b.ventas = '1' " PREPARE ventas6 FROM selec6 DECLARE accion6 SCROLL CURSOR FOR ventas6 OPEN accion6 USING fecha_inicial, fecha_final LET selec7 = "SELECT SUM(b.sub_total) FROM vetb00002 b ", "WHERE b.status_t IS NULL AND ", " b.fecha_factura BETWEEN ? AND ? AND ", " b.ventas = '1' " PREPARE ventas7 FROM selec7 DECLARE accion7 SCROLL CURSOR FOR ventas7 OPEN accion7 USING fecha_inicial, fecha_final START REPORT ventas_26 TO "C:\\archivo" DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) WHILE STATUS != NOTFOUND FETCH accion4 INTO reg4.* IF status = NOTFOUND THEN LET salir4 = "S" EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LET ventas26.monto_a = reg4.monto DISPLAY " " AT 20,12 DISPLAY "VALOR ",reg4.monto USING "&&&,&&&,&&&.&&" AT 20,12 LET idx_5 = 1 LET salir5 = "N" WHILE salir5 != "S" FETCH ABSOLUTE idx_5 accion5 INTO reg5.* IF STATUS = NOTFOUND THEN LET salir5 = "S" LET idx_5 = 1 EXIT WHILE END IF LET idx_5 = idx_5 + 1 LET ventas26.monto_b = reg5.monto DISPLAY " " AT 20,12 DISPLAY "Reg5 ",reg5.monto USING "&&&,&&&,&&&.&&" AT 20,12 LET idx_5 = 1 LET salir5 = "S" EXIT WHILE END WHILE LET idx_6 = 1 LET salir6 = "N" WHILE salir6 != "S" FETCH ABSOLUTE idx_6 accion6 INTO reg6.* IF STATUS = NOTFOUND THEN LET salir6 = "S" LET idx_6 = 1 EXIT WHILE END IF LET idx_6 = idx_6 + 1 LET ventas26.monto_c = reg6.monto DISPLAY " " AT 20,12 DISPLAY "Reg6 ",reg6.monto USING "&&&,&&&,&&&.&&" AT 20,12 LET idx_6 = 1 LET salir6 = "S" EXIT WHILE END WHILE LET idx_7 = 1 LET salir7 = "N" WHILE salir7 != "S" FETCH ABSOLUTE idx_7 accion7 INTO reg7.* IF STATUS = NOTFOUND THEN LET salir7 = "S" LET idx_7 = 1 EXIT WHILE END IF LET ventas26.monto_a1 = reg7.monto DISPLAY " " AT 20,12 DISPLAY "Reg7 ",reg7.monto USING "&&&,&&&,&&&.&&" AT 20,12 LET idx_7 = 1 LET salir7 = "S" EXIT WHILE END WHILE IF ventas26.monto_a IS NULL THEN LET ventas26.monto_a = 0 END IF IF ventas26.monto_b IS NULL THEN LET ventas26.monto_b = 0 END IF IF ventas26.monto_c IS NULL THEN LET ventas26.monto_c = 0 END IF IF ventas26.monto_a1 IS NULL THEN LET ventas26.monto_a1 = 0 END IF LET ventas26.monto_d = (ventas26.monto_a + ventas26.monto_b) - ventas26.monto_c OUTPUT TO REPORT ventas_26(ventas26.*) END WHILE FINISH REPORT ventas_26 CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT ventas_26(x) DEFINE x RECORD monto_a DECIMAL(10,2), monto_b DECIMAL(10,2), monto_c DECIMAL(10,2), monto_a1 DECIMAL(10,2), monto_d DECIMAL(10,2) END RECORD DEFINE tot_1,tot_2,tot_3,tot_4,tot_5 DECIMAL(10,2) 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 comprimido = ASCII 031 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 LET normall = ASCII 030 LET hora = time LET lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, negrillas_on PRINT COLUMN 1, "veprrp026", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 73, "Pag. ",pageno using "###" PRINT COLUMN 17, " Sistema de Ventas", COLUMN 73, today using "dd/mm/yy" PRINT COLUMN 17, " Comprobacion de Valores de Ventas", COLUMN 76, hora SKIP 1 LINE PRINT COLUMN 1, "Del ", fecha_inicial using "dd/mm/yy", " Al ", fecha_final using "dd/mm/yy" SKIP 1 LINE ON EVERY ROW PRINT COLUMN 1, "Ventas CXC : ", x.monto_a USING "###,###,###.##" SKIP 1 LINE PRINT COLUMN 1, "Contado : ", x.monto_b USING "###,###,###.##" SKIP 1 LINE PRINT COLUMN 1, "Devoluciones: ",x.monto_c USING "###,###,###.##" SKIP 1 LINE PRINT COLUMN 1, "Neto CXC : ",x.monto_d USING "###,###,###.##" SKIP 1 LINE PRINT COLUMN 1, "Ventas Netas: ",x.monto_a1 USING "###,###,###.##" SKIP 1 LINE PRINT COLUMN 1, "Diferencia : ",(x.monto_a1)-x.monto_d USING "###,###,###.##" PRINT negrillas_off END REPORT