Ejemplo n.º 1
0
    protected void select_Product_TextChange(object sender, MCSControls.MCSWebControls.TextChangeEventArgs e)
    {
        PDT_ProductExtInfo p = PDT_ProductExtInfoBLL.GetProductExtInfo_ByCode((int)Session["OwnerClient"], e.Code);

        if (p != null)
        {
            PDT_ProductBLL productbll = new PDT_ProductBLL(p.Product);
            if (productbll.Model == null)
            {
                return;
            }

            select_Product.SelectValue = p.Product.ToString();
            select_Product.SelectText  = productbll.Model.FullName;

            select_Product_SelectChange(null, null);
            tbx_Quantity.Text = "";
            tbx_Quantity.Focus();
        }
    }
Ejemplo n.º 2
0
        private void FillModel(PDT_Product m, int TDP)
        {
            ID            = m.ID;
            FullName      = m.FullName;
            ShortName     = m.ShortName;
            Code          = m.Code;
            BarCode       = m.BarCode;
            BoxBarCode    = m.BoxBarCode;
            ConvertFactor = m.ConvertFactor;
            Spec          = m.Spec;
            Remark        = m.Remark;
            Grade         = m.Grade;
            Category      = m.Category;
            FactoryCode   = m.FactoryCode;
            FactoryName   = m.FactoryName;

            #region 获取商品的TDP扩展管理信息
            if (TDP != 0)
            {
                IList <PDT_ProductExtInfo> exts = PDT_ProductExtInfoBLL.GetModelList("Supplier=" + TDP.ToString() + " AND Product=" + m.ID.ToString());
                if (exts.Count > 0)
                {
                    TDPCode = exts[0].Code;
                    if (exts[0].Category != 0)
                    {
                        Category = exts[0].Category;
                    }
                    BuyPrice   = exts[0].BuyPrice;
                    SalesPrice = exts[0].SalesPrice;
                }
            }
            #endregion

            #region 获取品牌、系列、类别名称
            if (m.Brand > 0)
            {
                PDT_Brand brand = new PDT_BrandBLL(m.Brand).Model;
                if (brand != null)
                {
                    BrandName = brand.Name;
                }
            }
            if (m.Classify > 0)
            {
                PDT_Classify classify = new PDT_ClassifyBLL(m.Classify).Model;
                if (classify != null)
                {
                    ClassifyName = classify.Name;
                }
            }
            if (Category > 0)
            {
                CategoryName = PDT_CategoryBLL.GetFullCategoryName(Category);
            }
            #endregion

            #region 获取字典表名称
            try
            {
                if (m.Grade > 0)
                {
                    Dictionary_Data dic = DictionaryBLL.GetDicCollections("PDT_Grade")[m.Grade.ToString()];
                    if (dic != null)
                    {
                        GradeName = dic.Name;
                    }
                }

                if (m.TrafficPackaging > 0)
                {
                    Dictionary_Data dic = DictionaryBLL.GetDicCollections("PDT_Packaging")[m.TrafficPackaging.ToString()];
                    if (dic != null)
                    {
                        TrafficPackagingName = dic.Name;
                    }
                }
                if (m.Packaging > 0)
                {
                    Dictionary_Data dic = DictionaryBLL.GetDicCollections("PDT_Packaging")[m.Packaging.ToString()];
                    if (dic != null)
                    {
                        PackagingName = dic.Name;
                    }
                }
            }
            catch (System.Exception err)
            {
                LogWriter.WriteLog("MCSFramework.WSI.Product", err);
            }
            #endregion

            #region 获取首要图片
            string condition = " RelateType=11 AND RelateID=" + m.ID.ToString() + " AND MCS_SYS.dbo.UF_Spilt(ExtPropertys,'|',1)='Y'";
            IList <ATMT_Attachment> lists = ATMT_AttachmentBLL.GetModelList(condition);
            if (lists.Count > 0 && ATMT_AttachmentBLL.IsImage(lists[0].ExtName))
            {
                ImageGUID = lists[0].GUID;
            }
            #endregion

            #region 获取附件明细
            Atts = new List <Attachment>();
            IList <ATMT_Attachment> atts = ATMT_AttachmentBLL.GetAttachmentList(11, m.ID, new DateTime(1900, 1, 1), new DateTime(2100, 1, 1));
            foreach (ATMT_Attachment item in atts.OrderBy(p => p.Name))
            {
                Atts.Add(new Attachment(item));
            }
            #endregion
        }
