817 lines
26 KiB
Plaintext
817 lines
26 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : VEPRRP010
|
|
OBJETIVO : Relacion de ventas diarias y acumuladas
|
|
PROGRAMADOR : Ing. Juan Soto (Johnny)
|
|
FECHA REALIZACION : Enero 08, 1993
|
|
MODIFICADO POR : Ing. Juan Soto (Johnny)
|
|
FECHA MODIFICACION : Julio 25, 1995
|
|
DESCRIPCION : En los QUERYS se le agrego un JOIN para que buscara los
|
|
registros que su fecha de creacion sea mayor a
|
|
1994-01-01 08:00
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
GLOBALS "veprgb000.4gl"
|
|
|
|
DEFINE peri2,periodo,act,ant,hoy CHAR(4)
|
|
FUNCTION veprrp010()
|
|
|
|
DEFINE opcion CHAR(1)
|
|
DEFINE mes_ini CHAR(6)
|
|
DEFINE mes_fin CHAR(2)
|
|
DEFINE select_dia,select_zona,select_cliente,select_pilas CHAR(1000)
|
|
DEFINE p_mes,idx_d,registros,cuenta,peri,idx_t,idx_o,idx_e,idx_p,idx_m
|
|
SMALLINT
|
|
DEFINE n_encontre,p_ventas,esta,encontre,salir2,salir1,salir CHAR(1)
|
|
|
|
DEFINE ventas_dia RECORD
|
|
ventas CHAR(1),
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
cantidad_vend INTEGER,
|
|
precio DECIMAL(12,2),
|
|
prima LIKE vetb00002.prima_us
|
|
END RECORD
|
|
|
|
DEFINE vtas_acum RECORD
|
|
ventas CHAR(1),
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
cantidad_vend INTEGER,
|
|
precio DECIMAL(12,2),
|
|
prima LIKE vetb00002.prima_us
|
|
END RECORD
|
|
|
|
DEFINE ano_ant RECORD
|
|
ventas CHAR(1),
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
cantidad_pres INTEGER,
|
|
precio DECIMAL(12,2),
|
|
prima DECIMAL(8,2)
|
|
END RECORD
|
|
|
|
DEFINE ventas RECORD
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
descrip_esp CHAR(30),
|
|
unidad_med CHAR(4) ,
|
|
sub_control SMALLINT,
|
|
ventas CHAR(1),
|
|
cantidad_vend INTEGER,
|
|
valor DECIMAL(12,2),
|
|
cantidad_Pres INTEGER,
|
|
valor_pres DECIMAL(12,2),
|
|
unidad_acum DECIMAL(12,2),
|
|
valor_acum DECIMAL(12,2),
|
|
unidad_ant DECIMAL(12,2),
|
|
valor_ant DECIMAL(12,2),
|
|
codigo CHAR(7),
|
|
grupo_venta CHAR(1)
|
|
END RECORD
|
|
|
|
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21
|
|
|
|
OPEN FORM vefmrp010 FROM "vefmrp010"
|
|
DISPLAY FORM vefmrp010
|
|
CALL pantalla()
|
|
DISPLAY "veprrp010" AT 4,3
|
|
DISPLAY "Ventas Diarias y Acumuladas" AT 6,26
|
|
|
|
LET tipo_papel = 2
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
LET rango.fech_in = today
|
|
|
|
INPUT BY NAME rango.fech_in,p_mes WITHOUT DEFAULTS
|
|
AFTER FIELD p_mes
|
|
IF p_mes is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD p_mes
|
|
END IF
|
|
|
|
IF p_mes > 12 THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD p_mes
|
|
END IF
|
|
|
|
AFTER FIELD fech_in
|
|
IF rango.fech_in is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fech_in
|
|
END IF
|
|
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
EXIT INPUT
|
|
END INPUT
|
|
# Busca Los Movimientos de las Facturas
|
|
|
|
LET hoy = MONTH(rango.fech_in)
|
|
LET mes_ini = rango.fech_in
|
|
LET ant = year(rango.fech_in) - 1
|
|
LET act = YEAR(rango.fech_in)
|
|
LET periodo = act[3,4],p_mes using "&&"
|
|
LET peri2 = ant[3,4],p_mes using "&&"
|
|
LET peri = periodo
|
|
|
|
# Buscando Pilas vendias del ano actual
|
|
|
|
LET select_pilas =
|
|
"SELECT b.ventas,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec, ",
|
|
" sum(a.cantidad),sum(a.cantidad * a.precio*b.prima_us) ",
|
|
"FROM vetb00003 a,vetb00002 b ,prdtable c ",
|
|
"WHERE (b.fecha_factura between c.fecha_inicio and ?) and c.mes = ? and ",
|
|
" c.ano = ? and (a.factura = b.factura) and (b.sec_vend != 8888) and ",
|
|
" b.status_t is null and a.fech_crea > datetime (1994-01-01 08:00) ",
|
|
" year to minute GROUP BY 1,2,3,4,5 ORDER BY 1,2,3,4 "
|
|
|
|
DISPLAY "<< Estoy Buscando Ventas Del Ano Actual... Espere Por Favor. >>"
|
|
AT 19,14 ATTRIBUTE (BOLD,REVERSE)
|
|
|
|
PREPARE busca_act FROM select_pilas
|
|
DECLARE act SCROLL CURSOR FOR busca_act
|
|
OPEN act USING rango.fech_in,p_mes,act
|
|
|
|
# Buscando Pilas vendias del ano anterior
|
|
|
|
LET select_zona =
|
|
"SELECT b.ventas,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec, ",
|
|
"sum(a.cantidad),sum(a.cantidad * a.precio*b.prima_us) ",
|
|
"FROM vetb00003 a,vetb00002 b ,prdtable c ",
|
|
"WHERE b.fecha_factura between c.fecha_inicio and c.fecha_corte and ",
|
|
" c.mes = ? and ",
|
|
" c.ano = ? and ",
|
|
" a.factura = b.factura and ",
|
|
" b.status_t is null and ",
|
|
" a.fech_crea > datetime (1994-01-01 08:00) year to minute ",
|
|
"GROUP BY 1,2,3,4,5 ",
|
|
"ORDER BY 1,2,3,4 "
|
|
|
|
DISPLAY "<< Estoy Buscando Ventas Ano Anterior ... Espere Por Favor. >>"
|
|
AT 19,14 ATTRIBUTE (BOLD,REVERSE)
|
|
|
|
PREPARE busca_ant FROM select_zona
|
|
DECLARE ant SCROLL CURSOR FOR busca_ant
|
|
OPEN ant USING p_mes,ant
|
|
|
|
DISPLAY "<< Estoy Buscando Ventas Del Dia... Espere Por Favor. >>"
|
|
AT 19,14 ATTRIBUTE (BOLD,REVERSE)
|
|
|
|
LET select_dia =
|
|
"SELECT a.ventas,b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec, ",
|
|
" sum(b.cantidad),sum(b.cantidad * b.precio*a.prima_us) ",
|
|
"FROM vetb00002 a,vetb00003 b ",
|
|
" WHERE (a.factura = b.factura) and ",
|
|
"(a.fecha_factura = ?) and ",
|
|
"(a.sec_vend != 8888) and ",
|
|
"a.status_t is null and ",
|
|
" b.fech_crea > datetime (1994-01-01 08:00) year to minute ",
|
|
" GROUP BY 1,2,3,4,5 ",
|
|
" ORDER BY 1,2,3,4,5 "
|
|
|
|
PREPARE busca_dia FROM select_dia
|
|
DECLARE movi_dia SCROLL CURSOR FOR busca_dia
|
|
OPEN movi_dia USING rango.fech_in
|
|
|
|
# Busqueda de los codigos
|
|
LET select_cliente =
|
|
"SELECT unique d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec,",
|
|
"d.descrip_esp,d.unidad_med,' ' ",
|
|
" FROM iptb00002 d ",
|
|
" WHERE d.cod_n = a.cod_n and ",
|
|
" d.cod_grupo = a.cod_grupo and ",
|
|
" d.cod_tipo = a.cod_tipo and ",
|
|
" d.cod_sec = a.cod_sec ",
|
|
" and d.status_t is null ",
|
|
" ORDER BY 2,3,4,5"
|
|
|
|
|
|
PREPARE busca_movi FROM select_cliente
|
|
DECLARE movi_curs SCROLL CURSOR FOR busca_movi
|
|
OPEN movi_curs
|
|
START REPORT acumuladas TO "jh"
|
|
DISPLAY " "
|
|
AT 19,14
|
|
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
|
AT 19,14 ATTRIBUTE (REVERSE)
|
|
SELECT count(*) INTO registros FROM iptb00002
|
|
WHERE (cod_n = 3 or cod_n = 6 or cod_n = 9)
|
|
|
|
LET n_encontre = null
|
|
LET cuenta = 0
|
|
LET identifica = null
|
|
LET verdad = null
|
|
LET idx = 1
|
|
LET idx_o = 1
|
|
LET idx_d = 1
|
|
LET salir1 = "N"
|
|
LET idx_t = 1
|
|
|
|
|
|
WHILE salir1 != "S"
|
|
FETCH ABSOLUTE idx_t movi_curs INTO ventas.*
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET idx_t = 1
|
|
LET idx = 1
|
|
LET idx_o = 1
|
|
LET idx_p = 1
|
|
LET ventas.ventas = "2"
|
|
IF identifica = "S" THEN
|
|
LET salir1 = "S"
|
|
EXIT WHILE
|
|
ELSE
|
|
LET identifica = "S"
|
|
# LET idx_t = idx_t + 1
|
|
CONTINUE WHILE
|
|
END IF
|
|
END IF
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
IF ventas.ventas is null THEN
|
|
LET ventas.ventas = "1"
|
|
END IF
|
|
|
|
IF identifica = "S" THEN
|
|
LET ventas.ventas = "2"
|
|
END IF
|
|
|
|
LET idx_t = idx_t + 1
|
|
LET cuenta = cuenta + 1
|
|
LET salir = "N"
|
|
WHILE salir != "S"
|
|
FETCH ABSOLUTE idx_d movi_dia INTO ventas_dia.*
|
|
IF status = notfound THEN
|
|
LET idx_d = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
LET idx_d = idx_d + 1
|
|
|
|
IF ventas_dia.cod_n = ventas.cod_n and
|
|
ventas_dia.cod_grupo = ventas.cod_grupo and
|
|
ventas_dia.cod_tipo = ventas.cod_tipo and
|
|
ventas_dia.cod_sec = ventas.cod_sec and
|
|
ventas_dia.ventas = ventas.ventas THEN
|
|
display ventas.cod_n, ventas.cod_grupo at 18,1
|
|
LET ventas.cantidad_vend = ventas_dia.cantidad_vend
|
|
LET ventas.valor = ventas_dia.precio
|
|
LET idx_d = 1
|
|
EXIT WHILE
|
|
ELSE
|
|
LET ventas.cantidad_vend = 0
|
|
LET ventas.valor = 0
|
|
END IF
|
|
END WHILE
|
|
|
|
LET salir = "N"
|
|
WHILE salir != "S"
|
|
FETCH ABSOLUTE idx act INTO vtas_acum.*
|
|
IF status = notfound THEN
|
|
LET idx = 1
|
|
EXIT WHILE
|
|
END IF
|
|
LET idx = idx + 1
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
IF vtas_acum.cod_n = ventas.cod_n and
|
|
vtas_acum.cod_grupo = ventas.cod_grupo and
|
|
vtas_acum.cod_tipo = ventas.cod_tipo and
|
|
vtas_acum.cod_sec = ventas.cod_sec and
|
|
vtas_acum.ventas = ventas.ventas THEN
|
|
|
|
LET ventas.unidad_acum = vtas_acum.cantidad_vend
|
|
|
|
LET ventas.valor_acum = vtas_acum.precio
|
|
|
|
END IF
|
|
END WHILE
|
|
|
|
LET salir = "N"
|
|
WHILE salir != "S"
|
|
FETCH ABSOLUTE idx_o ant INTO ano_ant.*
|
|
IF status = notfound THEN
|
|
LET idx_o = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
LET idx_o = idx_o + 1
|
|
|
|
LET ventas.unidad_ant = 0
|
|
LET ventas.valor_ant = 0
|
|
|
|
IF ano_ant.cod_n = ventas.cod_n and
|
|
ano_ant.cod_grupo = ventas.cod_grupo and
|
|
ano_ant.cod_tipo = ventas.cod_tipo and
|
|
ano_ant.cod_sec = ventas.cod_sec and
|
|
ano_ant.ventas = ventas.ventas THEN
|
|
|
|
LET idx_o = 1
|
|
LET ventas.unidad_ant = ano_ant.cantidad_pres
|
|
LET ventas.valor_ant = ano_ant.precio
|
|
EXIT WHILE
|
|
ELSE
|
|
LET ventas.unidad_ant = 0
|
|
LET ventas.valor_ant = 0
|
|
END IF
|
|
END WHILE
|
|
LET ventas.codigo = ventas.cod_n using "&",
|
|
ventas.cod_grupo using "&",
|
|
ventas.cod_tipo using "&&",
|
|
ventas.cod_sec using "&&&"
|
|
|
|
LET ventas.grupo_venta = ventas.codigo[5]
|
|
IF ventas.unidad_acum is null THEN
|
|
LET ventas.unidad_acum = 0
|
|
END IF
|
|
|
|
IF ventas.valor_acum is null THEN
|
|
LET ventas.valor_acum = 0
|
|
END IF
|
|
|
|
IF ventas.valor is null THEN
|
|
LET ventas.valor = 0
|
|
END IF
|
|
IF ventas.unidad_ant is null THEN
|
|
LET ventas.unidad_ant = 0
|
|
END IF
|
|
IF ventas.valor_ant is null THEN
|
|
LET ventas.valor_ant = 0
|
|
END IF
|
|
|
|
IF ventas.cantidad_vend is null THEN
|
|
LET ventas.cantidad_vend = 0
|
|
END IF
|
|
|
|
OUTPUT TO REPORT acumuladas(ventas.*,p_mes,p_mes)
|
|
|
|
IF cuenta >= registros THEN
|
|
LET ventas.ventas = "2"
|
|
END IF
|
|
|
|
LET ventas.cantidad_vend = 0
|
|
LET ventas.valor = 0
|
|
LET ventas.cantidad_pres = 0
|
|
LET ventas.valor_pres = 0
|
|
LET ventas.unidad_acum = 0
|
|
LET ventas.valor_acum = 0
|
|
LET ventas.unidad_ant = 0
|
|
LET ventas.valor_ant = 0
|
|
END WHILE
|
|
FINISH REPORT acumuladas
|
|
CLEAR SCREEN
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
REPORT acumuladas(x,peri1,p_mes1)
|
|
DEFINE x RECORD
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
descrip_esp CHAR(30),
|
|
unidad_med CHAR(4) ,
|
|
sub_control SMALLINT,
|
|
ventas CHAR(1),
|
|
cantidad_vend INTEGER,
|
|
valor DECIMAL(12,2),
|
|
cantidad_Pres INTEGER,
|
|
valor_pres DECIMAL(12,2),
|
|
unidad_acum DECIMAL(12,2),
|
|
valor_acum DECIMAL(12,2),
|
|
unidad_ant DECIMAL(12,2),
|
|
valor_ant DECIMAL(12,2),
|
|
codigo CHAR(7),
|
|
grupo_venta CHAR(1)
|
|
END RECORD,
|
|
p_mes1 SMALLINT
|
|
|
|
|
|
DEFINE vendedor,imp,imp1 CHAR (1)
|
|
DEFINE nombre,tipo1 CHAR(21)
|
|
DEFINE nombre_mes1,nombre_dia,nombre_mes CHAR(11)
|
|
DEFINE descrip_zone CHAR(30)
|
|
DEFINE doble_on CHAR(3)
|
|
DEFINE doble_off CHAR(3)
|
|
DEFINE negrillas_on CHAR(6)
|
|
DEFINE negrillas_off CHAR(6)
|
|
DEFINE comp_on CHAR(3)
|
|
DEFINE comp_off CHAR(3)
|
|
DEFINE doce CHAR(3)
|
|
DEFINE normal CHAR(6)
|
|
DEFINE hora CHAR(5)
|
|
|
|
DEFINE t_cantidad_pres,t_valor_pres,t_t_cantidad_pres,t_t_valor_pres,
|
|
t_t_t_cantidad_pres, t_t_t_valor_pres,g_cantidad_vend,g_valor_vend,
|
|
g_unidad_acum,g_valor_acum,g_g_cantidad_vend,g_g_valor_vend,
|
|
g_g_unidad_acum,g_g_valor_acum,g_g_g_cantidad_vend,g_g_g_valor_vend,
|
|
g_g_g_unidad_acum,g_g_g_valor_acum,g_unidad_ant,g_valor_ant,
|
|
g_g_unidad_ant,g_g_valor_ant,g_g_g_unidad_ant,g_g_g_valor_ant,
|
|
t1_cantidad_pres,t1_valor_pres,g1_cantidad_vend,g1_valor_vend,
|
|
g1_unidad_acum,g1_valor_acum,g1_unidad_ant,g1_valor_ant
|
|
DECIMAL(12,2)
|
|
|
|
DEFINE peri1,d,m,i SMALLINT
|
|
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 4
|
|
|
|
ORDER BY x.ventas,x.grupo_venta,x.sub_control,x.codigo
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
LET doble_on = ASCII 14
|
|
LET doble_off = ASCII 20
|
|
LET negrillas_on = ASCII 27, ASCII 71
|
|
LET negrillas_off = ASCII 27, ASCII 72
|
|
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 = (162 - LENGTH(p_companias.nombre CLIPPED))/2
|
|
|
|
PRINT COLUMN 1, comp_on,negrillas_on
|
|
PRINT COLUMN 1, "veprrp010",
|
|
COLUMN lj, p_companias.nombre CLIPPED,
|
|
COLUMN 155, "Pag. ",pageno using "###"
|
|
PRINT COLUMN 74, "Sistema de Ventas ",
|
|
COLUMN 153, today using "dd/mm/yyyy"
|
|
PRINT COLUMN 67, "Ventas Diarias y Acumuladas ",
|
|
COLUMN 158, hora
|
|
|
|
SKIP 1 LINES
|
|
LET d = WEEKDAY(rango.fech_in)
|
|
LET m = MONTH(rango.fech_in)
|
|
LET d = d + 1
|
|
CALL meses()
|
|
LET nombre_mes = mes1[m]
|
|
LET nombre_mes1 = mes1[p_mes1]
|
|
|
|
CALL f_dias()
|
|
LET nombre_dia = dias[d]
|
|
|
|
PRINT COLUMN 1, "Dia: ",nombre_dia clipped," ",
|
|
DAY(rango.fech_in) using "<<<"," ",
|
|
"de ",nombre_mes clipped," de ",YEAR(rango.fech_in)
|
|
|
|
PRINT COLUMN 1, "--------------------------------------------------",
|
|
"--------------------------------------------------" ,
|
|
"--------------------------------------------------" ,
|
|
"-------------"
|
|
PRINT COLUMN 58, "D i a r i a",
|
|
COLUMN 80, "Acumulada de ",nombre_mes1 clipped,
|
|
COLUMN 114, "Presupuesto Mes",
|
|
COLUMN 140, "Ano Anterior de ",nombre_mes1 clipped
|
|
|
|
PRINT COLUMN 2, "P r o d u c t o",
|
|
COLUMN 50, "Unidades",
|
|
COLUMN 69, "Valor",
|
|
COLUMN 80, "Unidades",
|
|
COLUMN 98, "Valor",
|
|
COLUMN 111, "Unidades",
|
|
COLUMN 126, "Valor",
|
|
COLUMN 139, "Unidades",
|
|
COLUMN 159, "Valor"
|
|
|
|
PRINT COLUMN 1, "--------------------------------------------------",
|
|
"--------------------------------------------------" ,
|
|
"--------------------------------------------------" ,
|
|
"-------------", negrillas_off
|
|
|
|
IF t_cantidad_pres is null THEN
|
|
LET t_cantidad_pres = 0
|
|
LET t1_cantidad_pres = 0
|
|
END IF
|
|
|
|
IF t_valor_pres is null THEN
|
|
LET t_valor_pres = 0
|
|
LET t1_valor_pres = 0
|
|
END IF
|
|
|
|
IF t_t_cantidad_pres is null THEN
|
|
LET t_t_cantidad_pres = 0
|
|
END IF
|
|
|
|
IF t_t_valor_pres is null THEN
|
|
LET t_t_valor_pres = 0
|
|
END IF
|
|
|
|
IF t_t_t_cantidad_pres is null THEN
|
|
LET t_t_t_cantidad_pres = 0
|
|
END IF
|
|
|
|
IF t_t_t_valor_pres is null THEN
|
|
LET t_t_t_valor_pres = 0
|
|
END IF
|
|
|
|
BEFORE GROUP OF x.ventas
|
|
|
|
SKIP 1 LINE
|
|
|
|
IF x.ventas = "1" THEN
|
|
LET nombre = "L O C A L"
|
|
ELSE
|
|
LET nombre = "E X P O R T A C I O N"
|
|
END IF
|
|
|
|
PRINT COLUMN 7,negrillas_on, nombre,negrillas_off
|
|
|
|
SKIP 1 LINE
|
|
|
|
AFTER GROUP OF x.codigo
|
|
SELECT sum(cantidad),sum(valor) INTO x.cantidad_pres,x.valor_pres
|
|
FROM vetb00017
|
|
WHERE mes=peri1 and ventas=x.ventas and cod_n=x.cod_n and cod_grupo=x.cod_grupo
|
|
and cod_tipo = x.cod_tipo and cod_sec = x.cod_sec AND ano = act
|
|
|
|
IF x.cantidad_pres is null THEN
|
|
LET x.cantidad_pres = 0
|
|
END IF
|
|
|
|
IF x.valor_pres is null THEN
|
|
LET x.valor_pres = 0
|
|
END IF
|
|
|
|
PRINT COLUMN 1, x.cod_n using "&","-",
|
|
COLUMN 3, x.cod_grupo using "&","-",
|
|
COLUMN 5, x.cod_tipo using "&&","-",
|
|
COLUMN 8, x.cod_sec using "&&&",
|
|
COLUMN 13, x.descrip_esp," ",x.unidad_med clipped,
|
|
COLUMN 46, x.cantidad_vend using "#,###,###.##",
|
|
COLUMN 60, x.valor using "###,###,###.##",
|
|
COLUMN 74, x.unidad_acum using "###,###,###.##",
|
|
COLUMN 90, x.valor_acum using "###,###,###.##",
|
|
COLUMN 105, x.cantidad_pres using "###,###,###.##",
|
|
COLUMN 120, x.valor_pres using "###,###,###.##",
|
|
COLUMN 135, x.unidad_ant using "###,###,###.##",
|
|
COLUMN 150, x.valor_ant using "###,###,###.##"
|
|
|
|
LET t1_cantidad_pres = t1_cantidad_pres + x.cantidad_pres
|
|
LET t1_valor_pres = t1_valor_pres + x.valor_pres
|
|
|
|
IF g1_valor_vend is null THEN
|
|
LET g1_cantidad_vend = 0
|
|
LET g1_valor_vend = 0
|
|
LET g1_unidad_acum = 0
|
|
LET g1_valor_acum = 0
|
|
LET g1_unidad_ant = 0
|
|
LET g1_valor_ant = 0
|
|
END IF
|
|
|
|
LET g1_cantidad_vend = g1_cantidad_vend + x.cantidad_vend
|
|
LET g1_valor_vend = g1_valor_vend + x.valor
|
|
LET g1_unidad_acum = g1_unidad_acum + x.unidad_acum
|
|
LET g1_valor_acum = g1_valor_acum + x.valor_acum
|
|
LET g1_unidad_ant = g1_unidad_ant + x.unidad_ant
|
|
LET g1_valor_ant = g1_valor_ant + x.valor_ant
|
|
|
|
AFTER GROUP OF x.sub_control
|
|
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 6, "SUB-TOTAL ",x.sub_control clipped,
|
|
COLUMN 45, g1_cantidad_vend using "#,###,###.##",
|
|
COLUMN 59, g1_valor_vend using "###,###,###.##",
|
|
COLUMN 73, g1_unidad_acum using "###,###,###.##",
|
|
COLUMN 89, g1_valor_acum using "###,###,###.##",
|
|
COLUMN 104, t1_cantidad_pres using "###,###,###.##",
|
|
COLUMN 119, t1_valor_pres using "###,###,###.##",
|
|
COLUMN 134, g1_unidad_ant using "###,###,###.##",
|
|
COLUMN 149, g1_valor_ant using "###,###,###.##"
|
|
|
|
LET t_cantidad_pres = t_cantidad_pres + t1_cantidad_pres
|
|
LET t_valor_pres = t_valor_pres + t1_valor_pres
|
|
LET t1_valor_pres = 0
|
|
LET t1_cantidad_pres = 0
|
|
|
|
IF g_valor_vend is null THEN
|
|
LET g_cantidad_vend = 0
|
|
LET g_valor_vend = 0
|
|
LET g_unidad_acum = 0
|
|
LET g_valor_acum = 0
|
|
LET g_unidad_ant = 0
|
|
LET g_valor_ant = 0
|
|
END IF
|
|
|
|
LET g_cantidad_vend = g1_cantidad_vend + g_cantidad_vend
|
|
LET g_valor_vend = g1_valor_vend + g_valor_vend
|
|
LET g_unidad_acum = g1_unidad_acum + g_unidad_acum
|
|
LET g_valor_acum = g1_valor_acum + g_valor_acum
|
|
LET g_unidad_ant = g1_unidad_ant + g_unidad_ant
|
|
LET g_valor_ant = g1_valor_ant + g_valor_ant
|
|
|
|
LET g1_cantidad_vend = 0
|
|
LET g1_valor_vend = 0
|
|
LET g1_unidad_acum = 0
|
|
LET g1_valor_acum = 0
|
|
LET g1_unidad_ant = 0
|
|
LET g1_valor_ant = 0
|
|
SKIP 1 LINE
|
|
|
|
AFTER GROUP OF x.grupo_venta
|
|
|
|
IF x.grupo_venta = "1" THEN
|
|
LET tipo1 = "SUPERCELL"
|
|
END IF
|
|
|
|
IF x.grupo_venta = "2" THEN
|
|
LET tipo1 = "H. DUTY"
|
|
END IF
|
|
|
|
IF x.grupo_venta = "3" THEN
|
|
LET tipo1 = "ALKALINAS"
|
|
END IF
|
|
IF x.grupo_venta = "4" THEN
|
|
LET tipo1 = "LAMPARAS"
|
|
END IF
|
|
IF x.grupo_venta = "5" THEN
|
|
LET tipo1 = "FOCOS"
|
|
END IF
|
|
IF x.grupo_venta = "6" THEN
|
|
LET tipo1 = "BOMBILLOS"
|
|
END IF
|
|
|
|
IF x.grupo_venta = "7" THEN
|
|
LET tipo1 = "EXIBIDORES"
|
|
END IF
|
|
|
|
PRINT COLUMN 1, negrillas_on,
|
|
COLUMN 9, "TOTAL ",tipo1 clipped,
|
|
COLUMN 48, g_cantidad_vend using "#,###,###.##",
|
|
COLUMN 62, g_valor_vend using "###,###,###.##",
|
|
COLUMN 76, g_unidad_acum using "###,###,###.##",
|
|
COLUMN 92, g_valor_acum using "###,###,###.##",
|
|
COLUMN 107, t_cantidad_pres using "###,###,###.##",
|
|
COLUMN 122, t_valor_pres using "###,###,###.##",
|
|
COLUMN 137, g_unidad_ant using "###,###,###.##",
|
|
COLUMN 152, g_valor_ant using "###,###,###.##",
|
|
negrillas_off
|
|
|
|
LET t_t_cantidad_pres = t_t_cantidad_pres + t_cantidad_pres
|
|
LET t_t_valor_pres = t_t_valor_pres + t_valor_pres
|
|
LET t_cantidad_pres = 0
|
|
LET t_valor_pres = 0
|
|
|
|
IF g_g_valor_vend is null THEN
|
|
LET g_g_cantidad_vend = 0
|
|
LET g_g_valor_vend = 0
|
|
LET g_g_unidad_acum = 0
|
|
LET g_g_valor_acum = 0
|
|
LET g_g_unidad_ant = 0
|
|
LET g_g_valor_ant = 0
|
|
END IF
|
|
|
|
LET g_g_cantidad_vend = g_g_cantidad_vend + g_cantidad_vend
|
|
LET g_g_valor_vend = g_g_valor_vend + g_valor_vend
|
|
LET g_g_unidad_acum = g_g_unidad_acum + g_unidad_acum
|
|
LET g_g_valor_acum = g_g_valor_acum + g_valor_acum
|
|
LET g_g_unidad_ant = g_g_unidad_ant + g_unidad_ant
|
|
LET g_g_valor_ant = g_g_valor_ant + g_valor_ant
|
|
|
|
LET g_cantidad_vend = 0
|
|
LET g_valor_vend = 0
|
|
LET g_unidad_acum = 0
|
|
LET g_valor_acum = 0
|
|
LET g_unidad_ant = 0
|
|
LET g_valor_ant = 0
|
|
SKIP 1 LINE
|
|
|
|
AFTER GROUP OF x.ventas
|
|
|
|
IF x.ventas = "1" THEN
|
|
LET nombre = "L O C A L"
|
|
ELSE
|
|
LET nombre = "E X P O R T A C I O N"
|
|
END IF
|
|
|
|
SKIP 1 LINE
|
|
|
|
PRINT COLUMN 7, negrillas_on,"TOTAL ",nombre clipped,
|
|
COLUMN 48, g_g_cantidad_vend using "#,###,###.##",
|
|
COLUMN 62, g_g_valor_vend using "###,###,###.##",
|
|
COLUMN 76, g_g_unidad_acum using "###,###,###.##",
|
|
COLUMN 92, g_g_valor_acum using "###,###,###.##",
|
|
COLUMN 107, t_t_cantidad_pres using "###,###,###.##",
|
|
COLUMN 122, t_t_valor_pres using "###,###,###.##",
|
|
COLUMN 137, g_g_unidad_ant using "###,###,###.##",
|
|
COLUMN 152, g_g_valor_ant using "###,###,###.##",
|
|
negrillas_off
|
|
|
|
|
|
LET t_t_t_cantidad_pres = t_t_t_cantidad_pres + t_t_cantidad_pres
|
|
LET t_t_t_valor_pres = t_t_t_valor_pres + t_t_valor_pres
|
|
|
|
LET t_t_cantidad_pres = 0
|
|
LET t_t_valor_pres = 0
|
|
|
|
IF g_g_g_valor_vend is null THEN
|
|
LET g_g_g_cantidad_vend = 0
|
|
LET g_g_g_valor_vend = 0
|
|
LET g_g_g_unidad_acum = 0
|
|
LET g_g_g_valor_acum = 0
|
|
LET g_g_g_unidad_ant = 0
|
|
LET g_g_g_valor_ant = 0
|
|
END IF
|
|
LET g_g_g_cantidad_vend = g_g_g_cantidad_vend + g_g_cantidad_vend
|
|
LET g_g_g_valor_vend = g_g_g_valor_vend + g_g_valor_vend
|
|
LET g_g_g_unidad_acum = g_g_g_unidad_acum + g_g_unidad_acum
|
|
LET g_g_g_valor_acum = g_g_g_valor_acum + g_g_valor_acum
|
|
LET g_g_g_unidad_ant = g_g_g_unidad_ant + g_g_unidad_ant
|
|
LET g_g_g_valor_ant = g_g_g_valor_ant + g_g_valor_ant
|
|
|
|
LET g_g_cantidad_vend = 0
|
|
LET g_g_valor_vend = 0
|
|
LET g_g_unidad_acum = 0
|
|
LET g_g_valor_acum = 0
|
|
LET g_g_unidad_ant = 0
|
|
LET g_g_valor_ant = 0
|
|
|
|
IF x.ventas = "1" THEN
|
|
SKIP TO TOP OF PAGE
|
|
END IF
|
|
|
|
ON LAST ROW
|
|
|
|
SKIP 1 LINE
|
|
|
|
PRINT COLUMN 7, negrillas_on,"TOTAL GENERAL ",
|
|
COLUMN 47, g_g_g_cantidad_vend using "##,###,###.##",
|
|
COLUMN 62, g_g_g_valor_vend using "###,###,###.##",
|
|
COLUMN 76, g_g_g_unidad_acum using "###,###,###.##",
|
|
COLUMN 92, g_g_g_valor_acum using "###,###,###.##",
|
|
COLUMN 107, t_t_t_cantidad_pres using "###,###,###.##",
|
|
COLUMN 122, t_t_t_valor_pres using "###,###,###.##",
|
|
COLUMN 137, g_g_g_unidad_ant using "###,###,###.##",
|
|
COLUMN 152, g_g_g_valor_ant using "###,###,###.##",
|
|
negrillas_off
|
|
|
|
LET t_t_t_cantidad_pres = 0
|
|
LET t_t_t_valor_pres = 0
|
|
LET g_g_g_cantidad_vend = 0
|
|
LET g_g_g_valor_vend = 0
|
|
LET g_g_g_unidad_acum = 0
|
|
LET g_g_g_valor_acum = 0
|
|
LET g_g_g_unidad_ant = 0
|
|
LET g_g_g_valor_ant = 0
|
|
PRINT comp_off
|
|
END REPORT
|
|
|
|
FUNCTION f_dias()
|
|
LET dias[1] = "Domingo"
|
|
LET dias[2] = "Lunes"
|
|
LET dias[3] = "Martes"
|
|
LET dias[4] = "Miercoles"
|
|
LET dias[5] = "Jueves"
|
|
LET dias[6] = "Viernes"
|
|
LET dias[7] = "Sabado"
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|