Files
MBS/PROYECTO/PRDIR/prprmt011b.4gl
T

191 lines
7.0 KiB
Plaintext

GLOBALS
DEFINE ptasa DEC(12,4)
END GLOBALS
FUNCTION prprmt011b(x)
DEFINE x DYNAMIC ARRAY OF RECORD
actualiza VARCHAR(1),
cerrada VARCHAR(1),
estado_produccion VARCHAR(100),
estado_producto VARCHAR(100),
departamento SMALLINT,
descripcion_dpto VARCHAR(30),
vendedor VARCHAR(50),
apell1_emp VARCHAR(50),
fecha DATE,
fecha_compromiso DATE,
fecha_llegada DATE,
fechaDispEntrega DATE,
fechaSolDespacho DATE,
fechaInstalacion DATE,
cotizacion_no INT,
num_oc INT,
orden_compra INT,
observacion VARCHAR(250),
tipo_venta VARCHAR(30),
cliente VARCHAR(60),
origen VARCHAR(30),
producto VARCHAR(100),
cantidad_ord DEC(12,5),
cantidad_desp DEC(12,5),
cantidad_dev DEC(12,5),
pendiente DEC(12,5),
sec_vend SMALLINT,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
tipo_cliente SMALLINT,
sec_cliente INT,
balance DEC(12,5),
id_kit INT ,
area SMALLINT,
instalador,equipo VARCHAR(100),
costo NUMERIC(12,2)
END RECORD,
i SMALLINT
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
r_filename STRING, -- filename of Report Design Document including .4rp extension
r_output STRING, -- output format option
preview INTEGER -- TRUE/FALSE, to set preview option
LET r_filename = "prprmt011b.4rp"
CALL seleccionarSalida() RETURNING r_output
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
# LET r_output='SVG' CLIPPED
LET preview=1
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
CALL fgl_report_configurexlsxdevice(null,null,null,false,false,null,1)
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
IF handler IS NOT NULL THEN -- report engine was configured ok
START REPORT reporte_rp11b TO XML HANDLER HANDLER
END IF
FOR i = 1 TO x.getLength()
IF x[i].num_oc IS NOT NULL THEN
OUTPUT TO REPORT reporte_rp11b(x[i].*)
END IF
END FOR
FINISH REPORT reporte_rp11b
END FUNCTION
REPORT reporte_rp11b(y)
DEFINE y RECORD
actualiza VARCHAR(1),
cerrada VARCHAR(1),
estado_produccion VARCHAR(100),
estado_producto VARCHAR(100),
departamento SMALLINT,
descripcion_dpto VARCHAR(30),
vendedor VARCHAR(50),
apell1_emp VARCHAR(50),
fecha DATE,
fecha_compromiso DATE,
fecha_llegada DATE,
fechaDispEntrega DATE,
fechaSolDespacho DATE,
fechaInstalacion DATE,
cotizacion_no INT,
num_oc INT,
orden_compra INT,
observacion VARCHAR(250),
tipo_venta VARCHAR(30),
cliente VARCHAR(60),
origen VARCHAR(30),
producto VARCHAR(100),
cantidad_ord DEC(12,5),
cantidad_desp DEC(12,5),
cantidad_dev DEC(12,5),
pendiente DEC(12,5),
sec_vend SMALLINT,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
tipo_cliente SMALLINT,
sec_cliente INT,
balance DEC(12,5),
id_kit INT ,
area SMALLINT,
instalador,equipo VARCHAR(100),
costo NUMERIC(12,2)
END RECORD,
nombre_cia CHAR(50),
pprecio,ttotal,vtotal,valor_orden,vvalor_orden,tvalor_orden,valor_avance DEC(12,2),
psimbolo CHAR(4),
numero_recibo INT,
valor,ototal DEC(12,4)
ORDER BY y.vendedor,y.num_oc
FORMAT
FIRST PAGE HEADER
SELECT a.nombre INTO nombre_cia FROM companias a
LET ttotal = 0
LET tvalor_orden = 0
BEFORE GROUP OF y.vendedor
LET vtotal = 0
LET vvalor_orden=0
BEFORE GROUP OF y.num_oc
LET ototal = 0
SELECT a.simbolo INTO psimbolo FROM vetb00061 a,vetb00050 b
WHERE a.ventas = b.ventas AND b.cotizacion_no = y.cotizacion_no
ON EVERY ROW
SELECT AVG(a.precio-(a.precio*(a.porc_desc/100)))
INTO pprecio FROM vetb00051 a
WHERE a.cotizacion_no = y.cotizacion_no AND
a.area = y.area AND
a.cod_n = y.cod_n AND
a.cod_grupo = y.cod_grupo AND
a.cod_tipo = y.cod_tipo AND
a.cod_Sec = y.cod_sec
# BUSCA AVANCE A COTIZACION
SELECT SUM(a.valor) INTO valor_avance FROM cctb00001 a
WHERE a.banco = y.cotizacion_no AND a.num_doc = a.aplica_a AND a.status_t IS NULL AND
a.tipo_cliente = y.tipo_cliente AND a.sec_cliente = y.sec_cliente AND a.tipo_doc = 'AV'
#DISPLAY "codigo ",y.cotizacion_no," ",y.area," ",y.cod_n,"-",y.cod_grupo,"-",y.cod_tipo,"-",y.cod_sec," p ",pprecio
IF pprecio IS NULL THEN
SELECT AVG(a.precio-(a.precio*(a.porc_desc/100)))
INTO pprecio FROM vetb00031 a
WHERE a.cotizacion_no = y.cotizacion_no AND
a.id_kit = y.id_kit AND
a.area = y.area AND
a.cod_n = y.cod_n AND
a.cod_grupo = y.cod_grupo AND
a.cod_tipo = y.cod_tipo AND
a.cod_Sec = y.cod_sec
END IF
SELECT AVG(a.tasa) INTO ptasa
FROM cgtb00084 a
WHERE a.tipo_cliente = y.tipo_cliente AND
a.ano = YEAR(TODAY) AND
a.mes = MONTH(TODAY)
IF ptasa IS NULL THEN
LET ptasa = 1
END IF
IF pprecio IS NULL THEN
LET pprecio = 0
END IF
LET pprecio = pprecio * ptasa
LET valor_avance=valor_avance * ptasa
LET valor = pprecio * y.pendiente
LET ttotal = ttotal + valor
LET ototal = ototal + valor
LET vtotal = valor + vtotal
LET valor_orden = pprecio * y.cantidad_ord
LET tvalor_orden = valor_orden + tvalor_orden
LET vvalor_orden = vvalor_orden + valor_orden
PRINTX y.*,nombre_cia,pprecio,valor,ttotal,ototal,psimbolo,vtotal,valor_orden,tvalor_orden,vvalor_orden,
numero_recibo,valor_avance
END REPORT