コード例 #1
0
        public async Task <SupervisorRequest> BuscarSupervisorPorEmpresaEIdentificacion(SupervisorRequest supervisorRequest)
        {
            //Necesarios el IdEmpresa e Identificacion
            var listaSupervisores = new SupervisorRequest();

            try
            {
                listaSupervisores = db.Supervisor.Select(x => new SupervisorRequest
                {
                    IdSupervisor   = x.IdSupervisor,
                    IdUsuario      = x.AspNetUsers.Id,
                    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      = supervisorRequest.IdEmpresa
                }
                                                         ).Where(x => x.IdEmpresa == supervisorRequest.IdEmpresa && x.Identificacion == supervisorRequest.Identificacion).FirstOrDefault();
                return(listaSupervisores);
            }
            catch (Exception ex)
            {
                return(listaSupervisores);
            }
        }
コード例 #2
0
        public async Task <Response> Asignarvendedor(SupervisorRequest supervisorRequestd)
        {
            try
            {
                var vendedor = await db.Vendedor.Where(x => x.IdVendedor == supervisorRequestd.IdVendedor).FirstOrDefaultAsync();

                if (vendedor != null)
                {
                    vendedor.IdSupervisor    = supervisorRequestd.IdSupervisor;
                    db.Entry(vendedor).State = EntityState.Modified;
                    await db.SaveChangesAsync();
                }

                return(new Response
                {
                    IsSuccess = true,
                    Message = Mensaje.Satisfactorio
                });
            }

            catch (Exception ex)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Error,
                });
            }
        }
コード例 #3
0
        public async Task <ActionResult> Edit(string id)
        {
            try
            {
                var super = new SupervisorRequest
                {
                    IdSupervisor = Convert.ToInt32(id)
                };
                if (!string.IsNullOrEmpty(id))
                {
                    var response = await ApiServicio.ObtenerElementoAsync(super,
                                                                          new Uri(WebApp.BaseAddress),
                                                                          "api/Supervisor/obtenerSupervisor");

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

                    if (response.IsSuccess)
                    {
                        InicializarMensaje(null);
                        return(View(response.Resultado));
                    }
                }
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
            return(View());
        }
コード例 #4
0
        public async Task <SupervisorRequest> ListarVisitas(SupervisorRequest supervisorRequest)
        {
            try
            {
                var listacompromiso = new List <CompromisoRequest>();
                listacompromiso = db.Compromiso
                                  .Join(db.Visita
                                        , rta => rta.idVisita, ind => ind.idVisita,
                                        (rta, ind) => new { hm = rta, gh = ind })

                                  .Where(ds =>
                                         ds.gh.idCliente == supervisorRequest.IdCliente &&
                                         ds.gh.IdVendedor == supervisorRequest.IdVendedor &&
                                         ds.gh.Fecha >= supervisorRequest.FechaInicio &&
                                         ds.gh.Fecha <= supervisorRequest.FechaFin
                                         )
                                  .Select(t => new CompromisoRequest
                {
                    IdCompromiso = t.hm.IdCompromiso,
                    idVisita     = t.hm.idVisita,
                    Descripcion  = t.hm.Descripcion,
                    Solucion     = t.hm.Solucion,
                    Fecha        = t.gh.Fecha
                })
                                  .ToList();


                supervisorRequest.Listarcompromiso = listacompromiso;
                return(supervisorRequest);
            }
            catch (Exception ex)
            {
                return(supervisorRequest);
            }
        }
コード例 #5
0
        public async Task <SupervisorRequest> ListarCompromiso(SupervisorRequest supervisorRequest)
        {
            var listacompromiso = new List <CompromisoRequest>();

            try
            {
                listacompromiso = db.Compromiso.Select(x => new CompromisoRequest
                {
                    IdCompromiso   = x.IdTipoCompromiso,
                    tipocompromiso = x.TipoCompromiso.Descripcion,
                    Descripcion    = x.Descripcion,
                    Solucion       = x.Solucion
                }
                                                       ).Where(x => x.idVisita == supervisorRequest.Idvisita).ToList();

                supervisorRequest.ListaVendedores = db.Vendedor.Where(m => m.IdSupervisor == supervisorRequest.IdSupervisor && m.AspNetUsers.Estado == 1).Select(x => new VendedorRequest
                {
                    IdVendedor     = x.IdVendedor,
                    Nombres        = x.AspNetUsers.Nombres,
                    Apellidos      = x.AspNetUsers.Apellidos,
                    Identificacion = x.AspNetUsers.Identificacion
                }).ToList();
                supervisorRequest.Listarcompromiso = listacompromiso;
                //supervisorRequest.ListaVendedores = listarvendedor;
                return(supervisorRequest);
            }
            catch (Exception ex)
            {
                return(supervisorRequest);
            }
        }
コード例 #6
0
        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,
                });
            }
        }
