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