148 lines
4.8 KiB
Plaintext
148 lines
4.8 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : VEPRRP038
|
|
OBJETIVO : ESTRATIFICACION DE VENTAS POR TIPO DE DESCUENTOS
|
|
(MENSUAL)
|
|
PROGRAMADOR : Juan F. Soto
|
|
FECHA REALIZACION : Junio 5, 1997.
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
GLOBALS "veprgb000.4gl"
|
|
DEFINE fecha1,fecha2 DATE
|
|
DEFINE salir CHAR(1),
|
|
mes3,mes2 SMALLINT,
|
|
anon,tipo_pila SMALLINT,
|
|
fecha DATE,
|
|
sneto,spierde ARRAY[12] OF DECIMAL(12,2)
|
|
|
|
FUNCTION veprrp038()
|
|
DEFINE codigo CHAR(7),
|
|
c_desc DECIMAL(8,2),
|
|
bruto,valor,monto_desc,neto,gana_pierde DECIMAL(12,2),
|
|
costo DECIMAL(8,4)
|
|
|
|
DEFINE prt_datos RECORD
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
cantidad INTEGER,
|
|
precio DECIMAL(8,2),
|
|
porc_desc DECIMAL(8,2),
|
|
nomen CHAR(1),
|
|
pmes SMALLINT
|
|
END RECORD
|
|
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21
|
|
|
|
OPEN FORM vefmrp038 FROM "vefmrp038"
|
|
DISPLAY FORM vefmrp038
|
|
CALL pantalla()
|
|
DISPLAY "veprrp038" AT 4,3
|
|
DISPLAY "Estratificaion De Ventas Por Tipo De Descuentos" AT 6,17
|
|
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
INPUT BY NAME tipo_pila,anon,mes3,mes2
|
|
AFTER FIELD mes2
|
|
SELECT fecha_corte INTO fecha1
|
|
FROM prdtable
|
|
WHERE mes = mes2 AND ano = anon
|
|
AFTER INPUT
|
|
EXIT INPUT
|
|
END INPUT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET numero_msg = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
DISPLAY "Buscando Informacion... Espere Por Favor " AT 19,14
|
|
|
|
DECLARE busca CURSOR FOR
|
|
SELECT b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,SUM(b.cantidad),
|
|
AVG(b.precio),c.porc_desc ," ",a.mes
|
|
FROM prdtable a,vetb00003 b,vetb00002 c
|
|
WHERE a.mes between mes3 AND mes2 AND a.ano = anon AND
|
|
(c.cod_cia = tipo_pila) AND (c.ventas = "1")
|
|
AND (b.factura = c.factura )
|
|
AND (c.fecha_factura BETWEEN a.fecha_inicio AND a.fecha_corte)
|
|
AND c.status_t IS NULL GROUP BY 1,2,3,4,7,8,9
|
|
|
|
START REPORT reporte_38 TO "C:\\archivo"
|
|
START REPORT reporte_a38 TO "C:\\archivo"
|
|
|
|
DISPLAY " " AT 19,14
|
|
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
|
AT 19,14 ATTRIBUTE (REVERSE)
|
|
|
|
FOREACH BUSCA INTO prt_datos.*
|
|
LET bruto = 0
|
|
LET monto_desc = 0
|
|
LET neto = 0
|
|
LET valor = 0
|
|
LET gana_pierde = 0
|
|
LET costo = 0
|
|
|
|
LET codigo = prt_datos.nomen CLIPPED
|
|
|
|
IF tipo_pila = 1 THEN
|
|
SELECT MAX(a.fecha_lq) INTO fecha
|
|
FROM cttb00036 a
|
|
WHERE a.fecha_lq <= fecha1 AND
|
|
a.ventas = 1 AND
|
|
a.cod_n = prt_datos.cod_n AND
|
|
a.cod_grupo = prt_datos.cod_grupo AND
|
|
a.cod_tipo = prt_datos.cod_tipo AND
|
|
a.cod_sec = prt_datos.cod_sec
|
|
|
|
SELECT UNIQUE a.costo_lq INTO costo
|
|
FROM cttb00036 a
|
|
WHERE a.ventas = 1 AND
|
|
a.cod_n = prt_datos.cod_n AND
|
|
a.cod_grupo = prt_datos.cod_grupo AND
|
|
a.cod_tipo = prt_datos.cod_tipo AND
|
|
a.cod_sec = prt_datos.cod_sec AND
|
|
a.fecha_lq = fecha
|
|
ELSE
|
|
SELECT MAX(a.fecha_lq) INTO fecha
|
|
FROM cttb00013 a
|
|
WHERE a.fecha_lq <= fecha1 AND
|
|
a.cod_n = prt_datos.cod_n AND
|
|
a.cod_grupo = prt_datos.cod_grupo AND
|
|
a.cod_tipo = prt_datos.cod_tipo AND
|
|
a.cod_sec = prt_datos.cod_sec
|
|
|
|
SELECT AVG(a.costo_lq) INTO costo
|
|
FROM cttb00013 a
|
|
WHERE a.cod_n = prt_datos.cod_n AND
|
|
a.cod_grupo = prt_datos.cod_grupo AND
|
|
a.cod_tipo = prt_datos.cod_tipo AND
|
|
a.cod_sec = prt_datos.cod_sec AND
|
|
a.fecha_lq = fecha
|
|
END IF
|
|
|
|
LET c_desc = prt_datos.porc_desc
|
|
LET bruto = prt_Datos.cantidad * prt_Datos.precio
|
|
LET monto_desc = bruto * (prt_datos.porc_desc/100)
|
|
LET neto = bruto - monto_desc
|
|
LET valor = prt_datos.cantidad * costo
|
|
|
|
LET gana_pierde = neto - valor
|
|
OUTPUT TO REPORT reporte_38(prt_datos.*,codigo,c_desc,bruto,
|
|
monto_desc,neto,valor,costo,gana_pierde)
|
|
OUTPUT TO REPORT reporte_a38(prt_datos.*,codigo,c_desc,bruto,
|
|
monto_desc,neto,valor,costo,gana_pierde)
|
|
END FOREACH
|
|
|
|
FINISH REPORT reporte_38
|
|
FINISH REPORT reporte_a38
|
|
CLEAR SCREEN
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|