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
+239
View File
@@ -0,0 +1,239 @@
{
------------------------------------------------------------------
PROGRAMA : PRPRMT007
OBJETIVO : Matenimiento de Status de Orden de Produccion
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : MARZO 09, 1998
------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE p_nombre CHAR(40),
tipo_p CHAR(1),
pnumreq INT
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT TO "smarmotech" USER usuarios USING clave
CALL prprmt007()
END MAIN
FUNCTION prprmt007()
# WHENEVER ERROR CONTINUE
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
#CALL pantalla()
OPEN FORM ctfmmt007 FROM "prfmmt007"
DISPLAY FORM ctfmmt007
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
LET INT_FLAG = FALSE
LET tipo_p = "A"
INITIALIZE prtb09.* TO NULL
INITIALIZE prtb07.* TO NULL
LET p_nombre = NULL
CLEAR FORM
CALL prpcad007()
COMMAND "Consulta/Modificar"
LET INT_FLAG = FALSE
LET tipo_p = "C"
INITIALIZE prtb09.* TO NULL
INITIALIZE prtb07.* TO NULL
LET p_nombre = NULL
CLEAR FORM
CALL prpcmf007()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION prpcad007()
## Captura los datos que va a contener el registro
LET INT_FLAG = FALSE
IF tipo_p = "A" THEN
INPUT prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega FROM
num_oc,fecha,fecha_fabricacion
AFTER FIELD num_oc
IF prtb08.num_oc IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_oc
END IF
SELECT UNIQUE a.tipo_cliente,a.sec_cliente,a.fecha_oc
INTO prtb07.tipo_cliente,prtb07.sec_cliente,prtb07.fecha
FROM prtb00012 a WHERE a.num_oc = prtb08.num_oc
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_oc
END IF
SELECT UNIQUE a.nombre INTO p_nombre FROM vetb00004 a
WHERE a.tipo_cliente = prtb07.tipo_cliente AND
a.sec_cliente = prtb07.sec_cliente
DISPLAY BY NAME prtb07.tipo_cliente,prtb07.sec_cliente,p_nombre
AFTER FIELD fecha_oc
IF prtb08.fecha_oc IS NULL OR prtb08.fecha_oc < prtb07.fecha THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_oc
END IF
END INPUT
END IF
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
INPUT prtb08.cerrada,prtb08.fecha_entrega
WITHOUT DEFAULTS FROM
pendiente,fecha_fabricacion
AFTER FIELD pendiente
IF prtb08.cerrada IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD pendiente
END IF
END INPUT
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
IF tipo_p = "A" THEN
UPDATE prtb00012 SET fecha_entrega = prtb08.fecha_entrega,
us_mod = SUSER_SNAME(),
fech_mod = GETDATE()
WHERE @num_oc = prtb08.num_oc
AND @tipo_cliente = prtb07.tipo_cliente
AND @sec_cliente = prtb07.sec_cliente
LET numero_msg = 1
CALL msg(numero_msg)
END IF
END FUNCTION
FUNCTION prpcmf007()
## Aqui se prepara para la captura del criterio de seleccion
CONSTRUCT BY NAME criterio ON a.num_oc #-> vg,a.fecha
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE a.num_oc,CONVERT(CHAR(10),a.fecha_oc,103),CONVERT(CHAR(10),a.fecha_entrega,103),a.cerrada,a.ubicacion FROM prtb00012 a ",
" WHERE ",criterio CLIPPED #-> vg , " AND a.status_t IS NULL"
PREPARE busca FROM selec
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega,
prtb08.cerrada,prtb08.ubicacion
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
CALL despl_st()
MENU "OPCIONES "
COMMAND "Siguiente" "Presenta en pantalla el sigte. registro encontrado"
FETCH NEXT datos INTO prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega,
prtb08.cerrada,prtb08.ubicacion
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
CALL despl_st()
COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega,
prtb08.cerrada,prtb08.ubicacion
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
CALL despl_st()
COMMAND "Primero" "Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega,
prtb08.cerrada,prtb08.ubicacion
CALL despl_st()
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega,
prtb08.cerrada,prtb08.ubicacion
CALL despl_st()
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger" "Modifica el registro presentado en pantalla"
LET tipo_p = "M"
CALL prpcad007()
UPDATE prtb00012 SET cerrada = prtb08.cerrada,fecha_cierre = Today,
us_mod= SUSER_SNAME(),fech_mod = GETDATE()
WHERE num_oc = prtb08.num_oc
IF prtb08.cerrada ='S' THEN
# ACTUALIZACION REQUISICION DESPACHO
DECLARE brequisi CURSOR FOR
SELECT a.num_req FROM cctb00026 a
WHERE a.num_oc = prtb08.num_oc AND status_t IS NULL
FOREACH brequisi INTO pnumreq
UPDATE cctb00025 set estado_despacho = 'DESPACHADA',
us_mod = SUSER_SNAME(),
fech_mod = GETDATE()
WHERE num_req = pnumreq
END FOREACH
END IF
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND "Retornar" "Retorna al menu anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION despl_st()
SELECT UNIQUE a.tipo_cliente,a.sec_cliente,b.nombre ,a.cerrada,CONVERT(char(10),a.fecha_entrega,103)
INTO prtb07.tipo_cliente,prtb07.sec_cliente,p_nombre,prtb09.pendiente,prtb09.fecha_fabricacion
FROM prtb00012 a,vetb00004 b
WHERE a.tipo_cliente = b.tipo_cliente AND a.sec_cliente = b.sec_cliente AND
a.num_oc = prtb08.num_oc
LET prtb08.fecha_entrega = prtb09.fecha_fabricacion
LET prtb08.cerrada = prtb09.pendiente
DISPLAY BY NAME prtb09.*,prtb07.tipo_cliente,prtb07.sec_cliente,p_nombre,prtb09.pendiente,
prtb09.fecha_fabricacion
END FUNCTION