Files
MBS/PROYECTO/ipdir/GST_FGL_CE_TX134.4gl
jpegueroandClaude Sonnet 5 b6085d4140 Mueve ipdir (Productos Terminados) de PROYECTOS a PROYECTO
Instruccion de Johnny: todos los directorios de fuentes de inventario
deben migrarse de la carpeta temporal PROYECTOS a la carpeta real
PROYECTO, ya que PROYECTOS sera eliminada.

Se elimino tambien un archivo suelto sin relacion llamado "ipdir"
que existia en PROYECTO (del commit inicial) y bloqueaba el nombre
de la carpeta.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 09:29:01 -04:00

327 lines
10 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : IPpRRP010
OBJETIVO : Detallado por Tipo de Movimiento
PROGRAMADOR : Ing. Juan Fco. Soto
FECHA REALIZACION : Abril 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "ipprgb000.4gl"
MAIN
DEFER INTERRUPT
SELECT * INTO p_companias.* FROM companias
CALL ipprrp010()
END MAIN
FUNCTION ipprrp010()
DEFINE ventas CHAR(1)
DEFINE salir CHAR(1)
DEFINE select_ac,select_ant,select_p CHAR(1000)
DEFINE idx_ac,ano,idx_a,idx_c SMALLINT
DEFINE ano_act,c_ano CHAR(4)
DEFINE fecha_2 CHAR(8)
DEFINE fecha_ini_per CHAR(8)
DEFINE acumulado_ac RECORD
cod_mov LIKE iptb00005.cod_mov,
fecha DATE,
num_doc INTEGER,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_Tipo SMALLINT,
cod_Sec SMALLINT,
cantidad DECIMAL(12,5),
descrip_esp CHAR(30),
unidad_med CHAR(3)
END RECORD
DEFINE costos RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_Tipo SMALLINT,
cod_Sec SMALLINT,
mes CHAR(2),
material LIKE iptb00004.material,
labor LIKE iptb00004.labor,
gasto_ind LIKE iptb00004.gastos
END RECORD
DEFINE acumulado RECORD
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 LIKE iptb00002.descrip_esp,
unidad_med LIKE iptb00002.unidad_med,
cod_mov LIKE iptb00006.cod_mov,
descrip_mov LIKE iptb00005.descrip_mov,
consumo DECIMAL(12,5),
costo DECIMAL(12,5),
num_doc LIKE iptb00006.num_doc,
fecha DATE
END RECORD
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM ipfmrp010 FROM "ipfmrp010"
DISPLAY FORM ipfmrp010
CALL pantalla()
DISPLAY "ipprrp010" AT 4,3
DISPLAY "Operaciones Por Movimientos Al Standard" AT 6,22
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME datos_cons.fech_in,datos_cons.fech_fi,ventas
ON KEY (F2)
RUN "copy pantalla.bat impresion.bat"
DISPLAY "ACTIVACION REPORTE POR WORDPAD" AT 20,15 ATTRIBUTE(RED)
AFTER FIELD fech_in
IF datos_cons.fech_in IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fech_in
END IF
AFTER FIELD fech_fi
IF datos_cons.fech_fi IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fech_fi
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
CONSTRUCT criterio ON c.cod_mov,c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec
FROM cod_mov,cod_n,cod_grupo,cod_tipo,cod_sec
ON KEY (F2)
RUN "copy pantalla.bat impresion.bat"
DISPLAY "ACTIVACION REPORTE POR WORDPAD" AT 20,15 ATTRIBUTE(RED)
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
LET select_ac =
"SELECT c.cod_mov,c.fecha,c.num_doc,c.cod_n,c.cod_grupo,c.cod_tipo, ",
" c.cod_sec, c.cantidad_2,a.descrip_esp,a.unidad_med ",
"FROM iptb00006 c,iptb00002 a ",
"WHERE ",criterio clipped," and c.fecha between ? and ? and ",
" c.cod_n = a.cod_n and c.cod_grupo = a.cod_grupo and ",
" c.cod_tipo = a.cod_tipo and c.cod_sec = a.cod_sec and ",
" c.status_t is NULL AND c.cod_mov != 99 ",
"ORDER BY 3,4,5,6 "
DISPLAY "<< Estoy Buscando Documentos... Espere Por favor >>"
AT 19,14 ATTRIBUTE (REVERSE,BOLD)
PREPARE busca_ant FROM select_ac
DECLARE actual SCROLL CURSOR FOR busca_ant
OPEN actual USING datos_cons.fech_in,datos_cons.fech_fi
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DISPLAY " "
AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
START REPORT detalle TO "C:\\archivo"
LET idx_c = 1
LET idx_a = 1
LET idx_ac = 1
WHILE status != notfound
FETCH actual INTO acumulado_ac.*
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
LET acumulado.cod_mov = acumulado_ac.cod_mov
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.num_doc = acumulado_ac.num_doc
LET acumulado.fecha = acumulado_ac.fecha
LET acumulado.consumo = acumulado_ac.cantidad
LET acumulado.descrip_esp = acumulado_ac.descrip_esp
LET acumulado.unidad_med = acumulado_ac.unidad_med
# Buscando Los Costos de Los Materiales
SELECT MAX(d.material),MAX(d.labor),MAX(d.gastos)
INTO costos.material,costos.labor,costos.gasto_ind
FROM iptb00004 d
WHERE d.mes_fin = 12 AND d.ventas= "1" AND
d.status_t is null AND d.ano = year(datos_cons.fech_fi) and
d.cod_n = acumulado.cod_n AND d.cod_grupo= acumulado.cod_grupo AND
d.cod_tipo = acumulado.cod_tipo AND d.cod_sec = acumulado.cod_sec
LET acumulado.costo = costos.material+costos.labor+costos.gasto_ind
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
OUTPUT TO REPORT detalle(acumulado.*)
END WHILE
FINISH REPORT detalle
CLEAR SCREEN
RUN "impresion C:\\archivo"
RUN "copy printer2.bat impresion.bat"
END FUNCTION
REPORT detalle(x)
DEFINE x RECORD
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 LIKE iptb00002.descrip_esp,
unidad_med LIKE iptb00002.unidad_med,
cod_mov LIKE iptb00006.cod_mov,
descrip_mov LIKE iptb00005.descrip_mov,
consumo DECIMAL(12,5),
costo DECIMAL(12,5),
num_doc LIKE iptb00006.num_doc,
fecha DATE
END RECORD
DEFINE primera CHAR(1)
DEFINE c_ano1 char(4)
DEFINE negrillas_on CHAR(3)
DEFINE negrillas_off CHAR(3)
DEFINE doce,comp_on,comp_off CHAR(3)
DEFINE hora CHAR(5)
DEFINE total_p,total_m DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY x.cod_mov,x.num_doc
FORMAT
PAGE HEADER
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET hora = time
PRINT doce,negrillas_on
LET lj = (100 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, "ipprrp010",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 93, "Pag. ",pageno using "###"
PRINT COLUMN 28, " Sistema de Inventario de Productos Terminados",
COLUMN 93, today using "dd/mm/yyyy"
PRINT COLUMN 28, " Operacion por Tipo de Movimiento Al Standard",
COLUMN 96, hora
SKIP 1 LINES
PRINT COLUMN 2, "Desde ",datos_cons.fech_in using "dd/mm/yyyy",
COLUMN 21, "Hasta ", datos_cons.fech_fi using "dd/mm/yyyy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------"
PRINT COLUMN 77, "Material +"
PRINT COLUMN 77, "Labor +"
PRINT COLUMN 1, "Docto.",
COLUMN 8, "Fecha",
COLUMN 17, "Producto",
COLUMN 68, "Cantidad",
COLUMN 77, "Gasto ",
COLUMN 96, "Total"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------"
PRINT negrillas_off
BEFORE GROUP OF x.cod_mov
LET total_m = 0
SELECT descrip_mov INTO x.descrip_mov FROM iptb00005
WHERE cod_mov = x.cod_mov
PRINT negrillas_on
PRINT COLUMN 1, "Movimiento: ",x.cod_mov using "##"," ",
x.descrip_mov
PRINT negrillas_off
BEFORE GROUP OF x.num_doc
PRINT COLUMN 1, x.num_doc USING "######",
COLUMN 8, x.fecha USING "dd/mm/yyyy";
ON EVERY ROW
LET total_p = x.costo * x.consumo
IF total_p IS NULL THEN
LET total_p = 0
END IF
LET total_m = total_m + total_p
PRINT COLUMN 17, x.cod_n USING "&&","-",x.cod_grupo USING "&&","-",
x.cod_tipo USING "&&&","-",x.cod_sec USING "&&&","-",
" ",x.descrip_esp CLIPPED,
COLUMN 63, x.consumo USING "#,###,###.###",
COLUMN 77, x.costo USING "##,###.###",
COLUMN 88, total_p USING "##,###,###.##"
AFTER GROUP OF x.num_doc
SKIP 1 LINE
AFTER GROUP OF x.cod_mov
PRINT COLUMN 88, "-------------"
PRINT COLUMN 50, "Total ---->",
COLUMN 88, total_m USING "##,###,###.##"
SKIP TO TOP OF PAGE
ON LAST ROW
PRINT ASCII 27, ASCII 80
END REPORT