public static int AddDetails(int ID_phieu_nhap, int Trang_thai, GridView gridViewDetails, Entities db = null) { if (ID_phieu_nhap < 1) { return(0); } if (db == null) { db = new Entities(); } int n = gridViewDetails.RowCount; var pn = db.IMP_PhieuNhap.FirstOrDefault(t => t.ID_phieu_nhap == ID_phieu_nhap); for (int i = 0; i < n; i++) { IMP_PhieuNhapCT entity = (IMP_PhieuNhapCT)gridViewDetails.GetRow(i); if (entity == null || entity.ID_vat_tu == 0 || entity.So_luong == 0) { continue; } entity.ID_phieu_nhap = ID_phieu_nhap; db.IMP_PhieuNhapCT.Add(entity); // Cập nhật vật tư và số lượng vào kho if (pn.Trang_thai == 0 && Trang_thai == 1) { // Kiểm tra xem trong kho có vật tư trong phiếu nhập chi tiết hay không var vt = db.STO_KhoVatTuCT.FirstOrDefault(t => t.ID_kho == pn.ID_kho && t.ID_vat_tu == entity.ID_vat_tu); if (vt == null) { // Vật tư này trong kho hiện không có nên thêm vào db.STO_KhoVatTuCT.Add(new STO_KhoVatTuCT { ID_kho = pn.ID_kho, ID_vat_tu = entity.ID_vat_tu, So_luong = entity.So_luong, ID_phieu_nhap = entity.ID_phieu_nhap }); } else { // Trong kho đã có vật tư này nên cập nhật số lượng vt.So_luong += entity.So_luong; vt.ID_phieu_nhap = entity.ID_phieu_nhap; } } } pn.Trang_thai = Trang_thai; return(db.SaveChanges()); }
private void grvPhieuNhapCT_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e) { bool bError = false; string sError = ""; var ID_vat_tu = grvPhieuNhapCT.GetRowCellValue(e.RowHandle, "ID_vat_tu"); if (ID_vat_tu.Equals(0)) { bError = true; sError += "\n Chưa chọn vật tư."; } var So_luong = grvPhieuNhapCT.GetRowCellValue(e.RowHandle, "So_luong"); if (So_luong == null || double.Parse(So_luong.ToString()) == 0) { bError = true; sError += "\n Số lượng phải lớn hơn 0."; } var Don_gia = grvPhieuNhapCT.GetRowCellValue(e.RowHandle, "Don_gia"); if (Program.CurrentUser.ID_nhan_vien == null) { IMP_PhieuNhapCT pnct = (IMP_PhieuNhapCT)grvPhieuNhapCT.GetFocusedRow(); if (pnct.STO_VatTu.STO_LoaiVatTu.Ten_loai_vat_tu.StartsWith("NAN")) { if (Don_gia != null) { bError = true; sError += "\n Vui lòng không nhập giá nhập cho vật tư loại NAN."; } } } int n = grvPhieuNhapCT.RowCount; for (int i = 0; i < n; i++) { if (i != e.RowHandle) { var id = grvPhieuNhapCT.GetRowCellValue(i, "ID_vat_tu"); if (ID_vat_tu.Equals(id)) { bError = true; sError += "\n Không được chọn trùng vật tư."; break; } } } if (bError) { e.ErrorText = sError + "\n Bạn có muốn sửa lại không?\n"; e.Valid = false; //XtraMessageBox.Show(sError, "Lỗi dữ liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } }
public static int Update(int ID_phieu_nhap, GridView gridViewDetails, object ID_nhan_vien_nhap, object ID_nha_cung_cap, object ID_kho, object So_chung_tu_goc, object Ngay_nhap, object Ghi_chu, int ID_loai_nhap = 1, int Trang_thai = 0, Entities db = null) { if (db == null) { db = new Entities(); } var pn = db.IMP_PhieuNhap.FirstOrDefault(t => t.ID_phieu_nhap == ID_phieu_nhap); if (pn == null) { return(0); } // Update Phieu nhap if (pn.Trang_thai != -1) { if (ID_kho == null || Ngay_nhap == null) { return(0); } if (pn.Trang_thai == 0 && ID_kho != null) { pn.ID_kho = (int)ID_kho; } if (Ngay_nhap != null) { pn.Ngay_nhap = (DateTime)Ngay_nhap; } pn.ID_nguoi_sua = Program.CurrentUser.ID_nguoi_dung; pn.Ngay_sua = QLK_DongLuc.Helper.DatabaseHelper.GetDatabaseDate(); //pn.ID_loai_nhap = ID_loai_nhap; if (ID_loai_nhap == 2) { pn.ID_nha_cung_cap = null; pn.So_chung_tu_goc = null; } else { if (ID_nha_cung_cap != null) { pn.ID_nha_cung_cap = (int)ID_nha_cung_cap; } if (So_chung_tu_goc != null) { pn.So_chung_tu_goc = So_chung_tu_goc.ToString(); } } if (ID_nhan_vien_nhap != null) { pn.ID_nhan_vien_nhap = (int)ID_nhan_vien_nhap; } if (Ghi_chu != null) { pn.Ghi_chu = Ghi_chu.ToString(); } } // Update details int n = gridViewDetails.RowCount; List <int> ct = new List <int>(); // Thêm mới và cập nhật chi tiết for (int i = 0; i < n; i++) { IMP_PhieuNhapCT entity = (IMP_PhieuNhapCT)gridViewDetails.GetRow(i); if (entity == null || entity.ID_vat_tu == 0 || entity.So_luong == 0) { continue; } IMP_PhieuNhapCT item; item = pn.IMP_PhieuNhapCT.FirstOrDefault(t => t.ID_vat_tu == entity.ID_vat_tu); if (entity.ID_phieu_nhap == 0) { entity.ID_phieu_nhap = ID_phieu_nhap; } if (item == null) { // Thêm mới item = db.IMP_PhieuNhapCT.Add(entity); } else { //Cập nhật item.So_luong = entity.So_luong; item.Don_gia = entity.Don_gia; } ct.Add(item.ID_vat_tu); // Kiểm tra xem trong kho có vật tư trong phiếu nhập chi tiết hay không var vt = db.STO_KhoVatTuCT.FirstOrDefault(t => t.ID_kho == pn.ID_kho && t.ID_vat_tu == item.ID_vat_tu); // Cập nhật vật tư và số lượng vào kho if (pn.Trang_thai == 0 && Trang_thai == 1) { if (vt == null) { // Vật tư này trong kho hiện không có nên thêm vào db.STO_KhoVatTuCT.Add(new STO_KhoVatTuCT { ID_kho = pn.ID_kho, ID_vat_tu = item.ID_vat_tu, So_luong = item.So_luong }); } else { // Trong kho đã có vật tư này nên cập nhật số lượng vt.So_luong += item.So_luong; } } // Xác thực thì cập nhật đơn giá nhập và phiếu nhập cuối và cập nhật tổng tiền vào kho if (pn.Trang_thai != -1 && Trang_thai == -1) { pn.Tong_tien += (decimal)item.So_luong * (decimal)item.Don_gia; vt.Don_gia_nhap = item.Don_gia; vt.ID_phieu_nhap = item.ID_phieu_nhap; } } // Xóa các chi tiết không có trong danh sách chi tiết mới if (pn.Trang_thai == 0 && Trang_thai == 0) { var tmp = pn.IMP_PhieuNhapCT.Where(t => !ct.Contains(t.ID_vat_tu)); db.IMP_PhieuNhapCT.RemoveRange(tmp); } // Cập nhật trạng thái phiếu nhập pn.Trang_thai = Trang_thai; return(db.SaveChanges()); }
// Thêm chi tiết của phiếu nhập cửa cuốn AustDoor public static int AddDetails(int ID_phieu_nhap, int Trang_thai, GridView gridViewDetails, int ID_than_cua, double Chieu_dai_cua, double Chieu_rong_cua, int ID_mo_to, int ID_chot, int ID_khoa, Entities db = null) { if (ID_phieu_nhap < 1) { return(0); } if (db == null) { db = new Entities(); } int n = gridViewDetails.RowCount; var pn = db.IMP_PhieuNhap.FirstOrDefault(t => t.ID_phieu_nhap == ID_phieu_nhap); List <IMP_PhieuNhapCT> list = new List <IMP_PhieuNhapCT>(); // Thêm thân cửa vào phiếu nhập chi tiết var than = new IMP_PhieuNhapCT { ID_phieu_nhap = ID_phieu_nhap, ID_vat_tu = ID_than_cua, So_luong = 1, Chieu_dai = Chieu_dai_cua, Chieu_rong = Chieu_rong_cua }; list.Add(than); // Thêm mô tơ cửa var moTo = new IMP_PhieuNhapCT { ID_phieu_nhap = ID_phieu_nhap, ID_vat_tu = ID_mo_to, So_luong = 1 }; list.Add(moTo); // Thêm chốt cửa var chot = new IMP_PhieuNhapCT { ID_phieu_nhap = ID_phieu_nhap, ID_vat_tu = ID_chot, So_luong = 1 }; list.Add(chot); // Them khóa cửa var khoa = new IMP_PhieuNhapCT { ID_phieu_nhap = ID_phieu_nhap, ID_vat_tu = ID_khoa, So_luong = 1 }; list.Add(khoa); for (int i = 0; i < n; i++) { IMP_PhieuNhapCT entity = (IMP_PhieuNhapCT)gridViewDetails.GetRow(i); if (entity == null || entity.ID_vat_tu == 0 || entity.So_luong == 0) { continue; } entity.ID_phieu_nhap = ID_phieu_nhap; list.Add(entity); } n = list.Count; for (int i = 0; i < n; i++) { var entity = list[i]; db.IMP_PhieuNhapCT.Add(entity); // Cập nhật vật tư và số lượng vào kho if (pn.Trang_thai == 0 && Trang_thai == 1) { // Kiểm tra xem trong kho có vật tư trong phiếu nhập chi tiết hay không var vt = db.STO_KhoVatTuCT.FirstOrDefault(t => t.ID_kho == pn.ID_kho && t.ID_vat_tu == entity.ID_vat_tu); if (vt == null) { // Vật tư này trong kho hiện không có nên thêm vào db.STO_KhoVatTuCT.Add(new STO_KhoVatTuCT { ID_kho = pn.ID_kho, ID_vat_tu = entity.ID_vat_tu, So_luong = entity.So_luong, ID_phieu_nhap = entity.ID_phieu_nhap }); } else { // Trong kho đã có vật tư này nên cập nhật số lượng vt.So_luong += entity.So_luong; vt.ID_phieu_nhap = entity.ID_phieu_nhap; } } } pn.Trang_thai = Trang_thai; return(db.SaveChanges()); }