string Luu_Chi_Tiet(Data_QLKDataContext database, long chungTuId) { var result = "OK"; var dt = dsXuatKho.CHUNG_TU_CHI_TIET; long id = 0; var row = 0; for (var i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i].RowState != DataRowState.Deleted) { row++; if (dt.Rows[i]["Ma_Hang_Hoa"] == DBNull.Value) { MessageBox.Show("Vui lòng chọn mặt hàng.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = "Chưa chọn mặt hàng"; gbList.FocusedRowHandle = row; gbList.SetColumnError(colMa_Hang_Hoa, "Chưa chọn mặt hàng"); return(result); } if (dt.Rows[i]["Ma_Kho_Hang"] == DBNull.Value) { MessageBox.Show("Chưa chọn kho hàng.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); result = "Chưa chọn kho hàng"; gbList.FocusedRowHandle = row; gbList.SetColumnError(colMa_Kho_Hang, "Chưa chọn kho hàng"); return(result); } id = Convert.ToInt64(dt.Rows[i]["Ma_Chi_Tiet"]); } var dr = dt.Rows[i]; switch (dr.RowState) { case DataRowState.Added: var chung_tu_chi_tiet = new CHUNG_TU_CHI_TIET { Chung_Tu_Id = chungTuId, Ma_Hang_Hoa = dt.Rows[i]["Ma_Hang_Hoa"].ToString(), Loai_Chung_Tu = 2, //1 nhap kho 2 xuat kho Tinh_Trang = false, //true nhap kho false xuat kho Ma_Kho_Hang = dt.Rows[i]["Ma_Kho_Hang"].ToString(), So_Luong = Convert.ToDecimal(dt.Rows[i]["So_Luong"]), Don_Gia = Convert.ToDecimal(dt.Rows[i]["Don_Gia"]), Thanh_Tien = Convert.ToDecimal(dt.Rows[i]["Thanh_Tien"]), Ghi_Chu = dt.Rows[i]["Ghi_Chu"].ToString(), So_Thu_Tu = 0 }; database.CHUNG_TU_CHI_TIETs.InsertOnSubmit(chung_tu_chi_tiet); break; case DataRowState.Modified: var chi_tiet_sua = (from ctct in database.CHUNG_TU_CHI_TIETs where ctct.Id == id select ctct).FirstOrDefault(); //chi_tiet_sua.Ma_Chi_Tiet = new Guid(id); chi_tiet_sua.Chung_Tu_Id = chungTuId; chi_tiet_sua.Ma_Hang_Hoa = dt.Rows[i]["Ma_Hang_Hoa"].ToString(); chi_tiet_sua.Loai_Chung_Tu = 2; //1 nhap kho 2 xuat kho chi_tiet_sua.Tinh_Trang = false; //true nhap kho false xuat kho chi_tiet_sua.Ma_Kho_Hang = dt.Rows[i]["Ma_Kho_Hang"].ToString(); chi_tiet_sua.So_Luong = Convert.ToDecimal(dt.Rows[i]["So_Luong"]); chi_tiet_sua.Don_Gia = Convert.ToDecimal(dt.Rows[i]["Don_Gia"]); chi_tiet_sua.Thanh_Tien = Convert.ToDecimal(dt.Rows[i]["Thanh_Tien"]); chi_tiet_sua.Ghi_Chu = dt.Rows[i]["Ghi_Chu"].ToString(); chi_tiet_sua.So_Thu_Tu = 0; break; case DataRowState.Deleted: var chi_tiet_xoa = (from ctct in database.CHUNG_TU_CHI_TIETs where ctct.Id == id select ctct).FirstOrDefault(); database.CHUNG_TU_CHI_TIETs.DeleteOnSubmit(chi_tiet_xoa); break; } database.SubmitChanges(); } return(result); }
string Luu_Chi_Tiet(Data_QLKDataContext database, long chungTuId) { var result = "OK"; var dt = dsNhapVatTu.CHUNG_TU_CHI_TIET; long id = 0; var row = 0; CalulateInventory calulateInventory = new CalulateInventory(); long vatTuId = 0; long khoNhap = 0; long khoXuat = 0; decimal soLuong = 0; string loVatTu = ""; string serialNo = ""; decimal orgSoLuong = 0; for (var i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i].RowState != DataRowState.Deleted) { row++; if (dt.Rows[i]["Hang_Hoa_Id"] == DBNull.Value || Convert.ToInt64(dt.Rows[i]["Hang_Hoa_Id"]) == 0) { MessageBox.Show(this, String.Format("Dòng {0}: Vui lòng chọn mặt hàng.", row.ToString()), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); result = "Chưa chọn mặt hàng"; gbList.FocusedRowHandle = row; gbList.SetColumnError(colMa_Hang_Hoa, "Chưa chọn mặt hàng"); return(result); } if (dt.Rows[i]["Kho_Hang_Id"] == DBNull.Value || Convert.ToInt64(dt.Rows[i]["Kho_Hang_Id"]) == 0) { MessageBox.Show(this, String.Format("Dòng {0}: Vui lòng chọn kho hàng.", row.ToString()), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); result = "Chưa chọn kho hàng"; gbList.FocusedRowHandle = row; gbList.SetColumnError(colMa_Kho_Hang, "Chưa chọn kho hàng"); return(result); } id = Convert.ToInt64(dt.Rows[i]["Id"]); } var dr = dt.Rows[i]; switch (dr.RowState) { case DataRowState.Added: var chi_tiet_them = new CHUNG_TU_CHI_TIET(); chi_tiet_them.Chung_Tu_Id = chungTuId; chi_tiet_them.Hang_Hoa_Id = Convert.ToInt64(dt.Rows[i]["Hang_Hoa_Id"]); chi_tiet_them.Ma_Hang_Hoa = dt.Rows[i]["Ma_Hang_Hoa"].ToString(); chi_tiet_them.Ten_Hang_Hoa = dt.Rows[i]["Ten_Hang_Hoa"].ToString(); chi_tiet_them.Loai_Chung_Tu = this.loai; //1 nhap kho 2 xuat kho chi_tiet_them.Tinh_Trang = true; //true nhap kho false xuat kho chi_tiet_them.Kho_Hang_Id = Convert.ToInt64(dt.Rows[i]["Kho_Hang_Id"]); chi_tiet_them.Ma_Kho_Hang = dt.Rows[i]["Ma_Kho_Hang"].ToString(); chi_tiet_them.So_Luong = Convert.ToDecimal(dt.Rows[i]["So_Luong"]); chi_tiet_them.Ghi_Chu = dt.Rows[i]["Ghi_Chu"].ToString(); chi_tiet_them.Serial_No = dt.Rows[i]["Serial_No"].ToString(); chi_tiet_them.Lo_Vat_Tu = dt.Rows[i]["Lo_Vat_Tu"].ToString(); chi_tiet_them.Don_Vi = dt.Rows[i]["Don_Vi"].ToString(); chi_tiet_them.Nhan_Vien_Id = Convert.ToInt64(dt.Rows[i]["Nhan_Vien_Id"] == DBNull.Value ? 0 : dt.Rows[i]["Nhan_Vien_Id"]); chi_tiet_them.Khach_Hang_Id = Convert.ToInt64(dt.Rows[i]["Khach_Hang_Id"] == DBNull.Value ? 0 : dt.Rows[i]["Khach_Hang_Id"]); chi_tiet_them.So_Thu_Tu = i; chi_tiet_them.CreatedDate = DateTime.Now; database.CHUNG_TU_CHI_TIETs.InsertOnSubmit(chi_tiet_them); if (this.loai == 1) { khoNhap = chi_tiet_them.Kho_Hang_Id.Value; } else { khoXuat = chi_tiet_them.Kho_Hang_Id.Value; } vatTuId = chi_tiet_them.Hang_Hoa_Id.Value; soLuong = chi_tiet_them.So_Luong.Value; loVatTu = chi_tiet_them.Lo_Vat_Tu; serialNo = chi_tiet_them.Serial_No; break; case DataRowState.Modified: var chi_tiet_sua = (from ctct in database.CHUNG_TU_CHI_TIETs where ctct.Id == id select ctct).FirstOrDefault(); chi_tiet_sua.Chung_Tu_Id = chungTuId; chi_tiet_sua.Hang_Hoa_Id = Convert.ToInt64(dt.Rows[i]["Hang_Hoa_Id"]); chi_tiet_sua.Ma_Hang_Hoa = dt.Rows[i]["Ma_Hang_Hoa"].ToString(); chi_tiet_sua.Ten_Hang_Hoa = dt.Rows[i]["Ma_Hang_Hoa"].ToString(); chi_tiet_sua.Loai_Chung_Tu = this.loai; //1 nhap kho 2 xuat kho chi_tiet_sua.Tinh_Trang = true; //true nhap kho false xuat kho chi_tiet_sua.Kho_Hang_Id = Convert.ToInt64(dt.Rows[i]["Kho_Hang_Id"]); chi_tiet_sua.Ma_Kho_Hang = dt.Rows[i]["Ma_Kho_Hang"].ToString(); chi_tiet_sua.So_Luong = Convert.ToDecimal(dt.Rows[i]["So_Luong"]); chi_tiet_sua.Ghi_Chu = dt.Rows[i]["Ghi_Chu"].ToString(); chi_tiet_sua.Serial_No = dt.Rows[i]["Serial_No"].ToString(); chi_tiet_sua.Lo_Vat_Tu = dt.Rows[i]["Lo_Vat_Tu"].ToString(); chi_tiet_sua.Don_Vi = dt.Rows[i]["Don_Vi"].ToString(); chi_tiet_sua.Nhan_Vien_Id = Convert.ToInt64(dt.Rows[i]["Nhan_Vien_Id"] == DBNull.Value ? 0 : dt.Rows[i]["Nhan_Vien_Id"]); chi_tiet_sua.Khach_Hang_Id = Convert.ToInt64(dt.Rows[i]["Khach_Hang_Id"] == DBNull.Value ? 0 : dt.Rows[i]["Khach_Hang_Id"]); chi_tiet_sua.So_Thu_Tu = i; chi_tiet_sua.ModifiedDate = DateTime.Now; orgSoLuong = Convert.ToDecimal(dt.Rows[i]["So_Luong", DataRowVersion.Original]); if (this.loai == 1) { khoNhap = chi_tiet_sua.Kho_Hang_Id.Value; } else { khoXuat = chi_tiet_sua.Kho_Hang_Id.Value; } vatTuId = chi_tiet_sua.Hang_Hoa_Id.Value; soLuong = chi_tiet_sua.So_Luong.Value - orgSoLuong; loVatTu = chi_tiet_sua.Lo_Vat_Tu; serialNo = chi_tiet_sua.Serial_No; break; case DataRowState.Deleted: var idDetail = Convert.ToInt64(dt.Rows[i]["Id", DataRowVersion.Original]); //dt.Rows[i]["Ma_Chi_Tiet", DataRowVersion.Original]; var chi_tiet_xoa = (from ctct in database.CHUNG_TU_CHI_TIETs where ctct.Id == idDetail select ctct).FirstOrDefault(); chi_tiet_xoa.IsDeleted = true; chi_tiet_xoa.DeletetedDate = DateTime.Now; orgSoLuong = Convert.ToDecimal(dt.Rows[i]["So_Luong", DataRowVersion.Original]); if (this.loai == 1) { khoNhap = chi_tiet_xoa.Kho_Hang_Id.Value; } else { khoXuat = chi_tiet_xoa.Kho_Hang_Id.Value; } vatTuId = chi_tiet_xoa.Hang_Hoa_Id.Value; soLuong = chi_tiet_xoa.So_Luong.Value - orgSoLuong; loVatTu = chi_tiet_xoa.Lo_Vat_Tu; serialNo = chi_tiet_xoa.Serial_No; //database.CHUNG_TU_CHI_TIETs.DeleteOnSubmit(chi_tiet_xoa); break; } database.SubmitChanges(); calulateInventory.ProcessCalculate(database, soLuong, vatTuId, loVatTu, serialNo, khoNhap, khoXuat); } return(result); }