コード例 #7
0
        public static GridRow BindGridData(SupervisorRequest source, bool isSupervisorRequest)
        {
            var row = new GridRow {
                IdentityValue = source.Id
            };

            row.AddCell(Enum.GetName(typeof(RequestStatusEnum), source.LatestRequestStatus));
            row.AddCell(source.Title);
            row.AddCell(Enum.GetName(typeof(RequsetPriorityEnum), source.Priority));
            row.AddCell(source.Isolator.Abbriviation);
            //row.AddCell(source.RequestType.Type);
            if (isSupervisorRequest)
            {
                row.AddActionIcon("fa fa-search text-Primary", "Click to view detail");
                if (!source.LatestRequestStatus.Equals(RequestStatusEnum.Declined))
                {
                    row.AddActionIcon("fa fa-check text-success", "Click to approve request");
                    row.AddActionIcon("fa fa-times text-danger", "Click to decline request");
                }
            }
            else if (!source.LatestRequestStatus.Equals(RequestStatusEnum.Approved))
            {
                row.AddActionIcon("fa fa-edit text-Primary", "Click to edit request");
                row.AddActionIcon("fa fa-trash text-danger", "Click to delete request");
            }

            //row.AddActionIcon("fa fa-users text-primary", "Click to manage staff allocation", "/isolators/isolatorstaffallocationindex?isoid=" + source.IsolatorId + "&nm=" + source.Abbriviation + "");

            return(row);
        }
コード例 #8
0
        public SupervisorRequest DeleteBySupervisorAndGroupId(int sId, int gId)
        {
            SupervisorRequest foundSupervisorRequest = GetBySupervisorAndGroupId(sId, gId);

            SupervisorRequests.Remove(foundSupervisorRequest);
            return(foundSupervisorRequest);
        }
コード例 #9
0
        public async Task <JsonResult> ClienteVendor(string idVendedor)
        {
            var userWithClaims = (ClaimsPrincipal)User;
            var idEmpresa      = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value;
            var empresaActual  = new EmpresaActual {
                IdEmpresa = Convert.ToInt32(idEmpresa)
            };
            var user = new SupervisorRequest
            {
                IdVendedor = Convert.ToUInt16(idVendedor),
                IdEmpresa  = empresaActual.IdEmpresa
            };

            try
            {
                var respusta = await ApiServicio.ObtenerElementoAsync1 <VendedorRequest>(user, new Uri(WebApp.BaseAddress)
                                                                                         , "api/Vendedores/ListarClientesPorVendedor");

                //var a = respusta.ListaClientes.ToString();
                var listaSalida = JsonConvert.DeserializeObject <List <ClienteRequest> >(JsonConvert.SerializeObject(respusta.ListaClientes).ToString());
                return(Json(listaSalida));
            }
            catch (Exception ex)
            {
                return(Json(false));
            }
        }
コード例 #10
0
        public async Task <ActionResult> Asignarvendedor(string id, string idsupervisor)
        {
            try
            {
                var super = new SupervisorRequest
                {
                    IdVendedor   = Convert.ToInt32(id),
                    IdSupervisor = Convert.ToInt32(idsupervisor)
                };

                if (!string.IsNullOrEmpty(id))
                {
                    var response = await ApiServicio.ObtenerElementoAsync(super,
                                                                          new Uri(WebApp.BaseAddress),
                                                                          "api/Supervisor/Asignarvendedor");

                    if (response.IsSuccess)
                    {
                        InicializarMensaje(null);
                        return(RedirectToAction("edit", new { id = idsupervisor }));
                    }
                }
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
            return(View());
        }
コード例 #11
0
        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));
            }
        }
