public static bool EliminarCompraProducto(CompraProducto compraProducto) { bool response = false; try { using (var dbContextScope = new DBFacturacionEntities()) { var compraProductobuscado = dbContextScope.CompraProducto.Where(x => x.Id == compraProducto.Id).FirstOrDefault(); if (compraProductobuscado != null) { dbContextScope.CompraProducto.Remove(compraProductobuscado); dbContextScope.SaveChanges(); response = true; } } } catch (Exception ex) { response = false; throw ex; } return(response); }
public ActionResult CargarProducto(int productoId, int maxikioscoId, int proveedorId) { var productoCompleto = Uow.Productos.Obtener(productoId, maxikioscoId, proveedorId); var productoProveedor = Uow.ProveedorProductos.Obtener(pp => pp.ProductoId == productoId && pp.ProveedorId == proveedorId); var compraProducto = new CompraProducto { ProductoId = productoId, Cantidad = 1, Producto = new Producto { Descripcion = productoCompleto.Descripcion }, PrecioActual = productoCompleto.PrecioConIVA, CostoActual = productoProveedor != null ? productoProveedor.CostoConIVA : 0, Identifier = Guid.NewGuid() }; compraProducto.PrecioActualizado = compraProducto.PrecioActual; compraProducto.CostoActualizado = productoProveedor != null ? productoProveedor.CostoConIVA : (decimal?)null; //Cargamos el stock actual del producto0 compraProducto.StockAnterior = productoCompleto.Stock; compraProducto.StockActual = productoCompleto.Stock + compraProducto.Cantidad; compraProducto.PrimerCodigoProducto = productoCompleto.Codigo; compraProducto.ProductoMarca = productoCompleto.Marca; return(PartialView(compraProducto)); }
public static bool EditarCompraProducto(CompraProducto compraProducto) { bool response = false; try { using (var dbContextScope = new DBFacturacionEntities()) { var CompraProductoExistente = dbContextScope.CompraProducto.Where(x => x.Id == compraProducto.Id).FirstOrDefault(); if (CompraProductoExistente != null) { CompraProductoExistente.CompraId = compraProducto.CompraId != null ? compraProducto.CompraId : CompraProductoExistente.CompraId; CompraProductoExistente.ProductoId = compraProducto.ProductoId != null ? compraProducto.ProductoId : CompraProductoExistente.ProductoId; CompraProductoExistente.Cantidad = compraProducto.Cantidad != null ? compraProducto.Cantidad : CompraProductoExistente.Cantidad; CompraProductoExistente.ValorProducto = compraProducto.ValorProducto != null ? compraProducto.ValorProducto : CompraProductoExistente.ValorProducto; CompraProductoExistente.FechaCompra = compraProducto.FechaCompra != null ? compraProducto.FechaCompra : CompraProductoExistente.FechaCompra; dbContextScope.SaveChanges(); response = true; } } } catch (Exception ex) { response = false; throw ex; } return(response); }
private void CargarDetalle(int compraID) { CompraProducto cp = new CompraProducto(); List <CompraProducto> lcp = cp.ObtenerDetalleCompra(compraID); gridDetalles.DataSource = lcp; gridDetalles.DataBind(); }
// // GET: /CompraProducto/Delete/5 public ActionResult Delete(int id = 0) { CompraProducto compraproducto = db.CompraProducto.Find(id); if (compraproducto == null) { return(HttpNotFound()); } return(View(compraproducto)); }
public ActionResult Create(CompraProducto compraproducto) { if (ModelState.IsValid) { var user = Session["usuarioActual"] as Usuario; compraproducto.Usuarioid = user.id; var compraHecha = db.CompraProducto.Add(compraproducto); var cuenta = db.Cuentas.FirstOrDefault(c => c.id == compraproducto.Cuentasid); var precioProducto = compraproducto.importe / compraproducto.cantidad; var almacen = db.Almacen.FirstOrDefault( p => p.Productoid == compraproducto.Productoid && p.precio == precioProducto && p.TipoMonedaid == cuenta.TipoMonedaid); if (almacen == null) { var newAlmacen = new Almacen() { cantidad = compraproducto.cantidad, precio = precioProducto, Productoid = compraproducto.Productoid, TipoMonedaid = cuenta.TipoMonedaid }; db.Almacen.Add(newAlmacen); } else { almacen.cantidad += compraproducto.cantidad; db.Entry(almacen).State = EntityState.Modified; } cuenta.importe -= compraproducto.importe; db.Entry(cuenta).State = EntityState.Modified; db.SaveChanges(); var gasto = new GastoFinanzas() { fecha = compraproducto.fecha, Cuentasid = compraproducto.Cuentasid, ConceptoGastoid = 1, Usuarioid = compraproducto.Usuarioid, importe = compraproducto.importe, descripcion = "Id de compra: [" + compraHecha.id + "] Compra de Productos del proyecto un grano de arena" }; db.GastoFinanzas.Add(gasto); db.SaveChanges(); return(RedirectToAction("Create")); } ViewBag.Productoid = new SelectList(db.Producto, "id", "nombre", compraproducto.Productoid); var cta = db.Cuentas.Where(c => c.activo); ViewBag.Cuentasid = new SelectList(cta, "id", "nombre", compraproducto.Cuentasid); return(View(compraproducto)); }
public bool Modificar(CompraProducto cierreProducto) { try { using (unitOfWork = new UnitOfWork(new GymContext())) { unitOfWork.compraProductoDAL.Update(cierreProducto); } return(true); } catch (Exception) { return(false); } }
// // GET: /CompraProducto/Edit/5 public ActionResult Edit(int id = 0) { CompraProducto compraproducto = db.CompraProducto.Find(id); if (compraproducto == null) { return(HttpNotFound()); } ViewBag.Productoid = new SelectList(db.Producto, "id", "nombre", compraproducto.Productoid); var cta = db.Cuentas.Where(c => c.activo); ViewBag.Cuentasid = new SelectList(cta, "id", "nombre", compraproducto.Cuentasid); compraAnterior = compraproducto; return(View(compraproducto)); }
public bool Crear(string idCompra, string[,] productos) { productoBLL = new ProductoBLLImp(); Producto pr; try { using (unitOfWork = new UnitOfWork(new GymContext())) { using (GymContext Context = new GymContext()) { for (int i = 0; i < productos.Length; i++) { if (productos[i, 0] == null) { return(true); } else { string id = ConsecutivoModifica("CRM"); CompraProducto cp = new CompraProducto() { idCompraProducto = id, idCompra = idCompra, idProducto = productos[i, 0], cantidad = int.Parse(productos[i, 1]), total = productos[i, 2] }; pr = productoBLL.BuscarPorId(productos[i, 0]); pr.cantidad = pr.cantidad - int.Parse(productos[i, 1]); unitOfWork.compraProductoDAL.Add(cp); productoBLL.Modificar(pr); unitOfWork.Complete(); } } } } return(true); } catch (Exception a) { string e = a.Message; return(false); } }
public static bool CrearCompraProducto(CompraProducto compraProducto) { bool response = false; try { using (var dbContextScope = new DBFacturacionEntities()) { dbContextScope.CompraProducto.Add(compraProducto); dbContextScope.SaveChanges(); response = true; } } catch (Exception ex) { throw ex; } return(response); }
public ActionResult DeleteConfirmed(int id) { try { CompraProducto compraproducto = db.CompraProducto.Find(id); db.CompraProducto.Remove(compraproducto); var precioProducto = compraproducto.importe / compraproducto.cantidad; var cuenta = db.Cuentas.FirstOrDefault(c => c.id == compraproducto.Cuentasid); var almacen = db.Almacen.FirstOrDefault( p => p.Productoid == compraproducto.Productoid && p.precio == precioProducto && p.TipoMonedaid == cuenta.TipoMonedaid); almacen.cantidad -= compraproducto.cantidad; cuenta.importe += compraproducto.importe; db.Entry(almacen).State = EntityState.Modified; db.Entry(cuenta).State = EntityState.Modified; var gastos = db.GastoFinanzas.Where(g => g.fecha == compraproducto.fecha); var gasto = new GastoFinanzas(); foreach (var g in gastos) { if (int.Parse(g.descripcion.Split('[')[1].Split(']')[0]) == compraproducto.id) { gasto = g; } } db.GastoFinanzas.Remove(gasto); db.SaveChanges(); } catch (Exception) { throw new Exception("Este registro se utiliza en una relacion y no lo puede borrar"); } return(RedirectToAction("Index")); }
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)); }
public ActionResult ConfirmarPedido(int local, int[] idProducto, int[] cantidad, int?idCompra = null) { string error = null; TanoNEEntities ctx = new TanoNEEntities(); Locales localCompro = ctx.Locales.FirstOrDefault(a => a.idLocal == local); if (localCompro == null) { error = "No se indico en que local va a retirar lo pedido"; } Vecinos vecino = ctx.Vecinos.FirstOrDefault(a => a.correo == User.Identity.Name); if (vecino == null) { error = "Hay que iniciar sesion para realizar un pedido"; } Tandas ultimaTanda = ctx.Tandas.ToList().LastOrDefault(a => a.fechaCerrado == null); if (ultimaTanda == null) { error = "No hay circuitos abiertos en este momento"; } //Encargado EstadosCompra estado = ctx.EstadosCompra.FirstOrDefault(a => a.codigo == 1); Compras compra = new Compras(); if (idCompra.HasValue) { compra = ctx.Compras.FirstOrDefault(a => a.idCompra == idCompra.Value); compra.CompraProducto.ToList().ForEach(cs => ctx.CompraProducto.Remove(cs)); } else { compra.fecha = DateTime.Now; } compra.Locales = localCompro; compra.Vecinos = vecino; compra.Tandas = ultimaTanda; compra.EstadosCompra = estado; if (!idCompra.HasValue) { ctx.Compras.Add(compra); } for (int x = 0; x < idProducto.Length; x++) { int prodActual = idProducto[x]; int cantActual = cantidad[x]; Productos prod = ctx.Productos.FirstOrDefault(a => a.idProducto == prodActual); if (prod.stock != -1) { int stockrestante = prod.stock - cantActual; if (stockrestante < 0) { error = string.Format("{0} del siguiente producto:<br/>{1} - {2} - {3}", prod.stock == 0 ? "No contamos con stock" : "Solo contamos con " + prod.stock + " articulos", prod.producto, prod.presentacion, prod.marca); break; } else { prod.stock = stockrestante; } } CompraProducto productos = new CompraProducto(); productos.Productos = prod; productos.Compras = compra; productos.cantidad = cantidad[x]; productos.Precios = prod.Precios.LastOrDefault(); productos.Costos = prod.Costos.LastOrDefault(); ctx.CompraProducto.Add(productos); } if (string.IsNullOrEmpty(error)) { ctx.SaveChanges(); if (!bool.Parse(ConfigurationManager.AppSettings["debug"])) { MandarMailConfirmandoCompra(compra.idCompra); } } return(Json(new { error = error }, JsonRequestBehavior.DenyGet)); }
public IHttpActionResult Pedir() { try { string error = ""; var form = HttpContext.Current.Request.Form; int idVecino = int.Parse(form["idVecino"]); int local = int.Parse(form["local"]); string prods = form["productos"]; int idCompra = int.Parse(form["idCompra"]); dynamic dyn = JArray.Parse(prods); int hash = (idVecino + "-" + local + "-" + prods).GetHashCode(); TanoNEEntities ctx = new TanoNEEntities(); Locales localCompro = ctx.Locales.FirstOrDefault(a => a.idLocal == local); Vecinos vecino = ctx.Vecinos.FirstOrDefault(a => a.idVecino == idVecino); if (vecino == null) { error = "Hay que iniciar sesion para realizar un pedido"; } Tandas ultimaTanda = ctx.Tandas.ToList().LastOrDefault(a => a.fechaCerrado == null); if (ultimaTanda == null) { error = "No hay circuitos abiertos en este momento"; } //Encargado EstadosCompra estado = ctx.EstadosCompra.FirstOrDefault(a => a.codigo == 1); bool editando = false; Compras compra = new Compras(); if (idCompra != -1) { compra = ctx.Compras.FirstOrDefault(a => a.idCompra == idCompra); compra.CompraProducto.ToList().ForEach(cs => ctx.CompraProducto.Remove(cs)); editando = true; } else { compra.fecha = DateTime.Now; } compra.Locales = localCompro; compra.Vecinos = vecino; compra.Tandas = ultimaTanda; compra.EstadosCompra = estado; if (idCompra == -1) { ctx.Compras.Add(compra); } foreach (dynamic producto in dyn) { int prodActual = producto.idProducto; int cantActual = producto.pedidos; Productos prod = ctx.Productos.FirstOrDefault(a => a.idProducto == prodActual); if (prod.stock != -1) { int stockrestante = prod.stock - cantActual; if (stockrestante < 0) { error = string.Format("{0} del siguiente producto:<br/>{1} - {2} - {3}", prod.stock == 0 ? "No contamos con stock" : "Solo contamos con " + prod.stock + " articulos", prod.producto, prod.presentacion, prod.marca); break; } else { prod.stock = stockrestante; } } CompraProducto productos = new CompraProducto(); productos.Productos = prod; productos.Compras = compra; productos.cantidad = cantActual; ctx.CompraProducto.Add(productos); } var test = ctx.Compras.FirstOrDefault(a => a.hash == hash); if (test != null && !editando) { error = "Ya ha comprado los mismos productos para esta tanda"; } if (string.IsNullOrEmpty(error)) { compra.hash = hash; ctx.SaveChanges(); } return(Json(new { error = error })); } catch (Exception) { return(Json(new { error = "Error al grabar, si te sigue pasando, ¡avisanos!" })); } }
public ActionResult Edit(CompraProducto compraproducto) { if (ModelState.IsValid) { var user = Session["usuarioActual"] as Usuario; compraproducto.Usuarioid = user.id; db.Entry(compraproducto).State = EntityState.Modified; //anterior var precioProductoAnterior = compraAnterior.importe / compraAnterior.cantidad; var cuentaAnterior = db.Cuentas.FirstOrDefault(c => c.id == compraAnterior.Cuentasid); var almacenAnterior = db.Almacen.FirstOrDefault( p => p.Productoid == compraAnterior.Productoid && p.precio == precioProductoAnterior && p.TipoMonedaid == cuentaAnterior.TipoMonedaid); //actual var precioProducto = compraproducto.importe / compraproducto.cantidad; var cuenta = db.Cuentas.FirstOrDefault(c => c.id == compraproducto.Cuentasid); var almacen = db.Almacen.FirstOrDefault( p => p.Productoid == compraproducto.Productoid && p.precio == precioProducto && p.TipoMonedaid == cuenta.TipoMonedaid); if (almacen == null) { var newAlmacen = new Almacen() { cantidad = compraproducto.cantidad, precio = precioProducto, Productoid = compraproducto.Productoid, TipoMonedaid = cuenta.TipoMonedaid }; db.Almacen.Add(newAlmacen); } else { almacen.cantidad += compraproducto.cantidad; db.Entry(almacen).State = EntityState.Modified; } almacenAnterior.cantidad -= compraAnterior.cantidad; cuentaAnterior.importe += compraAnterior.importe; cuenta.importe -= compraproducto.importe; var gastos = db.GastoFinanzas.Where(g => g.fecha == compraAnterior.fecha); var gasto = new GastoFinanzas(); foreach (var g in gastos) { if (int.Parse(g.descripcion.Split('[')[1].Split(']')[0]) == compraproducto.id) { gasto = g; } } gasto.importe = compraproducto.importe; gasto.fecha = compraproducto.fecha; db.Entry(gasto).State = EntityState.Modified; db.Entry(almacenAnterior).State = EntityState.Modified; db.Entry(cuenta).State = EntityState.Modified; db.Entry(cuentaAnterior).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.Productoid = new SelectList(db.Producto, "id", "nombre", compraproducto.Productoid); var cta = db.Cuentas.Where(c => c.activo); ViewBag.Cuentasid = new SelectList(cta, "id", "nombre", compraproducto.Cuentasid); return(View(compraproducto)); }