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