Beispiel #1
0
        public ActionResult AssociarCaminhoes(AssociarCaminhaoViewModel model)
        {
            Coletas coleta = db.Coletas.Find(model.coletaId);
            bool    achou  = false;

            foreach (var mc in model.caminhoes)
            {
                if (mc.selecionado)
                {
                    achou = true;
                    Caminhoes c = db.Caminhoes.Find(mc.caminhaoId);
                    coleta.Caminhoes.Add(c);
                }
            }

            if (achou)
            {
                db.SaveChanges();
                return(RedirectToAction("DetalheColeta", "Cooperativas", new { id = model.coletaId, aba = 2 }));
            }

            ViewBag.aviso = "Selecione pelo menos um caminhão!";

            return(View(model));
        }
Beispiel #2
0
        public ActionResult EditarColeta(ColetaViewModel model)
        {
            if (ModelState.IsValid)
            {
                Coletas c = db.Coletas.Find(model.id);
                c.horaAgendada = model.data;
                c.horaAgendada = c.horaAgendada.Value.AddHours(model.hora);

                db.Entry(c).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index", "Cooperativas"));
            }

            #region ValidaçãoFalsa
            var horaList = new List <int>();
            for (int i = 8; i <= 18; i++)
            {
                horaList.Add(i);
            }

            ViewBag.horas = horaList.Select(h => new SelectListItem
            {
                Value = h.ToString(),
                Text  = h < 10 ? ("0" + h + ":00 hs") : (h + ":00 hs")
            });
            #endregion

            return(View(model));
        }
        public ActionResult AgendarColeta()
        {
            if (cliente == null)
            {
                string id = User.Identity.GetUserId();
                cliente = db.Clientes.Find(id);
            }

            var coletas = cliente.Cooperativas.Coletas
                          .Where(x => x.coletado == "A" && x.horaAgendada > DateTime.Now)
                          .OrderBy(x => x.horaAgendada).ToList();

            foreach (var cc in cliente.ClientesColetas)
            {
                Coletas c = coletas.Find(x => x.coletaId == cc.coletaId);
                coletas.Remove(c);
            }

            ViewBag.horario = coletas.Select(h => new SelectListItem
            {
                Value = h.coletaId.ToString(),
                Text  = h.horaAgendada.Value.ToShortDateString() + " - " + h.horaAgendada.Value.ToShortTimeString()
            });

            var materiaisCoop = cliente.Cooperativas.MateriaisComercializados.ToList();

            AgendamentoViewModel avm = new AgendamentoViewModel();

            avm.materiais = materiaisCoop.Select(m => m.Materiais).ToList();

            return(View(avm));
        }
Beispiel #4
0
        public ActionResult CriarColeta(ColetaViewModel model)
        {
            if (ModelState.IsValid)
            {
                Coletas c      = new Coletas();
                string  idCoop = User.Identity.GetUserId();

                c.horaAgendada  = model.data.AddHours(model.hora);
                c.quantidade    = null;
                c.coletado      = "A";
                c.cooperativaId = idCoop;

                db.Coletas.Add(c);
                db.SaveChanges();

                return(RedirectToAction("Index", "Cooperativas"));
            }

            #region ValidaçãoFalsa
            var horaList = new List <int>();
            for (int i = 8; i <= 18; i++)
            {
                horaList.Add(i);
            }

            ViewBag.horas = horaList.Select(h => new SelectListItem
            {
                Value = h.ToString(),
                Text  = h < 10 ? ("0" + h + ":00 hs") : (h + ":00 hs")
            });
            #endregion
            return(View(model));
        }
