{ ---------------------------------------------------------------------------- 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" " Actualiza Registro 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 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 vacío 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