public List <EstimationModel> DeleteEstimation(EstimationModel model) { Estimation Estimation; List <Estimation> MasterDataList; try { MasterDataList = _dbContext.Estimations.ToList(); Estimation = MasterDataList.Find(item => item.ID == model.ID); if (Estimation != null) { //Estimation.IsDeleted = true; _dbContext.Entry(Estimation).State = EntityState.Modified; _dbContext.SaveChanges(); } } catch (Exception ex) { IErrorLogService errorLog = new ErrorLogService(); string message = ex.InnerException != null ? ex.InnerException.Message : ex.Message; errorLog.SetErrorLog(model.CurrentUserID, "Estimation", message); throw new Exception(message); } BaseModel.CurrentCulture = model.CurrentCulture; BaseModel.CurrentUserID = model.CurrentUserID; return(GetAllEstimationList(BaseModel)); }
public MasterViewModel() { LoadMasterData(); //Khởi tạo AddCommand AddCommand = new RelayCommand <object>((p) => { //Kiểm tra sự tồn tại trong database var displayList = DataProvider.Ins.DB.PRODUCTs.Where(x => x.DisplayName == DisplayName && x.IsDeleted == false); if (displayList == null || displayList.Count() > 0 || RetailPrice <= 0 || Quantity <= 0) { return(false); } return(true); }, (p) => { //Add product vào db var product = new PRODUCT() { DisplayName = DisplayName, CatID = getIDCat(CatName), RetailPrice = (int)RetailPrice, Quantity = (int)Quantity, IsDeleted = false }; DataProvider.Ins.DB.PRODUCTs.Add(product); //Update lại số lượng trong category var category = DataProvider.Ins.DB.CATEGORies.Find(getIDCat(CatName)); category.Quantity += (int)Quantity; DataProvider.Ins.DB.SaveChanges(); //Add vào MasterDataList để update lại danh sách hiển thị lên màn hình MasterData masterData = new MasterData(); masterData.NumercialOrder = MasterDataList.Count() + 1; masterData.CatName = product.CATEGORY.DisplayName; masterData.Product = product; MasterDataList.Add(masterData); }); //Khởi tạo UpdateCommand UpdateCommand = new RelayCommand <object>((p) => { //Kiểm tra sự tồn tại trong database var displayList = DataProvider.Ins.DB.PRODUCTs.Where(x => x.DisplayName == DisplayName && x.IsDeleted == false); if (displayList == null || RetailPrice <= 0 || Quantity <= 0) { return(false); } return(true); }, (p) => { //Kiểm tra xem có cập nhật trùng tên product khác đã có trong db var conflictProduct = DataProvider.Ins.DB.PRODUCTs.Where(x => x.DisplayName == DisplayName && x.ID != SelectedItem.Product.ID && x.IsDeleted == false); if (conflictProduct.Count() > 0) { MessageBox.Show(conflictProduct.First().DisplayName + " đã có trong danh sách", "Lỗi không thể cập nhật sản phẩm"); return; } //Cập nhật lại product var product = DataProvider.Ins.DB.PRODUCTs.Find(SelectedItem.Product.ID); //Cập nhật lại số lượng trong category //Nếu vẫn giữ nguyên loại sản phẩm đó if (product.CatID == getIDCat(catName)) { var category = DataProvider.Ins.DB.CATEGORies.Find(product.CatID); category.Quantity = category.Quantity - product.Quantity + (int)Quantity; } else // Nếu đổi sang loại khác thì { //Giảm số lượng ở loại cũ var oldCategory = DataProvider.Ins.DB.CATEGORies.Find(product.CatID); oldCategory.Quantity -= (int)Quantity; //Tăng số lượng ở loại mới product.CatID = getIDCat(catName); var newCategory = DataProvider.Ins.DB.CATEGORies.Find(product.CatID); newCategory.Quantity += (int)Quantity; } product.DisplayName = DisplayName; product.RetailPrice = (int)RetailPrice; //Cập nhật lại số lượng product product.Quantity = (int)Quantity; //Cập nhật lại MasterDataList var masterData = MasterDataList.ToList().Find(x => x.Product.ID == product.ID); masterData.CatName = product.CATEGORY.DisplayName; masterData.Product = product; DataProvider.Ins.DB.SaveChanges(); }); //Khởi tạo WatchCommand WatchCommand = new RelayCommand <object>((p) => { if (string.IsNullOrEmpty(DisplayName)) { return(false); } return(true); }, (p) => { var product = DataProvider.Ins.DB.PRODUCTs.Find(SelectedItem.Product.ID); string moneyString = getMoney(product.RetailPrice) + " VNĐ"; MessageBox.Show("Tên sản phẩm: " + product.DisplayName + "\n" + "ID: " + product.ID + "\n" + "Loại sản phẩm: " + product.CATEGORY.DisplayName + "\n" + "Số lượng tồn kho: " + product.Quantity + "\n" + "Giá sản phẩm: " + moneyString, "Thông tin chi tiết"); }); //Khởi tạo DeleteCommand DeleteCommand = new RelayCommand <object>((p) => { if (string.IsNullOrEmpty(DisplayName)) { return(false); } return(true); }, (p) => { var product = DataProvider.Ins.DB.PRODUCTs.Find(SelectedItem.Product.ID); var category = DataProvider.Ins.DB.CATEGORies.Find(SelectedItem.Product.CatID); //Đánh dấu là đã bị xóa trong db product.IsDeleted = true; //Giảm số lượng trong category category.Quantity -= product.Quantity; //Xóa trong MasterDataList int index = MasterDataList.ToList().FindIndex(x => x.Product.ID == SelectedItem.Product.ID); for (int i = index + 1; i < MasterDataList.Count; i++) { MasterDataList[i].NumercialOrder -= 1; //Giảm số thứ tự } MasterDataList.RemoveAt(index); DataProvider.Ins.DB.SaveChanges(); } ); //Khởi tạo ImportCommand ImportCommand = new RelayCommand <object>((p) => { return(true); }, (p) => { var dlg = new Microsoft.Win32.OpenFileDialog(); dlg.DefaultExt = ".xlsx"; dlg.Filter = "Excel Files(.xlsx)|*.xlsx|Excel Files(.xls)|*.xls|Excel Files(*.xlsm)|*.xlsm"; // Hiển thị dialog và trả về kết quả Nullable <bool> result = dlg.ShowDialog(); //Kiểm tra kết quả if (result == true) { //open var package = new ExcelPackage(new FileInfo(dlg.FileName)); //go to sheet ExcelWorksheet workSheet = package.Workbook.Worksheets[1]; for (int i = workSheet.Dimension.Start.Row + 1; i <= workSheet.Dimension.End.Row; i++) { try { int j = 1; //columnn trong file //Lấy tên sản phẩm //data.Product.DisplayName = workSheet.Cells[i, j++].Value.ToString(); string displayname = workSheet.Cells[i, j++].Value.ToString(); //Lấy loại sản phẩm string catname = workSheet.Cells[i, j++].Value.ToString(); if (catname != "Áo" && catname != "Quần" && catname != "Giày") { MessageBox.Show("Loại sản phẩm chỉ có thể là Áo, Quần hoặc Giày", "Lỗi đọc file"); return; } int catID = getIDCat(catname); //Lấy giá gốc var RetailPriceTemp = workSheet.Cells[i, j++].Value; int retailprice, _quantity; if (RetailPriceTemp != null) { retailprice = Convert.ToInt32(RetailPriceTemp); } else { MessageBox.Show("Dữ liệu giá gốc NULL", "Lỗi đọc file"); return; } //Lấy số lượng var QuantityTemp = workSheet.Cells[i, j++].Value; if (QuantityTemp != null) { _quantity = Convert.ToInt32(QuantityTemp); } else { MessageBox.Show("Dữ liệu số lượng NUL", "Lỗi đọc file"); return; } //Kiểm tra xem product đó đã tồn tại trong database không var displayList = DataProvider.Ins.DB.PRODUCTs.Where(x => x.DisplayName == displayname && x.IsDeleted == false); if (displayList == null || displayList.Count() > 0) { MessageBox.Show(displayname + " đã tồn tại trong database", "Lỗi nhập dữ liệu"); return; } var product = new PRODUCT() { DisplayName = displayname, CatID = catID, RetailPrice = retailprice, Quantity = _quantity, IsDeleted = false }; DataProvider.Ins.DB.PRODUCTs.Add(product); //Update lại số lượng trong category var category = DataProvider.Ins.DB.CATEGORies.Find(product.CatID); category.Quantity += _quantity; var masterData = new MasterData(); masterData.NumercialOrder = MasterDataList.Count() + 1; masterData.CatName = product.CATEGORY.DisplayName; masterData.Product = product; //Add vào MasterDataList MasterDataList.Add(masterData); DataProvider.Ins.DB.SaveChanges(); } catch { MessageBox.Show("File chưa đóng", "Lỗi"); return; } } } } ); }