431 lines
14 KiB
Plaintext
431 lines
14 KiB
Plaintext
{
|
|
==============================================================================
|
|
PROGRAMA : LQPRRP008
|
|
SISTEMA : Sistema de Liquidacion Materiales
|
|
Objetivo : Re-Liquidacion Mercancia Compras Exterior Mat. Prima
|
|
Nota: En los gastos y otros se segrega la entrada "ED.64"
|
|
PROGRAMADOR : Juan F. Soto
|
|
FECHA : Diciembre 19, 1996.
|
|
==============================================================================
|
|
}
|
|
GLOBALS
|
|
"lqprgb000.4gl"
|
|
###### Variables para busqueda de rango de fecha
|
|
DEFINE elije,imp,afecta CHAR(1)
|
|
DEFINE m_mes,mes SMALLINT
|
|
DEFINE chequea_ent,p_ano CHAR(4)
|
|
DEFINE detalla CHAR(30)
|
|
DEFINE no_entrada CHAR(14)
|
|
DEFINE p_fecha,fecha1, fecha2 DATE
|
|
DEFINE entra CHAR(14)
|
|
DEFINE entra1 CHAR(5)
|
|
DEFINE t_costst,p_fob,valor,mano_obra,sueldo_ind,monto_banco,
|
|
interes,val_64 DECIMAL(12,2)
|
|
DEFINE orden CHAR(10)
|
|
DEFINE t_variacion DECIMAL(12,2)
|
|
|
|
###### Variables que la almacenan la informacion enviada al reporte
|
|
DEFINE diario1 RECORD
|
|
cuenta_no SMALLINT,
|
|
debito DECIMAL(10,2)
|
|
END RECORD
|
|
|
|
DEFINE i SMALLINT
|
|
DEFINE fecha_inicial,fecha_final DATE
|
|
DEFINE tasa DECIMAL(8,2)
|
|
DEFINE primera CHAR(1)
|
|
|
|
FUNCTION lqprrp008()
|
|
|
|
DEFINE busca_datos RECORD
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
descripcion CHAR(30),
|
|
unidad CHAR(3),
|
|
cod_sp SMALLINT,
|
|
cod_sp_sec SMALLINT,
|
|
entrada INTEGER,
|
|
num_doc INTEGER,
|
|
num_oc INTEGER,
|
|
tipo CHAR(2),
|
|
cantidad DECIMAL(12,2),
|
|
precio DECIMAL(12,2),
|
|
flete DECIMAL(12,2),
|
|
tasa DECIMAL(8,2),
|
|
mercado CHAR(1),
|
|
imp_colect DECIMAL(12,2),
|
|
imp_aduana DECIMAL(12,2),
|
|
cost_std LIKE intb00013.costo_st,
|
|
clave CHAR(6)
|
|
END RECORD
|
|
|
|
LET int_flag = FALSE
|
|
|
|
OPTIONS
|
|
FORM LINE 8
|
|
|
|
OPEN FORM lqfmrp001 FROM "lqfmrp001"
|
|
DISPLAY FORM lqfmrp001
|
|
DISPLAY "lqprrp008" AT 4,3
|
|
DISPLAY "Liquidacion Mercancia mp" AT 6,28
|
|
|
|
LET tipo_papel = 2
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
INPUT BY NAME p_ano,m_mes,elije,imp
|
|
|
|
AFTER FIELD p_ano
|
|
IF p_ano is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD p_ano
|
|
END IF
|
|
AFTER FIELD m_mes
|
|
IF m_mes is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD m_mes
|
|
END IF
|
|
SELECT a.fecha_inicio,a.fecha_corte INTO fecha_inicial,fecha_final
|
|
FROM prdtable a WHERE a.mes = m_mes and a.ano = p_ano
|
|
|
|
DISPLAY BY NAME fecha_inicial,fecha_final ATTRIBUTE(BOLD)
|
|
LET chequea_ent = m_mes using "&&",p_ano[3,4]
|
|
LET no_entrada = "ED.27-000/",chequea_ent
|
|
|
|
AFTER FIELD elije
|
|
IF elije = "E" THEN
|
|
SELECT unique ref FROM cgtb00004 WHERE ref = no_entrada
|
|
|
|
IF status != notfound THEN
|
|
LET numero_msg = 222
|
|
CALL msg(numero_msg)
|
|
#NEXT FIELD p_ano
|
|
END IF
|
|
END IF
|
|
END INPUT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
LET primera = "S"
|
|
START REPORT liquida8 TO "rplq01"
|
|
|
|
DISPLAY "<<<Reporte Generandose... Espere por Favor>>>" AT 19,14
|
|
ATTRIBUTE(YELLOW)
|
|
|
|
DECLARE busca CURSOR FOR
|
|
SELECT UNIQUE a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
|
|
a.descrip_esp,a.unidad_med,
|
|
d.cod_sp,d.cod_sp_sec,d.rep_entrada,c.rep_entrada,c.num_oc,c.tipo,
|
|
c.cantidad_oc,c.fob,c.costo_flete,d.prima_us,d.liquidada
|
|
FROM intb00001 a,cgtb00018 c,cgtb00017 d
|
|
WHERE a.cod_n = c.cod_n and a.cod_grupo = c.cod_grupo and c.cod_n = 1 AND
|
|
a.cod_tipo = c.cod_tipo and a.cod_sec = c.cod_sec and
|
|
c.rep_entrada = d.rep_entrada and d.liquidada[1] = elije and
|
|
d.fecha between fecha_inicial and fecha_final and c.status_t is null
|
|
AND c.num_oc = d.num_oc and c.tipo = d.tipo AND c.status_t IS NULL AND
|
|
d.status_t is null ORDER BY c.num_oc,1,2,3,4
|
|
|
|
FOREACH busca INTO busca_datos.*
|
|
LET orden = busca_datos.num_oc
|
|
|
|
IF elije != "L" THEN
|
|
|
|
# Busca el monto pagado al colector
|
|
SELECT a.impuesto_c,a.gasto_ad ,a.prima_d
|
|
INTO busca_datos.imp_colect,busca_datos.imp_aduana,busca_datos.tasa
|
|
FROM cttb00040 a
|
|
WHERE
|
|
a.ano = p_ano AND a.mes = m_mes AND
|
|
a.num_oc = orden
|
|
END IF
|
|
IF busca_datos.imp_colect is null THEN
|
|
LET busca_datos.imp_colect = 0
|
|
END IF
|
|
|
|
IF busca_datos.imp_aduana is null THEN
|
|
LET busca_datos.imp_aduana = 0
|
|
END IF
|
|
|
|
IF busca_datos.imp_aduana < 0 THEN
|
|
LET busca_datos.imp_aduana = busca_datos.imp_aduana * -1
|
|
END IF
|
|
|
|
# Busca el costos standard
|
|
SELECT a.costo_st INTO busca_datos.cost_std FROM intb00013 a
|
|
WHERE a.ano = year(fecha_inicial) and a.cod_n = busca_datos.cod_n and
|
|
a.cod_grupo=busca_datos.cod_grupo and a.cod_tipo=busca_datos.cod_tipo
|
|
AND a.cod_sec = busca_datos.cod_sec and a.status_t is null
|
|
|
|
IF busca_datos.cost_std is null THEN
|
|
LET busca_datos.cost_std = 0
|
|
END IF
|
|
LET busca_datos.clave = busca_datos.num_oc using "<<<<",busca_datos.tipo
|
|
OUTPUT TO REPORT liquida8(busca_datos.*)
|
|
END FOREACH
|
|
|
|
FINISH REPORT liquida8
|
|
|
|
IF imp = "S" THEN
|
|
RUN "cat rplq01 |lp -dcentral"
|
|
END IF
|
|
|
|
CLEAR SCREEN
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
REPORT liquida8(x)
|
|
DEFINE x RECORD
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
descripcion CHAR(30),
|
|
unidad CHAR(3),
|
|
cod_sp SMALLINT,
|
|
cod_sp_sec SMALLINT,
|
|
entrada INTEGER,
|
|
num_doc INTEGER,
|
|
num_oc INTEGER,
|
|
tipo CHAR(2),
|
|
cantidad DECIMAL(12,2),
|
|
precio DECIMAL(12,2),
|
|
flete DECIMAL(12,2),
|
|
tasa DECIMAL(8,2),
|
|
mercado CHAR(1),
|
|
imp_colect DECIMAL(12,2),
|
|
imp_aduana DECIMAL(12,2),
|
|
cost_std LIKE intb00013.costo_st,
|
|
clave CHAR(6)
|
|
END RECORD
|
|
|
|
DEFINE n_reg SMALLINT
|
|
|
|
DEFINE fecha1,fecha2 DATE
|
|
DEFINE variacion,precio_std,fob,c_f,seguro,cost_pl,valor,t_fob,t_flete,
|
|
t_seguro,t_cf,t_impcol,t_impaduana,t_dollar,t_costopl,t_recibida,
|
|
t_precio,o_variacion,total_cf,o_impaduana,o_impcolect,o_dollar,o_cf,
|
|
balan_act DECIMAL(12,2)
|
|
|
|
DEFINE descrip1 CHAR(30)
|
|
DEFINE t_costo, costo_unit DECIMAL(12,4)
|
|
DEFINE p_cuenta CHAR(8)
|
|
DEFINE otras_cta CHAR(8)
|
|
|
|
## DEFINICION DE LAS VARIABLES DE IMPRESION
|
|
DEFINE doble_on CHAR(2)
|
|
DEFINE doble_off CHAR(2)
|
|
DEFINE negrillas_on CHAR(2)
|
|
DEFINE negrillas_off CHAR(2)
|
|
DEFINE comp_on CHAR(2)
|
|
DEFINE comp_off CHAR(2)
|
|
DEFINE doce CHAR(2)
|
|
DEFINE normal CHAR(2)
|
|
DEFINE hora CHAR(5)
|
|
|
|
OUTPUT
|
|
## DEFINICION DE LOS MARGENES DE IMPRESION
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 3
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
LET doble_on = ASCII 001
|
|
LET doble_off = ASCII 002
|
|
LET negrillas_on = ASCII 027, ASCII 098
|
|
LET negrillas_off = ASCII 027, ASCII 099
|
|
LET comp_on = ASCII 31
|
|
LET comp_off = ASCII 29
|
|
LET doce = ASCII 30
|
|
LET normal = ASCII 029
|
|
LET hora = time
|
|
|
|
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
|
|
PRINT COLUMN 1, comp_on,
|
|
COLUMN 2, "lqprrp008",
|
|
COLUMN 14, negrillas_on,
|
|
COLUMN 15, doble_on,
|
|
COLUMN 48, "R A Y . O . V A C D O M I N I C A N A, S. A.",
|
|
negrillas_off,
|
|
doble_off,
|
|
COLUMN 140, "Pag. ",pageno using "###"
|
|
PRINT COLUMN 95, "Sistema de Contabilidad de Costo",
|
|
COLUMN 210, today using "dd/mm/yy"
|
|
PRINT COLUMN 93, "Liquidacion Mercancia Materia Prima",
|
|
COLUMN 210, hora
|
|
PRINT COLUMN 98, "Del ",fecha_inicial USING "dd/mm/yy"," Al ",
|
|
fecha_final USING "dd/mm/yy"
|
|
|
|
PRINT negrillas_on
|
|
PRINT COLUMN 1, "---------------------------------------------------",
|
|
"---------------------------------------------------",
|
|
"---------------------------------------------------",
|
|
"---------------------------------------------------",
|
|
"----------------------"
|
|
|
|
PRINT COLUMN 128,"GASTO"
|
|
|
|
PRINT COLUMN 50, "Reporte",
|
|
COLUMN 61, "Ordenes",
|
|
COLUMN 96, "COSTO &",
|
|
COLUMN 115, "IMPUESTO",
|
|
COLUMN 128, "ADUANAL",
|
|
COLUMN 141, "PRIMA ",
|
|
COLUMN 153, "COSTO EN",
|
|
COLUMN 166, "UNIDADES",
|
|
COLUMN 183, "COSTO",
|
|
COLUMN 194, "PRECIO",
|
|
COLUMN 206, "COSTO"
|
|
|
|
PRINT COLUMN 1, "Materiales",
|
|
COLUMN 50, "Entrada ",
|
|
COLUMN 61, "Compras",
|
|
COLUMN 76, "FOB",
|
|
COLUMN 83, "FLETE",
|
|
COLUMN 96, "FLETE",
|
|
COLUMN 104, "SEGURO",
|
|
COLUMN 115, "COLECTOR",
|
|
COLUMN 128, "Y OTROS",
|
|
COLUMN 141, "DOLLAR",
|
|
COLUMN 153, "PLANTA",
|
|
COLUMN 166, "RECIBIDA",
|
|
COLUMN 183, "UNIT.",
|
|
COLUMN 195, "STD",
|
|
COLUMN 206, "STD",
|
|
COLUMN 218, "VARIACION"
|
|
|
|
|
|
PRINT COLUMN 1, "----------------------------------------------------",
|
|
"----------------------------------------------------",
|
|
"----------------------------------------------------",
|
|
"----------------------------------------------------",
|
|
"------------------"
|
|
|
|
IF primera = "S" THEN
|
|
LET t_fob = 0
|
|
LET t_flete = 0
|
|
LET t_seguro = 0
|
|
LET t_cf = 0
|
|
LET t_impcol = 0
|
|
LET t_impaduana = 0
|
|
LET t_dollar = 0
|
|
LET t_costopl = 0
|
|
LET t_recibida = 0
|
|
LET t_costo = 0
|
|
LET t_precio = 0
|
|
LET t_costst = 0
|
|
LET t_variacion = 0
|
|
LET o_variacion = 0
|
|
LET o_impaduana = 0
|
|
LET o_impcolect = 0
|
|
LET o_dollar = 0
|
|
LET o_cf = 0
|
|
LET idx = 1
|
|
LET primera = "N"
|
|
END IF
|
|
|
|
BEFORE GROUP OF x.clave
|
|
# Busca La suma del costo y flete
|
|
SELECT SUM(a.fob+a.costo_flete),count(*) INTO total_cf,n_reg
|
|
FROM cgtb00018 a,cgtb00017 b
|
|
WHERE (a.num_oc = x.num_oc) and (a.tipo = x.tipo) and
|
|
(b.fecha between fecha_inicial and fecha_final) and
|
|
(a.num_oc = b.num_oc and a.tipo = b.tipo) and
|
|
(a.status_t is null) and (a.rep_entrada = b.rep_entrada)
|
|
|
|
IF total_cf is null THEN
|
|
LET total_cf = 0
|
|
END IF
|
|
PRINT negrillas_off
|
|
|
|
ON EVERY ROW
|
|
|
|
LET fob = x.precio
|
|
|
|
LET c_f = fob + x.flete
|
|
LET seguro = (c_f * .10)
|
|
LET valor = c_f * x.tasa
|
|
IF n_reg > 1 THEN
|
|
LET x.imp_aduana = (x.imp_aduana / total_cf) * c_f
|
|
LET x.imp_colect = (x.imp_colect / total_cf) * c_f
|
|
END IF
|
|
IF x.mercado = "L" THEN
|
|
LET seguro = 0
|
|
LET x.imp_colect = 0
|
|
LET x.imp_aduana = 0
|
|
LET valor = 0
|
|
END IF
|
|
LET cost_pl = seguro + c_f + x.imp_colect + x.imp_aduana + valor
|
|
LET costo_unit = cost_pl / x.cantidad
|
|
LET precio_std = x.cantidad * x.cost_std
|
|
LET variacion = cost_pl - precio_std
|
|
|
|
PRINT COLUMN 1, x.cod_n using "&","-",x.cod_grupo using "&","-",
|
|
x.cod_tipo using "&&","-",x.cod_sec using "&&&",
|
|
" ",x.descripcion," ",x.unidad,
|
|
COLUMN 38, x.cod_sp using "&&","-",x.cod_sp_sec using "&&&&",
|
|
COLUMN 47, x.entrada using "&&&&&&",
|
|
COLUMN 60, x.num_oc using "&&&&&","-",x.tipo,
|
|
COLUMN 69, fob using "#,###,###.##",
|
|
COLUMN 80, x.flete using "##,###.##",
|
|
COLUMN 91, c_f using "#,###,###.##",
|
|
COLUMN 103, seguro using "##,###.##",
|
|
COLUMN 113, x.imp_colect using "#,###,###.##",
|
|
COLUMN 125, x.imp_aduana using "###,###.##",
|
|
COLUMN 137, valor using "####,###.##",
|
|
COLUMN 149, cost_pl using "####,###.##",
|
|
COLUMN 161, x.cantidad using "##,###,###.##",
|
|
COLUMN 176, costo_unit using "##,###.####",
|
|
COLUMN 189, x.cost_std using "##,###.####",
|
|
COLUMN 202, precio_std using "#####,###.##",
|
|
COLUMN 214, variacion using "--,---,---.##"
|
|
|
|
|
|
# Acumulacion de totales
|
|
LET t_fob = t_fob + fob
|
|
LET t_flete = t_flete + x.flete
|
|
LET t_seguro = t_seguro + seguro
|
|
LET t_cf = t_cf + c_f
|
|
LET t_impcol = t_impcol + x.imp_colect
|
|
LET t_impaduana = t_impaduana + x.imp_aduana
|
|
LET t_dollar = t_dollar + valor
|
|
LET t_costopl = t_costopl + cost_pl
|
|
LET t_costo = t_costo + costo_unit
|
|
LET t_precio = t_precio + x.cost_std
|
|
LET t_costst = t_costst + precio_std
|
|
LET t_variacion = t_variacion + variacion
|
|
LET o_variacion = o_variacion + cost_pl
|
|
LET o_impaduana = o_impaduana + x.imp_aduana + seguro
|
|
LET o_impcolect = o_impcolect + x.imp_colect
|
|
LET o_dollar = o_dollar + valor
|
|
LET o_cf = o_cf + c_f
|
|
|
|
#-------------------------------------------------------------------------
|
|
ON LAST ROW
|
|
PRINT COLUMN 1,"------------------------------------------------------",
|
|
"------------------------------------------------------",
|
|
"------------------------------------------------------",
|
|
"------------------------------------------------------",
|
|
"----------"
|
|
|
|
PRINT COLUMN 1, "Totales ----> ",
|
|
COLUMN 67,t_fob using "#,###,###.##",
|
|
COLUMN 80, t_flete using "##,###.##",
|
|
COLUMN 91, t_cf using "###,###.##",
|
|
COLUMN 102, t_seguro using "##,###.##",
|
|
COLUMN 113, t_impcol using "####,###.##",
|
|
COLUMN 124, t_impaduana using "####,###.##",
|
|
COLUMN 134, t_dollar using "##,###,###.##",
|
|
COLUMN 148, t_costopl using "##,###,###.##",
|
|
COLUMN 177, t_costo using "##,###.###",
|
|
COLUMN 187, t_precio using "##,###.####",
|
|
COLUMN 199, t_costst using "##,###,###.####",
|
|
COLUMN 213, t_variacion using "--,---,---.##"
|
|
END REPORT
|