Registra adprmt001 (Departamentos) en ADMINISTRACION PERSONAL y corrige bugs

- Registra adfmmt001.4fd (FORMULARIOS_AD), adprgb000.4gl (FUNCIONES_AD) y
  la aplicacion adprmt001 en el subgrupo ADMINISTRACION PERSONAL.
- INSERT en adtb00001 (14 cols) y adtb00029 (10 cols) con lista de
  columnas (error 213 por columnas nuevas en el esquema).
- INPUT/DISPLAY BY NAME limitados a los 7 campos del formulario (-1102
  tipo_departamento no existe en el form).
- Escoger ya no actualiza estado_a/estado_m con variables nunca cargadas
  (los dejaba en NULL); se quitan del INPUT BY NAME (no estan en el form).
- SELECT UNIQUE -> SELECT DISTINCT (SQL Server).
Verificado contra la BD .250 con el depto 9990: Nuevo, Escoger y eLiminar
en adtb00001/00029/00033.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Abel López
2026-10-19 11:24:54 -04:00
co-authored by Claude Sonnet 5.5
parent b8f403c2e4
commit 31daca8636
2 changed files with 19 additions and 12 deletions
+11 -11
View File
@@ -55,7 +55,8 @@ FUNCTION adpcad001()
{WHENEVER ERROR CONTINUE}
## CAPTURA LOS DATOS QUE VA A CONTENER EL REGISTRO
INPUT BY NAME depto.* #,m_estado_a,m_estado_m
INPUT BY NAME depto.departamento, depto.nom_dpto, depto.status_t, depto.us_crea,
depto.fech_crea, depto.us_mod, depto.fech_mod #,m_estado_a,m_estado_m
## VERIFICA QUE EL CODIGO NO EXISTA EN EL CATALOGO DE DEPARTAMENTO. SI EXISTE,
## ENTONCES DESPLEGA LOS DATOS DEL REGISTRO EXISTENTE.
@@ -77,7 +78,8 @@ FUNCTION adpcad001()
NEXT FIELD departamento
END IF
DISPLAY BY NAME depto.*
DISPLAY BY NAME depto.departamento, depto.nom_dpto, depto.status_t, depto.us_crea,
depto.fech_crea, depto.us_mod, depto.fech_mod
LET numero_msg = 12
CALL msg(numero_msg)
LET depto.nom_dpto = NULL
@@ -113,10 +115,12 @@ FUNCTION adpcad001()
CALL msg(numero_msg)
NEXT FIELD nom_dpto
ELSE
INSERT INTO adtb00001 VALUES (depto.departamento,depto.nom_dpto,
INSERT INTO adtb00001 (departamento,nom_dpto,status_t,us_crea,fech_crea,us_mod,fech_mod)
VALUES (depto.departamento,depto.nom_dpto,
null, SUSER_SNAME (), GETDATE (), null, null)
INSERT INTO adtb00029 VALUES (depto.departamento,m_estado_a,m_estado_m,
INSERT INTO adtb00029 (departamento,estado_a,estado_m,depto_ant,estatus_t,us_crea,fech_crea,us_mod,fech_mod)
VALUES (depto.departamento,m_estado_a,m_estado_m,
depto.departamento,null,SUSER_SNAME(), GETDATE (),null,null)
LET m_depto = depto.departamento
@@ -159,7 +163,7 @@ FUNCTION adpcmf001()
RETURN
END IF
LET SELEC = " SELECT UNIQUE * FROM adtb00001 where ",
LET SELEC = " SELECT DISTINCT * FROM adtb00001 where ",
" status_t is null and ",
criterio clipped,
" ORDER BY 1"
@@ -246,9 +250,7 @@ FUNCTION adpcmf001()
END IF
## SE SELECCIONAN LOS CAMPOS QUE SON MODIFICABLES
INPUT BY NAME depto.nom_dpto,
m_estado_a,
m_estado_m WITHOUT DEFAULTS
INPUT BY NAME depto.nom_dpto WITHOUT DEFAULTS
AFTER FIELD nom_dpto
IF depto.nom_dpto IS NULL THEN
@@ -283,9 +285,7 @@ FUNCTION adpcmf001()
UPDATE chequeo SET nom_dpto = depto.nom_dpto
WHERE departamento = depto.departamento
UPDATE adtb00029 SET estado_a = m_estado_a,
estado_m = m_estado_m,
us_mod = SUSER_NAME(),
UPDATE adtb00029 SET us_mod = SUSER_NAME(),
fech_mod = GETDATE()
WHERE departamento = depto.departamento
+8 -1
View File
@@ -754,8 +754,15 @@
<Group id="328490448" label="ADMINISTRACION PERSONAL">
<Library binaryName="FORMULARIOS_AD" id="1612573873" label="FORMULARIOS_AD">
<File filePath="addir/adfmwd004.per"/>
<File filePath="addir/adfmmt001.4fd"/>
</Library>
<Library binaryName="FUNCIONES_AD" id="114070979" label="FUNCIONES_AD"/>
<Library binaryName="FUNCIONES_AD" id="114070979" label="FUNCIONES_AD">
<File filePath="addir/adprgb000.4gl"/>
</Library>
<Application binaryName="adprmt001" dependencies="-1026233879,-764824792,114070979,1612573873" id="-700000099" label="adprmt001">
<Configuration commandLineArguments="alopez Lopez2023" id="-700000100" label="Configuration"/>
<File filePath="addir/adprmt001.4gl"/>
</Application>
</Group>
<Group id="942743738" label="NOMINA">
<Library binaryName="FORMULARIOS_NO" id="-335228674" label="FORMULARIOS_NO">