/// <summary> /// Permite el acceso al Sistema /// El proveedor ya debe de haber sido importado de SAP al Portal /// Tambien debería estar activado /// </summary> /// <returns> /// Los valores recuperados y almacenados para el sistema (Session) son: /// IdUsuario /// IdPerfil /// TipoUsuario /// Usuario /// RFC /// IdProveedor /// Num_Proveedor /// NombreProveedor /// </returns> public string ValidarSesion() { try { string quienEntro = ""; bool activado = false; bool tienePaquete = false; bool tienePreguntas = false; bool pregutasRespondidas = false; string IdProveedor = "0"; bool existeenSAP = true; string mensaje = ""; try { ds = Valida_Menu(usuario, contraseña);;//bafar.Valida_Menu(usuario, contraseña); var tab = contexto.SP_Cat_Usuario(0, true, usuario, contraseña, "", 0, 0, "Carga_Menu2").ToList(); MVC5_full_version.Genericos.Login.Menu m = new MVC5_full_version.Genericos.Login.Menu(); miMenu = m.CrearMenu(tab, out mensaje); if (ds.Tables[0].Rows.Count > 0) { bool esUsuarioparaPasar = true; //= > 15 Agosto if (ClickFactura_WebServiceCF.Service.Clases.cs_Estaticos.EsAdministradorBafar(usuario) == true) //= > 15 Agosto Reactivar: Genericos.cs_Estaticos.EsAdministradorBafar(usuario)) { #region Es Administrador foreach (System.Data.DataRow r in ds.Tables[0].Rows) { DatosSesion.Add("IdUsuario", r["IdUsuario"].ToString()); DatosSesion.Add("IdPerfil", r["IdPerfil"].ToString()); DatosSesion.Add("TipoUsuario", tipoUsuario(r["IdPerfil"].ToString())); break; } foreach (System.Data.DataRow r in ds.Tables[1].Rows) { DatosSesion.Add("Usuario", r["Usuario"].ToString()); DatosSesion.Add("RFC", r["RFC"].ToString()); DatosSesion.Add("IdProveedor", r["IdProveedor"].ToString()); DatosSesion.Add("Num_Proveedor", r["Num_Proveedor"].ToString()); DatosSesion.Add("Nombre_Proveedor", r["Nombre"].ToString()); break; } foreach (System.Data.DataRow r in ds.Tables[2].Rows) { DatosSesion.Add("nombreProveedor", r["Compania"].ToString()); DatosSesion.Add("Num_Sociedad", r["Num_Sociedad"].ToString()); break; } string miNum_Proveedor = DatosSesion["Num_Proveedor"].ToString(); quienEntro = DatosSesion["Usuario"].ToString(); DatosSesion.Add("NivelAdministradorBafar", ClickFactura_WebServiceCF.Service.Clases.cs_Estaticos.EsAdministradorBafar(quienEntro).ToString()); if (ClickFactura_WebServiceCF.Service.Clases.cs_Estaticos.EsAdministradorBafar(quienEntro) == false) { var q = from s in contexto.view_queSociedadesmeTocan.AsEnumerable() where s.Num_Proveedor.Equals(miNum_Proveedor) == true select s; if (q != null) { if (q.Count() > 0) { foreach (var socie in q) { bool agregar = true; string soci = socie.Num_Sociedad; if (soci.Length > 0) { foreach (string s in misSociedades) { if (soci.Equals(s) == true) { agregar = false; break; } } if (agregar == true) { misSociedades.Add(soci); } } } } } } else { var result = contexto.Relacion_Proveedores.Where(p => p.Num_Sociedad != null).GroupBy(p => p.Num_Sociedad).Select(grp => grp.FirstOrDefault()); if (result != null) { if (result.Count() > 0) { foreach (var socie in result) { bool agregar = true; string soci = socie.Num_Sociedad; if (soci.Length > 0) { foreach (string s in misSociedades) { if (soci.Equals(s) == true) { agregar = false; break; } } if (agregar == true) { misSociedades.Add(soci); } } } } } } //=> Genericos.cs_Estaticos.creaAcuerdoComercial(DatosSesion["RFC"]); #endregion Es Administrador } else { #region Averigua si ya completo registro //ACCEDIENDO AL SISTEMA!! #region Obteniedo datos y configurando entorno foreach (System.Data.DataRow r in ds.Tables[0].Rows) { DatosSesion.Add("IdUsuario", r["IdUsuario"].ToString()); DatosSesion.Add("IdPerfil", r["IdPerfil"].ToString()); //Session["IdUsuario"] = r["IdUsuario"].ToString(); //Session["IdPerfil"] = r["IdPerfil"].ToString(); DatosSesion.Add("TipoUsuario", tipoUsuario(r["IdPerfil"].ToString())); break; } foreach (System.Data.DataRow r in ds.Tables[1].Rows) { DatosSesion.Add("Usuario", r["Usuario"].ToString()); DatosSesion.Add("RFC", r["RFC"].ToString()); DatosSesion.Add("IdProveedor", r["IdProveedor"].ToString()); DatosSesion.Add("Num_Proveedor", r["Num_Proveedor"].ToString()); DatosSesion.Add("Nombre_Proveedor", r["Nombre"].ToString()); #region Procesos de actualización 22 Noviembre 2016 //ClickFacturaSAP.ClickFacturaSAPClient clienteSAP = new ClickFacturaSAP.ClickFacturaSAPClient(); string fini = "01.01." + DateTime.Now.Year.ToString(); string ffin = DateTime.Now.Day.ToString() + "." + DateTime.Now.Month.ToString() + "." + DateTime.Now.Year.ToString(); string numProv = r["Num_Proveedor"].ToString(); string[] mensajes; #region DESCARGA DE NOTAS DE CARGO bool realizado = true; // clienteSAP.CargaNotasCargo(fini, ffin, numProv, "", "YR", out mensajes); #endregion DESCARGA DE NOTAS DE CARGO #endregion Procesos de actualización 22 de Noviembre 2016 break; } foreach (System.Data.DataRow r in ds.Tables[2].Rows) { DatosSesion.Add("nombreProveedor", r["Compania"].ToString()); DatosSesion.Add("Num_Sociedad", r["Num_Sociedad"].ToString()); break; } string miNum_Proveedor = DatosSesion["Num_Proveedor"].ToString(); quienEntro = DatosSesion["Usuario"]; checatienePaquete(usuario, ref activado, ref tienePaquete, ref IdProveedor, ref tienePreguntas, ref pregutasRespondidas, ref existeenSAP); if (tienePaquete == false) { //Response.Redirect("~/WebForms/wform_escogePaquetes.aspx?user="******"&pass="******"~/WebForms/wform_peticionActivarPaquete.aspx?user="******"&Proveedor=" + IdProveedor); } else { if (tienePreguntas == false) { //Decirle que se enviara un recordatorio de esta asignacion de preguntas secretas //string titulo = "Aún esta en proceso de activación"; //mensaje = "Su administrador aún no le ha asignado preguntas de recuperación de password, le será enviado un recordatorio, este mensaje continuara hasta que le sean asignadas estas preguntas."; //Response.Redirect("~/WebForms/wform_accionRealizada.aspx?titulo=" + titulo + "&mensaje=" + mensaje + "&return=" + "wform_Login.aspx"); } else { if (pregutasRespondidas == false) { //Response.Redirect("~/WebForms/wform_respondePreguntas.aspx?user="******"&ssap=" + pass); } else { if (ClickFactura_WebServiceCF.Service.Clases.cs_Estaticos.EsAdministradorBafar(quienEntro) == false) { var q = from s in contexto.view_queSociedadesmeTocan.AsEnumerable() where s.Num_Proveedor.Equals(miNum_Proveedor) == true select s; if (q != null) { if (q.Count() > 0) { foreach (var socie in q) { bool agregar = true; string soci = socie.Num_Sociedad; if (soci.Length > 0) { foreach (string s in misSociedades) { if (soci.Equals(s) == true) { agregar = false; break; } } if (agregar == true) { misSociedades.Add(soci); } } } } } } else { var result = contexto.Relacion_Proveedores.Where(p => p.Num_Sociedad != null).GroupBy(p => p.Num_Sociedad).Select(grp => grp.FirstOrDefault()); if (result != null) { if (result.Count() > 0) { foreach (var socie in result) { bool agregar = true; string soci = socie.Num_Sociedad; if (soci.Length > 0) { foreach (string s in misSociedades) { if (soci.Equals(s) == true) { agregar = false; break; } } if (agregar == true) { misSociedades.Add(soci); } } } } } } // => Genericos.cs_Estaticos.creaAcuerdoComercial(DatosSesion["RFC"]); } } } } #endregion de averiguaciones #endregion Obteniedo datos y configurando entorno } #region Almacenando la variables de sesión con los datos generales de quien se Logeo foreach (KeyValuePair <string, string> datos in DatosSesion) { System.Web.HttpContext.Current.Session[datos.Key] = datos.Value; } #endregion Almacenando la variables de sesión con los datos generales de quien se Logeo return("Acceso correcto"); } else { return("No puede iniciar sesión. Verifique su usuario y/o contraseña."); } } catch (Exception ex) { return("Existe un problema de comunicación con la aplicación para validar sus credenciales. Error: " + ex.Message); } } catch (Exception ex) { throw new Exception(ex.Message); } }