Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user