// GET: InvReceipts/Details/5 public ActionResult Details(long?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } InvReceipt invReceipt = db.InvReceipts.Find(id); InvReceiptDto invreceiptdto = new InvReceiptDto() { Description = invReceipt.Description, Id = invReceipt.Id, ObjectState = (int)ObjectState.Unchanged, ReceiptDate = invReceipt.ReceiptDate, ReceiptNo = invReceipt.ReceiptNo, ReceivedById = invReceipt.ReceivedBy, VendorId = invReceipt.VendorId, listUser = db.AspNetUsers.Select(x => new UserDto { Email = x.Email, Id = x.Id }).ToList(), listVendor = db.Vendors.Select(x => new VendorDto() { Id = x.Id, Name = x.Name }).ToList(), listDetail = GetDetails(invReceipt.Id), listReceivedPlace = RecievedPlaceDto.ConvertEnum(), ReceivedPlaceId = (int)Enum.Parse(typeof(RecievePlace), invReceipt.ReceivedPlace) }; if (invReceipt == null) { return(HttpNotFound()); } return(View(invreceiptdto)); }
public async Task <List <InvReceiptDetailDto> > SaveDetailAsync(InvReceiptDto vm) { try { foreach (var item in vm.listDetail) { var objsave = new InvReceiptDetail() { Id = item.DetailId, InventoryItemId = item.InventoryItemId, InvReceiptId = vm.Id, Quantity = item.Quantity }; if (objsave.Id > 0 && item.ObjectState != (int)ObjectState.Deleted) { item.ObjectState = (int)ObjectState.Modified; } if (objsave.Id <= 0 && item.ObjectState != (int)ObjectState.Deleted) { item.ObjectState = (int)ObjectState.Added; } switch (item.ObjectState) { case (int)ObjectState.Added: db.InvReceiptDetails.Add(objsave); await db.SaveChangesAsync(); break; case (int)ObjectState.Modified: db.Entry(objsave).State = EntityState.Modified; await db.SaveChangesAsync(); break; } item.DetailId = objsave.Id; } vm.listDetail = GetDetails(vm.Id); return(vm.listDetail); } catch (Exception ex) { return(null); } }
// GET: InvReceipts/Create public ActionResult Create() { InvReceiptDto invreceiptdto = new InvReceiptDto() { ObjectState = (int)ObjectState.Added, ReceiptDate = DateTime.Now, listUser = db.AspNetUsers.Select(x => new UserDto { Email = x.Email, Id = x.Id }).ToList(), listVendor = db.Vendors.Select(x => new VendorDto() { Id = x.Id, Name = x.Name }).ToList(), listReceivedPlace = RecievedPlaceDto.ConvertEnum() }; return(View(invreceiptdto)); }
public async Task <JsonResult> SaveAsync(InvReceiptDto vm) { try { if (vm.listDetailToDelete.Count() > 0) { foreach (var item in vm.listDetailToDelete) { var objdelete = db.InvReceiptDetails.Find(item); if (objdelete != null) { db.Entry(objdelete).State = EntityState.Deleted; await db.SaveChangesAsync(); } } } var objsave = new InvReceipt() { Id = vm.Id, Description = vm.Description, ReceiptDate = vm.ReceiptDate, ReceiptNo = vm.ReceiptNo, ReceivedBy = vm.ReceivedById, VendorId = vm.VendorId, ReceivedPlace = ((RecievePlace)vm.ReceivedPlaceId).ToString() }; if (objsave.Id > 0 && vm.ObjectState != (int)ObjectState.Deleted) { vm.ObjectState = (int)ObjectState.Modified; } if (objsave.Id <= 0 && vm.ObjectState != (int)ObjectState.Deleted) { vm.ObjectState = (int)ObjectState.Added; } switch (vm.ObjectState) { case (int)ObjectState.Added: db.InvReceipts.Add(objsave); await db.SaveChangesAsync(); break; case (int)ObjectState.Modified: db.Entry(objsave).State = EntityState.Modified; await db.SaveChangesAsync(); break; case (int)ObjectState.Deleted: var returndetails = db.InvReceiptDetails.Where(x => x.InvReceiptId == objsave.Id).ToList(); foreach (var item in returndetails) { var invReturndetail = await db.InvReceiptDetails.FindAsync(item.Id); db.Entry(invReturndetail).State = EntityState.Deleted; db.SaveChanges(); } db.Entry(objsave).State = EntityState.Deleted; await db.SaveChangesAsync(); break; } vm.Id = objsave.Id; vm.listDetail = await SaveDetailAsync(vm); var result = new { result = vm }; return(Json(result)); } catch (Exception ex) { return(Json(null)); } }