Ejemplo n.º 3
0
        public string DoImportInventory(int TemplateID, int Client, ISheet Sheet, out int State)
        {
            string ImportInfo = "【期初库存】Excel表:";

            State = 0;
            IPT_UploadTemplateBLL _template = new IPT_UploadTemplateBLL(TemplateID);

            List <string> listSupplier = new List <string>()
            {
                "序号", "商品编码", "商品名称", "批号", "生产日期", "库存成本价", "整件数量", "零散数量"
            };

            DataTable dt   = null;
            bool      flag = VertifySheet(Sheet, listSupplier, out dt, ref ImportInfo);

            if (!flag)
            {
                State = 4; return(ImportInfo);
            }

            foreach (DataRow dr in dt.Rows)//循环导入数据
            {
                try
                {
                    int _pdtTrafficPackaging = (!string.IsNullOrEmpty(dr["整件数量"].ToString())) ? Convert.ToInt32(dr["整件数量"].ToString()) : 0;
                    int _pdtPackaging        = (!string.IsNullOrEmpty(dr["零散数量"].ToString())) ? Convert.ToInt32(dr["零散数量"].ToString()) : 0;
                    if (_pdtPackaging == 0 && _pdtTrafficPackaging == 0)
                    {
                        ImportInfo += string.Format("序号为{0}的行导入库存数量为0,跳过此行信息\r\n", dr["序号"]);
                        continue;
                    }
                    string _pdtCode = dr["商品编码"].ToString();
                    IList <PDT_ProductExtInfo> _listPdtExtInfo = PDT_ProductExtInfoBLL.GetProductExtInfoList_BySupplier(_template.Model.ClientID);
                    PDT_ProductExtInfo         _ProductExtInfo = _listPdtExtInfo.FirstOrDefault(m => m.Code == _pdtCode);
                    if (_ProductExtInfo == null || _ProductExtInfo.ID == 0)
                    {
                        ImportInfo += string.Format("序号为{0}的行找不到对应编码的产品,跳过此行信息\r\n", dr["序号"]);
                        continue;
                    }
                    int _pdtID = _ProductExtInfo.Product;

                    //string _pdtName = dr["商品名称"].ToString();
                    string   _pdtLotNumber = dr["批号"].ToString();
                    DateTime _pdtProductDate; DateTime.TryParse(dr["生产日期"].ToString(), out _pdtProductDate);
                    decimal  _pdtPrice    = (!string.IsNullOrEmpty(dr["库存成本价"].ToString())) ? Convert.ToDecimal(dr["库存成本价"].ToString()) : 0;
                    int      _pdtQuantity = new PDT_ProductBLL(_pdtID).Model.ConvertFactor *_pdtTrafficPackaging + _pdtPackaging;


                    #region 获取经销商主仓库
                    int _WareHouse = 0;
                    IList <CM_WareHouse> _listWareHouse = CM_WareHouseBLL.GetModelList("  Classify=1 AND ApproveFlag=1 AND Client=" + _template.Model.ClientID.ToString());
                    if (_listWareHouse != null || _listWareHouse.Count > 0)
                    {
                        _WareHouse = _listWareHouse[0].ID;
                    }
                    else
                    {
                        CM_WareHouseBLL _bllWareHouse = new CM_WareHouseBLL();
                        _bllWareHouse.Model.Name        = "默认主仓库";
                        _bllWareHouse.Model.Client      = _template.Model.ClientID;
                        _bllWareHouse.Model.InsertStaff = _template.Model.InsertStaff;
                        _bllWareHouse.Model.ApproveFlag = 1;
                        _WareHouse = _bllWareHouse.Add();
                    }
                    #endregion

                    int _result = INV_InventoryBLL.IncreaseQuantity(_WareHouse, _pdtID, _pdtLotNumber, _pdtPrice, _pdtQuantity);
                    if (_result != 0)
                    {
                        ImportInfo += "导入序列号为" + dr["序号"].ToString() + "的销量时出现错误";
                        State       = 5;
                        continue;
                    }
                }
                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);
        }
Ejemplo n.º 4
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;
        }
Ejemplo n.º 5
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);
        }