public async Task <JsonResult> EditarSector(int sectorId, string nombreSector, List <Posiciones> arreglo)
        {
            if (string.IsNullOrEmpty(nombreSector) || arreglo.Count <= 2)
            {
                return(Json(false));
            }

            var lista = new List <PuntoSector>();

            foreach (var item in arreglo)
            {
                // item.latitud = item.latitud.Replace(".", ",");
                //item.longitud = item.longitud.Replace(".", ",");
                lista.Add(new PuntoSector {
                    Latitud = Convert.ToDouble(item.latitud), Longitud = Convert.ToDouble(item.longitud)
                });
            }

            var sector = new SectorViewModel
            {
                Sector = new Sector {
                    NombreSector = nombreSector, SectorId = sectorId
                },
                PuntoSector = lista,
            };


            var response = await ApiServicio.InsertarAsync(sector, new Uri(WebApp.BaseAddress), "api/Sectors/EditarSector");

            if (!response.IsSuccess)
            {
                return(Json(false));
            }
            return(Json(true));
        }
        public async Task <ActionResult> Create(Agente agente)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.SectorId = new SelectList(await obtenerSectoresPorEmpresa(), "SectorId", "NombreSector", agente.SectorId);
                return(View(agente));
            }
            IdentityPersonalizado ci = (IdentityPersonalizado)HttpContext.User.Identity;
            string nombreUsuario     = ci.Identity.Name;
            var    administrador     = new Administrador {
                Nombre = nombreUsuario
            };

            administrador = await ProveedorAutenticacion.GetUser(administrador);

            var codificar = CodificarHelper.SHA512(new Codificar {
                Entrada = agente.Nombre
            });

            agente.Contrasena = codificar.Salida;
            agente.EmpresaId  = administrador.EmpresaId;

            var response = await ApiServicio.InsertarAsync(agente,
                                                           new Uri(WebApp.BaseAddress),
                                                           "api/Agentes/CreateAgente");


            if (!response.IsSuccess)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            return(RedirectToAction("Index", "Agentes"));
        }
Beispiel #3
0
        public async Task <ActionResult> Create(Vendedor vendedor)
        {
            if (!ModelState.IsValid)
            {
                return(View(vendedor));
            }
            IdentityPersonalizado ci = (IdentityPersonalizado)HttpContext.User.Identity;
            string nombreUsuario     = ci.Identity.Name;
            var    administrador     = new Administrador {
                Nombre = nombreUsuario
            };

            administrador = await ProveedorAutenticacion.GetUser(administrador);

            var codificar = CodificarHelper.SHA512(new Codificar {
                Entrada = vendedor.Nombre
            });

            vendedor.Contrasena = codificar.Salida;
            vendedor.EmpresaId  = administrador.EmpresaId;

            var response = await ApiServicio.InsertarAsync(vendedor,
                                                           new Uri(WebApp.BaseAddress),
                                                           "api/Vendedors/CreateVendedor");

            if (!response.IsSuccess)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            return(RedirectToAction("Index", "Vendedores"));
        }
        public async Task <ActionResult> Create(SalarioBasico salarioBasico)
        {
            if (!ModelState.IsValid)
            {
                return(View(salarioBasico));
            }
            IdentityPersonalizado ci = (IdentityPersonalizado)HttpContext.User.Identity;
            string nombreUsuario     = ci.Identity.Name;
            var    administrador     = new Administrador {
                Nombre = nombreUsuario
            };

            administrador = await ProveedorAutenticacion.GetUser(administrador);

            salarioBasico.EmpresaId = administrador.EmpresaId;

            var response = await ApiServicio.InsertarAsync(salarioBasico,
                                                           new Uri(WebApp.BaseAddress),
                                                           "api/SalariosBasicos/CreateSalarioBasico");


            if (!response.IsSuccess)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            return(RedirectToAction("Index"));
        }
        public async Task <JsonResult> ListaClientes()
        {
            var lista = new List <ClienteRequest>();

            SupervisorRequest supervisorRequest = new SupervisorRequest();
            VendedorRequest   vendedorRequest   = new VendedorRequest();

            int idEmpresaInt = 0;;

            try
            {
                ApplicationDbContext db = new ApplicationDbContext();
                var userManager         = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));

                // obtener el idEmpresa
                var userWithClaims = (ClaimsPrincipal)User;
                var idEmpresa      = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value;

                // convertir el idEmpresa a int
                idEmpresaInt = Convert.ToInt32(idEmpresa);


                //** agregar el idEmpresa al vendedorRequest **
                vendedorRequest.idEmpresa = idEmpresaInt;


                var idUsuarioActual = User.Identity.GetUserId();

                supervisorRequest.IdUsuario = idUsuarioActual;
                supervisorRequest.IdEmpresa = idEmpresaInt;


                if (userManager.IsInRole(idUsuarioActual, "Supervisor"))
                {
                    // obtener el Id del supervisor
                    Response response = await ApiServicio.InsertarAsync(supervisorRequest,
                                                                        new Uri(WebApp.BaseAddress),
                                                                        "api/Vendedores/obtenerSupervisorPorIdUsuario");

                    supervisorRequest = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString());


                    //** agregar el id del supervisor al vendedorRequest **
                    vendedorRequest.IdSupervisor = supervisorRequest.IdSupervisor;
                }


                lista = await ApiServicio.ObtenerElementoAsync1 <List <ClienteRequest> >(vendedorRequest,
                                                                                         new Uri(WebApp.BaseAddress),
                                                                                         "api/Vendedores/ListarClientesPorSupervisor");


                return(Json(lista));
            }
            catch (Exception ex)
            {
                return(Json(false));
            }
        }
