Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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,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,4 +1,4 @@
|
||||
database marmotech
|
||||
database smarmotech
|
||||
screen size 24 by 80
|
||||
{
|
||||
Codigo del movimiento [f0] Material[f002 ]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,4 +1,4 @@
|
||||
DATABASE marmotech
|
||||
DATABASE smarmotech
|
||||
SCREEN SIZE 24 by 80
|
||||
{
|
||||
Busqueda de Productos Terminados
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
--------------------------------------------------------------------- */
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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>
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user