Files
MBS/PROYECTO/vedir/veprrp026.4gl
T

338 lines
9.7 KiB
Plaintext

{
-------------------------------------------------------------------------------
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 "<<Buscando Ventas Contado.. Espere Por Favor. >>" 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