Esempio n. 1
0
 private void btnLuu_Click(object sender, EventArgs e)
 {
     if (grvHangHoa.RowCount <= 0)
     {
         MessageBox.Show("Vui lòng chọn hàng hóa nhập");
     }
     else
     {
         PhieuNhap pn = new PhieuNhap();
         pn.MaNhanVien  = (ProjectUltil.MaNhanVien != "")? ProjectUltil.MaNhanVien : "NV0001";
         pn.SoPhieuNhap = tedSoPhieuNhap.Text;
         pn.NgayLap     = DateTime.Now;
         pn.TongTien    = TongTien;
         if (PhieuNhapService.Insert(pn))
         {
             int success = 0, fail = 0;
             for (int i = 0; i < grvHangHoa.RowCount; i++)
             {
                 ChiTietPhieuNhap ctpn = new ChiTietPhieuNhap();
                 ctpn.SoPhieuNhap  = tedSoPhieuNhap.Text;
                 ctpn.MaHangHoa    = grvHangHoa.GetRowCellValue(i, "MaHangHoa").ToString();
                 ctpn.MaNhaCungCap = int.Parse(grvHangHoa.GetRowCellValue(i, "MaNhaCungCap").ToString());
                 ctpn.HanSuDung    = DateTime.ParseExact(grvHangHoa.GetRowCellValue(i, "HanSuDung").ToString(), "d/M/yyyy", CultureInfo.InvariantCulture);
                 ctpn.SoLuong      = int.Parse(grvHangHoa.GetRowCellValue(i, "SoLuong").ToString());
                 ctpn.DonGiaNhap   = decimal.Parse(grvHangHoa.GetRowCellValue(i, "DonGiaNhap").ToString());
                 ctpn.ThanhTien    = decimal.Parse(grvHangHoa.GetRowCellValue(i, "ThanhTien").ToString());
                 if (ChiTietPhieuNhapService.Insert(ctpn))
                 {
                     if (!HangHoaService.NhapHang(ctpn.MaHangHoa, ctpn.SoLuong))
                     {
                         MessageBox.Show("Không thể cập nhật số lượng hàng hóa!");
                     }
                     success++;
                 }
                 else
                 {
                     fail++;
                     if (i > 0)
                     {
                         ChiTietPhieuNhapService.Delete(tedSoPhieuNhap.Text);
                     }
                     if (PhieuNhapService.Delete(tedSoPhieuNhap.Text))
                     {
                         MessageBox.Show("Roll back thành công!");
                     }
                     else
                     {
                         MessageBox.Show("Roll back không thành công!");
                     }
                     break;
                 }
             }
             if (fail > 0)
             {
                 MessageBox.Show("Lưu không thành công!");
             }
             else if (success == grvHangHoa.RowCount)
             {
                 isDataChanged = true;
                 isSaved       = true;
                 MessageBox.Show("Lưu thành công!");
             }
         }
         else
         {
             if (MessageBox.Show("Phiếu nhập này đã được lưu, bạn muốn tạo phiếu nhập mới?", "Thông báo", MessageBoxButtons.OKCancel) == DialogResult.OK)
             {
                 btnNhapLai.PerformClick();
             }
         }
     }
 }