// // GET: /Fechamento/ public ActionResult Index() { Fechamento fechamento = new Fechamento(); try { PedidoService pedidoService = new PedidoService(); fechamento.Pedidos = pedidoService.ListPedidosAbertos(false); fechamento.BebidasSugeridas = pedidoService.ListBebidasSugeridas(); } catch (Exception ex) { ViewBag.Error = ex.Message; } fechamento = InicializaTela(fechamento); return View(fechamento); }
public ActionResult Index(Fechamento fechamento) { try { if (ModelState.IsValid) { // Carrega os pedidos em aberto PedidoService pedidoService = new PedidoService(); fechamento.Pedidos = pedidoService.ListPedidosAbertos(true); // Carrega os parãmetros ParametroService parametroService = new ParametroService(); fechamento.Parametro = parametroService.Find(); // Fecha o pedido FechamentoService fechamentoService = new FechamentoService(); fechamentoService.FechaPedido(fechamento); // Envia os emails fechamentoService.EnviaEmailContato(fechamento); fechamentoService.EnviaEmailUsuarios(fechamento); TempData["message"] = "Pedido finalizado com sucesso - Valor total R$ " + String.Format("{0:0.00}", fechamento.Pedidos.Sum(p => p.Valor)); return RedirectToAction("Index", "Home"); } } catch (Exception ex) { ViewBag.Error = ex.Message; } fechamento = InicializaTela(fechamento); return View(); }
private Fechamento InicializaTela(Fechamento fechamento) { BebidaService bebidaService = new BebidaService(); fechamento.BebidasDisponiveis = bebidaService.List(); using (Context db = new Context()) { // DropDownList Bebida if (fechamento.BebidaId != 0) ViewBag.Bebidas = new SelectList(db.Bebida.ToList(), "Id", "Nome", fechamento.BebidaId); else ViewBag.Bebidas = new SelectList(db.Bebida.ToList(), "Id", "Nome"); } return fechamento; }
public void EnviaEmailContato(Fechamento fechamento) { string toMailAddress = fechamento.Parametro.EmailContato; string toContact = fechamento.Parametro.NomeContato; decimal valorTotalPedido = 0; StringBuilder message = new StringBuilder(); message.Append("Olá " + toContact + ", \n\n"); if (fechamento.PossuiTeleEntrega) { message.Append("Segue pedido do pessoal da Voiza para Tele-Entrega na Voiza:\n\n"); message.Append("FORMA PAGAMENTO: \n Visa e Visa Vale \n\n"); message.Append("TELE ENTREGA: R$" + fechamento.Parametro.ValorTeleEntrega + "\n\n"); valorTotalPedido += (decimal)fechamento.Parametro.ValorTeleEntrega; if (fechamento.PossuiBebida) { message.Append("BEBIDAS:\n"); BebidaService bebidaService = new BebidaService(); for (short i = 0; i < fechamento.PedidoIdBebidas.Length; i++) { if (fechamento.PedidoQuantidadeBebidas[i] > 0) { message.Append(" - " + fechamento.PedidoQuantidadeBebidas[i] + " " + bebidaService.GetName(fechamento.PedidoIdBebidas[i]) + " - R$" + fechamento.PedidoQuantidadeBebidas[i] * bebidaService.GetValor(fechamento.PedidoIdBebidas[i]) + "\n"); valorTotalPedido += fechamento.PedidoQuantidadeBebidas[i] * bebidaService.GetValor(fechamento.PedidoIdBebidas[i]); } } message.Append("\n"); } message.Append("LANCHES: \n\n"); foreach (var pedido in fechamento.Pedidos) { message.Append(pedido.Usuario.Nome.ToUpper() + " -> " + pedido.Lanche.Nome.ToUpper() + " - R$" + pedido.ValorLanche + "\n"); foreach (Opcional opcional in pedido.Opcionais) message.Append(" - Com " + opcional.Nome + "\n"); if (!String.IsNullOrWhiteSpace(pedido.Observacao)) message.Append(" Obs: " + pedido.Observacao + "\n"); valorTotalPedido += (decimal)pedido.ValorLanche; message.Append("\n\n"); } message.Append("VALOR TOTAL DO PEDIDO: R$" + valorTotalPedido + "\n\n"); message.Append("Muito Obrigado!\n\n"); message.Append("*** NÃO RESPONDER ESTE EMAIL - MENSAGEM GERADA AUTOMATICAMENTE - SextaNerdApplication ***"); //Envia email Mail.SendMail(toMailAddress, "Pedido Voiza - Tele-Entrega", message.ToString()); } else { message.Append("Segue pedido do pessoal da Voiza para comer no Restaurante:\n\n"); message.Append("LANCHES: \n\n"); foreach (var pedido in fechamento.Pedidos) { message.Append(pedido.Usuario.Nome.ToUpper() + " -> " + pedido.Lanche.Nome.ToUpper() + "\n"); foreach (Opcional opcional in pedido.Opcionais) message.Append(" - Com " + opcional.Nome + "\n"); if (!String.IsNullOrWhiteSpace(pedido.Observacao)) message.Append(" Obs: " + pedido.Observacao + "\n"); valorTotalPedido += (decimal)pedido.ValorLanche; message.Append("\n\n"); } message.Append("Muito Obrigado!\n\n"); message.Append("*** NÃO RESPONDER ESTE EMAIL - MENSAGEM GERADA AUTOMATICAMENTE - SextaNerdApplication ***"); //Envia email Mail.SendMail(toMailAddress, "Pedido Voiza - Restaurante", message.ToString()); } }
public void FechaPedido(Fechamento fechamento) { // Calcula o valor da tele-entrega if (fechamento.PossuiTeleEntrega) { decimal parcelaTeleEntrega = Decimal.Round((fechamento.Parametro.ValorTeleEntrega / fechamento.Pedidos.Count()), 2); foreach (Pedido pedido in fechamento.Pedidos) { pedido.ValorEntrega = parcelaTeleEntrega; } // Calcula o valor das bebidas if (fechamento.PossuiBebida) { BebidaService bebidaService = new BebidaService(); decimal totalBebida = 0; decimal parcelaBebida; for (short i = 0; i < fechamento.PedidoIdBebidas.Length; i++) { totalBebida += fechamento.PedidoQuantidadeBebidas[i] * bebidaService.GetValor(fechamento.PedidoIdBebidas[i]); } parcelaBebida = Decimal.Round((totalBebida / fechamento.Pedidos.Where(p => p.BebidaId != null).Count()), 2); foreach (Pedido pedido in fechamento.Pedidos) { if(pedido.BebidaId != null) pedido.ValorBebida = parcelaBebida; } } } // Atualiza o valor de todos os pedidos em aberto PedidoService pedidoService = new PedidoService(); foreach (Pedido pedido in fechamento.Pedidos) { pedido.Valor = pedido.Valor + (pedido.ValorBebida != null ? pedido.ValorBebida.Value : 0) + (pedido.ValorEntrega != null ? pedido.ValorEntrega.Value : 0); // Marca o pedido como atendido pedido.Atendido = 1; pedidoService.UpdateSimple(pedido); } }
public void EnviaEmailUsuarios(Fechamento fechamento) { UsuarioService userService = new UsuarioService(); foreach (var pedido in fechamento.Pedidos) { string toMailAddress = pedido.Usuario.Email; StringBuilder message = new StringBuilder(); message.Append("Eea Tchê!\n\n"); message.Append("O pedido do SextaNerd já foi feito!\n\n"); message.Append("Lanche escolhido:\n\n"); message.Append(" * " + pedido.Lanche.Nome.ToUpper() + "\n\n"); message.Append(" Opcionais escolhidos:\n\n"); foreach (Opcional opcional in pedido.Opcionais) { message.Append(" * Com " + opcional.Nome + "\n"); } if (!String.IsNullOrWhiteSpace(pedido.Observacao)) { message.Append(" * " + pedido.Observacao + "\n"); } message.Append("\n"); if(fechamento.PossuiTeleEntrega) message.Append("VALOR REFERENTE A ENTREGA: R$" + String.Format("{0:0.00}", pedido.ValorEntrega) + "\n\n"); if (pedido.ValorBebida > 0) message.Append("VALOR REFERENTE A BEBIDA: R$" + String.Format("{0:0.00}", pedido.ValorBebida) + "\n\n"); message.Append("VALOR DO LANCHE: R$" + String.Format("{0:0.00}", pedido.ValorLanche) + "\n\n"); message.Append("VALOR TOTAL: R$" + String.Format("{0:0.00}", pedido.Valor) + "\n\n"); message.Append("Obrigado!\n\n"); message.Append("*** NÃO RESPONDER ESTE EMAIL - MENSAGEM GERADA AUTOMATICAMENTE - SextaNerdApplication ***"); Mail.SendMail(toMailAddress, "Seu pedido Nrº " + userService.GetNumeroTotalLancheByUsuario(pedido.Usuario.Id) + " da SextaNerd foi fechado", message.ToString()); } }