Beispiel #1
0
        public ActionResult CriarMaterial(Materiais material)
        {
            material.selecionado = false;
            if (ModelState.IsValid)
            {
                db.Materiais.Add(material);
                db.SaveChanges();

                return(RedirectToAction("Materiais", "Administrador"));
            }

            return(View(material));
        }
Beispiel #2
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));
        }
        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));
        }
Beispiel #4
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 }));
        }