public ActionResult AddCliente(string selectedRol, string IdUsuario)
        {
            int userId = 0;

            if (!int.TryParse(IdUsuario, out userId))
            {
                throw new Exception(" No existe el usuario seleccionado");
            }

            int rolId = 0;

            if (!int.TryParse(selectedRol, out rolId))
            {
                throw new Exception(" No existe el rol seleccionado");
            }

            vClientes clientes      = new Business.Views.vClientes();
            var       clientesNoRol = clientes.GetViewModel().AsEnumerable();

            //List<Cliente> clientesNoRol = clienteRepository.GetAll().ToList();

            RolEmpresa usuarioRol = rolEmpresaRepository.GetFiltered(x => x.Rol_Id == rolId && x.Usuario_Id == userId).FirstOrDefault();

            var clientesRolUsuario = usuarioRolClienteRepository.GetFiltered(x => x.UsuarioRol_Id == usuarioRol.Id && x.Estado == true).ToList();

            // List<Cliente> clientesRolUsuario = usuarioRolClienteRepository.GetFiltered(x => x.UsuarioRol_Id == usuarioRol.Id).Select(x => x.Cliente).ToList();

            clientesNoRol            = clientesNoRol.Where(x => !clientesRolUsuario.Any(y => y.Cliente_Id == x.Field <Int32>("ID")));
            clientes.Datos           = clientesNoRol.CopyToDataTable();
            Session["ClientesNoRol"] = clientesNoRol.CopyToDataTable();
            return(PartialView("_Clientes", clientes));
        }
        public DataTable GetClientesFromUsuario(int idUsuario, bool OnlyOne)
        {
            //RolEmpresaRepository rolEmpresaRepository = new RolEmpresaRepository();
            //UsuarioRolClienteRepository usuarioRolClienteRepository = new UsuarioRolClienteRepository();
            //vClientes vClientes = new Business.Views.vClientes();

            //List<RolEmpresa> rolesUsuario = rolEmpresaRepository.GetFiltered(x => x.Usuario_Id == idUsuario
            //                                    && x.Rol.Estado == true && x.Usuario.Estado == true, x => x.Rol).ToList();

            //bool isAdmin = false;
            //List<UsuarioRolCliente> userRolClient = new List<UsuarioRolCliente>();
            //foreach (RolEmpresa rol in rolesUsuario)
            //{
            //    List<UsuarioRolCliente> clientesRol = usuarioRolClienteRepository.GetFiltered(s => s.UsuarioRol.Rol_Id == rol.Rol_Id
            //                                            && s.UsuarioRol.Usuario_Id == idUsuario && s.Estado == true).ToList();

            //    if (rol.Rol.Id == (int)RolRepository.SystemROL.ADMIN)
            //        isAdmin = true;

            //    foreach (UsuarioRolCliente clienteRol in clientesRol)
            //    {
            //        userRolClient.Add(clienteRol);
            //    }
            //}

            //if (isAdmin)
            //    Session["IsAdmin"] = true;
            //else
            //    Session["IsAdmin"] = false;

            //foreach (var item in userRolClient)
            //{
            //    var listRow = (new vClientes()).GetViewModel().AsEnumerable()
            //            .Where(r => r.Field<int>("ID") == item.Cliente_Id).ToList();
            //    foreach (DataRow dr in listRow)
            //    {
            //        vClientes.Datos.Rows.Add(dr.ItemArray);
            //        if(OnlyOne == true)
            //            break;
            //    }
            //    if (OnlyOne == true)
            //        break;
            //}

            var vClientes = new vClientes();

            if (IsAdmin)
            {
                vClientes = new Business.Views.vClientes();
            }
            else
            {
                vClientes = new Business.Views.vClientes(UserContext.RolesCliente.ToList());
            }

            return(vClientes.Datos);
        }
Exemple #3
0
        public static void SetCellData(object sender, ASPxGridViewTableDataCellEventArgs e, string controller)
        {
            MVCxGridView gv = sender as MVCxGridView;

            gv.Visible = (gv.VisibleRowCount > 0);

            //ListadoRepository listadoRepository = new ListadoRepository();
            //PropiedadNavegacionListadoRepository propiedadNavegacionRepository = new PropiedadNavegacionListadoRepository();

            Listado listado = AppSession.Listados.Where(x => x.Nombre.ToUpper().StartsWith(controller.ToUpper())).FirstOrDefault();//listadoRepository.GetFiltered(x => x.Nombre.ToUpper().StartsWith(controller.ToUpper())).FirstOrDefault();

            vClientes vClientes = new Business.Views.vClientes();

            foreach (GridViewColumn column in gv.Columns)
            {
                var dataColumn = column as GridViewDataColumn;

                if (dataColumn != null && listado != null)
                {
                    //if (propiedadNavegacionRepository.GetFiltered(x => x.Listado_Id == listado.Id && x.CampoFK.ToUpper().Equals(e.DataColumn.FieldName.ToUpper())).Any())
                    if (AppSession.PropiedadesNavegacion.Where(x => x.Listado_Id == listado.Id && x.CampoFK.ToUpper().Equals(e.DataColumn.FieldName.ToUpper())).Any())
                    {
                        if (e.DataColumn.FieldName.ToUpper() == "CODIGOCLIENTE")
                        {
                            int       idCliente = Convert.ToInt32(e.CellValue);
                            DataTable data      = vClientes.GetByID(idCliente);
                            if (data.Rows.Count > 0)
                            {
                                e.Cell.Text = "<a href='/Cliente/View/" + idCliente + "' title='Ver Cliente'>" + data.Rows[0]["Descripcion"].ToString() + "</a>";
                            }
                            else
                            {
                                e.Cell.Text = "Cliente Inexistente";
                            }
                        }

                        if (e.DataColumn.FieldName.ToUpper() == "PRO_COD")
                        {
                            vProductos vProductos = new Business.Views.vProductos();
                            vProductos.Datos = vProductos.GetEmpyViewModel();
                            string    idProducto = e.CellValue.ToString();
                            DataTable data       = vProductos.GetByID(idProducto);
                            if (data.Rows.Count > 0)
                            {
                                e.Cell.Text = "<a href='/Producto/View/" + idProducto + "' title='Ver Producto'>" + data.Rows[0]["Descripcion"].ToString() + "</a>";
                            }
                            else
                            {
                                e.Cell.Text = "Producto Inexistente";
                            }
                        }
                    }
                }
            }
        }