diff --git a/PROYECTO/config/fglprofile b/PROYECTO/config/fglprofile
index 7e9ba80..56e9925 100644
--- a/PROYECTO/config/fglprofile
+++ b/PROYECTO/config/fglprofile
@@ -6,3 +6,10 @@ dbi.database.mydatabase.source = "mydatabase.db"
# OJO: el runtime debe tener el driver dbmsnc (esta en fgl602, NO en el 6.00.01 de GST603).
dbi.database.smarmotech.source = "marmotech250s"
dbi.database.smarmotech.driver = "dbmsnc"
+
+# --- MBS ERP: conexion marmotech -> .250/EXTERIOR (DSN ODBC18 marmotech) ---
+# Segunda conexion legada de la epoca Informix (alias IFMX/SQL_E en varios
+# programas viejos), usada para validar movimientos contra Cuentas por
+# Cobrar en la base EXTERIOR. Autorizado por Johnny Soto, 11/09/2026.
+dbi.database.marmotech.source = "exteriordb"
+dbi.database.marmotech.driver = "dbmsnc"
diff --git a/PROYECTO/ipdir/RUBIOBONDY.txt b/PROYECTO/ipdir/RUBIOBONDY.txt
deleted file mode 100644
index 2998725..0000000
--- a/PROYECTO/ipdir/RUBIOBONDY.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-WANDY TIENE 2 SALIDAS 1 CARRERAS
-JOSE HERNANDEZ 13 ENTRADA DE 14 PONCHES
-STRABURG 2-0 FRENTE A SFO
-CAIN HA GANADO LOS
-
-LE VA MA FRENTE ATLANTA.
-LE VA BIEN A MINESOTA.
-PHIL HUGES 13 CARRERAS
-KLUBER
-
-TAMPA 8-1 CON
-
-STL
- ATL 77
- PIRATAS 77
-CINCINATA 77
- LAA
- PHILS
-KC
-LAD
-DET
- SFO
-COLORADO
-
diff --git a/PROYECTO/ipdir/ipfmcs002.per b/PROYECTO/ipdir/ipfmcs002.per
index 7c65b3e..753bde9 100644
--- a/PROYECTO/ipdir/ipfmcs002.per
+++ b/PROYECTO/ipdir/ipfmcs002.per
@@ -1,5 +1,5 @@
database smarmotech
-screen size 24 by 80
+screen size 24 by 80 title "Consulta Maestra de Productos"
{
Producto Terminado [a ]-[b ]-[c ]-[d ] [a1 ]
diff --git a/PROYECTO/ipdir/ipfmmt005.per b/PROYECTO/ipdir/ipfmmt005.per
index 3d9a9a1..c35fc76 100644
--- a/PROYECTO/ipdir/ipfmmt005.per
+++ b/PROYECTO/ipdir/ipfmmt005.per
@@ -1,4 +1,4 @@
-database marmotech
+database smarmotech
screen size 24 by 80
{
Codigo del movimiento [f0] Material[f002 ]
diff --git a/PROYECTO/ipdir/ipfmmt010.per b/PROYECTO/ipdir/ipfmmt010.per
index f40da81..f221c8d 100644
--- a/PROYECTO/ipdir/ipfmmt010.per
+++ b/PROYECTO/ipdir/ipfmmt010.per
@@ -14,15 +14,15 @@ LAYOUT (TEXT="TIPOS PRODUCTOS")
}
end
tables
-iptb00020,iptb00024
+iptb00024
attributes
f006 = iptb00024.cod_tipo;
f007 = iptb00024.descripcion,upshift;
-b = iptb00020.status_t,noentry;
-f002 = iptb00020.us_crea,noentry;
-f003 = iptb00020.fech_crea,noentry;
-f004 = iptb00020.us_mod,noentry;
-f005 = iptb00020.fech_mod,NOENTRY;
+b = iptb00024.status_t,noentry;
+f002 = iptb00024.us_crea,noentry;
+f003 = iptb00024.fech_crea,noentry;
+f004 = iptb00024.us_mod,noentry;
+f005 = iptb00024.fech_mod,NOENTRY;
COMBOBOX inv = formonly.cod_inv,ITEMS=(("3","PRODUCTOS TERMINADOS"),("1","MATERIA PRIMA"),("7","REPUESTOS")),DEFAULT=3;
instructions
delimiters
diff --git a/PROYECTO/ipdir/ipfmmt017.4fd b/PROYECTO/ipdir/ipfmmt017.4fd
index ccfc424..03289a8 100644
--- a/PROYECTO/ipdir/ipfmmt017.4fd
+++ b/PROYECTO/ipdir/ipfmmt017.4fd
@@ -36,6 +36,10 @@
+
+
+
+
@@ -45,7 +49,7 @@
-
+
@@ -58,12 +62,12 @@
-
+
-
+
diff --git a/PROYECTO/ipdir/ipfmwd008.per b/PROYECTO/ipdir/ipfmwd008.per
index 2ee1ec4..8c3c8d6 100644
--- a/PROYECTO/ipdir/ipfmwd008.per
+++ b/PROYECTO/ipdir/ipfmwd008.per
@@ -1,4 +1,4 @@
-DATABASE marmotech
+DATABASE smarmotech
SCREEN SIZE 24 by 80
{
Busqueda de Productos Terminados
diff --git a/PROYECTO/ipdir/ipprcs002.4gl b/PROYECTO/ipdir/ipprcs002.4gl
index e00e828..ee0257f 100644
--- a/PROYECTO/ipdir/ipprcs002.4gl
+++ b/PROYECTO/ipdir/ipprcs002.4gl
@@ -9,8 +9,12 @@ DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO
}
GLOBALS "ipprgb000.4gl"
-MAIN
+MAIN
DEFER INTERRUPT
+ CALL ARG_VAL(1) RETURNING usuarios
+ CALL ARG_VAL(2) RETURNING clave
+
+ CONNECT TO "smarmotech" USER usuarios USING clave
SELECT * INTO p_companias.* FROM companias
CALL ipprcs002()
END MAIN
@@ -55,6 +59,7 @@ LET SELEC =
## Busca los registros con la condicion dada y verifica si el producto terminado
## existe en el catalogo de bienes y servicios.
+ CALL prod.clear()
LET idx = 1
FOREACH accion INTO prod[idx].*,descrip1
IF int_flag THEN
diff --git a/PROYECTO/ipdir/ipprgb000.4gl b/PROYECTO/ipdir/ipprgb000.4gl
index 34a8d37..b9da2c1 100644
--- a/PROYECTO/ipdir/ipprgb000.4gl
+++ b/PROYECTO/ipdir/ipprgb000.4gl
@@ -248,7 +248,7 @@ END RECORD
DEFINE balance DECIMAL(12,5)
DEFINE cod_mov_ant LIKE iptb00006.cod_mov
DEFINE existe_comp,suplidor1,doc_existe,actual,mat_prima CHAR (1000)
- DEFINE opt1,opt4,opt,existe,ya ,opera1,cambio CHAR(3)
+ DEFINE opt1,opt4,opt,ya ,opera1,cambio CHAR(3)
DEFINE medida CHAR (3)
DEFINE fila smallint
DEFINE m_articulos RECORD LIKE iptb00002.*
@@ -328,7 +328,7 @@ DEFINE prod11 DYNAMIC ARRAY OF RECORD
fecha_ordenada DATE
END RECORD
-DEFINE prod ARRAY[200] OF RECORD
+DEFINE prod DYNAMIC ARRAY OF RECORD
cod_n1 SMALLINT,
cod_grupo1 SMALLINT,
cod_tipo1 SMALLINT,
diff --git a/PROYECTO/ipdir/ipprmt005.4gl b/PROYECTO/ipdir/ipprmt005.4gl
index 0c987ef..7a7d25f 100644
--- a/PROYECTO/ipdir/ipprmt005.4gl
+++ b/PROYECTO/ipdir/ipprmt005.4gl
@@ -16,8 +16,10 @@ MAIN
CALL ARG_VAL(2) RETURNING clave
CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave
- CONNECT TO "marmotech" AS "IFMX" USER usuarios USING clave
-
+ -- Migracion Genero 6.0: se elimina la conexion IFMX (EXTERIOR).
+ -- La replicacion de iptb00020 a exterior.dbo.iptb00020 ahora la hace
+ -- un trigger en marmotech.dbo.iptb00020 (ver ipprmt005_trg_exterior.sql).
+
CALL ipprmt005()
END MAIN
@@ -81,11 +83,8 @@ FUNCTION ippcad012()
VALUES (p_iptb20.cod_n,p_iptb20.producto,usuarios,getdate(),p_iptb20.comentario,p_iptb20.genera_orden,p_iptb20.instalacion)
INSERT INTO iptb00035 (cod_n,cod_cat) VALUES (p_iptb20.cod_n,p_iptb20.cod_cat)
- COMMIT WORK
- SET CONNECTION "IFMX"
- INSERT INTO iptb00020 (cod_n,producto,us_crea,fech_crea,instalacion) VALUES
- (p_iptb20.cod_n,p_iptb20.producto,usuarios,getdate(),p_iptb20.instalacion)
-
+ COMMIT WORK
+ -- La replica a EXTERIOR la realiza el trigger en iptb00020.
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
@@ -230,16 +229,9 @@ SET CONNECTION "MSSQL"
WHERE cod_n = p_iptb20.cod_n
DELETE FROM iptb00035 WHERE cod_n = p_iptb20.cod_n
INSERT INTO iptb00035 (cod_cat,cod_n) VALUES (p_iptb20.cod_cat,p_iptb20.cod_n)
- COMMIT WORK
- SET CONNECTION "IFMX"
- UPDATE iptb00020 SET producto = p_iptb20.producto,
- us_mod = usuarios,
- fech_mod = getdate(),
- instalacion = p_iptb20.instalacion
- WHERE cod_n = p_iptb20.cod_n
-
- SET CONNECTION "MSSQL"
- LET numero_msg = 13
+ COMMIT WORK
+ -- La replica a EXTERIOR la realiza el trigger en iptb00020.
+ LET numero_msg = 13
CALL msg(numero_msg)
EXIT INPUT
@@ -257,12 +249,7 @@ END INPUT
fech_mod = GETDATE()
WHERE cod_n = p_iptb20.cod_n
- SET CONNECTION "IFMX"
- UPDATE iptb00020 SET status_t = "E",
- us_mod = usuarios
-
- WHERE cod_n = p_iptb20.cod_n
-
+ -- La replica del "borrado logico" a EXTERIOR la realiza el trigger.
LET numero_msg = 39
CALL msg(numero_msg)
ELSE
diff --git a/PROYECTO/ipdir/ipprmt005_trg_exterior.sql b/PROYECTO/ipdir/ipprmt005_trg_exterior.sql
new file mode 100644
index 0000000..bd26cd2
--- /dev/null
+++ b/PROYECTO/ipdir/ipprmt005_trg_exterior.sql
@@ -0,0 +1,105 @@
+/* =====================================================================
+ TRIGGER DE REPLICACION iptb00020 (Grupos / Clases)
+ marmotech.dbo.iptb00020 ---> exterior.dbo.iptb00020
+
+ Motivo:
+ Migracion a Genero 6.0. El programa ipprmt005 abria una segunda
+ conexion "IFMX" (= base EXTERIOR en la misma instancia SQL Server)
+ para replicar manualmente cada INSERT/UPDATE de iptb00020.
+ Con Genero 6.0 + ODBC Driver 18 ese segundo CONNECT falla con
+ el error -6366 ("Changed database context to 'marmotech'").
+
+ Se elimino del fuente ipprmt005.4gl toda la logica "SET CONNECTION IFMX"
+ y esa replicacion la asume ahora este trigger, del lado del servidor.
+
+ Cobertura:
+ - ipprmt005.4gl es el UNICO programa del ERP que escribe iptb00020
+ (los demas solo la consultan), asi que el trigger reemplaza por
+ completo la replicacion sin riesgo de escrituras duplicadas.
+
+ Comportamiento (identico al del programa original):
+ - INSERT -> crea la fila en EXTERIOR.
+ - UPDATE -> sincroniza la fila en EXTERIOR (cubre tanto "Modificar"
+ como el "borrado logico" status_t='E').
+ - Cross-database directo (misma instancia, sin linked server).
+ - NO se maneja DELETE fisico: el ERP nunca borra fisicamente esta
+ tabla, solo marca status_t = 'E'.
+
+ Ambiente: probar primero en DESARROLLO (.40.9) antes de PRODUCCION (.40.8).
+ ===================================================================== */
+
+/* ---------------------------------------------------------------------
+ PASO 0 (VERIFICACION - correr ANTES de crear el trigger)
+ Confirmar las columnas reales de EXTERIOR.dbo.iptb00020.
+ El esquema local (.sch) de ipdir esta viejo y NO lista 'instalacion',
+ pero el programa 3.20 si la escribia, por lo que deberia existir.
+ Si en el resultado NO aparece 'instalacion', elimine del trigger las
+ dos referencias a e.instalacion / i.instalacion antes de crearlo.
+ --------------------------------------------------------------------- */
+-- SELECT c.name AS columna, t.name AS tipo, c.max_length, c.is_nullable
+-- FROM exterior.sys.columns c
+-- JOIN exterior.sys.types t ON t.user_type_id = c.user_type_id
+-- WHERE c.object_id = OBJECT_ID('exterior.dbo.iptb00020')
+-- ORDER BY c.column_id;
+GO
+
+USE marmotech;
+GO
+
+IF OBJECT_ID('dbo.trg_iptb00020_repl_exterior', 'TR') IS NOT NULL
+ DROP TRIGGER dbo.trg_iptb00020_repl_exterior;
+GO
+
+CREATE TRIGGER dbo.trg_iptb00020_repl_exterior
+ON dbo.iptb00020
+AFTER INSERT, UPDATE
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ IF NOT EXISTS (SELECT 1 FROM inserted)
+ RETURN;
+
+ /* 1) Actualizar en EXTERIOR las filas que ya existen (por cod_n). */
+ UPDATE e
+ SET e.producto = i.producto,
+ e.status_t = i.status_t,
+ e.us_crea = i.us_crea,
+ e.fech_crea = i.fech_crea,
+ e.us_mod = i.us_mod,
+ e.fech_mod = i.fech_mod,
+ e.instalacion = i.instalacion
+ FROM exterior.dbo.iptb00020 e
+ INNER JOIN inserted i ON e.cod_n = i.cod_n;
+
+ /* 2) Insertar en EXTERIOR las filas que aun no existen. */
+ INSERT INTO exterior.dbo.iptb00020
+ (cod_n, producto, status_t, us_crea, fech_crea, us_mod, fech_mod, instalacion)
+ SELECT i.cod_n, i.producto, i.status_t, i.us_crea, i.fech_crea, i.us_mod, i.fech_mod, i.instalacion
+ FROM inserted i
+ WHERE NOT EXISTS (SELECT 1
+ FROM exterior.dbo.iptb00020 e
+ WHERE e.cod_n = i.cod_n);
+END;
+GO
+
+/* ---------------------------------------------------------------------
+ ROLLBACK (si hiciera falta revertir):
+ USE marmotech;
+ DROP TRIGGER dbo.trg_iptb00020_repl_exterior;
+
+ PRUEBA rapida (en DESARROLLO):
+ -- alta
+ INSERT INTO marmotech.dbo.iptb00020 (cod_n,producto,us_crea,fech_crea,instalacion)
+ VALUES (999999,'PRUEBA TRG', SUSER_SNAME(), GETDATE(), 1);
+ SELECT * FROM exterior.dbo.iptb00020 WHERE cod_n = 999999; -- debe aparecer
+ -- modificacion
+ UPDATE marmotech.dbo.iptb00020 SET producto='PRUEBA TRG MOD' WHERE cod_n=999999;
+ SELECT producto FROM exterior.dbo.iptb00020 WHERE cod_n = 999999; -- debe reflejar
+ -- borrado logico
+ UPDATE marmotech.dbo.iptb00020 SET status_t='E' WHERE cod_n=999999;
+ SELECT status_t FROM exterior.dbo.iptb00020 WHERE cod_n = 999999; -- debe ser 'E'
+ -- limpieza
+ DELETE FROM marmotech.dbo.iptb00020 WHERE cod_n=999999;
+ DELETE FROM exterior.dbo.iptb00020 WHERE cod_n=999999;
+ --------------------------------------------------------------------- */
diff --git a/PROYECTO/ipdir/ipprmt010.4gl b/PROYECTO/ipdir/ipprmt010.4gl
index 2a266c7..ccc6fb4 100644
--- a/PROYECTO/ipdir/ipprmt010.4gl
+++ b/PROYECTO/ipdir/ipprmt010.4gl
@@ -105,7 +105,7 @@ FUNCTION ippcmf010()
RETURN
END IF
- LET SELEC = " SELECT UNIQUE a.cod_tipo,a.descripcion,a.cod_inv FROM iptb00024 a WHERE ",
+ LET SELEC = " SELECT UNIQUE a.* FROM iptb00024 a WHERE ",
criterio clipped,
" ORDER BY a.cod_tipo"
@@ -120,7 +120,7 @@ FUNCTION ippcmf010()
RETURN
END IF
- DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv
+ DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv,p_iptb24.status_t,p_iptb24.us_crea,p_iptb24.fech_crea,p_iptb24.us_mod,p_iptb24.fech_mod
MENU "OPCIONES "
COMMAND "Siguiente"
@@ -131,7 +131,7 @@ FUNCTION ippcmf010()
CALL msg(numero_msg)
END IF
- DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv
+ DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv,p_iptb24.status_t,p_iptb24.us_crea,p_iptb24.fech_crea,p_iptb24.us_mod,p_iptb24.fech_mod
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
@@ -141,13 +141,13 @@ FUNCTION ippcmf010()
CALL msg(numero_msg)
END IF
- DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv
+ DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv,p_iptb24.status_t,p_iptb24.us_crea,p_iptb24.fech_crea,p_iptb24.us_mod,p_iptb24.fech_mod
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO p_iptb24.*
- DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv
+ DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv,p_iptb24.status_t,p_iptb24.us_crea,p_iptb24.fech_crea,p_iptb24.us_mod,p_iptb24.fech_mod
LET numero_msg = 5
CALL msg(numero_msg)
@@ -156,7 +156,7 @@ FUNCTION ippcmf010()
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO p_iptb24.*
- DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv
+ DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv,p_iptb24.status_t,p_iptb24.us_crea,p_iptb24.fech_crea,p_iptb24.us_mod,p_iptb24.fech_mod
LET numero_msg = 4
CALL msg(numero_msg)
@@ -196,6 +196,10 @@ FUNCTION ippcmf010()
fech_mod = GETDATE()
WHERE @cod_tipo = p_iptb24.cod_tipo
+ LET p_iptb24.status_t = "E"
+ LET p_iptb24.us_mod = usuarios
+ LET p_iptb24.fech_mod = CURRENT
+ DISPLAY BY NAME p_iptb24.status_t,p_iptb24.us_mod,p_iptb24.fech_mod
LET numero_msg = 39
CALL msg(numero_msg)
diff --git a/PROYECTO/ipdir/ipprmt014.4gl b/PROYECTO/ipdir/ipprmt014.4gl
index aa3d532..a48be82 100644
--- a/PROYECTO/ipdir/ipprmt014.4gl
+++ b/PROYECTO/ipdir/ipprmt014.4gl
@@ -76,7 +76,8 @@ FUNCTION ippcad012()
END FUNCTION
FUNCTION ippcmf012()
- DEFINE encontrados INTEGER
+ DEFINE encontrados INTEGER
+ DEFINE respuestaAviso STRING
## Aqui se prepara para la captura del criterio de seleccion
#WHENEVER ERROR CONTINUE
CONSTRUCT BY NAME criterio ON iptb00030.*
@@ -173,24 +174,39 @@ FUNCTION ippcmf012()
END INPUT
COMMAND KEY ("L") "eLiminar"
- LET encontrados = 0
- SELECT count(*) INTO encontrados
- FROM iptb00002
- WHERE cod_sec = iptb30.cod_sec AND status_t IS NULL
+ IF iptb30.status_t = "E" THEN
+ CALL fgl_winquestion(
+ "Aviso",
+ "Este registro ya fue eliminado anteriormente.",
+ "OK",
+ "OK",
+ "INFORMATION",
+ 0)
+ RETURNING respuestaAviso
+ ELSE
+ LET encontrados = 0
+ SELECT count(*) INTO encontrados
+ FROM iptb00002
+ WHERE cod_sec = iptb30.cod_sec AND status_t IS NULL
- IF encontrados = 0 THEN
- UPDATE iptb00030 SET status_t = "E",
- us_mod = SUSER_SNAME(),
- fech_mod = GETDATE()
- WHERE cod_sec = iptb30.cod_sec
+ IF encontrados = 0 THEN
+ UPDATE iptb00030 SET status_t = "E",
+ us_mod = SUSER_SNAME(),
+ fech_mod = GETDATE()
+ WHERE cod_sec = iptb30.cod_sec
-
- LET numero_msg = 39
- CALL msg(numero_msg)
- ELSE
- LET numero_msg = 383
- CALL msg(numero_msg)
- END IF
+ LET iptb30.status_t = "E"
+ LET iptb30.us_mod = usuarios
+ LET iptb30.fech_mod = CURRENT
+ DISPLAY BY NAME iptb30.*
+
+ LET numero_msg = 39
+ CALL msg(numero_msg)
+ ELSE
+ LET numero_msg = 383
+ CALL msg(numero_msg)
+ END IF
+ END IF
COMMAND "Retornar"
"Retorna al menu anterior"
diff --git a/PROYECTO/ipdir/ipprmt017.4gl b/PROYECTO/ipdir/ipprmt017.4gl
index a00b68a..4e1cf85 100644
--- a/PROYECTO/ipdir/ipprmt017.4gl
+++ b/PROYECTO/ipdir/ipprmt017.4gl
@@ -87,7 +87,7 @@ FUNCTION ippcad017()
# WHENEVER ERROR CONTINUE
DEFINE noreg INT
-
+
DIALOG ATTRIBUTES (UNBUFFERED, FIELD ORDER FORM)
CONSTRUCT criterio ON iptb00002.cod_n,iptb00002.cod_grupo,iptb00002.cod_tipo,iptb00002.cod_sec,
iptb00002.descrip_esp,vetb00025.cod_lista,vetb00025.ventas
@@ -206,6 +206,9 @@ FUNCTION ippcad017()
LET listproduct[curr1].codlista = 1
DISPLAY listproduct[curr1].codlista TO lproducto2[scr_l].codlista
END IF
+ ON CHANGE elimina
+ LET curr1 = arr_curr()
+ LET listproduct[curr1].elimina = listproduct[curr1].elimina
AFTER FIELD seccliente
LET curr1 = arr_curr()
LET scr_l = scr_line()
@@ -353,7 +356,11 @@ FUNCTION ippcad017()
listproduct[idx].codtipo,listproduct[idx].codsec,listproduct[idx].tipocliente,
listproduct[idx].seccliente,listproduct[idx].pprecio,usuarios,GETDATE(),
listproduct[idx].codlista)
-
+
+ LET selec = "SELECT @@IDENTITY"
+ PREPARE getIdrow FROM selec
+ EXECUTE getIdrow INTO listproduct[idx].idrow
+
IF STATUS < 0 THEN
ROLLBACK WORK
CALL fgl_winmessage("Error","NO PUDE ACTUALIZAR INFORMACION","STOP")
@@ -386,8 +393,6 @@ FUNCTION ippcad017()
cod_sec = listproduct[idx].codsec
END IF
END IF
- # CALL fgl_winmessage("o",listproduct[idx].elimina,"info")
- DISPLAY "emilina ",listproduct[idx].elimina
IF listproduct[idx].elimina = "S" THEN
# CALL fgl_winmessage("o",listproduct[idx].idrow,"info")
INSERT INTO vetb00091 (cod_lista,cod_n,cod_Grupo,cod_tipo,
@@ -735,7 +740,7 @@ LABEL sale9:
END FUNCTION
FUNCTION consulta_clientes()
- OPEN WINDOW busqueda AT 7,12 WITH FORM "vefmwd002"
+ OPEN WINDOW busqueda AT 7,12 WITH FORM "vefmwd002_ip"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
LET int_flag = false
diff --git a/PROYECTO/ipdir/rubio220513.txt b/PROYECTO/ipdir/rubio220513.txt
deleted file mode 100644
index 7eba626..0000000
--- a/PROYECTO/ipdir/rubio220513.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-RUBIO BLOND
-
-okland 5 victorias
-tampa bien los miercoles en toronto 7 de ultimos 8
-Mine le va mal en interligas
-atl le ha ganado 5 como favoritos
-cinci le va bien en la ruta. Va Harvey.
-
-LAD frente a derechos han perdido 10 de los untimos 14
-Ariz ha perdido los ultimos juegos en la runta con los zurdos.
-
-Sfo 10
-
-LAAD 75
-PHILIS 74
-STL 73
-PIT 72
-KC 71
-BOS 65
-NYY 62
-DET 61
-
-
-MNE
-SEATLE
-WASH
-
-WILLY PEREALTA 2 LOSS
-HARVEY LANZANDO EN SU PATIO ES PELIGROSO
-DE LA ROSA TIENE 7-4 FRENTE ARIZ
-SMARTIZA 4-0 FRENTE A LOS PIT
-
-
diff --git a/PROYECTO/ipdir/vefmwd002_ip.4fd b/PROYECTO/ipdir/vefmwd002_ip.4fd
new file mode 100644
index 0000000..dcb2d16
--- /dev/null
+++ b/PROYECTO/ipdir/vefmwd002_ip.4fd
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw
index d6af3f9..8599ca3 100644
--- a/PROYECTO/mbsERP.4pw
+++ b/PROYECTO/mbsERP.4pw
@@ -506,10 +506,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -524,6 +540,7 @@
+
@@ -558,7 +575,7 @@
-
+
@@ -585,7 +602,7 @@
-
+
diff --git a/PROYECTO/otrodir/pantalla_ip.4gl b/PROYECTO/otrodir/pantalla_ip.4gl
new file mode 100644
index 0000000..d749e14
--- /dev/null
+++ b/PROYECTO/otrodir/pantalla_ip.4gl
@@ -0,0 +1,18 @@
+GLOBALS "../ipdir/ipprgb000.4gl"
+
+FUNCTION pantalla()
+ DEFINE fecha CHAR(8),
+ hora char(5),
+ l SMALLINT
+ SELECT UNIQUE a.* INTO p_companias.* FROM companias a
+ LET fecha = today USING "dd/mm/yy"
+ LET hora = time
+ LET l = (80 - LENGTH(p_companias.nombre CLIPPED))/2
+ DISPLAY p_companias.nombre CLIPPED AT 4,l ATTRIBUTE (REVERSE,BLUE)
+ DISPLAY fecha AT 4,70 ATTRIBUTE (BLUE)
+ DISPLAY "Sistema Inventario de Productos" AT 5,25
+ DISPLAY hora AT 6,73 ATTRIBUTE(BLUE)
+
+ CALL fgl_drawbox(5,79,3,1)
+ CALL fgl_drawbox(1,79,22,1)
+END FUNCTION