コード例 #12
0
        private static Supervisor getSupervisor(SupervisorRequest supervisorRequest)
        {
            var userRequest = supervisorRequest.userRequest;
            var user        = new User(userRequest.Id, "", "", userRequest.password, "", new RolNull());
            var supervisor  = new Supervisor(user);

            supervisor.Id = supervisorRequest.guid;
            return(supervisor);
        }
コード例 #13
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));
            }
        }
コード例 #14
0
        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));
            }
        }
コード例 #15
0
        public SupervisorRequest Create(SupervisorRequest supervisorRequest)
        {
            SupervisorRequest newSupervisorRequest = new SupervisorRequest()
            {
                AdminId      = supervisorRequest.AdminId,
                GroupId      = supervisorRequest.GroupId,
                SupervisorId = supervisorRequest.SupervisorId,
                IsAccepted   = false
            };

            return(newSupervisorRequest);
        }
コード例 #16
0
        public void isValidPostFichaSupervision_badDataForPost_returnFalse(UserRequest userRequest, Guid idGuid)
        {
            var supervisor = new SupervisorRequest()
            {
                guid        = idGuid,
                userRequest = userRequest
            };

            var response = supervisor.isValidPostFichaSupervision();

            Assert.IsFalse(response);
        }
コード例 #17
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());
        }
コード例 #18
0
        public void isValidPost_badDataForPost_returnFalse(UserRequest userRequest, IList <LugarVisitaRequest> lugaresVisita, AuditoriaRequest auditoria)
        {
            var supervisor = new SupervisorRequest()
            {
                userRequest         = userRequest,
                lugarVisitaRequests = lugaresVisita,
                auditoriaRequest    = auditoria
            };

            var response = supervisor.isValidPost();

            Assert.IsFalse(response);
        }
コード例 #19
0
        public async Task <Response> InsertarSupervisor(SupervisorRequest supervisorRequest)
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    //var user = new  AspNetUsers();
                    //user.IdEmpresa = supervisorRequest.IdEmpresa;
                    //user.Identificacion = supervisorRequest.Identificacion;
                    //user.Apellidos = supervisorRequest.Apellidos;
                    //user.Nombres = supervisorRequest.Nombres;
                    //user.Direccion = supervisorRequest.Direccion;
                    //user.Telefono = supervisorRequest.Telefono;
                    //user.Email = supervisorRequest.Correo;
                    //user.UserName = supervisorRequest.Correo;
                    //user.PasswordHash = "123";
                    //db.AspNetUsers.Add(user);
                    //await db.SaveChangesAsync();
                    var super   = new Supervisor();
                    var gerente = db.Gerente.Where(x => x.AspNetUsers.IdEmpresa == supervisorRequest.IdEmpresa);
                    if (gerente != null)
                    {
                        super.IdGerente = gerente.FirstOrDefault().IdGerente;
                        super.IdUsuario = supervisorRequest.IdUsuario;
                        db.Supervisor.Add(super);
                    }
                    await db.SaveChangesAsync();

                    transaction.Commit();

                    return(new Response
                    {
                        IsSuccess = true,
                        Resultado = new SupervisorRequest {
                            IdSupervisor = super.IdSupervisor
                        },
                        Message = Mensaje.Satisfactorio
                    });
                }

                catch (Exception ex)
                {
                    transaction.Rollback();
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = Mensaje.Error,
                    });
                }
            }
        }
コード例 #20
0
ファイル: HomeController.cs プロジェクト: nvalle88/VentasWeb
        public async Task <ActionResult> Estadisticas()
        {
            try
            {
                InicializarMensaje("");
                SupervisorRequest supervisorRequest = new SupervisorRequest();
                int idEmpresaInt   = 0;
                var userWithClaims = (ClaimsPrincipal)User;
                var idEmpresa      = userWithClaims.Claims.First(c => c.Type == Constantes.Empresa).Value;


                idEmpresaInt = Convert.ToInt32(idEmpresa);
                supervisorRequest.IdEmpresa = idEmpresaInt;

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

                var userManager     = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));
                var idUsuarioActual = User.Identity.GetUserId();
                supervisorRequest.IdUsuario = idUsuarioActual;
                supervisorRequest.IdEmpresa = idEmpresaInt;
                //metodo buscar supervisor

                response = await ApiServicio.ObtenerElementoAsync(supervisorRequest,
                                                                  new Uri(WebApp.BaseAddress),
                                                                  "api/Vendedores/obtenerSupervisorPorIdUsuario");

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


                var estadisticoVendedorRequest = await ApiServicio.ObtenerElementoAsync1 <EstadisticoSupervisorRequest>(supervisorRequest,
                                                                                                                        new Uri(WebApp.BaseAddress),
                                                                                                                        "api/Compromiso/VerEstadisticosPorSupervisor");

                supervisorRequest.estadisticoSupervisorRequest = estadisticoVendedorRequest;
                return(View(supervisorRequest));
            }
            catch
            {
                InicializarMensaje(Mensaje.Excepcion);
                return(View());
            }
        }
