Merge origin/main en main local (ipprmt044, lqprrp009)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
FECHA REALIZACION : Junio 24, 1993
|
FECHA REALIZACION : Junio 24, 1993
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
DATABASE rayovac
|
DATABASE smarmotech
|
||||||
SCREEN SIZE 24 by 80
|
SCREEN SIZE 24 by 80
|
||||||
{
|
{
|
||||||
Busqueda de los Niveles de Empleados
|
Busqueda de los Niveles de Empleados
|
||||||
|
|||||||
@@ -55,7 +55,8 @@ FUNCTION adpcad001()
|
|||||||
{WHENEVER ERROR CONTINUE}
|
{WHENEVER ERROR CONTINUE}
|
||||||
|
|
||||||
## CAPTURA LOS DATOS QUE VA A CONTENER EL REGISTRO
|
## 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,
|
## VERIFICA QUE EL CODIGO NO EXISTA EN EL CATALOGO DE DEPARTAMENTO. SI EXISTE,
|
||||||
## ENTONCES DESPLEGA LOS DATOS DEL REGISTRO EXISTENTE.
|
## ENTONCES DESPLEGA LOS DATOS DEL REGISTRO EXISTENTE.
|
||||||
@@ -77,7 +78,8 @@ FUNCTION adpcad001()
|
|||||||
NEXT FIELD departamento
|
NEXT FIELD departamento
|
||||||
END IF
|
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
|
LET numero_msg = 12
|
||||||
CALL msg(numero_msg)
|
CALL msg(numero_msg)
|
||||||
LET depto.nom_dpto = NULL
|
LET depto.nom_dpto = NULL
|
||||||
@@ -113,10 +115,12 @@ FUNCTION adpcad001()
|
|||||||
CALL msg(numero_msg)
|
CALL msg(numero_msg)
|
||||||
NEXT FIELD nom_dpto
|
NEXT FIELD nom_dpto
|
||||||
ELSE
|
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)
|
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)
|
depto.departamento,null,SUSER_SNAME(), GETDATE (),null,null)
|
||||||
|
|
||||||
LET m_depto = depto.departamento
|
LET m_depto = depto.departamento
|
||||||
@@ -159,7 +163,7 @@ FUNCTION adpcmf001()
|
|||||||
RETURN
|
RETURN
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
LET SELEC = " SELECT UNIQUE * FROM adtb00001 where ",
|
LET SELEC = " SELECT DISTINCT * FROM adtb00001 where ",
|
||||||
" status_t is null and ",
|
" status_t is null and ",
|
||||||
criterio clipped,
|
criterio clipped,
|
||||||
" ORDER BY 1"
|
" ORDER BY 1"
|
||||||
@@ -246,9 +250,7 @@ FUNCTION adpcmf001()
|
|||||||
END IF
|
END IF
|
||||||
|
|
||||||
## SE SELECCIONAN LOS CAMPOS QUE SON MODIFICABLES
|
## SE SELECCIONAN LOS CAMPOS QUE SON MODIFICABLES
|
||||||
INPUT BY NAME depto.nom_dpto,
|
INPUT BY NAME depto.nom_dpto WITHOUT DEFAULTS
|
||||||
m_estado_a,
|
|
||||||
m_estado_m WITHOUT DEFAULTS
|
|
||||||
|
|
||||||
AFTER FIELD nom_dpto
|
AFTER FIELD nom_dpto
|
||||||
IF depto.nom_dpto IS NULL THEN
|
IF depto.nom_dpto IS NULL THEN
|
||||||
@@ -283,9 +285,7 @@ FUNCTION adpcmf001()
|
|||||||
UPDATE chequeo SET nom_dpto = depto.nom_dpto
|
UPDATE chequeo SET nom_dpto = depto.nom_dpto
|
||||||
WHERE departamento = depto.departamento
|
WHERE departamento = depto.departamento
|
||||||
|
|
||||||
UPDATE adtb00029 SET estado_a = m_estado_a,
|
UPDATE adtb00029 SET us_mod = SUSER_NAME(),
|
||||||
estado_m = m_estado_m,
|
|
||||||
us_mod = SUSER_NAME(),
|
|
||||||
fech_mod = GETDATE()
|
fech_mod = GETDATE()
|
||||||
WHERE departamento = depto.departamento
|
WHERE departamento = depto.departamento
|
||||||
|
|
||||||
|
|||||||
@@ -289,7 +289,7 @@ FUNCTION adpcad017()
|
|||||||
## SELECCIONA LA FECHA DE INGRESO Y EL SUELDO DE LA TABLA DE CONTRATACION
|
## SELECCIONA LA FECHA DE INGRESO Y EL SUELDO DE LA TABLA DE CONTRATACION
|
||||||
## Y SELECCION DE EMPLEADOS
|
## 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
|
INTO contra.fech_efec,contra.sueldo,parece.cod_sol
|
||||||
FROM adtb00019 a,adtb00018 b
|
FROM adtb00019 a,adtb00018 b
|
||||||
WHERE a.cod_sol = b.cod_sol and b.cod_sol = acc_per.cod_sol and
|
WHERE a.cod_sol = b.cod_sol and b.cod_sol = acc_per.cod_sol and
|
||||||
@@ -301,7 +301,7 @@ FUNCTION adpcad017()
|
|||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
|
||||||
IF xtipo <> 'INGRESO' THEN
|
IF xtipo IS NULL OR xtipo <> 'INGRESO' THEN
|
||||||
LET acc_per.cod_sol = NULL
|
LET acc_per.cod_sol = NULL
|
||||||
NEXT FIELD fecha
|
NEXT FIELD fecha
|
||||||
END IF
|
END IF
|
||||||
@@ -309,9 +309,9 @@ FUNCTION adpcad017()
|
|||||||
## VERIFICA QUE EL SOLICITANTE EXISTE EN LA TABLA DE SOLICITANTES. SI EXISTE
|
## VERIFICA QUE EL SOLICITANTE EXISTE EN LA TABLA DE SOLICITANTES. SI EXISTE
|
||||||
## LO PRESENTA EN PANTALLA.
|
## 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,
|
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,
|
peso,cedula,licencia,tipo_sangre,cod_puesto,
|
||||||
cod_prof,sexo,status_t,us_crea,fech_crea,us_mod,fech_mod,
|
cod_prof,sexo,status_t,us_crea,fech_crea,us_mod,fech_mod,
|
||||||
serie
|
serie
|
||||||
@@ -372,12 +372,12 @@ FUNCTION adpcad017()
|
|||||||
## CHEQUEA QUE EL EMPLEADO EXISTA EN LA TABLA DE EMPLEADOS. SI EXISTE
|
## CHEQUEA QUE EL EMPLEADO EXISTA EN LA TABLA DE EMPLEADOS. SI EXISTE
|
||||||
## DESPLEGA TODA LA INFORMACION REFERENTE AL EMPLEADO.
|
## 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,
|
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.nom2_emp,b.apell1_emp,b.apell2_emp,b.sueldo_ac,
|
||||||
b.nomina,b.estado_civil,b.tipo_sangre,
|
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,
|
INTO acc_per.departamento,acc_per.nivel_emp,acc_per.cod_puesto,
|
||||||
nombre9,nombre10,apellido9,apellido10,acc_per.sueldo_ac,
|
nombre9,nombre10,apellido9,apellido10,acc_per.sueldo_ac,
|
||||||
acc_per.nomina,acc_per.estado_civil,acc_per.tipo_sangre,
|
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
|
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
|
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
|
WHERE a.num_emp = acc_per.num_emp AND ISNULL(a.cod_par,0) = 0 AND
|
||||||
a.sec_par = 0
|
ISNULL(a.sec_par,0) = 0
|
||||||
|
|
||||||
SELECT a.nis INTO pnis FROM adtb00030 a
|
SELECT a.nis INTO pnis FROM adtb00030 a
|
||||||
WHERE a.num_emp = acc_per.num_emp
|
WHERE a.num_emp = acc_per.num_emp
|
||||||
@@ -905,7 +905,7 @@ FUNCTION adpcad017()
|
|||||||
personal.serie USING "<<<"
|
personal.serie USING "<<<"
|
||||||
|
|
||||||
SELECT UNIQUE num_emp FROM adtb00021
|
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
|
IF STATUS = NOTFOUND THEN
|
||||||
|
|
||||||
@@ -1001,14 +1001,14 @@ FUNCTION adpcmf017()
|
|||||||
END IF
|
END IF
|
||||||
|
|
||||||
LET selec =
|
LET selec =
|
||||||
"SELECT UNIQUE a.num_trx,a.cod_mto,a.cod_sol,convert(char(10),a.fecha,103), ",
|
"SELECT UNIQUE a.num_trx,a.cod_mto,a.cod_sol,a.fecha, ",
|
||||||
" CONVERT(CHAR(10),a.fech_efec,103),a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto, ",
|
" 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_ac,a.nomina,a.estado_civil,b.sexo,a.tipo_sangre, ",
|
||||||
" a.sueldo_lq,a.observacion,a.num1_emp,a.departamento1, ",
|
" a.sueldo_lq,a.observacion,a.num1_emp,a.departamento1, ",
|
||||||
" a.nivel1_emp,a.cod1_puesto,a.num2_emp,a.departamento2, ",
|
" a.nivel1_emp,a.cod1_puesto,a.num2_emp,a.departamento2, ",
|
||||||
" a.nivel2_emp,a.cod2_puesto,a.num3_emp,a.departamento3, ",
|
" 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.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 ",
|
"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,
|
"WHERE a.num_emp = c.num_emp AND ",criterio clipped,
|
||||||
" ORDER BY a.num_emp"
|
" ORDER BY a.num_emp"
|
||||||
@@ -1580,7 +1580,7 @@ FUNCTION adpcmf017()
|
|||||||
END IF
|
END IF
|
||||||
|
|
||||||
UPDATE adtb00021 SET sexo = acc_per.sexo WHERE num_emp = acc_per.num_emp
|
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,
|
UPDATE adtb00017 SET departamento = acc_per.departamento,
|
||||||
nivel_emp = acc_per.nivel_emp,
|
nivel_emp = acc_per.nivel_emp,
|
||||||
cod_puesto = acc_per.cod_puesto,
|
cod_puesto = acc_per.cod_puesto,
|
||||||
@@ -1668,7 +1668,7 @@ FUNCTION desplegar()
|
|||||||
SELECT b.departamento,b.nivel_emp,b.cod_puesto,b.nom1_emp,
|
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.nom2_emp,b.apell1_emp,b.apell2_emp,b.sueldo_ac,
|
||||||
b.nomina,b.estado_civil,b.tipo_sangre,
|
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
|
b.sueldo_ac
|
||||||
INTO acc_per.departamento,acc_per.nivel_emp,acc_per.cod_puesto,
|
INTO acc_per.departamento,acc_per.nivel_emp,acc_per.cod_puesto,
|
||||||
nombre9,nombre10,apellido9,apellido10,acc_per.sueldo_ac,
|
nombre9,nombre10,apellido9,apellido10,acc_per.sueldo_ac,
|
||||||
@@ -1764,7 +1764,7 @@ nombre5 clipped," ",nombre6 clipped," ",apellido5 clipped," ",apellido6 clipped
|
|||||||
## DATOS VACACIONES
|
## DATOS VACACIONES
|
||||||
IF xtipo = 'VACACIONES' THEN
|
IF xtipo = 'VACACIONES' THEN
|
||||||
INITIALIZE vacacion.* TO NULL
|
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_nomi,
|
||||||
a.num_dias_disfrute,a.periodo,a.valor_vacaciones,a.num_dias_pagados,a.proporcion_vacaciones
|
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,
|
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
|
LET salario_acumulado = 0
|
||||||
IF vacacion.cod_mov1 = 36 THEN
|
IF vacacion.cod_mov1 = 36 THEN
|
||||||
LET salario = 0
|
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
|
FROM adtb00003 a
|
||||||
WHERE a.num_emp = acc_per.num_emp
|
WHERE a.num_emp = acc_per.num_emp
|
||||||
|
|
||||||
@@ -2011,7 +2011,7 @@ FUNCTION vacaciones(operacion)
|
|||||||
END INPUT
|
END INPUT
|
||||||
ELSE
|
ELSE
|
||||||
LET salario = 0
|
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
|
FROM adtb00003 a
|
||||||
WHERE a.num_emp = acc_per.num_emp
|
WHERE a.num_emp = acc_per.num_emp
|
||||||
LET salario_quincenal = salario /2
|
LET salario_quincenal = salario /2
|
||||||
@@ -2733,7 +2733,7 @@ ON EVERY ROW
|
|||||||
SELECT COUNT(*) INTO depende FROM adtb00013
|
SELECT COUNT(*) INTO depende FROM adtb00013
|
||||||
WHERE cod_sol = codigo_s AND cod_par = 4
|
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
|
INTO cod_provincia,fecha_nac,codigo_n
|
||||||
FROM adtb00012 a
|
FROM adtb00012 a
|
||||||
WHERE a.cod_sol = codigo_s
|
WHERE a.cod_sol = codigo_s
|
||||||
|
|||||||
@@ -2758,11 +2758,11 @@ REPORT cctb01b(
|
|||||||
|
|
||||||
END REPORT
|
END REPORT
|
||||||
FUNCTION verifica_orden()
|
FUNCTION verifica_orden()
|
||||||
LET tieneorden = TRUE
|
DEFINE cuantas INT
|
||||||
SELECT a.num_oc
|
# COUNT(*) en vez de SELECT num_oc: con ordenes duplicadas daba -284
|
||||||
|
LET cuantas = 0
|
||||||
|
SELECT COUNT(*) INTO cuantas
|
||||||
FROM prtb00012 a
|
FROM prtb00012 a
|
||||||
WHERE a.cotizacion_no = recibo_nc.num_orden AND a.status_T IS NULL
|
WHERE a.cotizacion_no = recibo_nc.num_orden AND a.status_T IS NULL
|
||||||
IF STATUS = NOTFOUND THEN
|
LET tieneorden = (cuantas > 0)
|
||||||
LET tieneorden = FALSE
|
|
||||||
END IF
|
|
||||||
END FUNCTION
|
END FUNCTION
|
||||||
|
|||||||
+23
-3
@@ -965,8 +965,29 @@
|
|||||||
<Group id="328490448" label="ADMINISTRACION PERSONAL">
|
<Group id="328490448" label="ADMINISTRACION PERSONAL">
|
||||||
<Library binaryName="FORMULARIOS_AD" id="1612573873" label="FORMULARIOS_AD">
|
<Library binaryName="FORMULARIOS_AD" id="1612573873" label="FORMULARIOS_AD">
|
||||||
<File filePath="addir/adfmwd004.per"/>
|
<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>
|
||||||
<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>
|
||||||
<Group id="942743738" label="NOMINA">
|
<Group id="942743738" label="NOMINA">
|
||||||
<Library binaryName="FORMULARIOS_NO" id="-335228674" label="FORMULARIOS_NO">
|
<Library binaryName="FORMULARIOS_NO" id="-335228674" label="FORMULARIOS_NO">
|
||||||
@@ -1057,10 +1078,9 @@
|
|||||||
<Configuration commandLineArguments="alopez Lopez2023" id="-700000070" label="Configuration"/>
|
<Configuration commandLineArguments="alopez Lopez2023" id="-700000070" label="Configuration"/>
|
||||||
<File filePath="nodir/noprcs002.4gl"/>
|
<File filePath="nodir/noprcs002.4gl"/>
|
||||||
</Application>
|
</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"/>
|
<Configuration commandLineArguments="alopez Lopez2023" id="-700000072" label="Configuration"/>
|
||||||
<File filePath="nodir/noprcs004.4gl"/>
|
<File filePath="nodir/noprcs004.4gl"/>
|
||||||
<File filePath="addir/adfunciones.4gl"/>
|
|
||||||
</Application>
|
</Application>
|
||||||
<Application binaryName="noprcs006" dependencies="-1026233879,-764824792,-306412216,-335228674,-1423229125" externalDependencies="libgre.42x" id="-700000073" label="noprcs006">
|
<Application binaryName="noprcs006" dependencies="-1026233879,-764824792,-306412216,-335228674,-1423229125" externalDependencies="libgre.42x" id="-700000073" label="noprcs006">
|
||||||
<Configuration commandLineArguments="alopez Lopez2023" id="-700000074" label="Configuration"/>
|
<Configuration commandLineArguments="alopez Lopez2023" id="-700000074" label="Configuration"/>
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ END MAIN
|
|||||||
FUNCTION show_mbs(d)
|
FUNCTION show_mbs(d)
|
||||||
DEFINE d ui.Dialog
|
DEFINE d ui.Dialog
|
||||||
DEFINE rdir, rmbs INTEGER
|
DEFINE rdir, rmbs INTEGER
|
||||||
|
DEFINE runtime STRING
|
||||||
DEFINE cmd STRING,file_path VARCHAR(100),
|
DEFINE cmd STRING,file_path VARCHAR(100),
|
||||||
strconect VARCHAR(20)
|
strconect VARCHAR(20)
|
||||||
|
|
||||||
@@ -116,9 +117,24 @@ FUNCTION show_mbs(d)
|
|||||||
a.programa = pprograma
|
a.programa = pprograma
|
||||||
# LET file_path = 'E:\\MARMOTECHC\\BIN320'
|
# LET file_path = 'E:\\MARMOTECHC\\BIN320'
|
||||||
DISPLAY BY NAME file_path,pperfil
|
DISPLAY BY NAME file_path,pperfil
|
||||||
DISPLAY "mainmenu credenciales: ",usuario clipped," ",clave clipped," ",file_path clipped
|
-- (antes imprimia usuario y CLAVE en texto claro en la consola/log)
|
||||||
LET cmd = "fglrun ",file_path CLIPPED, "\\",mbs[rmbs].prog, ".42r " ,usuario CLIPPED," ",clave CLIPPED,
|
DISPLAY "mainmenu ejecuta: ",mbs[rmbs].prog CLIPPED," desde ",file_path CLIPPED
|
||||||
|
-- Mismo runtime que el menu (no el primer "fglrun" del PATH del servidor)
|
||||||
|
LET runtime = fgl_getenv("FGLDIR")
|
||||||
|
IF runtime IS NULL OR runtime.getLength() = 0 THEN
|
||||||
|
LET runtime = "fglrun"
|
||||||
|
ELSE
|
||||||
|
LET runtime = '"', runtime, '\\bin\\fglrun"'
|
||||||
|
END IF
|
||||||
|
LET cmd = runtime," ",file_path CLIPPED, "\\",mbs[rmbs].prog, ".42r " ,usuario CLIPPED," ",clave CLIPPED,
|
||||||
" ",pprinter1 ," ",pprinter2, " ",ckprinter," ",file_path," ",strconect
|
" ",pprinter1 ," ",pprinter2, " ",ckprinter," ",file_path," ",strconect
|
||||||
|
-- El programa arranca parado en su ruta de seg0005 (como en 3.20): ahi estan
|
||||||
|
-- cert\, filesXML\, net6.0\, tmp\... que la factura electronica busca con rutas
|
||||||
|
-- relativas, y sus .42m. Sin esto heredaba como directorio de trabajo la carpeta
|
||||||
|
-- del despliegue del GAR (que cambia en cada deploy y llego a tener .42m de 3.20).
|
||||||
|
IF file_path IS NOT NULL AND LENGTH(file_path CLIPPED) > 0 THEN
|
||||||
|
LET cmd = 'cd /d "', file_path CLIPPED, '" && ', cmd
|
||||||
|
END IF
|
||||||
|
|
||||||
RUN cmd WITHOUT WAITING
|
RUN cmd WITHOUT WAITING
|
||||||
UPDATE seg0001 SET ultimo_programa_ejecutado = pprograma WHERE seg0001.usuario = usuario
|
UPDATE seg0001 SET ultimo_programa_ejecutado = pprograma WHERE seg0001.usuario = usuario
|
||||||
|
|||||||
@@ -126,6 +126,18 @@ FUNCTION convierteorden(
|
|||||||
UPDATE prtb00020
|
UPDATE prtb00020
|
||||||
SET num_oc = ISNULL(num_oc, 0) + 1, us_crea = xusuario, fech_crea = GETDATE()
|
SET num_oc = ISNULL(num_oc, 0) + 1, us_crea = xusuario, fech_crea = GETDATE()
|
||||||
SELECT num_oc INTO ult_numero FROM prtb00020
|
SELECT num_oc INTO ult_numero FROM prtb00020
|
||||||
|
# RE-VALIDACION YA CON EL BLOQUEO DE prtb00020: la validacion del inicio
|
||||||
|
# corre fuera de la transaccion; si otro usuario estaba convirtiendo la
|
||||||
|
# misma cotizacion, aqui ya vemos su orden confirmada (cot 340001, 20/10/2026)
|
||||||
|
LET existe_oc = 0
|
||||||
|
SELECT COUNT(*) INTO existe_oc FROM prtb00012
|
||||||
|
WHERE cotizacion_no = xcotizacion_no AND status_t IS NULL
|
||||||
|
IF existe_oc > 0 THEN
|
||||||
|
ROLLBACK WORK
|
||||||
|
CALL fgl_winmessage(
|
||||||
|
"ERROR", "COTIZACION TIENE ORDEN, NO PUEDE CREAR ORDEN", "STOP")
|
||||||
|
RETURN 0, FALSE
|
||||||
|
END IF
|
||||||
# AUTOCORRECCION: si el contador quedo por detras de prtb00012
|
# AUTOCORRECCION: si el contador quedo por detras de prtb00012
|
||||||
# (otro programa creo ordenes sin avanzarlo), salta al siguiente libre
|
# (otro programa creo ordenes sin avanzarlo), salta al siguiente libre
|
||||||
LET existe_oc = 0
|
LET existe_oc = 0
|
||||||
|
|||||||
@@ -139,6 +139,17 @@ BEGIN WORK
|
|||||||
us_crea = xusuario,
|
us_crea = xusuario,
|
||||||
fech_crea = GETDATE()
|
fech_crea = GETDATE()
|
||||||
SELECT num_oc INTO ult_numero FROM prtb00020
|
SELECT num_oc INTO ult_numero FROM prtb00020
|
||||||
|
# RE-VALIDACION YA CON EL BLOQUEO DE prtb00020: evita dos ordenes para la
|
||||||
|
# misma cotizacion si dos usuarios convierten a la vez (cot 340001, 20/10/2026)
|
||||||
|
LET existe_oc = 0
|
||||||
|
SELECT COUNT(*) INTO existe_oc FROM prtb00012
|
||||||
|
WHERE cotizacion_no = xcotizacion_no AND status_t IS NULL
|
||||||
|
IF existe_oc > 0 THEN
|
||||||
|
LET pmensaje_error =
|
||||||
|
SFMT("La cotizacion %1 ya tiene orden, no puede crear otra.", xcotizacion_no)
|
||||||
|
ROLLBACK WORK
|
||||||
|
RETURN 0,FALSE
|
||||||
|
END IF
|
||||||
# AUTOCORRECCION: si el contador quedo por detras de prtb00012, salta al siguiente libre
|
# AUTOCORRECCION: si el contador quedo por detras de prtb00012, salta al siguiente libre
|
||||||
LET existe_oc = 0
|
LET existe_oc = 0
|
||||||
SELECT COUNT(*) INTO existe_oc FROM prtb00012 WHERE num_oc = ult_numero
|
SELECT COUNT(*) INTO existe_oc FROM prtb00012 WHERE num_oc = ult_numero
|
||||||
|
|||||||
Reference in New Issue
Block a user