627 lines
22 KiB
Plaintext
627 lines
22 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : EDPRRP080
|
|
OBJETIVO : Entrada automatica codigo movimientos Inventarios
|
|
PROGRAMADOR : Ing. Juan Fco. Soto
|
|
FECHA REALIZACION : Marzo 2020
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
GLOBALS "cgprgb000.4gl"
|
|
DEFINE nombre_v CHAR(20)
|
|
DEFINE
|
|
ventas CHAR(1),
|
|
r_filename VARCHAR(80),
|
|
preview BOOLEAN,
|
|
entrada_d VARCHAR(25),
|
|
ultimo INT,
|
|
numero_ent CHAR(2),
|
|
p_ano CHAR(4),
|
|
tiempo CHAR(4),
|
|
xdetalle VARCHAR(100),
|
|
cod_mov SMALLINT
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(3) RETURNING impresor
|
|
|
|
CONNECT TO "smarmotech" USER usuarios USING clave
|
|
SELECT * INTO p_compania.* FROM companias
|
|
CALL ipprrp004()
|
|
END MAIN
|
|
|
|
FUNCTION ipprrp004()
|
|
|
|
DEFINE select_ac STRING
|
|
DEFINE ano_act CHAR(4)
|
|
|
|
DEFINE acumulado_ac RECORD
|
|
cod_mov SMALLINT,
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_Tipo SMALLINT,
|
|
cod_Sec SMALLINT,
|
|
consumo DECIMAL(30, 5),
|
|
descripcion VARCHAR(180),
|
|
material, labor, gasto DEC(30, 5),
|
|
cod_cia SMALLINT,
|
|
descrip_cia VARCHAR(60),
|
|
cuenta_origen, cuenta_1, cuenta_2, cuenta_3, cuenta_imp_material
|
|
VARCHAR(14),
|
|
departamento INT,
|
|
descripcion_depto VARCHAR(80),
|
|
descripcion_mov VARCHAR(80),
|
|
descripcion_bodega VARCHAR(30)
|
|
END RECORD
|
|
|
|
DEFINE
|
|
acumulado RECORD
|
|
cod_cia LIKE iptb00002.cod_cia,
|
|
cod_n LIKE iptb00002.cod_n,
|
|
cod_grupo LIKE iptb00002.cod_grupo,
|
|
cod_tipo LIKE iptb00002.cod_tipo,
|
|
cod_sec LIKE iptb00002.cod_sec,
|
|
descrip_esp CHAR(100),
|
|
descrip_ing LIKE iptb00002.descrip_ing,
|
|
unidad_med LIKE iptb00002.unidad_med,
|
|
cod_mov LIKE iptb00006.cod_mov,
|
|
descrip_mov LIKE iptb00005.descrip_mov,
|
|
consumo DECIMAL(30, 5),
|
|
material DECIMAL(30, 3),
|
|
labor DECIMAL(30, 3),
|
|
gastos DECIMAL(30, 3),
|
|
descripcion_bodega VARCHAR(30),
|
|
descripcion_origen VARCHAR(30),
|
|
cuenta_material VARCHAR(14),
|
|
cuenta_labor VARCHAR(14),
|
|
cuenta_gasto VARCHAR(14),
|
|
cuenta_imp_material VARCHAR(14),
|
|
cuenta_origen VARCHAR(14),
|
|
detalle VARCHAR(80),
|
|
entrada_d VARCHAR(25),
|
|
nombre_Cia VARCHAR(100),
|
|
departamento INT,
|
|
descripcion_depto VARCHAR(80),
|
|
id_orden VARCHAR(25),
|
|
afecta VARCHAR(2),
|
|
valor_material, valor_labor, valor_gasto DEC(30, 2),
|
|
usuario VARCHAR(50)
|
|
END RECORD,
|
|
nombre_mes CHAR(25)
|
|
|
|
# WHENEVER ERROR CONTINUE
|
|
|
|
OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21
|
|
|
|
OPEN FORM ipfmrp004 FROM "edfmrp080"
|
|
DISPLAY FORM ipfmrp004
|
|
|
|
DISPLAY "edprrp080" AT 4, 3
|
|
DISPLAY "Entrada Automatica Movimiento 44" AT 6, 18
|
|
|
|
INPUT BY NAME cod_mov,
|
|
fecha_inicial,
|
|
fecha_final,
|
|
entrada_d,
|
|
xdetalle,
|
|
afecta
|
|
BEFORE INPUT
|
|
CALL cmovimientos()
|
|
AFTER FIELD cod_mov
|
|
IF cod_mov IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD cod_mov
|
|
END IF
|
|
AFTER FIELD fecha_inicial
|
|
IF fecha_inicial IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_inicial
|
|
END IF
|
|
|
|
AFTER FIELD fecha_final
|
|
IF fecha_final IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha_final
|
|
END IF
|
|
LET numero_ent = 25
|
|
LET ano_act = YEAR(fecha_final)
|
|
LET acumulado.descrip_mov =
|
|
ui.ComboBox.forName("iptb00006.cod_mov").getTextOf(cod_mov)
|
|
IF fecha_final > TODAY THEN
|
|
CALL msg(57)
|
|
NEXT FIELD fecha_final
|
|
END IF
|
|
IF fecha_inicial > fecha_final THEN
|
|
CALL msg(57)
|
|
NEXT FIELD fecha_inicial
|
|
END IF
|
|
CALL prd(fecha_final, usuarios) RETURNING bandera
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
NEXT FIELD fecha_final
|
|
END IF
|
|
|
|
CALL controlNumericoED(
|
|
numero_ent, fecha_final, NULL)
|
|
RETURNING entrada_d
|
|
|
|
DISPLAY BY NAME entrada_d
|
|
|
|
SELECT a.descrip
|
|
INTO nombre_mes
|
|
FROM mestable a
|
|
WHERE a.mes = MONTH(fecha_final)
|
|
|
|
LET xdetalle =
|
|
'PARA REGISTRAR MOV ',
|
|
acumulado.descrip_mov CLIPPED,
|
|
' DEL MES DE ',
|
|
nombre_mes CLIPPED,
|
|
' DEL ',
|
|
YEAR(fecha_final)
|
|
LET numero_ent = "25"
|
|
LET p_ano = YEAR(fecha_inicial)
|
|
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
CALL msg(2)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
IF fecha_final > TODAY THEN
|
|
CALL msg(57)
|
|
NEXT FIELD fecha_final
|
|
END IF
|
|
IF fecha_inicial > fecha_final THEN
|
|
CALL msg(57)
|
|
NEXT FIELD fecha_inicial
|
|
END IF
|
|
|
|
CALL controlNumericoED(
|
|
numero_ent, fecha_final, NULL)
|
|
RETURNING entrada_d
|
|
|
|
DISPLAY BY NAME entrada_d
|
|
|
|
IF afecta = "SI" THEN
|
|
CALL prd(fecha_final, usuarios) RETURNING bandera
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
NEXT FIELD fecha_inicial
|
|
END IF
|
|
|
|
END IF
|
|
|
|
END INPUT
|
|
# ORIGINALMENTE TENIA EN EL QUERY LA COLUMNA f.cuenta_costo, pero con un analisis debio cambiar a
|
|
# k.cuenta_imp_costo
|
|
LET select_ac =
|
|
"SELECT c.cod_mov,c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec, ",
|
|
" SUM(c.cantidad_2),e.descrip_esp,AVG(d.material),AVG(d.labor),AVG(d.gastos), ",
|
|
" e.cod_cia,f.descripcion,f.cuenta_no,k.cuenta_1,k.cuenta_2,k.cuenta_3,k.cuenta_imp_material, ",
|
|
" ISNULL(c.departamento,0),ISNULL(x.nom_dpto,'SIN DEPARTAMENTO'),k.descrip_mov ",
|
|
"FROM iptb00006 c LEFT OUTER JOIN adtb00001 x ON c.departamento = x.departamento LEFT OUTER JOIN iptb00004 d ON c.cod_n = d.cod_n AND c.cod_grupo = d.cod_grupo AND ",
|
|
" c.cod_tipo = d.cod_tipo AND c.cod_sec = d.cod_sec and d.ano = ? and d.mes_fin = 12 ",
|
|
",iptb00002 e,iptb00022 f,iptb00005 k ",
|
|
"WHERE c.fecha between ? and ? ",
|
|
" AND c.cod_n = e.cod_n and c.cod_grupo =e.cod_grupo AND c.cod_tipo = e.cod_tipo AND ",
|
|
" c.cod_sec = e.cod_sec ",
|
|
" AND e.cod_cia = f.cod_cia and c.cod_mov = k.cod_mov ",
|
|
" AND c.status_t is NULL and c.cod_mov = ",
|
|
cod_mov, #" c.cod_mov = 44 ",
|
|
# " AND c.departamento = 2407 ",
|
|
"GROUP BY c.cod_mov,c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,e.descrip_esp,e.cod_cia,f.descripcion,c.departamento,x.nom_dpto, ",
|
|
" k.cuenta_1,k.cuenta_2,k.cuenta_3,k.cuenta_imp_material,f.cuenta_no,k.descrip_mov ",
|
|
"HAVING SUM(c.cantidad_2) <> 0 ",
|
|
"ORDER BY e.cod_cia,c.departamento,c.cod_n "
|
|
|
|
DISPLAY "<< Estoy Buscando Acumulado Del Periodo Dado >>"
|
|
AT 19, 14
|
|
ATTRIBUTE(REVERSE, BOLD)
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
PREPARE busca_ant FROM select_ac
|
|
DECLARE actual CURSOR FOR busca_ant
|
|
OPEN actual USING ano_act, fecha_inicial, fecha_final
|
|
|
|
LET idx = 1
|
|
LET acumulado.nombre_Cia = p_compania.nombre
|
|
|
|
CALL controlNumericoED(
|
|
numero_ent, fecha_final, usuarios)
|
|
RETURNING entrada_d
|
|
DISPLAY "entrada real: ", entrada_d
|
|
|
|
DISPLAY BY NAME entrada_d
|
|
|
|
FOREACH actual INTO acumulado_ac.*
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
IF idx = 1 THEN
|
|
CALL seleccionarsalida() RETURNING r_output
|
|
# CALL configureoutput(r_output) RETURNING handler
|
|
LET r_filename = "edprrp080m.4rp"
|
|
LET preview = 1
|
|
|
|
IF fgl_report_loadCurrentSettings(
|
|
r_filename) THEN -- load the .4rp file
|
|
|
|
CALL fgl_report_selectDevice(r_output) -- changing default
|
|
CALL fgl_report_selectPreview(preview) -- changing default
|
|
LET handler =
|
|
fgl_report_commitCurrentSettings() -- commit changes
|
|
START REPORT opera TO XML HANDLER HANDLER
|
|
END IF
|
|
END IF
|
|
LET idx = idx + 1
|
|
LET acumulado.consumo = acumulado_ac.consumo
|
|
LET acumulado.cod_mov = acumulado_ac.cod_mov
|
|
|
|
# Buscando Los Costos de Los Materiales
|
|
LET acumulado.descrip_esp = NULL
|
|
LET acumulado.unidad_med = NULL
|
|
LET acumulado.cod_cia = NULL
|
|
LET acumulado.descripcion_origen = NULL
|
|
LET acumulado.detalle = NULL
|
|
LET acumulado.descrip_mov = NULL
|
|
|
|
LET acumulado.material = 0
|
|
LET acumulado.labor = 0
|
|
LET acumulado.gastos = 0
|
|
|
|
LET acumulado.descripcion_origen = acumulado_ac.descrip_cia
|
|
LET acumulado.cod_cia = acumulado_ac.cod_cia
|
|
LET acumulado.descrip_esp = acumulado_ac.descripcion
|
|
LET acumulado.material = acumulado_ac.material
|
|
LET acumulado.labor = acumulado_ac.labor
|
|
LET acumulado.gastos = acumulado_ac.gasto
|
|
LET acumulado.valor_material =
|
|
acumulado_ac.material * acumulado_ac.consumo
|
|
LET acumulado.valor_labor = acumulado_ac.labor * acumulado_ac.consumo
|
|
LET acumulado.valor_gasto = acumulado_ac.gasto * acumulado_ac.consumo
|
|
LET acumulado.descrip_mov = acumulado_ac.descripcion_mov
|
|
|
|
LET acumulado.cuenta_origen = acumulado_ac.cuenta_origen
|
|
LET acumulado.usuario = usuarios
|
|
|
|
LET acumulado.departamento = acumulado_ac.departamento
|
|
LET acumulado.descripcion_depto = acumulado_ac.descripcion_depto
|
|
|
|
LET acumulado.cuenta_material = acumulado_ac.cuenta_1
|
|
LET acumulado.cuenta_labor = acumulado_ac.cuenta_2
|
|
LET acumulado.cuenta_gasto = acumulado_ac.cuenta_3
|
|
# LET acumulado.cuenta_imp_material = acumulado_ac.cuenta_imp_material
|
|
LET acumulado.entrada_d = entrada_d
|
|
IF acumulado.cod_cia = 3 OR acumulado.cod_cia = 2 THEN
|
|
LET acumulado.cuenta_material = acumulado_ac.cuenta_imp_material
|
|
LET acumulado.cuenta_imp_material = NULL
|
|
END IF
|
|
LET acumulado.cod_n = acumulado_ac.cod_n
|
|
LET acumulado.cod_grupo = acumulado_ac.cod_grupo
|
|
LET acumulado.cod_tipo = acumulado_ac.cod_tipo
|
|
LET acumulado.cod_sec = acumulado_ac.cod_sec
|
|
LET acumulado.detalle = xdetalle
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
OUTPUT TO REPORT opera(acumulado.*)
|
|
|
|
END FOREACH
|
|
IF idx > 1 THEN
|
|
FINISH REPORT opera
|
|
ELSE
|
|
CALL fgl_winmessage(
|
|
"INFO", "NO EXISTEN INFORMACIONES CON ESTA CONDICION", "INFO")
|
|
RETURN
|
|
END IF
|
|
PREPARE busca_ant1 FROM select_ac
|
|
DECLARE actual1 CURSOR FOR busca_ant1
|
|
OPEN actual1 USING ano_act, fecha_inicial, fecha_final
|
|
LET idx = 1
|
|
|
|
FOREACH actual1 INTO acumulado_ac.*
|
|
|
|
IF idx = 1 THEN
|
|
BEGIN WORK
|
|
LET r_filename = "edprrp080.4rp"
|
|
#LET r_output = "SVG"
|
|
LET preview = 1
|
|
|
|
IF fgl_report_loadCurrentSettings(
|
|
r_filename) THEN -- load the .4rp file
|
|
|
|
CALL fgl_report_selectDevice(r_output) -- changing default
|
|
CALL fgl_report_selectPreview(preview) -- changing default
|
|
LET handler =
|
|
fgl_report_commitCurrentSettings() -- commit changes
|
|
|
|
START REPORT entrada TO XML HANDLER HANDLER
|
|
END IF
|
|
END IF
|
|
LET idx = idx + 1
|
|
LET acumulado.consumo = acumulado_ac.consumo
|
|
LET acumulado.cod_mov = acumulado_ac.cod_mov
|
|
|
|
# Buscando Los Costos de Los Materiales
|
|
LET acumulado.descrip_esp = NULL
|
|
LET acumulado.unidad_med = NULL
|
|
LET acumulado.cod_cia = NULL
|
|
LET acumulado.descripcion_origen = NULL
|
|
LET acumulado.detalle = NULL
|
|
|
|
LET acumulado.material = 0
|
|
LET acumulado.labor = 0
|
|
LET acumulado.gastos = 0
|
|
|
|
LET acumulado.descripcion_origen = acumulado_ac.descrip_cia
|
|
LET acumulado.cod_cia = acumulado_ac.cod_cia
|
|
LET acumulado.descrip_esp = acumulado_ac.descripcion
|
|
LET acumulado.material = acumulado_ac.material
|
|
LET acumulado.labor = acumulado_ac.labor
|
|
LET acumulado.gastos = acumulado_ac.gasto
|
|
LET acumulado.id_orden =
|
|
acumulado_ac.cuenta_origen CLIPPED,
|
|
'-',
|
|
acumulado_ac.cuenta_1 CLIPPED,
|
|
'-',
|
|
acumulado_ac.departamento USING "&&&&"
|
|
|
|
LET acumulado.valor_material =
|
|
acumulado_ac.material * acumulado_ac.consumo
|
|
LET acumulado.valor_labor = acumulado_ac.labor * acumulado_ac.consumo
|
|
LET acumulado.valor_gasto = acumulado_ac.gasto * acumulado_ac.consumo
|
|
|
|
LET acumulado.cuenta_origen = acumulado_ac.cuenta_origen
|
|
|
|
LET acumulado.departamento = acumulado_ac.departamento
|
|
|
|
LET acumulado.cuenta_material = acumulado_ac.cuenta_1
|
|
LET acumulado.cuenta_labor = acumulado_ac.cuenta_2
|
|
LET acumulado.cuenta_gasto = acumulado_ac.cuenta_3
|
|
LET acumulado.cuenta_imp_material = acumulado_ac.cuenta_imp_material
|
|
|
|
LET acumulado.entrada_d = entrada_d
|
|
IF acumulado.cod_cia = 3 THEN
|
|
LET acumulado.cuenta_material = acumulado.cuenta_imp_material
|
|
|
|
END IF
|
|
LET acumulado.cod_n = acumulado_ac.cod_n
|
|
LET acumulado.cod_grupo = acumulado_ac.cod_grupo
|
|
LET acumulado.cod_tipo = acumulado_ac.cod_tipo
|
|
LET acumulado.cod_sec = acumulado_ac.cod_sec
|
|
LET acumulado.detalle = xdetalle
|
|
LET acumulado.afecta = afecta
|
|
|
|
OUTPUT TO REPORT entrada(acumulado.*, usuarios)
|
|
|
|
END FOREACH
|
|
IF idx > 1 THEN
|
|
FINISH REPORT entrada
|
|
|
|
IF NOT verificaCuadre(entrada_d) THEN
|
|
CALL fgl_winmessage(
|
|
"Info", "Entrada descuadrada, no actualice entrada", "Info")
|
|
ROLLBACK WORK
|
|
ELSE
|
|
COMMIT WORK
|
|
END IF
|
|
END IF
|
|
|
|
END FUNCTION
|
|
|
|
REPORT opera(x)
|
|
DEFINE
|
|
x RECORD
|
|
cod_cia LIKE iptb00002.cod_cia,
|
|
cod_n LIKE iptb00002.cod_n,
|
|
cod_grupo LIKE iptb00002.cod_grupo,
|
|
cod_tipo LIKE iptb00002.cod_tipo,
|
|
cod_sec LIKE iptb00002.cod_sec,
|
|
descrip_esp CHAR(100),
|
|
descrip_ing LIKE iptb00002.descrip_ing,
|
|
unidad_med LIKE iptb00002.unidad_med,
|
|
cod_mov LIKE iptb00006.cod_mov,
|
|
descrip_mov LIKE iptb00005.descrip_mov,
|
|
consumo DECIMAL(30, 5),
|
|
material DECIMAL(30, 3),
|
|
labor DECIMAL(30, 3),
|
|
gastos DECIMAL(30, 3),
|
|
descripcion_bodega VARCHAR(30),
|
|
descripcion_origen VARCHAR(30),
|
|
cuenta_material VARCHAR(14),
|
|
cuenta_labor VARCHAR(14),
|
|
cuenta_gasto VARCHAR(14),
|
|
cuenta_imp_material VARCHAR(14),
|
|
cuenta_origen VARCHAR(14),
|
|
detalle VARCHAR(80),
|
|
entrada_d VARCHAR(25),
|
|
nombre_Cia VARCHAR(100),
|
|
departamento INT,
|
|
descripcion_depto VARCHAR(80),
|
|
id_orden VARCHAR(25),
|
|
afecta VARCHAR(2),
|
|
valor_material, valor_labor, valor_gasto DEC(30, 2),
|
|
usuario VARCHAR(50)
|
|
END RECORD,
|
|
producto VARCHAR(200)
|
|
|
|
DEFINE hora CHAR(25)
|
|
|
|
DEFINE
|
|
total_costo_st,
|
|
total_material,
|
|
total_labor,
|
|
total_gasto,
|
|
total_costo,
|
|
total_cantidad,
|
|
tt_total_costo_st,
|
|
t_total_costo_st,
|
|
t_cantidad,
|
|
tt_cantidad,
|
|
ttt_cantidad,
|
|
tt_valor_material,
|
|
tt_valor_labor,
|
|
tt_valor_gasto,
|
|
ttt_valor_material,
|
|
ttt_valor_labor,
|
|
ttt_valor_gasto,
|
|
tttt_valor_material,
|
|
tttt_valor_labor,
|
|
tttt_valor_gasto
|
|
DECIMAL(30, 2),
|
|
descrip_nivel CHAR(15)
|
|
|
|
ORDER BY x.cod_cia, x.departamento, x.cod_n
|
|
|
|
FORMAT
|
|
|
|
FIRST PAGE HEADER
|
|
LET hora = TODAY, TIME
|
|
LET total_material = 0
|
|
LET total_labor = 0
|
|
|
|
BEFORE GROUP OF x.cod_cia
|
|
LET x.descripcion_origen =
|
|
x.cuenta_imp_material CLIPPED, " ", x.descripcion_origen
|
|
PRINTX x.descripcion_origen, x.cuenta_origen
|
|
LET tt_valor_material = 0
|
|
LET tt_valor_labor = 0
|
|
LET tt_valor_gasto = 0
|
|
LET t_cantidad = 0
|
|
|
|
BEFORE GROUP OF x.departamento
|
|
PRINTX x.departamento, x.descripcion_depto
|
|
LET ttt_valor_material = 0
|
|
LET ttt_valor_labor = 0
|
|
LET ttt_valor_gasto = 0
|
|
LET tt_cantidad = 0
|
|
BEFORE GROUP OF x.cod_n
|
|
|
|
LET tttt_valor_material = 0
|
|
LET tttt_valor_labor = 0
|
|
LET tttt_valor_gasto = 0
|
|
LET ttt_cantidad = 0
|
|
|
|
ON EVERY ROW
|
|
LET t_cantidad = t_cantidad + x.consumo
|
|
LET total_costo_st = 0
|
|
LET total_costo_st = (x.material + x.labor + x.gastos) * x.consumo
|
|
|
|
LET t_total_costo_st = t_total_costo_st + total_costo_st
|
|
LET producto =
|
|
x.cod_n USING "&&&&",
|
|
"-",
|
|
x.cod_grupo USING "&&&&",
|
|
"-",
|
|
x.cod_tipo USING "&&&&",
|
|
"-",
|
|
x.cod_sec USING "&&&&&&",
|
|
" ",
|
|
x.descrip_esp
|
|
|
|
PRINTX codigo,
|
|
x.consumo,
|
|
x.material,
|
|
x.valor_material,
|
|
x.labor,
|
|
x.valor_labor,
|
|
x.gastos,
|
|
x.valor_gasto,
|
|
total_costo_st,
|
|
producto,
|
|
p_compania.nombre,
|
|
hora,
|
|
fecha_inicial,
|
|
fecha_final,
|
|
x.descrip_mov
|
|
|
|
LET tt_cantidad = tt_cantidad + x.consumo
|
|
|
|
LET ttt_valor_material = ttt_valor_material + x.valor_material
|
|
LET ttt_valor_labor = ttt_valor_labor + x.valor_labor
|
|
LET ttt_valor_gasto = ttt_valor_gasto + x.valor_gasto
|
|
|
|
AFTER GROUP OF x.cod_n
|
|
LET descrip_nivel = NULL
|
|
SELECT a.producto
|
|
INTO descrip_nivel
|
|
FROM iptb00020 a
|
|
WHERE a.cod_n = x.cod_n
|
|
|
|
LET ttt_cantidad = GROUP SUM(x.consumo)
|
|
LET tttt_valor_material = GROUP SUM(x.valor_material)
|
|
LET tttt_valor_labor = GROUP SUM(x.valor_labor)
|
|
LET tttt_valor_gasto = GROUP SUM(x.valor_gasto)
|
|
|
|
PRINTX descrip_nivel,
|
|
ttt_cantidad,
|
|
tttt_valor_material,
|
|
tttt_valor_labor,
|
|
tttt_valor_gasto,
|
|
t_total_costo_st
|
|
|
|
LET tt_total_costo_st = t_total_costo_st + tt_total_costo_st
|
|
AFTER GROUP OF x.departamento
|
|
|
|
LET tt_cantidad = GROUP SUM(x.consumo)
|
|
LET ttt_valor_material = GROUP SUM(x.valor_material)
|
|
LET ttt_valor_labor = GROUP SUM(x.valor_labor)
|
|
LET ttt_valor_gasto = GROUP SUM(x.valor_gasto)
|
|
LET t_total_costo_st =
|
|
ttt_valor_material + ttt_valor_labor + ttt_valor_gasto
|
|
PRINTX x.departamento,
|
|
x.descripcion_depto,
|
|
tt_cantidad,
|
|
ttt_valor_material,
|
|
ttt_valor_labor,
|
|
ttt_valor_gasto,
|
|
t_total_costo_st
|
|
|
|
AFTER GROUP OF x.cod_cia
|
|
|
|
LET t_cantidad = GROUP SUM(x.consumo)
|
|
LET tt_valor_material = GROUP SUM(x.valor_material)
|
|
LET tt_valor_labor = GROUP SUM(x.valor_labor)
|
|
LET tt_valor_gasto = GROUP SUM(x.valor_gasto)
|
|
LET t_total_costo_st =
|
|
tt_valor_material + tt_valor_labor + tt_valor_gasto
|
|
|
|
PRINTX x.descripcion_origen,
|
|
t_cantidad,
|
|
tt_valor_material,
|
|
tt_valor_labor,
|
|
tt_valor_gasto,
|
|
t_total_costo_st
|
|
ON LAST ROW
|
|
LET total_material = SUM(x.valor_material)
|
|
LET total_labor = SUM(x.valor_labor)
|
|
LET total_gasto = SUM(x.valor_gasto)
|
|
LET total_costo = total_material + total_labor + total_gasto
|
|
LET total_cantidad = SUM(x.consumo)
|
|
|
|
PRINTX total_material,
|
|
total_labor,
|
|
total_gasto,
|
|
total_costo,
|
|
total_cantidad
|
|
|
|
END REPORT
|