コード例 #21
0
        public async Task <Response> obtenerGerentePorIdUsuario(SupervisorRequest supervisorRequest)
        {
            try
            {
                var gerente = await db.Gerente.Where(x => x.AspNetUsers.IdEmpresa == supervisorRequest.IdEmpresa && x.IdUsuario == supervisorRequest.IdUsuario).Select(x => new SupervisorRequest
                {
                    IdUsuario      = x.AspNetUsers.Id,
                    IdSupervisor   = x.IdGerente,
                    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();


                if (gerente == null)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = Mensaje.RegistroNoEncontrado
                    });
                }
                return(new Response
                {
                    IsSuccess = true,
                    Message = Mensaje.Satisfactorio,
                    Resultado = gerente
                });
            }
            catch (Exception ex)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Excepcion
                });
            }
        }
コード例 #22
0
        public async Task <ActionResult> Estadisticas()
        {
            try
            {
                InicializarMensaje("");
                SupervisorRequest supervisor   = new SupervisorRequest();
                var estadisticoVendedorRequest = await ApiServicio.ObtenerElementoAsync1 <EstadisticoSupervisorRequest>(supervisor,
                                                                                                                        new Uri(WebApp.BaseAddress),
                                                                                                                        "api/Compromiso/VerEstadisticos");

                supervisor.estadisticoSupervisorRequest = estadisticoVendedorRequest;
                return(View(supervisor));
            }
            catch
            {
                InicializarMensaje(Mensaje.Excepcion);
                return(View());
            }
        }
コード例 #23
0
        public async Task <List <SupervisorRequest> > ListarVendedores(SupervisorRequest supervisorRequest)
        {
            var super = db.Supervisor.Where(x => x.IdUsuario == supervisorRequest.IdUsuario).FirstOrDefault();
            var lista = await db.Vendedor.Where(m => m.IdSupervisor == super.IdSupervisor && m.AspNetUsers.Estado == 1 && m.AspNetUsers.IdEmpresa == supervisorRequest.IdEmpresa).Select(x => new SupervisorRequest
            {
                IdVendedor      = x.IdVendedor,
                IdUsuario       = x.AspNetUsers.Id,
                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,
                NombresApellido = x.AspNetUsers.Nombres + " " + x.AspNetUsers.Apellidos
            }).ToListAsync();


            return(lista);
        }
コード例 #24
0
        public async Task <SupervisorRequest> ListarVendedoresSupervisor(SupervisorRequest supervisorRequest)
        {
            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,
                    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      = supervisorRequest.IdEmpresa
                }

                                                           ).Where(x => x.IdSupervisor == supervisorRequest.IdSupervisor &&
                                                                   x.Estado == 1
                                                                   ).ToListAsync();

                supervisorRequest.ListaVendedores = listaVendedores;

                return(supervisorRequest);
            }
            catch (Exception ex)
            {
                return(supervisorRequest);
            }
        }
コード例 #25
0
        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());
            }
        }
コード例 #26
0
        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));
            }
        }
コード例 #27
0
        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));
            }
        }
コード例 #28
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));
        }
