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
+287
View File
@@ -0,0 +1,287 @@
{
-------------------------------------------------------------------------------
PROGRAMA : IRPRRP011
OBJETIVO : Comparativo precio Std.-Ultima Compra
PROGRAMADOR : Ing. Juan Fco. Soto.
FECHA REALIZACION : Marzo 1, 1993.
-------------------------------------------------------------------------------
}
GLOBALS "irprgb000.4gl"
DEFINE mes CHAR(2)
DEFINE ano1,ano_c CHAR(4)
DEFINE p_mes,idx_ant,idx_cos,idx_act INTEGER
DEFINE opcion1,salir,primera CHAR(1)
DEFINE balance_in DECIMAL(12,2)
MAIN
DEFER INTERRUPT
SELECT * INTO p_companias.* FROM companias
CALL irprrp11()
END MAIN
FUNCTION irprrp11()
DEFINE existe RECORD
cod_n LIKE intb00001.cod_n,
cod_grupo LIKE intb00001.cod_grupo,
cod_tipo LIKE intb00001.cod_tipo,
cod_sec LIKE intb00001.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
unidad_med LIKE intb00001.unidad_med,
fecha DATE,
costo LIKE intb00013.costo_st,
tipo CHAR(2),
num_oc INTEGER,
cod_sp INTEGER,
cod_sp_sec INTEGER,
nom_sp CHAR(30),
cantidad DECIMAL(12,2),
precio DECIMAL(12,2)
END RECORD
DEFINE select_cost,select_act,select_ant CHAR(1000)
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM infmrp11 FROM "irfmrp005"
DISPLAY FORM infmrp11
CALL pantalla()
DISPLAY "irprrp011" AT 4,3
DISPLAY "Comparativo Precio Std-Ultima Compra" AT 6,23
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
LET datos_cons.fech_fi = TODAY
LET ano_c = YEAR(datos_cons.fech_fi) USING "&&&&"
LET p_mes = MONTH(datos_cons.fech_fi)
CONSTRUCT criterio ON d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec
FROM cod_n,cod_grupo,cod_tipo,cod_sec
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
PROMPT "Deseas Igualar el costo Standard al ultimo precio? [S/N]..."
FOR CHAR opcion1
LET opcion1 = UPSHIFT(opcion1)
IF opcion1 IS NULL THEN
LET opcion1 = "N"
END IF
LET select_cost =
"SELECT d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec,c.descrip_esp, ",
" c.unidad_med,MAX(a.fech_oc) ",
"FROM cotb00014 a,cotb00015 d,intb00001 c ",
"WHERE a.tipo = d.tipo AND a.num_oc = d.num_oc AND ",criterio CLIPPED,
" AND d.cod_n = c.cod_n and d.cod_grupo=c.cod_grupo and ",
" d.cod_tipo = c.cod_tipo and d.cod_sec = c.cod_sec and ",
" d.status_t is null ",
"GROUP BY 1,2,3,4,5,6 ORDER BY 1,2,3,4 "
DISPLAY "<< Estoy Buscando Los Costos Actuales >>"
AT 19,14 ATTRIBUTE (REVERSE,BOLD)
PREPARE busca_costo FROM select_cost
DECLARE material_costo SCROLL CURSOR FOR busca_costo
OPEN material_costo
DISPLAY " "
AT 19,14
START REPORT reporte_11 TO "C:\\archivo"
DISPLAY "<< Reporte Generandose.. Espere Por Favor"
AT 19,14 ATTRIBUTE (REVERSE,BOLD)
WHILE status != notfound
FETCH material_costo INTO existe.*
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 existe.num_oc = 0
LET existe.cod_sp = NULL
LET existe.cod_sp_sec =NULL
LET existe.nom_sp = NULL
LET existe.cantidad = 0
LET existe.precio = 0
LET existe.costo = 0
SELECT MAX(b.costo_st) INTO existe.costo
FROM irtb00013 b
WHERE b.cod_n = existe.cod_n AND b.cod_grupo = existe.cod_grupo AND
b.cod_tipo=existe.cod_tipo AND b.cod_sec = existe.cod_sec AND
b.mes_ini <= p_mes AND b.mes_fin >= p_mes AND b.ano = ano_c
IF existe.costo IS NULL THEN
LET existe.costo = 0
END IF
SELECT UNIQUE MAX(b.num_oc) INTO existe.num_oc
FROM cotb00015 a,cotb00014 b
WHERE a.num_oc = b.num_oc AND a.tipo = b.tipo AND
a.cod_n = existe.cod_n AND a.cod_grupo = existe.cod_grupo AND
a.cod_tipo=existe.cod_tipo AND a.cod_sec = existe.cod_sec AND
b.fech_oc = existe.fecha AND a.status_t IS NULL
DISPLAY existe.num_oc," ",existe.fecha," ",existe.cod_n,
existe.cod_grupo,existe.cod_tipo,existe.cod_sec AT 14,10
SELECT UNIQUE MAX(b.cod_sp),MAX(b.cod_sp_sec),MAX(c.nom_sp),
MAX(a.cantidad),MAX(a.precio)
INTO existe.cod_sp,existe.cod_sp_sec,existe.nom_sp,existe.cantidad,
existe.precio
FROM cotb00001 c,cotb00015 a,cotb00014 b
WHERE a.num_oc = existe.num_oc AND a.num_oc = b.num_oc AND
a.tipo = b.tipo AND a.cod_n = existe.cod_n AND
a.cod_grupo = existe.cod_grupo AND a.cod_tipo=existe.cod_tipo AND
a.cod_sec = existe.cod_sec AND b.cod_sp = c.cod_sp AND
b.cod_sp_sec = c.cod_sp_sec AND b.fech_oc = existe.fecha AND
b.status_t IS NULL AND c.status_t IS NULL AND a.status_t IS NULL
LET existe.tipo = NULL
IF existe.cantidad IS NULL THEN
LET existe.cantidad = 0
END IF
IF existe.precio IS NULL THEN
LET existe.precio = 0
END IF
OUTPUT TO REPORT reporte_11(existe.*)
END WHILE
FINISH REPORT reporte_11
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT reporte_11(x)
DEFINE x RECORD
cod_n LIKE intb00001.cod_n,
cod_grupo LIKE intb00001.cod_grupo,
cod_tipo LIKE intb00001.cod_tipo,
cod_sec LIKE intb00001.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
unidad_med LIKE intb00001.unidad_med,
fecha DATE,
costo LIKE intb00013.costo_st,
tipo CHAR(2),
num_oc INTEGER,
cod_sp INTEGER,
cod_sp_sec INTEGER,
nom_sp CHAR(30),
cantidad DECIMAL(12,2),
precio DECIMAL(12,2)
END RECORD
DEFINE total_c,total_p DECIMAL (12,2)
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 hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
FORMAT
PAGE HEADER
LET doble_on = ASCII 14
LET doble_off = ASCII 20
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 COLUMN 1, negrillas_on,comp_on
PRINT COLUMN 1, "irprrp011",
COLUMN 52, " M A R M O T E C H S. A.",
COLUMN 142, "Pag. ",pageno using "###"
PRINT COLUMN 52, " Sistema de Inventario de Repuestos",
COLUMN 142, today using "dd/mm/yyyy"
PRINT COLUMN 52, " Comparativo Precio Std-Ultima Compra",
COLUMN 145, hora
PRINT COLUMN 1, negrillas_off
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------------"
PRINT COLUMN 50, "Costo",
COLUMN 69, "Ultima",
COLUMN 102, "Orden"
PRINT COLUMN 1, "Repuesto",
COLUMN 50, "Standard",
COLUMN 69, "Compra",
COLUMN 85, "Precio",
COLUMN 94, "Fecha",
COLUMN 102, "Compra",
COLUMN 110, "Suplidor"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------------"
skip 1 line
ON EVERY ROW
IF opcion1 = "S" THEN
IF x.precio IS NOT NULL AND x.precio > 0 THEN
LET ano1 = YEAR(TODAY) USING "&&&&"
LET x.costo = x.precio
DELETE FROM irtb00013
WHERE @cod_n = x.cod_n AND @cod_grupo = x.cod_grupo AND
@cod_tipo = x.cod_tipo AND @cod_sec = x.cod_sec AND
@ano = YEAR(TODAY)
INSERT INTO irtb00013
VALUES(01,12,ano1,x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec,x.precio,
NULL,USER,CURRENT,NULL,NULL)
END IF
END IF
PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-",
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&",
" ",x.descrip_esp CLIPPED,
COLUMN 43, x.unidad_med CLIPPED,
COLUMN 48, x.costo USING "#,###,###.####",
COLUMN 61, x.cantidad USING "###,###,###.##",
COLUMN 77, x.precio USING "###,###,###.##",
COLUMN 92, x.fecha USING "dd/mm/yyyy",
COLUMN 102, x.num_oc USING "&&&&",
COLUMN 110, x.cod_sp USING "&&","-",x.cod_sp_sec USING "&&&&",
" ",x.nom_sp
ON LAST ROW
PRINT COLUMN 1, "==================================================",
"==================================================",
"=================================================="
PRINT COLUMN 4, "Total Registros Impresos =", count(*) USING "<<<<"
PRINT COLUMN 1, "==================================================",
"==================================================",
"=================================================="
PRINT COLUMN 4, comp_off
END REPORT