Beispiel #1
0
    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;
    }
Beispiel #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);
        }