예제 #1
0
        //新增
        private void btnInsert_Click(object sender, EventArgs e)
        {
            prod.ProductID = 0;
            if (this.cbCategory.SelectedIndex >= 0)
            {
                prod.CategorySID = int.Parse(this.cbCategory.SelectedValue.ToString());
            }
            FrmProductMaintain f = new FrmProductMaintain("C", prod);

            f.ShowDialog();
            cbCategory.SelectedValue = _clsProd._CategorySID;  //查詢條件中的Category的ComboBox, 重新指向存檔資料的分類
            ResetData();
        }
예제 #2
0
        private void productDataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            currentIndex = productBindingSource.Position;
            try
            {
                prod.ProductID      = ((Product)productBindingSource.Current).ProductID;
                prod.ProductName    = ((Product)productBindingSource.Current).ProductName;
                prod.Desctiption    = ((Product)productBindingSource.Current).Desctiption;
                prod.CategorySID    = ((Product)productBindingSource.Current).CategorySID;
                prod.UnitPrice      = ((Product)productBindingSource.Current).UnitPrice;
                prod.ProductInDate  = ((Product)productBindingSource.Current).ProductInDate;
                prod.ProductOutDate = ((Product)productBindingSource.Current).ProductOutDate;
                prod.SupplierID     = ((Product)productBindingSource.Current).SupplierID;
                prod.CreateDate     = ((Product)productBindingSource.Current).CreateDate;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                return;
            }

            switch (e.ColumnIndex)
            {
            case 0:          //Click 修改
                FrmProductMaintain f = new FrmProductMaintain("U", prod);
                f.ShowDialog();
                cbCategory.SelectedValue = _clsProd._CategorySID;      //查詢條件中的Category的ComboBox, 重新指向存檔資料的分類
                ResetData();
                break;

            case 1:          //Click 刪除
                if (MessageBox.Show("確定要刪除嗎?", "刪除作業", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    if (HasProductDetails())     //有Details資料
                    {
                        MessageBox.Show($"ProductID:{prod.ProductID} ({prod.ProductName}) 有存在 [顏色 / 尺吋大小 / 庫存量 / 圖片 / 洗滌方式 / 產品評價] 等資料, 不能刪除 !");
                        return;
                    }
                    try
                    {
                        var n = dbContext.Products.Find(prod.ProductID);
                        dbContext.Products.Remove(n);
                        this.dbContext.SaveChanges();
                        { MessageBox.Show("產品 [刪除] 資料成功 !"); }
                        ResetData();
                    }
                    catch (Exception ex)
                    {
                        Debug.WriteLine(ex);
                        MessageBox.Show("產品 [刪除] 資料失敗, 請檢查欄位資料後再試一下, 或找系統管理員協助處理 !");
                    }
                }
                break;
            }

            //判斷Product是否有其他Details資料
            bool HasProductDetails()
            {
                if (dbContext.ProductEvaluations.Any(x => x.ProductID == prod.ProductID))  //有 ProductEvaluations
                {
                    return(true);
                }

                if (dbContext.ProductWashings.Any(x => x.ProductID == prod.ProductID))  //有 ProductWashings
                {
                    return(true);
                }

                if (dbContext.ProductPhotoes.Any(x => x.ProductID == prod.ProductID))  //有 ProductPhotoes
                {
                    return(true);
                }

                if (dbContext.ProductColors.Any(x => x.ProductID == prod.ProductID))  //有 ProductColor
                {
                    return(true);
                }

                if (dbContext.ProductSizes.Any(x => x.ProductID == prod.ProductID))  //有 ProductSize
                {
                    return(true);
                }

                if (dbContext.ProductStocks.Any(x => x.ProductID == prod.ProductID))  // 有ProductStock
                {
                    return(true);
                }

                return(false);  //無任何Details資料
            }
        }