This commit is contained in:
Abel López
2026-09-16 16:49:29 -04:00
18 changed files with 268 additions and 125 deletions
+7
View File
@@ -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"
-24
View File
@@ -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
+1 -1
View File
@@ -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 ]
+1 -1
View File
@@ -1,4 +1,4 @@
database marmotech
database smarmotech
screen size 24 by 80
{
Codigo del movimiento [f0] Material[f002 ]
+6 -6
View File
@@ -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
+7 -3
View File
@@ -36,6 +36,10 @@
</ActionDefaultList>
<ToolBar name="ToolBar1">
<ToolBarItem comment="ADMINISTRACION PRECIOS" image="money" name="nuevo" text="Precio"/>
<ToolBarItem image="find" name="buscalista" text="Busca Informacion"/>
<ToolBarItem image="clear" name="limpia" text="Limpia Screen"/>
<ToolBarItem image="dollar" name="conversion" text="Conversion Moneda"/>
<ToolBarItem image="stop" name="cancel" text="Cancela operacion"/>
<ToolBarSeparator name="ToolBarSeparator1"/>
<ToolBarItem image="quit" name="salir" text="Salir"/>
</ToolBar>
@@ -45,7 +49,7 @@
<ProgressBar aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="progreso" color="green" fieldId="20" gridHeight="1" gridWidth="24" name="progreso" posX="5" posY="1" sqlTabName="formonly" table_alias_name="" valueMax="100" valueMin="0" widget="ProgressBar"/>
<Table gridHeight="7" gridWidth="220" name="Table1" posX="1" posY="2" totalRows="6" unitWidth="characters" width="207">
<CheckBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="elimina" defaultValue="N" fieldId="1" gridHeight="1" gridWidth="1" name="elimina" notNull="true" posX="0" posY="0" required="false" sqlTabName="formonly" sqlType="CHAR" tabIndex="-1" table_alias_name="" title="Elimina" valueChecked="S" valueUnchecked="N" widget="CheckBox"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="idrow" fieldId="2" gridHeight="1" gridWidth="12" length="12" name="idrow" noEntry="true" posX="1" posY="0" sqlTabName="formonly" tabIndex="-1" table_alias_name="" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="idrow" fieldId="2" gridHeight="1" gridWidth="12" hidden="true" length="12" name="idrow" noEntry="true" posX="1" posY="0" sqlTabName="formonly" tabIndex="-1" table_alias_name="" widget="Edit"/>
<ComboBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="codlista" defaultValue="1" fieldId="3" gridHeight="1" gridWidth="4" items="GENERAL, OUTLET PUNTA CANA, OFERTA, SD OUTLET, TIENDA SAN CRISTOBAL" name="codlista" posX="13" posY="0" sqlTabName="formonly" tabIndex="-1" table_alias_name="" title="Codigo Lista" widget="ComboBox">
<Item name="1" text="GENERAL"/>
<Item lstrtext="false" name="4" text="OUTLET PUNTA CANA"/>
@@ -58,12 +62,12 @@
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="codtipo" fieldId="6" gridHeight="1" gridWidth="4" name="codtipo" posX="24" posY="0" sqlTabName="formonly" tabIndex="-1" table_alias_name="" title="Tipo" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="codsec" fieldId="7" gridHeight="1" gridWidth="5" name="codsec" posX="28" posY="0" sqlTabName="formonly" tabIndex="-1" table_alias_name="" title="Medida" widget="Edit"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="descripcion_p" fieldId="8" gridHeight="1" gridWidth="33" name="descripcion_p" posX="33" posY="0" sqlTabName="formonly" table_alias_name="" title="Producto" widget="FFLabel"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="unidadmed" fieldId="9" gridHeight="1" gridWidth="4" name="unidadmed" posX="66" posY="0" sqlTabName="formonly" table_alias_name="" widget="FFLabel"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="unidadmed" fieldId="9" gridHeight="1" gridWidth="4" name="unidadmed" posX="66" posY="0" sqlTabName="formonly" table_alias_name="" title="Unidad" widget="FFLabel"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="tipocliente" fieldId="10" gridHeight="1" gridWidth="2" name="tipocliente" posX="70" posY="0" sqlTabName="formonly" tabIndex="-1" table_alias_name="" title="Tipo Cliente" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="seccliente" fieldId="11" gridHeight="1" gridWidth="6" name="seccliente" posX="72" posY="0" sqlTabName="formonly" tabIndex="-1" table_alias_name="" title="Codigo Cliente" widget="Edit"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="nombrecliente" fieldId="12" gridHeight="1" gridWidth="31" name="nombrecliente" posX="78" posY="0" sqlTabName="formonly" table_alias_name="" title="Nombre" widget="FFLabel"/>
<ComboBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="ventas" fieldId="13" gridHeight="1" gridWidth="15" items="" name="ventas" posX="109" posY="0" sqlTabName="formonly" tabIndex="-1" table_alias_name="" title="Ventas" widget="ComboBox"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="moneda" fieldId="14" gridHeight="1" gridWidth="4" name="moneda" posX="124" posY="0" sqlTabName="formonly" table_alias_name="" widget="FFLabel"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="moneda" fieldId="14" gridHeight="1" gridWidth="4" name="moneda" posX="124" posY="0" sqlTabName="formonly" table_alias_name="" title="Moneda" widget="FFLabel"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="pprecio" fieldId="15" gridHeight="1" gridWidth="11" name="pprecio" posX="128" posY="0" sqlTabName="formonly" tabIndex="-1" table_alias_name="" title="PRECIO" widget="Edit"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="costo_std" fieldId="16" gridHeight="1" gridWidth="13" name="costo_std" posX="139" posY="0" sqlTabName="formonly" table_alias_name="" title="Costo STD" widget="FFLabel"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="costo_lq" fieldId="17" gridHeight="1" gridWidth="15" name="costo_lq" posX="152" posY="0" sqlTabName="formonly" table_alias_name="" title="Costo Liquidado" widget="FFLabel"/>
+1 -1
View File
@@ -1,4 +1,4 @@
DATABASE marmotech
DATABASE smarmotech
SCREEN SIZE 24 by 80
{
Busqueda de Productos Terminados
+6 -1
View File
@@ -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
+2 -2
View File
@@ -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,
+10 -23
View File
@@ -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
+105
View File
@@ -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;
--------------------------------------------------------------------- */
+10 -6
View File
@@ -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)
+33 -17
View File
@@ -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"
+10 -5
View File
@@ -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
-33
View File
@@ -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
+32
View File
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ManagedForm databaseName="smarmotech" fileVersion="40100" gstVersion="60003" name="ManagedForm" uid="{3ef2c8ec-7670-4014-a87b-58c65dc432be}">
<AGSettings>
<DynamicProperties version="4"/>
</AGSettings>
<Record name="sclientes" uid="{5fc56092-fa56-4c48-b1e5-11fe4da7e460}">
<RecordField fieldIdRef="4" name="tipo_cliente" uid="{3b940207-07fc-448e-8143-5a42352e0681}"/>
<RecordField fieldIdRef="5" name="sec_cliente" uid="{9bd5b139-0ae5-4ae0-bc8b-3d8d6192fee8}"/>
<RecordField fieldIdRef="6" name="nombre" uid="{d8ac2de0-383b-4677-8abd-30bf3bde2cac}"/>
<RecordField fieldIdRef="7" name="direccion" uid="{dcf49690-53ff-4aa5-a2d3-e44d20aac43c}"/>
<RecordField fieldIdRef="1" name="ciudad" uid="{f9e99450-489a-4f04-a89e-96579797b045}"/>
<RecordField fieldIdRef="2" name="vendedor" uid="{77b41c98-0fbe-4c5a-8cad-dc6be60a5f48}"/>
<RecordField fieldIdRef="3" name="sec_vend" uid="{b97d0925-239e-4a49-9ade-02e78abcfee1}"/>
</Record>
<Form gridHeight="24" gridWidth="106" name="vefmwd002">
<Grid gridHeight="24" gridWidth="106" name="grid1" posX="0" posY="0">
<Label gridHeight="1" gridWidth="73" justify="center" name="label1" posX="7" posY="1" style="encabezado" text="CLIENTES"/>
<Table gridHeight="6" gridWidth="99" name="table1" posX="7" posY="3" totalRows="5">
<Edit fieldId="4" gridHeight="1" gridWidth="8" name="tipo_cliente" posX="0" posY="0" tabIndex="-1" title="CODIGO" widget="Edit"/>
<Edit fieldId="5" gridHeight="1" gridWidth="8" name="sec_cliente" posX="8" posY="0" tabIndex="-1" widget="Edit"/>
<Edit fieldId="6" gridHeight="1" gridWidth="25" name="nombre" posX="16" posY="0" tabIndex="-1" title="NOMBRE" widget="Edit"/>
<Edit fieldId="7" gridHeight="1" gridWidth="26" name="direccion" posX="41" posY="0" tabIndex="-1" title="DIRECCION" widget="Edit"/>
<Edit fieldId="1" gridHeight="1" gridWidth="8" name="ciudad" posX="67" posY="0" tabIndex="-1" title="CIUDAD" widget="Edit"/>
<Edit fieldId="2" gridHeight="1" gridWidth="8" name="vendedor" posX="75" posY="0" tabIndex="-1" title="VENDEDOR" widget="Edit"/>
<Edit fieldId="3" gridHeight="1" gridWidth="8" hidden="true" name="sec_vend" posX="83" posY="0" tabIndex="-1" widget="Edit"/>
</Table>
</Grid>
</Form>
<DiagramLayout>
<![CDATA[AAAAAgAAAEwAewA1AGYAYwA1ADYAMAA5ADIALQBmAGEANQA2AC0ANABjADQAOAAtAGIAMQBlADUALQAxADEAZgBlADQAZABhADcAZQA0ADYAMAB9QCAAAAwAAANAIAAADAAAAz9wYk3S8an8AQ==]]>
</DiagramLayout>
</ManagedForm>
+19 -2
View File
@@ -506,10 +506,26 @@
<Group id="1667448785" label="PRODUCTOS TERMINADOS">
<Library binaryName="FORMULARIOS_IP" dependencies="-1026233879" id="-1826025351" label="FORMULARIOS_IP">
<File filePath="ipdir/ipfmmt003.4fd"/>
<File filePath="ipdir/ipfmmt005.per"/>
<File filePath="ipdir/ipfmmt020.4fd"/>
<File filePath="ipdir/ipfmmt021.4fd"/>
<File filePath="ipdir/ipfmmt013.4fd"/>
<File filePath="ipdir/ipfmmt019.4fd"/>
<File filePath="ipdir/ipfmmt012.per"/>
<File filePath="ipdir/ipfmmt010.per"/>
<File filePath="ipdir/ipfmmt014.per"/>
<File filePath="ipdir/ipfmmt017.4fd"/>
<File filePath="ipdir/ipfmwd008.per"/>
<File filePath="ipdir/vefmwd002_ip.4fd"/>
<File filePath="ipdir/ipfmcs002.per"/>
<File filePath="ipdir/ipfmcs006.4fd"/>
<File filePath="ipdir/ipfmcs004.4fd"/>
<File filePath="ipdir/coloca_ubicacion.4fd"/>
<File filePath="ipdir/ipfmcs004b.per"/>
<File filePath="ipdir/ipfmcs004_1.4fd"/>
</Library>
<Library binaryName="UBICACIONDH_IP" dependencies="-1026233879" id="1763548200" label="UBICACIONDH_IP">
<File filePath="ipdir/ubicacionDH.4gl"/>
</Library>
<Library binaryName="FUNCIONES_IP" dependencies="-1026233879" id="1763548104" label="FUNCIONES_IP">
<File filePath="ipdir/ipprgb000.4gl"/>
@@ -524,6 +540,7 @@
<File filePath="ipdir/ubicacionH.4gl"/>
<File filePath="otrodir/LlenarUbicaciones.4gl"/>
<File filePath="otrodir/categorias.4gl"/>
<File filePath="otrodir/pantalla_ip.4gl"/>
<File filePath="ipdir/ipactualizareqtrx.4gl"/>
<File filePath="ipdir/loadDespiece.4gl"/>
</Library>
@@ -558,7 +575,7 @@
<File compilerOptions="--build-rdd" filePath="ipdir/ipprmt013.4gl"/>
</Application>
<Application binaryName="ipprmt005" dependencies="1763548104,-1026233879,-764824792" externalDependencies="libgre.42x" id="-960000007" label="ipprmt005">
<Configuration commandLineArguments="jpeguero Peguero2023" id="-961000007" label="Configuration"/>
<Configuration commandLineArguments="jsoto lmmjvsd2014" id="-961000007" label="Configuration"/>
<File compilerOptions="--build-rdd" filePath="ipdir/ipprmt005.4gl"/>
</Application>
<Application binaryName="ipprmt012" dependencies="1763548104,-1026233879,-764824792" externalDependencies="libgre.42x" id="-960000008" label="ipprmt012">
@@ -585,7 +602,7 @@
<Configuration commandLineArguments="jpeguero Peguero2023" id="-961000013" label="Configuration"/>
<File compilerOptions="--build-rdd" filePath="ipdir/ipprcs006.4gl"/>
</Application>
<Application binaryName="ipprcs004" dependencies="1763548104,-1026233879,-764824792" externalDependencies="libgre.42x" id="-960000014" label="ipprcs004">
<Application binaryName="ipprcs004" dependencies="1763548104,-1026233879,-764824792,1763548200,-1423229125" externalDependencies="libgre.42x" id="-960000014" label="ipprcs004">
<Configuration commandLineArguments="jpeguero Peguero2023" id="-961000014" label="Configuration"/>
<File compilerOptions="--build-rdd" filePath="ipdir/ipprcs004.4gl"/>
</Application>
+18
View File
@@ -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