/// <summary> /// 数据源 /// </summary> /// <returns></returns> public string ShowProductSource() { ProductStockBLL psb = new ProductStockBLL(); List <model.productsource> list = psb.GetProductSourceAll(); StringBuilder alltable = new StringBuilder(); alltable.Append("<table id='StcokTable' class='mytable' style='font-size:12px;'><tr style='text-align:center;'>"); alltable.Append("<th>编号</th>"); alltable.Append("<th>数据源名</th>"); alltable.Append("<th>已开放</th>"); alltable.Append("<th>未开放</th>"); alltable.Append("<th>操作</th>"); alltable.Append("<th>细节</th>"); alltable.Append("</tr>"); for (int i = 0; i < list.Count; i++) { alltable.Append("<tr style='text-align:center;'>"); alltable.Append("<td>" + list[i].Id + "</td>"); alltable.Append("<td>" + list[i].sourceName + "</td>"); alltable.Append("<td>" + psb.GetProductStockOpenCount(list[i].SourceCode, "2") + "</td>"); alltable.Append("<td>" + psb.GetProductStockOpenCount(list[i].SourceCode, "1") + "</td>"); alltable.Append("<td><a href='#' onclick='OpenAll(\"" + list[i].SourceCode + "\",2)' >开放数据源</a>丨丨<a href='#' onclick='OpenAll(\"" + list[i].SourceCode + "\",1)'>暂停数据源</a></td>"); alltable.Append("<td><a href='#' onclick='QueryBrand(\"" + list[i].SourceCode + "\")'>查看品牌</a>丨丨<a href='#' onclick='QueryType(\"" + list[i].SourceCode + "\")'>查看类别</a></td>"); alltable.Append("</tr>"); } return(alltable.ToString()); }
/// <summary> /// 显示品牌配置 /// </summary> /// <returns></returns> public string GetBrandVen() { ProductStockBLL psb = new ProductStockBLL(); string vencode = Request.Form["vencode"] == null ? "" : Request.Form["vencode"].ToString(); StringBuilder allpage = new StringBuilder(); string[] str = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; char [] cr = new char [] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; for (int i = 0; i < str.Length; i++) { allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' type='checkbox' id='" + str[i] + "' onchange='CheckAll(\"" + str[i] + "\")' />" + str[i] + "</div>"); List <model.BrandVen> list = psb.GetBrandByVencode(vencode); list = list.Where(a => a.BrandNameVen.StartsWith(str[i])).ToList(); for (int j = 0; j < list.Count; j++) { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' Genre='Brand' name='" + str[i] + "' id='" + list[j].BrandAbridge + "'>" + list[j].BrandNameVen + "</label></div>"); } allpage.Append("</div><div style='clear:both'></div>"); } List <model.BrandVen> listall = psb.GetBrandByVencode(vencode); for (int i = 0; i < str.Length; i++) { listall = listall.Where(a => a.BrandNameVen.StartsWith(str[i]) == false).ToList(); } allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' type='checkbox' id='else' onchange='CheckAll(else)' />其他</div>"); for (int i = 0; i < listall.Count; i++) { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' Genre='Brand' name='else' id='" + listall[i].BrandAbridge + "'>" + listall[i].BrandNameVen + "</label></div>"); } return(allpage.ToString()); }
public ActionResult BrandOpenProduct() { ProductStockBLL psb = new ProductStockBLL(); int roleId = helpcommon.ParmPerportys.GetNumParms(userInfo.User.personaId); int menuId = helpcommon.ParmPerportys.GetNumParms(Request.QueryString["menuId"]); ViewData["myMenuId"] = menuId; PublicHelpController ph = new PublicHelpController(); if (userInfo.User.userName == "sa") { funName f = new funName(); System.Reflection.MemberInfo[] properties = f.GetType().GetMembers(); foreach (System.Reflection.MemberInfo item in properties) { string value = item.Name; ViewData[value] = 1; } } BrandOpenProductSaveMenuId = menuId; if (!ph.isFunPermisson(roleId, menuId, funName.selectName)) { return(View("../NoPermisson/Index")); } ProductHelper php = new ProductHelper(); ViewData["Vencode"] = php.GetVencodeDDlist(); return(View()); }
/// <summary> /// 供应商列表 /// </summary> /// <returns></returns> public string ShowVencode() { StringBuilder DroVencode = new StringBuilder(200);; ProductStockBLL psb = new ProductStockBLL(); List <model.productsource> listSource = psb.GetVencodeProduct(); List <SelectListItem> list = new List <SelectListItem>(); DroVencode.Append("<option value='0'>请选择</option>"); for (int i = 0; i < listSource.Count; i++) { DroVencode.Append("<option value='" + listSource[i].SourceCode + "'>" + listSource[i].sourceName + "</option>"); } return(DroVencode.ToString()); }
/// <summary> /// 开放或者暂停整个数据源 /// </summary> /// <returns></returns> public string OpenAll() { ProductStockBLL psb = new ProductStockBLL(); string vencode = Request.Form["Vencode"] == null ? "" : Request.Form["Vencode"].ToString(); string openstate = Request.Form["OpenState"] == null ? "" : Request.Form["OpenState"].ToString(); if (psb.OpenAll(vencode, openstate)) { return("操作成功"); } else { return("操作失败"); } }
/// <summary> /// 选择暂停 /// </summary> /// <returns></returns> public string CloseOperation() { ProductStockBLL psb = new ProductStockBLL(); string list = Request.Form["list"].ToString(); string[] str = list.Split(','); DataTable dt = new DataTable(); dt.Columns.Add("Scode"); dt.Columns.Add("Vencode"); for (int i = 0; i < str.Length; i++) { DataRow dr = dt.NewRow(); dr["Scode"] = str[i].Split('❤')[0]; dr["Vencode"] = str[i].Split('❤')[1]; dt.Rows.Add(dr); } return(psb.ProductOpenScode(dt, "1")); }
/// <summary> /// 显示类别 /// </summary> /// <returns></returns> public string GetProductVen() { ProductStockBLL psb = new ProductStockBLL(); string vencode = Request.Form["vencode"] == null ? "" : Request.Form["vencode"].ToString(); StringBuilder allpage = new StringBuilder(); List <model.productbigtype> listBigType = psb.GetProductBigTypeVencode(); for (int i = 0; i < listBigType.Count; i++) { allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' type='checkbox' id='" + listBigType[i].Id + "' onchange='CheckAll(\"" + listBigType[i].Id + "\")' />" + listBigType[i].bigtypeName + "</div>"); List <model.producttypeVen> list = psb.GetProductTypeVencode(vencode); list = list.Where(a => a.BigId == listBigType[i].Id).ToList(); for (int j = 0; j < list.Count; j++) { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' Genre='Brand' name='" + listBigType[i].Id + "' id='" + list[j].TypeNo + "'>" + list[j].TypeName + "</label></div>"); } allpage.Append("</div><div style='clear:both'></div>"); } return(allpage.ToString()); }
/// <summary> /// 数据源库存开放或者关闭 /// </summary> /// <returns></returns> public string OpenProduct() { ProductStockBLL psb = new ProductStockBLL(); string Dates = Request.Form["OpenArry"] == null ? "" : Request.Form["OpenArry"].ToString();//品牌缩写或者类别编号 string [] Arry = Dates.Split(','); string vencode = Request.Form["Vencode"] == null ? "" : Request.Form["Vencode"].ToString(); //数据源编号 string openstate = Request.Form["OpenState"] == null ? "" : Request.Form["OpenState"].ToString(); //1-暂停 2-开放 string opentype = Request.Form["OpenType"] == null ? "" : Request.Form["OpenType"].ToString(); //开放类型 Brand-开放品牌 ProductType-开放类别 if (opentype == "Brand") { bool result = psb.OpenPorudctBrand(Arry, openstate, vencode); if (result) { return("操作成功!"); } else { return("操作失败!"); } } else if (opentype == "ProductType") { bool result = psb.OpenPorudctType(Arry, openstate, vencode); if (result) { return("操作成功!"); } else { return("操作失败!"); } } else { return("操作失败"); } }
/// <summary> /// 批量关闭 /// </summary> /// <returns></returns> public string CloseOperationAll() { ProductStockBLL psb = new ProductStockBLL(); string[] str = new string[17]; string scode = Request.Form["scode"] == null ? "" : Request.Form["scode"].ToString().Trim(); string style = Request.Form["style"] == null ? "" : Request.Form["style"].ToString().Trim(); string price = Request.Form["price"] == null ? "" : Request.Form["price"].ToString().Trim(); string price1 = Request.Form["price1"] == null ? "" : Request.Form["price1"].ToString().Trim(); string cat = Request.Form["Cat1"] == null ? "" : Request.Form["Cat1"].ToString().Trim(); string brand = Request.Form["brand"] == null ? "" : Request.Form["brand"].ToString().Trim();//品牌 string stcok = Request.Form["stcok"] == null ? "" : Request.Form["stcok"].ToString().Trim(); string stcok1 = Request.Form["stcok1"] == null ? "" : Request.Form["stcok1"].ToString().Trim(); string time = Request.Form["time"] == null ? "" : Request.Form["time"].ToString().Trim(); string time1 = Request.Form["time1"] == null ? "" : Request.Form["time1"].ToString().Trim(); string CatLb = Request.Form["Cat2"] == null ? "" : Request.Form["Cat2"].ToString().Trim(); //类别 string Vencode = Request.Form["Vencode"] == null ? "" : Request.Form["Vencode"].ToString().Trim(); //供应商 str[0] = scode; str[1] = style; str[2] = price; str[3] = price1; str[4] = cat;//季节 str[5] = stcok; str[6] = stcok1; str[7] = brand; //品牌 str[8] = time; str[9] = time1; str[10] = CatLb; //类别 str[11] = Vencode; //供应商 str[12] = userInfo.User.Id.ToString(); str[13] = ""; str[14] = ""; str[15] = Request.Form["Imagefile"] == null ? "" : Request.Form["Imagefile"].ToString(); str[16] = Request.Form["Descript"] == null ? "" : Request.Form["Descript"].ToString(); DataTable dt = psb.GetProductOpenScode(str); return(psb.ProductOpenScode(dt, "1")); }
/// <summary> /// 页面显示 /// </summary> /// <returns></returns> public string TypeShow() { if (userInfo.User.personaId == 1) //如果是管理员 { #region 管理员 ProductStockBLL psb = new ProductStockBLL(); string vencode = Request.Form["vencode"] == null ? "1" : Request.Form["vencode"].ToString(); string roleId = Request.Form["roleId"] == null ? "0" : Request.Form["roleId"].ToString(); StringBuilder allpage = new StringBuilder(); List <model.productbigtype> listBigType = psb.GetProductBigTypeVencode(); string[] BigType; string[] Type = ptb.GetTypePerssoin(roleId, vencode, out BigType); for (int i = 0; i < listBigType.Count; i++) { if (BigType.Contains(listBigType[i].Id.ToString())) { allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' checked='checked' category='BigType' type='checkbox' id='" + listBigType[i].Id + "' onchange='CheckAll(\"" + listBigType[i].Id + "\")' />" + listBigType[i].bigtypeName + "</div>"); } else { allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' category='BigType' type='checkbox' id='" + listBigType[i].Id + "' onchange='CheckAll(\"" + listBigType[i].Id + "\")' />" + listBigType[i].bigtypeName + "</div>"); } List <model.producttypeVen> list = psb.GetProductTypeVencode(vencode); list = list.Where(a => a.BigId == listBigType[i].Id).ToList(); for (int j = 0; j < list.Count; j++) { if (Type.Contains(list[j].TypeNo.ToString())) { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' checked='checked' category='Type' name='" + listBigType[i].Id + "' id='" + list[j].TypeNo + "'>" + list[j].TypeName + "</label></div>"); } else { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' category='Type' name='" + listBigType[i].Id + "' id='" + list[j].TypeNo + "'>" + list[j].TypeName + "</label></div>"); } } allpage.Append("</div><div style='clear:both'></div>"); } return(allpage.ToString()); #endregion } else { #region 其他角色 ProductStockBLL psb = new ProductStockBLL(); string vencode = Request.Form["vencode"] == null ? "1" : Request.Form["vencode"].ToString(); string roleId = Request.Form["roleId"] == null ? "0" : Request.Form["roleId"].ToString(); StringBuilder allpage = new StringBuilder(); List <model.productbigtype> listBigType = psb.GetProductBigTypeVencode(); string[] BigType; //当前角色的大类别权限 string[] Type = ptb.GetTypePerssoin(roleId, vencode, out BigType); //当前角色的权限 string[] UserType = ptb.GetTypeUser(userInfo.User.Id.ToString(), vencode); //用户自己的权限 for (int i = 0; i < listBigType.Count; i++) { if (BigType.Contains(listBigType[i].Id.ToString())) { List <model.producttypeVen> list = psb.GetProductTypeVencode(vencode, listBigType[i].Id);//通过大类别获取小类别 allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' checked='checked' category='BigType' type='checkbox' id='" + listBigType[i].Id + "' onchange='CheckAll(\"" + listBigType[i].Id + "\")' />" + listBigType[i].bigtypeName + "</div>"); for (int j = 0; j < list.Count; j++) { if (Type.Contains(list[j].TypeNo)) { if (UserType.Contains(list[j].TypeNo)) { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' checked='checked' category='Type' name='" + listBigType[i].Id + "' id='" + list[j].TypeNo + "'>" + list[j].TypeName + "</label></div>"); } else { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' category='Type' name='" + listBigType[i].Id + "' id='" + list[j].TypeNo + "'>" + list[j].TypeName + "</label></div>"); } } } } allpage.Append("</div><div style='clear:both'></div>"); } return(allpage.ToString()); #endregion } }
/// <summary> /// 显示需要选择的页面 /// </summary> /// <returns></returns> public string BrandShowPage() { StringBuilder allpage = new StringBuilder(); if (userInfo.User.personaId == 1) //如果是超级管理员 { #region 超级管理员 ProductStockBLL psb = new ProductStockBLL(); string vencode = Request.Form["vencode"] == null ? "" : Request.Form["vencode"].ToString(); string roleId = Request.Form["roleId"] == null ? "0" : Request.Form["roleId"].ToString(); string[] BrandUser = ptb.GetBrandRole(vencode, roleId); string[] str = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; for (int i = 0; i < str.Length; i++) { string[] RoleBrand = bb.GetUserBrandName(roleId, vencode, str[i]); if (RoleBrand.Length > 0) { allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' checked='checked' type='checkbox' id='" + str[i] + "' onchange='CheckAll(\"" + str[i] + "\")' />" + str[i] + "</div>"); } else { allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' type='checkbox' id='" + str[i] + "' onchange='CheckAll(\"" + str[i] + "\")' />" + str[i] + "</div>"); } List <model.BrandVen> list = psb.GetBrandByVencode(vencode); list = list.Where(a => a.BrandNameVen.StartsWith(str[i])).ToList();//匹配首字母 for (int j = 0; j < list.Count; j++) { if (RoleBrand.Contains(list[j].BrandAbridge)) { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' checked='checked' Genre='Brand' name='" + str[i] + "' id='" + list[j].BrandAbridge + "'>" + list[j].BrandNameVen + "</label></div>"); } else { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' Genre='Brand' name='" + str[i] + "' id='" + list[j].BrandAbridge + "'>" + list[j].BrandNameVen + "</label></div>"); } } allpage.Append("</div><div style='clear:both'></div>"); } List <model.BrandVen> listall = psb.GetBrandByVencode(vencode); for (int i = 0; i < str.Length; i++) { listall = listall.Where(a => a.BrandNameVen.StartsWith(str[i]) == false).ToList();//排除首字母A-Z } string[] elsrRoleBrand = bb.GetUserBrandName(roleId, vencode); if (elsrRoleBrand.Length > 0) { allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' type='checkbox' checked='checked' id='rest' onchange='CheckAll(\"rest\")' />其他</div>"); } else { allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' type='checkbox' id='rest' onchange='CheckAll(\"rest\")' />其他</div>"); } for (int i = 0; i < listall.Count; i++) { if (elsrRoleBrand.Contains(listall[i].BrandAbridge)) { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' Genre='Brand' checked='checked' name='rest' id='" + listall[i].BrandAbridge + "'>" + listall[i].BrandNameVen + "</label></div>"); } else { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' Genre='Brand' name='rest' id='" + listall[i].BrandAbridge + "'>" + listall[i].BrandNameVen + "</label></div>"); } } allpage.Append("</div><div style='clear:both'></div>"); return(allpage.ToString()); #endregion } else { #region 用户 string vencode = Request.Form["vencode"] == null ? "" : Request.Form["vencode"].ToString(); string roleId = Request.Form["roleId"] == null ? "0" : Request.Form["roleId"].ToString(); string[] str = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; string[] strUserBrand = bb.GetUserBrandSx(userInfo.User.Id.ToString(), vencode); //首字母A-Z for (int i = 0; i < str.Length; i++) { #region List <model.BrandConfig> list = bb.GetAllUserBrand(roleId, vencode, str[i]); if (list.Count > 0) { allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' checked='checked' type='checkbox' id='" + str[i] + "' onchange='CheckAll(\"" + str[i] + "\")' />" + str[i] + "</div>"); for (int j = 0; j < list.Count; j++) { if (strUserBrand.Contains(list[j].BrandId)) { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' checked='checked' Genre='Brand' name='" + str[i] + "' id='" + list[j].BrandId + "'>" + list[j].BrandName + "</label></div>"); } else { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' Genre='Brand' name='" + str[i] + "' id='" + list[j].BrandId + "'>" + list[j].BrandName + "</label></div>"); } } } allpage.Append("</div><div style='clear:both'></div>"); #endregion } //其他字符开头 List <model.BrandConfig> listAll = bb.GetAllUserBrand(roleId, vencode); for (int i = 0; i < str.Length; i++) { listAll = listAll.Where(a => a.BrandName.ToUpper().StartsWith(str[i]) == false).ToList();//排除首字母A-Z } allpage.Append("<div><div style='color:blue;font-size:15px;'><input class='ckeckboxAll' type='checkbox' checked='checked' id='else' onchange='CheckAll(else)' />其他</div>"); for (int i = 0; i < listAll.Count; i++) { if (strUserBrand.Contains(listAll[i].BrandId)) { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' checked='checked' Genre='Brand' name='else' id='" + listAll[i].BrandId + "'>" + listAll[i].BrandName + "</label></div>"); } else { allpage.Append("<div style='float:left;min-width:120px'><label><input type='checkbox' Genre='Brand' name='else' id='" + listAll[i].BrandId + "'>" + listAll[i].BrandName + "</label></div>"); } } return(allpage.ToString()); #endregion } }
public static int Savemenuid = 0; //记录菜单编号 public string GetAllProduct() { usersbll usb = new usersbll(); PublicHelpController ph = new PublicHelpController(); ProductStockBLL psb = new ProductStockBLL(); #region 查询条件 string orderParams = Request.Form["params"] ?? string.Empty; //参数 string[] orderParamss = helpcommon.StrSplit.StrSplitData(orderParams, ','); //参数集合 Dictionary <string, string> dic = new Dictionary <string, string>(); //搜索条件 string Style = helpcommon.StrSplit.StrSplitData(orderParamss[0], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //货号 string Scode = helpcommon.StrSplit.StrSplitData(orderParamss[1], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //款号 string PriceMin = helpcommon.StrSplit.StrSplitData(orderParamss[2], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //最小价格 string PriceMax = helpcommon.StrSplit.StrSplitData(orderParamss[3], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //最大价格 string Season = helpcommon.StrSplit.StrSplitData(orderParamss[4], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //季节 string Type = helpcommon.StrSplit.StrSplitData(orderParamss[5], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //品牌 string Brand = helpcommon.StrSplit.StrSplitData(orderParamss[6], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //最小库存 string StockMin = helpcommon.StrSplit.StrSplitData(orderParamss[7], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //最大库存 string StockMax = helpcommon.StrSplit.StrSplitData(orderParamss[8], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //最小时间 string Descript = helpcommon.StrSplit.StrSplitData(orderParamss[9], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //最大时间 string MinTime = helpcommon.StrSplit.StrSplitData(orderParamss[10], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //类别 string MaxTime = helpcommon.StrSplit.StrSplitData(orderParamss[11], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //供应商 string Vencode = helpcommon.StrSplit.StrSplitData(orderParamss[12], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //有图/无图 string ImageFile = helpcommon.StrSplit.StrSplitData(orderParamss[13], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //有图/无图 Scode = Scode == "\'\'" ? string.Empty : Scode; Style = Style == "\'\'" ? string.Empty : Style; PriceMax = PriceMax == "\'\'" ? string.Empty : PriceMax; PriceMin = PriceMin == "\'\'" ? string.Empty : PriceMin; Season = Season == "\'\'" ? string.Empty : Season; Brand = Brand == "\'\'" ? string.Empty : Brand; StockMax = StockMax == "\'\'" ? string.Empty : StockMax; StockMin = StockMin == "\'\'" ? string.Empty : StockMin; MinTime = MinTime == "\'\'" ? string.Empty : MinTime; MaxTime = MaxTime == "\'\'" ? string.Empty : MaxTime; Type = Type == "\'\'" ? string.Empty : Type; Vencode = Vencode == "\'\'" ? string.Empty : Vencode; ImageFile = ImageFile == "\'\'" ? string.Empty : ImageFile; Descript = Descript == "\'\'" ? string.Empty : Descript; dic.Add("Scode", Scode); dic.Add("Style", Style); dic.Add("PriceMax", PriceMax); dic.Add("PriceMin", PriceMin); dic.Add("Season", Season); dic.Add("Brand", Brand); dic.Add("StockMax", StockMax); dic.Add("StockMin", StockMin); dic.Add("TimeMin", MinTime); dic.Add("TimeMax", MaxTime); dic.Add("Type", Type); dic.Add("Vencode", Vencode); dic.Add("Imagefile", ImageFile); dic.Add("Descript", Descript); dic.Add("ShopId", ""); //店铺Id 选货处使用 dic.Add("isCheckProduct", ""); //是否为选货查询 选货处使用 dic.Add("CustomerId", userInfo.User.Id.ToString()); //用户Id #endregion int roleId = helpcommon.ParmPerportys.GetNumParms(userInfo.User.personaId); //角色ID int menuId = helpcommon.ParmPerportys.GetNumParms(Request.Form["menuId"]); //菜单ID int pageIndex = Request.Form["pageIndex"] == null ? 0 : helpcommon.ParmPerportys.GetNumParms(Request.Form["pageIndex"]); int pageSize = Request.Form["pageSize"] == null ? 10 : helpcommon.ParmPerportys.GetNumParms(Request.Form["pageSize"]); string[] allTableName = usb.getDataName("productstock"); //当前列表所有字段 string[] s = ph.getFiledPermisson(roleId, menuId, funName.selectName); //获得当前权限字段 bool Storage = ph.isFunPermisson(roleId, menuId, funName.Storage); //入库权限 bool Marker = ph.isFunPermisson(roleId, menuId, funName.Marker); //商品标记权限(备注) int Count = 0; //数据总个数 psb.SearchShowProductStock(dic, out Count); int PageCount = Count % pageSize > 0 ? Count / pageSize + 1 : Count / pageSize; //数据总页数 int MinId = pageSize; int MaxId = pageSize * (pageIndex - 1); DataTable dt = psb.SearchShowProductStock(dic, MinId, MaxId); #region Table表头排序 string idNuber = ""; idNuber = allTableName[0]; for (int i = 0; i < allTableName.Length; i++) //排序将款号挪到第一列 { if (allTableName[i] == "Style") { string styleNuber = allTableName[i]; allTableName[0] = styleNuber; allTableName[i] = idNuber; } } string Value = ""; Value = allTableName[1]; for (int i = 0; i < allTableName.Length; i++) //排序将货号挪到第二列 { if (allTableName[i] == "Scode") { string temp = allTableName[i]; allTableName[1] = Scode; allTableName[i] = Value; } } string Model = ""; Model = allTableName[2]; for (int i = 0; i < allTableName.Length; i++) //排序将型号挪到第三列 { if (allTableName[i] == "Model") { string temp = allTableName[i]; allTableName[2] = Scode; allTableName[i] = Model; } } string IdNumber = ""; IdNumber = s[0]; for (int n = 0; n < s.Length; n++) //排序将款号挪到第一列 { if (s[n] == "Style") { string styleNuber = s[n]; s[0] = styleNuber; s[n] = IdNumber; } } string test = ""; test = s[1]; for (int n = 0; n < s.Length; n++) //排序将货号挪到第二列 { if (s[n] == "Scode") { string styleNuber = s[n]; s[1] = styleNuber; s[n] = test; } } string ModelS = ""; ModelS = s[2]; for (int n = 0; n < s.Length; n++) //排序将货号挪到第二列 { if (s[n] == "Model") { string styleNuber = s[n]; s[2] = styleNuber; s[n] = ModelS; } } if (s.Contains("Imagefile")) { string temp = s[3]; for (int i = 0; i < s.Length; i++) { if (s[i] == "Imagefile") { s[i] = temp; s[3] = "Imagefile"; } } } #endregion StringBuilder Alltable = new StringBuilder(); #region Table表头 Alltable.Append("<table id='StcokTable' class='mytable' style='font-size:12px;'><tr style='text-align:center;'>"); Alltable.Append("<td>序号</td>"); for (int i = 0; i < s.Length; i++) { if (allTableName.Contains(s[i])) { Alltable.Append("<th>"); if (s[i] == "Id") { Alltable.Append("编号"); } if (s[i] == "Scode") { Alltable.Append("货号"); } if (s[i] == "Bcode") { Alltable.Append("条码1"); } if (s[i] == "Bcode2") { Alltable.Append("条码2"); } if (s[i] == "Descript") { Alltable.Append("英文描述"); } if (s[i] == "Cdescript") { Alltable.Append("中文描述"); } if (s[i] == "Unit") { Alltable.Append("单位"); } if (s[i] == "Currency") { Alltable.Append("货币"); } if (s[i] == "Cat") { Alltable.Append("品牌"); } if (s[i] == "Cat1") { Alltable.Append("季节"); } if (s[i] == "Cat2") { Alltable.Append("类别"); } if (s[i] == "Clolor") { Alltable.Append("颜色"); } if (s[i] == "Size") { Alltable.Append("尺寸"); } if (s[i] == "Style") { Alltable.Append("款号"); } if (s[i] == "Pricea") { Alltable.Append("吊牌价"); } if (s[i] == "Priceb") { Alltable.Append("零售价"); } if (s[i] == "Pricec") { Alltable.Append("VIP价"); } if (s[i] == "Priced") { Alltable.Append("批发价"); } if (s[i] == "Pricee") { Alltable.Append("成本价"); } if (s[i] == "Disca") { Alltable.Append("折扣1"); } if (s[i] == "Discb") { Alltable.Append("折扣2"); } if (s[i] == "Discc") { Alltable.Append("折扣3"); } if (s[i] == "Discd") { Alltable.Append("折扣4"); } if (s[i] == "Disce") { Alltable.Append("折扣5"); } if (s[i] == "Vencode") { Alltable.Append("供应商"); } if (s[i] == "Model") { Alltable.Append("型号"); } if (s[i] == "Rolevel") { Alltable.Append("预警库存"); } if (s[i] == "Roamt") { Alltable.Append("最少订货量"); } if (s[i] == "Stopsales") { Alltable.Append("停售库存"); } if (s[i] == "Loc") { Alltable.Append("店铺"); } if (s[i] == "Balance") { Alltable.Append("供应商库存"); } if (s[i] == "Lastgrnd") { Alltable.Append("交货日期"); } if (s[i] == "Imagefile") { Alltable.Append("缩略图"); } if (s[i] == "UserId") { Alltable.Append("操作人"); } if (s[i] == "PrevStock") { Alltable.Append("上一次库存"); } if (s[i] == "Def2") { Alltable.Append("是否次品"); } if (s[i] == "Def3") { Alltable.Append("默认3"); } if (s[i] == "Def4") { Alltable.Append("是否开放"); } if (s[i] == "Def5") { Alltable.Append("默认5"); } if (s[i] == "Def6") { Alltable.Append("默认6"); } if (s[i] == "Def7") { Alltable.Append("默认7"); } if (s[i] == "Def8") { Alltable.Append("默认8"); } if (s[i] == "Def9") { Alltable.Append("默认9"); } if (s[i] == "Def10") { Alltable.Append("默认10"); } if (s[i] == "Def11") { Alltable.Append("默认11"); } Alltable.Append("</th>"); } } Alltable.Append("<td><input type='checkbox' id='CheckAll' onchange='checkall()'/>操作</td>"); Alltable.Append("</tr>"); #endregion #region Table内容 for (int i = 0; i < dt.Rows.Count; i++) { Alltable.Append("<tr>"); Alltable.Append("<td>" + (i + pageSize * (pageIndex - 1) + 1) + "</td>"); int DefCountBalance = psb.GetDefctiveRemarkBalanceCount(psb.SelectVenNameByVencode(dt.Rows[i]["Vencode"].ToString()), dt.Rows[i]["Scode"].ToString()); for (int j = 0; j < s.Length; j++) { if (allTableName.Contains(s[j])) { if (s[j] == "Imagefile") { if (dt.Rows[i]["ImagePath"] != null && dt.Rows[i]["ImagePath"].ToString() != "") { Alltable.Append("<td>"); Alltable.Append("<img style='height:50px;width:50px;' onerror='errorImg(this)' src='" + dt.Rows[i]["ImagePath"] + "' />"); Alltable.Append("</td>"); } else { Alltable.Append("<td>"); Alltable.Append(""); Alltable.Append("</td>"); } } else if (s[j] == "Def2") { string IsState = dt.Rows[i]["Def2"] == null ? "0" : dt.Rows[i]["Def2"].ToString(); if (IsState == "1") { Alltable.Append("<td>"); Alltable.Append("是"); Alltable.Append("</td>"); } else { Alltable.Append("<td>"); Alltable.Append("否"); Alltable.Append("</td>"); } } else if (s[j] == "Balance") { int scount = int.Parse(dt.Rows[i]["Balance"].ToString()) - DefCountBalance; Alltable.Append("<td>"); Alltable.Append(scount); Alltable.Append("</td>"); } else if (s[j] == "Def4") { string def4 = dt.Rows[i]["Def4"] == null ? "2" : dt.Rows[i]["Def4"].ToString(); if (def4 != "1") { Alltable.Append("<td>"); Alltable.Append("已开放"); Alltable.Append("</td>"); } else { Alltable.Append("<td>"); Alltable.Append("未开放"); Alltable.Append("</td>"); } } else { Alltable.Append("<td>"); Alltable.Append(dt.Rows[i][s[j]]); Alltable.Append("</td>"); } } } Alltable.Append("<td>"); Alltable.Append("<input type='checkbox' class='check' vencode=\"" + dt.Rows[i]["Vencode"].ToString() + "\" title=\"" + dt.Rows[i]["Scode"] + "\"/>"); Alltable.Append("</td>"); Alltable.Append("</tr>"); } Alltable.Append("</table>"); #endregion #region 分页 Alltable.Append("-----"); Alltable.Append(PageCount + "-----" + Count); #endregion return(Alltable.ToString()); }
/// <summary> /// 拆单,分配订单 /// </summary> /// <param name="orderId">订单编号</param> /// <param name="scode">商品货号</param> /// <returns></returns> public string getBalance(string orderId, string[] scode) { string s = string.Empty; string splitResult = string.Empty; //分配订单返回的结果 string sqlText = string.Empty; string cancelOrder = string.Empty; //取消订单返回结果 bll.apiorderbll apiorderBll = new bll.apiorderbll(); DataTable dtTime = apiorderBll.getOrderDetailsMsg(orderId); //获取原始订单时间 for (int f = 0; f < scode.Length; f++) //如果一个订单存在多个商品,根据订单ID和货号进行遍历分配供应商 { DataTable dt = new DataTable(); //返回当前货号所在订单中的商品购买数量 DataTable dt1 = new DataTable(); //返回当前商品(scode)的供应商,价格,库存3个属性值集合 string detailsOrderId = string.Empty; //子订单ID string detailsColor = string.Empty; //商品颜色 string detailsImg = string.Empty; //商品图片 string detailsTime = string.Empty; //订单插入时间 string minusBanlaceResult = string.Empty; //销售库存减去本次销售数量结果(成功、失败) string orderScode = scode[f].ToString(); //当前商品的货号(scode) int orderScodeNum = 0; //子订单商品购买数量 int totalBalance = 0; //当前商品(scode)的总库存(所有供应商的库存和) int saleBalanceDef3 = 0; //当前商品(scode)已售数量(销售字段Def3的值) #region 根据orderId,scode获取订单商品购买数量 //商品购买数量 if (!string.IsNullOrWhiteSpace(orderId) && !string.IsNullOrWhiteSpace(orderScode)) { dt = apiorderBll.getOrderMsg(orderId, orderScode); //根据订单号和货号返回此scode货号所在订单中的商品数量。 orderScodeNum = helpcommon.ParmPerportys.GetNumParms(dt.Rows[0]["detailsSaleCount"].ToString()); //返回此scode货号所在订单中的商品数量。 detailsOrderId = dt.Rows[0]["detailsOrderId"].ToString(); //子订单ID detailsColor = dt.Rows[0]["detailsColor"].ToString(); //商品颜色 detailsImg = dt.Rows[0]["detailsImg"].ToString(); //商品图片 detailsTime = dtTime.Rows[0]["detailsTime"].ToString(); //订单插入时间 } #endregion #region 当前货号的3个信息值:1.供应商,2.价格,3.库存(因product表中只存在总库存数量,所以应该去productstock表中查询这3个属性值) Dictionary <string, decimal> dicPrice = new Dictionary <string, decimal>(); //存放库存数量,价格 Dictionary <string, int> dicLevel = new Dictionary <string, int>(); //存放数据源NO,库存数量 Dictionary <string, decimal> dicPrice1 = new Dictionary <string, decimal>(); //存放库存数量,价格 Dictionary <string, int> dicLevel1 = new Dictionary <string, int>(); //存放数据源NO,库存数量 ProductStockBLL ProductStockBll = new ProductStockBLL(); dt1 = ProductStockBll.getScodeBalance(orderScode, false); //返回供应商,价格,库存(当前货号的3个信息值:1.供应商,2.价格,3.库存) for (int i = 0; i < dt1.Rows.Count; i++) { totalBalance += helpcommon.ParmPerportys.GetNumParms(dt1.Rows[i]["balance"].ToString()); //当前商品(scode)的总库存(所有供应商的库存和) } var m = dt1.AsEnumerable().ToArray(); //dt1转换为数组 var p = (from c in m orderby c["vencode"].ToString(), c["balance"].ToString(), c["price"].ToString() descending select c).ToList(); //已按供应商,库存,价格排序 saleBalanceDef3 = ProductStockBll.getScodeBalanceSales(orderScode); //此scode已售数量 #endregion #region 总库存<=已售数量-1 if (totalBalance <= saleBalanceDef3 - 1)//总库存<=已售数量-1(因为在bms接收app订单的时候,product表中的def3销售字段就会加上相应的订单商品购买数量) { string cancelMsg = "库存不足,系统自动取消,"; //update string orderResult = MD5DAL.AppAPIHelper.ChangeOrderStatus(orderId, 3); //给app发送取消消息 helpcommon.appOrderMsg msg = helpcommon.ReSerialize.ReserializeMethod(orderResult); if (msg != null) { if (msg.Code == "0") //code:0表示取消订单成功 { model.pbxdatasourceDataContext context = new model.pbxdatasourceDataContext(); context.Connection.Open(); context.Transaction = context.Connection.BeginTransaction(); bll.sourceorderbll sourceorderBll = new bll.sourceorderbll(); ProductBll Productbll = new ProductBll(); cancelOrder += sourceorderBll.cancelOrder(orderId, context); //bms取消订单(修改相关数据表状态为12) minusBanlaceResult = Productbll.minusBanlace(orderScode, orderScodeNum, context); //减掉此次购买商品数量 helpcommon.ParmPerportys.GetNumParms(dt1.Rows[i]["balance"].ToString()); if (cancelOrder.Contains("成功") && minusBanlaceResult.Contains("成功")) { context.Transaction.Commit(); } else { context.Transaction.Rollback(); } sourceorderBll = null; Productbll = null; } else { cancelMsg += "(" + msg.Message + ")给app推送取消订单信息失败"; } } return(cancelMsg + orderResult); // "库存不足,请取消此订单"; } #endregion #region 分配供应商(一个订单多件商品,可能会被拆分到几个供应商。这里指同款商品多个或多款商品多个) int restNum = orderScodeNum; //分配到几个供应商,依次分配后,还剩下多少需要分配 int state = 0; // for (int i = 0; i < p.Count; i++) { if (state > 0) { continue; } #region 检测是否存在分配成功却又取消分配的订单(需重新分配) DataTable dtSendSource = new bll.sourceorderbll().getOrderSendData(orderId, orderScode); //根据订单ID在apisendorder源头表中检测是否存在分配成功却又取消分配的订单(需重新分配) sqlText += @"update apiorderdetails set detailsEditTime='" + DateTime.Now.ToString("yyyy-MM-dd") + "' where orderId='" + orderId + "' and detailsscode='" + orderScode + "';"; //子订单编辑修改的时间 #endregion if (helpcommon.ParmPerportys.GetNumParms(p[i]["balance"].ToString()) >= orderScodeNum) //判断哪些数据源中的商品库存量>客户所购商品数量(供应商的库存已倒序) { #region 某个供应商存在足够多的库存,直接分配完成 //如果是取消过的订单 //update p[i]["vencode"].ToString() //比较vencode,取 取消订单的供应商的下一个 //select * from apiSendOrder where orderId = dt.Rows[0]["orderId"].ToString() if (dtSendSource.Rows.Count == 1) //存在分配成功却又取消分配的订单(需重新分配)【分配成功却又取消分配的订单只处理分配到一个供应商的订单,多个供应商由人工分配】 { #region 存在分配成功却又取消分配的订单(需重新分配),因为前面已分配过,所以无需新增,修改即可 if (p[i]["vencode"].ToString() == dtSendSource.Rows[0]["sendSource"].ToString()) { if (i + 1 < p.Count) { //根据订单号、货号更改订单数量,编辑时间,供应商 sqlText += @"update apiSendOrder set newSaleCount='" + orderScodeNum + "',editTime='" + DateTime.Now.ToString("yyyy-MM-dd") + "',sendSource = '" + p[i + 1]["vencode"].ToString() + "' where orderId='" + orderId + "' and newscode='" + orderScode + "';"; state++; } else { return("订单(" + orderId + ")无供应商可分配,请取消订单"); } } #endregion } else { #region 存在分配成功却又取消分配的订单(新增记录) //否则insert var sendOrderId = DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(1000, 9999).ToString(); sqlText += @"insert into apiSendOrder(orderId,detailsOrderId,newOrderId,newScode,newColor,newSize,newImg,newSaleCount, newStatus,createTime,editTime,showStatus,sendSource) values('" + orderId + "','" + detailsOrderId + "','" + sendOrderId + "','" + orderScode + "','" + detailsColor + "','" + "','" + detailsImg + "'," + orderScodeNum + "," + 1 + ",'" //新订单状态(订单当前状态:1为待确认,2为确认,3为待发货,4为发货,5交易成功,6通关异常,7,通关成功,11退货,12取消) + detailsTime + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "'," + 0 + ",'" //审核开放(是否开放给供应商查看,0为未开放,1为开放) + p[i]["vencode"].ToString() + "');"; state++; #endregion } #endregion } else { #region 一个供应商库存不足,需几个供应商加在一起 if (dtSendSource.Rows.Count > 1) //存在分配成功却又取消分配的订单(需重新分配) { return("人工处理一个订单分配到几个供应商的订单"); } else { sqlText += @"insert into apiSendOrder(orderId,detailsOrderId,newOrderId,newScode,newColor,newSize,newImg,newSaleCount, newStatus,createTime,editTime,showStatus,sendSource) values('" + orderId + "','" + detailsOrderId + "','" + DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(1000, 9999) + "','" + orderScode + "','" + detailsColor + "','" + "','" + detailsImg + "'," + helpcommon.ParmPerportys.GetNumParms(p[i]["balance"].ToString()) + "," + 1 + ",'" //新订单状态(订单当前状态:1为待确认,2为确认,3为待发货,4为发货,5交易成功,6通关异常,7,通关成功,11退货,12取消) + detailsTime + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "'," + 0 + ",'"//审核开放(是否开放给供应商查看,0为未开放,1为开放) + p[i]["vencode"].ToString() + "');"; if (helpcommon.ParmPerportys.GetNumParms(p[i]["balance"].ToString()) >= restNum) //当分配完成后 { restNum = restNum - helpcommon.ParmPerportys.GetNumParms(p[i]["balance"].ToString()); //剩余购买数量 state++; } } #endregion } } #endregion } SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"].ToString()); con.Open(); SqlTransaction st = con.BeginTransaction(); SqlCommand command = new SqlCommand(); try { //def2 是否已分配(0未分配,1分配) sqlText += @"update apiorder set def2 = 1 where orderId='" + orderId + "';"; IDataParameter[] ipara = new IDataParameter[] { new SqlParameter("@sqlText", SqlDbType.NVarChar, 4000) }; ipara[0].Value = sqlText; command.Connection = con; command.Parameters.AddRange(ipara); command.CommandType = CommandType.StoredProcedure; command.CommandText = "sendSource"; command.Transaction = st; command.ExecuteNonQuery(); st.Commit(); splitResult = "订单(" + orderId + ")分配成功"; } catch (Exception ex) { st.Rollback(); splitResult = "分配失败,程序错误" + ex.Message + sqlText; } return(splitResult); }