224 lines
7.4 KiB
Plaintext
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
|