273 lines
7.9 KiB
Plaintext
273 lines
7.9 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : VEPRRP001
|
|
OBJETIVO : Validacion Facturas
|
|
PROGRAMADOR : Juan Soto
|
|
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,
|
|
pvalor_bruto, pdescuento,psub_total,pitbis,
|
|
pneto DEC(12,2),
|
|
factura_ext INT,
|
|
mercado VARCHAR(50)
|
|
|
|
|
|
DEFINE historico CHAR(2)
|
|
DEFINE fecha1,fecha2 DATE
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(3) RETURNING impresor
|
|
|
|
CONNECT TO "smarmotech" USER usuarios USING clave
|
|
SELECT * INTO p_companias.* FROM companias
|
|
CALL veprrp001()
|
|
|
|
END MAIN
|
|
FUNCTION veprrp001()
|
|
|
|
DEFINE data RECORD
|
|
ventas VARCHAR(1),
|
|
factura INT,
|
|
tipo_cliente INT,
|
|
sec_cliente INT,
|
|
sub_total,
|
|
monto_desc,
|
|
monto_itbi,
|
|
neto DEC(12,2),
|
|
status_t VARCHAR(1),
|
|
nombre VARCHAR(100),
|
|
factura_ext INT,
|
|
orden,
|
|
conduce INT,
|
|
mercado VARCHAR(100),
|
|
fecha_factura DATE,
|
|
bodega INT
|
|
END RECORD
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21,
|
|
PROMPT LINE 14
|
|
|
|
OPEN FORM vefmrp001 FROM "vefmrp001"
|
|
DISPLAY FORM vefmrp001
|
|
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
INPUT BY NAME historico,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.sucid,a.cod_cia,a.ventas,a.factura,a.cotizacion_no,a.orden,a.cond_pago,a.conduce,a.tipo_cliente,a.sec_cliente
|
|
FROM sucid,cod_cia,ventas,factura,cotizacion_no,orden,cond_pago,conduce,tipo_cliente,sec_cliente
|
|
BEFORE CONSTRUCT
|
|
CALL localidades("1")
|
|
|
|
AFTER CONSTRUCT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
END CONSTRUCT
|
|
|
|
# Busca los codigos de los productos terminados
|
|
|
|
# Busca las ventas reales del ano actual hasta el mes indicado anteriormente
|
|
IF historico = "NO" THEN
|
|
LET selec_v =
|
|
"SELECT a.ventas,a.factura,a.tipo_cliente,a.sec_cliente,a.sub_total,a.monto_desc,a.monto_itbi,a.neto,
|
|
a.status_t,a.nombre_cliente,a.factura_ext, ",
|
|
" a.orden,a.conduce,c.descripcion,a.fecha_factura,a.bodega ",
|
|
" FROM vetb00002 a,vetb00004 b,vetb00061 c ",
|
|
"WHERE a.tipo_cliente=b.tipo_cliente AND a.sec_cliente=b.sec_cliente AND ",
|
|
" a.fecha_factura BETWEEN ? AND ? and a.ventas = c.ventas",
|
|
" AND ",
|
|
criterio CLIPPED," ORDER BY a.ventas,a.factura"
|
|
ELSE
|
|
LET selec_v =
|
|
"SELECT a.ventas,a.factura,a.tipo_cliente,a.sec_cliente,a.sub_total,a.monto_desc,a.monto_itbi,a.neto,
|
|
a.status_t,a.nombre_cliente,a.factura_ext,a.orden,a.conduce,c.descripcion,a.fecha_factura,a.bodega ",
|
|
" FROM historicoMTECH.dbo.vetb00002 a,historicoMTECH.dbo.vetb00004 b,historicoMTECH.dbo.vetb00061 c ",
|
|
"WHERE a.tipo_cliente=b.tipo_cliente AND a.sec_cliente=b.sec_cliente AND ",
|
|
" a.fecha_factura BETWEEN ? AND ? AND a.ventas = c.ventas ",
|
|
" AND ",
|
|
criterio CLIPPED," ORDER BY a.ventas,a.factura"
|
|
END IF
|
|
|
|
|
|
DISPLAY " " AT 19,14
|
|
DISPLAY "<<Buscando Informacion... Espere Por Favor" AT 19,14
|
|
|
|
|
|
DISPLAY " " AT 19,14
|
|
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
|
AT 19,14 ATTRIBUTE (REVERSE)
|
|
PREPARE busca_vr FROM selec_v
|
|
DECLARE movi_vr CURSOR FOR busca_vr
|
|
OPEN movi_vr USING fecha1,fecha2
|
|
|
|
LET idx = 1
|
|
FOREACH movi_vr INTO data.*
|
|
IF idx = 1 THEN
|
|
|
|
LET r_filename ="veprrp001_2.4rp"
|
|
|
|
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
|
|
|
LET preview=1
|
|
CALL seleccionarsalida() RETURNING r_output
|
|
CALL fgl_report_selectDevice(r_output) -- changing default
|
|
CALL fgl_report_selectPreview(preview) -- changing default
|
|
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
|
|
|
|
|
|
|
START REPORT p_ventas1 TO XML HANDLER HANDLER
|
|
LET idx = 2
|
|
END IF
|
|
|
|
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 data.status_t = "E" THEN
|
|
LET psub = 0
|
|
LET data.sub_total = 0
|
|
LET data.monto_desc = 0
|
|
LET data.monto_itbi = 0
|
|
LET data.neto = 0
|
|
LET data.nombre = "FACTURA NULA"
|
|
END IF
|
|
|
|
OUTPUT TO REPORT p_ventas1(data.*)
|
|
END FOREACH
|
|
FINISH REPORT p_ventas1
|
|
|
|
|
|
DISPLAY pvalor_bruto TO valor_bruto
|
|
DISPLAY pdescuento TO descuento
|
|
DISPLAY psub_total TO sub_total
|
|
DISPLAY pitbis TO itbis
|
|
DISPLAY pneto TO neto
|
|
|
|
|
|
END FUNCTION
|
|
|
|
REPORT p_ventas1(x)
|
|
|
|
DEFINE x RECORD
|
|
ventas VARCHAR(1),
|
|
factura INT,
|
|
tipo_cliente INT,
|
|
sec_cliente INT,
|
|
sub_total,
|
|
monto_desc,
|
|
monto_itbi,
|
|
neto DEC(12,2),
|
|
status_t VARCHAR(1),
|
|
nombre VARCHAR(100),
|
|
factura_ext INT,
|
|
orden,
|
|
conduce INT,
|
|
mercado VARCHAR(100),
|
|
fecha_factura DATE,
|
|
bodega INT
|
|
END RECORD
|
|
|
|
|
|
DEFINE hora CHAR(5)
|
|
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 2
|
|
PAGE LENGTH 100
|
|
|
|
ORDER BY x.ventas
|
|
|
|
FORMAT
|
|
FIRST PAGE HEADER
|
|
LET hora = time
|
|
|
|
PRINTX p_companias.nombre ,
|
|
hora,fecha1,fecha2
|
|
|
|
ON EVERY ROW
|
|
|
|
PRINTX x.factura,x.tipo_cliente,
|
|
x.sec_cliente,x.nombre,x.fecha_factura,
|
|
x.sub_total,
|
|
x.monto_desc,
|
|
x.monto_itbi,
|
|
x.neto,
|
|
x.factura_ext,
|
|
x.orden ,
|
|
x.conduce,x.bodega
|
|
|
|
AFTER GROUP OF x.ventas
|
|
LET pvalor_bruto = GROUP SUM(x.sub_total)
|
|
LET pdescuento = GROUP SUM(x.monto_desc)
|
|
LET psub_total = pvalor_bruto - pdescuento
|
|
LET pitbis = GROUP SUM(x.monto_itbi)
|
|
LET pneto = GROUP SUM(x.neto)
|
|
|
|
PRINTx pvalor_bruto,pdescuento,psub_total,pitbis,pneto,x.mercado,x.ventas
|
|
|
|
END REPORT
|