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

1190 lines
54 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,
num_emp_supervisor INT,
nombre_out,nombre_supervisor,nombre_super VARCHAR(60),
actualiza_datos STRING,
nombre_empleado_out VARCHAR(100),
imagen_emp BYTE
DEFINE p_sexo CHAR(1)
DEFINE herramientas DYNAMIC ARRAY OF RECORD
codigo VARCHAR(20),
descripcion VARCHAR(80),
fecha DATE,
documento VARCHAR(20),
cantidad DECIMAL(12,5)
END RECORD
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT TO "marmotech" AS "IFMX" USER usuarios USING clave
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
LET selec = "SELECT a.deptname FROM facial.dbo.departments a WHERE a.code = ? "
PREPARE BUSCA_DEPTO FROM selec
MENU
ON ACTION nuevo
SET CONNECTION "MSSQL"
SELECT a.usuario FROM seg0001 a,seg0005 b
WHERE a.usuario =usuarios AND
a.cod_perfil = b.cod_perfil AND
b.programa = 'noprmt003.nuevo'
IF STATUS = NOTFOUND THEN
CALL fgl_winmessage("ERROR","USTED NO TIENE PERMISOS PARA UTILIZAR OPCION","INFO")
CONTINUE MENU
END IF
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,a.alias
FROM num_emp,departamento,nom1_emp,apell1_emp,nom2_emp,apell2_emp,cedula,alias
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,a.telefonoCorporativo,a.numeroOficina,a.extension,
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.email_corporativo, a.instalador,a.cuenta_aux,a.cuenta_out,
CONVERT(CHAR(10),ISNULL(a.fecha_suspension,'01/01/2007'),103),
a.codigo_retiro_bco,a.retiro_comercial,a.estado_legal,a.genera_file_bco,a.observacion,
a.tipo_documento,a.gerentemarcas,a.enviar_encuesta,a.enviar_volante
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.num_emp,emplea.departamento,emplea.nivel_emp,
emplea.cod_puesto,emplea.nom1_emp,emplea.nom2_emp,
emplea.apell1_emp,emplea.apell2_emp,emplea.tipo_empleado,
emplea.fecha_termino_c,emplea.calle,emplea.casa_num,emplea.barrio,
emplea.urbanizacion,emplea.credito,emplea.telefono,emplea.telefonoCorporativo,
emplea.numeroOficina,emplea.extension,emplea.fech_nac,emplea.cod_nac,
emplea.estado_civil,emplea.tipo_sangre,emplea.cedula,emplea.serie,
emplea.licencia,emplea.sueldo_ac,emplea.nomina,emplea.fech_efec,
emplea.fecha_salida,emplea.paga_seg,emplea.cod_seg1,emplea.cod_seg2,
emplea.cod_seg3,emplea.tipocuenta,emplea.cuenta_no,emplea.status_t,emplea.us_crea,
emplea.fech_crea,emplea.us_mod,emplea.fech_mod,emplea.foto_empleado,emplea.sucid,
emplea.monto_seg_med,emplea.monto_seg_int,emplea.monto_care,
emplea.fecha_ultimo_aumento,emplea.moneda,emplea.codbancodestino,
emplea.digiverbancodestino,emplea.tipo_sueldo,emplea.email,emplea.email_corporativo,emplea.instalador,emplea.cuenta_aux,
emplea.cuenta_out,emplea.fecha_suspension,
emplea.codigo_retiro_bco,emplea.retiro_comercial,emplea.estado_legal,emplea.genera_file_bco,
emplea.observacion,emplea.tipo_documento,emplea.gerentemarcas,emplea.enviar_encuesta,emplea.enviar_volante
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.num_emp,emplea.departamento,emplea.nivel_emp,
emplea.cod_puesto,emplea.nom1_emp,emplea.nom2_emp,
emplea.apell1_emp,emplea.apell2_emp,emplea.tipo_empleado,
emplea.fecha_termino_c,emplea.calle,emplea.casa_num,emplea.barrio,
emplea.urbanizacion,emplea.credito,emplea.telefono,emplea.telefonoCorporativo,
emplea.numeroOficina,emplea.extension,emplea.fech_nac,emplea.cod_nac,
emplea.estado_civil,emplea.tipo_sangre,emplea.cedula,emplea.serie,
emplea.licencia,emplea.sueldo_ac,emplea.nomina,emplea.fech_efec,
emplea.fecha_salida,emplea.paga_seg,emplea.cod_seg1,emplea.cod_seg2,
emplea.cod_seg3,emplea.tipocuenta,emplea.cuenta_no,emplea.status_t,emplea.us_crea,
emplea.fech_crea,emplea.us_mod,emplea.fech_mod,emplea.foto_empleado,emplea.sucid,
emplea.monto_seg_med,emplea.monto_seg_int,emplea.monto_care,
emplea.fecha_ultimo_aumento,emplea.moneda,emplea.codbancodestino,
emplea.digiverbancodestino,emplea.tipo_sueldo,emplea.email,emplea.email_corporativo,emplea.instalador,emplea.cuenta_aux,
emplea.cuenta_out,emplea.fecha_suspension,
emplea.codigo_retiro_bco,emplea.retiro_comercial,emplea.estado_legal,emplea.genera_file_bco,
emplea.observacion,emplea.tipo_documento,emplea.gerentemarcas,emplea.enviar_encuesta,emplea.enviar_volante
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.num_emp,emplea.departamento,emplea.nivel_emp,
emplea.cod_puesto,emplea.nom1_emp,emplea.nom2_emp,
emplea.apell1_emp,emplea.apell2_emp,emplea.tipo_empleado,
emplea.fecha_termino_c,emplea.calle,emplea.casa_num,emplea.barrio,
emplea.urbanizacion,emplea.credito,emplea.telefono,emplea.telefonoCorporativo,
emplea.numeroOficina,emplea.extension,emplea.fech_nac,emplea.cod_nac,
emplea.estado_civil,emplea.tipo_sangre,emplea.cedula,emplea.serie,
emplea.licencia,emplea.sueldo_ac,emplea.nomina,emplea.fech_efec,
emplea.fecha_salida,emplea.paga_seg,emplea.cod_seg1,emplea.cod_seg2,
emplea.cod_seg3,emplea.tipocuenta,emplea.cuenta_no,emplea.status_t,emplea.us_crea,
emplea.fech_crea,emplea.us_mod,emplea.fech_mod,emplea.foto_empleado,emplea.sucid,
emplea.monto_seg_med,emplea.monto_seg_int,emplea.monto_care,
emplea.fecha_ultimo_aumento,emplea.moneda,emplea.codbancodestino,
emplea.digiverbancodestino,emplea.tipo_sueldo,emplea.email,emplea.email_corporativo,emplea.instalador,emplea.cuenta_aux,
emplea.cuenta_out,emplea.fecha_suspension,
emplea.codigo_retiro_bco,emplea.retiro_comercial,emplea.estado_legal,emplea.genera_file_bco,
emplea.observacion,emplea.tipo_documento,emplea.gerentemarcas,emplea.enviar_encuesta,emplea.enviar_volante
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.num_emp,emplea.departamento,emplea.nivel_emp,
emplea.cod_puesto,emplea.nom1_emp,emplea.nom2_emp,
emplea.apell1_emp,emplea.apell2_emp,emplea.tipo_empleado,
emplea.fecha_termino_c,emplea.calle,emplea.casa_num,emplea.barrio,
emplea.urbanizacion,emplea.credito,emplea.telefono,emplea.telefonoCorporativo,
emplea.numeroOficina,emplea.extension,emplea.fech_nac,emplea.cod_nac,
emplea.estado_civil,emplea.tipo_sangre,emplea.cedula,emplea.serie,
emplea.licencia,emplea.sueldo_ac,emplea.nomina,emplea.fech_efec,
emplea.fecha_salida,emplea.paga_seg,emplea.cod_seg1,emplea.cod_seg2,
emplea.cod_seg3,emplea.tipocuenta,emplea.cuenta_no,emplea.status_t,emplea.us_crea,
emplea.fech_crea,emplea.us_mod,emplea.fech_mod,emplea.foto_empleado,emplea.sucid,
emplea.monto_seg_med,emplea.monto_seg_int,emplea.monto_care,
emplea.fecha_ultimo_aumento,emplea.moneda,emplea.codbancodestino,
emplea.digiverbancodestino,emplea.tipo_sueldo,emplea.email,emplea.email_corporativo,emplea.instalador,emplea.cuenta_aux,
emplea.cuenta_out,emplea.fecha_suspension,
emplea.codigo_retiro_bco,emplea.retiro_comercial,emplea.estado_legal,emplea.genera_file_bco,
emplea.observacion,emplea.tipo_documento,emplea.gerentemarcas,emplea.enviar_encuesta,emplea.enviar_volante
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.num_emp,emplea.departamento,emplea.nivel_emp,
emplea.cod_puesto,emplea.nom1_emp,emplea.nom2_emp,
emplea.apell1_emp,emplea.apell2_emp,emplea.tipo_empleado,
emplea.fecha_termino_c,emplea.calle,emplea.casa_num,emplea.barrio,
emplea.urbanizacion,emplea.credito,emplea.telefono,emplea.telefonoCorporativo,
emplea.numeroOficina,emplea.extension,emplea.fech_nac,emplea.cod_nac,
emplea.estado_civil,emplea.tipo_sangre,emplea.cedula,emplea.serie,
emplea.licencia,emplea.sueldo_ac,emplea.nomina,emplea.fech_efec,
emplea.fecha_salida,emplea.paga_seg,emplea.cod_seg1,emplea.cod_seg2,
emplea.cod_seg3,emplea.tipocuenta,emplea.cuenta_no,emplea.status_t,emplea.us_crea,
emplea.fech_crea,emplea.us_mod,emplea.fech_mod,emplea.foto_empleado,emplea.sucid,
emplea.monto_seg_med,emplea.monto_seg_int,emplea.monto_care,
emplea.fecha_ultimo_aumento,emplea.moneda,emplea.codbancodestino,
emplea.digiverbancodestino,emplea.tipo_sueldo,emplea.email,emplea.email_corporativo,emplea.instalador,emplea.cuenta_aux,
emplea.cuenta_out,emplea.fecha_suspension,
emplea.codigo_retiro_bco,emplea.retiro_comercial,emplea.estado_legal,emplea.genera_file_bco,
emplea.observacion,emplea.tipo_documento,emplea.gerentemarcas,emplea.enviar_encuesta,emplea.enviar_volante
CALL selecta1()
LET tipo_sexo = " "
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger" "<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
SET CONNECTION "MSSQL"
SELECT a.usuario FROM seg0001 a,seg0005 b
WHERE a.usuario =usuarios AND
a.cod_perfil = b.cod_perfil AND
b.programa = 'noprmt003.modifica'
IF STATUS = NOTFOUND THEN
CALL acepta1()
ELSE
CALL acepta()
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
EXIT MENU
END IF
SET CONNECTION "MSSQL"
IF emplea.nivel_emp IS NULL THEN
CALL msg(16)
CONTINUE MENU
END IF
## AQUI SE ACTUALIZA EL REGISTRO
IF operacion = "M" THEN
UPDATE adtb00003 SET
(nom1_emp,nom2_emp,
apell1_emp,apell2_emp,calle,casa_num,barrio,fech_efec,
fech_nac,
urbanizacion,telefono,telefonoCorporativo,numeroOficina,extension,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,foto_empleado,sucid,credito,fecha_ultimo_aumento,codbancodestino,
digiverbancodestino,tipo_sueldo,email,email_corporativo,instalador,cuenta_aux,num_emp_supervisor,
retiro_comercial,estado_legal,genera_file_bco,observacion,gerentemarcas,enviar_encuesta,enviar_volante)=
(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.telefonoCorporativo,emplea.numeroOficina, emplea.extension,
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,SUSER_SNAME(),GETDATE(),
emplea.licencia,emplea.cod_seg1,emplea.cod_seg3,emplea.foto_empleado,
localidad,emplea.credito,emplea.fecha_ultimo_aumento,emplea.codbancodestino,emplea.digiverbancodestino,emplea.tipo_sueldo,
emplea.email,emplea.email_corporativo,emplea.instalador,emplea.cuenta_aux,num_emp_supervisor,emplea.retiro_comercial,
emplea.estado_legal,emplea.genera_file_bco,emplea.observacion,
emplea.gerentemarcas,emplea.enviar_encuesta,emplea.enviar_volante)
WHERE @num_emp = emplea.num_emp
SELECT a.num_emp FROM adtb00021 a WHERE a.num_emp = emplea.num_emp
IF STATUS <> NOTFOUND THEN
UPDATE adtb00021 SET sexo = p_sexo
WHERE num_emp = emplea.num_emp
ELSE
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)
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,"' ",
" retiro_comercial='",emplea.retiro_comercial,"' ",
" WHERE num_emp =", emplea.num_emp
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)=
(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)
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)
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)
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)
} ON ACTION carnet ATTRIBUTE(TEXT="Carnet",IMAGE="fa-print")
CALL cardnet(emplea.num_emp)
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.fecha_suspension INTO emplea.fecha_suspension FROM adtb00003 a
WHERE a.num_emp = emplea.num_emp
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 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
CALL departamentos()
CALL puestos()
LET plocalidad = ui.ComboBox.forName("formonly.localidad")
CALL nolocalidades()
LET localidad = emplea.sucid
SELECT RTRIM(a.nom1_emp)||' '||a.apell1_Emp INTO nombre_super FROM adtb00003 a
WHERE a.num_emp = num_emp_supervisor AND a.status_t IS NULL
CALL nivel_educacion()
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.telefonoCorporativo,
emplea.numeroOficina, emplea.extension,emplea.estado_civil,
emplea.tipo_sangre,emplea.sueldo_ac,emplea.nomina,
emplea.fech_efec,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.email_corporativo,
emplea.instalador,emplea.cuenta_aux,num_emp_supervisor,nombre_super,
emplea.fecha_suspension,emplea.codigo_retiro_bco,
emplea.retiro_comercial,emplea.estado_legal,emplea.genera_file_bco,
emplea.cuenta_out,emplea.observacion,emplea.moneda,
emplea.tipo_documento,
emplea.gerentemarcas,emplea.enviar_encuesta,emplea.enviar_volante
IF emplea.foto_empleado IS NOT NULL THEN
LET filepath = ".\\IMAGENES\\tmpfile.jpg"
CALL emplea.foto_empleado.writeFile(filepath)
DISPLAY filepath TO fotos
END IF
CALL carga_herramientas()
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,emplea.gerentemarcas,
emplea.enviar_volante,emplea.enviar_encuesta,
localidad,
num_emp_supervisor,
emplea.calle,emplea.casa_num,emplea.barrio,
emplea.urbanizacion,emplea.credito,emplea.tipo_documento, emplea.cedula,
emplea.telefono,emplea.telefonoCorporativo, emplea.numeroOficina, emplea.extension,
emplea.fech_nac,emplea.cod_nac,emplea.licencia,emplea.alias,
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,emplea.genera_file_bco, p_sexo,emplea.fecha_ultimo_aumento,sec_vend_supervisor,
emplea.tipo_sueldo,emplea.email,emplea.email_corporativo,emplea.instalador,emplea.cuenta_aux,emplea.cuenta_out,
emplea.retiro_comercial,emplea.estado_legal,
emplea.observacion
ATTRIBUTE(WITHOUT DEFAULTS)
AFTER FIELD cod_nac
IF emplea.cod_nac IS NULL THEN
CALL msg(16)
NEXT FIELD cod_nac
END IF
SELECT nom_nac INTO nacion.nom_nac FROM adtb00007
WHERE cod_nac = emplea.cod_nac
DISPLAY BY NAME nacion.nom_nac
BEFORE FIELD cedula
IF operacion = "M" AND emplea.tipo_documento = 'CEDULA' THEN
NEXT FIELD telefono
END IF
AFTER FIELD num_emp_supervisor
IF num_emp_supervisor IS NOT NULL THEN
SELECT RTRIM(a.nom1_emp)||' '||a.apell1_Emp INTO nombre_super FROM adtb00003 a
WHERE a.num_emp = num_emp_supervisor AND a.status_t IS NULL
IF STATUS = NOTFOUND THEN
CALL msg(3)
NEXT FIELD num_emp_supervisor
END IF
DISPLAY BY NAME nombre_super
END IF
AFTER FIELD cedula
IF emplea.cedula IS NULL THEN
CALL msg(16)
NEXT FIELD cedula
END IF
DISPLAY "tipo ",emplea.tipo_documento
IF emplea.tipo_documento = 'CEDULA' THEN
IF LENGTH(emplea.cedula) <> 11 THEN
CALL msg(77)
NEXT FIELD cedula
END IF
SELECT UNIQUE a.cedula FROM adtb00003 a WHERE a.cedula = emplea.cedula AND a.status_t IS NULL
IF STATUS <> NOTFOUND THEN
CALL msg(12)
NEXT FIELD cedula
END IF
END IF
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 *.png *.jpeg"
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"
LET emplea.url_foto = filedestino
# CALL FGL_WINMESSAGE("W",filedestino,"stop")
# CALL fgl_getfile(filepath,filedestino)
LOCATE imagen_emp IN MEMORY
# LET filedestino = "./IMAGENES/", 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
CALL departamentos()
CALL puestos()
CALL nivel_educacion()
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 nolocalidades()
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
SELECT sucid FROM sucursales WHERE sucid = localidad AND sucid_sirla IS NOT NULL
IF STATUS = NOTFOUND THEN
CALL msg(16)
NEXT FIELD localidad
END IF
LET emplea.sucid = localidad
BEFORE FIELD departamento
IF operacion = "M" THEN
NEXT FIELD nivel_emp
END IF
AFTER FIELD departamento
IF emplea.departamento IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD departamento
END IF
SELECT nom_dpto INTO depto.nom_dpto FROM adtb00001
WHERE departamento = emplea.departamento
DISPLAY BY NAME depto.nom_dpto
EXECUTE BUSCA_DEPTO INTO nombre_out USING depto.departamento_out
DISPLAY BY NAME nombre_out
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 a.nom_puesto INTO puesto.nom_puesto FROM adtb00004 a
WHERE a.cod_puesto = emplea.cod_puesto AND a.cod_puesto_sirla IS NOT null
IF STATUS = NOTFOUND THEN
CALL fgl_winmessage("INFO","PUESTO NO EXISTE","INFO")
NEXT FIELD cod_puesto
END IF
DISPLAY BY NAME puesto.nom_puesto
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
IF emplea.nivel_emp IS NULL THEN
CALL msg(16)
NEXT FIELD nivel_emp
END IF
IF emplea.cod_nac IS NULL THEN
CALL msg(16)
NEXT FIELD cod_nac
END IF
IF emplea.estado_civil IS NULL THEN
CALL msg(16)
NEXT FIELD estado_civil
END IF
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
IF emplea.cuenta_aux IS NULL THEN
CALL msg(16)
NEXT FIELD cuenta_aux
END IF
IF emplea.tipo_documento = 'CEDULA' THEN
IF LENGTH(emplea.cedula) <> 11 THEN
CALL msg(77)
NEXT FIELD cedula
END IF
END IF
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 = true
RETURN
ON ACTION guardar ATTRIBUTE(TEXT="Guardar",IMAGE="filesave")
IF emplea.nivel_emp IS NULL THEN
CALL msg(16)
NEXT FIELD nivel_emp
END IF
IF emplea.fech_nac IS NULL THEN
CALL msg(16)
NEXT FIELD fech_nac
END IF
IF emplea.fech_efec IS NULL THEN
CALL msg(16)
NEXT FIELD fech_efec
END IF
IF emplea.tipo_documento = 'CEDULA' THEN
IF LENGTH(emplea.cedula) <> 11 THEN
CALL msg(77)
NEXT FIELD cedula
END IF
END IF
IF localidad IS NULL THEN
CALL msg(16)
NEXT FIELD localidad
END IF
## AQUI SE ACTUALIZA EL REGISTRO
IF operacion = "M" THEN
SET CONNECTION "MSSQL"
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,telefonoCorporativo,numeroOficina,extension,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,foto_empleado,sucid,credito,tipocuenta,
codbancodestino,digiverbancodestino,tipo_sueldo,email,email_corporativo,cuenta_aux,cuenta_out,departamento_out,
num_emp_supervisor,retiro_comercial,estado_legal,genera_file_bco,observacion,moneda,tipo_documento,
gerentemarcas,alias,url_foto,enviar_encuesta,enviar_volante)=
(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.telefonoCorporativo, emplea.numeroOficina, emplea.extension,
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.foto_empleado,
localidad,emplea.credito,emplea.tipocuenta,emplea.codbancodestino,emplea.digiverbancodestino,
emplea.tipo_sueldo,emplea.email,emplea.email_corporativo,emplea.cuenta_aux,emplea.cuenta_out,emplea.departamento_out,
num_emp_supervisor,emplea.retiro_comercial,emplea.estado_legal,emplea.genera_file_bco,
emplea.observacion,emplea.moneda,emplea.tipo_documento,
emplea.gerentemarcas,emplea.alias,emplea.url_foto,emplea.enviar_encuesta,emplea.enviar_volante)
WHERE @num_emp = emplea.num_emp
SELECT a.num_emp FROM adtb00021 a WHERE a.num_emp = emplea.num_emp
IF STATUS <> NOTFOUND THEN
UPDATE adtb00021 SET sexo = p_sexo
WHERE num_emp = emplea.num_emp
ELSE
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)
END IF
{ 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)=
(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)
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,telefonoCorporativo,numeroOficina,extension,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,email_corporativo,instalador,cuenta_aux,cuenta_out,
departamento_out,num_emp_supervisor,retiro_comercial,estado_legal,genera_file_bco,observacion,tipo_documento,
gerentemarcas,alias,url_foto,enviar_encuesta,enviar_volante)
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.telefonoCorporativo, emplea.numeroOficina, emplea.extension,
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.email_corporativo,emplea.instalador,emplea.cuenta_aux,emplea.cuenta_out,
emplea.departamento_out,num_emp_supervisor,emplea.retiro_comercial,emplea.estado_legal,
emplea.genera_file_bco,emplea.observacion,emplea.tipo_documento,
emplea.gerentemarcas,emplea.alias,emplea.url_foto,emplea.enviar_encuesta,emplea.enviar_volante)
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)
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)
LET numero_msg = 1
CALL msg(numero_msg)
END IF
RETURN
END DIALOG
END FUNCTION
FUNCTION acepta1()
MENU
ON ACTION busca_foto
LET imagenom = "*.jpg *.png *.jpeg"
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 = filedestino CLIPPED,"\\",emplea.num_emp USING "&&&&&",".jpg"
LET emplea.url_foto = filedestino
# CALL FGL_WINMESSAGE("W",filedestino,"stop")
# CALL fgl_getfile(filepath,filedestino)
LOCATE imagen_emp IN MEMORY
# LET filedestino = "./IMAGENES/", 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
ON ACTION CANCEL
LET numero_msg = 2
CALL msg(numero_msg)
CLEAR FORM
LET INT_FLAG = true
RETURN
ON ACTION guardar ATTRIBUTE(TEXT="Guardar",IMAGE="filesave")
SET CONNECTION "MSSQL"
UPDATE adtb00003 SET
foto_empleado = emplea.foto_empleado,
us_mod = usuarios,
fech_mod = getdate()
WHERE @num_emp = emplea.num_emp
LET numero_msg = 13
CALL msg(numero_msg)
END MENU
END FUNCTION
FUNCTION carga_herramientas()
DEFINE i INTEGER
SET CONNECTION "MSSQL"
CALL herramientas.clear()
DECLARE cur_herr CURSOR FOR
SELECT a.codigo,
RTRIM(ISNULL(b.descrip_esp,'')),
a.fecha,
a.documento,
a.cantidad
FROM adtb00057 a
LEFT JOIN irtb00002 b
ON CAST(b.cod_n AS VARCHAR(10)) + '-' +
CAST(b.cod_grupo AS VARCHAR(10)) + '-' +
CAST(b.cod_tipo AS VARCHAR(10)) + '-' +
CAST(b.cod_sec AS VARCHAR(10)) = a.codigo
WHERE a.num_emp = emplea.num_emp
ORDER BY a.codigo
LET i = 1
FOREACH cur_herr INTO herramientas[i].*
LET i = i + 1
END FOREACH
IF i > 1 THEN
CALL herramientas.deleteElement(i) -- quita el slot vaco final
END IF
CALL muestra_herramientas()
END FUNCTION
FUNCTION muestra_herramientas()
DEFINE i, tope INTEGER
CLEAR s_herramientas.*
LET tope = herramientas.getLength()
IF tope > 12 THEN LET tope = 12 END IF
FOR i = 1 TO tope
DISPLAY herramientas[i].codigo,
herramientas[i].descripcion,
herramientas[i].fecha,
herramientas[i].documento,
herramientas[i].cantidad
TO s_herramientas[i].*
END FOR
END FUNCTION