//[ValidateAntiForgeryToken] public async Task <ActionResult> DeleteConfirmed(int id) { var Producto = db.Productos.Find(id); //BUSCANDO QUE PRODUCTO NO TENGA SALIDAS NI ENTRADAS REGISTRADAS CON SU ID DetalleDeEntrada oEnt = db.DetallesDeEntrada.DefaultIfEmpty(null).FirstOrDefault(e => e.ProductoId == Producto.Id); DetalleDeSalida oSal = db.DetallesDeSalida.DefaultIfEmpty(null).FirstOrDefault(s => s.ProductoId == Producto.Id); using (var transact = db.Database.BeginTransaction()) { try { //SI NO SE ENCUENTRAN SALIDAS O ENTRADAS if (oEnt == null || oSal == null) { db.Productos.Remove(Producto); completado = await db.SaveChangesAsync() > 0 ? true : false; mensaje = completado ? "Eliminado correctamente" : "Error al eliminar"; } else { mensaje = "Se encontraron movimientos asociados a este producto"; } transact.Commit(); } catch (Exception) { mensaje = "Error al eliminar"; transact.Rollback(); } //FIN TRY-CATCH } //FIN USING return(Json(new { success = completado, message = mensaje }, JsonRequestBehavior.AllowGet)); }
public ActionResult AddEntrada(string Codigo, DateTime FechaEntrada, int TipoEntradaId, int BodegaId, int ProveedorId, string detalleEntrada) { var DetalleEntrada = JsonConvert.DeserializeObject <List <DetalleDeEntrada> >(detalleEntrada); //GUARDAR PRIMERO EL ENCABEZAADO Entrada entrada = new Entrada(); entrada.CodigoEntrada = Codigo; entrada.FechaEntrada = Convert.ToDateTime(FechaEntrada); entrada.TipoEntradaId = TipoEntradaId; entrada.BodegaId = BodegaId; entrada.ProveedorId = ProveedorId; entrada.EstadoEntrada = true; db.Entradas.Add(entrada); if (db.SaveChanges() > 0) { foreach (var item in DetalleEntrada) { DetalleDeEntrada detalleItem = new DetalleDeEntrada(); detalleItem.CantidadEntrada = item.CantidadEntrada; detalleItem.PrecioEntrada = item.PrecioEntrada; detalleItem.ProductoId = item.ProductoId; detalleItem.EntradaId = entrada.Id; db.DetallesDeEntrada.Add(detalleItem); } completado = db.SaveChanges() > 0 ? true : false; mensaje = completado ? "Almacenado correctamente" : "Error al almacenar"; } return(Json(new { success = completado }, JsonRequestBehavior.AllowGet)); }