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