public static bool edit(PhieuNhap phieu)
 {
     try
     {
         using (EntitiesDataContext db = new EntitiesDataContext())
         {
             PHIEUNHAP px;
             px = (from p in db.PHIEUNHAPs
                   where p.masophieunhap.Equals(phieu.MaSoPhieuNhap)
                   select p).SingleOrDefault();
             if (px == null) return false;
             px.masonxb = phieu.MaSoNXB;
             px.ngaylap = phieu.NgayLap;
             px.nguoigiaosach = phieu.NguoiGiao;
             px.trangthai = phieu.TrangThai;
             px.tongtien = phieu.ChiTiet.Sum(ct => ct.SoLuong * ct.DonGia); // tính tổng tiền các chi tiết
             db.CHITIETPHIEUNHAPs.DeleteAllOnSubmit(px.CHITIETPHIEUNHAPs);
             db.SubmitChanges();
             foreach (ChiTietPhieuNhap ct in phieu.ChiTiet)
             {
                 ct.MaSoPhieuNhap = phieu.MaSoPhieuNhap;
                 ChiTiet.add(ct);
             }
             return true;
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         return false;
     }
 }
 public static int add(PhieuNhap phieunhap)
 {
     try
     {
         using (EntitiesDataContext db = new EntitiesDataContext())
         {
             var phieu = new PHIEUNHAP()
             {
                 masonxb = phieunhap.NXB.MaSoNXB,
                 ngaylap = phieunhap.NgayLap,
                 nguoigiaosach = phieunhap.NguoiGiao,
                 tongtien = phieunhap.ChiTiet.Sum(ct => ct.SoLuong * ct.DonGia),
                 trangthai = 0
             };
             db.PHIEUNHAPs.InsertOnSubmit(phieu);
             db.SubmitChanges();
             ChiTiet.add(phieunhap.ChiTiet, phieu.masophieunhap);
             return phieu.masophieunhap;
         }
     }catch(Exception ex)
     {
         Console.WriteLine(ex.Message);
         return 0;
     }
 }
        private void btXoa_Click(object sender, EventArgs e)
        {
            ///  List<ChiTietPhieuNhap> _DSCTPN = PhieuNhapManager.ChiTiet.getAll();
            /// kiểm trạng trạng thái
            DialogResult dialogResult = MessageBox.Show("Bạn có muốn xóa", "Thông báo", MessageBoxButtons.YesNo);
            if (dialogResult == DialogResult.Yes)
            {
                if (!txbMaPhieuNhap.Text.Equals(""))
                {
                    PhieuNhap pn = new PhieuNhap();
                    int x = int.Parse(txbMaPhieuNhap.Text.ToString());
                    var phieu = PhieuNhapManager.find(x);

                    if (phieu.TrangThai != 1)
                    {
                        if (PhieuNhapManager.delete(phieu.MaSoPhieuNhap))
                        {
                            MessageBox.Show("Đã xóa thành công");
                            LoadDSPM();
                        }
                        else
                            MessageBox.Show("Không xóa được");
                    }
                    else
                        MessageBox.Show("Không tìm thấy");
                }
                else
                    MessageBox.Show("Chọn phiếu nhập cần xóa");

            }
            else if (dialogResult == DialogResult.No)
            {
                return;
            }
        }
 public ActionResult Edit(PhieuNhap model, FormCollection collection)
 {
     try
     {
         if (ModelState.IsValid)
         {
             if (PhieuNhapManager.edit(model))
             {
                 _currentPhieu = null;
                 putSuccessMessage("Cập nhật thành công");
                 return RedirectToAction("Details", new { id = model.MaSoPhieuNhap });
             }
             else
             {
                 putErrorMessage("Cập nhật thất bại");
             }
         }
         else
         {
             putModelStateFailErrors(ModelState);
         }
         return RedirectToAction("Edit", new { id = model.MaSoNXB });
         // TODO: Add update logic here
         //_phieu = model;
         //ViewBag.currentNXB = _phieu.NXB;
         //ViewBag.DMSach = new SelectList(_phieu.NXB.Sach,
         //                        nameof(SachManager.Properties.MaSoSach),
         //                        nameof(SachManager.Properties.TenSach), "");
         //return View(_phieu);
     }
     catch(Exception ex)
     {
         putErrorMessage(ex.Message);
         return RedirectToAction("Edit", new { id = model.MaSoNXB });
     }
 }
 // GET: PhieuNhap/Edit/5
 public ActionResult Edit(int? id)
 {
     if (id == null)
     {
         putErrorMessage("Đường dẫn không chính xác");
         return RedirectToAction("All");
     }
     if (_currentPhieu == null || _currentPhieu != id)
     {
         _currentPhieu = id;
         _phieu = PhieuNhapManager.find((int)id);
         if (_phieu == null)
         {
             putErrorMessage("Không tìm thấy");
             return RedirectToAction("All");
         }
         if (_phieu.TrangThai == 1)
         {
             //Nếu đã duyệt thì không cho sửa, chuyển sang trang chi tiết
             putErrorMessage("Phiếu đã duyệt");
             return RedirectToAction("Details", new { id = id });
         }
     }
     ViewBag.cultureInfo = CultureInfo;
     ViewBag.currentNXB = _phieu.NXB;
     ViewBag.DMSach = new SelectList(_phieu.NXB.Sach,
                             nameof(SachManager.Properties.MaSoSach),
                             nameof(SachManager.Properties.TenSach), "");
     setAlertMessage();
     return View(_phieu);
 }
 public ActionResult Create(PhieuNhap model, FormCollection collection)
 {
     try
     {
         // TODO: Add insert logic here
         if (ModelState.IsValid)
         {
             var result = PhieuNhapManager.add(model);
             if (result != 0)
             {
                 _phieu = null;
                 putSuccessMessage("Thêm thành công");
                 return RedirectToAction("Details", new { id = result });
             }
             else
             {
                 putErrorMessage("Thêm không thành công");
             }
         }
         else
         {
             putModelStateFailErrors(ModelState);
         }
         return RedirectToAction("Create", new { masonxb = _phieu.MaSoNXB });
         //ViewBag.cultureInfo = CultureInfo;
         //ViewBag.currentNXB = _phieu.NXB;
         //ViewBag.DMSach = new SelectList(_phieu.NXB.Sach,
         //                        nameof(SachManager.Properties.MaSoSach),
         //                        nameof(SachManager.Properties.TenSach), "");
         //_phieu.NgayLap = DateTime.Now;
         //setAlertMessage();
         //return View(_phieu);
     }
     catch(Exception ex)
     {
         putErrorMessage(ex.Message);
         return RedirectToAction("Create", new { masonxb = _phieu.MaSoNXB });
     }
 }
 // GET: PhieuNhap/Create
 public ActionResult Create(int? masonxb)
 {
     if (masonxb != null)
     {
         var nxb = NhaXuatBanManager.find((int)masonxb);
         if (nxb == null || nxb.TrangThai == 0)
         {
             putErrorMessage("Không tìm thấy Nhà xuát bản");
             return RedirectToAction("Create");
         }
         ViewBag.cultureInfo = CultureInfo;
         ViewBag.currentNXB = nxb;
         ViewBag.DMSach = new SelectList(nxb.Sach,
                                 nameof(SachManager.Properties.MaSoSach),
                                 nameof(SachManager.Properties.TenSach), "");
         if (_phieu == null)
         {
             _phieu = new PhieuNhap();
         }
         _phieu.MaSoNXB = nxb.MaSoNXB;
         _phieu.NXB = nxb;
         _phieu.NgayLap = DateTime.Now;
         setAlertMessage();
         return View(_phieu);
     }
     else
     {
         ViewBag.DMNXB = new SelectList(NhaXuatBanManager.getAllAlive(),
                                 nameof(NhaXuatBanManager.Properties.MaSoNXB),
                                 nameof(NhaXuatBanManager.Properties.TenNXB), "");
         _phieu = new PhieuNhap();
         setAlertMessage();
         return View();
     }
 }
        //Khi Nhấn Lưu lại phiếu nhập
        private void btnLuu_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Bạn có muốn lưu phiếu nhập này", "Thông báo", MessageBoxButtons.YesNo);
            if (dialogResult == DialogResult.Yes)
            {
                decimal tongtien = 0;
                List<ChiTietPhieuNhap> list = new List<ChiTietPhieuNhap>();
                if (!txbNguoiGiao.Text.Equals(""))
                {
                    PhieuNhap pn = new PhieuNhap();
                    pn.MaSoNXB = int.Parse(cmbNhaXuatBan.SelectedValue.ToString());
                    pn.NgayLap = DateTime.Parse(dtpNgayLap.Value.ToString("yyyy-MM-dd"));
                    pn.NguoiGiao = txbNguoiGiao.Text.ToString();

                    for (int i = 0; i < gdvChiTiet.RowCount - 1; i++)
                    {
                        if (!String.IsNullOrEmpty(Convert.ToString(gdvChiTiet.Rows[i].Cells[0].Value)) && !String.IsNullOrEmpty(Convert.ToString(gdvChiTiet.Rows[i].Cells[1].Value)) && !String.IsNullOrEmpty(Convert.ToString(gdvChiTiet.Rows[i].Cells[2].Value)))
                        {
                            ChiTietPhieuNhap ctpn = new ChiTietPhieuNhap();
                            ctpn.MaSoSach = int.Parse(gdvChiTiet.Rows[i].Cells[0].Value.ToString());
                            ctpn.SoLuong = int.Parse(gdvChiTiet.Rows[i].Cells[1].Value.ToString());
                            ctpn.DonGia = int.Parse(gdvChiTiet.Rows[i].Cells[2].Value.ToString());
                            tongtien = tongtien + ctpn.SoLuong * ctpn.DonGia;
                            if(list.Any(s=>s.MaSoSach == ctpn.MaSoSach))
                            {
                                MessageBox.Show("Không được nhập trùng chi tiết");
                                return;
                            }
                            list.Add(ctpn);

                        }
                        else
                        {
                            if (String.IsNullOrEmpty(Convert.ToString(gdvChiTiet.Rows[i].Cells[0].Value)) || String.IsNullOrEmpty(Convert.ToString(gdvChiTiet.Rows[i].Cells[1].Value)) || String.IsNullOrEmpty(Convert.ToString(gdvChiTiet.Rows[i].Cells[2].Value)))
                            {
                                MessageBox.Show("Chưa nhập đủ thông tin vào bảng");
                                return;
                            }
                        }

                    }

                    pn.ChiTiet = list;

                        pn.TongTien = tongtien;
                        int x = PhieuNhapManager.add(pn);
                        if (x != 0)
                        {
                            MessageBox.Show("đã thêm thành công");
                            txbMaPhieuNhap.Text = x + "";
                        }
                        else
                            MessageBox.Show("Không thêm được");

                }
                else
                    MessageBox.Show("Bạn chưa nhập người giao hàng");
            }
            else if (dialogResult == DialogResult.No)
            {
                return;
            }
        }