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; }
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); }