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
+257
View File
@@ -0,0 +1,257 @@
{
-------------------------------------------------------------------------------
PROGRAMA : COPRRP015
OBJETIVO : Codigos Arancelarios (Copia del coprrp013)
PROGRAMADOR : Ing. Juan Fco. Soto
FECHA REALIZACION : Marzo, 1997
DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO
-------------------------------------------------------------------------------
}
GLOBALS "coprgb000.4gl"
FUNCTION coprrp015()
DEFINE idx_c SMALLINT
DEFINE salir CHAR(1)
DEFINE mes CHAR(2)
DEFINE materia RECORD
cod_n LIKE intb00002.cod_n,
cod_grupo LIKE intb00002.cod_grupo,
cod_tipo LIKE intb00002.cod_tipo,
cod_sec LIKE intb00002.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
pto_reorden LIKE intb00002.pto_reorden,
dia_llegada LIKE intb00002.dia_llegada,
cod_nab LIKE intb00002.cod_nab,
bodega LIKE intb00002.bodega ,
unidad_med LIKE intb00001.unidad_med,
base LIKE intb00002.base,
costo LIKE intb00013.costo_st
END RECORD,
cod smallint
DEFINE select_cost CHAR(1000)
DEFINE costos RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
costo LIKE cotb00015.precio
END RECORD
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM cofmrp015 FROM "cofmrp015"
DISPLAY FORM cofmrp015
CALL pantalla()
DISPLAY "coprrp015" AT 4,3
DISPLAY "Codigos Arancelarios" AT 6,30
IF status < 0 THEN
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
INPUT BY NAME decide
AFTER FIELD decide
IF decide IS NULL THEN
NEXT FIELD decide
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 b.cod_n,b.cod_grupo,b.cod_tipo,b.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
IF decide = "A" THEN
LET selec =
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ",
" a.pto_reorden,a.dia_llegada,a.cod_nab,a.bodega,b.unidad_med, ",
" a.base,MAX(c.precio) ",
"FROM intb00002 a, intb00001 b, OUTER cotb00015 c ",
"WHERE 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.cod_n = c.cod_n AND a.cod_grupo = c.cod_grupo AND ",
" a.cod_tipo = c.cod_tipo AND a.cod_sec = c.cod_sec AND ",
" a.status_t is NULL AND b.status_t is NULL AND ",
criterio clipped," GROUP BY 1,2,3,4,5,6,7,8,9,10,11 ORDER BY 5"
ELSE
LET selec =
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ",
" a.pto_reorden,a.dia_llegada,a.cod_nab,a.bodega,b.unidad_med, ",
" a.base,MAX(c.precio) ",
"FROM intb00002 a, intb00001 b, OUTER cotb00015 c ",
"WHERE 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.cod_n = c.cod_n AND a.cod_grupo = c.cod_grupo AND ",
" a.cod_tipo = c.cod_tipo AND a.cod_sec = c.cod_sec AND ",
" a.status_t is NULL AND b.status_t is NULL AND ",
criterio clipped," GROUP BY 1,2,3,4,5,6,7,8,9,10,11 ORDER BY 1,2,3,4"
END IF
DISPLAY "<< Buscando Informacion... Espere Por Favor. >>" AT 19,14
PREPARE busca FROM selec
DECLARE accion CURSOR FOR busca
OPEN accion
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14
START REPORT maestra1 TO "C:\\archivo"
WHILE status != notfound
FETCH accion INTO materia.*
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
IF materia.costo IS NULL THEN
LET materia.costo = 0
END IF
OUTPUT TO REPORT maestra1(materia.*)
END WHILE
FINISH REPORT maestra1
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT maestra1(x)
DEFINE x RECORD
cod_n LIKE intb00002.cod_n,
cod_grupo LIKE intb00002.cod_grupo,
cod_tipo LIKE intb00002.cod_tipo,
cod_sec LIKE intb00002.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
pto_reorden LIKE intb00002.pto_reorden,
dia_llegada LIKE intb00002.dia_llegada,
cod_nab LIKE intb00002.cod_nab,
bodega LIKE intb00002.bodega,
unidad_med LIKE intb00001.unidad_med,
base LIKE intb00002.base,
costo LIKE intb00013.costo_st
END RECORD
DEFINE l SMALLINT
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)
DEFINE varia CHAR(19)
OUTPUT
LEFT 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
LET l = (80 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, negrillas_on
PRINT COLUMN 1, "coprrp015",
COLUMN l, p_companias.nombre CLIPPED,
COLUMN 73, "Pag. ",pageno using "###"
PRINT COLUMN 17, " Sistema de Compras",
COLUMN 73, today using "dd/mm/yy"
PRINT COLUMN 17, " Codigos Arancelarios",
COLUMN 76, hora
IF decide = "N" THEN
LET varia = "N u m e r i c o" clipped
ELSE
LET varia = "A l f a b e t i c o"
END IF
LET l = (80 - LENGTH(varia)) / 2
PRINT COLUMN l, varia
# ESTA LINEA TIENE 50 GUIONES
PRINT COLUMN 1, "--------------------------------------------------",
"-------------------------------"
PRINT COLUMN 50, "Codigo"
PRINT COLUMN 1, "M a t e r i a l",
COLUMN 50, "Arancel",
COLUMN 71, "FOB/Pagado"
# ESTA LINEA TIENE 50 GUIONES
PRINT COLUMN 1, "--------------------------------------------------",
"-------------------------------"
PRINT negrillas_off
ON EVERY ROW
IF x.base > 0 THEN
LET x.costo = x.costo / x.base
END IF
PRINT COLUMN 1, x.cod_n USING "&","-",
x.cod_grupo USING "&","-",
x.cod_tipo USING "&&","-",
x.cod_sec USING "&&&",2 spaces,
x.descrip_esp,2 spaces,
x.unidad_med,
COLUMN 50, x.cod_nab;
IF x.costo = 0 THEN
PRINT COLUMN 71, "__________"
ELSE
PRINT COLUMN 71, x.costo using "###,###.##"
END IF
ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 3, "Total de Registros Impresos = ", count(*) USING "####"
PRINT COLUMN comp_off
END REPORT