Beispiel #6
0
        public async Task <ActionResult> EnviarCorreo(InfoRequest info)
        {
            var respuesta = await ApiServicio.InsertarAsync <Response>(info, new Uri(WebApp.BaseAddress)
                                                                       , "api/Informacion/Generar");

            return
                (RedirectToAction("Index"));
        }
Beispiel #7
0
        public async Task <JsonResult> Cargar()
        {
            SupervisorRequest supervisorRequest = new SupervisorRequest();

            try
            {
                var userWithClaims      = (ClaimsPrincipal)User;
                var idEmpresa           = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value;
                int idEmpresaInt        = Convert.ToInt32(idEmpresa);
                ApplicationDbContext db = new ApplicationDbContext();
                var userManager         = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));
                var idUsuarioActual     = User.Identity.GetUserId();
                var lista = new Response();
                supervisorRequest.IdUsuario = idUsuarioActual;
                supervisorRequest.IdEmpresa = idEmpresaInt;
                if (userManager.IsInRole(idUsuarioActual, "Supervisor"))
                {
                    lista = await ApiServicio.InsertarAsync(supervisorRequest,
                                                            new Uri(WebApp.BaseAddress),
                                                            "api/LogRutaVendedors/VendedoresPorSupervisor");
                }
                else if (userManager.IsInRole(idUsuarioActual, "GerenteGeneral"))
                {
                    Empresa empresa = new Empresa()
                    {
                        IdEmpresa = idEmpresaInt,
                    };
                    lista = await ApiServicio.InsertarAsync(empresa, new Uri(WebApp.BaseAddress),
                                                            "api/LogRutaVendedors/VendedoresPorEmpresa");
                }
                if (lista.IsSuccess)
                {
                    var listaVendedor = JsonConvert.DeserializeObject <List <VendedorPositionRequest> >(lista.Resultado.ToString());
                    List <VendedorPositionRequest> listaVendedores = new  List <VendedorPositionRequest>();

                    foreach (var vendedor in listaVendedor)
                    {
                        vendedor.urlFoto = string.IsNullOrEmpty(vendedor.urlFoto) != true?vendedor.urlFoto.Replace("~", WebApp.BaseAddress) : "";

                        listaVendedores.Add(vendedor);
                    }

                    // var f = (DateTime)(listaVendedor.FirstOrDefault().fecha.Date);
                    return(Json(listaVendedor));
                }
                else
                {
                    return(Json(false));
                }
            }
            catch (Exception ex)
            {
                //InicializarMensaje(Mensaje.Excepcion);
                //lista.FirstOrDefault().NumeroMenu = 1;
                return(Json(false));
            }
        }
