628 lines
22 KiB
Plaintext
628 lines
22 KiB
Plaintext
{
|
|
----------------------------------------------------------------------------
|
|
PROGRAMA : CGPRRP030
|
|
OBJETIVO : PANORAMICO ANALISIS DE BENEFICIOS POR VENDEDOR Y COMPANIA
|
|
PROGRAMADOR: JUAN F. SOTO
|
|
FECHA : DICIEMBRE 10, 1996.
|
|
---------------------------------------------------------------------------
|
|
}
|
|
GLOBALS
|
|
"cgprgb000.4gl"
|
|
DEFINE p_ano,p_mes SMALLINT,
|
|
fecha1,fecha2 DATE
|
|
DEFINE cost_vta RECORD
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
cantidad INTEGER
|
|
END RECORD
|
|
|
|
FUNCTION cgprrp030()
|
|
DEFINE vendedor RECORD
|
|
sec_vend SMALLINT,
|
|
nombre CHAR(20),
|
|
apellido CHAR(20),
|
|
cod_cia LIKE vetb00002.cod_cia,
|
|
bruto DECIMAL(12,2),
|
|
neto DECIMAL(12,2),
|
|
costo_venta DECIMAL(12,2),
|
|
salario DECIMAL(12,2),
|
|
comision DECIMAL(12,2),
|
|
descuento DECIMAL(12,2)
|
|
END RECORD
|
|
|
|
OPTIONS
|
|
FORM LINE 9,
|
|
ERROR LINE 24
|
|
|
|
OPEN FORM cgfmrp030 FROM "cgfmrp030"
|
|
DISPLAY FORM cgfmrp030
|
|
|
|
CALL pantalla()
|
|
DISPLAY "cgprrp030" AT 4,3
|
|
DISPLAY "Panoramico Analisis De Beneficos Por Vendedor Y Cia" AT 6,13
|
|
|
|
LET tipo_papel = 2
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
|
|
INPUT BY NAME p_ano,p_mes
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
CONSTRUCT BY NAME criterio ON a.cod_cia,b.num_emp
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET selec=
|
|
"SELECT UNIQUE b.num_emp , ",
|
|
" b.nom1_emp,b.apell1_emp,a.cod_cia ",
|
|
"FROM vetb00002 a,adtb00003 b ",
|
|
"WHERE a.sec_vend = b.num_emp AND ",criterio clipped,
|
|
" AND (b.status_t IS NULL OR b.status_t IN ('I')) ",
|
|
"ORDER BY 1,4 "
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE busca CURSOR FOR comando
|
|
OPEN busca
|
|
|
|
START REPORT ana_cia TO PIPE "lp"
|
|
DISPLAY "<< Reporte Generandose... Espere Por Favor >>" AT 19,14
|
|
WHILE STATUS != NOTFOUND
|
|
FETCH busca INTO vendedor.*
|
|
IF STATUS = NOTFOUND THEN
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
OUTPUT TO REPORT ana_cia(vendedor.*)
|
|
END WHILE
|
|
FINISH REPORT ana_cia
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
REPORT ana_cia(x)
|
|
|
|
DEFINE x RECORD
|
|
sec_vend SMALLINT,
|
|
nombre CHAR(20),
|
|
apellido CHAR(20),
|
|
cod_cia LIKE vetb00002.cod_cia,
|
|
bruto DECIMAL(12,2),
|
|
neto DECIMAL(12,2),
|
|
costo_venta DECIMAL(12,2),
|
|
salario DECIMAL(12,2),
|
|
comision DECIMAL(12,2),
|
|
descuento DECIMAL(12,2)
|
|
END RECORD,
|
|
comp_on,doce,normal,negrillas_on,negrillas_off CHAR(3),
|
|
nombre_mes CHAR(12)
|
|
|
|
DEFINE bruto,descuento,costo_v,salario,comision,total_g,neto,beneficio_b
|
|
ARRAY [12] OF DECIMAL(12,2),
|
|
t_bruto,t_descuento,t_costo_v,t_salario,t_comision,t_total_g,t_neto,
|
|
t_beneficio_b,t_beneficio_n,t_regalia DECIMAL(12,2),
|
|
porc_v,regalia,bonificacion,tt_bruto,tt_descuento,tt_costo_v,
|
|
tt_salario,tt_comision,tt_total_g,tt_neto,tt_beneficio_b,
|
|
t_costo,tt_beneficio_n,tt_regalia DECIMAL(12,2),
|
|
l SMALLINT
|
|
OUTPUT
|
|
LEFT MARGIN 0
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
LET negrillas_on = ASCII 027, ASCII 098
|
|
LET negrillas_off = ASCII 027, ASCII 099
|
|
LET normal = ASCII 029
|
|
LET doce = ASCII 30
|
|
LET comp_on = ASCII 31
|
|
SELECT a.descrip INTO nombre_mes FROM mestable a WHERE a.mes = p_mes
|
|
|
|
PRINT COLUMN 1, comp_on,negrillas_on,"cgprrp030",
|
|
COLUMN 90, "R A Y .O. V A C D O M I N I C A N A, S. A.",
|
|
COLUMN 200, "PAGINA: ",PAGENO USING "###"
|
|
PRINT COLUMN 1, "JFS",
|
|
COLUMN 90, "ANALISIS BENEFICIO POR VENDEDOR Y COMPANIA",
|
|
COLUMN 197,TODAY USING "DD/MM/YY"
|
|
PRINT COLUMN 90, "CORRESPONDIENTE AL PERIODO ENERO - ",nombre_mes clipped,
|
|
"/",p_ano using "####",
|
|
COLUMN 197, TIME
|
|
PRINT
|
|
"----------------------------------------------------------------------------",
|
|
"---------------------------------------------------------------------------------------------------------------------------------------------"
|
|
LET l = 40
|
|
FOR idx =1 TO p_mes
|
|
LET l = l + 14
|
|
END FOR
|
|
PRINT COLUMN l," TOTAL",
|
|
COLUMN l+14, " TOTAL"
|
|
LET l = 40
|
|
FOR idx =1 TO p_mes
|
|
SELECT a.descrip INTO nombre_mes FROM mestable a WHERE a.mes = idx
|
|
PRINT COLUMN l, nombre_mes clipped;
|
|
LET l = l + 14
|
|
END FOR
|
|
PRINT COLUMN l," ACTUAL",
|
|
COLUMN l+14, "ANTERIOR"
|
|
PRINT
|
|
"----------------------------------------------------------------------------",
|
|
"---------------------------------------------------------------------------------------------------------------------------------------------",negrillas_off
|
|
BEFORE GROUP OF x.sec_vend
|
|
PRINT COLUMN 1,negrillas_on,"VENDEDOR: ","(",x.sec_vend using "<<<<",")",
|
|
x.nombre clipped," ",x.apellido,negrillas_off
|
|
|
|
SKIP 1 LINE
|
|
BEFORE GROUP OF x.cod_cia
|
|
SKIP 1 LINE
|
|
IF x.cod_cia = "1" THEN
|
|
PRINT COLUMN 1, "PRODUCTOS LOCALES"
|
|
ELSE
|
|
PRINT COLUMN 1, "PRODUCTOS IMPORTADOS"
|
|
END IF
|
|
LET t_costo = 0
|
|
LET t_bruto = 0
|
|
LET t_descuento = 0
|
|
LET t_neto = 0
|
|
LET t_comision = 0
|
|
LET t_salario = 0
|
|
LET t_beneficio_b = 0
|
|
LET t_beneficio_n = 0
|
|
LET t_regalia = 0
|
|
LET t_costo_v = 0
|
|
LET tt_total_g = 0
|
|
LET t_total_g = 0
|
|
LET tt_costo_v = 0
|
|
FOR idx = 1 TO 12
|
|
LET total_g[idx] = 0
|
|
LET bruto[idx] = 0
|
|
LET neto[idx] = 0
|
|
LET comision[idx] = 0
|
|
LET costo_v[idx] = 0
|
|
LET beneficio_b[idx] = 0
|
|
LET salario[idx] = 0
|
|
END FOR
|
|
# BUSCA E IMPRIME LAS VENTAS BRUTAS
|
|
DISPLAY "BUSCANDO VENTAS BRUTAS" AT 17,19
|
|
|
|
PRINT COLUMN 9, "Ventas Brutas";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
SELECT SUM(a.sub_total) INTO x.bruto
|
|
FROM vetb00002 a,prdtable b
|
|
WHERE (a.factura=a.factura AND
|
|
a.cod_cia=x.cod_cia AND
|
|
a.ventas = "1" AND
|
|
a.sec_vend = x.sec_vend AND
|
|
a.fecha_factura between b.fecha_inicio AND b.fecha_corte AND
|
|
a.status_t IS NULL AND
|
|
a.sec_cliente = a.sec_cliente) AND
|
|
b.mes = idx AND
|
|
b.ano = p_ano
|
|
|
|
IF x.bruto IS NULL THEN
|
|
LET x.bruto = 0
|
|
END IF
|
|
LET bruto[idx] = x.bruto
|
|
LET t_bruto = t_bruto + bruto[idx]
|
|
PRINT COLUMN l,x.bruto USING "##,###,###";
|
|
LET l = l + 14
|
|
END FOR
|
|
PRINT COLUMN l, t_bruto USING "##,###,###";
|
|
DISPLAY " " AT 17,19
|
|
DISPLAY "BUSCANDO VENTAS BRUTAS DEL ANO ANTERIOR" AT 17,19
|
|
# Busca Ventas Brutas Del Ano Anterior
|
|
SELECT MIN(fecha_inicio) INTO fecha1
|
|
FROM prdtable
|
|
WHERE ano = p_ano -1
|
|
|
|
SELECT fecha_corte INTO fecha2
|
|
FROM prdtable
|
|
WHERE ano = p_ano -1 and
|
|
mes = p_mes
|
|
|
|
SELECT SUM(a.sub_total) INTO tt_bruto
|
|
FROM vetb00002 a
|
|
WHERE (a.factura=a.factura AND
|
|
a.cod_cia=x.cod_cia AND
|
|
a.ventas = "1" AND
|
|
a.sec_vend = x.sec_vend AND
|
|
a.fecha_factura between fecha1 AND fecha2 AND
|
|
a.status_t IS NULL AND
|
|
a.sec_cliente = a.sec_cliente)
|
|
PRINT COLUMN l+14, tt_bruto USING "##,###,###"
|
|
#-----------------------------------------------------------------------
|
|
# BUSCA E IMPRIME EL DESCUENTO
|
|
DISPLAY " " AT 17,19
|
|
DISPLAY "BUSCANDO DESCUENTO" AT 17,19
|
|
PRINT COLUMN 9, "MENOS:Descuentos S/Ventas";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
|
|
SELECT SUM(a.monto_desc) INTO x.descuento
|
|
FROM vetb00002 a,prdtable b
|
|
WHERE (a.factura=a.factura AND
|
|
a.cod_cia=x.cod_cia AND
|
|
a.ventas = "1" AND
|
|
a.sec_vend = x.sec_vend AND
|
|
a.fecha_factura between b.fecha_inicio AND b.fecha_corte AND
|
|
a.status_t IS NULL AND
|
|
a.sec_cliente = a.sec_cliente) AND
|
|
b.mes = idx AND
|
|
b.ano = p_ano
|
|
IF x.descuento IS NULL THEN
|
|
LET x.descuento = 0
|
|
END IF
|
|
LET descuento[idx] = x.descuento
|
|
LET t_descuento = t_descuento + descuento[idx]
|
|
PRINT COLUMN l,x.descuento USING "##,###,###";
|
|
LET l = l + 14
|
|
END FOR
|
|
PRINT COLUMN l, t_descuento USING "##,###,###";
|
|
SELECT SUM(a.monto_desc) INTO tt_descuento
|
|
FROM vetb00002 a
|
|
WHERE (a.factura=a.factura AND
|
|
a.cod_cia=x.cod_cia AND
|
|
a.ventas = "1" AND
|
|
a.sec_vend = x.sec_vend AND
|
|
a.fecha_factura between fecha1 AND fecha2 AND
|
|
a.status_t IS NULL AND
|
|
a.sec_cliente = a.sec_cliente)
|
|
PRINT COLUMN l+14, tt_descuento USING "##,###,###"
|
|
#---------------------------------------------------------------------------
|
|
# BUSCA E IMPRIME LAS VENTAS NETAS
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 9, "Ventas Netas";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
LET x.neto = bruto[idx] - descuento[idx]
|
|
LET neto[idx] = x.neto
|
|
LET t_neto = t_neto + neto[idx]
|
|
PRINT COLUMN l,x.neto USING "##,###,###";
|
|
LET l = l + 14
|
|
END FOR
|
|
LET tt_neto = tt_bruto - tt_descuento
|
|
PRINT COLUMN l, t_neto USING "##,###,###",
|
|
COLUMN l+14, tt_neto USING "##,###,###"
|
|
#---------------------------------------------------------------------------
|
|
# BUSCA EL COSTO DE VENTA
|
|
DISPLAY "BUSCANDO COSTO DE VENTA" AT 17,19
|
|
PRINT COLUMN 9, "MENOS:Costo De Venta";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
LET t_costo = 0
|
|
DECLARE busca_cos CURSOR FOR
|
|
SELECT b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,
|
|
SUM(b.cantidad)
|
|
FROM vetb00002 a,vetb00003 b,prdtable c
|
|
WHERE
|
|
(a.factura = b.factura AND
|
|
a.cod_cia = x.cod_cia AND
|
|
a.ventas = "1" AND
|
|
a.sec_vend = x.sec_vend AND
|
|
a.fecha_factura BETWEEN c.fecha_inicio AND c.fecha_corte AND
|
|
a.status_t IS NULL and
|
|
a.sec_cliente = a.sec_cliente) and
|
|
c.mes = idx and c.ano = p_ano
|
|
|
|
GROUP BY 1,2,3,4
|
|
ORDER BY 1,2,3,4
|
|
FOREACH busca_cos INTO cost_vta.*
|
|
LET x.costo_venta = 0
|
|
IF cost_vta.cod_n = 3 THEN
|
|
SELECT a.costo_lq INTO x.costo_venta
|
|
FROM cttb00036 a,prdtable b
|
|
WHERE (a.fecha_lq BETWEEN b.fecha_inicio AND b.fecha_corte AND
|
|
a.ventas = "1" AND
|
|
a.cod_n = cost_vta.cod_n AND
|
|
a.cod_grupo = cost_vta.cod_grupo AND
|
|
a.cod_tipo = cost_vta.cod_tipo AND
|
|
a.cod_sec = cost_vta.cod_sec) AND
|
|
b.mes = idx AND b.ano = p_ano
|
|
ELSE
|
|
SELECT a.labor+a.material+a.gasto_ind INTO x.costo_venta
|
|
FROM iptb00004 a
|
|
WHERE a.mes_fin = 12 AND a.ano = 1996 AND
|
|
a.cod_n = cost_vta.cod_n AND
|
|
a.cod_grupo = cost_vta.cod_grupo AND
|
|
a.cod_tipo = cost_vta.cod_tipo AND
|
|
a.cod_sec = cost_vta.cod_sec
|
|
END IF
|
|
IF x.costo_venta IS NULL THEN
|
|
LET x.costo_venta = 0
|
|
END IF
|
|
{
|
|
PRINT cost_vta.cod_n using "&"," ",cost_vta.cod_grupo using "&"," ",
|
|
cost_vta.cod_tipo using "&&"," ",cost_vta.cod_sec using "&&&"," ",
|
|
cost_vta.cantidad using "##,###,###"," ",x.costo_venta using "###.###"
|
|
}
|
|
LET t_costo = t_costo + (cost_vta.cantidad*x.costo_venta)
|
|
END FOREACH
|
|
LET costo_v[idx]= t_costo
|
|
LET t_costo_v = t_costo_v + costo_v[idx]
|
|
PRINT COLUMN l, t_costo USING "##,###,###";
|
|
LET l = l + 14
|
|
END FOR
|
|
PRINT COLUMN l, t_costo_v USING "##,###,###";
|
|
|
|
DISPLAY " " AT 17,19
|
|
DISPLAY "BUSCANDO EL COSTO DE VENTAS DEL ANO ANTERIOR " AT 17,19
|
|
# BUSCA EL COSTO DE VENTAS DEL ANO ANTERIOR
|
|
|
|
FOR idx = 1 TO p_mes
|
|
DECLARE busca_acos CURSOR FOR
|
|
SELECT b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,
|
|
SUM(b.cantidad)
|
|
FROM vetb00002 a,vetb00003 b,prdtable c
|
|
WHERE
|
|
(a.factura = b.factura AND
|
|
a.cod_cia = x.cod_cia AND
|
|
a.ventas = "1" AND
|
|
a.sec_vend = x.sec_vend AND
|
|
a.fecha_factura BETWEEN c.fecha_inicio AND c.fecha_corte AND
|
|
a.status_t IS NULL and
|
|
a.sec_cliente = a.sec_cliente) and
|
|
c.mes = idx and c.ano = p_ano - 1
|
|
|
|
GROUP BY 1,2,3,4
|
|
LET t_costo = 0
|
|
FOREACH busca_acos INTO cost_vta.*
|
|
LET x.costo_venta = 0
|
|
IF cost_vta.cod_n = 3 THEN
|
|
SELECT a.costo_lq INTO x.costo_venta
|
|
FROM cttb00036 a,prdtable b
|
|
WHERE (a.fecha_lq BETWEEN b.fecha_inicio AND b.fecha_corte AND
|
|
a.ventas = "1" AND
|
|
a.cod_n = cost_vta.cod_n AND
|
|
a.cod_grupo = cost_vta.cod_grupo AND
|
|
a.cod_tipo = cost_vta.cod_tipo AND
|
|
a.cod_sec = cost_vta.cod_sec) AND
|
|
b.mes = idx AND b.ano = p_ano - 1
|
|
ELSE
|
|
SELECT a.labor+a.material+a.gasto_ind INTO x.costo_venta
|
|
FROM iptb00004 a
|
|
WHERE a.mes_fin = 12 AND a.ano = p_ano - 1 AND
|
|
a.cod_n = cost_vta.cod_n AND
|
|
a.cod_grupo = cost_vta.cod_grupo AND
|
|
a.cod_tipo = cost_vta.cod_tipo AND
|
|
a.cod_sec = cost_vta.cod_sec
|
|
END IF
|
|
IF x.costo_venta IS NULL THEN
|
|
LET x.costo_venta = 0
|
|
END IF
|
|
LET t_costo = t_costo + (cost_vta.cantidad*x.costo_venta)
|
|
|
|
END FOREACH
|
|
LET tt_costo_v = tt_costo_v + t_costo
|
|
END FOR
|
|
PRINT COLUMN l+13, tt_costo_v USING "###,###,###"
|
|
DISPLAY " " AT 17,19
|
|
#----------------------------------------------------------------------
|
|
# BENEFICIO BRUTO
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 9, "Beneficio Bruto";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
LET beneficio_b[idx] = neto[idx] - costo_v[idx]
|
|
LET t_beneficio_b = t_beneficio_b + beneficio_b[idx]
|
|
PRINT COLUMN l, beneficio_b[idx] USING "##,###,###";
|
|
LET l = l + 14
|
|
END FOR
|
|
LET tt_beneficio_b = tt_neto - tt_costo_v
|
|
PRINT COLUMN l, t_beneficio_b USING "##,###,###",
|
|
COLUMN l+14, tt_beneficio_b USING "##,###,###"
|
|
#----------------------------------------------------------------------
|
|
# IMPRIME EL PORCENTAJE VENTAS NETAS
|
|
PRINT COLUMN 9, "% S/Ventas Netas";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
LET porc_v = 0
|
|
IF neto[idx] != 0 THEN
|
|
LET porc_v = (beneficio_b[idx]/neto[idx]) * 100
|
|
END IF
|
|
PRINT COLUMN l, porc_v USING "##,###,###";
|
|
LET l = l + 14
|
|
END FOR
|
|
PRINT COLUMN l+14, (tt_beneficio_b/tt_neto) * 100 USING "##,###,###"
|
|
{
|
|
#----------------------------------------------------------------------
|
|
# GASTOS DIRECTOS
|
|
# BUSQUEDA DEL SALARIO DEL VENDEDOR
|
|
DISPLAY "BUSCANDO SALARIO NORMAL" AT 17,19
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 5,negrillas_on, "GASTOS DIRECTOS",negrillas_off
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 9, "Salario Normal";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
SELECT SUM(a.valor) INTO x.salario
|
|
FROM notb00008 a ,notb00010 b
|
|
WHERE b.mes = idx AND
|
|
b.ano = p_ano AND
|
|
a.num_emp = x.sec_vend AND
|
|
a.cod_mov = 1 AND
|
|
a.num_nomi = b.num_nomi AND
|
|
b.tipo_emp = "Q"
|
|
|
|
IF x.salario IS NULL THEN
|
|
LET x.salario = 0
|
|
END IF
|
|
LET total_g[idx] = total_g[idx] + x.salario
|
|
LET t_total_g = t_total_g + total_g[idx]
|
|
LET salario[idx] = x.salario
|
|
LET t_salario = t_salario + x.salario
|
|
PRINT COLUMN l, x.salario USING "##,###,###";
|
|
LET l = l + 14
|
|
END FOR
|
|
# Busca el Salario del Ano Anterior
|
|
SELECT SUM(a.valor) INTO tt_salario
|
|
FROM notb00016 a ,notb00010 b
|
|
WHERE b.mes <= p_mes AND
|
|
b.ano = p_ano -1 AND
|
|
(a.num_emp = x.sec_vend AND
|
|
a.cod_mov = 1 AND
|
|
a.num_nomi = b.num_nomi) AND
|
|
b.tipo_emp = "Q"
|
|
IF tt_salario IS NULL THEN
|
|
LET tt_salario = 0
|
|
END IF
|
|
LET tt_total_g = tt_total_g + tt_salario
|
|
PRINT COLUMN l,t_salario USING "##,###,###",
|
|
COLUMN l+14, tt_salario USING "##,###,###"
|
|
#-----------------------------------------------------------------------
|
|
# BUSCA LA COMISION PAGADA EN EL MES PARA EL VENDEDOR
|
|
DISPLAY "BUSCANDO COMISIONES S/VENTAS" AT 17,19
|
|
PRINT COLUMN 9, "Comisiones S/Ventas";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
SELECT SUM(a.valor) INTO x.comision
|
|
FROM notb00008 a ,notb00010 b
|
|
WHERE b.mes = idx AND
|
|
b.ano = p_ano AND
|
|
a.num_emp = x.sec_vend AND
|
|
a.cod_mov = 40 AND
|
|
a.num_nomi = b.num_nomi AND
|
|
b.tipo_emp = "Q"
|
|
|
|
IF x.comision IS NULL THEN
|
|
LET x.comision = 0
|
|
END IF
|
|
LET total_g[idx] = total_g[idx] + x.comision
|
|
LET t_total_g = t_total_g + total_g[idx]
|
|
LET comision[idx] = x.comision
|
|
LET t_comision = t_comision + x.comision
|
|
PRINT COLUMN l, x.comision USING "##,###,###";
|
|
|
|
LET l = l + 14
|
|
END FOR
|
|
SELECT SUM(a.valor) INTO tt_comision
|
|
FROM notb00016 a ,notb00010 b
|
|
WHERE b.mes <= p_mes AND
|
|
b.ano = p_ano - 1 AND
|
|
(a.num_emp = x.sec_vend AND
|
|
a.cod_mov = 40 AND
|
|
a.num_nomi = b.num_nomi) AND
|
|
b.tipo_emp = "Q"
|
|
IF tt_comision IS NULL THEN
|
|
LET tt_comision = 0
|
|
END IF
|
|
LET tt_total_g = tt_total_g + tt_comision
|
|
PRINT COLUMN l,t_comision USING "##,###,###",
|
|
COLUMN l+14, tt_comision USING "##,###,###"
|
|
#-----------------------------------------------------------------------
|
|
# REGALIA, BONIFICACION
|
|
|
|
PRINT COLUMN 9, "Regalia, Bonifi.";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
|
|
LET regalia = (salario[idx] + comision[idx]) / p_mes
|
|
LET bonificacion = (((salario[idx] + comision[idx]) / 23.83) * 60)/p_mes
|
|
LET total_g[idx] = total_g[idx] + bonificacion + regalia
|
|
LET t_total_g = t_total_g + total_g[idx]
|
|
LET t_regalia = t_regalia + regalia + bonificacion
|
|
PRINT COLUMN l, regalia+bonificacion USING "##,###,###";
|
|
LET l = l + 14
|
|
END FOR
|
|
# BUSCA BONIFICACION DEL ANO
|
|
SELECT a.valor INTO bonificacion
|
|
FROM notb00016 a ,notb00010 b
|
|
WHERE
|
|
b.ano = p_ano AND
|
|
(a.num_emp = x.sec_vend AND
|
|
a.cod_mov = 33 AND
|
|
a.num_nomi = b.num_nomi) AND
|
|
b.tipo_emp = "Q"
|
|
# BUSCA REGALIA DEL ANO ANTERIOR
|
|
SELECT a.valor INTO tt_regalia
|
|
FROM notb00016 a ,notb00010 b
|
|
WHERE b.mes = 12 AND
|
|
b.ano = p_ano - 1 AND
|
|
(a.num_emp = x.sec_vend AND
|
|
a.cod_mov = 32 AND
|
|
a.num_nomi = b.num_nomi) AND
|
|
b.tipo_emp = "Q"
|
|
LET tt_total_g = tt_total_g + tt_regalia + bonificacion
|
|
PRINT COLUMN l, t_regalia USING "##,###,###",
|
|
COLUMN l+14, bonificacion + tt_regalia USING "##,###,###"
|
|
#-----------------------------------------------------------------------
|
|
# ASIGNACION DE VEHICULOS, DEPRECIACION, MANTENIMIENTO, VIAJES Y DIETAS
|
|
PRINT COLUMN 9, "Asignacion Vehiculo"
|
|
PRINT COLUMN 9, "Depreciacion Vehiculo"
|
|
PRINT COLUMN 9, "Mantenimiento Vehiculo"
|
|
PRINT COLUMN 9, "Viajes y Dietas"
|
|
#-----------------------------------------------------------------------
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 9, "TOTAL GASTOS" ;
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
PRINT COLUMN l, total_g[idx] USING "##,###,###";
|
|
LET l = l + 14
|
|
END FOR
|
|
PRINT COLUMN l,t_total_g USING "##,###,###",
|
|
COLUMN l+14, tt_total_g USING "##,###,###"
|
|
|
|
PRINT COLUMN 9,"% S/VENTAS NETAS";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
IF neto[idx] != 0 THEN
|
|
PRINT COLUMN l, (total_g[idx]/neto[idx]) * 100 USING "##,###,###";
|
|
END IF
|
|
LET l = l + 14
|
|
END FOR
|
|
PRINT COLUMN l, (t_total_g/t_neto) * 100 USING "##,###,###",
|
|
COLUMN l+14, (tt_total_g/tt_neto) * 100 USING "##,###,###"
|
|
|
|
LET l = 40
|
|
PRINT COLUMN 9,"% S/VENTAS BRUTAS";
|
|
FOR idx = 1 TO p_mes
|
|
IF bruto[idx] != 0 THEN
|
|
PRINT COLUMN l, (total_g[idx]/bruto[idx]) * 100 USING "##,###,###";
|
|
END IF
|
|
LET l = l + 14
|
|
END FOR
|
|
PRINT COLUMN l,(t_total_g/t_bruto) * 100 USING "##,###,###",
|
|
COLUMN l+14, (tt_total_g/tt_bruto) * 100 USING "##,###,###"
|
|
PRINT
|
|
"----------------------------------------------------------------------------",
|
|
"---------------------------------------------------------------------------------------------------------------------------------------------"
|
|
PRINT COLUMN 9, "BENEFICIO NETO";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
LET t_beneficio_n = t_beneficio_n + (beneficio_b[idx]-total_g[idx])
|
|
PRINT COLUMN l, beneficio_b[idx] - total_g[idx] USING "##,###,###";
|
|
LET l = l + 14
|
|
END FOR
|
|
PRINT COLUMN l, t_beneficio_n USING "##,###,###",
|
|
COLUMN l+14, tt_beneficio_b - tt_total_g USING "##,###,###"
|
|
PRINT COLUMN 9,"% S/VENTAS NETAS";
|
|
LET l = 40
|
|
FOR idx = 1 TO p_mes
|
|
IF beneficio_b[idx]-total_g[idx] != 0 THEN
|
|
PRINT COLUMN l, ((beneficio_b[idx]-total_g[idx]) / neto[idx]) * 100
|
|
USING "##,###,###";
|
|
END IF
|
|
LET l = l + 14
|
|
END FOR
|
|
LET tt_beneficio_n = tt_beneficio_b - tt_total_g
|
|
PRINT COLUMN l, (t_beneficio_n / t_neto) * 100 USING "##,###,###",
|
|
COLUMN l+14, (tt_beneficio_n / t_neto) *100 USING "##,###,###"
|
|
PRINT
|
|
"----------------------------------------------------------------------------",
|
|
"---------------------------------------------------------------------------------------------------------------------------------------------"
|
|
}
|
|
AFTER GROUP OF x.cod_cia
|
|
PRINT
|
|
"----------------------------------------------------------------------------",
|
|
"---------------------------------------------------------------------------------------------------------------------------------------------"
|
|
|
|
AFTER GROUP OF x.sec_vend
|
|
SKIP TO TOP OF PAGE
|
|
END REPORT
|