public int GetCycledTimes() { BizParamsBLL bizParamsBLL = new BizParamsBLL(Context); BizParams paramCycledTimes = bizParamsBLL.GetBizParamByKey(new BizParams { ParamKey = Consts.BIZ_PARAMS_CYCLEDTIMES }); int cycledTimes = int.Parse(paramCycledTimes.ParamValue); return(cycledTimes);//this.QueryRequest(new ViewStockTakeRequest { IsCycleCount = true }, null, null).Count(); }
private bool ValidateParamValue(BizParams model, string value) { bool bResult = false; bool bValue; int iValue; DateTime dtValue; switch (model.DataType.Trim().ToLower()) { case TYPE_BOOL: //"bool": if (bool.TryParse(value, out bValue)) { bResult = true; } break; case TYPE_INT: //"int": if (int.TryParse(value, out iValue)) { bResult = true; } break; case TYPE_TIME: //"time": if (DateTime.TryParse(value, out dtValue)) { bResult = true; } break; case TYPE_DATE: //"date": if (DateTime.TryParse(value, out dtValue)) { bResult = true; } break; case TYPE_DAYOFWEEK: //"dayofweek": if (int.TryParse(value, out iValue)) { if (iValue > -1 && iValue < 7) { bResult = true; } } break; default: bResult = true; break; } return(bResult); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BizParams param = BizParamsList.Find(p => string.Equals(p.ParamKey, Consts.BIZ_PARAMS_CYCLECOUNTED)); bool cycleCounted = false; Toolbar1.Items[1].Visible = false; Toolbar1.Visible = (param != null && Boolean.TryParse(param.ParamValue, out cycleCounted) && !cycleCounted); UpdatedDetails = null; DeletedDetails = null; } AspPager1.PageNumberSelect += new BizDataMaintain_AspPager.PageNumberSelectEventHandler(AspPager1_PageNumberSelect); }
public StocktakeRequest CreateCycleCount(User user, List <View_StocktakeDetails> deletedDetails, List <View_StocktakeDetails> updatedDetails) { PartBLL partBll = new PartBLL(); IQueryable <ViewPart> partQry = partBll.GetPartsByPlantToCycleCount();//partBll.GetPartsToCycleCount(); NewStocktakeRequest request = new NewStocktakeRequest { IsStatic = true, IsCycleCount = true }; request.RequestBy = user.UserID; request.Details = new List <NewStocktakeDetails>(); foreach (var item in partQry) { NewStocktakeDetails details = new NewStocktakeDetails { PartID = item.PartID.ToString(), StocktakeTypeID = 90, StocktakePriority = 1 }; View_StocktakeDetails deletedItem = deletedDetails.Find(d => d.PartID == int.Parse(details.PartID)); if (deletedItem == null) { View_StocktakeDetails updatedItem = updatedDetails.Find(d => d.PartID == int.Parse(details.PartID)); if (updatedItem != null) { details.Description = updatedItem.DetailsDesc; } request.Details.Add(details); } } StocktakeRequest result = CreateStocktakeRequest(request); BizParamsBLL bizParamsBLL = new BizParamsBLL(); BizParams param = bizParamsBLL.GetBizParamByKey(new BizParams { ParamKey = Consts.BIZ_PARAMS_CYCLECOUNTED }); param.ParamValue = "True"; bizParamsBLL.UpdateBizParams(param); BizParams paramCycledTimes = bizParamsBLL.GetBizParamByKey(new BizParams { ParamKey = Consts.BIZ_PARAMS_CYCLEDTIMES }); int cycledTimes = int.Parse(paramCycledTimes.ParamValue); paramCycledTimes.ParamValue = (cycledTimes + 1).ToString(); bizParamsBLL.UpdateBizParams(paramCycledTimes); return(result); }
protected bool PermitStaticRequest() { BizParams paramDayofWeek = BizParamsList.FirstOrDefault(p => string.Equals(p.ParamKey, "NoStAppDay")); BizParams paramTimeStart = BizParamsList.FirstOrDefault(p => string.Equals(p.ParamKey, "NoStAppTimeStart")); BizParams paramTimeEnd = BizParamsList.FirstOrDefault(p => string.Equals(p.ParamKey, "NoStAppTimeEnd")); if (int.Parse(paramDayofWeek.ParamValue) == (int)DateTime.Now.DayOfWeek) { DateTime timeStart = DateTime.Parse(DateTime.Now.ToShortDateString() + " " + paramTimeStart.ParamValue); DateTime timeEnd = DateTime.Parse(DateTime.Now.ToShortDateString() + " " + paramTimeEnd.ParamValue); if (DateTime.Now >= timeStart && DateTime.Now <= timeEnd) { return(false); } } return(true); }
protected void BizParam_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { BizParams param = (BizParams)e.Row.DataItem; TextBox textBox = (TextBox)e.Row.FindControl("paramValue"); CheckBox chkBox = (CheckBox)e.Row.FindControl("checkStatus"); DropDownList ddlList = (DropDownList)e.Row.FindControl("ddlList"); switch (param.DataType.ToLower()) { case TYPE_BOOL: //"bool": chkBox.Visible = true; textBox.Visible = false; ddlList.Visible = false; chkBox.Checked = Convert.ToBoolean(param.ParamValue); break; case TYPE_DAYOFWEEK: //"dayofweek": chkBox.Visible = false; textBox.Visible = false; ddlList.Visible = true; BindDayofWeekList(ddlList); ddlList.SelectedValue = param.ParamValue; break; default: chkBox.Visible = false; textBox.Visible = true; ddlList.Visible = false; break; } if (param.ReadOnly != null && param.ReadOnly == true) { textBox.ReadOnly = true; textBox.CssClass = "readonly"; } } }
//protected void linkDelete_Click(object sender, EventArgs e) //{ // Details.Clear(); // BindDataControl(gvRequestParts, Details); // pagerRequestParts.TotalRecord = 0; // pagerRequestParts.CurrentPage = 1; // if (RequestID != null) // { // NewStocktakeRequest request = new NewStocktakeRequest // { // Details = new List<NewStocktakeDetails>() // }; // Service.UpdateCachedRequest(request, CacheKey, false, true); // } // if (gvParts.DataKeys[0].Value != null) // { // Query(); // } //} protected void valiCounts_ServerValidate(object source, ServerValidateEventArgs args) { SGM.ECount.DataModel.User user = CurrentUser.UserInfo;//Service.GetUserbyKey(CurrentUser.UserInfo); int maxUserCount; int currentCount; int maxCount; int currentAmount = 0; DropDownList ddlIsStatic = dlRequest.Items[0].FindControl("ddlIsStatic") as DropDownList; if (ddlIsStatic.SelectedIndex > 0) { BizParams param = BizParamsList.Find(p => p.ParamKey == "MaxDynamic"); maxCount = int.Parse(param.ParamValue); maxUserCount = user.UserGroup.MaxDynamicStocktake ?? 0; currentCount = user.UserGroup.CurrentDynamicStocktake.Value; currentAmount = CurrentDynAmount; currentAmount = currentAmount - currentCount; } else { BizParams param = BizParamsList.Find(p => p.ParamKey == "MaxStatic"); maxCount = int.Parse(param.ParamValue); maxUserCount = user.UserGroup.MaxStaticStocktake.Value; currentCount = user.UserGroup.CurrentStaticStocktake.Value; currentAmount = CurrentStAmount; currentAmount = currentAmount - currentCount; } int newPartsCount = 0; if (gvParts.DataKeys[0].Value != null) { //List<View_StocktakeDetails> newDetails = NewDetails; for (int i = 0; i < gvParts.Rows.Count; i++) { if (gvParts.DataKeys[i] != null) { CheckBox cbSelect = gvParts.Rows[i].FindControl("cbSelect") as CheckBox; if (cbSelect != null)//add selected item { int partID = (int)gvParts.DataKeys[i].Value; if (cbSelect.Checked) { newPartsCount++; } } } } } currentCount += newPartsCount + RequestedDetails.Count; // ((OriginDetailCount == null) ? 0 : OriginDetailCount.Value); if (currentCount > maxUserCount) { valiCounts.Text = "已超过当前用户盘点数量上限!"; args.IsValid = false; } else { currentCount += currentAmount; if (currentCount > maxCount) { valiCounts.Text = "已超过盘点数量上限!"; args.IsValid = false; } else { args.IsValid = true; } } }
protected void Save() { string errorMessage = ""; CacheHelper.RemoveCache(Consts.CACHE_KEY_BIZ_PARAMS); List <BizParams> updateList = new List <BizParams>(); //if (bizParamsList == null) // bizParamsList = Service.GetBizParamsList(); foreach (GridViewRow row in this.GridView1.Rows) { GridView gvParams = (GridView)row.FindControl("gvBizParams"); if (gvParams != null) { foreach (GridViewRow bpRow in gvParams.Rows) { //save each parameter string istr = gvParams.DataKeys[bpRow.DataItemIndex].Value.ToString(); if (!string.IsNullOrEmpty(istr)) { int paramId = Convert.ToInt32(istr); BizParams param = BizParamsList.FirstOrDefault(o => o.ParamID == paramId); BizParams model = new BizParams { DataType = param.DataType, GroupName = param.GroupName, ParamDesc = param.ParamDesc, ParamID = param.ParamID, ParamKey = param.ParamKey, ParamValue = param.ParamValue, ReadOnly = param.ReadOnly, Sequence = param.Sequence }; //TextBox tbValue = (TextBox)row.Cells[1].FindControl("paramValue"); try { TextBox textBox = (TextBox)bpRow.FindControl("paramValue"); CheckBox chkBox = (CheckBox)bpRow.FindControl("checkStatus"); DropDownList ddlList = (DropDownList)bpRow.FindControl("ddlList"); Label lblError = (Label)bpRow.FindControl("lblError"); lblError.Text = ""; string value = textBox.Text; if (model.DataType.ToLower() == TYPE_BOOL)//"bool") { value = chkBox.Checked.ToString(); } else if (model.DataType.ToLower() == TYPE_DAYOFWEEK) //"dayofweek") { value = ddlList.SelectedValue; } if (model.ParamValue.Trim() == value.Trim() || model.ReadOnly == true) { continue; //没有更改,不需要更新 } // value validation if (ValidateParamValue(model, value)) { model.ParamValue = value; } else { lblError.Text = "请输入正确格式"; // errorMessage += model.ParamDesc + "数据格式不正确,请按照要求输入\\n"; continue; } } catch { continue;//获取文本失败,跳过? } try { updateList.Add(model); //Service.UpdateBizParams(model); } catch { errorMessage += "更新参数" + model.ParamDesc + "失败\\n"; } } } } } if (updateList.Count > 0) { Service.UpdateBizParamsList(updateList); } CacheHelper.RemoveCache(Consts.CACHE_KEY_BIZ_PARAMS); ////if(!string.IsNullOrEmpty(errorMessage)) //// RegisterStartupScript("Message", "<script>alert('" +errorMessage + "');</script>"); }
public BizParams GetBizParams(BizParams model) { return(Channel.GetBizParams(model)); }
public void UpdateBizParams(BizParams model) { Channel.UpdateBizParams(model); }
protected void ucFileUpload_Upload(object sender, EventArgs e) { UploadEventArgs ue = e as UploadEventArgs; DataTable dtDetails = ue.ContentTable; dtDetails.DefaultView.Sort = "零件号"; dtDetails = dtDetails.DefaultView.ToTable(); bool isValid = true; List <ViewPart> partList = new List <ViewPart>(); //get part by code, plant, duns //for (int i = 0; i < dtDetails.Rows.Count; i++) //{ // ViewPart tmpPart = new ViewPart // { // PlantCode = dtDetails.Rows[i]["工厂代码"].ToString(), // DUNS = dtDetails.Rows[i]["供应商DUNS"].ToString(), // PartCode = dtDetails.Rows[i]["零件号"].ToString() // }; // if (!partList.Exists(p => string.Equals(p.PartCode , tmpPart.PartCode, StringComparison.OrdinalIgnoreCase) && string.Equals(p.PlantCode ,tmpPart.PlantCode , StringComparison.OrdinalIgnoreCase)&& string.Equals(p.DUNS ,tmpPart.DUNS, StringComparison.OrdinalIgnoreCase))) // { // partList.Add(tmpPart); // } //} List <View_StocktakeDetails> detailsList = new List <View_StocktakeDetails>(); for (int i = 0; i < dtDetails.Rows.Count; i++) { bool hasError = false; View_StocktakeDetails details = new View_StocktakeDetails { RowNumber = int.Parse(dtDetails.Rows[i]["序号"].ToString()), PartCode = dtDetails.Rows[i]["零件号"].ToString(), DUNS = dtDetails.Rows[i]["供应商DUNS"].ToString(), PartPlantCode = dtDetails.Rows[i]["工厂代码"].ToString(), TypeName = dtDetails.Rows[i]["申请类别"].ToString(), PriorityName = dtDetails.Rows[i]["紧急程度"].ToString(), Description = dtDetails.Rows[i]["备注"].ToString() }; string msg; if (i % 5000 == 0) { string startCode = details.PartCode; int end = i + 4999; if (end >= dtDetails.Rows.Count) { end = dtDetails.Rows.Count - 1; } string endCode = dtDetails.Rows[end]["零件号"].ToString(); partList = Service.QueryPartCodeScope(null, startCode, endCode); } ViewPart part = partList.FirstOrDefault(p => string.Equals(p.PartCode, details.PartCode, StringComparison.OrdinalIgnoreCase) && string.Equals(p.PlantCode, details.PartPlantCode, StringComparison.OrdinalIgnoreCase) && string.Equals(p.DUNS, details.DUNS, StringComparison.OrdinalIgnoreCase)); if (part == null)//part is invalid { msg = string.Format("第{0}行,该零件不存在", i + 2); UCFileUpload1.AddErrorInfo(msg); hasError = true; } else { details.PartID = part.PartID; } StocktakePriority priority = Priorities.FirstOrDefault(p => string.Equals(p.PriorityName, details.PriorityName, StringComparison.OrdinalIgnoreCase)); if (priority == null) { msg = string.Format("第{0}行,紧急程度信息非法", i + 2); UCFileUpload1.AddErrorInfo(msg); hasError = true; } else { details.Priority = priority.PriorityID; } StocktakeType type = StocktakeTypes.FirstOrDefault(t => string.Equals(t.TypeName, details.TypeName, StringComparison.OrdinalIgnoreCase)); if (type == null) { msg = string.Format("第{0}行,申请类别信息非法", i + 2); UCFileUpload1.AddErrorInfo(msg); hasError = true; } else { details.StocktakeType = type.TypeID; } if (!hasError) { if (detailsList.Exists(d => string.Equals(d.TypeName, details.TypeName, StringComparison.OrdinalIgnoreCase) && string.Equals(d.PriorityName, details.PriorityName, StringComparison.OrdinalIgnoreCase) && string.Equals(d.PartPlantCode, details.PartPlantCode, StringComparison.OrdinalIgnoreCase) && string.Equals(d.DUNS, details.DUNS, StringComparison.OrdinalIgnoreCase) && string.Equals(d.PartCode, details.PartCode, StringComparison.OrdinalIgnoreCase))) { msg = string.Format("第{0}行,数据重复", i + 2); UCFileUpload1.AddErrorInfo(msg); hasError = true; } else { detailsList.Add(details); } } isValid = isValid && !hasError; } if (isValid) { NewStocktakeRequest newRequest = new NewStocktakeRequest { IsStatic = (rblIsStatic.SelectedIndex == 1), RequestBy = CurrentUser.UserInfo.UserID, IsCycleCount = false, Details = (from d in detailsList select new NewStocktakeDetails { PartID = d.PartID.ToString(), StocktakePriority = d.Priority.Value, StocktakeTypeID = d.StocktakeType.Value, Description = d.Description }).ToList() }; int currentDynAmount = 0; int currentStAmount = 0; foreach (var item in UserGroups) { currentDynAmount += item.CurrentDynamicStocktake ?? 0; currentStAmount += item.CurrentStaticStocktake ?? 0; } int maxUserCount; int currentCount; int maxCount; if (!newRequest.IsStatic) { BizParams param = BizParamsList.Find(p => p.ParamKey == "MaxDynamic"); maxCount = int.Parse(param.ParamValue); maxUserCount = CurrentUser.UserInfo.UserGroup.MaxDynamicStocktake ?? 0; currentCount = CurrentUser.UserInfo.UserGroup.CurrentDynamicStocktake.Value; int dynOverflowAmount = currentCount + newRequest.Details.Count - maxUserCount; if (dynOverflowAmount > 0) { ScriptManager.RegisterStartupScript(this, this.GetType(), "maxOverflow", "alert('超过当前用户组动态盘点上限" + dynOverflowAmount + "个')", true); return; } dynOverflowAmount = currentDynAmount + newRequest.Details.Count - maxCount; if (dynOverflowAmount > 0) { ScriptManager.RegisterStartupScript(this, this.GetType(), "maxOverflow", "alert('超过动态盘点总数上限" + dynOverflowAmount + "个')", true); return; } } if (newRequest.IsStatic) { BizParams param = BizParamsList.Find(p => p.ParamKey == "MaxStatic"); maxCount = int.Parse(param.ParamValue); maxUserCount = CurrentUser.UserInfo.UserGroup.MaxStaticStocktake.Value; currentCount = CurrentUser.UserInfo.UserGroup.CurrentStaticStocktake.Value; int stOverflowAmount = currentCount + newRequest.Details.Count - maxUserCount; if (stOverflowAmount > 0) { ScriptManager.RegisterStartupScript(this, this.GetType(), "maxOverflow", "alert('超过当前用户组静态盘点上限" + stOverflowAmount + "个')", true); return; } stOverflowAmount = currentStAmount + newRequest.Details.Count - maxCount; if (stOverflowAmount > 0) { ScriptManager.RegisterStartupScript(this, this.GetType(), "maxOverflow", "alert('超过静态盘点总数上限" + stOverflowAmount + "个')", true); return; } } //fill in items StocktakeRequest request = Service.RequestStocktake(newRequest); BindDataControl(gvResult, detailsList); CurrentUser.RefreshUserProfile(); CacheHelper.RemoveCache(Consts.CACHE_KEY_USER_GROUPS); //show information this.UCFileUpload1.AddSuccessInfo("盘点申请成功,申请单号" + request.RequestNumber, string.Empty, string.Empty); } }