#----------------------------------------------------------------------- # Esta funcion captura los datos de la tabla de Contratacion de # Empleados #----------------------------------------------------------------------- GLOBALS "adprgb000.4gl" 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