コード例 #29
0
        public BaseResultViewModel <string> CallSupervisor(CallSupervisorViewModel param, string user, int location)
        {
            var result = new BaseResultViewModel <string>
            {
                IsSuccess = false,
                Message   = "",
                Extra     = null
            };

            try
            {
                var getStatusProgress = _repository.GetAll <IntegrationOrderProgress>().Where(p => !p.IsArchived && p.Name.Contains("Supervisor", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
                if (getStatusProgress != null)
                {
                    //SupervisorRequest
                    var request = new SupervisorRequest()
                    {
                        Title               = param.SupervisorRequest.Title,
                        IsArchived          = false,
                        IsolatorId          = param.SupervisorRequest.IsolatorId,
                        LatestRequestStatus = RequestStatusEnum.Awaiting,
                        Priority            = param.SupervisorRequest.Priority,
                        CurrentOrderId      = param.IntegrationOrderComment.OrderId,
                        TypeId              = param.SupervisorRequest.TypeId,
                        RequestedBy         = user
                    };
                    request.SetCreateDetails(user);
                    _repository.SaveNew <SupervisorRequest>(request);

                    //Update progress status of IntegrationOrder
                    var findOrder = _repository.GetById <IntegrationOrder>(param.IntegrationOrderComment.OrderId);
                    findOrder.OrderLastProgressId = getStatusProgress.Id;
                    _repository.SaveExisting(findOrder);

                    //Save to tracker
                    var tracker = new IntegrationOrderTracking
                    {
                        IntegrationOrderId     = findOrder.Id,
                        OrderCurrentLocationId = location,
                        OrderLastProgressId    = findOrder.OrderLastProgressId,
                        Comment = param.IntegrationOrderComment.Comment
                    };
                    tracker.SetCreateDetails(user);
                    var saveTracking = _repository.SaveNew(tracker);

                    result.IsSuccess = true;
                    result.Message   = "Success: Call Supervisor";
                    return(result);
                }
                else
                {
                    result.Message = "No Call Supervisor status describe on database, please check database";
                    return(result);
                }
            }
            catch (Exception ex)
            {
                result.Extra = ex.Message;
            }

            return(result);
        }
コード例 #30
0
        public async Task <ActionResult> Edit(string id, SupervisorRequest supervisorRequest)
        {
            Response             response = new Response();
            ApplicationDbContext db       = new ApplicationDbContext();
            //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)
            {
                var super = new SupervisorRequest
                {
                    IdSupervisor = Convert.ToInt32(id)
                };
                response = await ApiServicio.ObtenerElementoAsync(super,
                                                                  new Uri(WebApp.BaseAddress),
                                                                  "api/Supervisor/obtenerSupervisor");

                var MyUser = JsonConvert.DeserializeObject <SupervisorRequest>(response.Resultado.ToString());
                if (MyUser.Correo != supervisorRequest.Correo)
                {
                    InicializarMensaje(Mensaje.ExisteCorreo);
                    return(View(response.Resultado));
                }
            }

            //VALIDA SI EXITE LA IDENTIFICACION AL CREAR
            var ExisteUsuario = await ApiServicio.ObtenerElementoAsync1 <SupervisorRequest>(supervisorRequest,
                                                                                            new Uri(WebApp.BaseAddress),
                                                                                            "api/Supervisor/BuscarSupervisorPorEmpresaEIdentificacion");

            if (ExisteUsuario != null)
            {
                var super = new SupervisorRequest
                {
                    IdSupervisor = Convert.ToInt32(id)
                };
                response = await ApiServicio.ObtenerElementoAsync(super,
                                                                  new Uri(WebApp.BaseAddress),
                                                                  "api/Supervisor/obtenerSupervisor");

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

                if (MyUser.Identificacion != supervisorRequest.Identificacion)
                {
                    InicializarMensaje(Mensaje.ExisteIdentificacionUsuario);
                    return(View(response.Resultado));
                }
            }
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));
            var user        = db.Users.Find(supervisorRequest.IdUsuario);

            user.UserName       = supervisorRequest.Correo;
            user.Email          = supervisorRequest.Correo;
            user.Identificacion = supervisorRequest.Identificacion;
            user.Apellidos      = supervisorRequest.Apellidos;
            user.Nombres        = supervisorRequest.Nombres;
            user.Direccion      = supervisorRequest.Direccion;
            user.Telefono       = supervisorRequest.Telefono;
            var result = await userManager.UpdateAsync(user);

            db.SaveChanges();

            if (result != null)
            {
                return(RedirectToAction("Index"));
            }
            return(View());
        }