public async Task <JsonResult> ListaRutas(int IdVendedor, DateTime fecha) { var lista = new RutasVisitasRequest(); VendedorRequest vendedorRequest = new VendedorRequest(); vendedorRequest.FechaRuta = fecha; 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; //** agregar el idVendedor al vendedorRequest ** vendedorRequest.IdVendedor = IdVendedor; lista = await ApiServicio.ObtenerElementoAsync1 <RutasVisitasRequest>(vendedorRequest, new Uri(WebApp.BaseAddress), "api/Vendedores/ListarRutaVendedores"); return(Json(lista)); } catch (Exception ex) { return(Json(false)); } }
public async Task <Response> PosicionPorUsuario(VendedorRequest vendedorRequest) { try { VendedorPositionRequest VendedorPositionRequests = new VendedorPositionRequest(); var ultimaposicionVendedor = await db.LogRutaVendedor .Where(x => x.IdVendedor == vendedorRequest.IdVendedor) .OrderByDescending(x => x.Fecha) .Select( x => new VendedorPositionRequest { VendedorId = x.IdVendedor, Nombre = x.Vendedor.AspNetUsers.Nombres, Lat = (float)x.Latitud, Lon = (float)x.Longitud, Fecha = (DateTime)x.Fecha, EmpresaId = x.Vendedor.AspNetUsers.IdEmpresa, urlFoto = x.Vendedor.AspNetUsers.Foto, Correo = x.Vendedor.AspNetUsers.Email, Identificacion = x.Vendedor.AspNetUsers.Identificacion, Telefono = x.Vendedor.AspNetUsers.Telefono }) .FirstOrDefaultAsync(); return(new Response { IsSuccess = true, Resultado = ultimaposicionVendedor, }); } catch (Exception ex) { return(null); } }
public async Task <List <EventoRequest> > AgendaPorVendedor() { try { var vendedor = new VendedorRequest { IdVendedor = Settings.userId, }; var request = JsonConvert.SerializeObject(vendedor); var content = new StringContent(request, Encoding.UTF8, "application/json"); var client = new HttpClient(); client.BaseAddress = new Uri(Constants.Constants.VentasWS); var url = "api/Agendas/ListarEventosPorVendedor"; var response = await client.PostAsync(url, content); if (!response.IsSuccessStatusCode) { return(null); } var result = await response.Content.ReadAsStringAsync(); var AgendaData = JsonConvert.DeserializeObject <List <EventoRequest> >(result); return(AgendaData); // var log = JsonConvert.DeserializeObject<LogPosition>(result); } catch (Exception ex) { return(null); } }
public async Task <ActionResult> VerVendedoresTiempoReal(int?id, string mensaje) { InicializarMensaje(mensaje); if (id != null) { var vendedor = new VendedorRequest { IdVendedor = Convert.ToInt32(id) }; var vendedorRequest = await ApiServicio.ObtenerElementoAsync1 <Response>(vendedor, new Uri(WebApp.BaseAddress) , "api/Vendedores/ObtenerVendedor"); if (vendedorRequest.IsSuccess) { var vistaVendedor = JsonConvert.DeserializeObject <VendedorRequest>(vendedorRequest.Resultado.ToString()); var foto = string.IsNullOrEmpty(vistaVendedor.Foto) != true?vistaVendedor.Foto.Replace("~", WebApp.BaseAddress) : ""; vistaVendedor.Foto = foto; return(View(vistaVendedor)); } return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); }
public async Task <List <ClienteRequest> > ListarClientesPorVendedor(VendedorRequest vendedor) { try { var lista = await db.Cliente.Where(x => x.IdVendedor == vendedor.IdVendedor && x.Estado == 1).Select(x => new ClienteRequest { Apellido = x.Apellido, ApellidosVendedor = x.Vendedor.AspNetUsers.Apellidos, Email = x.Email, Firma = x.Firma, Foto = x.Foto, IdCliente = x.idCliente, IdTipoCliente = x.idTipoCliente, IdVendedor = x.IdVendedor, Latitud = x.Latitud, Longitud = x.Longitud, Nombre = x.Nombre, NombresVendedor = x.Vendedor.AspNetUsers.Nombres, Telefono = x.Telefono, TipoCliente = x.TipoCliente.Tipo, Identificacion = x.Identificacion, Direccion = x.Direccion, IdEmpresa = x.TipoCliente.IdEmpresa, TelefonoMovil = x.TelefonoMovil, RazonSocial = x.RazonSocial, }).ToListAsync(); return(lista); } catch (Exception ex) { return(new List <ClienteRequest>()); } }
public async Task <Response> ObtenerVendedor(VendedorRequest vendedorRequest) { var vendedor = await db.Vendedor.Where(x => x.IdVendedor == vendedorRequest.IdVendedor) .Select(y => new VendedorRequest { Identificacion = y.AspNetUsers.Identificacion, NombreApellido = y.AspNetUsers.Nombres + " " + y.AspNetUsers.Apellidos, Correo = y.AspNetUsers.Email, Telefono = y.AspNetUsers.Telefono, Foto = y.AspNetUsers.Foto, IdVendedor = y.IdVendedor, DistanciaSeguimiento = y.DistanciaSeguimiento }) .FirstOrDefaultAsync(); if (vendedor != null) { return(new Response { IsSuccess = true, Resultado = vendedor }); } return(new Response { IsSuccess = false }); }
public async Task <Response> InsertarVendedor(VendedorRequest vendedorRequest) { try { Vendedor vendedor = new Vendedor(); vendedor.IdUsuario = vendedorRequest.IdUsuario; vendedor.TiempoSeguimiento = vendedorRequest.TiempoSeguimiento; vendedor.IdSupervisor = vendedorRequest.IdSupervisor; db.Vendedor.Add(vendedor); await db.SaveChangesAsync(); return(new Response { IsSuccess = true, Message = Mensaje.GuardadoSatisfactorio, Resultado = vendedor.IdVendedor }); } catch (Exception ex) { return(new Response { IsSuccess = false, Message = Mensaje.Error, }); } }
public async Task <Response> ListaSinSolucion(VendedorRequest vendedor) { try { db.Configuration.ProxyCreationEnabled = false; //Esta es para obtener los 5 ultimos productos de esta fecha var list = (from t in db.Compromiso where t.Visita.IdVendedor == vendedor.IdVendedor orderby t.Visita.Fecha select t).Take(5); var lista = await db.Compromiso.Where(x => x.Visita.IdVendedor == vendedor.IdVendedor).ToListAsync(); return(new Response { IsSuccess = true, Resultado = lista, }); } catch (Exception ex) { return(new Response { IsSuccess = false, Message = ex.Message }); } }
public async Task <Response> obtenerSupervisor(SupervisorRequest id) { var supervisor = new SupervisorRequest(); var vendedor = new VendedorRequest(); var listaVendedores = new List <VendedorRequest>(); int idEmpresa = Convert.ToInt32(id.IdEmpresa); supervisor.IdEmpresa = idEmpresa; vendedor.idEmpresa = idEmpresa; VendedoresController ctl = new VendedoresController(); try { supervisor = await db.Supervisor.Where(m => m.IdSupervisor == id.IdSupervisor).Select(x => new SupervisorRequest { IdUsuario = x.AspNetUsers.Id, IdSupervisor = x.IdSupervisor, Identificacion = x.AspNetUsers.Identificacion, Nombres = x.AspNetUsers.Nombres, Apellidos = x.AspNetUsers.Apellidos, Direccion = x.AspNetUsers.Direccion, Telefono = x.AspNetUsers.Telefono, Correo = x.AspNetUsers.Email, IdEmpresa = x.AspNetUsers.IdEmpresa, IdGerente = x.IdGerente }).SingleOrDefaultAsync(); supervisor.ListaVendedores = await ctl.ListarVendedores(vendedor); supervisor.ListaVendedoresAsignados = supervisor.ListaVendedores.Where(x => x.IdSupervisor == id.IdSupervisor).ToList(); supervisor.ListaVendedoresSinAsignar = supervisor.ListaVendedores.Where(x => x.IdSupervisor != id.IdSupervisor).ToList(); if (supervisor == null) { return(new Response { IsSuccess = false, Message = Mensaje.RegistroNoEncontrado, }); } return(new Response { IsSuccess = true, Message = Mensaje.Satisfactorio, Resultado = supervisor, }); } catch (Exception ex) { return(new Response { IsSuccess = false, Message = Mensaje.Error, }); } }
public async Task <List <EventoRequest> > ListarEventosPorVendedor(VendedorRequest vendedorRequest) { //Solo necesita el IdVendedor var lista = new List <EventoRequest>(); try { var listaAgenda = await db.Agenda.Select(x => new EventoRequest { idAgenda = x.idAgenda, Prioridad = x.Prioridad, FechaFin = x.FechaFin, FechaVista = x.FechaVista, Notas = x.Notas, idCliente = x.idCliente, IdVendedor = x.IdVendedor } ).Where(y => y.IdVendedor == vendedorRequest.IdVendedor).ToListAsync(); var listaCompromiso = await db.Compromiso .Join(db.Visita, com => com.idVisita, v => v.idVisita, (com, v) => new { tcom = com, tv = v }) .Join(db.Vendedor, conjunto => conjunto.tv.IdVendedor, ven => ven.IdVendedor, (conjunto, ven) => new { varConjunto = conjunto, tven = ven }) .Where(y => y.tven.IdVendedor == vendedorRequest.IdVendedor) .Select(x => new EventoRequest { idAgenda = 0, IdCompromiso = x.varConjunto.tcom.IdCompromiso, IdTipoCompromiso = x.varConjunto.tcom.IdTipoCompromiso, idVisita = x.varConjunto.tcom.idVisita, Descripcion = x.varConjunto.tcom.Descripcion, Solucion = x.varConjunto.tcom.Solucion, FechaVista = x.varConjunto.tv.Fecha, IdVendedor = x.tven.IdVendedor } ).ToListAsync(); lista = listaAgenda; for (int i = 0; i < listaCompromiso.Count; i++) { lista.Add(listaCompromiso.ElementAt(i)); } return(lista); } catch (Exception ex) { return(lista); } }
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)); } }
public async Task <ActionResult> CrearVendedor(string mensaje) { VendedorRequest vendedorRequest = new VendedorRequest(); InicializarMensaje(mensaje); return(View(vendedorRequest)); }
public async Task <ActionResult> PerfilVendedor(string mensaje, int idVendedor) { SupervisorRequest supervisorRequest = new SupervisorRequest(); VendedorRequest vendedor = new VendedorRequest(); vendedor.IdVendedor = idVendedor; int idEmpresaInt = 0; try { var userWithClaims = (ClaimsPrincipal)User; var idEmpresa = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value; idEmpresaInt = Convert.ToInt32(idEmpresa); vendedor.idEmpresa = idEmpresaInt; } catch (Exception ex) { InicializarMensaje(Mensaje.ErrorIdEmpresa); } InicializarMensaje("PerfilVendedor"); try { vendedor = await ApiServicio.ObtenerElementoAsync1 <VendedorRequest>(vendedor, new Uri(WebApp.BaseAddress), "api/Vendedores/ListarClientesPorVendedor"); var estadisticoVendedorRequest = await ApiServicio.ObtenerElementoAsync1 <EstadisticoVendedorRequest>(vendedor, new Uri(WebApp.BaseAddress), "api/Agendas/VerEstadisticosVendedor"); vendedor.estadisticoVendedorRequest = estadisticoVendedorRequest; var foto = string.IsNullOrEmpty(vendedor.Foto) != true?vendedor.Foto.Replace("~", WebApp.BaseAddress) : ""; vendedor.Foto = foto; InicializarMensaje(""); return(View(vendedor)); } catch { InicializarMensaje(Mensaje.Excepcion); return(View(vendedor)); } }
public async Task <ActionResult> MapaRuta(int?idVendedor, string mensaje) { InicializarMensaje(mensaje); if (idVendedor != null) { var vendedor = new VendedorRequest { IdVendedor = Convert.ToInt32(idVendedor) }; return(View(vendedor)); } return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); }
public async Task <VendedorRequest> ListarClientesPorVendedor(VendedorRequest vendedorRequest) { //Necesarios : idEmpresa e idVendedor // solo muestra vendedores con estado 1("Activado") var vendedor = new VendedorRequest(); var listaClientes = new List <ClienteRequest>(); int idEmpresa = Convert.ToInt32(vendedorRequest.idEmpresa); //EmpresaActual empresaActual = new EmpresaActual { IdEmpresa = idEmpresa }; ClientesController ctl = new ClientesController(); listaClientes = await ctl.ListarClientesPorVendedor(vendedorRequest); try { vendedor = await db.Vendedor.Select(x => new VendedorRequest { IdVendedor = x.IdVendedor, TiempoSeguimiento = x.TiempoSeguimiento, IdSupervisor = x.IdSupervisor, IdUsuario = x.AspNetUsers.Id, NombreApellido = x.AspNetUsers.Nombres + " " + x.AspNetUsers.Apellidos, TokenContrasena = x.AspNetUsers.TokenContrasena, Foto = x.AspNetUsers.Foto, Estado = x.AspNetUsers.Estado, Correo = x.AspNetUsers.Email, Direccion = x.AspNetUsers.Direccion, Identificacion = x.AspNetUsers.Identificacion, Nombres = x.AspNetUsers.Nombres, Apellidos = x.AspNetUsers.Apellidos, Telefono = x.AspNetUsers.Telefono, idEmpresa = vendedorRequest.idEmpresa, DistanciaSeguimiento = x.DistanciaSeguimiento } ).Where(x => x.idEmpresa == vendedorRequest.idEmpresa && x.IdVendedor == vendedorRequest.IdVendedor && x.Estado == 1 ).FirstOrDefaultAsync(); vendedor.ListaClientes = listaClientes; return(vendedor); } catch (Exception ex) { return(vendedor); } }
public async Task <List <VendedorRequest> > ListarVendedoresPorSupervisor(VendedorRequest vendedorRequest) { //Necesarios : idEmpresa e idSupervisor // solo muestra vendedores con estado 1("Activado") var super = db.Supervisor.Where(x => x.IdUsuario == vendedorRequest.IdUsuario).FirstOrDefault(); var listaVendedores = new List <VendedorRequest>(); try { listaVendedores = await db.Vendedor.Select(x => new VendedorRequest { IdVendedor = x.IdVendedor, TiempoSeguimiento = x.TiempoSeguimiento, IdSupervisor = x.IdSupervisor, IdUsuario = x.AspNetUsers.Id, TokenContrasena = x.AspNetUsers.TokenContrasena, Foto = x.AspNetUsers.Foto, Estado = x.AspNetUsers.Estado, Correo = x.AspNetUsers.Email, Direccion = x.AspNetUsers.Direccion, Identificacion = x.AspNetUsers.Identificacion, Nombres = x.AspNetUsers.Nombres, Apellidos = x.AspNetUsers.Apellidos, NombreApellido = x.AspNetUsers.Nombres + " " + x.AspNetUsers.Apellidos, Telefono = x.AspNetUsers.Telefono, idEmpresa = vendedorRequest.idEmpresa } ).Where(x => x.idEmpresa == vendedorRequest.idEmpresa && x.IdSupervisor == vendedorRequest.IdSupervisor && x.Estado == 1 ).ToListAsync(); return(listaVendedores); } catch (Exception ex) { return(listaVendedores); } }
public async Task <Response> EditarVendedor(VendedorRequest vendedorRequest) { Response response = new Response(); db.Configuration.ProxyCreationEnabled = false; try { var modelo = await db.Vendedor.Where(x => x.IdVendedor == vendedorRequest.IdVendedor).FirstOrDefaultAsync(); if (modelo.TiempoSeguimiento != vendedorRequest.TiempoSeguimiento || modelo.IdSupervisor != vendedorRequest.IdSupervisor || modelo.DistanciaSeguimiento != vendedorRequest.DistanciaSeguimiento) { modelo.TiempoSeguimiento = vendedorRequest.TiempoSeguimiento; modelo.IdSupervisor = vendedorRequest.IdSupervisor; modelo.DistanciaSeguimiento = vendedorRequest.DistanciaSeguimiento; // db.Entry(modelo).State = EntityState.Modified; await db.SaveChangesAsync(); } response = new Response { IsSuccess = true, Message = Mensaje.GuardadoSatisfactorio }; return(response); } catch (Exception ex) { response = new Response { IsSuccess = false, Message = Mensaje.Excepcion + ex, Resultado = null }; return(response); } }
public async Task <List <ClienteRequest> > ListarClientesPorSupervisor(VendedorRequest vendedorRequest) { //Necesita: IdSupervisor // solo muestra vendedores con estado 1("Activado") var lista = new List <ClienteRequest>(); try { lista = await db.Vendedor .Join(db.Cliente , rta => rta.IdVendedor, ind => ind.IdVendedor, (rta, ind) => new { hm = rta, gh = ind }) .Join(db.Supervisor , ind_1 => ind_1.hm.IdSupervisor, valor => valor.IdSupervisor, (ind_1, valor) => new { ca = ind_1, rt = valor }) .Where(ds => ds.rt.IdSupervisor == vendedorRequest.IdSupervisor && ds.ca.gh.Estado == 1 ) .Select(t => new ClienteRequest { IdVendedor = t.ca.hm.IdVendedor, IdCliente = t.ca.gh.idCliente, Nombre = t.ca.gh.Nombre, Apellido = t.ca.gh.Apellido, Latitud = t.ca.gh.Latitud, Longitud = t.ca.gh.Longitud }) .ToListAsync(); return(lista); } catch (Exception ex) { return(lista); } }
public async Task <VendedorRequest> VendedorByEmail(VendedorRequest vendedorRequest) { var Vendedor = new VendedorRequest(); try { db.Configuration.ProxyCreationEnabled = false; //var resultAgente = await db.AspNetUsers.Where(x => x.Email == vendedorRequest.Correo).FirstOrDefaultAsync(); Vendedor = await db.Vendedor.Select(x => new VendedorRequest { IdVendedor = x.IdVendedor, TiempoSeguimiento = x.TiempoSeguimiento, IdSupervisor = x.IdSupervisor, IdUsuario = x.AspNetUsers.Id, TokenContrasena = x.AspNetUsers.TokenContrasena, Foto = x.AspNetUsers.Foto, Estado = x.AspNetUsers.Estado, Correo = x.AspNetUsers.Email, Direccion = x.AspNetUsers.Direccion, Identificacion = x.AspNetUsers.Identificacion, Nombres = x.AspNetUsers.Nombres, Apellidos = x.AspNetUsers.Apellidos, Telefono = x.AspNetUsers.Telefono, idEmpresa = x.AspNetUsers.IdEmpresa } ).Where(x => x.Correo == vendedorRequest.Correo).FirstOrDefaultAsync(); return(Vendedor); } catch (Exception ex) { return(null); } }
/// <summary> /// Obtiene el catalogo de vendedores /// </summary> /// <history> /// [emoguel] created 15/06/2016 /// </history> public async static Task <Vendedor[]> GetSalesMen() { Vendedor[] Vendedores = await Task.Run(() => { VendedorRequest request = new VendedorRequest(); VendedorResponse response = null; Vendedor[] vendedor = null; response = Current().ObtenerCatalogoVendedores(request); //si ocurrio un error if (response.HasErrors) { throw new Exception(response.ExceptionInfo.Message); } else { vendedor = response.Data; } return(vendedor); }); return(Vendedores); }
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)); } }
public async Task <List <UbicacionPersonaRequest> > ListarVendedoresConUbicacionPorSupervisor(VendedorRequest vendedorRequest) { // Necesarios: IdEmpresa E idSupervisor // solo muestra vendedores con estado 1("Activado") var listaVendedores = new List <UbicacionPersonaRequest>(); //var vLongitud = db.LogRutaVendedor.Where(y => y.IdVendedor == 16 && y.Fecha == DateTime.Today).OrderByDescending(y => y.Fecha).FirstOrDefault().Longitud; try { listaVendedores = await db.Vendedor.Select(x => new UbicacionPersonaRequest { IdVendedor = x.IdVendedor, TiempoSeguimiento = x.TiempoSeguimiento, IdSupervisor = x.IdSupervisor, IdUsuario = x.AspNetUsers.Id, TokenContrasena = x.AspNetUsers.TokenContrasena, Foto = x.AspNetUsers.Foto, Estado = x.AspNetUsers.Estado, Correo = x.AspNetUsers.Email, Direccion = x.AspNetUsers.Direccion, Identificacion = x.AspNetUsers.Identificacion, Nombres = x.AspNetUsers.Nombres, Apellidos = x.AspNetUsers.Apellidos, Telefono = x.AspNetUsers.Telefono, idEmpresa = vendedorRequest.idEmpresa, //ListaUbicaciones = db.LogRutaVendedor.Where(y => y.IdVendedor == x.IdVendedor).ToList(), Latitud = db.LogRutaVendedor.Where(y => y.IdVendedor == x.IdVendedor).OrderByDescending(y => y.Fecha).FirstOrDefault().Latitud, Longitud = db.LogRutaVendedor.Where(y => y.IdVendedor == x.IdVendedor).OrderByDescending(y => y.Fecha).FirstOrDefault().Longitud } ).Where(x => x.idEmpresa == vendedorRequest.idEmpresa && x.IdSupervisor == vendedorRequest.IdSupervisor && x.Estado == 1 ).ToListAsync(); return(listaVendedores); } catch (Exception ex) { return(listaVendedores); } }
public async Task <RutasVisitasRequest> ListarRutaVendedores(VendedorRequest vendedorRequest) { // Necesarios: IdEmpresa e IdVendedor // solo muestra vendedores con estado 1("Activado") db.Configuration.ProxyCreationEnabled = false; //var lista = new List<RutaRequest>(); //var lista2 = new List<RutaRequest>(); RutasVisitasRequest RutaVisitas = new RutasVisitasRequest(); var ListaRuta = new List <RutaRequest>(); var Lista2 = new List <RutaRequest>(); DateTime hoy = vendedorRequest.FechaRuta; try { //Lista para la ruta del vendedor ListaRuta = await db.LogRutaVendedor .Where( x => x.Vendedor.AspNetUsers.IdEmpresa == vendedorRequest.idEmpresa && x.Vendedor.AspNetUsers.Estado == 1 && x.Vendedor.IdVendedor == vendedorRequest.IdVendedor && DbFunctions.TruncateTime(x.Fecha.Value) == hoy) .Select( x => new RutaRequest { IdLogRutaVendedor = x.IdLogRutaVendedor, IdVendedor = x.IdVendedor, Fecha = x.Fecha, Latitud = x.Latitud, Longitud = x.Longitud } ).OrderBy(or => or.Fecha).ToListAsync(); //Lista de Visitas Lista2 = await db.Visita .Where(y => y.Vendedor.AspNetUsers.IdEmpresa == vendedorRequest.idEmpresa && y.Vendedor.AspNetUsers.Estado == 1 && y.Vendedor.IdVendedor == vendedorRequest.IdVendedor && DbFunctions.TruncateTime(y.Fecha) == hoy) .Select(y => new RutaRequest { IdLogRutaVendedor = 0, IdVendedor = y.IdVendedor, Fecha = y.Fecha, Latitud = y.Latitud, Longitud = y.Longitud, ClienteRequest = new ClienteRequest { IdCliente = y.idCliente, Nombre = y.Cliente.Nombre, RazonSocial = y.Cliente.RazonSocial, Apellido = y.Cliente.Apellido, Direccion = y.Cliente.Direccion, Identificacion = y.Cliente.Identificacion, Foto = y.Cliente.Foto, } }).OrderBy(or => or.Fecha).ToListAsync(); ListaRuta.AddRange(Lista2); ListaRuta.OrderBy(or => or.Fecha).ToList(); // Visitas var listaVisitas = await db.Visita .Where(x => x.Fecha.Day == hoy.Day && x.Vendedor.IdVendedor == vendedorRequest.IdVendedor) .Select(c => new VisitaRecorrido { ClienteRequest = new ClienteRequest { IdCliente = c.idCliente, Nombre = c.Cliente.Nombre, RazonSocial = c.Cliente.RazonSocial, Apellido = c.Cliente.Apellido, Direccion = c.Cliente.Direccion, Identificacion = c.Cliente.Identificacion, Foto = c.Cliente.Foto, }, ListaCompromisos = c.Compromiso.Select(y => new CompromisosRecorrido { Detalle = y.Descripcion, TipoCompromiso = y.TipoCompromiso.Descripcion, Solucion = y.Solucion }).ToList(), Fecha = c.Fecha, IdVisita = c.idVisita, } ).ToListAsync(); listaVisitas.Count(); RutaVisitas = new RutasVisitasRequest { ListaRutas = ListaRuta, ListaVisitas = listaVisitas, }; return(RutaVisitas); } catch (Exception ex) { return(RutaVisitas); } }
public async Task <List <VendedorRequest> > BuscarUsuariosVendedoresPorEmpresaEIdentificacion(VendedorRequest vendedorRequest) { //Necesarios el IdEmpresa e Identificacion var listaVendedores = new List <VendedorRequest>(); try { listaVendedores = await db.Vendedor.Select(x => new VendedorRequest { IdVendedor = x.IdVendedor, TiempoSeguimiento = x.TiempoSeguimiento, IdSupervisor = x.IdSupervisor, IdUsuario = x.AspNetUsers.Id, TokenContrasena = x.AspNetUsers.TokenContrasena, Foto = x.AspNetUsers.Foto, Estado = x.AspNetUsers.Estado, Correo = x.AspNetUsers.Email, Direccion = x.AspNetUsers.Direccion, Identificacion = x.AspNetUsers.Identificacion, Nombres = x.AspNetUsers.Nombres, Apellidos = x.AspNetUsers.Apellidos, Telefono = x.AspNetUsers.Telefono, idEmpresa = vendedorRequest.idEmpresa } ).Where(x => x.idEmpresa == vendedorRequest.idEmpresa && x.Identificacion == vendedorRequest.Identificacion).ToListAsync(); return(listaVendedores); } catch (Exception ex) { return(listaVendedores); } }
public async Task <EstadisticoVendedorRequest> VerEstadisticosVendedor(VendedorRequest vendedorRequest) { EstadisticoVendedorRequest estadisticoVendedorRequest = new EstadisticoVendedorRequest(); //Solo necesita el IdVendedor var promedio = 0; var listaVisitas = new List <Visita>(); try { // Lógica sacar promedio de calificaciones listaVisitas = await db.Visita.Where(y => y.IdVendedor == vendedorRequest.IdVendedor).ToListAsync(); for (int i = 0; i < listaVisitas.Count; i++) { promedio = promedio + Convert.ToInt32(listaVisitas.ElementAt(i).Calificacion); } promedio = promedio / listaVisitas.Count; // Lógica para estadísticos pasteles (tipo de compromiso) var listaCompromiso = await db.Compromiso .Join(db.TipoCompromiso, com => com.IdTipoCompromiso, tc => tc.IdTipoCompromiso, (com, tc) => new { tcom = com, ttc = tc }) .Join(db.Visita, conjunto1 => conjunto1.tcom.idVisita, visita => visita.idVisita, (conjunto1, visita) => new { Aconjunto1 = conjunto1, Avis = visita }) .Join(db.Vendedor, conjunto2 => conjunto2.Avis.IdVendedor, ven => ven.IdVendedor, (conjunto2, ven) => new { AConjunto2 = conjunto2, Aven = ven }) .Where(y => y.Aven.IdVendedor == vendedorRequest.IdVendedor) .Select(x => new TipoCompromisoRequest { IdTipoCompromiso = x.AConjunto2.Aconjunto1.ttc.IdTipoCompromiso, Descripcion = x.AConjunto2.Aconjunto1.ttc.Descripcion } ).GroupBy(z => z.Descripcion).ToListAsync(); var listaTipoCompromisos = new List <TipoCompromisoRequest>(); for (int i = 0; i < listaCompromiso.Count; i++) { var num = listaCompromiso.ElementAt(i).Count(); listaTipoCompromisos.Add( new TipoCompromisoRequest { Descripcion = listaCompromiso.ElementAt(i).ElementAt(0).Descripcion, CantidadCompromiso = num } ); } // Lógica para compromisos cumplidos - incumplidos var cumplidos = await db.Compromiso .Join(db.Visita, com => com.idVisita, v => v.idVisita, (com, v) => new { tcom = com, tv = v }) .Join(db.Vendedor, conjunto => conjunto.tv.IdVendedor, ven => ven.IdVendedor, (conjunto, ven) => new { varConjunto = conjunto, tven = ven }) .Where(y => y.tven.IdVendedor == vendedorRequest.IdVendedor && !String.IsNullOrEmpty(y.varConjunto.tcom.Solucion)) .ToListAsync(); var incumplidos = await db.Compromiso .Join(db.Visita, com => com.idVisita, v => v.idVisita, (com, v) => new { tcom = com, tv = v }) .Join(db.Vendedor, conjunto => conjunto.tv.IdVendedor, ven => ven.IdVendedor, (conjunto, ven) => new { varConjunto = conjunto, tven = ven }) .Where(y => y.tven.IdVendedor == vendedorRequest.IdVendedor && String.IsNullOrEmpty(y.varConjunto.tcom.Solucion)) .ToListAsync(); estadisticoVendedorRequest.IdVendedor = vendedorRequest.IdVendedor; estadisticoVendedorRequest.CalificacionPromedio = promedio; estadisticoVendedorRequest.ListaTipoCompromiso = listaTipoCompromisos; estadisticoVendedorRequest.CompromisosCumplidos = cumplidos.Count(); estadisticoVendedorRequest.CompromisosIncumplidos = incumplidos.Count(); return(estadisticoVendedorRequest); } catch (Exception ex) { return(estadisticoVendedorRequest); } }