Beispiel #8
0
        public async Task <ActionResult> Compromisos(SupervisorRequest supervisorRequest)
        {
            //bUSCA LA EMPRESA
            var idEmpresaInt = 0;

            try
            {
                var userWithClaims = (ClaimsPrincipal)User;
                var idEmpresa      = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value;

                idEmpresaInt = Convert.ToInt32(idEmpresa);
            }
            catch (Exception ex)
            {
                InicializarMensaje(Mensaje.ErrorIdEmpresa);
                return(View());
            }
            //FIN
            SupervisorRequest supervisorRequest1 = new SupervisorRequest();

            ApplicationDbContext db = new ApplicationDbContext();

            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));

            var idUsuarioActual = User.Identity.GetUserId();

            supervisorRequest1.IdUsuario = idUsuarioActual;
            supervisorRequest1.IdEmpresa = idEmpresaInt;

            if (userManager.IsInRole(idUsuarioActual, "Supervisor"))
            {
                Response response = await ApiServicio.InsertarAsync(supervisorRequest1,
                                                                    new Uri(WebApp.BaseAddress),
                                                                    "api/Vendedores/obtenerSupervisorPorIdUsuario");

                supervisorRequest1             = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString());
                supervisorRequest.IdSupervisor = supervisorRequest1.IdSupervisor;
                var lista = await ApiServicio.ObtenerElementoAsync1 <SupervisorRequest>(supervisorRequest, new Uri(WebApp.BaseAddress)
                                                                                        , "api/Vista/ListarVisitas");

                supervisorRequest.Listarcompromiso = lista.Listarcompromiso;

                var listavendedor = await ApiServicio.ObtenerElementoAsync1 <SupervisorRequest>(supervisorRequest, new Uri(WebApp.BaseAddress)
                                                                                                , "api/Vendedores/ListarVendedoresGerente");

                ViewBag.IdVendedor = new SelectList(listavendedor.ListaVendedores, "IdVendedor", "NombreApellido");

                supervisorRequest.ListaVendedores = listavendedor.ListaVendedores;
                return(View(supervisorRequest));
            }
            return(View());
        }
        public async Task <JsonResult> InsertarSector(string nombreSector, List <Posiciones> arreglo)
        {
            if (string.IsNullOrEmpty(nombreSector) || arreglo.Count <= 2)
            {
                return(Json(false));
            }

            IdentityPersonalizado ci = (IdentityPersonalizado)HttpContext.User.Identity;
            string nombreUsuario     = ci.Identity.Name;
            var    administrador     = new Administrador {
                Nombre = nombreUsuario
            };

            administrador = await ProveedorAutenticacion.GetUser(administrador);

            var lista = new List <PuntoSector>();

            foreach (var item in arreglo)
            {
                //item.latitud=item.latitud.Replace(".", ",");
                //item.longitud=item.longitud.Replace(".", ",");
                lista.Add(new PuntoSector {
                    Latitud = Convert.ToDouble(item.latitud), Longitud = Convert.ToDouble(item.longitud)
                });
            }

            var sector = new SectorViewModel
            {
                Sector = new Sector {
                    NombreSector = nombreSector, EmpresaId = administrador.EmpresaId
                },
                PuntoSector = lista,
            };



            var response = await ApiServicio.InsertarAsync(sector, new Uri( WebApp.BaseAddress), "/api/Sectors/InsertarSector");

            if (!response.IsSuccess)
            {
                return(Json(false));
            }
            return(Json(true));
        }
