コード例 #1
0
        public ActionResult AceitarValor(int coletaId)
        {
            string          clienteId = User.Identity.GetUserId();
            ClientesColetas cc        = db.ClientesColetas.Find(coletaId, clienteId);


            if (cc.coletado != "A")
            {
                string mensagem = "Coleta já finalizada!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            cc.coletado = "S";
            decimal total = 0, saldoAnt = 0;

            foreach (var mc in cc.MateriaisColetados)
            {
                total = total + mc.valorCompra.Value;
            }



            Carteiras carteira = new Carteiras()
            {
                clienteId = clienteId,
                dataUltimaMovimentacao = DateTime.Now,
                saldo = total
            };

            db.Carteiras.Add(carteira);
            db.SaveChanges();

            return(RedirectToAction("Carteira", "Clientes"));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        public ActionResult DetalheCliente(string id, int?coletaId)
        {
            if (id == null)
            {
                string mensagem = "Id do cliente não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

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

            ClientesColetas cc = db.ClientesColetas.Find(coletaId, id);

            return(View(cc));
        }
コード例 #4
0
        public ActionResult DetalheCliente(string clienteId, int?coletaId, string urlRetorno)
        {
            if (clienteId == null)
            {
                string mensagem = "Id do cliente não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            if (coletaId == null)
            {
                string mensagem = "Id da coleta não informado!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            ClientesColetas c = db.ClientesColetas.Find(coletaId, clienteId);

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

            ViewBag.retorno = @Url.Action("Index", "Funcionarios");
            if (urlRetorno != null)
            {
                ViewBag.retorno = @Url.Action("DetalheColeta", "Funcionarios", new { coletaId = coletaId, aba = 1 });
            }

            DetalheClienteViewModel model = new DetalheClienteViewModel()
            {
                cliente       = c.Clientes,
                coleta        = c.Coletas,
                materiais     = c.MateriaisColetados.ToList(),
                clienteColeta = c
            };

            return(View(model));
        }
コード例 #5
0
        public ActionResult RecusarValor(int coletaId)
        {
            string          clienteId = User.Identity.GetUserId();
            ClientesColetas cc        = db.ClientesColetas.Find(coletaId, clienteId);

            if (cc.coletado != "A")
            {
                string mensagem = "Coleta já finalizada!";
                return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem }));
            }

            cc.coletado = "A";

            foreach (var mc in cc.MateriaisColetados)
            {
                mc.coletado    = "A";
                mc.valorCompra = null;
                mc.quantidade  = null;
            }

            db.SaveChanges();
            return(RedirectToAction("Index", "Home"));
        }
コード例 #6
0
        public ActionResult DeletarColeta(int coletaId)
        {
            if (cliente == null)
            {
                string clienteId = User.Identity.GetUserId();
                cliente = db.Clientes.Find(clienteId);
            }

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

            db.MateriaisColetados.RemoveRange(coleta.MateriaisColetados); //Substituídos pelas linhas abaixo
            db.ClientesColetas.Remove(coleta);
            db.SaveChanges();


            //ClientesColetas clienteColeta = cliente.ClientesColetas.SingleOrDefault(c => c.coletaId == coletaId);

            //db.MateriaisColetados.RemoveRange(clienteColeta.Coletas.MateriaisColetados);
            //db.ClientesColetas.Remove(clienteColeta);
            //db.SaveChanges();

            return(RedirectToAction("Index", "Clientes"));
        }
コード例 #7
0
        public ActionResult DeletarColeta(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);
            }

            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 }));
            }

            return(View(coleta));
        }
コード例 #8
0
        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));
        }
コード例 #9
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 }));
        }