Files

224 lines
7.4 KiB
Plaintext

#-----------------------------------------------------------------------
# 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