Files
MBS/PROYECTO/addir/adprgb000.4gl
T

744 lines
26 KiB
Plaintext

SCHEMA smarmotech
GLOBALS
DEFINE tipo_papel,cuenta_educa,cuenta_familia,cuenta_ref,cuenta_idioma SMALLINT
DEFINE bandera SMALLINT
DEFINE numero_emp CHAR(15),
r_filename VARCHAR(20),
preview INT
DEFINE decide,modifica,verdad,p_status,control CHAR(1)
DEFINE opc,opt2,existe,ya,opera1,cambio CHAR(1)
DEFINE opt CHAR(2)
DEFINE descrip CHAR(21)
DEFINE nombre1,nombre2,nombre3,nombre4,nombre5,nombre6 CHAR(15)
DEFINE nombre7,nombre8,apellido1,apellido2,apellido3 CHAR(15)
DEFINE apellido4,apellido5,apellido6,apellido7,apellido8,nombre9,nombre10,
apellido9,apellido10 CHAR(15)
DEFINE indice,fila SMALLINT
DEFINE numero_msg LIKE msgtable.cod_msg
DEFINE descrip1,descrip2,descrip3,descrip4,descrip5 CHAR(60)
DEFINE descr CHAR(9)
DEFINE desc_idioma CHAR(10)
DEFINE nombre,empleado,empleado1,empleado2 CHAR(60)
DEFINE criterio STRING
DEFINE selec3,selec2,selec1,selec STRING
DEFINE curr1,p_act,curr,scr_l SMALLINT,
idx INT
DEFINE opcion CHAR(1)
DEFINE nombre_mes ARRAY[12] OF CHAR(20)
DEFINE normal,negrilla_on,negrillas_of,comp_on,comp_off,doce,doble_on,doble_off
CHAR(3),cero,tipo_venta CHAR(10),
usuarios,clave CHAR(80),
HANDLER om.SaxDocumentHandler,
r_output CHAR(4)
DEFINE ultimo int
DEFINE p_companias RECORD LIKE companias.*
DEFINE letras RECORD
negrillas_on ,
negrillas_off ,
doble_on ,
doble_off ,
comp_on ,
comp_off ,
doce ,
normal CHAR(6)
END RECORD
DEFINE impresor SMALLINT,
imprime CHAR(80),
archivo,copia STRING,
parametro CHAR(2),
orden CHAR(1),
destino CHAR(1)
DEFINE rango RECORD
fech_in DATE,
fech_fi DATE
END RECORD
DEFINE datos RECORD
fech_ini DATE,
fech_fin DATE
END RECORD
DEFINE adtb13 RECORD
cod_par INTEGER,
sec_par INTEGER,
nombre CHAR(30),
cedula CHAR(20),
sexo CHAR(1),
fecha_nac DATE
END RECORD
DEFINE req_per RECORD
num_doc LIKE adtb00011.num_doc,
fecha LIKE adtb00011.fecha,
fech_req LIKE adtb00011.fech_req,
depart LIKE adtb00011.depart,
tipo_req LIKE adtb00011.tipo_req,
razon_vac LIKE adtb00011.razon_vac,
cod_puesto_r LIKE adtb00011.cod_puesto_r,
edad_min LIKE adtb00011.edad_min,
salario_sem LIKE adtb00011.salario_sem,
salario_men LIKE adtb00011.salario_men,
experiencia LIKE adtb00011.experiencia,
cod_educa LIKE adtb00011.cod_educa,
num_emp LIKE adtb00011.num_emp,
departamento LIKE adtb00011.departamento,
nivel_emp LIKE adtb00011.nivel_emp,
cod_puesto LIKE adtb00011.cod_puesto,
num1_emp LIKE adtb00011.num1_emp,
departamento1 LIKE adtb00011.departamento,
nivel1_emp LIKE adtb00011.nivel1_emp,
cod1_puesto LIKE adtb00011.cod1_puesto,
num2_emp LIKE adtb00011.num2_emp,
departamento2 LIKE adtb00011.departamento2,
nivel2_emp LIKE adtb00011.nivel2_emp,
cod2_puesto LIKE adtb00011.cod2_puesto
END RECORD
DEFINE basico RECORD
cod_sol LIKE adtb00012.cod_sol,
fecha LIKE adtb00012.fecha,
nom1_sol LIKE adtb00012.nom1_sol,
nom2_sol LIKE adtb00012.nom2_sol,
apell1_sol LIKE adtb00012.apell1_sol,
apell2_sol LIKE adtb00012.apell2_sol,
calle LIKE adtb00012.calle,
casa_num LIKE adtb00012.casa_num,
barrio LIKE adtb00012.barrio,
urbanizacion LIKE adtb00012.urbanizacion,
telefono LIKE adtb00012.telefono,
cod_provincia LIKE adtb00012.cod_provincia,
fech_nac LIKE adtb00012.fech_nac,
cod_nac LIKE adtb00012.cod_nac,
estado_civil LIKE adtb00012.estado_civil,
estatura LIKE adtb00012.estatura,
peso LIKE adtb00012.peso,
tipo_documento VARCHAR(20),
cedula LIKE adtb00012.cedula,
licencia LIKE adtb00012.licencia,
tipo_sangre LIKE adtb00012.tipo_sangre,
cod_puesto LIKE adtb00012.cod_puesto,
cod_prof LIKE adtb00012.cod_prof,
sexo LIKE adtb00012.sexo,
afp LIKE adtb00012.afp,
ars LIKE adtb00012.ars,
numero_nss LIKE adtb00012.numero_nss,
seguro_complementario LIKE adtb00012.seguro_complementario,
categoria_licencia_conducir LIKE adtb00012.categoria_licencia_conducir,
sueldo_deseado LIKE adtb00012.sueldo_deseado,
pariente_emergencia LIKE adtb00012.pariente_emergencia,
parentesco_emergencia LIKE adtb00012.parentesco_emergencia,
nom_puesto LIKE adtb00004.nom_puesto,
nom_prof LIKE adtb00010.nom_prof,
nombre_provincia LIKE vetb00020.nombre_provincia,
nom_nac LIKE adtb00007.nom_nac,
vehiculo_propio CHAR(2),
email VARCHAR(100),
cuenta_bancaria,tipo_vivienda VARCHAR(50),
banco VARCHAR(100),
arrestado VARCHAR(10),
motivo_arresto,sometido_justicia VARCHAR(100),
motivo_sometido_justicia VARCHAR(100),
no_afiliacion VARCHAR(25),
telefono_contacto_emergencia VARCHAR(15)
END RECORD
DEFINE proceso RECORD
fecha LIKE adtb00018.fecha,
cod_sol LIKE adtb00018.cod_sol,
num_emp LIKE adtb00018.num_emp,
departamento LIKE adtb00018.departamento,
nivel_emp LIKE adtb00018.nivel_emp,
cod_puesto LIKE adtb00018.cod_puesto,
num3_emp LIKE adtb00018.num3_emp,
departamento3 LIKE adtb00018.departamento3,
nivel3_emp LIKE adtb00018.nivel3_emp,
cod3_puesto LIKE adtb00018.cod3_puesto,
recomendacion LIKE adtb00018.recomendacion,
otros_com LIKE adtb00018.otros_com,
num1_emp LIKE adtb00018.num1_emp,
departamento1 LIKE adtb00018.departamento1,
nivel1_emp LIKE adtb00018.nivel1_emp,
cod1_puesto LIKE adtb00018.cod1_puesto,
num2_emp LIKE adtb00018.num2_emp,
departamento2 LIKE adtb00018.departamento2,
nivel2_emp LIKE adtb00018.nivel2_emp,
cod2_puesto LIKE adtb00018.cod2_puesto
END RECORD
DEFINE contra RECORD
fech_efec LIKE adtb00019.fech_efec,
sueldo LIKE adtb00019.sueldo,
cod_mto LIKE adtb00019.cod_mto,
sec_mto LIKE adtb00019.sec_mto,
periodo LIKE adtb00019.periodo
END RECORD
DEFINE acc_per RECORD
num_trx INTEGER,
cod_mto LIKE adtb00020.cod_mto,
cod_sol INTEGER,
fecha DATE,
fech_efec DATE,
num_emp LIKE adtb00020.num_emp,
departamento LIKE adtb00020.departamento,
nivel_emp LIKE adtb00020.nivel_emp,
cod_puesto LIKE adtb00020.cod_puesto,
sueldo_ac LIKE adtb00020.sueldo_ac,
nomina LIKE adtb00020.nomina,
estado_civil LIKE adtb00020.estado_civil,
sexo CHAR(1),
tipo_sangre LIKE adtb00020.tipo_sangre,
sueldo_lq LIKE adtb00020.sueldo_ac,
observacion CHAR(60),
num1_emp LIKE adtb00020.num_emp,
departamento1 LIKE adtb00020.departamento,
nivel1_emp LIKE adtb00020.nivel_emp,
cod1_puesto LIKE adtb00020.cod_puesto,
num2_emp LIKE adtb00020.num_emp,
departamento2 LIKE adtb00020.departamento,
nivel2_emp LIKE adtb00020.nivel_emp,
cod2_puesto LIKE adtb00020.cod_puesto,
num3_emp LIKE adtb00020.num_emp,
departamento3 LIKE adtb00020.departamento,
nivel3_emp LIKE adtb00020.nivel_emp,
cod3_puesto LIKE adtb00020.cod_puesto,
cedula LIKE adtb00038.cedula_n
END RECORD
DEFINE actual RECORD
num_emp LIKE adtb00003.num_emp,
departamento LIKE adtb00003.departamento,
nivel_emp LIKE adtb00003.nivel_emp,
cod_puesto LIKE adtb00003.cod_puesto,
nom1_emp LIKE adtb00003.nom1_emp,
nom2_emp LIKE adtb00003.nom2_emp,
apell1_emp LIKE adtb00003.apell1_emp,
apell2_emp LIKE adtb00003.apell2_emp,
telefono LIKE adtb00003.telefono,
calle LIKE adtb00003.calle,
casa_num LIKE adtb00003.casa_num,
barrio LIKE adtb00003.barrio,
urbanizacion LIKE adtb00003.urbanizacion,
estado_civil LIKE adtb00003.estado_civil,
licencia CHAR(9)
END RECORD
DEFINE nom_puesto,desc_mto CHAR(30)
DEFINE estado CHAR(15)
DEFINE mes1 ARRAY[12] OF CHAR(11)
DEFINE dias ARRAY[5] OF CHAR(11)
DEFINE arrexperiencia DYNAMIC ARRAY OF RECORD
nombre_empresa VARCHAR(100),
calle VARCHAR(100),
urbanizacion VARCHAR(100),
puesto VARCHAR(100),
sueldo DEC(12,2),
contacto VARCHAR(100),
puesto_contacto VARCHAR(100),
email_laboral VARCHAR(100),
url VARCHAR(100),
telefono_empresa VARCHAR(20),
fecha_inicio DATE,
fecha_termino DATE ,
observacion VARCHAR(100)
END RECORD
DEFINE arridiomas DYNAMIC ARRAY OF RECORD
id SMALLINT,
idioma1 VARCHAR(40),
h_idioma VARCHAR(2),
l_idioma VARCHAR(2),
e_idioma VARCHAR(2) ,
otros_idiomas VARCHAR(100)
END RECORD
DEFINE despl_educacion ARRAY[200] OF RECORD
cod_educa LIKE adtb00005.cod_educa,
nom_educa LIKE adtb00005.nom_educa
END RECORD
DEFINE busca_nac ARRAY[200] OF RECORD
cod_nac LIKE adtb00007.cod_nac,
nom_nac LIKE adtb00007.nom_nac
END RECORD
DEFINE despl_nac ARRAY[200] OF RECORD
cod_nac LIKE adtb00007.cod_nac,
nom_nac LIKE adtb00007.nom_nac
END RECORD
DEFINE despl_pericia ARRAY[200] OF RECORD
cod_pericia LIKE adtb00006.cod_pericia,
nom_pericia LIKE adtb00006.nom_pericia
END RECORD
DEFINE buscar_pericia ARRAY[200] OF RECORD
cod_pericia LIKE adtb00006.cod_pericia,
nom_pericia LIKE adtb00006.nom_pericia
END RECORD
DEFINE despl_depto ARRAY[200] OF RECORD
departamento LIKE adtb00001.departamento,
nom_dpto LIKE adtb00001.nom_dpto
END RECORD
DEFINE despl_prov ARRAY[200] OF RECORD
cod_provincia LIKE vetb00020.cod_provincia,
nombre_provincia LIKE vetb00020.nombre_provincia
END RECORD
DEFINE buscar_requi ARRAY[200] OF RECORD
cod_requi LIKE adtb00008.cod_requi,
requisito LIKE adtb00008.requisito
END RECORD
DEFINE despl_requi ARRAY[200] OF RECORD
cod_requi LIKE adtb00008.cod_requi,
requisito LIKE adtb00008.requisito
END RECORD
DEFINE busca_prov ARRAY[200] OF RECORD
cod_provincia LIKE vetb00020.cod_provincia,
nombre_provincia LIKE vetb00020.nombre_provincia
END RECORD
DEFINE despl_prof ARRAY[200] OF RECORD
cod_prof LIKE adtb00010.cod_prof,
nom_prof LIKE adtb00010.nom_prof
END RECORD
DEFINE busca_prof ARRAY[200] OF RECORD
cod_prof LIKE adtb00010.cod_prof,
nom_prof LIKE adtb00010.nom_prof
END RECORD
DEFINE buscar_emp ARRAY[200] OF RECORD
num_emp LIKE adtb00003.num_emp,
departamento LIKE adtb00003.departamento,
nivel_emp LIKE adtb00003.nivel_emp,
cod_puesto LIKE adtb00003.cod_puesto,
nom1_emp LIKE adtb00003.nom1_emp,
nom2_emp LIKE adtb00003.nom2_emp,
apell1_emp LIKE adtb00003.apell1_emp,
apell2_emp LIKE adtb00003.apell2_emp
END RECORD
DEFINE despl_emp ARRAY[200] OF RECORD
num_emp LIKE adtb00003.num_emp,
departamento LIKE adtb00003.departamento,
nivel_emp LIKE adtb00003.nivel_emp,
cod_puesto LIKE adtb00003.cod_puesto,
nom1_emp LIKE adtb00003.nom1_emp,
nom2_emp LIKE adtb00003.nom2_emp,
apell1_emp LIKE adtb00003.apell1_emp,
apell2_emp LIKE adtb00003.apell2_emp
END RECORD
DEFINE buscar_nivel ARRAY[200] OF RECORD
nivel_emp LIKE adtb00024.nivel_emp,
desc_nivel LIKE adtb00024.desc_nivel
END RECORD
DEFINE despl_nivel ARRAY[200] OF RECORD
nivel_emp LIKE adtb00024.nivel_emp,
desc_nivel LIKE adtb00024.desc_nivel
END RECORD
DEFINE despl_parece ARRAY[200] OF RECORD
cod_par LIKE adtb00025.cod_par,
desc_par LIKE adtb00025.desc_par
END RECORD
DEFINE busca_parece ARRAY[200] OF RECORD
cod_par LIKE adtb00025.cod_par,
desc_par LIKE adtb00025.desc_par
END RECORD
DEFINE buscar_movi ARRAY[200] OF RECORD
cod_mto LIKE adtb00009.cod_mto,
desc_mto LIKE adtb00009.desc_mto
END RECORD
DEFINE despl_movi ARRAY[200] OF RECORD
cod_mto LIKE adtb00009.cod_mto,
desc_mto LIKE adtb00009.desc_mto
END RECORD
DEFINE arr_proceso ARRAY[200] OF RECORD
cod_requi LIKE adtb00018.cod_requi,
requisito LIKE adtb00008.requisito,
ind_requi LIKE adtb00018.ind_requi
END RECORD
DEFINE arr_per ARRAY[200] OF RECORD
cod_pericia SMALLINT,
nom_pericia LIKE adtb00006.nom_pericia,
status_per VARCHAR(10)
END RECORD
DEFINE arr_ref DYNAMIC ARRAY OF RECORD
secuencia INT,
nom_ref LIKE adtb00014.nom_ref,
ref_parentesco VARCHAR(30),
anos_rel CHAR(4),#LIKE adtb00014.anos_rel,
telefonope LIKE adtb00014.telefono,
callepe LIKE adtb00014.calle,
casa_numpe LIKE adtb00014.casa_num,
urbanizacionpe LIKE adtb00014.urbanizacion
END RECORD
DEFINE arr_educa DYNAMIC ARRAY OF RECORD
nom_inst LIKE adtb00015.nom_inst,
calleE LIKE adtb00015.calle,
casa_numE VARCHAR(10),
urbanizacionE LIKE adtb00015.urbanizacion,
cod_educa SMALLINT,
nom_educa LIKE adtb00005.nom_educa,
descripcion_curso VARCHAR(100),
mdalidad VARCHAR(50),
anosE SMALLINT,
ano_termE SMALLINT
END RECORD
DEFINE arr_familiares DYNAMIC ARRAY OF RECORD
cod_par SMALLINT,
sec_par SMALLINT,
nombreF VARCHAR(100),
cedulaF VARCHAR(11),
sexof VARCHAR(1),
fechaF DATE,
ftelefono VARCHAR(20),
edad smallint,
ocupacion VARCHAR(100)
END RECORD
DEFINE arr_control ARRAY[200] OF RECORD
hora_ent CHAR(5),
hora_sal CHAR(5)
END RECORD
DEFINE arr_labor DYNAMIC ARRAY OF RECORD
nom_empr LIKE adtb00016.nom_empr,
cod_puesto LIKE adtb00016.cod_puesto,
nom_puesto LIKE adtb00004.nom_puesto,
calle LIKE adtb00016.calle,
casa_num LIKE adtb00016.casa_num,
barrio LIKE adtb00016.barrio,
urbanizacion LIKE adtb00016.urbanizacion,
sueldo LIKE adtb00016.sueldo,
contacto VARCHAR(100),
puesto_contacto VARCHAR(100),
email VARCHAR(100),
url VARCHAR(100),
telefono VARCHAR(20),
ano_ini LIKE adtb00016.ano_ini,
ano_fin LIKE adtb00016.ano_fin,
desc_retiro LIKE adtb00016.desc_retiro
END RECORD
DEFINE sexo CHAR(1)
DEFINE depto RECORD LIKE adtb00001.*
DEFINE seccion RECORD LIKE adtb00002.*
DEFINE emplea RECORD LIKE adtb00003.*
DEFINE puesto RECORD LIKE adtb00004.*
DEFINE nombre_dpto LIKE adtb00001.nom_dpto
DEFINE nivel RECORD LIKE adtb00005.*
DEFINE pericia RECORD LIKE adtb00006.*
DEFINE nacion RECORD LIKE adtb00007.*
DEFINE seleccion RECORD LIKE adtb00008.*
DEFINE mov_emp RECORD LIKE adtb00009.*
DEFINE profesion RECORD LIKE adtb00010.*
DEFINE parece RECORD LIKE adtb00013.*
DEFINE refiere RECORD LIKE adtb00014.*
DEFINE educacion RECORD LIKE adtb00015.*
DEFINE labor RECORD LIKE adtb00016.*
DEFINE adiestra RECORD LIKE adtb00022.*
DEFINE cont_emp RECORD LIKE adtb00023.*
DEFINE nivelar RECORD LIKE adtb00024.*
DEFINE parentesco RECORD LIKE adtb00025.*
DEFINE amon RECORD LIKE adtb00026.*
DEFINE provincia RECORD LIKE vetb00020.*
END GLOBALS
FUNCTION busca_empleado()
OPEN WINDOW busqueda AT 7,10 WITH FORM "adfmwd004"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2, comment line last)
CONSTRUCT criterio ON adtb00003.nom1_emp,adtb00003.nom2_emp,
adtb00003.apell1_emp,adtb00003.apell2_emp
FROM nom1_emp,nom2_emp,apell1_emp,apell2_emp
LET selec1 = "SELECT num_emp,departamento,nivel_emp,cod_puesto, ",
"nom1_emp,nom2_emp,apell1_emp,apell2_emp FROM adtb00003 ",
" WHERE ",
" status_t is null AND ",
criterio clipped,
"ORDER BY 1,2,3,4"
PREPARE busca1 FROM selec1
DECLARE local1 CURSOR FOR busca1
LET idx = 1
FOREACH local1 INTO buscar_emp[idx].*
IF status = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
EXIT FOREACH
END IF
LET despl_emp[idx].num_emp = buscar_emp[idx].num_emp
LET despl_emp[idx].departamento = buscar_emp[idx].departamento
LET despl_emp[idx].nivel_emp = buscar_emp[idx].nivel_emp
LET despl_emp[idx].cod_puesto = buscar_emp[idx].cod_puesto
LET despl_emp[idx].nom1_emp = buscar_emp[idx].nom1_emp clipped
LET despl_emp[idx].nom2_emp = buscar_emp[idx].nom2_emp clipped
LET despl_emp[idx].apell1_emp = buscar_emp[idx].apell1_emp clipped
LET despl_emp[idx].apell2_emp = buscar_emp[idx].apell2_emp clipped
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
DISPLAY ARRAY despl_emp TO s_empleado.*
LET curr1 = arr_curr()
LET nombre =
despl_emp[curr1].nom1_emp clipped," ",despl_emp[curr1].nom2_emp clipped," ",
despl_emp[curr1].apell1_emp clipped," ",despl_emp[curr1].apell2_emp clipped
CLOSE WINDOW busqueda
END FUNCTION
FUNCTION contrato()
DEFINE usuarios RECORD
us_crea CHAR(9),
fech_crea LIKE adtb00019.fech_crea
END RECORD
WHENEVER ERROR CONTINUE
OPEN WINDOW contrato1 AT 10,5 WITH FORM "adfmwd006"
ATTRIBUTE (BORDER,FORM LINE FIRST + 1, comment line last)
IF modifica != "S" THEN
INPUT BY NAME contra.*
AFTER FIELD fech_efec
IF contra.fech_efec IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fech_efec
END IF
AFTER FIELD sueldo
IF contra.sueldo IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sueldo
END IF
AFTER FIELD cod_mto
IF contra.cod_mto > 1 THEN
LET numero_msg = 151
CALL msg(numero_msg)
NEXT FIELD cod_mto
END IF
IF contra.cod_mto IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_mto
END IF
AFTER FIELD sec_mto
IF contra.sec_mto IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_mto
ELSE
SELECT @desc_mto INTO mov_emp.desc_mto FROM adtb00009
WHERE @cod_mto = contra.cod_mto and
@sec_mto = contra.sec_mto and
status_t is null
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_mto
END IF
DISPLAY BY NAME mov_emp.desc_mto
END IF
AFTER FIELD periodo
IF contra.periodo IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD periodo
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
EXIT INPUT
END IF
IF contra.fech_efec IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fech_efec
END IF
IF contra.sueldo IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sueldo
END IF
IF contra.cod_mto IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_mto
END IF
IF contra.sec_mto IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_mto
END IF
IF contra.periodo IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD periodo
ELSE
INSERT INTO adtb00019 VALUES (proceso.cod_sol,contra.fech_efec,
contra.sueldo,contra.cod_mto,
contra.sec_mto,contra.periodo,
null, USER, CURRENT, null, null)
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
CLEAR FORM
END IF
EXIT INPUT
END INPUT
IF int_flag THEN
LET int_flag = false
LET verdad = "S"
GOTO volver
END IF
END IF
IF modifica = "S" THEN
# INITIALIZE contra.* TO NULL
SELECT fech_efec,sueldo,cod_mto,sec_mto,periodo
INTO contra.fech_efec,contra.sueldo,contra.cod_mto,
contra.sec_mto,contra.periodo FROM adtb00019
WHERE cod_sol = proceso.cod_sol and
status_t is null
INPUT BY NAME contra.* WITHOUT DEFAULTS
AFTER FIELD fech_efec
IF contra.fech_efec IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fech_efec
END IF
AFTER FIELD sueldo
IF contra.sueldo IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sueldo
END IF
AFTER FIELD cod_mto
IF contra.cod_mto > 1 THEN
LET numero_msg = 151
CALL msg(numero_msg)
NEXT FIELD cod_mto
END IF
IF contra.cod_mto IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_mto
END IF
AFTER FIELD sec_mto
IF contra.sec_mto IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_mto
ELSE
SELECT @desc_mto INTO mov_emp.desc_mto FROM adtb00009
WHERE @cod_mto = contra.cod_mto and
@sec_mto = contra.sec_mto and
status_t is null
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_mto
END IF
DISPLAY BY NAME mov_emp.desc_mto
END IF
AFTER FIELD periodo
IF contra.periodo IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD periodo
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
CLEAR FORM
END IF
EXIT INPUT
END INPUT
IF int_flag THEN
LET int_flag = false
LET verdad = "S"
GOTO volver
END IF
UPDATE adtb00019 SET fech_efec = contra.fech_efec,
sueldo = contra.sueldo,
cod_mto = contra.cod_mto,
sec_mto = contra.sec_mto,
periodo = contra.periodo,
us_mod = USER,
fech_mod = CURRENT
WHERE cod_sol = proceso.cod_sol
END IF
LABEL volver:
CLOSE FORM adfmwd006
CLOSE WINDOW contrato1
END FUNCTION