Compare commits

...
3 Commits
Author SHA1 Message Date
Abel López 9c520ec3ad Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-10-19 17:24:20 -04:00
Abel LópezandClaude Sonnet 5.5 548dc62d4a Registra adprmt017 (Accion de Personal) y corrige bugs de Genero 6
- Registra adprmt017 y sus formularios (adfmmt017, adfmwd007/008/017/018/019)
  en ADMINISTRACION PERSONAL. adfmwd009.per no se registra: solo lo abre
  busca_movi(), que nadie llama.
- adfunciones.4gl pasa a la libreria FUNCIONES_ADF (el mismo archivo no puede
  estar en dos aplicaciones); noprcs004 y adprmt017 dependen de ella.
- adfmwd008.per: DATABASE rayovac -> smarmotech (-6601).
- adprmt017.4gl: CONVERT(CHAR(10),fecha,103/101) hacia variables DATE -> se
  lee la columna fecha directa (-1205); sexo del titular con
  ISNULL(cod_par,0)=0 (adtb00021 tiene cod_par/sec_par NULL); un tipo_mov
  vacio (AUMENTO SALARIAL, CONTRATACION) ya no se atora en cod_sol.
Verificado contra la BD .250: Nuevo de AUMENTO SALARIAL (accion 5387, empleado
110) graba adtb00020 sin cambiar adtb00003. Capacitacion/Desvinculacion no
probadas: las tablas adtb00059-62 no existen en la .250.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:22:34 -04:00
Abel LópezandClaude Sonnet 5.5 31daca8636 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>
2026-10-19 11:24:54 -04:00
4 changed files with 53 additions and 33 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
FECHA REALIZACION : Junio 24, 1993
------------------------------------------------------------------------
}
DATABASE rayovac
DATABASE smarmotech
SCREEN SIZE 24 by 80
{
Busqueda de los Niveles de Empleados
+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
+18 -18
View File
@@ -289,7 +289,7 @@ FUNCTION adpcad017()
## SELECCIONA LA FECHA DE INGRESO Y EL SUELDO DE LA TABLA DE CONTRATACION
## Y SELECCION DE EMPLEADOS
SELECT UNIQUE convert(char(10),a.fech_efec,101),a.sueldo,b.cod_sol
SELECT UNIQUE a.fech_efec,a.sueldo,b.cod_sol
INTO contra.fech_efec,contra.sueldo,parece.cod_sol
FROM adtb00019 a,adtb00018 b
WHERE a.cod_sol = b.cod_sol and b.cod_sol = acc_per.cod_sol and
@@ -301,7 +301,7 @@ FUNCTION adpcad017()
END IF
IF xtipo <> 'INGRESO' THEN
IF xtipo IS NULL OR xtipo <> 'INGRESO' THEN
LET acc_per.cod_sol = NULL
NEXT FIELD fecha
END IF
@@ -309,9 +309,9 @@ FUNCTION adpcad017()
## VERIFICA QUE EL SOLICITANTE EXISTE EN LA TABLA DE SOLICITANTES. SI EXISTE
## LO PRESENTA EN PANTALLA.
SELECT cod_sol,convert(char(10),fecha,101),nom1_sol,nom2_sol,apell1_sol,
SELECT cod_sol,fecha,nom1_sol,nom2_sol,apell1_sol,
apell2_sol,calle,casa_num,barrio,urbanizacion,telefono,
cod_provincia,convert(char(10),fech_nac,101),cod_nac,estado_civil,estatura,
cod_provincia,fech_nac,cod_nac,estado_civil,estatura,
peso,cedula,licencia,tipo_sangre,cod_puesto,
cod_prof,sexo,status_t,us_crea,fech_crea,us_mod,fech_mod,
serie
@@ -372,12 +372,12 @@ FUNCTION adpcad017()
## CHEQUEA QUE EL EMPLEADO EXISTA EN LA TABLA DE EMPLEADOS. SI EXISTE
## DESPLEGA TODA LA INFORMACION REFERENTE AL EMPLEADO.
IF xtipo <> 'INGRESO' THEN
IF xtipo IS NULL OR xtipo <> 'INGRESO' THEN
SELECT b.departamento,b.nivel_emp,b.cod_puesto,b.nom1_emp,
b.nom2_emp,b.apell1_emp,b.apell2_emp,b.sueldo_ac,
b.nomina,b.estado_civil,b.tipo_sangre,
b.cedula,b.cuenta_no,CONVERT(char(10),b.fech_efec,103),b.tipo_sueldo
b.cedula,b.cuenta_no,b.fech_efec,b.tipo_sueldo
INTO acc_per.departamento,acc_per.nivel_emp,acc_per.cod_puesto,
nombre9,nombre10,apellido9,apellido10,acc_per.sueldo_ac,
acc_per.nomina,acc_per.estado_civil,acc_per.tipo_sangre,
@@ -402,8 +402,8 @@ FUNCTION adpcad017()
WHERE k.cod_puesto = acc_per.cod_puesto and k.status_t is null
SELECT UNIQUE a.sexo INTO acc_per.sexo FROM adtb00021 a
WHERE a.num_emp = acc_per.num_emp AND a.cod_par = 0 AND
a.sec_par = 0
WHERE a.num_emp = acc_per.num_emp AND ISNULL(a.cod_par,0) = 0 AND
ISNULL(a.sec_par,0) = 0
SELECT a.nis INTO pnis FROM adtb00030 a
WHERE a.num_emp = acc_per.num_emp
@@ -905,7 +905,7 @@ FUNCTION adpcad017()
personal.serie USING "<<<"
SELECT UNIQUE num_emp FROM adtb00021
WHERE num_emp = acc_per.num_emp AND cod_par = 0 AND sec_par = 0
WHERE num_emp = acc_per.num_emp AND ISNULL(cod_par,0) = 0 AND ISNULL(sec_par,0) = 0
IF STATUS = NOTFOUND THEN
@@ -1001,14 +1001,14 @@ FUNCTION adpcmf017()
END IF
LET selec =
"SELECT UNIQUE a.num_trx,a.cod_mto,a.cod_sol,convert(char(10),a.fecha,103), ",
" CONVERT(CHAR(10),a.fech_efec,103),a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto, ",
"SELECT UNIQUE a.num_trx,a.cod_mto,a.cod_sol,a.fecha, ",
" a.fech_efec,a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto, ",
" a.sueldo_ac,a.nomina,a.estado_civil,b.sexo,a.tipo_sangre, ",
" a.sueldo_lq,a.observacion,a.num1_emp,a.departamento1, ",
" a.nivel1_emp,a.cod1_puesto,a.num2_emp,a.departamento2, ",
" a.nivel2_emp,a.cod2_puesto,a.num3_emp,a.departamento3, ",
" a.nivel3_emp,a.cod3_puesto,c.cedula,a.us_crea,a.fech_crea,a.us_mod, ",
" a.fech_mod,CASE a.status_t WHEN 'E' THEN 'ANULADO' ELSE 'ACTIVO' END, CONVERT(CHAR(10),c.fech_nac,103) ",
" a.fech_mod,CASE a.status_t WHEN 'E' THEN 'ANULADO' ELSE 'ACTIVO' END, c.fech_nac ",
"FROM adtb00020 a,adtb00003 c LEFT OUTER JOIN adtb00021 b ON b.num_emp = c.num_emp ",
"WHERE a.num_emp = c.num_emp AND ",criterio clipped,
" ORDER BY a.num_emp"
@@ -1580,7 +1580,7 @@ FUNCTION adpcmf017()
END IF
UPDATE adtb00021 SET sexo = acc_per.sexo WHERE num_emp = acc_per.num_emp
AND cod_par = 0 AND sec_par=0
AND ISNULL(cod_par,0) = 0 AND ISNULL(sec_par,0) = 0
UPDATE adtb00017 SET departamento = acc_per.departamento,
nivel_emp = acc_per.nivel_emp,
cod_puesto = acc_per.cod_puesto,
@@ -1668,7 +1668,7 @@ FUNCTION desplegar()
SELECT b.departamento,b.nivel_emp,b.cod_puesto,b.nom1_emp,
b.nom2_emp,b.apell1_emp,b.apell2_emp,b.sueldo_ac,
b.nomina,b.estado_civil,b.tipo_sangre,
b.cedula,b.cuenta_no,CONVERT(char(10),b.fech_efec,103),
b.cedula,b.cuenta_no,b.fech_efec,
b.sueldo_ac
INTO acc_per.departamento,acc_per.nivel_emp,acc_per.cod_puesto,
nombre9,nombre10,apellido9,apellido10,acc_per.sueldo_ac,
@@ -1764,7 +1764,7 @@ nombre5 clipped," ",nombre6 clipped," ",apellido5 clipped," ",apellido6 clipped
## DATOS VACACIONES
IF xtipo = 'VACACIONES' THEN
INITIALIZE vacacion.* TO NULL
SELECT a.cod_mov,a.cod_mov2,a.num_dias_disfrute,CONVERT(CHAR(10),a.fecha_sal,103),CONVERT(CHAR(10),a.fecha_ent,103),
SELECT a.cod_mov,a.cod_mov2,a.num_dias_disfrute,a.fecha_sal,a.fecha_ent,
a.num_nomi,
a.num_dias_disfrute,a.periodo,a.valor_vacaciones,a.num_dias_pagados,a.proporcion_vacaciones
INTO vacacion.cod_mov1,vacacion.cod_mov2,vacacion.dias_vac,vacacion.fecha_sal,vacacion.fecha_ent,
@@ -1930,7 +1930,7 @@ FUNCTION vacaciones(operacion)
LET salario_acumulado = 0
IF vacacion.cod_mov1 = 36 THEN
LET salario = 0
SELECT CONVERT(CHAR(10),a.fech_efec,103),a.sueldo_ac INTO fecha_entrada_emp,salario
SELECT a.fech_efec,a.sueldo_ac INTO fecha_entrada_emp,salario
FROM adtb00003 a
WHERE a.num_emp = acc_per.num_emp
@@ -2011,7 +2011,7 @@ FUNCTION vacaciones(operacion)
END INPUT
ELSE
LET salario = 0
SELECT CONVERT(CHAR(10),a.fech_efec,103),a.sueldo_ac INTO fecha_entrada_emp,salario
SELECT a.fech_efec,a.sueldo_ac INTO fecha_entrada_emp,salario
FROM adtb00003 a
WHERE a.num_emp = acc_per.num_emp
LET salario_quincenal = salario /2
@@ -2733,7 +2733,7 @@ ON EVERY ROW
SELECT COUNT(*) INTO depende FROM adtb00013
WHERE cod_sol = codigo_s AND cod_par = 4
SELECT a.cod_provincia,CONVERT(CHAR(10),a.fech_nac,103),a.cod_nac
SELECT a.cod_provincia,a.fech_nac,a.cod_nac
INTO cod_provincia,fecha_nac,codigo_n
FROM adtb00012 a
WHERE a.cod_sol = codigo_s
+23 -3
View File
@@ -953,8 +953,29 @@
<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"/>
<File filePath="addir/adfmmt017.4fd"/>
<File filePath="addir/adfmwd007.4fd"/>
<File filePath="addir/adfmwd008.per"/>
<File filePath="addir/adfmwd017.per"/>
<File filePath="addir/adfmwd018.per"/>
<File filePath="addir/adfmwd019.per"/>
</Library>
<Library binaryName="FUNCIONES_AD" id="114070979" label="FUNCIONES_AD"/>
<Library binaryName="FUNCIONES_ADF" id="-700000103" label="FUNCIONES_ADF">
<File filePath="addir/adfunciones.4gl"/>
</Library>
<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>
<Application binaryName="adprmt017" dependencies="-1026233879,-764824792,114070979,1612573873,-1423229125,-700000103" externalDependencies="libgre.42x" id="-700000101" label="adprmt017">
<Configuration commandLineArguments="alopez Lopez2023" id="-700000102" label="Configuration"/>
<File filePath="addir/adprmt017.4gl"/>
<File filePath="bin/adprmt017.4rp"/>
</Application>
</Group>
<Group id="942743738" label="NOMINA">
<Library binaryName="FORMULARIOS_NO" id="-335228674" label="FORMULARIOS_NO">
@@ -1045,10 +1066,9 @@
<Configuration commandLineArguments="alopez Lopez2023" id="-700000070" label="Configuration"/>
<File filePath="nodir/noprcs002.4gl"/>
</Application>
<Application binaryName="noprcs004" dependencies="-1026233879,-764824792,-306412216,-335228674" id="-700000071" label="noprcs004">
<Application binaryName="noprcs004" dependencies="-1026233879,-764824792,-306412216,-335228674,-700000103" id="-700000071" label="noprcs004">
<Configuration commandLineArguments="alopez Lopez2023" id="-700000072" label="Configuration"/>
<File filePath="nodir/noprcs004.4gl"/>
<File filePath="addir/adfunciones.4gl"/>
</Application>
<Application binaryName="noprcs006" dependencies="-1026233879,-764824792,-306412216,-335228674,-1423229125" externalDependencies="libgre.42x" id="-700000073" label="noprcs006">
<Configuration commandLineArguments="alopez Lopez2023" id="-700000074" label="Configuration"/>