Files
MBS/PROYECTO/nodir/noprmt027.4gl
T

133 lines
4.2 KiB
Plaintext

GLOBALS
DEFINE deptos DYNAMIC ARRAY OF RECORD
id INT,
codigo INT,
nombre VARCHAR(100),
parent INT,
cmd INT
END RECORD,
idx INT,
empleados DYNAMIC ARRAY OF RECORD
num_emp INT,
departamento INT,
nombre VARCHAR(50),
apellido VARCHAR(50),
fecha DATE
END RECORD,
usuarios,clave VARCHAR(50),
chdepartamento,chempleados CHAR(2)
END GLOBALS
MAIN
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT TO "zktime" AS "zk"
CONNECT TO "smarmotech" AS "SQL" USER usuarios USING clave
OPEN WINDOW w1 WITH FORM "nofmmt027"
INPUT BY NAME chdepartamento,chempleados
AFTER INPUT
IF INT_FLAG THEN
CALL msg(2)
LET INT_FLAG = FALSE
EXIT INPUT
END IF
CASE
WHEN chdepartamento = "SI"
CALL carga_datos()
EXIT CASE
WHEN chempleados ="SI"
CALL importa_emp()
# CALL actualiza_Depto()
EXIT CASE
END CASE
END INPUT
CLOSE WINDOW w1
END MAIN
FUNCTION carga_datos()
DECLARE buscar CURSOR FOR
SELECT 0,a.departamento,a.nom_dpto,0,0 FROM adtb00001 a WHERE status_t IS NULL
ORDER BY a.departamento
LET idx = 1
FOREACH buscar INTO deptos[idx].*
LET deptos[idx].id = idx
LET deptos[idx].cmd = 1
DISPLAY deptos[idx].*
LET idx = idx + 1
END FOREACH
SET CONNECTION "zk"
DELETE FROM hr_department
# LOAD FROM "depto.txt" INSERT INTO tmp_dep (id,code,nombre,parent,cmd)
BEGIN WORK
FOR idx = 1 TO deptos.getLength()
IF deptos[idx].id IS NOT NULL then
INSERT INTO hr_department
(id,dept_code,dept_name,dept_parentcode,dept_cmp_id,schedule_id,dept_operationmode,iuser1,iuser2,iuser3) VALUES
(deptos[idx].*,1,0,0,0,0)
END if
END FOR
COMMIT WORK
#INSERT INTO hr_department (id,dept_code,dept_name,dept_parentcode,dept_cmp_id) VALUES (0,3,'PRUEBA',0,0)
END FUNCTION
FUNCTION actualiza_depto()
DEFINE z_depto INT
CALL empleados.clear()
DECLARE busca_emp CURSOR FOR
SELECT a.num_emp,a.departamento FROM adtb00003 a WHERE a.status_t IS NULL
LET idx = 1
FOREACH busca_emp INTO empleados[idx].*
LET idx = idx + 1
END FOREACH
SET CONNECTION "zk"
BEGIN WORK
FOR idx = 1 TO empleados.getLength()
SELECT a.id INTO Z_depto FROM hr_department a WHERE a.dept_code = empleados[idx].departamento
UPDATE hr_employee SET emp_dept = z_depto WHERE emp_cardnumber = empleados[idx].num_emp
DISPLAY "EMP: ",empleados[idx].num_emp," ",z_depto
END FOR
COMMIT WORK
END FUNCTION
FUNCTION importa_emp()
DEFINE m_id,z_depto INT
CALL empleados.clear()
DECLARE busca_emp1 CURSOR FOR
SELECT a.num_emp,a.departamento,a.nom1_emp,a.apell1_emp,a.fech_efec
FROM adtb00003 a WHERE a.status_t IS NULL AND a.num_emp > 6 AND a.departamento IS NOT NULL
LET idx = 1
FOREACH busca_emp1 INTO empleados[idx].*
LET idx = idx + 1
END FOREACH
SET CONNECTION "zk"
SELECT MAX(a.id) INTO m_id FROM hr_employee a
BEGIN WORK
FOR idx = 1 TO empleados.getLength()
IF empleados[idx].num_emp IS NOT NULL THEN
SELECT a.id INTO Z_depto FROM hr_department a WHERE a.dept_code = empleados[idx].departamento
SELECT a.emp_cardnumber FROM hr_employee a WHERE a.emp_cardnumber = empleados[idx].num_emp
IF STATUS = NOTFOUND THEN
LET m_id = m_id +1
DISPLAY "FECHA ",empleados[idx].fecha
INSERT INTO hr_employee (id,emp_pin,emp_firstname,emp_lastname,emp_pin2,emp_privilege,
emp_hiredate,emp_active,emp_cardnumber,emp_hourlyrate1,emp_hourlyrate2,
emp_hourlyrate3,emp_hourlyrate4,emp_hourlyrate5,emp_gender,emp_operationmode,
isselect,iuser1,iuser2,iuser3,emp_dept,payclass_id)
VALUES (m_id,m_id,empleados[idx].nombre,empleados[idx].apellido,m_id,0,empleados[idx].fecha,
1,empleados[idx].num_emp,0,0,0,0,0,0,0,0,0,0,0,z_depto,1)
END IF
END IF
END FOR
COMMIT WORK
END FUNCTION