133 lines
4.2 KiB
Plaintext
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 |