protected void btn_Delete_Click(object sender, EventArgs e)
 {
     PDT_CategoryBLL _bll = new PDT_CategoryBLL(int.Parse(lbl_ID.Text));
     if (_bll.Delete() < 0)
     {
         lbl_AlertInfo.Text = "该目录包含下级目录,或该目录已被使用,请勿删除";
         return;
     }
     lbl_AlertInfo.Text = "";
     Response.Redirect("ProductCategory.aspx?SuperID=" + _bll.Model.SuperID.ToString());
 }
示例#2
0
        public string DoImportProduct(int TemplateID, int Client, ISheet Sheet, out int State)
        {
            string ImportInfo = "【商品资料】Excel表:";
            State = 0;
            IPT_UploadTemplateBLL _template = new IPT_UploadTemplateBLL(TemplateID);

            List<string> listPDT = new List<string>() { "序号", "大类", "小类", "商品编码", "产品名称", "规格型号", "大单位", "小单位", "整零换算系数", "整件重量", "销售价", "采购价", "保质期", "整件条码", "零售条码" };

            DataTable dt = null;
            bool flag = VertifySheet(Sheet, listPDT, out dt, ref ImportInfo);
            if (!flag) { State = 4; return ImportInfo; }

            foreach (DataRow dr in dt.Rows)//循环导入数据
            {
                try
                {
                    decimal _pdtBuyPrice = (!string.IsNullOrEmpty(dr["采购价"].ToString())) ? Convert.ToDecimal(dr["采购价"].ToString()) : 0;
                    decimal _pdtSalesPrice = (!string.IsNullOrEmpty(dr["销售价"].ToString())) ? Convert.ToDecimal(dr["销售价"].ToString()) : 0;
                    if (_pdtSalesPrice == 0) continue;//销售价格围标表示门店不经营

                    int _pdtID = 0;
                    string _pdtCode = dr["商品编码"].ToString();

                    IList<PDT_ProductExtInfo> _listPDTExtInfo = PDT_ProductExtInfoBLL.GetProductExtInfoList_BySupplier(_template.Model.ClientID).Where(m => m.Code == _pdtCode).ToList();
                    if (_listPDTExtInfo != null && _listPDTExtInfo.Count > 0)
                    {
                        ImportInfo += string.Format("序号为{0},产品编码为{1}的产品与现有产品编码重复,跳过此行信息\r\n", dr["序号"], _pdtCode);
                        continue;
                    }

                    int _pdtCategory = 0;//类别
                    IList<PDT_Product> listPdt = PDT_ProductBLL.GetModelList(string.Format(" OwnerType IN (1,2) AND FactoryCode='{0}' ", _pdtCode));
                    if (listPdt == null || listPdt.Count == 0)//添加新产品
                    {
                        #region 获取产品类别
                        IList<PDT_Category> _listCategory = PDT_CategoryBLL.GetModelList(" SuperID=1 AND ApproveFlag=1 AND(OwnerType IN(1,2) OR (OwnerType=3 AND OwnerClient=" + _template.Model.ClientID.ToString() + " )) AND Name='" + dr["大类"].ToString() + "'");//获取大类(大类可能属于平台级和厂商级,也有可能属于经销商自己)
                        if (_listCategory == null || _listCategory.Count == 0)
                        {
                            PDT_CategoryBLL _bllCategory = new PDT_CategoryBLL();
                            _bllCategory.Model.Name = dr["大类"].ToString();
                            _bllCategory.Model.SuperID = 1;
                            _bllCategory.Model.EnabledFlag = "Y";
                            _bllCategory.Model.OwnerType = 3;
                            _bllCategory.Model.OwnerClient = _template.Model.ClientID;
                            _bllCategory.Model.Remark = "Excel批量导入";
                            _bllCategory.Model.ApproveFlag = 1;
                            _bllCategory.Model.InsertTime = DateTime.Now;
                            _bllCategory.Model.InsertStaff = _template.Model.InsertStaff;
                            _pdtCategory = _bllCategory.Add();
                        }
                        else { _pdtCategory = _listCategory[0].ID; }
                        IList<PDT_Category> _listCategory2 = PDT_CategoryBLL.GetModelList(" ApproveFlag=1 AND SuperID=" + _pdtCategory.ToString() + " AND (OwnerType IN(1,2) OR (OwnerType=3 AND OwnerClient=" + _template.Model.ClientID.ToString() + ")) AND Name='" + dr["小类"].ToString() + "'");//获取小类
                        if (_listCategory2 == null || _listCategory2.Count == 0)
                        {
                            PDT_CategoryBLL _bllCategory = new PDT_CategoryBLL();
                            _bllCategory.Model.Name = dr["小类"].ToString();
                            _bllCategory.Model.SuperID = _pdtCategory;
                            _bllCategory.Model.EnabledFlag = "Y";
                            _bllCategory.Model.OwnerType = 3;
                            _bllCategory.Model.OwnerClient = _template.Model.ClientID;
                            _bllCategory.Model.Remark = "Excel批量导入";
                            _bllCategory.Model.ApproveFlag = 1;
                            _bllCategory.Model.InsertTime = DateTime.Now;
                            _bllCategory.Model.InsertStaff = _template.Model.InsertStaff;
                            _pdtCategory = _bllCategory.Add();
                        }
                        else { _pdtCategory = _listCategory2[0].ID; }
                        #endregion

                        string _pdtName = dr["产品名称"].ToString();

                        if (string.IsNullOrEmpty(_pdtCode) && string.IsNullOrEmpty(_pdtName))
                        {
                            ImportInfo += string.Format("序号为{0}的行产品编码和名称均为空,跳过此行信息\r\n", dr["序号"]);
                            continue;
                        }
                        string _pdtSpec = dr["规格型号"].ToString();
                        IList<Dictionary_Data> _listData = DictionaryBLL.Dictionary_Data_GetAlllList(" TableName='PDT_Packaging' ");
                        string _strPdtTrafficPackaging = _listData.First(m => m.Name == dr["大单位"].ToString()).Code;
                        int _pdtTrafficPackaging = 0; int.TryParse(_strPdtTrafficPackaging, out _pdtTrafficPackaging);//整件单位
                        string _strPdtPackaging = _listData.First(m => m.Name == dr["小单位"].ToString()).Code;
                        int _pdtPackaging = 0; int.TryParse(_strPdtPackaging, out _pdtPackaging);//零售包装

                        int _pdtConvertFactor = (!string.IsNullOrEmpty(dr["整零换算系数"].ToString())) ? Convert.ToInt32(dr["整零换算系数"].ToString()) : 0;//重要信息强制显示,出错时直接跳过此行
                        decimal _pdtWeight = 0; decimal.TryParse(dr["整件重量"].ToString(), out _pdtWeight);
                        int _pdtExpiry = 0; int.TryParse(dr["保质期"].ToString(), out _pdtExpiry);
                        string _pdtBoxBarCode = dr["整件条码"].ToString();
                        string _pdtBarCode = dr["零售条码"].ToString();

                        PDT_ProductBLL _bllProduct = new PDT_ProductBLL();
                        _bllProduct.Model.FullName = _pdtName;
                        _bllProduct.Model.ShortName = _pdtName;
                        _bllProduct.Model.Spec = _pdtSpec;
                        _bllProduct.Model.TrafficPackaging = _pdtTrafficPackaging;
                        _bllProduct.Model.Packaging = _pdtPackaging;
                        _bllProduct.Model.ConvertFactor = _pdtConvertFactor;
                        _bllProduct.Model.BoxBarCode = _pdtBoxBarCode;
                        _bllProduct.Model.BarCode = _pdtBarCode;
                        _bllProduct.Model.Weight = _pdtWeight;
                        _bllProduct.Model.Expiry = _pdtExpiry;
                        _bllProduct.Model.Category = _pdtCategory;
                        _bllProduct.Model.State = 1;//在用产品
                        _bllProduct.Model.OwnerClient = _template.Model.ClientID;//所属经销商
                        _bllProduct.Model.OwnerType = 3;//经销商级
                        _bllProduct.Model.ApproveFlag = 1;
                        _bllProduct.Model.InsertTime = DateTime.Now;
                        _bllProduct.Model.InsertStaff = _template.Model.InsertStaff;
                        _bllProduct.Model.Remark = "Excel批量导入";

                        _pdtID = _bllProduct.Add();
                    }
                    else _pdtID = listPdt[0].ID;//已存在的厂商或平台级产品

                    IList<PDT_ProductExtInfo> _listPdtExtInfo = PDT_ProductExtInfoBLL.GetModelList(" Product=" + _pdtID.ToString() + " AND Supplier=" + _template.Model.ClientID.ToString() + " AND ApproveFlag=1 ");
                    if (_listPdtExtInfo == null || _listPdtExtInfo.Count == 0)
                    {
                        PDT_ProductExtInfoBLL _pdtExtInfoBLL = new PDT_ProductExtInfoBLL();
                        _pdtExtInfoBLL.Model.Supplier = _template.Model.ClientID;
                        _pdtExtInfoBLL.Model.Product = _pdtID;
                        _pdtExtInfoBLL.Model.Code = _pdtCode;
                        _pdtExtInfoBLL.Model.BuyPrice = _pdtBuyPrice;
                        _pdtExtInfoBLL.Model.SalesPrice = _pdtSalesPrice;
                        _pdtExtInfoBLL.Model.SalesState = 1;
                        _pdtExtInfoBLL.Model.Category = _pdtCategory;
                        _pdtExtInfoBLL.Model.Remark = "Excel批量导入";
                        _pdtExtInfoBLL.Model.ApproveFlag = 1;
                        _pdtExtInfoBLL.Model.InsertStaff = _template.Model.InsertStaff;
                        _pdtExtInfoBLL.Model.InsertTime = DateTime.Now;
                        _pdtExtInfoBLL.Add();
                    }
                    else
                    {
                        PDT_ProductExtInfoBLL _pdtExtInfoBLL = new PDT_ProductExtInfoBLL(_listPdtExtInfo[0].ID);
                        _pdtExtInfoBLL.Model.BuyPrice = _pdtBuyPrice;
                        _pdtExtInfoBLL.Model.SalesPrice = _pdtSalesPrice;
                        _pdtExtInfoBLL.Model.Remark = "Excel批量导入时修改";
                        _pdtExtInfoBLL.Model.UpdateStaff = _template.Model.InsertStaff;
                        _pdtExtInfoBLL.Model.UpdateTime = DateTime.Now;
                        _pdtExtInfoBLL.Update();
                    }
                }
                catch (Exception ex)
                {
                    ImportInfo += "导入序列号为" + dr["序号"].ToString() + "的数据行时出现错误,错误说明:" + ex.Message + "\r\n";
                    State = 5;
                    continue;
                }
            }
            if (State == 0) State = 3;
            ImportInfo += (State == 3 ? "导入完成!\r\n" : "");
            IPT_UploadTemplateMessageBLL _bllUploadTemplateMessage = new IPT_UploadTemplateMessageBLL();
            _bllUploadTemplateMessage.Model.TemplateID = TemplateID;
            _bllUploadTemplateMessage.Model.MessageType = State;
            _bllUploadTemplateMessage.Model.Content = ImportInfo;
            _bllUploadTemplateMessage.Add();
            return ImportInfo;
        }
    protected void btn_Save_Click(object sender, EventArgs e)
    {
        if ((int)ViewState["ID"] == 1) return;

        PDT_CategoryBLL _bll;
        if ((int)ViewState["ID"] == 0)
        {
            _bll = new PDT_CategoryBLL();
        }
        else
        {
            _bll = new PDT_CategoryBLL((int)ViewState["ID"]);
        }

        _bll.Model.Name = tbx_Name.Text;
        _bll.Model.SuperID = int.Parse(tree_SuperID.SelectValue);
        _bll.Model.EnabledFlag = ddl_EnabledFlag.SelectedValue;

        if (_bll.Model.SuperID == 0) return;

        #region 为方便操作,分类最多开放至3级
        int level = 1, superid = _bll.Model.SuperID;
        while (superid != 1)
        {
            level++;
            superid = new PDT_CategoryBLL(superid).Model.SuperID;
        }
        if (level > 3)
        {
            MessageBox.Show(this, "商品级别超预设层级数!");
            return;
        }
        #endregion

        if ((int)ViewState["ID"] == 0)
        {
            _bll.Model.ApproveFlag = 1;
            _bll.Model.InsertStaff = (int)Session["UserID"];
            _bll.Model.OwnerType = (int)Session["OwnerType"];
            _bll.Model.OwnerClient = (int)Session["OwnerClient"];

            int ret = _bll.Add();
            if (ret < 0)
            {
                lbl_AlertInfo.Text = "添加目录失败!";
                return;
            }
            else
                ViewState["ID"] = ret;
        }
        else
        {
            if (_bll.Model.SuperID == _bll.Model.ID) return;
            int ret = _bll.Update();

            switch (ret)
            {
                case -1:
                    lbl_AlertInfo.Text = "更新目录失败!";
                    return;
                case -2:
                    lbl_AlertInfo.Text = "更新目录失败,不能将当前目录设置为上级目录";
                    return;
                case -3:
                    lbl_AlertInfo.Text = "更新目录失败,不能将当前目录的子目录设置为上级目录";
                    return;
            }
        }

        DataCache.RemoveCache("Cache-TreeTableBLL-GetAllNode-MCS_Pub.dbo.PDT_Category");
        tree_SuperID.DataSource = null;

        Response.Redirect("ProductCategory.aspx?ID=" + tree_SuperID.SelectValue);
    }
    private void BindData()
    {
        PDT_CategoryBLL _bll = new PDT_CategoryBLL((int)ViewState["ID"]);
        if (_bll.Model == null) return;

        lbl_ID.Text = _bll.Model.ID.ToString();
        tbx_Name.Text = _bll.Model.Name;
        tree_SuperID.SelectValue = _bll.Model.SuperID.ToString();
        ddl_EnabledFlag.SelectedValue = _bll.Model.EnabledFlag;

        btn_Save.Text = "修改";
        btn_Save.ForeColor = System.Drawing.Color.Red;
        btn_Delete.Enabled = true;
        MessageBox.ShowConfirm(btn_Delete, "数据删除将不可恢复,确定删除么?");
        btn_Cancel.Enabled = true;
        bt_AddSub.Enabled = true;

        lbl_AlertInfo.Text = "";

        if ((int)ViewState["ID"] == 1)
        {
            btn_Save.Enabled = false;
        }
        else
        {
            if ((int)Session["OwnerType"] == _bll.Model.OwnerType && (int)Session["OwnerClient"] == _bll.Model.OwnerClient)
            {
                btn_Save.Enabled = true;
                btn_Delete.Enabled = true;
            }
            else
            {
                btn_Save.Enabled = false;
                btn_Delete.Enabled = false;
                //bt_AddSub.Enabled = false;
            }
        }

        btn_Delete.Enabled = PDT_CategoryBLL.GetModelList("SuperID=" + ViewState["ID"].ToString()).Count == 0;
    }