コード例 #1
0
 /// <summary>
 /// 修改商品类别信息
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void tsbtnEdit_Click(object sender, EventArgs e)
 {
     if (dgvGoodsTypeList.CurrentRow != null)
     {
         GoodsTypeInfoModel gtInfo = dgvGoodsTypeList.CurrentRow.DataBoundItem as GoodsTypeInfoModel;
         ShowEditTypeInfo(gtInfo);
     }
 }
コード例 #2
0
        //isdeleted  1-LogicDelete  0  Recover  2 Delete
        private void DeleteGType(int isDeleted, GoodsTypeInfoModel gt)
        {
            string delTypeName = FormUtility.GetDeleteTypeName(isDeleted);
            string msgTitle    = $"商品类别{delTypeName}";

            if (MsgBoxHelper.MsgBoxConfirm(msgTitle, $"您确定要{delTypeName}该商品类别?") == DialogResult.Yes)
            {
                bool bl = false;
                switch (isDeleted)
                {
                case 1:    //删除
                           //如果该类别添加了商品,不允许删除
                    bool hasAddGoods = RequestStar.CheckIsAddGoods(gt.GTypeId);
                    //如果该类别添加了子类别,不允许删除
                    bool hasChilds = RequestStar.HasChildTypes(gt.GTypeId);
                    if (!hasAddGoods && !hasChilds)
                    {
                        bl = RequestStar.GoodsTypeLogicDelete(gt.GTypeId);
                    }
                    else if (hasAddGoods)
                    {
                        MsgBoxHelper.MsgErrorShow($"该类别:{gt.GTypeName} 已经添加商品,不能删除!");
                        return;
                    }
                    else if (hasChilds)
                    {
                        MsgBoxHelper.MsgErrorShow($"该类别:{gt.GTypeName} 已经添加了子类别,不能删除!");
                        return;
                    }
                    break;

                case 0:    //恢复
                    bl = RequestStar.GoodsTypeRecover(gt.GTypeId);
                    break;

                case 2:    //移除
                    bl = RequestStar.GoodsTypeDelete(gt.GTypeId);
                    break;
                }
                string sucType = bl ? "成功" : "失败";
                string delMsg  = $"商品类别:{gt.GTypeName} {delTypeName} {sucType}";
                if (bl)
                {
                    MsgBoxHelper.MsgBoxShow(msgTitle, delMsg);
                    LoadGoodsTypeList();
                    if (isDeleted != 2)
                    {
                        ReloadCboParents(gt, true, isDeleted);
                    }
                }
                else
                {
                    MsgBoxHelper.MsgErrorShow(delMsg);
                    return;
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// 检查类别信息是否发生改变
        /// </summary>
        /// <param name="utInfo"></param>
        /// <param name="oldutInfo"></param>
        /// <returns></returns>
        private bool CheckGoodsTypeInfo(GoodsTypeInfoModel gtInfo, GoodsTypeInfoModel oldgtInfo)
        {
            bool bl = false;

            if ((gtInfo.GTypeName != gtInfo.GTypeName) || (gtInfo.ParentId != gtInfo.ParentId) || (gtInfo.GTypeNo != gtInfo.GTypeNo) || (gtInfo.GTOrder != gtInfo.GTOrder))
            {
                bl = true;
            }
            return(bl);
        }
コード例 #4
0
 public MessageResult AddGoodsType(GoodsTypeInfoModel gtInfo)
 {
     try
     {
         var list = gtBLL.AddGoodsType(gtInfo);
         return(MessageResult.Success(list));
     }
     catch (Exception ex)
     {
         return(MessageResult.Fail(ex.Message));
     }
 }
コード例 #5
0
ファイル: FrmChooseTypes.cs プロジェクト: mosdong/PSI
        /// <summary>
        /// 选择类别
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnChoose_Click(object sender, EventArgs e)
        {
            TreeNode selNode = tvUTypes.SelectedNode;

            if (selNode != null)
            {
                if (cModel.TypeCode == "Units")
                {
                    UnitTypeInfoModel selType = new UnitTypeInfoModel()
                    {
                        UTypeId   = selNode.Name.GetInt(),
                        UTypeName = selNode.Text.Trim()
                    };
                    FrmUnitInfo fUnitInfo = cModel.FGet as FrmUnitInfo;
                    fUnitInfo.uType = selType;
                }
                else if (cModel.TypeCode.Contains("Goods"))
                {
                    GoodsTypeInfoModel selType = new GoodsTypeInfoModel()
                    {
                        GTypeId   = selNode.Name.GetInt(),
                        GTypeName = selNode.Text.Trim()
                    };
                    if (selType.GTypeId == 0)
                    {
                        selType.GTypeName = null;
                    }

                    switch (cModel.TypeCode)
                    {
                    case "Goods":
                        FrmGoodsInfo fGoodsInfo = cModel.FGet as FrmGoodsInfo;
                        fGoodsInfo.gTypeInfo = selType;
                        break;

                    case "Goods-PerQueryBySupplier":
                        FrmPerchaseQueryBySupplier fPerQueryBySupplier = cModel.FGet as FrmPerchaseQueryBySupplier;
                        fPerQueryBySupplier.gtInfo = selType;
                        break;

                    case "Goods-SaleQueryByCustomer":
                        FrmSaleQueryByCustomer fSaleQueryByCustomer = cModel.FGet as FrmSaleQueryByCustomer;
                        fSaleQueryByCustomer.gtInfo = selType;
                        break;
                    }
                }
                this.SetType?.Invoke();
            }
            this.Close();
        }
コード例 #6
0
 /// <summary>
 /// 加载修改状态下的类别信息
 /// </summary>
 /// <param name="gtInfo"></param>
 private void ShowEditTypeInfo(GoodsTypeInfoModel gtInfo)
 {
     if (gtInfo != null)
     {
         oldInfo                  = gtInfo;
         gbInfo.Visible           = true;
         txtGTypeName.Text        = gtInfo.GTypeName;
         txtGTypeNo.Text          = gtInfo.GTypeNo;
         txtGTPYNo.Text           = gtInfo.GTPYNo;
         txtGTOrder.Text          = gtInfo.GTOrder.ToString();
         cboParents.SelectedValue = gtInfo.ParentId;
         cboParents.Enabled       = true;
         btnSave.Text             = "修改";
         gTypeId                  = gtInfo.GTypeId;
         oldName                  = gtInfo.GTypeName;
     }
 }
コード例 #7
0
        /// <summary>
        /// 刷新下拉框
        /// </summary>
        /// <param name="gt"></param>
        private void ReloadCboParents(GoodsTypeInfoModel gt, bool isDel, int isDeleted)
        {
            List <GoodsTypeInfoModel> parents = cboParents.DataSource as List <GoodsTypeInfoModel>;

            //清空数据源(cbo DataSource)
            cboParents.DataSource = null;
            if (!isDel)
            {
                if (gTypeId > 0 && oldName != gt.GTypeName)//修改提交时,类别名称信息发生改变
                {
                    parents.Where(t => t.GTypeName == oldName).FirstOrDefault().GTypeName = gt.GTypeName;
                }
                else if (gTypeId == 0) //新增或添加子类别
                {
                    parents.Add(new GoodsTypeInfoModel()
                    {
                        GTypeId   = gt.GTypeId,
                        GTypeName = gt.GTypeName
                    });
                }
            }
            else
            {
                if (isDeleted == 1)
                {
                    parents.Remove(parents.Where(t => t.GTypeId == gt.GTypeId).FirstOrDefault());
                }
                else
                {
                    parents.Add(new GoodsTypeInfoModel()
                    {
                        GTypeId   = gt.GTypeId,
                        GTypeName = gt.GTypeName
                    });
                }
            }
            cboParents.DisplayMember = "GTypeName";
            cboParents.ValueMember   = "GTypeId";
            cboParents.DataSource    = parents;
            cboParents.SelectedValue = gt.ParentId;
        }
コード例 #8
0
        /// <summary>
        /// 加载商品信息
        /// </summary>
        /// <param name="fId"></param>
        private void InitGoodsInfo(int goodsId)
        {
            GoodsInfoModel goodsInfo = RequestStar.GetGoodsInfo(goodsId);

            if (goodsInfo != null)
            {
                txtBidPrice.Text   = goodsInfo.BidPrice.ToString();
                txtDiscount.Text   = goodsInfo.Discount.ToString();
                txtGoodsName.Text  = goodsInfo.GoodsName;
                oldName            = goodsInfo.GoodsName;
                txtGoodsNo.Text    = goodsInfo.GoodsNo;
                txtGoodsPYNo.Text  = goodsInfo.GoodsPYNo;
                txtGoodsSName.Text = goodsInfo.GoodsSName;
                string gtypeName = RequestStar.GetGoodsType(goodsInfo.GTypeId).GTypeName;
                txtGoodsType.Text = gtypeName;
                gTypeInfo         = new GoodsTypeInfoModel()
                {
                    GTypeId   = goodsInfo.GTypeId,
                    GTypeName = gtypeName
                };
                txtGoodTXNo.Text    = goodsInfo.GoodsTXNo;
                txtLowPrice.Text    = goodsInfo.LowPrice.ToString();
                txtPrePrice.Text    = goodsInfo.PrePrice.ToString();
                txtRemark.Text      = goodsInfo.Remark;
                txtRetailPrice.Text = goodsInfo.RetailPrice.ToString();
                if (goodsInfo.IsStopped == 1)
                {
                    chkStop.Checked = true;
                }
                cboGoodsProperties.Text = goodsInfo.GProperties;
                cboGUnits.Text          = goodsInfo.GUnit;
                if (!string.IsNullOrEmpty(goodsInfo.GoodsPic))
                {
                    string picPath = Application.StartupPath + "/" + goodsInfo.GoodsPic;
                    picGoods.ImageLocation = picPath;
                    oldPic = picPath;
                }
            }
        }
コード例 #9
0
        private void dgvGoodsTypeList_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            Action act = () =>
            {
                if (e.RowIndex >= 0)
                {
                    var curCell = dgvGoodsTypeList.Rows[e.RowIndex].Cells[e.ColumnIndex];
                    GoodsTypeInfoModel gtInfo  = dgvGoodsTypeList.Rows[e.RowIndex].DataBoundItem as GoodsTypeInfoModel;
                    string             cellVal = curCell.FormattedValue.ToString();
                    switch (cellVal)
                    {
                    case "添加子类别":
                        ShowAddTypeInfo(gtInfo.GTypeId);
                        break;

                    case "修改":
                        ShowEditTypeInfo(gtInfo);
                        break;

                    case "删除":
                        DeleteGType(1, gtInfo);
                        break;

                    case "恢复":
                        DeleteGType(0, gtInfo);
                        break;

                    case "永久删除":
                        DeleteGType(2, gtInfo);
                        break;
                    }
                }
            };

            act.TryCatch("操作商品类别数据异常!");
        }
コード例 #10
0
        /// <summary>
        /// 批量删除(逻辑删除)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbtnDelete_Click(object sender, EventArgs e)
        {
            Action act = () =>
            {
                //SelectedRows 选定行的集合(MultiSelect True )  多个行
                if (dgvGoodsTypeList.SelectedRows.Count == 0)
                {
                    MsgBoxHelper.MsgErrorShow("请选择要删除的商品类别信息");
                    return;
                }
                string title = "删除商品类别";
                if (MsgBoxHelper.MsgBoxConfirm(title, "您确定要删除选择的这些商品类别信息吗?") == DialogResult.Yes)
                {
                    List <int> typeIds          = new List <int>();
                    string     hasChildsNames   = "";
                    string     hasAddGoodsNames = "";
                    foreach (DataGridViewRow row in dgvGoodsTypeList.SelectedRows)
                    {
                        GoodsTypeInfoModel gtInfo = row.DataBoundItem as GoodsTypeInfoModel;
                        //如果该类别添加了商品,不允许删除
                        bool hasAddGoods = RequestStar.CheckIsAddGoods(gtInfo.GTypeId);
                        //如果该类别添加了子类别,不允许删除
                        bool hasChilds = RequestStar.HasChildTypes(gtInfo.GTypeId);
                        if (!hasAddGoods && !hasChilds)
                        {
                            typeIds.Add(gtInfo.GTypeId);
                        }
                        else if (hasAddGoods)
                        {
                            //MsgBoxHelper.MsgErrorShow($"该类别:{gtInfo.GTypeName} 已经添加商品,不能删除!");
                            if (hasAddGoodsNames.Length > 0)
                            {
                                hasAddGoodsNames += ",";
                            }
                            hasAddGoodsNames += gtInfo.GTypeName;
                        }
                        else if (hasChilds)
                        {
                            //MsgBoxHelper.MsgErrorShow($"该类别:{gtInfo.GTypeName} 已经添加了子类别,不能删除!");
                            //return;
                            if (hasChildsNames.Length > 0)
                            {
                                hasChildsNames += ",";
                            }
                            hasChildsNames += gtInfo.GTypeName;
                        }
                    }
                    if (typeIds.Count > 0)
                    {
                        bool   bl     = RequestStar.GoodsTypeLogicDeleteList(typeIds);//执行批量删除
                        string sucMsg = bl ? "成功" : "失败";
                        string msg    = $"选择的类别信息中符合删除要求的信息 删除 {sucMsg}!";

                        if (bl)
                        {
                            if (!string.IsNullOrEmpty(hasChildsNames))
                            {
                                msg += $" {hasChildsNames} 已经添加了子类别,不能删除!";
                            }
                            if (!string.IsNullOrEmpty(hasAddGoodsNames))
                            {
                                msg += $" {hasAddGoodsNames} 已经添加商品,不能删除!";
                            }
                            MsgBoxHelper.MsgBoxShow(title, msg);
                            LoadGoodsTypeList();
                            ReloadCboParents(typeIds);
                        }
                        else
                        {
                            MsgBoxHelper.MsgErrorShow(msg);
                        }
                    }
                    else
                    {
                        MsgBoxHelper.MsgErrorShow("没有符合删除要求的商品类别信息!");
                    }
                }
            };

            act.TryCatch("批量删除商品类别信息异常!");
        }
コード例 #11
0
        /// <summary>
        /// 提交功能
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            Action act = () =>
            {
                //信息获取
                int    parentId   = cboParents.SelectedValue.GetInt();
                string parentName = parentId == 0 ? null : cboParents.Text.Trim();
                string typeName   = txtGTypeName.Text.Trim();
                string typeNo     = txtGTypeNo.Text.Trim();
                string pyNo       = txtGTPYNo.Text.Trim();
                int    gorder     = txtGTOrder.Text.GetInt();

                //判空处理
                if (string.IsNullOrEmpty(typeName))
                {
                    MsgBoxHelper.MsgErrorShow("请输入商品类别名称!");
                    txtGTypeName.Focus();
                    return;
                }
                //判断已存在
                if (gTypeId == 0 || (!string.IsNullOrEmpty(oldName) && oldName != typeName))
                {
                    if (RequestStar.ExistName(typeName))
                    {
                        MsgBoxHelper.MsgErrorShow("该类别名称已存在!");
                        txtGTypeName.Focus();
                        return;
                    }
                }

                //信息封装
                GoodsTypeInfoModel gtInfo = new GoodsTypeInfoModel()
                {
                    GTypeId    = gTypeId,
                    GTypeName  = typeName,
                    GTypeNo    = typeNo,
                    GTPYNo     = pyNo,
                    GTOrder    = gorder,
                    ParentId   = parentId,
                    ParentName = parentName,
                    Creator    = uName
                };

                //方法执行
                bool bl         = false;
                int  gTypeIdNew = 0;
                if (gTypeId == 0)
                {
                    gTypeIdNew = RequestStar.AddGoodsType(gtInfo);
                    if (gTypeIdNew > 0)
                    {
                        bl             = true;
                        gtInfo.GTypeId = gTypeIdNew;
                    }
                }
                else
                {
                    if (CheckGoodsTypeInfo(gtInfo, oldInfo))
                    {
                        bl = RequestStar.UpdateGoodsType(gtInfo, oldName);
                    }
                    else
                    {
                        MsgBoxHelper.MsgErrorShow("没有要提交的信息");
                        return;
                    }
                }
                string actType  = gTypeId == 0 ? "添加" : "修改";
                string sucType  = bl ? "成功" : "失败";
                string actMsg   = $"商品类别信息:{typeName} {actType} {sucType}";
                string msgTitle = $"{actType}商品类别";
                if (bl)
                {
                    MsgBoxHelper.MsgBoxShow(msgTitle, actMsg);
                    LoadGoodsTypeList();
                    ReloadCboParents(gtInfo, false, 0);//刷新下拉框
                }
                else
                {
                    MsgBoxHelper.MsgErrorShow(actMsg);
                    return;
                }
            };

            act.TryCatch("保存类别信息异常!");
        }