Beispiel #5
0
        public ActionResult DeletarColeta(int?id)
        {
            if (id == null)
            {
                string mensagem = "Id da coleta não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            Coletas c = db.Coletas.Find(id);

            if (c == null)
            {
                string mensagem = "Coleta não encontrada!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            if (c.ClientesColetas.Count() > 0)
            {
                if (c.coletado == "F")
                {
                    ViewBag.Aviso = "Atenção: Coleta já finalizada!";
                }
                else
                {
                    ViewBag.Aviso = "Atenção: a coleta já possui cliente(s)!";
                }
            }

            return(View(c));
        }
        public ActionResult EditarColeta(int?coletaId)
        {
            if (coletaId == null)
            {
                string mensagem = "Id da coleta não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            if (cliente == null)
            {
                string id = User.Identity.GetUserId();
                cliente = db.Clientes.Find(id);
            }

            var coletas = cliente.Cooperativas.Coletas
                          .Where(x => x.coletado == "A" && x.horaAgendada > DateTime.Now)
                          .OrderBy(x => x.horaAgendada).ToList();

            foreach (var cc in cliente.ClientesColetas)
            {
                Coletas c = coletas.Find(x => x.coletaId == cc.coletaId && x.coletaId != coletaId);
                coletas.Remove(c);
            }

            ViewBag.horario = coletas.Select(h => new SelectListItem
            {
                Value = h.coletaId.ToString(),
                Text  = h.horaAgendada.Value.ToShortDateString() + " - " + h.horaAgendada.Value.ToShortTimeString()
            });

            ClientesColetas coleta = cliente.ClientesColetas.SingleOrDefault(c => c.coletaId == coletaId);

            if (coleta == null)
            {
                string mensagem = "Coleta não encontrada!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            var matCliente = coleta.MateriaisColetados.Select(m => m.Materiais).ToList();

            var materiaisCoop = cliente.Cooperativas.MateriaisComercializados.Select(m => m.Materiais).ToList();

            foreach (var item in materiaisCoop)
            {
                if (matCliente.Contains(item))
                {
                    item.selecionado = true;
                }
            }

            AgendamentoViewModel avm = new AgendamentoViewModel();

            avm.coletaId     = coletaId.Value;
            avm.novoColetaId = coletaId.Value;
            avm.materiais    = materiaisCoop.ToList();

            return(View(avm));
        }
Beispiel #7
0
        public ActionResult RotaColeta(int?coletaId)
        {
            if (coletaId == null)
            {
                string mensagem = "Id da coleta não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            Coletas coleta = db.Coletas.Find(coletaId);

            ViewBag.retorno = @Url.Action("Index", "Funcionarios");

            if (funcionario == null)
            {
                string id = User.Identity.GetUserId();
                funcionario = db.Funcionarios.Find(id);
            }

            Cooperativas coop = funcionario.Cooperativas;

            List <ClientesColetas> clientes = coleta.ClientesColetas.Where(x => x.coletado == "A").ToList();

            Coordenada[] nClientesCoord = new Coordenada[clientes.Count()];
            int          i = 0;

            foreach (var c in clientes)
            {
                DbGeometry coord = c.Clientes.enderecoCoordenada;
                nClientesCoord [i] = new Coordenada()
                {
                    latitude  = coord.YCoordinate.ToString().Replace(",", "."),
                    longitude = coord.XCoordinate.ToString().Replace(",", ".")
                };
                i++;
            }

            RotasViewModel model = new RotasViewModel()
            {
                cooperativaCoord = new Coordenada()
                {
                    latitude  = coop.enderecoCoordenada.YCoordinate.ToString().Replace(",", "."),
                    longitude = coop.enderecoCoordenada.XCoordinate.ToString().Replace(",", ".")
                },
                clientesCoord = nClientesCoord
            };

            if (model.clientesCoord.Count() > 0)
            {
                model.faltaCliente = true;
            }
            else
            {
                model.faltaCliente = false;
            }

            return(View(model));
        }
Beispiel #8
0
        public ActionResult DeletarColeta(int id)
        {
            Coletas c = db.Coletas.Find(id);

            db.Coletas.Remove(c);
            db.SaveChanges();

            return(RedirectToAction("Index", "Cooperativas"));
        }
Beispiel #9
0
        public ActionResult DesassociarFuncionario(string funcionarioId, int coletaId)
        {
            Coletas c = db.Coletas.Find(coletaId);

            if (c != null)
            {
                Funcionarios f = c.Funcionarios.Where(x => x.funcionarioId == funcionarioId).SingleOrDefault();
                c.Funcionarios.Remove(f);
                db.SaveChanges();
            }
            return(RedirectToAction("DetalheColeta", "Cooperativas", new { id = coletaId, aba = 1 }));
        }
Beispiel #10
0
        public ActionResult EditarColeta(int?id)
        {
            if (id == null)
            {
                string mensagem = "Id da coleta não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            Coletas c = db.Coletas.Find(id);

            if (c == null)
            {
                string mensagem = "Coleta não encontrada!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            if (c.ClientesColetas.Count() > 0)
            {
                if (c.coletado == "F")
                {
                    ViewBag.Aviso = "Atenção: Coleta já finalizada!";
                }
                else
                {
                    ViewBag.Aviso = "Atenção: a coleta já possui cliente(s)!";
                }
            }

            ColetaViewModel cvm = new ColetaViewModel();

            cvm.id     = c.coletaId;
            cvm.idCoop = c.cooperativaId;
            DateTime d = c.horaAgendada.Value;

            cvm.data = new DateTime(d.Year, d.Month, d.Day);
            cvm.hora = c.horaAgendada.Value.Hour;

            var horaList = new List <int>();

            for (int i = 8; i <= 18; i++)
            {
                horaList.Add(i);
            }

            ViewBag.horas = horaList.Select(h => new SelectListItem
            {
                Value = h.ToString(),
                Text  = h < 10 ? ("0" + h + ":00 hs") : (h + ":00 hs")
            });

            return(View(cvm));
        }
Beispiel #11
0
        public ActionResult DesassociarCaminhao(int caminhaoId, int?coletaId)
        {
            Coletas coleta = db.Coletas.Find(coletaId);

            if (coleta != null)
            {
                Caminhoes c = coleta.Caminhoes.Where(x => x.caminhaoId == caminhaoId).SingleOrDefault();
                coleta.Caminhoes.Remove(c);
                db.SaveChanges();
            }

            return(RedirectToAction("DetalheColeta", "Cooperativas", new { id = coletaId, aba = 2 }));
        }
Beispiel #12
0
        public ActionResult FinalizarColeta(int?coletaId)
        {
            if (coletaId == null)
            {
                string mensagem = "Id da coleta não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            Coletas c = db.Coletas.Find(coletaId);

            if (c == null)
            {
                string mensagem = "Coleta não encontrada!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            List <Notificacoes> notificacoes = new List <Notificacoes>();

            foreach (var cc in c.ClientesColetas)
            {
                if (cc.coletado == "A")
                {
                    cc.coletado = "N";
                    foreach (var m in cc.MateriaisColetados)
                    {
                        m.coletado = "N";
                    }
                }

                Notificacoes n = new Notificacoes()
                {
                    clienteId     = cc.Clientes.clienteId,
                    coletaId      = c.coletaId,
                    cooperativaId = c.cooperativaId,
                    dataHorario   = DateTime.Now,
                    descricao     = "Coleta do dia " + c.horaAgendada.Value.ToShortDateString() +
                                    " - " + c.horaAgendada.Value.ToShortTimeString() + " foi finalizada.",
                    ativa = true,
                    tipo  = "A"
                };
                notificacoes.Add(n);
            }

            c.coletado = "F";
            db.Notificacoes.AddRange(notificacoes);
            db.SaveChanges();

            return(RedirectToAction("DetalheColeta", "Cooperativas", new { id = coletaId }));
        }
Beispiel #13
0
        public ActionResult DetalheColeta(int?coletaId)
        {
            if (coletaId == null)
            {
                string mensagem = "Id da coleta não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            Coletas c = db.Coletas.Find(coletaId);

            if (c == null)
            {
                string mensagem = "Coleta não encontrada!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }


            return(View(c));
        }
Beispiel #14
0
        public ActionResult AssociarCaminhoes(int?coletaId)
        {
            if (coletaId == null)
            {
                string mensagem = "Id da coleta não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            if (cooperativa == null)
            {
                string id = User.Identity.GetUserId();
                cooperativa = db.Cooperativas.Find(id);
            }

            var     caminhoesCoop = cooperativa.Caminhoes.ToList();
            var     caminhoes     = new List <CaminhaoColetaViewModel>();
            Coletas coleta        = cooperativa.Coletas.Where(x => x.coletaId == coletaId.Value).SingleOrDefault();

            foreach (var c in caminhoesCoop)
            {
                if (!coleta.Caminhoes.Contains(c))
                {
                    caminhoes.Add(new CaminhaoColetaViewModel()
                    {
                        caminhaoId  = c.caminhaoId,
                        placa       = c.placa,
                        descricao   = c.descricao,
                        selecionado = false
                    });
                }
            }

            AssociarCaminhaoViewModel model = new AssociarCaminhaoViewModel()
            {
                coletaId  = coletaId.Value,
                caminhoes = caminhoes
            };

            ViewBag.retorno = @Url.Action("DetalheColeta", "Cooperativas", new { id = coletaId, aba = 2 });

            return(View(model));
        }
Beispiel #15
0
        public ActionResult AssociarFuncionario(int?coletaId)
        {
            if (coletaId == null)
            {
                string mensagem = "Id da coleta não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            if (cooperativa == null)
            {
                string id = User.Identity.GetUserId();
                cooperativa = db.Cooperativas.Find(id);
            }

            var     funcionariosCoop = cooperativa.Funcionarios.ToList();
            var     funcionarios     = new List <FuncionarioColetaViewModel>();
            Coletas c = db.Coletas.Find(coletaId);

            foreach (var f in funcionariosCoop)
            {
                if (!c.Funcionarios.Contains(f))
                {
                    funcionarios.Add(new FuncionarioColetaViewModel()
                    {
                        funcionarioId = f.funcionarioId,
                        nome          = f.nome,
                        selecionado   = false
                    });
                }
            }

            AssociarFuncionarioViewModel model = new AssociarFuncionarioViewModel()
            {
                coletaId     = coletaId.Value,
                funcionarios = funcionarios
            };

            ViewBag.retorno = @Url.Action("DetalheColeta", "Cooperativas", new { id = coletaId, aba = 1 });

            return(View(model));
        }
Beispiel #16
0
        public ActionResult DetalheColeta(int?id, int?aba)
        {
            if (id == null)
            {
                string mensagem = "Id da coleta não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            Coletas c = db.Coletas.Find(id);

            if (c == null)
            {
                string mensagem = "Coleta não encontrada!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            if (aba.HasValue)
            {
                ViewBag.aba = aba.Value;
            }

            return(View(c));
        }
Beispiel #17
0
        public ActionResult AssociarFuncionario(AssociarFuncionarioViewModel model)
        {
            Coletas c     = db.Coletas.Find(model.coletaId);
            bool    achou = false;

            foreach (var mf in model.funcionarios)
            {
                if (mf.selecionado)
                {
                    achou = true;
                    Funcionarios f = db.Funcionarios.Find(mf.funcionarioId);
                    c.Funcionarios.Add(f);
                }
            }

            if (achou)
            {
                db.SaveChanges();
                return(RedirectToAction("DetalheColeta", "Cooperativas", new { id = model.coletaId, aba = 1 }));
            }

            ViewBag.aviso = "Selecione pelo menos um funcionário!";
            return(View(model));
        }
Beispiel #18
0
        public ActionResult DetalheCliente(DetalheClienteViewModel model)
        {
            string          clienteId  = model.cliente.clienteId;
            ClientesColetas cc         = db.ClientesColetas.Find(model.coleta.coletaId, clienteId);
            decimal         saldoTotal = 0;
            bool            achou      = false;

            foreach (var mc in model.materiais)
            {
                MateriaisColetados m = cc.MateriaisColetados.Where(x => x.materialId == mc.materialId &&
                                                                   x.coletaId == mc.coletaId &&
                                                                   x.clienteId == mc.clienteId).SingleOrDefault();
                if (mc.quantidade > 0)
                {
                    achou        = true;
                    m.quantidade = mc.quantidade;
                    m.coletado   = "S";
                    if (model.cliente.tipo == "V")
                    {
                        MateriaisComercializados materialCoop = db.MateriaisComercializados.Find(m.materialId, cc.Clientes.cooperativaId);
                        m.valorCompra = materialCoop.valorRevenda.Value * (decimal)mc.quantidade.Value;
                        saldoTotal    = saldoTotal + m.valorCompra.Value;
                    }
                    else
                    {
                        m.valorCompra = 0;
                    }
                }
                else
                {
                    m.quantidade  = 0;
                    m.valorCompra = 0;
                    m.coletado    = "N";
                }
            }

            if (achou)
            {
                if (model.cliente.tipo == "V")
                {
                    if (funcionario == null)
                    {
                        string id = User.Identity.GetUserId();
                        funcionario = db.Funcionarios.Find(id);
                    }
                    Coletas      coleta = db.Coletas.Find(model.coleta.coletaId);
                    Notificacoes n      = new Notificacoes()
                    {
                        clienteId     = model.cliente.clienteId,
                        coletaId      = model.coleta.coletaId,
                        cooperativaId = funcionario.cooperativaId,
                        dataHorario   = DateTime.Now,
                        descricao     = "Coleta do dia " + coleta.horaAgendada.Value.ToShortDateString() +
                                        " - " + coleta.horaAgendada.Value.ToShortTimeString() + " foi relizada. O valor total a receber é de R$ " + saldoTotal,
                        ativa = true,
                        tipo  = "C"
                    };

                    db.Notificacoes.Add(n);
                }
                else
                {
                    cc.coletado = "S";
                }
            }
            else
            {
                cc.coletado = "N";
            }

            cc.horaDaColeta = DateTime.Now;
            db.SaveChanges();

            return(RedirectToAction("DetalheColeta", "Funcionarios", new { coletaId = model.coleta.coletaId }));
        }
        public ActionResult AgendarColeta(AgendamentoViewModel model)
        {
            string clienteId = User.Identity.GetUserId();
            List <MateriaisColetados> lista = new List <MateriaisColetados>();
            bool achou = false;

            foreach (Materiais m in model.materiais)
            {
                if (m.selecionado)
                {
                    achou = true;
                    lista.Add(new MateriaisColetados()
                    {
                        materialId = m.materialId, coletado = "A"
                    });
                }
            }

            if (!achou)
            {
                ViewBag.erro = "Marque pelo menos um item!";
            }
            else if (ModelState.IsValid)
            {
                string          idCliente = User.Identity.GetUserId();
                ClientesColetas cc        = new ClientesColetas()
                {
                    clienteId    = idCliente,
                    coletaId     = model.coletaId,
                    coletado     = "A",
                    horaDaColeta = null
                };

                db.ClientesColetas.Add(cc);

                foreach (MateriaisColetados m in lista)
                {
                    m.clienteId = idCliente;
                    m.coletaId  = model.coletaId;
                    db.MateriaisColetados.Add(m);
                }

                db.SaveChanges();

                return(RedirectToAction("Index", "Clientes"));
            }


            #region Validação Falha
            if (cliente == null)
            {
                string id = User.Identity.GetUserId();
                cliente = db.Clientes.Find(id);
            }
            var coletas = cliente.Cooperativas.Coletas
                          .Where(x => x.coletado == "A" && x.horaAgendada > DateTime.Now)
                          .OrderBy(x => x.horaAgendada).ToList();

            foreach (var cc in cliente.ClientesColetas)
            {
                Coletas c = coletas.Find(x => x.coletaId == cc.coletaId);
                coletas.Remove(c);
            }

            ViewBag.horario = coletas.Select(h => new SelectListItem
            {
                Value = h.coletaId.ToString(),
                Text  = h.horaAgendada.Value.ToShortDateString() + " - " + h.horaAgendada.Value.ToShortTimeString()
            });

            #endregion
            return(View(model));
        }