public ActionResult cambioCategoria(int idCategoria, int idLocal = -1, int ordenar = 2) { ChanguitoCompleta completo = new ChanguitoCompleta(); crearChango(completo, idCategoria, idLocal, ordenar); DateTime ProximaEntrea = ApiProductosController.GetNextWeekday(); completo.proxFecha = ProximaEntrea.ToString("dd/MM/yyyy"); return(Json(new { lista = completo.changuito })); }
public ActionResult Carrito(int idCategoria = -1, int idLocal = -1) { ChanguitoCompleta completo = new ChanguitoCompleta(); crearChango(completo, idCategoria, idLocal); DateTime ProximaEntrea = ApiProductosController.GetNextWeekday(); completo.proxFecha = ProximaEntrea.ToString("dd/MM/yyyy"); return(View(completo)); }
public ActionResult EnregarPedido(int idCompra, bool entregado, int[] ids = null, int[] noUsados = null, string[] vecinxs = null) { TanoNEEntities ctx = new TanoNEEntities(); Vecinos vecino = ctx.Vecinos.FirstOrDefault(a => a.correo == User.Identity.Name); EstadosCompra nopaso = ctx.EstadosCompra.FirstOrDefault(a => a.codigo == 5); EstadosCompra entre = ctx.EstadosCompra.FirstOrDefault(a => a.codigo == 3); EstadosCompra confirmado = ctx.EstadosCompra.FirstOrDefault(a => a.codigo == 2); Compras compra = ctx.Compras.FirstOrDefault(a => a.idCompra == idCompra && a.estadoId == confirmado.idEstadoCompra); if (ids == null) { compra.EstadosCompra = entregado ? entre : nopaso; } else { var productos = compra.CompraProducto; for (int x = 0; x < productos.Count; x++) { var producto = productos.ElementAt(x); int posicion = Array.IndexOf(ids, producto.productoId); if (noUsados[posicion] > 0) { //Vino menos cantidad if (producto.cantidad - noUsados[posicion] == 0) { ctx.CompraProducto.Remove(producto); } else { producto.cantidad = producto.cantidad - noUsados[posicion]; } } if (!string.IsNullOrEmpty(vecinxs[posicion])) { //REUBICADO A UN VEXINX var arrayvecino = vecinxs[posicion].Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList().GroupBy(a => a); foreach (var idVecinx in arrayvecino) { Vecinos reubicado = ctx.Vecinos.FirstOrDefault(a => a.idVecino == idVecinx.Key); Compras vecinoCompra = ctx.Compras.FirstOrDefault(a => a.vecinoId == idVecinx.Key && a.tandaId == compra.tandaId); if (vecinoCompra == null) { vecinoCompra = new Compras(); vecinoCompra.fecha = ApiProductosController.GetNextWeekday(); vecinoCompra.EstadosCompra = entre; vecinoCompra.localId = compra.localId; vecinoCompra.tandaId = compra.tandaId; vecinoCompra.Vecinos = reubicado; ctx.Compras.Add(vecinoCompra); } CompraProducto cp = new CompraProducto(); cp.cantidad = idVecinx.Count(); cp.Compras = vecinoCompra; cp.Costos = producto.Costos; cp.Precios = producto.Precios; cp.Productos = ctx.Productos.FirstOrDefault(a => a.idProducto == producto.productoId); vecinoCompra.CompraProducto.Add(cp); } var cantidadTotal = arrayvecino.Sum(a => a.Count()); if (producto.cantidad - cantidadTotal == 0) { ctx.CompraProducto.Remove(producto); } else { producto.cantidad = producto.cantidad - cantidadTotal; } } compra.EstadosCompra = entregado ? entre : nopaso; } /*var productos = compra.CompraProducto; * for (int x = 0; x < ids.Count(); x++) * { * var prod = productos.FirstOrDefault(a => a.productoId == ids[x]); * * if (vecinxs[x] != null) * { * var arrayvecino = vecinxs[x].Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList().GroupBy( a => a); * foreach ( var idVecinx in arrayvecino ) * { * Vecinos reubicado = ctx.Vecinos.FirstOrDefault(a => a.idVecino == idVecinx.Key); * Compras vecinoCompra = ctx.Compras.FirstOrDefault(a => a.vecinoId == idVecinx.Key && a.tandaId == compra.tandaId); * * //SOLO SE ESTA LLEVANDO COSAS * if ( vecinoCompra == null) * { * vecinoCompra = new Compras(); * vecinoCompra.fecha = ApiProductosController.GetNextWeekday(); * vecinoCompra.EstadosCompra = entre; * vecinoCompra.localId = compra.localId; * vecinoCompra.tandaId = compra.tandaId; * vecinoCompra.Vecinos = reubicado; * * prod.cantidad = idVecinx.Count(); * compra.CompraProducto.Remove(prod); * vecinoCompra.CompraProducto.Add(prod); * ctx.Compras.Add(vecinoCompra); * * } * else * { * prod.cantidad = idVecinx.Count(); * compra.CompraProducto.Remove(prod); * vecinoCompra.CompraProducto.Add(prod); * ctx.Compras.Add(vecinoCompra); * } * } * } * else * { * prod.cantidad = cantidad[x]; * * if (prod.cantidad == 0) * ctx.CompraProducto.Remove(prod); * } * * * } * compra.EstadosCompra = entregado ? entre : nopaso;*/ } ctx.SaveChanges(); return(Json(new { error = false }, JsonRequestBehavior.DenyGet)); }
private void MandarMailConfirmandoCompra(int idCompra) { DateTime ProximaEntrea = ApiProductosController.GetNextWeekday(); TanoNEEntities ctx = new TanoNEEntities(); Compras actual = ctx.Compras.FirstOrDefault(a => a.idCompra == idCompra); var vecino = ctx.AlertasVecinxs.FirstOrDefault(a => a.Vecinos.token != null && a.Alertas.codigo == 3 && a.vecinxId == actual.Vecinos.idVecino); string token = vecino != null ? vecino.Vecinos.token : null; if (token != null) { ApiProductosController.mandarNotificacion("Pedido Confirmado", "Gracias por colaborar con la economía social y solidaria. No te olvides de venir con cambio!", "MISCOMPRAS", new string[] { token }); } string fecha = ProximaEntrea.ToString("dd/MM/yyyy") + " - " + actual.Locales.horario; string nombre = actual.Vecinos.nombres; string correo = actual.Vecinos.correo; using (MailMessage mail = new MailMessage()) { mail.From = new MailAddress("*****@*****.**", "Economía Social y Solidaria"); mail.To.Add(correo); //mail.To.Add("*****@*****.**"); mail.Subject = "Economia Social y Solidaria -- Nuevo Encuentro"; mail.Body = "<p>Se han confirmado las siguientes compras</p>"; mail.BodyEncoding = System.Text.Encoding.UTF8; List <Compras> totalCompras = ctx.Compras.Where(a => a.tandaId == actual.Tandas.idTanda && a.vecinoId == actual.Vecinos.idVecino).ToList(); foreach (var compras in totalCompras) { mail.Body += "<p>-------------------</p>"; mail.Body += "<p>Compra N° " + (totalCompras.IndexOf(compras) + 1) + "</p>"; mail.Body += "<p><b>Lo tenés que pasar a retirar el dia " + fecha + " Por nuestro local en " + actual.Locales.direccion + "</b></p>"; decimal total = 0; foreach (CompraProducto prod in compras.CompraProducto) { mail.Body += "<p>" + prod.cantidad + " - " + prod.Productos.producto + " - " + prod.Productos.presentacion + " - " + prod.Productos.marca + " - " + (prod.Precios.precio * prod.cantidad) + "</p>"; total += prod.cantidad * prod.Precios.precio; } mail.Body += "<p>-------------------</p>"; mail.Body += "<p>Total : " + total + "</p>"; mail.Body += "<br/><br/>"; } mail.Body += "<p>o Sujeto a disponibilidad de stock</p>"; mail.Body += "<p>o No te olvides de venir con cambio. Y con bolsa, changuito o lo que te parezca donde poder llevarte tu compra</p>"; mail.Body += "<p>o Pasada el horario de entrega no se aceptan reclamos. Cualcuier problema avisanos con tiempo</p>"; mail.Body += "<p>o Tené en cuenta que cada producto que se pide por este medio lo abonamos al productor (con el dinero de los militantes) y no tenemos devolución posible. No nos claves, gracias.</p>"; mail.Body += "<p>Muchas gracias! Te esperamos</p>"; mail.IsBodyHtml = true; using (SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587)) { smtp.Credentials = new NetworkCredential("*****@*****.**", "Frent3355"); smtp.EnableSsl = true; smtp.Send(mail); } } }
public ActionResult Modificar(int codigo, bool abrir, string fechaVenta, int idTanda = -1) { TanoNEEntities ctx = new TanoNEEntities(); ConfCircuitos conf = new ConfCircuitos(); Circuitos circuito = ctx.Circuitos.FirstOrDefault(a => a.codigo == codigo); Vecinos responsable = ctx.Vecinos.FirstOrDefault(a => a.correo == User.Identity.Name); RolesVecinos rol = responsable.RolesVecinos.FirstOrDefault(a => a.Roles.codigoRol == 2); if (rol == null) { conf.error = "Su ususario no tiene permisos"; } else { if (abrir) { Tandas ultima = ctx.Tandas.ToList().LastOrDefault(); if (ultima != null && ultima.fechaCerrado == null) { conf.error = "No puede haber 2 tandas abiertas"; } else { Tandas tanda = new Tandas(); tanda.fechaAbierto = DateTime.Now; tanda.fechaVenta = DateTime.ParseExact(fechaVenta, "dd/MM/yyyy", CultureInfo.InvariantCulture); tanda.Circuitos = circuito; tanda.Vecinos = responsable; conf.abrir = false; conf.circuito = tanda.Circuitos.nombre; conf.codigo = tanda.Circuitos.codigo; conf.idTanda = tanda.idTanda; conf.idCircuito = tanda.Circuitos.idCircuito; conf.leyenda = "Circuito Abierto: "; if (!bool.Parse(ConfigurationManager.AppSettings["debug"])) { ApiProductosController.mandarNotificacion("Ya poder pedir!", "Desde hoy tenés la posibilidad de hacer tu pedido", "CARRITO", ctx.AlertasVecinxs.Where(a => a.Vecinos.token != null && a.Alertas.codigo == 3).Select(a => a.Vecinos.token).Distinct().ToArray()); } ctx.Tandas.Add(tanda); ctx.SaveChanges(); } } else { Tandas ultima = ctx.Tandas.ToList().LastOrDefault(); if (ultima != null && ultima.fechaCerrado != null) { conf.error = "Ya se encuentra cerrado"; } else { if (idTanda == -1) { conf.error = "No se encontró la tanda"; } else { Tandas tanda = ctx.Tandas.FirstOrDefault(a => a.idTanda == idTanda); tanda.fechaCerrado = DateTime.Now; tanda.Vecinos = responsable; conf.leyenda = "No hay tanda abierta, último abierto:"; conf.abrir = true; conf.idCircuito = ultima.Circuitos.idCircuito; conf.codigo = ultima.Circuitos.codigo; //CERRAR TODOS LOS PEDIDOS DE ESTA TANDA EstadosCompra confirmado = ctx.EstadosCompra.FirstOrDefault(a => a.codigo == 2); foreach (var compraEnTanda in tanda.Compras) { compraEnTanda.EstadosCompra = confirmado; } ctx.SaveChanges(); //if (!bool.Parse(ConfigurationManager.AppSettings["debug"])) // MandarMailConfirmandoCompraTodos(tanda); ctx.SaveChanges(); } } } } return(RedirectToAction("Tandas", "Tandas")); }