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

238 lines
7.2 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : VEPRRP008
OBJETIVO : Estadisticas de Validacion Facturas
PROGRAMADOR : Lic. Abner Montalvo Zapata
FECHA REALIZACION : Enero 20, 1993
-------------------------------------------------------------------------------
}
GLOBALS "veprgb000.4gl"
DEFINE selec_v CHAR(1000)
DEFINE p_ventas RECORD LIKE vetb00002.*
DEFINE p_vetb04 RECORD LIKE vetb00004.*,
psub LIKE vetb00002.sub_total
DEFINE idx1,idx2 INTEGER
DEFINE fecha1,fecha2 DATE
MAIN
DEFER INTERRUPT
SELECT * INTO p_companias.* FROM companias
CALL pantalla()
CALL veprrp046()
END MAIN
FUNCTION veprrp046()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21,
PROMPT LINE 14
OPEN FORM vefmrp001 FROM "vefmrp001"
DISPLAY FORM vefmrp001
CALL pantalla()
DISPLAY "veprrp046" AT 4,3
DISPLAY "Validacion de Facturas" AT 6,29
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME fecha1,fecha2
AFTER FIELD fecha1
IF fecha1 IS NULL OR fecha1 > TODAY THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
AFTER FIELD fecha2
IF fecha2 IS NULL OR fecha2 < fecha1 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
IF fecha1 IS NULL OR fecha1 > TODAY THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
IF fecha2 IS NULL OR fecha2 < fecha1 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
EXIT INPUT
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
CONSTRUCT criterio ON a.ventas,a.factura,a.cond_pago,a.tipo_cliente
FROM ventas,factura,cond_pago,tipo_cliente
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
# Busca los codigos de los productos terminados
# Busca las ventas reales del ano actual hasta el mes indicado anteriormente
LET selec_v =
"SELECT a.*,b.* FROM vetb00002 a,vetb00004 b ",
"WHERE a.tipo_cliente=b.tipo_cliente AND a.sec_cliente=b.sec_cliente AND ",
" a.fecha_factura BETWEEN '",fecha1," '"," AND '",fecha2,
" '"," AND ",
criterio CLIPPED," ORDER BY a.conduce"
DISPLAY " " AT 19,14
DISPLAY "<<Buscando Informacion... Espere Por Favor" AT 19,14
PREPARE busca_vr FROM selec_v
DECLARE movi_vr CURSOR FOR busca_vr
OPEN movi_vr
START REPORT p_ventas1 TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
FOREACH movi_vr INTO p_ventas.*,p_vetb04.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
# Busca el sub_total
{ LET psub = 0
SELECT SUM(a.cantidad*a.precio) INTO psub
FROM vetb00003 a
WHERE a.factura = p_ventas.factura
LET p_ventas.sub_total = psub
}
IF p_ventas.status_t = "E" THEN
LET psub = 0
LET p_ventas.sub_total = 0
LET p_ventas.monto_desc = 0
LET p_ventas.monto_itbi = 0
LET p_ventas.neto = 0
LET p_vetb04.nombre = "FACTURA NULA"
END IF
OUTPUT TO REPORT p_ventas1(p_ventas.*,p_vetb04.*)
END FOREACH
FINISH REPORT p_ventas1
RUN "type C:\\archivo > %USPRINT%"
END FUNCTION
REPORT p_ventas1(x,v)
DEFINE x RECORD LIKE vetb00002.*
DEFINE v RECORD LIKE vetb00004.*
DEFINE vendedor,imp,imp1 CHAR (1)
DEFINE descrip_venta CHAR(22)
DEFINE descrip1 CHAR(30)
DEFINE doble_on,doble_off,negrillas_on,negrillas_off,comp_on,comp_off,
doce,normal CHAR(2)
DEFINE hora CHAR(5),
etiqueta CHAR(20)
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 hora = time
LET lj = (100 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1,doce
PRINT COLUMN 1,"veprrp046",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 93, "Pag. ", pageno using "###"
PRINT COLUMN 41, "Sistema de Ventas",
COLUMN 93, today using "dd/mm/yy"
PRINT COLUMN 40, "Validacion Facturas y Conduce",
COLUMN 96, hora
PRINT COLUMN 1, "DEL ",fecha1 USING "DD/MM/YYYY"," AL ",
fecha2 USING "DD/MM/YYYY"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------"
PRINT COLUMN 1, "FACTURA",
COLUMN 9, "CLIENTE",
COLUMN 82, "CONDUCE"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------"
ON EVERY ROW
IF x.factura = x.conduce or x.conduce IS NULL THEN
LET etiqueta = "FACTURA SIN CONDUCE"
ELSE
LET etiqueta = NULL
END IF
PRINT COLUMN 1, x.factura USING "&&&&&",
COLUMN 9, x.tipo_cliente USING "&&","-",
x.sec_cliente USING "&&&&"," ",v.nombre[1,30],
COLUMN 82, x.conduce USING "&&&&&&"
ON LAST ROW
PRINT ASCII 27, ASCII 80
END REPORT
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5) ,
lj SMALLINT,
p_companias RECORD LIKE companias.*
LET fecha = today USING "dd/mm/yy"
LET hora = time
SELECT * INTO p_companias.* FROM companias
LET lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2
DISPLAY p_companias.nombre CLIPPED AT 4,lj ATTRIBUTE (REVERSE,blue)
DISPLAY fecha AT 4,70 ATTRIBUTE (blue)
DISPLAY "Sistema de Ventas" AT 5,31
DISPLAY hora AT 6,73 ATTRIBUTE(blue)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION