public ActionResult Edit(HoaDonNXB model, FormCollection collection)
 {
     try
     {
         if (ModelState.IsValid)
         {
             if (HoaDonNXBManager.edit(model))
             {
                 _currentHoaDon = null;
                 putSuccessMessage("Cập nhật thành công");
                 return(RedirectToAction("Details", new { id = model.MaSoHoaDon }));
             }
             else
             {
                 putErrorMessage("Cập nhật thất bại");
             }
         }
         else
         {
             putModelStateFailErrors(ModelState);
         }
         return(RedirectToAction("Edit", new { id = model.MaSoHoaDon }));
         // TODO: Add update logic here
         //_hoadon = model;
         //ViewBag.currentNXB = _hoadon.NXB;
         //ViewBag.DMSach = new SelectList(_hoadon.NXB.Sach.Where(s => s.CongNoNXB.Count > 0).ToList(),
         //                        nameof(SachManager.Properties.MaSoSach),
         //                        nameof(SachManager.Properties.TenSach), "");
         //return View(_hoadon);
     }
     catch (Exception ex)
     {
         putErrorMessage(ex.Message);
         return(RedirectToAction("Edit", new { id = model.MaSoHoaDon }));
     }
 }
Ejemplo n.º 2
0
 public bool accept()
 {
     //Kiểm tra số lượng có thể duyệt không
     foreach (ChiTietHoaDonNXB ct in this.ChiTiet)
     {
         //Nếu tổng số lượng sách mà nhà xuất bản nợ ít hơn só sách sẽ thanh toán thì hủy duyệt
         if (ct.Sach.TongSoLuongNXBNo < ct.SoLuong)
         {
             return(false);
         }
     }
     //Duyệt từng chi tiết
     foreach (ChiTietHoaDonNXB ct in this.ChiTiet)
     {
         //
         //Cập nhật công nợ
         var sl    = ct.SoLuong;              // Số lượng sách thanh toán
         var count = ct.Sach.CongNoNXB.Count; // Số lượng các công nợ
         var index = 0;
         while (sl > 0)
         {
             if (index == count)
             {
                 //Đã duyệt hết các công nợ
                 break;
             }
             if (ct.Sach.CongNoNXB[index].SoLuong >= sl) // Nếu công nợ nhiều hơn hoặc bằng số lượng thanh toán
             {
                 //Giảm số lượng công nợ
                 ct.Sach.CongNoNXB[index].SoLuong -= sl;
                 sl -= sl;
                 //Cập nhật
                 if (!CongNoNXBManager.edit(ct.Sach.CongNoNXB[index]))
                 {
                     return(false);
                 }
             }
             else // Nếu công nợ ít hơn số lượng thanh toán
             {
                 sl -= ct.Sach.CongNoNXB[index].SoLuong;
                 ct.Sach.CongNoNXB[index].SoLuong = 0;
                 //Cập nhật
                 if (!CongNoNXBManager.edit(ct.Sach.CongNoNXB[index]))
                 {
                     return(false);
                 }
             }
             index++;
         }
         ct.TrangThai = 1;
     }
     //Thay đổi trang thái phiếu nhập
     this.TrangThai = 1;
     if (HoaDonNXBManager.edit(this))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }