962 lines
41 KiB
Plaintext
962 lines
41 KiB
Plaintext
{
|
|
----------------------------------------------------------------------------
|
|
PROGRAMA : NOPRMT003
|
|
OBJETIVO : Modificar y Eliminar registros de la
|
|
Tabla de Maestra de Empleados
|
|
PROGRAMADOR : JUAN SOTO
|
|
FECHA REALIZACION : FEBRERO 18, 1998.
|
|
----------------------------------------------------------------------------
|
|
}
|
|
IMPORT os
|
|
|
|
GLOBALS "noprgb000.4gl"
|
|
DEFINE tipo_sexo CHAR(9),
|
|
operacion CHAR(1),
|
|
descrip_st CHAR(20),
|
|
descripcion_cuenta,imagenom,filepath,filedestino CHAR(100),
|
|
sec_vend_supervisor SMALLINT,
|
|
nombre_supervisor VARCHAR(60),
|
|
actualiza_datos STRING,
|
|
imagen_emp BYTE,
|
|
valorrd,tasa DEC(12,2),
|
|
pdepartamentoid INT
|
|
|
|
DEFINE p_sexo CHAR(1)
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
|
|
CONNECT TO "marmotech" AS "IFMX"
|
|
CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave
|
|
SELECT a.* INTO p_companias.* FROM companias a
|
|
CALL noprmt003()
|
|
END MAIN
|
|
|
|
FUNCTION noprmt003()
|
|
|
|
CLEAR SCREEN
|
|
OPTIONS
|
|
FORM LINE 9,
|
|
ERROR LINE 24,
|
|
COMMENT LINE 23
|
|
|
|
OPEN FORM nofmmt003 FROM "nofmmt003"
|
|
DISPLAY FORM nofmmt003
|
|
{ cod_puesto =emplea.cod_puesto,
|
|
nivel_emp =emplea.nivel_emp,
|
|
nom1_emp =emplea.nom1_emp,
|
|
nom2_emp =emplea.nom2_emp,
|
|
apell1_emp =emplea.apell1_emp,
|
|
apell2_emp =emplea.apell2_emp,
|
|
calle =emplea.calle,
|
|
casa_num =emplea.casa_num,
|
|
barrio =emplea.barrio,
|
|
fech_efec =emplea.fech_efec,
|
|
fech_nac =emplea.fech_nac,
|
|
urbanizacion = emplea.urbanizacion,
|
|
telefono =emplea.telefono,
|
|
cedula =emplea.cedula,
|
|
serie =emplea.serie,
|
|
cod_nac =emplea.cod_nac,
|
|
estado_civil =emplea.estado_civil,
|
|
tipo_sangre =emplea.tipo_sangre,
|
|
sueldo_ac =emplea.sueldo_ac,
|
|
nomina =emplea.nomina,
|
|
paga_seg =emplea.paga_seg,
|
|
fecha_salida =emplea.fecha_salida,
|
|
cuenta_no =emplea.cuenta_no,
|
|
us_mod = usuarios,
|
|
fech_mod = getdate(),
|
|
licencia =emplea.licencia,
|
|
cod_seg1 =emplea.cod_seg1,
|
|
cod_seg3 =emplea.cod_seg3,
|
|
foto_empleado=emplea.foto_empleado,
|
|
sucid =emplea.sucid,
|
|
credito =emplea.credito ,
|
|
fecha_ultimo_aumento =emplea.fecha_ultimo_aumento,
|
|
codbancodestino =emplea.codbancodestino,
|
|
digiverbancodestino =emplea.digiverbancodestino,
|
|
tipo_sueldo =emplea.tipo_sueldo,
|
|
email =emplea.email,
|
|
instalador =emplea.instalador,
|
|
cuenta_aux =emplea.cuenta_aux,
|
|
moneda =emplea.moneda
|
|
}
|
|
LET selec = "SELECT a.userid FROM facial.dbo.userinfo a WHERE a.userid = ? "
|
|
|
|
PREPARE buscaemp_att FROM selec
|
|
LET selec = "
|
|
UPDATE adtb00003 SET
|
|
departamento = ? ",
|
|
|
|
" WHERE adtb00003.num_emp =?"
|
|
PREPARE act_emp FROM selec
|
|
|
|
MENU
|
|
ON ACTION nuevo
|
|
SET CONNECTION "MSSQL"
|
|
let int_flag = false
|
|
LET operacion = "A"
|
|
INITIALIZE emplea.* TO NULL
|
|
LOCATE emplea.foto_empleado IN MEMORY
|
|
CALL adpcmf022()
|
|
ON ACTION buscar
|
|
SET CONNECTION "MSSQL"
|
|
let int_flag = false
|
|
LET operacion = "M"
|
|
CALL adpcmf022()
|
|
ON ACTION Salir
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION adpcmf022()
|
|
## AQUI SE PREPARA PARA LA CAPTURA DEL CRITERIO DE SELECCION PARA CONSULTA Y
|
|
## MODIFICACION DE REGISTROS
|
|
|
|
IF operacion = "M" THEN
|
|
CONSTRUCT criterio ON a.num_emp,a.departamento,a.nom1_emp,a.apell1_emp,a.nom2_emp,a.apell2_emp,a.cedula
|
|
FROM num_emp,departamento,nom1_emp,apell1_emp,nom2_emp,apell2_emp,cedula
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET SELEC =
|
|
"SELECT a.num_emp,a.departamento,a.nivel_emp,
|
|
a.cod_puesto,a.nom1_emp,a.nom2_emp,
|
|
a.apell1_emp,a.apell2_emp,a.tipo_empleado,
|
|
convert(char(10),a.fecha_termino_c,103),a.calle,a.casa_num,a.barrio,
|
|
a.urbanizacion,a.credito,a.telefono,convert(char(10),a.fech_nac,103),a.cod_nac,
|
|
a.estado_civil,a.tipo_sangre,a.cedula,a.serie,
|
|
a.licencia,a.sueldo_ac,a.nomina, CONVERT(char(10),a.fech_efec,103),
|
|
CONVERT(CHAR(10),a.fecha_salida,103),a.paga_seg,a.cod_seg1,a.cod_seg2,",
|
|
"a.cod_seg3,a.tipocuenta,a.cuenta_no,a.status_t,a.us_crea,
|
|
a.fech_crea,a.us_mod,a.fech_mod,a.foto_empleado,a.sucid,",
|
|
"a.monto_seg_med,a.monto_seg_int,a.monto_care,",
|
|
"CONVERT(CHAR(10),a.fecha_ultimo_aumento,103),a.moneda,a.codbancodestino,",
|
|
"a.digiverbancodestino,a.tipo_sueldo,a.email,a.instalador,a.cuenta_aux FROM adtb00003 a ",
|
|
|
|
"WHERE (a.status_t is null OR a.status_t NOT IN('T','E')) AND ",
|
|
criterio clipped," ORDER BY a.num_emp "
|
|
|
|
PREPARE busca FROM selec
|
|
DECLARE datos SCROLL CURSOR FOR busca
|
|
OPEN datos
|
|
LOCATE emplea.foto_empleado IN MEMORY
|
|
FETCH FIRST datos INTO emplea.*
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
RETURN
|
|
END IF
|
|
|
|
CALL selecta1()
|
|
|
|
MENU "OPCION"
|
|
COMMAND "Siguiente"
|
|
"Presenta en pantalla el proximo registro encontrado"
|
|
FETCH NEXT datos INTO emplea.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
LET tipo_sexo = " "
|
|
CALL selecta1()
|
|
|
|
COMMAND "Anterior"
|
|
"Presenta en pantalla el registro anterior encontrado"
|
|
FETCH PREVIOUS datos INTO emplea.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
LET tipo_sexo = " "
|
|
CALL selecta1()
|
|
|
|
COMMAND "Primero"
|
|
"Presenta en pantalla el primer registro encontrado"
|
|
FETCH FIRST datos INTO emplea.*
|
|
CALL selecta1()
|
|
|
|
LET tipo_sexo = " "
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Ultimo"
|
|
"Presenta en pantalla el ultimo registro encontrado"
|
|
FETCH LAST datos INTO emplea.*
|
|
CALL selecta1()
|
|
|
|
LET tipo_sexo = " "
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Escoger" "<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
|
|
CALL acepta()
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
SET CONNECTION "MSSQL"
|
|
## AQUI SE ACTUALIZA EL REGISTRO
|
|
IF operacion = "M" THEN
|
|
UPDATE adtb00003 SET
|
|
adtb00003.departamento = emplea.departamento {,
|
|
cod_puesto =emplea.cod_puesto,
|
|
nivel_emp =emplea.nivel_emp,
|
|
nom1_emp =emplea.nom1_emp,
|
|
nom2_emp =emplea.nom2_emp,
|
|
apell1_emp =emplea.apell1_emp,
|
|
apell2_emp =emplea.apell2_emp,
|
|
calle =emplea.calle,
|
|
casa_num =emplea.casa_num,
|
|
barrio =emplea.barrio,
|
|
fech_efec =emplea.fech_efec,
|
|
fech_nac =emplea.fech_nac,
|
|
urbanizacion = emplea.urbanizacion,
|
|
telefono =emplea.telefono,
|
|
cedula =emplea.cedula,
|
|
serie =emplea.serie,
|
|
cod_nac =emplea.cod_nac,
|
|
estado_civil =emplea.estado_civil,
|
|
tipo_sangre =emplea.tipo_sangre,
|
|
sueldo_ac =emplea.sueldo_ac,
|
|
nomina =emplea.nomina,
|
|
paga_seg =emplea.paga_seg,
|
|
fecha_salida =emplea.fecha_salida,
|
|
cuenta_no =emplea.cuenta_no,
|
|
us_mod = usuarios,
|
|
fech_mod = getdate(),
|
|
licencia =emplea.licencia,
|
|
cod_seg1 =emplea.cod_seg1,
|
|
cod_seg3 =emplea.cod_seg3,
|
|
foto_empleado=emplea.foto_empleado,
|
|
sucid =emplea.sucid,
|
|
credito =emplea.credito ,
|
|
fecha_ultimo_aumento =emplea.fecha_ultimo_aumento,
|
|
codbancodestino =emplea.codbancodestino,
|
|
digiverbancodestino =emplea.digiverbancodestino,
|
|
tipo_sueldo =emplea.tipo_sueldo,
|
|
email =emplea.email,
|
|
instalador =emplea.instalador,
|
|
cuenta_aux =emplea.cuenta_aux,
|
|
moneda =emplea.moneda
|
|
}
|
|
WHERE adtb00003.num_emp = emplea.num_emp
|
|
|
|
UPDATE adtb00021 SET sexo = p_sexo
|
|
WHERE num_emp = emplea.num_emp
|
|
IF emplea.fecha_ultimo_aumento IS NULL THEN
|
|
LET emplea.fecha_ultimo_aumento= emplea.fech_efec
|
|
END IF
|
|
LET actualiza_Datos =
|
|
"UPDATE cooperativa.dbo.adtb00003 SET
|
|
departamento= ",emplea.departamento,",",
|
|
"cod_puesto=",emplea.cod_puesto,",",
|
|
"nivel_emp=", emplea.nivel_emp,",",
|
|
"nom1_emp='",emplea.nom1_emp CLIPPED,"',",
|
|
"nom2_emp='",emplea.nom2_emp CLIPPED,"',",
|
|
"apell1_emp='",emplea.apell1_emp CLIPPED,"',",
|
|
"apell2_emp='",emplea.apell2_emp CLIPPED,"',",
|
|
"calle='",emplea.calle CLIPPED,"',",
|
|
"casa_num='",emplea.casa_num CLIPPED,"',",
|
|
"barrio='",emplea.barrio CLIPPED,"',",
|
|
"fech_efec='",emplea.fech_efec,"',",
|
|
"fech_nac='",emplea.fech_nac,"',",
|
|
" urbanizacion='",emplea.urbanizacion CLIPPED,"',",
|
|
" telefono='",emplea.telefono CLIPPED,"',",
|
|
" cedula='",emplea.cedula,"',",
|
|
" serie='",emplea.serie,"',",
|
|
" cod_nac=",emplea.cod_nac,",",
|
|
" estado_civil='",emplea.estado_civil,"',",
|
|
" tipo_sangre='",emplea.tipo_sangre,"',",
|
|
" sueldo_ac=",emplea.sueldo_ac,",",
|
|
" nomina='",emplea.nomina,"',",
|
|
" paga_seg='",emplea.paga_seg,"',",
|
|
" fecha_salida='",emplea.fecha_salida,"',",
|
|
" cuenta_no='",emplea.cuenta_no,"',",
|
|
" us_mod='",usuarios CLIPPED,"',",
|
|
" fech_mod=getdate(),",
|
|
" licencia='",emplea.licencia,"',",
|
|
" cod_seg1='",emplea.cod_seg1,"',",
|
|
" cod_seg3='",emplea.cod_seg3,"',",
|
|
|
|
" sucid=",emplea.sucid,",",
|
|
" credito='",emplea.credito CLIPPED,"',",
|
|
" fecha_ultimo_aumento='",emplea.fecha_ultimo_aumento,"',",
|
|
" codbancodestino='",emplea.codbancodestino,"',",
|
|
" digiverbancodestino='",emplea.digiverbancodestino,"',",
|
|
" tipo_sueldo='",emplea.tipo_sueldo,"',",
|
|
" email='", emplea.email CLIPPED,"',",
|
|
" instalador='",emplea.instalador,"',",
|
|
" cuenta_aux='",emplea.cuenta_aux,"' ",
|
|
" WHERE num_emp =", emplea.num_emp
|
|
#DISPLAY "update ",actualiza_datos
|
|
PREPARE comando_up FROM actualiza_datos
|
|
EXECUTE comando_up
|
|
|
|
SET CONNECTION "IFMX"
|
|
SELECT a.num_emp FROM adtb00003 a WHERE a.num_emp = emplea.num_emp
|
|
IF STATUS <> NOTFOUND THEN
|
|
UPDATE adtb00003 SET
|
|
(departamento,cod_puesto,nivel_emp,nom1_emp,nom2_emp,
|
|
apell1_emp,apell2_emp,calle,casa_num,barrio,fech_efec,
|
|
fech_nac,
|
|
urbanizacion,telefono,cedula,serie,cod_nac,estado_civil,
|
|
tipo_sangre,sueldo_ac,nomina,paga_seg, fecha_salida,cuenta_no, us_mod,fech_mod,
|
|
licencia,cod_seg1,cod_seg3,moneda)=
|
|
|
|
(emplea.departamento,emplea.cod_puesto,emplea.nivel_emp,
|
|
emplea.nom1_emp,emplea.nom2_emp,emplea.apell1_emp,
|
|
emplea.apell2_emp,emplea.calle,emplea.casa_num,
|
|
emplea.barrio,emplea.fech_efec,emplea.fech_nac,
|
|
emplea.urbanizacion,
|
|
emplea.telefono,
|
|
emplea.cedula,emplea.serie,emplea.cod_nac,
|
|
emplea.estado_civil,emplea.tipo_sangre,emplea.sueldo_ac,
|
|
emplea.nomina,emplea.paga_seg,emplea.fecha_salida,emplea.cuenta_no,usuarios,getdate(),
|
|
emplea.licencia,emplea.cod_seg1,emplea.cod_seg3,emplea.moneda)
|
|
|
|
WHERE @num_emp = emplea.num_emp
|
|
ELSE
|
|
|
|
INSERT INTO adtb00003
|
|
(num_emp,departamento,cod_puesto,nivel_emp,nom1_emp,
|
|
nom2_emp, apell1_emp,apell2_emp,calle,casa_num,barrio,
|
|
urbanizacion,telefono,cedula,serie,cod_nac,estado_civil,
|
|
fech_efec,fecha_salida,fech_nac,
|
|
tipo_sangre,sueldo_ac,nomina,paga_seg, cuenta_no,us_crea,
|
|
fech_crea,licencia,cod_Seg3,moneda)
|
|
VALUES
|
|
(emplea.num_emp,emplea.departamento,
|
|
emplea.cod_puesto,emplea.nivel_emp,
|
|
emplea.nom1_emp,emplea.nom2_emp,emplea.apell1_emp,
|
|
emplea.apell2_emp,emplea.calle,emplea.casa_num,
|
|
emplea.barrio,emplea.urbanizacion,emplea.telefono,
|
|
emplea.cedula,emplea.serie,emplea.cod_nac,
|
|
emplea.estado_civil,emplea.fech_efec,emplea.fecha_salida,emplea.fech_nac,
|
|
emplea.tipo_sangre,emplea.sueldo_ac,
|
|
emplea.nomina,emplea.paga_seg,emplea.cuenta_no,usuarios,getdate(),
|
|
emplea.licencia,emplea.cod_seg3,emplea.moneda)
|
|
|
|
|
|
|
|
END IF
|
|
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
|
|
IF status < 0 THEN
|
|
CALL integridad()
|
|
END IF
|
|
|
|
## AQUI SE ELIMINAN LOS REGISTROS
|
|
{ COMMAND KEY ("L") "eLiminar"
|
|
PROMPT "Esta Seguro de Eliminar Este Empleado? " FOR CHAR opt5
|
|
IF opt5 = "S" THEN
|
|
update adtb00003 set status_t = "E",us_mod = USER_SNAME(),fech_mod = GETDATE()
|
|
WHERE num_emp = emplea.num_emp
|
|
END IF
|
|
|
|
LET numero_msg = 39
|
|
CALL msg(numero_msg)
|
|
}
|
|
COMMAND "Retornar" "Retorna al menu anterior"
|
|
CLEAR FORM
|
|
EXIT MENU
|
|
END MENU
|
|
ELSE
|
|
CALL acepta()
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
END IF
|
|
END FUNCTION
|
|
|
|
FUNCTION selecta1()
|
|
|
|
SELECT a.sexo INTO p_sexo FROM adtb00021 a
|
|
WHERE a.num_emp = emplea.num_emp
|
|
|
|
SELECT nom_dpto INTO depto.nom_dpto FROM adtb00001
|
|
WHERE departamento = emplea.departamento
|
|
|
|
SELECT @nom_puesto INTO puesto.nom_puesto FROM adtb00004
|
|
WHERE @cod_puesto = emplea.cod_puesto
|
|
|
|
IF emplea.estado_civil = "S" THEN
|
|
LET descr = "SOLTERO"
|
|
END IF
|
|
IF emplea.estado_civil = "C" THEN
|
|
LET descr = "CASADO"
|
|
END IF
|
|
|
|
IF p_sexo = "M" THEN
|
|
LET tipo_sexo = "MASCULINO"
|
|
END IF
|
|
IF p_sexo = "F" THEN
|
|
LET tipo_sexo = "FEMENINO"
|
|
END IF
|
|
|
|
IF emplea.nomina = "Q" THEN
|
|
LET descrip = "QUINCENAL"
|
|
END IF
|
|
IF emplea.nomina = "S" THEN
|
|
LET descrip = "SEMANAL"
|
|
END IF
|
|
|
|
IF emplea.status_t = "D" THEN
|
|
LET descrip_st = "DESACTIVADO"
|
|
END IF
|
|
IF emplea.status_t = "E" THEN
|
|
LET descrip_st = "ELIMINADO"
|
|
END IF
|
|
IF emplea.status_t IS NULL THEN
|
|
LET descrip_st = "ACTIVADO"
|
|
END IF
|
|
DISPLAY BY NAME descrip_st ATTRIBUTE(REVERSE,RED)
|
|
|
|
SELECT a.licencia INTO emplea.licencia
|
|
FROM adtb00003 a
|
|
WHERE a.num_emp = emplea.num_emp
|
|
|
|
SELECT nom_nac INTO nacion.nom_nac FROM adtb00007
|
|
WHERE cod_nac = emplea.cod_nac
|
|
|
|
|
|
LET plocalidad = ui.ComboBox.forName("formonly.localidad")
|
|
CALL localidades()
|
|
|
|
LET localidad = emplea.sucid
|
|
SELECT AVG(a.tasa) INTO tasa FROM cgtb00084 a WHERE a.mes = MONTH(today) AND a.ano = YEAR(today) AND
|
|
a.ventas = emplea.moneda
|
|
IF tasa IS NULL THEN
|
|
LET tasa = 1
|
|
END IF
|
|
LET valorrd = emplea.sueldo_ac * tasa
|
|
|
|
|
|
DISPLAY BY NAME emplea.num_emp,emplea.departamento,emplea.nivel_emp,
|
|
emplea.cod_puesto,emplea.nom1_emp,emplea.nom2_emp,
|
|
emplea.apell1_emp,emplea.apell2_emp,emplea.calle,
|
|
emplea.casa_num,
|
|
emplea.barrio,emplea.urbanizacion,emplea.cedula,
|
|
emplea.serie,emplea.fech_nac,emplea.cod_nac,
|
|
emplea.licencia,emplea.telefono,emplea.estado_civil,
|
|
emplea.tipo_sangre,emplea.sueldo_ac,emplea.nomina,
|
|
emplea.fech_efec,descr,descrip,nacion.nom_nac,
|
|
depto.nom_dpto,puesto.nom_puesto,p_sexo,tipo_sexo,
|
|
emplea.paga_seg,emplea.cod_seg1,emplea.cod_seg2,
|
|
emplea.cod_seg3,emplea.cuenta_no,emplea.fecha_salida,
|
|
localidad,emplea.credito,emplea.fecha_ultimo_aumento,
|
|
emplea.tipocuenta,emplea.codbancodestino,
|
|
emplea.digiverbancodestino,emplea.tipo_sueldo,emplea.email,
|
|
emplea.instalador,emplea.cuenta_aux,emplea.moneda,
|
|
tasa,valorrd
|
|
|
|
LET filepath = "E:\\MARMOTECHC\\IMAGENES\\NOMINA\\tmpfile.jpg"
|
|
CALL emplea.foto_empleado.writeFile(filepath)
|
|
DISPLAY filepath TO fotos
|
|
END FUNCTION
|
|
|
|
FUNCTION acepta()
|
|
DIALOG ATTRIBUTES(UNBUFFERED, FIELD ORDER FORM)
|
|
INPUT BY NAME emplea.num_emp,emplea.departamento,emplea.nivel_emp,
|
|
emplea.cod_puesto,emplea.nom1_emp,emplea.nom2_emp,
|
|
emplea.apell1_emp,emplea.apell2_emp,localidad,
|
|
emplea.calle,emplea.casa_num,emplea.barrio,
|
|
emplea.urbanizacion,emplea.credito,emplea.cedula,emplea.serie,
|
|
emplea.telefono,emplea.fech_nac,emplea.cod_nac,emplea.licencia,
|
|
emplea.estado_civil,emplea.tipo_sangre,emplea.sueldo_ac,
|
|
emplea.moneda,
|
|
emplea.nomina,emplea.fech_efec,emplea.fecha_salida,emplea.paga_seg,
|
|
emplea.cod_seg1,
|
|
emplea.cod_seg2,emplea.cod_seg3,emplea.tipocuenta, emplea.codbancodestino,
|
|
emplea.digiverbancodestino,
|
|
emplea.cuenta_no,p_sexo,emplea.fecha_ultimo_aumento,sec_vend_supervisor,
|
|
emplea.tipo_sueldo,emplea.email,emplea.instalador,emplea.accno, emplea.cuenta_aux
|
|
ATTRIBUTE(WITHOUT DEFAULTS)
|
|
AFTER FIELD accno
|
|
EXECUTE buscaemp_att USING emplea.accno
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL fgl_Winmessage("INFO","EMPLEADO NO EXISTE EN EL SISTEMA SYSTEM ATTENDANCE","INFO")
|
|
NEXT FIELD accno
|
|
END IF
|
|
AFTER FIELD moneda
|
|
IF emplea.moneda IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD moneda
|
|
END IF
|
|
SELECT AVG(a.tasa) INTO tasa FROM cgtb00084 a WHERE a.mes = MONTH(today) AND a.ano = YEAR(today) AND
|
|
a.ventas = emplea.moneda
|
|
IF tasa IS NULL THEN
|
|
LET tasa = 1
|
|
END IF
|
|
LET valorrd = emplea.sueldo_ac * tasa
|
|
DISPLAY BY NAME tasa,valorrd
|
|
AFTER FIELD cuenta_aux
|
|
IF emplea.cuenta_aux IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD cuenta_aux
|
|
END IF
|
|
SELECT a.descripcion INTO descripcion_cuenta FROM cgtb00001 a
|
|
WHERE a.cuenta_no = emplea.cuenta_aux AND a.status_t IS NULL
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD cuenta_aux
|
|
END IF
|
|
DISPLAY BY NAME descripcion_cuenta
|
|
ON ACTION busca_foto
|
|
LET imagenom = "*.jpg"
|
|
CALL ui.interface.frontcall("standard","openfile",[imagenom,"jpg","png jpg bmp gif","Busca Imagen"],filepath)
|
|
IF filepath IS NOT NULL THEN
|
|
LET filedestino = FGL_GETENV("IMAGENNOMINA")
|
|
#LET filedestino = "F:\\FOURJS\\GAS22006\\pic\\NOMINA\\"
|
|
# LET filedestino = filedestino CLIPPED,"\\",emplea.num_emp USING "&&&&&",".jpg"
|
|
# CALL FGL_WINMESSAGE("W",filedestino,"stop")
|
|
# CALL fgl_getfile(filepath,filedestino)
|
|
|
|
LOCATE imagen_emp IN MEMORY
|
|
|
|
LET filedestino = "E:/MARMOTECHC/BIN240/nomina/", os.path.basename(filepath)
|
|
# CALL fgl_winmessage("info",filedestino,"info")
|
|
CALL fgl_getfile(filepath,filedestino)
|
|
|
|
CALL imagen_emp.readFile(filedestino)
|
|
LET emplea.foto_empleado = imagen_emp
|
|
# LET filedestino="F:\\MASTER\\IMAGENES\\NOMINA\\tmp.jpg"
|
|
LET filepath=filedestino
|
|
DISPLAY filepath TO fotos
|
|
|
|
END IF
|
|
|
|
## VERIFICA QUE LOS CAMPOS MODIFICABLES NO ESTEN EN BLANCO
|
|
BEFORE INPUT
|
|
IF operacion = "A" THEN
|
|
SELECT MAX(a.num_emp) INTO emplea.num_emp FROM adtb00003 a
|
|
WHERE a.num_emp < 9999
|
|
IF emplea.num_emp IS NULL THEN
|
|
LET emplea.num_emp = 0
|
|
END IF
|
|
LET emplea.num_emp = emplea.num_emp+1
|
|
DISPLAY BY NAME emplea.num_emp
|
|
END IF
|
|
CALL comisiones_adicionales.clear()
|
|
CALL comisiones.clear()
|
|
|
|
IF operacion <> "M" THEN
|
|
LET emplea.credito = "SI"
|
|
DISPLAY BY NAME emplea.credito
|
|
END IF
|
|
LET plocalidad = ui.ComboBox.forName("formonly.localidad")
|
|
CALL localidades()
|
|
|
|
IF operacion = "M" THEN
|
|
NEXT FIELD calle
|
|
END IF
|
|
AFTER FIELD sec_Vend_supervisor
|
|
IF sec_Vend_supervisor IS NOT NULL THEN
|
|
SELECT a.nom1_emp||' '||a.apell1_Emp INTO nombre_supervisor
|
|
FROM adtb0003 a
|
|
WHERE a.num_Emp = sec_vend_supervisor
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL FGL_WINMESSAGE("ERROR","EMPLEADO NO EXISTE","info")
|
|
NEXT FIELD sec_Vend_supervisor
|
|
END IF
|
|
END IF
|
|
AFTER FIELD num_emp
|
|
SELECT a.nom1_emp INTO emplea.nom1_emp FROM adtb00003 a
|
|
WHERE a.num_emp = emplea.num_emp
|
|
|
|
IF STATUS != NOTFOUND THEN
|
|
IF operacion = "A" THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
DISPLAY BY NAME emplea.nom1_emp
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
END IF
|
|
AFTER FIELD localidad
|
|
LET emplea.sucid = localidad
|
|
|
|
AFTER FIELD departamento
|
|
|
|
IF emplea.departamento IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD departamento
|
|
END IF
|
|
|
|
SELECT a.nom_dpto,a.departamentoid INTO depto.nom_dpto,pdepartamentoid FROM adtb00001 a
|
|
WHERE a.departamento = emplea.departamento
|
|
|
|
DISPLAY BY NAME depto.nom_dpto
|
|
AFTER FIELD cod_puesto
|
|
|
|
IF emplea.cod_puesto IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_puesto
|
|
END IF
|
|
|
|
SELECT @nom_puesto INTO puesto.nom_puesto FROM adtb00004
|
|
WHERE @cod_puesto = emplea.cod_puesto
|
|
|
|
DISPLAY BY NAME puesto.nom_puesto
|
|
|
|
AFTER FIELD nivel_emp
|
|
|
|
IF emplea.nivel_emp IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD nivel_emp
|
|
END IF
|
|
|
|
AFTER FIELD estado_civil
|
|
IF emplea.estado_civil IS NOT NULL THEN
|
|
IF emplea.estado_civil = "S" THEN
|
|
LET descr = "SOLTERO"
|
|
END IF
|
|
IF emplea.estado_civil = "C" THEN
|
|
LET descr = "CASADO"
|
|
END IF
|
|
ELSE
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD estado_civil
|
|
END IF
|
|
DISPLAY BY NAME descr
|
|
|
|
AFTER FIELD sueldo_ac
|
|
|
|
IF emplea.sueldo_ac IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD sueldo_ac
|
|
END IF
|
|
|
|
AFTER FIELD fech_nac
|
|
|
|
IF emplea.fech_nac IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fech_nac
|
|
END IF
|
|
|
|
IF YEAR(emplea.fech_nac) >= YEAR(today) THEN
|
|
ERROR "FECHA INCORRECTA"
|
|
NEXT FIELD fech_nac
|
|
END IF
|
|
|
|
AFTER FIELD nomina
|
|
IF emplea.nomina IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD nomina
|
|
END IF
|
|
|
|
IF emplea.nomina = "Q" THEN
|
|
LET descrip = "QUINCENAL"
|
|
END IF
|
|
IF emplea.nomina = "S" THEN
|
|
LET descrip = "SEMANAL"
|
|
END IF
|
|
IF emplea.nomina = "V" THEN
|
|
LET descrip = "VENDEDOR"
|
|
END IF
|
|
DISPLAY BY NAME descrip
|
|
|
|
AFTER FIELD p_sexo
|
|
IF p_sexo IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD p_sexo
|
|
END IF
|
|
|
|
IF p_sexo = "M" THEN
|
|
LET tipo_sexo = "MASCULINO"
|
|
ELSE
|
|
IF p_sexo = "F" THEN
|
|
LET tipo_sexo = "FEMENINO"
|
|
END IF
|
|
END IF
|
|
DISPLAY BY NAME tipo_sexo
|
|
#### Verifica si el usuario presiono la tecla <Ctrl-C>
|
|
|
|
AFTER INPUT
|
|
DECLARE busca_comision CURSOR FOR
|
|
SELECT a.sec_vend_a,RTRIM(b.nom1_emp) || " "||RTRIM(ISNULL(b.nom2_emp,' '))||" "||
|
|
RTRIM(ISNULL(b.apell1_emp,' ')),a.porc_cobros,a.porc_cobros_a
|
|
FROM vetb00075 a,adtb00003 b
|
|
WHERE a.sec_vend_a = emplea.num_emp AND
|
|
a.sec_vend_a = b.num_emp
|
|
|
|
|
|
LET idx = 1
|
|
FOREACH busca_comision INTO comisiones[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
DECLARE comision_adicional CURSOR FOR
|
|
SELECT a.sec_vend,RTRIM(b.nom1_emp) || " "||RTRIM(ISNULL(b.nom2_emp,' '))||" "||
|
|
RTRIM(ISNULL(b.apell1_emp,' ')),a.cod_n,c.producto,a.porc_vendedor,a.porc_supervisor
|
|
FROM vetb00076 a,adtb00003 b,iptb00020 c
|
|
WHERE a.sec_vend = emplea.num_emp AND
|
|
a.sec_vend = b.num_emp AND
|
|
a.cod_n = c.cod_n
|
|
|
|
|
|
LET idx = 1
|
|
FOREACH comision_adicional INTO comisiones_adicionales[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
END INPUT
|
|
|
|
INPUT ARRAY comisiones FROM s_comisiones.* ATTRIBUTE(WITHOUT DEFAULTS)
|
|
AFTER FIELD sec_vend
|
|
LET idx = arr_curr()
|
|
LET scr_l = scr_line()
|
|
|
|
SELECT RTRIM(b.nom1_emp) || " "||RTRIM(ISNULL(b.nom2_emp,' '))||" "||
|
|
RTRIM(ISNULL(b.apell1_emp,' '))
|
|
FROM adtb00003 b
|
|
WHERE b.num_emp = comisiones[idx].sec_vend_a
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL fgl_winmessage("ERROR","EMPLEADO NO EXISTE","INFO")
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
DISPLAY comisiones[idx].nombre_vend TO s_comisiones[scr_l].nombre_Vend
|
|
END INPUT
|
|
INPUT ARRAY comisiones_adicionales FROM s_adicionales.* ATTRIBUTE (WITHOUT DEFAULTS)
|
|
AFTER FIELD cod_n
|
|
IF comisiones_adicionales[arr_curr()].cod_n IS NOT NULL THEN
|
|
SELECT a.descrip_Esp INTO comisiones_adicionales[arr_curr()].descripcion
|
|
FROM iptb00020 a
|
|
WHERE a.cod_n = comisiones_adicionales[arr_curr()].cod_n AND a.status_t IS NULL
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL fgl_winmessage("ERROR","REGISTRO NO EXISTE","INFO")
|
|
NEXT FIELD cod_n
|
|
END IF
|
|
DISPLAY comisiones_adicionales[arr_curr()].descripcion TO s_adicionales[scr_line()].descripcion
|
|
|
|
|
|
|
|
END IF
|
|
END INPUT
|
|
|
|
ON ACTION CANCEL
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
CLEAR FORM
|
|
# LET INT_FLAG = FALSE
|
|
RETURN
|
|
ON ACTION guardar
|
|
|
|
## AQUI SE ACTUALIZA EL REGISTRO
|
|
IF operacion = "M" THEN
|
|
SET CONNECTION "MSSQL"
|
|
{
|
|
UPDATE adtb00003 SET
|
|
departamento = emplea.departamento ,
|
|
cod_puesto =emplea.cod_puesto,
|
|
nivel_emp =emplea.nivel_emp,
|
|
nom1_emp =emplea.nom1_emp,
|
|
nom2_emp =emplea.nom2_emp,
|
|
apell1_emp =emplea.apell1_emp,
|
|
apell2_emp =emplea.apell2_emp,
|
|
calle =emplea.calle,
|
|
casa_num =emplea.casa_num,
|
|
barrio =emplea.barrio,
|
|
fech_efec =emplea.fech_efec,
|
|
fech_nac =emplea.fech_nac,
|
|
urbanizacion = emplea.urbanizacion,
|
|
telefono =emplea.telefono,
|
|
cedula =emplea.cedula,
|
|
serie =emplea.serie,
|
|
cod_nac =emplea.cod_nac,
|
|
estado_civil =emplea.estado_civil,
|
|
tipo_sangre =emplea.tipo_sangre,
|
|
sueldo_ac =emplea.sueldo_ac,
|
|
nomina =emplea.nomina,
|
|
paga_seg =emplea.paga_seg,
|
|
fecha_salida =emplea.fecha_salida,
|
|
cuenta_no =emplea.cuenta_no,
|
|
us_mod = usuarios,
|
|
fech_mod = getdate(),
|
|
licencia =emplea.licencia,
|
|
cod_seg1 =emplea.cod_seg1,
|
|
cod_seg3 =emplea.cod_seg3,
|
|
foto_empleado=emplea.foto_empleado,
|
|
sucid =emplea.sucid,
|
|
credito =emplea.credito ,
|
|
fecha_ultimo_aumento =emplea.fecha_ultimo_aumento,
|
|
codbancodestino =emplea.codbancodestino,
|
|
digiverbancodestino =emplea.digiverbancodestino,
|
|
tipo_sueldo =emplea.tipo_sueldo,
|
|
email =emplea.email,
|
|
instalador =emplea.instalador,
|
|
cuenta_aux =emplea.cuenta_aux,
|
|
moneda =emplea.moneda
|
|
|
|
WHERE adtb00003.num_emp = emplea.num_emp
|
|
}
|
|
EXECUTE act_emp USING emplea.departamento,emplea.num_emp
|
|
|
|
UPDATE adtb00021 SET sexo = p_sexo
|
|
WHERE num_emp = emplea.num_emp
|
|
|
|
SET CONNECTION "IFMX"
|
|
SELECT a.num_emp FROM adtb00003 a WHERE a.num_emp = emplea.num_emp
|
|
|
|
IF STATUS <> NOTFOUND THEN
|
|
|
|
UPDATE adtb00003 SET
|
|
(departamento,cod_puesto,nivel_emp,nom1_emp,nom2_emp,
|
|
apell1_emp,apell2_emp,calle,casa_num,barrio,fech_efec,
|
|
fech_nac,
|
|
urbanizacion,telefono,cedula,serie,cod_nac,estado_civil,
|
|
tipo_sangre,sueldo_ac,nomina,paga_seg, fecha_salida,cuenta_no, us_mod,fech_mod,
|
|
licencia,cod_seg1,cod_seg3,moneda)=
|
|
|
|
(emplea.departamento,emplea.cod_puesto,emplea.nivel_emp,
|
|
emplea.nom1_emp,emplea.nom2_emp,emplea.apell1_emp,
|
|
emplea.apell2_emp,emplea.calle,emplea.casa_num,
|
|
emplea.barrio,emplea.fech_efec,emplea.fech_nac,
|
|
emplea.urbanizacion,
|
|
emplea.telefono,
|
|
emplea.cedula,emplea.serie,emplea.cod_nac,
|
|
emplea.estado_civil,emplea.tipo_sangre,emplea.sueldo_ac,
|
|
emplea.nomina,emplea.paga_seg,emplea.fecha_salida,emplea.cuenta_no,usuarios,GETDATE(),
|
|
emplea.licencia,emplea.cod_seg1,emplea.cod_seg3,emplea.moneda)
|
|
WHERE @num_emp = emplea.num_emp
|
|
|
|
ELSE
|
|
INSERT INTO adtb00003
|
|
(num_emp,departamento,cod_puesto,nivel_emp,nom1_emp,
|
|
nom2_emp, apell1_emp,apell2_emp,calle,casa_num,barrio,
|
|
urbanizacion,telefono,cedula,serie,cod_nac,estado_civil,
|
|
fech_efec,fecha_salida,fech_nac,
|
|
tipo_sangre,sueldo_ac,nomina,paga_seg, cuenta_no,us_crea,
|
|
fech_crea,licencia,cod_Seg3,moneda)
|
|
VALUES
|
|
(emplea.num_emp,emplea.departamento,
|
|
emplea.cod_puesto,emplea.nivel_emp,
|
|
emplea.nom1_emp,emplea.nom2_emp,emplea.apell1_emp,
|
|
emplea.apell2_emp,emplea.calle,emplea.casa_num,
|
|
emplea.barrio,emplea.urbanizacion,emplea.telefono,
|
|
emplea.cedula,emplea.serie,emplea.cod_nac,
|
|
emplea.estado_civil,emplea.fech_efec,emplea.fecha_salida,emplea.fech_nac,
|
|
emplea.tipo_sangre,emplea.sueldo_ac,
|
|
emplea.nomina,emplea.paga_seg,emplea.cuenta_no,usuarios,GETDATE(),
|
|
emplea.licencia,emplea.cod_seg3,emplea.moneda)
|
|
|
|
END IF
|
|
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
|
|
END IF
|
|
IF operacion = "A" THEN
|
|
SET CONNECTION "MSSQL"
|
|
SELECT MAX(a.num_emp) INTO emplea.num_emp FROM adtb00003 a
|
|
WHERE a.num_emp < 9999
|
|
IF emplea.num_emp IS NULL THEN
|
|
LET emplea.num_emp = 0
|
|
END IF
|
|
LET emplea.num_emp = emplea.num_emp+1
|
|
DISPLAY BY NAME emplea.num_emp
|
|
|
|
INSERT INTO adtb00003
|
|
(num_emp,departamento,cod_puesto,nivel_emp,nom1_emp,
|
|
nom2_emp, apell1_emp,apell2_emp,calle,casa_num,barrio,
|
|
urbanizacion,telefono,cedula,serie,cod_nac,estado_civil,
|
|
fech_efec,fecha_salida,fech_nac,
|
|
tipo_sangre,sueldo_ac,nomina,paga_seg, cuenta_no,us_crea,
|
|
fech_crea,licencia,cod_Seg3,foto_empleado,sucid,credito,fecha_ultimo_aumento,tipocuenta,
|
|
codbancodestino,digiverbancodestino,email,instalador,cuenta_aux,moneda,accno,departamentoid)
|
|
VALUES
|
|
(emplea.num_emp,emplea.departamento,
|
|
emplea.cod_puesto,emplea.nivel_emp,
|
|
emplea.nom1_emp,emplea.nom2_emp,emplea.apell1_emp,
|
|
emplea.apell2_emp,emplea.calle,emplea.casa_num,
|
|
emplea.barrio,emplea.urbanizacion,emplea.telefono,
|
|
emplea.cedula,emplea.serie,emplea.cod_nac,
|
|
emplea.estado_civil,emplea.fech_efec,emplea.fecha_salida,emplea.fech_nac,
|
|
emplea.tipo_sangre,emplea.sueldo_ac,
|
|
emplea.nomina,emplea.paga_seg,emplea.cuenta_no,usuarios,GETDATE(),
|
|
emplea.licencia,emplea.cod_seg3,emplea.foto_empleado,emplea.sucid,emplea.credito,
|
|
emplea.fecha_ultimo_aumento,emplea.tipocuenta,emplea.codbancodestino,emplea.digiverbancodestino,
|
|
emplea.email,emplea.instalador,emplea.cuenta_aux,emplea.moneda,emplea.accno)
|
|
|
|
INSERT INTO adtb00021 VALUES (emplea.num_emp,null,null,emplea.nom1_emp,
|
|
emplea.cedula,p_sexo,emplea.fech_nac,null,
|
|
SUSER_SNAME(),GETDATE(),null,null)
|
|
LET actualiza_datos =
|
|
"INSERT INTO cooperativa.dbo.adtb00003
|
|
(num_emp,departamento,cod_puesto,nivel_emp,nom1_emp,
|
|
nom2_emp, apell1_emp,apell2_emp,calle,casa_num,barrio,
|
|
urbanizacion,telefono,cedula,serie,cod_nac,estado_civil,
|
|
fech_efec,fecha_salida,fech_nac,
|
|
tipo_sangre,sueldo_ac,nomina,paga_seg, cuenta_no,us_crea,
|
|
fech_crea,licencia,cod_Seg3)
|
|
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,getdate(),?,?)"
|
|
|
|
PREPARE command_ins FROM actualiza_datos
|
|
EXECUTE command_ins USING
|
|
emplea.num_emp, emplea.departamento,
|
|
emplea.cod_puesto, emplea.nivel_emp,
|
|
emplea.nom1_emp, emplea.nom2_emp,emplea.apell1_emp,
|
|
emplea.apell2_emp, emplea.calle,emplea.casa_num,
|
|
emplea.barrio, emplea.urbanizacion,emplea.telefono,
|
|
emplea.cedula, emplea.serie,emplea.cod_nac,
|
|
emplea.estado_civil, emplea.fech_efec, emplea.fecha_salida, emplea.fech_nac,
|
|
emplea.tipo_sangre, emplea.sueldo_ac,
|
|
emplea.nomina, emplea.paga_seg, emplea.cuenta_no,
|
|
usuarios,
|
|
emplea.licencia, emplea.cod_seg3
|
|
|
|
SET CONNECTION "IFMX"
|
|
INSERT INTO adtb00003
|
|
(num_emp,departamento,cod_puesto,nivel_emp,nom1_emp,
|
|
nom2_emp, apell1_emp,apell2_emp,calle,casa_num,barrio,
|
|
urbanizacion,telefono,cedula,serie,cod_nac,estado_civil,
|
|
fech_efec,fecha_salida,fech_nac,
|
|
tipo_sangre,sueldo_ac,nomina,paga_seg, cuenta_no,us_crea,
|
|
fech_crea,licencia,cod_Seg3,moneda)
|
|
VALUES
|
|
(emplea.num_emp,emplea.departamento,
|
|
emplea.cod_puesto,emplea.nivel_emp,
|
|
emplea.nom1_emp,emplea.nom2_emp,emplea.apell1_emp,
|
|
emplea.apell2_emp,emplea.calle,emplea.casa_num,
|
|
emplea.barrio,emplea.urbanizacion,emplea.telefono,
|
|
emplea.cedula,emplea.serie,emplea.cod_nac,
|
|
emplea.estado_civil,emplea.fech_efec,emplea.fecha_salida,emplea.fech_nac,
|
|
emplea.tipo_sangre,emplea.sueldo_ac,
|
|
emplea.nomina,emplea.paga_seg,emplea.cuenta_no,usuarios,GETDATE(),
|
|
emplea.licencia,emplea.cod_seg3,emplea.moneda)
|
|
|
|
LET numero_msg = 1
|
|
CALL msg(numero_msg)
|
|
|
|
END IF
|
|
RETURN
|
|
END DIALOG
|
|
END FUNCTION
|