Beispiel #10
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, IdEmpresa = model.IdEmpresa
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                //Aqui se debe crear el rol de gerente
                UserManager.AddToRoles(user.Id, "GerenteGeneral");

                var gerente = new Gerente()
                {
                    IdUsuario = user.Id
                };
                var response = await ApiServicio.InsertarAsync <Gerente>(gerente,
                                                                         new Uri(WebApp.BaseAddress),
                                                                         "Api/Gerentes");

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // Para obtener más información sobre cómo habilitar la confirmación de cuentas y el restablecimiento de contraseña, visite https://go.microsoft.com/fwlink/?LinkID=320771
                    // Enviar correo electrónico con este vínculo
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirmar cuenta", "Para confirmar la cuenta, haga clic <a href=\"" + callbackUrl + "\">aquí</a>");

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario
            return(View(model));
        }
        public async Task <ActionResult> Create(HttpPostedFileBase fileUpload, string Latitud, string Longitud, ClienteRequest clienteRequest)
        {
            try
            {
                var userWithClaims = (ClaimsPrincipal)User;
                var idEmpresa      = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value;
                var lat            = Latitud.Replace(".", ",");
                var lon            = Longitud.Replace(".", ",");

                clienteRequest.Latitud  = Convert.ToDouble(lat);
                clienteRequest.Longitud = Convert.ToDouble(lon);

                var cliente = new ClienteRequest
                {
                    Identificacion = clienteRequest.Identificacion,
                    IdEmpresa      = Convert.ToInt32(idEmpresa),
                };

                var respuesta = await ApiServicio.ObtenerElementoAsync1 <Response>(cliente, new Uri(WebApp.BaseAddress)
                                                                                   , "api/Clientes/ExisteClientePorEmpresa");

                if (respuesta == null)
                {
                    ModelState.AddModelError("", "Ha ocurrido un error al conectarse al servicio...");
                    await CargarCombos();

                    return(View(clienteRequest));
                }

                if (respuesta.IsSuccess == true)
                {
                    ModelState.AddModelError("Identificacion", "El cliente ya existe...");

                    await CargarCombos();

                    clienteRequest.Identificacion = "";
                    return(View(clienteRequest));
                }


                cliente.Apellido      = clienteRequest.Apellido;
                cliente.Direccion     = clienteRequest.Direccion;
                cliente.Email         = clienteRequest.Email;
                cliente.IdTipoCliente = Convert.ToInt32(clienteRequest.IdTipoCliente);
                cliente.IdVendedor    = Convert.ToInt32(clienteRequest.IdVendedor);
                cliente.Latitud       = Convert.ToDouble(clienteRequest.Latitud);
                cliente.Longitud      = Convert.ToDouble(clienteRequest.Longitud);
                cliente.Nombre        = clienteRequest.Nombre;
                cliente.Telefono      = clienteRequest.Telefono;
                cliente.TelefonoMovil = clienteRequest.TelefonoMovil;
                cliente.RazonSocial   = clienteRequest.RazonSocial;
                cliente.Estado        = EstadoCliente.Activo;


                var respuestaInsertar = await ApiServicio.InsertarAsync <Response>(cliente, new Uri(WebApp.BaseAddress)
                                                                                   , "api/Clientes/InsertarCliente");


                if (respuestaInsertar.IsSuccess)
                {
                    if (fileUpload != null)
                    {
                        var clienteSalvado = JsonConvert.DeserializeObject <ClienteRequest>(respuestaInsertar.Resultado.ToString());
                        var fichero        = readFileContents(fileUpload);
                        var foto           = new ArchivoRequest {
                            Id = Convert.ToString(clienteSalvado.IdCliente), Array = fichero, Tipo = 1
                        };


                        var fotoRequest = await ApiServicio.InsertarAsync <Response>(foto, new Uri(WebApp.BaseAddress)
                                                                                     , "Api/Archivos/Insertar");

                        if (fotoRequest.IsSuccess)
                        {
                            var clienteActualizarFoto = new ClienteRequest
                            {
                                IdCliente = clienteSalvado.IdCliente,
                                Foto      = fotoRequest.Resultado.ToString(),
                            };
                            var fotoActualizar = await ApiServicio.InsertarAsync <Response>(clienteActualizarFoto, new Uri(WebApp.BaseAddress)
                                                                                            , "api/Clientes/EditarFotoCliente");

                            if (fotoActualizar.IsSuccess)
                            {
                                return(RedirectToAction("Index", EstadoCliente.Activo));
                            }
                        }
                    }



                    return(RedirectToAction("Index", EstadoCliente.Activo));
                }


                return(RedirectToAction("Index", EstadoCliente.Activo));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public async Task <ActionResult> CalendarioIndex(int idVendedor)
        {
            SupervisorRequest supervisorRequest = new SupervisorRequest();
            VendedorRequest   vendedorRequest   = new VendedorRequest();

            var lista        = new List <VendedorRequest>();
            int idEmpresaInt = 0;


            try
            {
                var userWithClaims = (ClaimsPrincipal)User;
                var idEmpresa      = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value;

                idEmpresaInt = Convert.ToInt32(idEmpresa);

                vendedorRequest.idEmpresa  = idEmpresaInt;
                vendedorRequest.IdVendedor = idVendedor;
            }
            catch (Exception ex)
            {
                InicializarMensaje(Mensaje.ErrorIdEmpresa);
                return(View(lista));
            }



            try
            {
                // Obtener supervisor
                ApplicationDbContext db = new ApplicationDbContext();

                var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));


                var idUsuarioActual = User.Identity.GetUserId();

                supervisorRequest.IdUsuario = idUsuarioActual;
                supervisorRequest.IdEmpresa = idEmpresaInt;

                if (userManager.IsInRole(idUsuarioActual, "Supervisor"))
                {
                    Response response = await ApiServicio.InsertarAsync(supervisorRequest,
                                                                        new Uri(WebApp.BaseAddress),
                                                                        "api/Vendedores/obtenerSupervisorPorIdUsuario");

                    supervisorRequest            = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString());
                    vendedorRequest.IdSupervisor = supervisorRequest.IdSupervisor;
                }



                // Carga de combo

                lista = await ApiServicio.ObtenerElementoAsync1 <List <VendedorRequest> >(vendedorRequest, new Uri(WebApp.BaseAddress)
                                                                                          , "api/Vendedores/ListarVendedoresPorSupervisor");

                lista.Add(new VendedorRequest {
                    IdVendedor     = 0,
                    NombreApellido = "Seleccione"
                });

                lista = lista.OrderBy(x => x.IdVendedor).ToList();

                ViewBag.IdVendedor = new SelectList(lista, "IdVendedor", "NombreApellido");



                // Lista de eventos para cargar la agenda
                var listaEventos = await ApiServicio.ObtenerElementoAsync1 <List <EventoRequest> >(vendedorRequest, new Uri(WebApp.BaseAddress)
                                                                                                   , "api/Agendas/ListarEventosPorVendedor");


                return(View(listaEventos));
            }
            catch (Exception ex)
            {
                InicializarMensaje(Mensaje.Excepcion);
                return(View());
            }
        }
        public async Task <ActionResult> EditarVendedor(HttpPostedFileBase fileUpload, VendedorRequest vendedorRequest)
        {
            InicializarMensaje(Mensaje.GuardadoSatisfactorio);
            int idEmpresaInt = 0;


            try
            {
                var userWithClaims = (ClaimsPrincipal)User;
                var idEmpresa      = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value;

                idEmpresaInt = Convert.ToInt32(idEmpresa);
                vendedorRequest.idEmpresa         = idEmpresaInt;
                vendedorRequest.TiempoSeguimiento = 5;
            }
            catch (Exception ex)
            {
                InicializarMensaje(Mensaje.ErrorIdEmpresa);
                return(View(vendedorRequest));
            }


            if (!ModelState.IsValid)
            {
                InicializarMensaje(Mensaje.ModeloInvalido);
                return(View(vendedorRequest));
            }

            Response response = new Response();

            ApplicationDbContext db = new ApplicationDbContext();

            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    var userManager2     = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));
                    var InstanciaUsuario = await userManager2.FindByEmailAsync(vendedorRequest.Correo);

                    if (InstanciaUsuario != null && InstanciaUsuario.Id != vendedorRequest.IdUsuario)
                    {
                        InicializarMensaje(Mensaje.ExisteCorreo);
                        return(View(vendedorRequest));
                    }

                    var ExisteUsuario = await ApiServicio.ObtenerElementoAsync1 <List <VendedorRequest> >(vendedorRequest,
                                                                                                          new Uri(WebApp.BaseAddress),
                                                                                                          "api/Vendedores/BuscarUsuariosVendedoresPorEmpresaEIdentificacion");

                    if (ExisteUsuario.Count > 0)
                    {
                        for (int i = 0; i < ExisteUsuario.Count; i++)
                        {
                            if (ExisteUsuario.ElementAt(i).IdUsuario != vendedorRequest.IdUsuario)
                            {
                                InicializarMensaje(Mensaje.ExisteIdentificacionUsuario);
                                return(View(vendedorRequest));
                            }
                        }
                    }


                    var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));
                    InstanciaUsuario = await userManager.FindByIdAsync(vendedorRequest.IdUsuario);

                    InstanciaUsuario.UserName       = vendedorRequest.Correo;
                    InstanciaUsuario.Email          = vendedorRequest.Correo;
                    InstanciaUsuario.Identificacion = vendedorRequest.Identificacion;
                    InstanciaUsuario.Nombres        = vendedorRequest.Nombres;
                    InstanciaUsuario.Apellidos      = vendedorRequest.Apellidos;
                    InstanciaUsuario.Direccion      = vendedorRequest.Direccion;
                    InstanciaUsuario.Telefono       = vendedorRequest.Telefono;

                    InstanciaUsuario.Estado    = 1;
                    InstanciaUsuario.IdEmpresa = idEmpresaInt;


                    db.Entry(InstanciaUsuario).State = EntityState.Modified;
                    await db.SaveChangesAsync();



                    response = await ApiServicio.InsertarAsync(vendedorRequest,
                                                               new Uri(WebApp.BaseAddress),
                                                               "api/Vendedores/EditarVendedor");


                    if (response.IsSuccess)
                    {
                        if (fileUpload != null)
                        {
                            var idVendedor = response.Resultado;


                            var fichero = readFileContents(fileUpload);
                            var foto    = new ArchivoRequest {
                                Id = Convert.ToString(vendedorRequest.IdVendedor), Array = fichero, Tipo = 3
                            };


                            var fotoRequest = await ApiServicio.InsertarAsync <Response>(foto, new Uri(WebApp.BaseAddress)
                                                                                         , "Api/Archivos/Insertar");

                            if (fotoRequest.IsSuccess)
                            {
                                InstanciaUsuario.Foto = fotoRequest.Resultado.ToString();

                                db.Entry(InstanciaUsuario).State = EntityState.Modified;
                                await db.SaveChangesAsync();

                                transaction.Commit();

                                return(RedirectToAction("VendedorIndex", new { mensaje = response.Message }));
                            }
                            else
                            {
                                transaction.Rollback();
                                return(RedirectToAction("VendedorIndex", new { mensaje = Mensaje.Error }));
                            }
                        }
                        else
                        {
                            transaction.Commit();

                            return(RedirectToAction("VendedorIndex", new { mensaje = response.Message }));
                        }
                    }

                    transaction.Rollback();

                    ViewData["Error"] = response.Message;
                    return(View(vendedorRequest));
                }
                catch (Exception ex)
                {
                    transaction.Rollback();

                    ViewData["Error"] = response.Message;
                    return(View(vendedorRequest));
                }
            }
        }
        public async Task <ActionResult> VendedorIndex(string mensaje)
        {
            List <VendedorRequest> lista             = new List <VendedorRequest>();
            VendedorRequest        vendedorRequest   = new VendedorRequest();
            SupervisorRequest      supervisorRequest = new SupervisorRequest();

            int idEmpresaInt = 0;

            Response response = new Response();

            InicializarMensaje(mensaje);


            try
            {
                var userWithClaims = (ClaimsPrincipal)User;
                var idEmpresa      = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value;

                idEmpresaInt = Convert.ToInt32(idEmpresa);

                vendedorRequest.idEmpresa = idEmpresaInt;
            }
            catch (Exception ex) {
                InicializarMensaje(Mensaje.ErrorIdEmpresa);
                return(View(lista));
            }


            try
            {
                ApplicationDbContext db = new ApplicationDbContext();

                var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));


                var idUsuarioActual = User.Identity.GetUserId();

                supervisorRequest.IdUsuario = idUsuarioActual;
                supervisorRequest.IdEmpresa = idEmpresaInt;

                if (userManager.IsInRole(idUsuarioActual, "Supervisor"))
                {
                    response = await ApiServicio.InsertarAsync(supervisorRequest,
                                                               new Uri(WebApp.BaseAddress),
                                                               "api/Vendedores/obtenerSupervisorPorIdUsuario");

                    supervisorRequest            = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString());
                    vendedorRequest.IdSupervisor = supervisorRequest.IdSupervisor;

                    lista = await ApiServicio.ObtenerElementoAsync1 <List <VendedorRequest> >(vendedorRequest,
                                                                                              new Uri(WebApp.BaseAddress),
                                                                                              "api/Vendedores/ListarVendedoresPorSupervisor");
                }
                else //(userManager.IsInRole(idUsuarioActual, "GerenteComercial"))
                {
                    lista = await ApiServicio.ObtenerElementoAsync1 <List <VendedorRequest> >(vendedorRequest,
                                                                                              new Uri(WebApp.BaseAddress),
                                                                                              "api/Vendedores/ListarVendedores");
                }



                lista.FirstOrDefault().NumeroMenu = 1;
                return(View(lista));
            }
            catch (Exception ex)
            {
                //InicializarMensaje(Mensaje.Excepcion);
                //lista.FirstOrDefault().NumeroMenu = 1;
                return(View(lista));
            }
        }
        public async Task <ActionResult> CrearVendedor(HttpPostedFileBase fileUpload, VendedorRequest vendedorRequest)
        {
            InicializarMensaje("");

            int idEmpresaInt = 0;

            SupervisorRequest supervisorRequest = new SupervisorRequest();

            var guardar = false;



            try
            {
                var userWithClaims = (ClaimsPrincipal)User;
                var idEmpresa      = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value;


                idEmpresaInt = Convert.ToInt32(idEmpresa);
                vendedorRequest.idEmpresa         = idEmpresaInt;
                vendedorRequest.TiempoSeguimiento = 5;
            }
            catch (Exception ex)
            {
                InicializarMensaje(Mensaje.ErrorIdEmpresa);
                return(View(vendedorRequest));
            }


            if (!ModelState.IsValid)
            {
                InicializarMensaje(Mensaje.ModeloInvalido);
                return(View(vendedorRequest));
            }


            ApplicationDbContext db       = new ApplicationDbContext();
            Response             response = new Response();


            try
            {
                var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));


                var idUsuarioActual = User.Identity.GetUserId();

                supervisorRequest.IdUsuario = idUsuarioActual;
                supervisorRequest.IdEmpresa = idEmpresaInt;

                if (userManager.IsInRole(idUsuarioActual, "Supervisor"))
                {
                    response = await ApiServicio.InsertarAsync(supervisorRequest,
                                                               new Uri(WebApp.BaseAddress),
                                                               "api/Vendedores/obtenerSupervisorPorIdUsuario");

                    supervisorRequest            = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString());
                    vendedorRequest.IdSupervisor = supervisorRequest.IdSupervisor;

                    guardar = true;
                }

                else if (userManager.IsInRole(idUsuarioActual, "GerenteGeneral"))
                {
                    guardar = true;
                }


                if (guardar == false)
                {
                    InicializarMensaje("No tiene permisos para agregar un nuevo vendedor");
                    return(View(vendedorRequest));
                }

                var userManager2     = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));
                var InstanciaUsuario = await userManager2.FindByEmailAsync(vendedorRequest.Correo);

                if (InstanciaUsuario != null)
                {
                    InicializarMensaje(Mensaje.ExisteCorreo);
                    return(View(vendedorRequest));
                }

                var ExisteUsuario = await ApiServicio.ObtenerElementoAsync1 <List <VendedorRequest> >(vendedorRequest,
                                                                                                      new Uri(WebApp.BaseAddress),
                                                                                                      "api/Vendedores/BuscarUsuariosVendedoresPorEmpresaEIdentificacion");

                if (ExisteUsuario.Count > 0)
                {
                    InicializarMensaje(Mensaje.ExisteIdentificacionUsuario);
                    return(View(vendedorRequest));
                }

                var user = new ApplicationUser
                {
                    UserName       = vendedorRequest.Correo,
                    Email          = vendedorRequest.Correo,
                    Identificacion = vendedorRequest.Identificacion,

                    Nombres   = vendedorRequest.Nombres,
                    Apellidos = vendedorRequest.Apellidos,
                    Direccion = vendedorRequest.Direccion,
                    Telefono  = vendedorRequest.Telefono,

                    Estado = 1,

                    IdEmpresa = idEmpresaInt
                };



                var result = await userManager.CreateAsync(user, "A123345.1a");

                db.SaveChanges();

                if (result != null)
                {
                    InstanciaUsuario = await userManager2.FindByEmailAsync(vendedorRequest.Correo);

                    vendedorRequest.IdUsuario = InstanciaUsuario.Id;


                    userManager.AddToRole(InstanciaUsuario.Id, "Vendedor");



                    response = await ApiServicio.InsertarAsync(vendedorRequest,
                                                               new Uri(WebApp.BaseAddress),
                                                               "api/Vendedores/InsertarVendedor");



                    if (response.IsSuccess)
                    {
                        if (fileUpload != null)
                        {
                            var idVendedor = response.Resultado;


                            var fichero = readFileContents(fileUpload);
                            var foto    = new ArchivoRequest {
                                Id = Convert.ToString(idVendedor), Array = fichero, Tipo = 3
                            };


                            var fotoRequest = await ApiServicio.InsertarAsync <Response>(foto, new Uri(WebApp.BaseAddress)
                                                                                         , "Api/Archivos/Insertar");

                            if (fotoRequest.IsSuccess)
                            {
                                user.Foto = fotoRequest.Resultado.ToString();

                                db.Entry(user).State = EntityState.Modified;
                                await db.SaveChangesAsync();


                                var recuperarContrasenaRequest0 = new RecuperarContrasenaRequest();
                                recuperarContrasenaRequest0.Email = user.Email;

                                var response0 = await ApiServicio.ObtenerElementoAsync1 <Response>(recuperarContrasenaRequest0, new Uri(WebApp.BaseAddress)
                                                                                                   , "api/Usuarios/GenerarCodigo");

                                return(RedirectToAction("VendedorIndex", new { mensaje = response.Message }));
                            }
                            else
                            {
                                InicializarMensaje(Mensaje.Error);
                                return(View(vendedorRequest));
                            }
                        }

                        var recuperarContrasenaRequest = new RecuperarContrasenaRequest();
                        recuperarContrasenaRequest.Email = user.Email;

                        var response2 = await ApiServicio.ObtenerElementoAsync1 <Response>(recuperarContrasenaRequest, new Uri(WebApp.BaseAddress)
                                                                                           , "api/Usuarios/GenerarCodigo");

                        return(RedirectToAction("VendedorIndex", new { mensaje = response.Message }));
                    }
                }

                InicializarMensaje("No se ha podido crear un usuario");
                return(View(vendedorRequest));
            }
            catch (Exception ex)
            {
                ViewData["Error"] = Mensaje.Error;
                return(View(vendedorRequest));
            }
        }
