Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md

This commit is contained in:
2026-08-18 20:59:52 -04:00
commit 454973e269
5978 changed files with 2664094 additions and 0 deletions
+352
View File
@@ -0,0 +1,352 @@
GLOBALS
"inprgb000.4gl"
DEFINE nombre,apellido CHAR(30),
xinserta CHAR(1),
kprograma varchar(20),
xdescrip_mov VARCHAR(50)
FUNCTION reimprime(xprograma)
DEFINE xprograma CHAR(20),
insertamedida CHAR(1)
IF xprograma = 'inprmt046' THEN
CONSTRUCT criterio ON a.cod_mov,a.num_doc,a.fecha,a.depto_a,a.bodega FROM
cod_mov,num_doc,fecha,departamento,bodega
BEFORE CONSTRUCT
CALL cincodmov()
CALL busca_departamento()
CALL bodegas('1')
AFTER CONSTRUCT
IF INT_FLAG THEN
LET INT_FLAG = FALSE
CALL msg(2)
EXIT PROGRAM
END IF
END CONSTRUCT
LET selec = "SELECT distinct b.cod_mov,b.descrip_mov,a.num_doc,",
" CONVERT(CHAR(10),a.fecha,103),a.depto_a,a.num_emp,a.bodega FROM intb00006 a,intb00005 b ",
" WHERE ",criterio CLIPPED," AND ",
" a.cod_mov = b.cod_mov AND a.status_t IS NULL "
LET xinserta = insertamedida
ELSE
CONSTRUCT criterio ON a.num_doc,a.fecha,a.depto_a FROM
num_doc,fecha,depto_a
LET selec = "SELECT distinct b.cod_mov,b.descrip_mov,a.num_doc,",
" CONVERT(CHAR(10),a.fecha,103),a.depto_a,a.num_emp,a.bodega FROM intb00006 a,intb00005 b ",
" WHERE ",criterio CLIPPED," AND a.cod_mov =36 and ",
" a.cod_mov = b.cod_mov AND a.status_t IS NULL "
LET xinserta = 'N'
END IF
PREPARE breimprime FROM selec
DECLARE bdocumento SCROLL CURSOR FOR breimprime
OPEN bdocumento
FETCH FIRST bdocumento INTO otros_mov.cod_mov,xdescrip_mov,
otros_mov.num_doc,otros_mov.fecha,
datos1.depto_a,pnum_emp,otros_mov.bodega
IF STATUS = NOTFOUND THEN
CALL msg(3)
RETURN
END IF
LET kprograma = xprograma
CALL busca_info()
MENU "NAVEGACION:"
COMMAND "Siguiente" "Busca el siguiente documento"
FETCH NEXT bdocumento INTO otros_mov.cod_mov,xdescrip_mov,
otros_mov.num_doc,otros_mov.fecha,
datos1.depto_a,pnum_emp,otros_mov.bodega
CALL busca_info()
COMMAND "Primero" "Busca el siguiente documento"
FETCH FIRST bdocumento INTO otros_mov.cod_mov,xdescrip_mov,
otros_mov.num_doc,otros_mov.fecha,
datos1.depto_a,pnum_emp,otros_mov.bodega
CALL busca_info()
COMMAND "Anterior" "Busca el Registrosiguiente documento"
FETCH PREVIOUS bdocumento INTO otros_mov.cod_mov,xdescrip_mov,
otros_mov.num_doc,otros_mov.fecha,
datos1.depto_a,pnum_emp,otros_mov.bodega
CALL busca_info()
COMMAND "Ultimo" "Busca el Ultimo Documento"
FETCH LAST bdocumento INTO otros_mov.cod_mov,xdescrip_mov,
otros_mov.num_doc,otros_mov.fecha,
datos1.depto_a,pnum_emp,otros_mov.bodega
CALL busca_info()
COMMAND KEY("T") "reTornar" "Salir de busqueda"
EXIT MENU
END MENU
END FUNCTION
FUNCTION busca_info()
SELECT UNIQUE nom_dpto INTO nombre_d FROM adtb00001 a
WHERE a.departamento = datos1.depto_a and
a.status_t is NULL
LET nombre =NULL
LET apellido = NULL
SELECT a.nom1_emp,a.apell1_emp INTO nombre,apellido FROM adtb00003 a
WHERE a.num_Emp = pnum_emp
DISPLAY BY NAME otros_mov.cod_mov,otros_mov.num_doc,
otros_mov.fecha,nombre,apellido
DISPLAY datos1.depto_a TO departamento
DECLARE busca CURSOR FOR
SELECT a.cod_n,a.cod_Grupo,a.cod_tipo,a.cod_Sec,a.cantidad_2, b.unidad_med, b.descrip_Esp,NULL,
a.maquina, a.clasf_bloque
FROM intb00006 a,intb00001 b
WHERE a.num_Doc = otros_mov.num_doc AND
a.cod_mov = otros_mov.cod_mov AND
a.cod_n = b.cod_n AND
a.cod_grupo = b.cod_grupo AND
a.cod_tipo = b.cod_tipo AND
a.cod_Sec = b.cod_Sec AND
a.bodega = otros_mov.bodega
LET idx = 1
IF kprograma = 'inprmt046' THEN
FOREACH busca INTO movi2[idx].cod_n,movi2[idx].cod_grupo,
movi2[idx].cod_tipo,movi2[idx].cod_sec,
movi2[idx].cantidad_2, movi2[idx].unidad_med,
movi2[idx].descrip_esp, movi2[idx].existencia,
movi2[idx].maquina, movi2[idx].clasf_bloque
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
DISPLAY ARRAY movi2 TO s_movi1.*
BEFORE DISPLAY
CALL maquinaria()
CALL clasf_bloque()
ON ACTION rimprimir
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
doble_on,doble_off,comp_on,comp_off,
doce,normal,archivo,copia
# CALL configureoutput('PDF') RETURNING handler
# START REPORT formu46 TO XML HANDLER handler
START REPORT formu46 TO archivo
FOR idx = 1 TO movi2.getLength()
OUTPUT TO REPORT formu46(otros_mov.num_doc,otros_mov.fecha,
otros_mov.cod_mov,otros_mov.bodega,xdescrip_mov,
nombre_d,
movi2[idx].*)
END FOR
FINISH REPORT formu46
RUN imprime
END DISPLAY
{ ELSE
FOREACH busca INTO movi[idx].cod_n,movi[idx].cod_grupo,
movi[idx].cod_tipo,movi[idx].cod_sec,
movi[idx].descrip_esp,movi[idx].cantidad_2
LET idx = idx + 1
END FOREACH
DISPLAY ARRAY movi TO s_movi1.*
ON ACTION rimprimir
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
doble_on,doble_off,comp_on,comp_off,
doce,normal,archivo,copia
# CALL configureoutput('PDF') RETURNING HANDLER
# START REPORT formu36 TO XML HANDLER HANDLER
START REPORT formu36 TO archivo
FOR idx = 1 TO movi.getLength()
IF movi[idx].cod_n is not null and movi[idx].cod_grupo is not null and
movi[idx].cod_tipo is not null and movi[idx].cod_sec is not null THEN
LET movi[idx].cantidad_2 = movi[idx].cantidad_2 * -1
OUTPUT TO REPORT formu36(datos1.num_doc,datos1.fecha,
datos1.depto_a,datos1.nom_dpto,
movi[idx].*)
END IF
END FOR
FINISH REPORT formu36
RUN imprime
END DISPLAY
}
END IF
END FUNCTION
REPORT formu46(x,xnombre_d,z)
DEFINE x RECORD
num_doc LIKE iptb00006.num_doc,
fecha LIKE iptb00006.fecha,
cod_mov LIKE intb00005.cod_mov,
bodega SMALLINT,
descrip_mov CHAR(30)
END RECORD
DEFINE z RECORD
cod_n LIKE intb00003.cod_n,
cod_grupo LIKE intb00003.cod_grupo,
cod_tipo LIKE intb00003.cod_tipo,
cod_sec LIKE intb00003.cod_sec,
#cantidad_1 LIKE intb00006.cantidad_1,
cantidad_2 LIKE intb00006.cantidad_2,
unidad_med LIKE intb00001.unidad_med,
descrip_esp LIKE intb00001.descrip_esp,
existencia FLOAT,
maquina INT,
clasf_bloque INT
END RECORD,
xancho1,xlargo1,xespesor1,xancho2,xlargo2,xespesor2,xmedida1,xmedida2,
total_medida1,total_medida2 DEC(12,4),
xcodigo_bloque CHAR(12),xnombre_d CHAR(30),
titulo_bodega VARCHAR(60)
DEFINE doce,normal,doble,doble_of,negras,negras_off CHAR(2)
OUTPUT
LEFT MARGIN 0
ORDER BY x.num_doc,z.cod_sec
FORMAT
BEFORE GROUP OF x.num_doc
LET doble = ASCII 14
LET doble_of = ASCII 20
LET negras = ASCII 27, ASCII 69
LET negras_off = ASCII 27, ASCII 70
LET comp_on= ASCII 15
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 27, ASCII 80
PRINT comp_on
PRINT COLUMN 1, negras,doble,p_companias.nombre CLIPPED
PRINT COLUMN 71,"No. ",doble,x.num_doc using "<<<<<<"
PRINT COLUMN 30, x.cod_mov using "&&"," ",x.descrip_mov CLIPPED,
COLUMN 71, x.fecha using "dd/mm/yy"
PRINT COLUMN 1, "DEPARTAMENTO: ",datos1.depto_a," ",xnombre_d
PRINT COLUMN 1, "OPERADOR : ",pnum_emp,"-",nombre," ",apellido
# BUSCA BODEGA
SELECT ISNULL(a.descripcion,'NO TIENE') INTO titulo_bodega FROM intb00009 a WHERE a.cod_bodega = x.bodega
PRINT COLUMN 1,"BODEGA: ",titulo_bodega CLIPPED
PRINT COLUMN 1,
"------------------------------------------------------------------------------",
"---------------------------"
PRINT COLUMN 68, "CANTIDAD"
PRINT COLUMN 2,doble, "PRODUCTO",doble_of clipped,
COLUMN 61, "ENTREGADA",
COLUMN 76, "MAQUINA",
COLUMN 86, "CLASF.BLQ"
PRINT COLUMN 1,
"------------------------------------------------------------------------------",
"---------------------------"
SKIP 1 LINES
ON EVERY ROW
PRINT COLUMN 2, z.cod_n using "&","-",
COLUMN 4, z.cod_grupo using "&","-",
COLUMN 6, z.cod_tipo using "&&","-",
COLUMN 9, z.cod_sec using "&&&",
COLUMN 17, z.descrip_esp clipped," ",
z.unidad_med,
#COLUMN 63, z.cantidad_1 using "###,###,###.##",
COLUMN 63, z.cantidad_2 using "###,###.####",
COLUMN 76, z.maquina using "&&&&&&",
COLUMN 86, z.clasf_bloque using "&&&&&&&"
SELECT DISTINCT a.documento FROM intb00018 a WHERE a.documento = x.num_doc AND a.cod_mov = x.cod_mov AND a.bodega = x.bodega AND
a.cod_n = z.cod_n AND a.cod_grupo = z.cod_grupo AND a.cod_tipo = z.cod_tipo AND
a.cod_Sec = z.cod_sec
IF STATUS <> NOTFOUND THEN
PRINT COLUMN 2, "=========","========================================","==========================================="
PRINT COLUMN 2, " CODIGO "," MEDIDAS RECIBIDAS |"," MEDIDAS ENVIADAS |"
PRINT COLUMN 2, "=========","========================================","==========================================="
PRINT COLUMN 2, " ANCHO LARGO ESPES ",z.unidad_med," |"," ANCHO LARGO ESPES MEDIDA"
DECLARE busca_medida CURSOR FOR
SELECT a.codigo_bloque,a.ancho1,a.largo1,a.espesor1,a.medida1,
a.ancho2,a.largo2,a.espesor2,a.medida2
INTO xcodigo_bloque,xancho1,xlargo1,xespesor1,xmedida1,
xancho2,xlargo2,xespesor2,xmedida2
FROM intb00018 a
WHERE a.cod_n = z.cod_n and
a.cod_grupo = z.cod_grupo and
a.cod_tipo = z.cod_tipo and
a.cod_Sec = z.cod_Sec and
a.documento =x.num_doc and
a.cod_mov = x.cod_mov AND
a.bodega = x.bodega
LET total_medida1 = 0
LET total_medida2 = 0
FOREACH busca_medida
PRINT COLUMN 2,xcodigo_bloque," ",xancho1 USING "###.####", 2 spaces,
xlargo1 USING "###.####", 2 spaces,
xespesor1 USING "###.####", 2 spaces,
xmedida1 USING "#,###.####", 3 spaces,
xancho2 USING "###.####",2 spaces,
xlargo2 USING "###.####", 2 spaces,
xespesor2 USING "###.####", 2 spaces,
xmedida2 USING "#,###.####"
LET total_medida1 = xmedida1 + total_medida1
LET total_medida2 = xmedida2 + total_medida2
END FOREACH
PRINT COLUMN 45,"==========",
COLUMN 90,"=========="
PRINT COLUMN 45, total_medida1 USING "#,###.####",
COLUMN 90, total_medida2 USING "#,###.####"
END IF
PAGE TRAILER
PRINT COLUMN 1, "------------------",
COLUMN 22, "------------------",
COLUMN 45, "------------------",
COLUMN 65, "------------------"
PRINT COLUMN 5, "Entregado Por",
COLUMN 24, "Recibido Por",
COLUMN 48, "Aprobado Por",
COLUMN 68, "Aprobado Por"
PRINT normal
END REPORT
FUNCTION maquinaria()
DEFINE
kmaquina VARCHAR(14),
kdescripcion CHAR(75),
maquinas ui.ComboBox
LET maquinas = ui.combobox.forname("formonly.codigo")
DECLARE busca_maquinas1 CURSOR FOR
SELECT a.cod_maquina, a.descrip_maquina
FROM intb00059 a
ORDER BY a.cod_maquina
CALL maquinas.clear()
FOREACH busca_maquinas1 INTO kmaquina, kdescripcion
CALL maquinas.additem(kmaquina, kdescripcion)
END FOREACH
END FUNCTION