//chỉnh sửa hóa đơn + ch tiết hóa đơn //public static CommandResult Edit1(HOADON c, int userId, int flag, long? warehousePlace, List<string> fileList, string[] listProductId, string[] listQuantity, string[] listQuantityApprove, string[] listPrice) public static CommandResult Edit(RETURN_BILL c, int userId, string[] listSanphamID, string[] listSoluong, string[] listGia) { using (var context = new GST_MockProjectEntities()) { using (System.Data.Entity.DbContextTransaction dbTran = context.Database.BeginTransaction()) { decimal?Tongtien = 0; var HoaDon = context.BILLs.Include(x => x.BILL_DETAIL).First(x => x.ID == c.ID); //xóa danh sách sản phẩm cũ var listwtdOld = HoaDon.BILL_DETAIL; context.BILL_DETAIL.RemoveRange(listwtdOld); //thêm danh sách sản phẩm mới var listwtd = new List <BILL_DETAIL>(); for (int i = 0; i < listSanphamID.Length; i++) { var SanphamID = int.Parse(listSanphamID[i]); var Soluong = int.Parse(listSoluong[i]); decimal?Giaban = null; if (listGia[i] != "") { Giaban = decimal.Parse(listGia[i]); Tongtien = Tongtien + Giaban; } var cthd = new BILL_DETAIL() { Product_ID = SanphamID, Quantity = Soluong, Bill_ID = c.ID, Amount = Giaban }; listwtd.Add(cthd); } context.BILL_DETAIL.AddRange(listwtd); //Chỉnh sửa lại thông tin hóa đơn khi sửa HoaDon.UpdateBy = userId; HoaDon.UpdateDate = DateTime.Now; HoaDon.Amount = Tongtien; context.SaveChanges(); dbTran.Commit(); return(new CommandResult(ResultCode.Success, "Sửa thành công")); } } }
//hàm tạo mới 1 hóa đơn sẽ tự tạo các chi tiết hóa đơn public static CommandResult Create(RETURN_BILL c, int userId, string[] listSanphamID, string[] listSoluong, string[] listGia) { using (var context = new GST_MockProjectEntities()) { using (System.Data.Entity.DbContextTransaction dbTran = context.Database.BeginTransaction()) { decimal?Tongtien = 0; c.CreateBy = userId; c.Amount = 0; c.CreateDate = DateTime.Now; context.RETURN_BILL.Add(c); context.SaveChanges(); //luu chi tiet san pham var listwtd = new List <BILL_DETAIL>(); for (var i = 0; i < listSanphamID.Length; i++) { decimal?price = null; if (listGia[i] != "") { price = decimal.Parse(listGia[i]); Tongtien = Tongtien + price; } var wtd = new BILL_DETAIL() { Bill_ID = c.ID, Product_ID = int.Parse(listSanphamID[i]), Quantity = int.Parse(listSoluong[i]), Amount = price }; listwtd.Add(wtd); } context.BILL_DETAIL.AddRange(listwtd); c.Amount = Tongtien; context.SaveChanges(); dbTran.Commit(); return(new CommandResult()); } } }
public ActionResult CreateEdit(RETURN_BILL model) { if (Request["txtProductIdRow"] == null) { return(Json(new CommandResult() { Code = ResultCode.Fail, Message = "Xin vui lòng thêm sản phẩm " }, JsonRequestBehavior.AllowGet)); } var listSanPhamID = Request.Form.GetValues("txtProductIdRow"); var listSoLuong = Request.Form.GetValues("txtQuantityRow"); var listGia = Request.Form.GetValues("txtPriceRow"); if (model.ID == 0) { var user = UserService.GetUserInfo(); var result = TraHangService.Create(model, user.ID, listSanPhamID, listSoLuong, listGia); return (Json( new RedirectCommand() { Code = result.Code, Message = result.Message, Url = Url.Action("Index", new { id = model.ID }) }, JsonRequestBehavior.AllowGet)); } else { var user = UserService.GetUserInfo(); var result = TraHangService.Edit(model, user.ID, listSanPhamID, listSoLuong, listGia); return (Json( new RedirectCommand() { Code = result.Code, Message = result.Message, Url = Url.Action("Index", new { id = model.ID }) }, JsonRequestBehavior.AllowGet)); } }