public List <EDEntryDetails> ListaDetalleEntrada(int IdEntrada) { List <EDEntryDetails> ListaEDDetalle = new List <EDEntryDetails>(); using (DrogSystemContext db = new DrogSystemContext()) { var Detalle = (from ED in db.EntryDetails join PD in db.ProductDetails on ED.ProductDetailId equals PD.ProductDetailId join P in db.Products on PD.ProductoId equals P.ProductoId join M in db.Markers on PD.MarkerId equals M.MarkerId where ED.EntradaId == IdEntrada select new { ED, P.NombreProducto, M.NombreFabricante }).ToList(); if (Detalle != null) { foreach (var item in Detalle) { EDEntryDetails EDEntryDetails = new EDEntryDetails(); EDEntryDetails.EntryDetailId = item.ED.EntryDetailId; EDEntryDetails.Cantidad = item.ED.Cantidad; EDEntryDetails.Lote = item.ED.Lote; EDEntryDetails.FechaVence = item.ED.FechaVence.ToString("dd/MM/yyyy"); EDEntryDetails.ProductDetailId = item.ED.ProductDetailId; EDEntryDetails.NombreFabricante = item.NombreFabricante; EDEntryDetails.NombreProducto = item.NombreProducto; ListaEDDetalle.Add(EDEntryDetails); } } } ListaEDDetalle = ListaEDDetalle.OrderBy(o => o.EntryDetailId).ToList(); return(ListaEDDetalle); }
public JsonResult Crear(List <EDEntryDetails> DetalleEntrada, EDEntry Entradas, List <int> IdABorrar) { bool Probar = true; string Mensaje = ""; EDEntry EDEntry = new EDEntry(); EDEntry.EntryId = Entradas.EntryId; EDEntry.FechaIngreso = Entradas.FechaIngreso; EDEntry.Aprobado = Entradas.Aprobado; EDEntry.TerceroId = Entradas.TerceroId; List <EDEntryDetails> EDEntryDetails = new List <EDEntryDetails>(); foreach (var item in DetalleEntrada) { EDEntryDetails EDEntryDetail = new EDEntryDetails(); EDEntryDetail.EntryDetailId = item.EntryDetailId; EDEntryDetail.Cantidad = item.Cantidad; EDEntryDetail.Lote = item.Lote; EDEntryDetail.FechaVence = item.FechaVence; EDEntryDetail.ProductDetailId = item.ProductDetailId; EDEntryDetails.Add(EDEntryDetail); } try { Entry Entry = new Entry(); if (EDEntry.EntryId > 0) { Entry entrada = db.Entries.Find(EDEntry.EntryId); Entry = entrada; } Entry.FechaIngreso = DateTime.Parse(EDEntry.FechaIngreso); Entry.TerceroId = EDEntry.TerceroId; Entry.Aprobado = EDEntry.Aprobado = Entradas.Aprobado; if (EDEntry.EntryId > 0) { db.Entry(Entry).State = EntityState.Modified; db.SaveChanges(); } else { db.Entries.Add(Entry); db.SaveChanges(); } int IdEntrada = Entry.EntradaId; if (IdABorrar != null) { foreach (var detalle in IdABorrar) { EntryDetail EntradaDetalle = db.EntryDetails.Find(detalle); db.EntryDetails.Remove(EntradaDetalle); db.SaveChanges(); } } foreach (var item1 in EDEntryDetails) { EntryDetail EntryDetail = new EntryDetail(); if (item1.EntryDetailId > 0) { EntryDetail entradaDetalle = db.EntryDetails.Find(item1.EntryDetailId); EntryDetail = entradaDetalle; } EntryDetail.Cantidad = item1.Cantidad; EntryDetail.Lote = item1.Lote; EntryDetail.FechaVence = DateTime.Parse(item1.FechaVence); EntryDetail.EntradaId = IdEntrada; EntryDetail.ProductDetailId = item1.ProductDetailId; if (EntryDetail.EntryDetailId > 0) { db.Entry(EntryDetail).State = EntityState.Modified; db.SaveChanges(); } else { db.EntryDetails.Add(EntryDetail); db.SaveChanges(); } if (Entry.Aprobado == "S") { ProductDetail ProductDetail = db.ProductDetails.Find(EntryDetail.ProductDetailId); ProductDetail.Existencias += EntryDetail.Cantidad; db.Entry(ProductDetail).State = EntityState.Modified; db.SaveChanges(); } } Mensaje = " Registro Agregado con exito."; } catch (Exception) { Probar = false; Mensaje = " Se produjo un error al agregar el registro."; } return(Json(new { Probar, Mensaje }, JsonRequestBehavior.AllowGet)); }