Beispiel #16
0
        public async Task <ActionResult> Create(SupervisorRequest supervisorRequest)
        {
            //Seteando el id de la empresa
            var userWithClaims = (ClaimsPrincipal)User;
            var idEmpresa      = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value;

            InicializarMensaje(null);
            if (!ModelState.IsValid)
            {
                InicializarMensaje(null);
                return(View(supervisorRequest));
            }
            Response response = new Response();

            try
            {
                ApplicationDbContext db = new ApplicationDbContext();
                supervisorRequest.IdEmpresa = int.Parse(idEmpresa);

                //VALIDA SI EXITE EL CORREO AL CREAR
                var userManager2     = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));
                var InstanciaUsuario = await userManager2.FindByEmailAsync(supervisorRequest.Correo);

                if (InstanciaUsuario != null)
                {
                    InicializarMensaje(Mensaje.ExisteCorreo);
                    return(View(supervisorRequest));
                }


                //VALIDA SI EXITE LA IDENTIFICACION AL CREAR

                var ExisteUsuario = await ApiServicio.ObtenerElementoAsync1 <SupervisorRequest>(supervisorRequest,
                                                                                                new Uri(WebApp.BaseAddress),
                                                                                                "api/Supervisor/BuscarSupervisorPorEmpresaEIdentificacion");

                if (ExisteUsuario != null)
                {
                    InicializarMensaje(Mensaje.ExisteIdentificacionUsuario);
                    return(View(supervisorRequest));
                }

                //Inserta el supervisor
                var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));


                var empresaActual = new EmpresaActual {
                    IdEmpresa = Convert.ToInt32(idEmpresa)
                };
                var user = new ApplicationUser
                {
                    UserName       = supervisorRequest.Correo,
                    Email          = supervisorRequest.Correo,
                    Identificacion = supervisorRequest.Identificacion,
                    Apellidos      = supervisorRequest.Apellidos,
                    Nombres        = supervisorRequest.Nombres,
                    Estado         = 1,
                    Direccion      = supervisorRequest.Direccion,
                    Telefono       = supervisorRequest.Telefono,
                    IdEmpresa      = empresaActual.IdEmpresa
                };
                var result = await userManager.CreateAsync(user, "A12345.1a");

                db.SaveChanges();
                var enviarContrasenaRequest = new RecuperarContrasenaRequest();
                enviarContrasenaRequest.Email  = user.Email;
                enviarContrasenaRequest.Codigo = "A12345.1a";
                var response2 = await ApiServicio.ObtenerElementoAsync1 <Response>(enviarContrasenaRequest, new Uri(WebApp.BaseAddress)
                                                                                   , "api/Usuarios/EnviarContrasena");

                //varifica el rol
                userManager.AddToRoles(user.Id, "Supervisor");
                if (result != null)
                {
                    supervisorRequest.IdEmpresa = Convert.ToInt32(idEmpresa);
                    supervisorRequest.IdUsuario = user.Id;
                    response = await ApiServicio.InsertarAsync(supervisorRequest,
                                                               new Uri(WebApp.BaseAddress),
                                                               "api/Supervisor/InsertarSupervisor");

                    if (response.IsSuccess)
                    {
                        var idsuper = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString());

                        return(RedirectToAction("Edit", new { id = idsuper.IdSupervisor }));
                    }
                }
            }

            catch (Exception ex)
            {
                ex.ToString();
            }
            ViewData["Error"] = response.Message;

            return(View(supervisorRequest));
        }