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)); }
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)); }
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 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)); }
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)); }
public ActionResult DeletarColeta(int id) { Coletas c = db.Coletas.Find(id); db.Coletas.Remove(c); db.SaveChanges(); return(RedirectToAction("Index", "Cooperativas")); }
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 })); }
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)); }
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 })); }
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 })); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }