public override void OnAuthorization(AuthorizationContext filterContext) { if (filterContext.HttpContext.User.Identity.IsAuthenticated == false) { filterContext.Result = RetornarSeleccionEmisor(); return; } string VistaAccedida = filterContext.RouteData.Values["action"].ToString(); string UserID = filterContext.HttpContext.User.Identity.GetUserId(); var Session = filterContext.HttpContext.Session; FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); //rescata usuario UsuarioModel objUsuario = db.DBUsuarios.SingleOrDefault(r => r.IdentityID == UserID); if (objUsuario == null) { /*REDIRECT A EL PANEL DE SELECCION DE EMISOR*/ filterContext.Result = RetornarSeleccionEmisor(); return; } //rescata emisor seleccionado QuickEmisorModel objEmisor = ModuloHelper.GetEmisorSeleccionado(Session, UserID); if (objEmisor == null) { filterContext.Result = RetornarSeleccionEmisor(); return; } //ve si el usuario tiene acceso a la vista utilizando este emisor IQueryable <ModulosHabilitados> ModulosHabilitados = db.DBModulosHabilitados.Where(r => r.UsuarioModelID == objUsuario.UsuarioModelID && r.QuickEmisorModelID == objEmisor.QuickEmisorModelID); List <string> lstFuncionesUsuario = ModulosHabilitados.Select(w => w.Funcion.NombreFuncion).ToList(); if (lstFuncionesUsuario.Contains(VistaAccedida)) { List <FuncionesModel> lstFuncionesContabilidad = ModulosHabilitados.Where(r => r.Funcion.NombreFuncion == VistaAccedida).Select(r => r.Funcion).ToList(); //Si es una funcion de contabilidad, revisar si tiene una ClienteEmisorSeleccionado if (lstFuncionesContabilidad.Where(r => r.ModuloSistema != null).Any(r => r.ModuloSistema.ModuloSistemaModelID == ParseExtensions.KeyModuloSistemaContable)) { ClientesContablesModel clienteSeleccionado = PerfilamientoModule.GetClienteContableSeleccionado(Session, UserID, db); if (clienteSeleccionado == null) { filterContext.Result = RetornarSeleccionClienteContable(); return; } } return; } else { filterContext.Result = RetornarSeleccionEmisor(); return; } }
public JsonResult obtenerFuncionesAdminFunciones(int dataContext, int SelectedUser, int SelectedEmisor) { StringBuilder optionSelect = new StringBuilder(); if (SelectedUser <= 0 || SelectedEmisor <= 0) { return(Json(new { ok = true, selectInput = optionSelect }, JsonRequestBehavior.AllowGet)); } FacturaPoliContext db = null; if (dataContext == 1) //Certificacion { db = new FacturaPoliContext(); } else if (dataContext == 2) //Produccion { db = new FacturaPoliContext(true); } else //No determinado, no nos interesa { return(Json(new { ok = true, selectInput = optionSelect }, JsonRequestBehavior.AllowGet)); } UsuarioModel objUser = db.DBUsuarios.SingleOrDefault(r => r.UsuarioModelID == SelectedUser); if (objUser == null) { return(Json(new { ok = true, selectInput = optionSelect }, JsonRequestBehavior.AllowGet)); } QuickEmisorModel objEmisor = db.Emisores.SingleOrDefault(r => r.QuickEmisorModelID == SelectedEmisor); if (objEmisor == null) { return(Json(new { ok = true, selectInput = optionSelect }, JsonRequestBehavior.AllowGet)); } List <FuncionesModel> lstFuncionesSistema = db.DBFunciones.OrderBy(r => r.NombreModulo).ThenBy(r => r.NombreFuncion).ToList(); List <ModulosHabilitados> lstModulosHabilitados = db.DBModulosHabilitados.Where (r => r.UsuarioModelID == objUser.UsuarioModelID && r.QuickEmisorModelID == objEmisor.QuickEmisorModelID) .ToList(); foreach (FuncionesModel Funcion in lstFuncionesSistema) { if (lstModulosHabilitados.Any(r => r.Funcion.FuncionesModelID == Funcion.FuncionesModelID)) { optionSelect.Append("<option selected value=\"" + Funcion.FuncionesModelID + "\">" + Funcion.NombreModulo + " - " + Funcion.NombreFuncion + "</option>"); //+ " (" + EmisorDisabled.RUTEmpresa + ") } else { optionSelect.Append("<option value=\"" + Funcion.FuncionesModelID + "\">" + Funcion.NombreModulo + " - " + Funcion.NombreFuncion + "</option>"); //+ " (" + EmisorDisabled.RUTEmpresa + ") } } return(Json(new { ok = true, selectInput = optionSelect.ToString() }, JsonRequestBehavior.AllowGet)); }
public static bool FuncionAnyContabilidad(HttpContext context) { //List<string> lstFuncionesUsuario; string UserID = context.User.Identity.GetUserId(); HttpSessionStateBase Session = new HttpSessionStateWrapper(context.Session); FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); UsuarioModel objUsuario = db.DBUsuarios.SingleOrDefault(r => r.IdentityID == UserID); if (objUsuario == null) { return(false); } QuickEmisorModel objEmisor = ModuloHelper.GetEmisorSeleccionado(Session, UserID); if (objEmisor == null) { return(false); } bool hasFuncionesContablesInModulosHabilitados = db.DBModulosHabilitados .Where( r => r.UsuarioModelID == objUsuario.UsuarioModelID && r.QuickEmisorModelID == objEmisor.QuickEmisorModelID ).Any (r => r.Funcion.ModuloSistema.ModuloSistemaModelID == ParseExtensions.KeyModuloSistemaContable); return(hasFuncionesContablesInModulosHabilitados); }
public static QuickEmisorModel GetEmisorSeleccionado(HttpSessionStateBase objSession, string userID, FacturaPoliContext db = null) { if (db == null) { db = ParseExtensions.GetDatabaseContext(userID); } bool Esta_En_Certificacion = ParseExtensions.ItsUserOnCertificationEnvironment(userID); //CERTIFICACION int IDEmisor = -1; if (Esta_En_Certificacion) { if (objSession["EmisorSeleccionado_CERT"] == null) { return(null); } IDEmisor = (int)objSession["EmisorSeleccionado_CERT"]; } //PRODUCCION else { if (objSession["EmisorSeleccionado"] == null) { return(null); } IDEmisor = (int)objSession["EmisorSeleccionado"]; } QuickEmisorModel returnValue = null; ModuloHelper.GetEmisorHabilitado(userID, IDEmisor, out returnValue, db); return(returnValue); }
public static bool GetEmisoresHabilitados(string userID, out List <QuickEmisorModel> objEmisores, FacturaPoliContext db = null) { if (db == null) { db = ParseExtensions.GetDatabaseContext(userID); } UsuarioModel objUser = db.DBUsuarios.SingleOrDefault(r => r.IdentityID == userID); List <int> lstIDEmpresasHabilitadas = db.DBModulosHabilitados .Where(r => r.UsuarioModelID == objUser.UsuarioModelID) .Select(w => w.QuickEmisorModelID).Distinct().ToList(); List <QuickEmisorModel> lstEmisoresHabilitados = new List <QuickEmisorModel>(); foreach (int IDEmpresa in lstIDEmpresasHabilitadas) { QuickEmisorModel objEmpresa = db.Emisores.Include("Certificados").SingleOrDefault(R => R.QuickEmisorModelID == IDEmpresa); lstEmisoresHabilitados.Add(objEmpresa); } objEmisores = lstEmisoresHabilitados; if (objEmisores == null || objEmisores.Count() == 0) { return(false); } return(true); }
public static bool GetEmisorProduccion(string userID, int IDEmisor, out QuickEmisorModel objEmisor) { //Este constructor hace referencia puntual a la base de datos de PRODUCCION FacturaPoliContext db = new FacturaPoliContext(true); EmisoresHabilitados objEmisorHabilitado; if (GetEmisorHabilitado(userID, IDEmisor, out objEmisorHabilitado, db)) { objEmisor = db.Emisores.Include("Certificados").SingleOrDefault(r => r.QuickEmisorModelID == objEmisorHabilitado.QuickEmisorModelID); if (objEmisor == null) { return(false); } else { return(true); } } else { objEmisor = null; return(false); } }
public static bool GetEmisor(string userID, int IDEmisor, out QuickEmisorModel objEmisor, FacturaPoliContext db = null) { if (db == null) { db = ParseExtensions.GetDatabaseContext(userID); } EmisoresHabilitados objEmisorHabilitado; if (GetEmisorHabilitado(userID, IDEmisor, out objEmisorHabilitado, db)) { objEmisor = db.Emisores.Include("Certificados").SingleOrDefault(r => r.QuickEmisorModelID == objEmisorHabilitado.QuickEmisorModelID); if (objEmisor == null) { return(false); } else { return(true); } } else { objEmisor = null; return(false); } }
public ActionResult AdminFuncionesUpdate(int ambiente, int usuario, int empresa, int[] funciones) { if (ambiente <= 0 || usuario <= 0 || empresa <= 0) { return(null); } FacturaPoliContext db = null; if (ambiente == 1) //Certificacion { db = new FacturaPoliContext(); } else if (ambiente == 2) //Produccion { db = new FacturaPoliContext(true); } else { return(null); } UsuarioModel objUser = db.DBUsuarios.SingleOrDefault(r => r.UsuarioModelID == usuario); if (objUser == null) { return(null); } QuickEmisorModel objEmisor = db.Emisores.SingleOrDefault(r => r.QuickEmisorModelID == empresa); if (objEmisor == null) { return(null); } var lstModulosHabilitados = db.DBModulosHabilitados.Where (r => r.UsuarioModelID == objUser.UsuarioModelID && r.QuickEmisorModelID == objEmisor.QuickEmisorModelID); //Borra todos los privilegios de este usuario para asi luego crearlos nuevamente db.DBModulosHabilitados.RemoveRange(lstModulosHabilitados); db.SaveChanges(); var lstFunciones = db.DBFunciones.ToList(); List <ModulosHabilitados> lstModulosHabilitadosNew = new List <ModulosHabilitados>(); if (funciones != null) { foreach (int funcion in funciones) { FuncionesModel modelFuncion = lstFunciones.SingleOrDefault(r => r.FuncionesModelID == funcion); lstModulosHabilitadosNew.Add(new ModulosHabilitados(objUser.UsuarioModelID, objEmisor.QuickEmisorModelID, modelFuncion)); } db.DBModulosHabilitados.AddRange(lstModulosHabilitadosNew); db.SaveChanges(); } return(RedirectToAction("AdminFunciones", "FMSend")); }
public override void OnResultExecuted(ResultExecutedContext filterContext) { HttpSessionStateBase Session = filterContext.HttpContext.Session; string NombreUsuario = filterContext.HttpContext.User.Identity.Name; string UserID = filterContext.HttpContext.User.Identity.GetUserId(); //User.Identity.GetUserId(); FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); QuickEmisorModel objEmisor = PerfilamientoModule.GetEmisorSeleccionado(Session, UserID); ClientesContablesModel objCliente = PerfilamientoModule.GetClienteContableSeleccionado(Session, UserID, db); MonitoreoModel objMonitoreo; if (objCliente == null) { objMonitoreo = new MonitoreoModel(db, NombreUsuario, objEmisor.RazonSocial, objEmisor.QuickEmisorModelID); } else { objMonitoreo = new MonitoreoModel(db, NombreUsuario, objEmisor.RazonSocial, objCliente.RazonSocial, objEmisor.QuickEmisorModelID, objCliente.ClientesContablesModelID); } RouteData route_data = filterContext.RouteData; objMonitoreo.Tiempo_de_ejecucion = (DateTime.Now - tiempo_inicio); objMonitoreo.Controlador = (string)route_data.Values["controller"]; objMonitoreo.CambiosRealizados = ((System.Web.HttpRequestWrapper)((System.Web.Mvc.Controller)filterContext.Controller).Request).Form.ToString(); objMonitoreo.QueryStrings = ((System.Web.HttpRequestWrapper)((System.Web.Mvc.Controller)filterContext.Controller).Request).QueryString.ToString(); objMonitoreo.AccionTipo = Accion; objMonitoreo.AccionNombre = (string)route_data.Values["action"]; objMonitoreo.Hora_Ejecucion = DateTime.Now; db.DBMonitoreo.Add(objMonitoreo); db.SaveChanges(); #region oldnotes /* * RouteData route_data = filterContext.RouteData; * TimeSpan duration = (DateTime.Now - tiempo_inicio); * string controller = (string)route_data.Values["controller"]; * * string cambiosRealizados =((System.Web.HttpRequestWrapper)((System.Web.Mvc.Controller)filterContext.Controller).Request).Form.ToString(); * string queryStrings = ((System.Web.HttpRequestWrapper)((System.Web.Mvc.Controller)filterContext.Controller).Request).QueryString.ToString(); * * string[] cambiosRealizadosArray = cambiosRealizados.Split('&'); * * string action = (string)route_data.Values["action"]; * * DateTime hora_Ejecucion = DateTime.Now; */ #endregion }
public static QuickReceptorModel GetReceptorByIDandEmisor(string UserID, QuickEmisorModel _emisor, int IDReceptor) { QuickReceptorModel objReceptor = null; FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); IQueryable <QuickReceptorModel> objQueryable = db.Receptores.Where(r => r.QuickEmisorModelID == _emisor.QuickEmisorModelID); //List<QuickReceptorModel> lstReceptarTryTest = objQueryable.Where(r => r.QuickReceptorModelID == IDReceptor).ToList(); objReceptor = objQueryable.SingleOrDefault(r => r.QuickReceptorModelID == IDReceptor); return(objReceptor); }
public override void OnAuthorization(AuthorizationContext filterContext) { //Obtiene el privilegio minimo requerido del parametro expuesto al interno PrivilegioMin = PrivilegioMinimoRequerido; string UserID = filterContext.HttpContext.User.Identity.GetUserId(); var Session = filterContext.HttpContext.Session; FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); //rescata usuario UsuarioModel objUsuario = db.DBUsuarios.SingleOrDefault(r => r.IdentityID == UserID); if (objUsuario == null) { /*REDIRECT A EL PANEL DE SELECCION DE EMISOR*/ filterContext.Result = RetornarSeleccionEmisor(); return; } QuickEmisorModel objEmisor = PerfilamientoModule.GetEmisorSeleccionado(Session, UserID); if (objEmisor == null) { /*REDIRECT A EL PANEL DE SELECCION DE EMISOR*/ filterContext.Result = RetornarSeleccionEmisor(); return; } //Revisar su tabla de compañias autorizadas EmisoresHabilitados objEmisorHabilitado = db.DBEmisoresHabilitados.SingleOrDefault(r => r.QuickEmisorModelID == objEmisor.QuickEmisorModelID && r.UsuarioModelID == objUsuario.UsuarioModelID); if (objEmisorHabilitado == null) { /*REDIRECT A EL PANEL DE SELECCION DE EMISOR*/ filterContext.Result = RetornarSeleccionEmisor(); return; } Privilegios PrivilegioDelUsuario = objEmisorHabilitado.privilegiosAcceso; bool EstaAutorizado = ManejarPrivilegios(PrivilegioMin, PrivilegioDelUsuario); if (EstaAutorizado == false) { /*REDIRECT A EL PANEL DE SELECCION DE EMISOR*/ filterContext.Result = RetornarSeleccionEmisor(); return; } }
public static bool GetEmisorHabilitado(string userID, int IDEmisor, out QuickEmisorModel objEmisorHabilitado, FacturaPoliContext db) { if (db == null) { db = ParseExtensions.GetDatabaseContext(userID); } List <QuickEmisorModel> emisoresHabilitados = null; if (GetEmisoresHabilitados(userID, out emisoresHabilitados, db)) { objEmisorHabilitado = emisoresHabilitados.SingleOrDefault(r => r.QuickEmisorModelID == IDEmisor); if (objEmisorHabilitado != null) { return(true); } } objEmisorHabilitado = null; return(false); }
public static bool FuncionRequerida(HttpContext context, string ComponenteRequerido) { List <string> lstFuncionesUsuario; //if (context.Session["listaFuncionesAccesibles"] == null) //{ string UserID = context.User.Identity.GetUserId(); HttpSessionStateBase Session = new HttpSessionStateWrapper(context.Session); FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); //rescata usuario UsuarioModel objUsuario = db.DBUsuarios.SingleOrDefault(r => r.IdentityID == UserID); if (objUsuario == null) { return(false); } //rescata emisor seleccionado QuickEmisorModel objEmisor = ModuloHelper.GetEmisorSeleccionado(Session, UserID); if (objEmisor == null) { return(false); } lstFuncionesUsuario = db.DBModulosHabilitados .Where(r => r.UsuarioModelID == objUsuario.UsuarioModelID && r.QuickEmisorModelID == objEmisor.QuickEmisorModelID) .Select(w => w.Funcion.NombreFuncion).ToList(); // context.Session["listaFuncionesAccesibles"] = lstFuncionesUsuario; // } //lstFuncionesUsuario = (List<string>)context.Session["listaFuncionesAccesibles"]; if (lstFuncionesUsuario != null && lstFuncionesUsuario.Contains(ComponenteRequerido, StringComparer.OrdinalIgnoreCase)) { return(true); } else { return(false); } }
public static ClientesContablesModel GetClienteContableSeleccionado(HttpSessionStateBase objSession, string userID, FacturaPoliContext db = null) { ClientesContablesModel returnValue = null; if (db == null) { db = ParseExtensions.GetDatabaseContext(userID); } QuickEmisorModel objEmisor = GetEmisorSeleccionado(objSession, userID, db); if (objEmisor == null) { return(returnValue); } bool Esta_En_Certificacion = ParseExtensions.ItsUserOnCertificationEnvironment(userID); //CERTIFICACION int IDClienteContable = 0; if (Esta_En_Certificacion) { if (objSession["ClienteContableSeleccionado_CERT"] == null) { return(null); } IDClienteContable = (int)objSession["ClienteContableSeleccionado_CERT"]; } //PRODUCCION else { if (objSession["ClienteContableSeleccionado"] == null) { return(null); } IDClienteContable = (int)objSession["ClienteContableSeleccionado"]; } returnValue = objEmisor.lstClientesCompania.SingleOrDefault(r => r.ClientesContablesModelID == IDClienteContable); return(returnValue); }
public static List <LibroHonorariosDeTerceros> ProcesarLibroHonorariosTerceros(FacturaPoliContext db, ClientesContablesModel ObjCliente, QuickEmisorModel EstaEmpresa, List <string[]> BoletasNoProcesadas, string FechaContabilizacion) { BoletasNoProcesadas.RemoveRange(0, 8); int NumeroFinal = BoletasNoProcesadas.Count(); //Arreglo para simular los elementos de un array partiendo del 0 int IndexElementosNoDeseados = BoletasNoProcesadas.Count() - 3; //Arreglo para simular los elementos de un array partiendo del 0 int CantidadDeElementosAeliminar = NumeroFinal - IndexElementosNoDeseados; BoletasNoProcesadas.RemoveRange(IndexElementosNoDeseados, CantidadDeElementosAeliminar); List <LibroHonorariosDeTerceros> ListaARetornar = new List <LibroHonorariosDeTerceros>(); string TipoReceptor = "H"; List <LibroHonorariosDeTerceros> SinRepetidos = new List <LibroHonorariosDeTerceros>(); foreach (string[] ColumnaBoleta in BoletasNoProcesadas) { LibroHonorariosDeTerceros VerificadorLibroHonorTercero = new LibroHonorariosDeTerceros(); DateTime FechaConta = ParseExtensions.ToDD_MM_AAAA_Multi(FechaContabilizacion); DateTime FechaInicial = ParseExtensions.ToDD_MM_AAAA_Multi(ColumnaBoleta[2]); DateTime FechaFinal = ParseExtensions.ToDD_MM_AAAA_Multi(ColumnaBoleta[5]); int Folio = Convert.ToInt32(ColumnaBoleta[0]); string Estado = ColumnaBoleta[1].Trim(); string RutPrestador = ColumnaBoleta[6].Trim(); string NombrePrestador = ColumnaBoleta[7].Trim(); decimal Bruto = Convert.ToDecimal(ColumnaBoleta[8].Replace(".", "")); decimal Retenido = Convert.ToDecimal(ColumnaBoleta[9].Replace(".", "")); decimal Pagado = Convert.ToDecimal(ColumnaBoleta[10].Replace(".", "")); SinRepetidos = db.DBLibroHonorariosTerceros.Where(x => x.ClienteContable.ClientesContablesModelID == ObjCliente.ClientesContablesModelID && x.NumOFolio == Folio && x.Receptor.RUT == RutPrestador && x.HaSidoConvertidoAVoucher == true && x.TipoLibro == TipoCentralizacion.Honorarios).ToList(); List <VoucherModel> EstaVigenteEncontrado = new List <VoucherModel>(); VoucherModel VoucherEncontrado = new VoucherModel(); if (SinRepetidos != null || SinRepetidos.Count() > 0) { foreach (var ItemRepetido in SinRepetidos) { VoucherEncontrado = db.DBVoucher.SingleOrDefault(x => x.VoucherModelID == ItemRepetido.VoucherModel.VoucherModelID); if (VoucherEncontrado.DadoDeBaja == false) { EstaVigenteEncontrado.Add(VoucherEncontrado); } } } if (SinRepetidos.Count() > 0 && SinRepetidos != null && EstaVigenteEncontrado.Count() > 0) { continue; } if (Estado == "VIGENTE") { VerificadorLibroHonorTercero.FechaContabilizacion = FechaConta; VerificadorLibroHonorTercero.Estado = Estado; VerificadorLibroHonorTercero.ClienteContable = ObjCliente; VerificadorLibroHonorTercero.NumOFolio = Folio; VerificadorLibroHonorTercero.FechaInicial = FechaInicial; VerificadorLibroHonorTercero.RutEmpresa = EstaEmpresa.RUTEmpresa; VerificadorLibroHonorTercero.NombreEmpresa = EstaEmpresa.RazonSocial; VerificadorLibroHonorTercero.FechaFinal = FechaFinal; VerificadorLibroHonorTercero.RutReceptor = RutPrestador; VerificadorLibroHonorTercero.NombreReceptor = NombrePrestador; VerificadorLibroHonorTercero.Brutos = Bruto; VerificadorLibroHonorTercero.Retenidos = Retenido; VerificadorLibroHonorTercero.Pagado = Pagado; QuickReceptorModel objPrestador = QuickReceptorModel.CrearOActualizarPrestadorPorRut(VerificadorLibroHonorTercero.RutReceptor, VerificadorLibroHonorTercero.NombreReceptor, ObjCliente, db, TipoReceptor); VerificadorLibroHonorTercero.Receptor = objPrestador; ListaARetornar.Add(VerificadorLibroHonorTercero); } } if (ListaARetornar.Count() > 0 && SinRepetidos.Count() == 0) { db.DBLibroHonorariosTerceros.AddRange(ListaARetornar); db.SaveChanges(); } return(ListaARetornar); }