191 lines
7.0 KiB
Plaintext
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 |