private void BindRequest(StocktakeRequest request) { if (RequestID != null) { if (request == null) { request = Service.GetRequest(RequestID.Value); } List <StocktakeRequest> reqList = new List <StocktakeRequest>(); if (request != null) { reqList.Add(request); } this.BindDataControl(this.dlRequest, reqList); } else { if (!pagerParts.IsPostBack) { List <StocktakeRequest> reqList = new List <StocktakeRequest> { new StocktakeRequest { RequestBy = CurrentUser.UserInfo, DateRequest = DateTime.Now, IsStatic = false } }; this.BindDataControl(this.dlRequest, reqList); } } multiViewRequest.ActiveViewIndex = 0; }
protected void btnSave_Click(object sender, EventArgs e) { //CurrentUser.UserGroup.MaxStaticStocktake NewStocktakeRequest request = new NewStocktakeRequest(); request.IsStatic = (ddlIsStatic.SelectedIndex == 0); request.Details = new List <NewStocktakeDetails>(); List <View_StocktakeDetails> detailsList = this.Details; for (int i = 0; i < detailsList.Count; i++) { View_StocktakeDetails item = detailsList[i]; item.Description = ((TextBox)gvRequestParts.Rows[i].Cells[0].FindControl("txtComments")).Text; //item.StocktakeType = Convert.ToInt32(((DropDownList)gvRequestParts.Rows[i].Cells[5].FindControl("ddlType")).SelectedValue); //item.Priority = Convert.ToInt32(((DropDownList)gvRequestParts.Rows[i].Cells[6].FindControl("ddlDetailPriority")).SelectedValue); NewStocktakeDetails details = new NewStocktakeDetails(); details.PartID = item.PartID.ToString(); details.StocktakeTypeID = item.StocktakeType.Value; details.StocktakePriority = item.Priority.Value; request.Details.Add(details); } this.Details = detailsList; StocktakeRequest newRequest = Service.RequestStocktake(request); RequestID = newRequest.RequestID; this.BindRequest(newRequest); this.BindRequestDetails(); }
public void UpdateStocktakeRequestTest() { StockTakeReqBLL target = new StockTakeReqBLL(); // TODO: Initialize to an appropriate value StocktakeRequest request = null; // TODO: Initialize to an appropriate value target.UpdateStocktakeRequest(request); Assert.Inconclusive("A method that does not return a value cannot be verified."); }
protected void Toolbar1_ButtonClicked(object sender, ButtonEventArgs e) { switch (e.CommandName) { case "save": valiDetails.Validate(); if (!valiDetails.IsValid) { return; } RefreshRequestedDetails(); if (RequestID != null) //update { DropDownList ddlIsStatic = dlRequest.Items[0].FindControl("ddlIsStatic") as DropDownList; NewStocktakeRequest request = new NewStocktakeRequest { RequestID = RequestID, RequestBy = CurrentUser.UserInfo.UserID, IsStatic = (ddlIsStatic.SelectedIndex == 0) }; Service.UpdateRequest(request, RemovedDetails.Select(d => d.PartID.Value).ToList(), RequestedDetails); } else { if (dlRequest.Items.Count != 0) { NewStocktakeRequest request = BuildRequest(); StocktakeRequest req = Service.RequestStocktake(BuildRequest()); RequestID = req.RequestID; } else { Response.Write("<script>alert('请选择零件');</script>"); return; } } ClearCache(); BindData(); CurrentUser.RefreshUserProfile(); CacheHelper.RemoveCache(Consts.CACHE_KEY_USER_GROUPS); ScriptManager.RegisterStartupScript(this, this.GetType(), "closeScript", "closeDialogOnSave();", true); break; case "SaveAsTemplate": break; case "query": SelectedDetails = null; BindData(); break; case "return": Response.Redirect("StocktakeReqList.aspx"); break; default: break; } }
protected void gvRequest_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowIndex >= 0) { LinkButton linkRequestNo = e.Row.Cells[0].FindControl("linkRequestNo") as LinkButton; StocktakeRequest request = e.Row.DataItem as StocktakeRequest; string script = string.Format("showDialog('StocktakeRequest.aspx?Mode=View&id={0}',1080,550);return false;", request.RequestID); linkRequestNo.OnClientClick = script; } }
public void CreateStocktakeRequestTest2() { StockTakeReqBLL target = new StockTakeReqBLL(); // TODO: Initialize to an appropriate value StocktakeRequest request = null; // TODO: Initialize to an appropriate value StocktakeRequest expected = null; // TODO: Initialize to an appropriate value StocktakeRequest actual; actual = target.CreateStocktakeRequest(request); Assert.AreEqual(expected, actual); Assert.Inconclusive("Verify the correctness of this test method."); }
protected void dlRequest_ItemDataBound(object sender, DataListItemEventArgs e) { StocktakeRequest request = e.Item.DataItem as StocktakeRequest; DropDownList ddlIsStatic = e.Item.FindControl("ddlIsStatic") as DropDownList; if (request.IsStatic.Value) { ddlIsStatic.SelectedIndex = 0; } else { ddlIsStatic.SelectedIndex = 1; } }
protected void gvRequest_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowIndex >= 0) { LinkButton linkRequestNo = e.Row.Cells[0].FindControl("linkRequestNo") as LinkButton; StocktakeRequest request = e.Row.DataItem as StocktakeRequest; string script = string.Format("showDialog('StocktakeRequest.aspx?Mode=Edit&id={0}',1080,550,null, \"refresh('{1}')\");return false;", request.RequestID, Toolbar1.Controls[3].ClientID); linkRequestNo.OnClientClick = script; CheckBox cbSelect = e.Row.FindControl("cbSelect") as CheckBox; long requestID = (long)gvRequest.DataKeys[e.Row.RowIndex].Value; if (SelectedRequests.Contains(requestID)) { cbSelect.Checked = true; } } }
private void BindRequest(StocktakeRequest request) { if (RequestID != null) { if (request == null) { request = Service.GetRequest(RequestID.Value); } List <StocktakeRequest> reqList = new List <StocktakeRequest>(); if (request != null) { reqList.Add(request); } this.BindDataControl(this.dlRequest, reqList); multiViewRequest.ActiveViewIndex = 0; } else { multiViewRequest.ActiveViewIndex = 1; } }
private void Save() { //CurrentUser.UserGroup.MaxStaticStocktake NewStocktakeRequest request = new NewStocktakeRequest(); request.RequestBy = CurrentUser.UserInfo.UserID; request.IsStatic = (ddlIsStatic.SelectedIndex == 0); request.IsCycleCount = false; request.Details = new List <NewStocktakeDetails>(); List <View_StocktakeDetails> detailsList = this.Details; for (int i = 0; i < detailsList.Count; i++) { View_StocktakeDetails item = detailsList[i]; item.Description = ((TextBox)gvRequestParts.Rows[i].Cells[0].FindControl("txtComments")).Text; //item.StocktakeType = Convert.ToInt32(((DropDownList)gvRequestParts.Rows[i].Cells[5].FindControl("ddlType")).SelectedValue); //item.Priority = Convert.ToInt32(((DropDownList)gvRequestParts.Rows[i].Cells[6].FindControl("ddlDetailPriority")).SelectedValue); NewStocktakeDetails details = new NewStocktakeDetails(); details.PartID = item.PartID.ToString(); details.StocktakeTypeID = item.StocktakeType.Value; details.StocktakePriority = item.Priority.Value; details.Description = item.Description; request.Details.Add(details); } this.Details = detailsList; if (RequestID == null)//create { StocktakeRequest newRequest = Service.RequestStocktake(request); RequestID = newRequest.RequestID; this.BindRequest(newRequest); this.BindRequestDetails(); } else//update { request.RequestID = this.RequestID; Service.UpdateStocktakeRequest(request); } }
public StocktakeRequest ConvertToRequest() { StocktakeRequest request = new StocktakeRequest() { IsStatic = this.IsStatic, RequestBy = new User { UserID = this.RequestBy.Value }, Plant = new Plant { PlantID = PlantID.Value } }; if (RequestID != null) { request.RequestID = RequestID.Value; } request.StocktakeDetails = new System.Data.Objects.DataClasses.EntityCollection <StocktakeDetails>(); foreach (NewStocktakeDetails item in this.Details) { StocktakeDetails details = new StocktakeDetails() { Part = new Part { PartID = int.Parse(item.PartID) }, StocktakeType = new StocktakeType { TypeID = item.StocktakeTypeID }, StocktakePriority = new StocktakePriority { PriorityID = item.StocktakePriority }, Description = item.Description, PreDynamicNoticeCode = item.PreDynamicNoticeCode, PreDynamicNotiTime = item.PreDynamicNotiTime, PreStaticNoticeCode = item.PreStaticNoticeCode, PreStaticNotiTime = item.PreStaticNotiTime }; request.StocktakeDetails.Add(details); } return(request); }
private void BindDetails() { int pageCount; int itemCount; View_StocktakeDetails filter = new View_StocktakeDetails(); filter.PartCode = txtPartCode.Text.Trim(); filter.PartChineseName = txtPartName.Text.Trim(); filter.Specs = txtBOOK.Text.Trim(); filter.FollowUp = txtFollowUp.Text.Trim(); if (!string.IsNullOrEmpty(ddlPlant.SelectedValue)) { filter.PlantID = int.Parse(ddlPlant.SelectedValue); } if (CurrentUser.UserInfo.Workshop != null && !string.IsNullOrEmpty(CurrentUser.UserInfo.Workshop.WorkshopCode)) { filter.Workshops = CurrentUser.UserInfo.Workshop.WorkshopCode; } List <ViewPart> requestedParts = new List <ViewPart>(); if (RequestID == null) { requestedParts = (from d in RequestedDetails select new ViewPart { PartID = d.PartID.Value }).ToList(); } else { List <ViewPart> partList = new List <ViewPart>(); foreach (var item in RequestedDetails) { requestedParts.Add(new ViewPart { PartID = item.PartID.Value }); } foreach (var item in RemovedDetails) { if (!requestedParts.Exists(p => p.PartID == item.PartID)) { requestedParts.Add(new ViewPart { PartID = item.PartID.Value }); } } } filter.RequestID = RequestID; Part part = new Part { PartCode = filter.PartCode, PartChineseName = filter.PartChineseName, Specs = filter.Specs, FollowUp = filter.FollowUp }; if (filter.PlantID != null) { part.Plant = new Plant { PlantID = filter.PlantID.Value }; } if (!string.IsNullOrEmpty(filter.Workshops)) { part.Workshops = filter.Workshops; } StocktakeRequest stocktakeReq = null; if (RequestID != null) { stocktakeReq = new StocktakeRequest { RequestID = RequestID.Value }; } List <ViewPart> parts = Service.QueryUnRequestedPartByPage(stocktakeReq, part, pagerParts.PageSize, pagerParts.CurrentPage, out pageCount, out itemCount);//.QueryPartByPage(part, pagerParts.PageSize, pagerParts.CurrentPage, out pageCount, out itemCount);//.QueryFilteredPartsByPage(filter, requestedParts.ToList(), pagerParts.PageSize, pagerParts.CurrentPage, out pageCount, out itemCount); BindDataControl(gvParts, parts); pagerParts.TotalRecord = itemCount; }
public List <ViewPart> QueryUnRequestedPartByPage(StocktakeRequest request, Part filter, int pageSize, int pageNumber, out int pageCount, out int itemCount) { return(Channel.QueryUnRequestedPartByPage(request, filter, pageSize, pageNumber, out pageCount, out itemCount)); }
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); } }
public List <ViewPart> QueryUnRequestedPartByPage(StocktakeRequest request, Part filter, int pageSize, int pageNumber, out int pageCount, out int itemCount) { itemCount = DefaultValue.INT; //var partQry = this.QueryParts(filter); ObjectParameter p = new ObjectParameter("itemCount", itemCount); pageCount = (itemCount - 1) / pageSize + 1; Context.CommandTimeout = 120; int?plantID = null; if (filter.Plant != null) { plantID = filter.Plant.PlantID; } long?requestID = null; if (request != null) { requestID = request.RequestID; } List <ViewPart> result = Context.GetUnrequestedParts(requestID, pageSize, pageNumber, p, filter.PartCode, filter.PartChineseName, plantID, filter.FollowUp, filter.Specs).ToList(); itemCount = (int)p.Value; return(result); //partQry = this.QueryParts(filter, partQry); //partQry = from p in partQry join q in qry on p.PartID equals q.PartID select p; //var detailsQry = (from d in Context.View_StocktakeDetails join p in Context.ViewPart on d.PartID equals p.PartID where d.RequestID == request.RequestID select p.PartID).ToList().AsQueryable(); //var pidQry = partQry.Select(p => p.PartID).ToList().AsQueryable(); //pidQry = pidQry.Except(detailsQry); //partQry = partQry.Where(BuildContainsExpression<ViewPart, int>(p => p.PartID, pidQry.ToList())); //partQry = from p in partQry join i in pidQry on p.PartID equals i select p; //var qry = from d in Context.Part // select new // { // Part = d, // Details = Context.StocktakeDetails.Where(dt => dt.StocktakeRequest.RequestID == request.RequestID).FirstOrDefault(dt => dt.Part.PartID == d.PartID) // }; //var partQry1 = this.QueryParts(filter); //if (request != null) //{ // partQry = from v in partQry join p in qry on v.PartID equals p.Part.PartID where p.Details == null select v;//from v in partQry join p in Context.Part.Include("StocktakeDetails") on v.PartID equals p.PartID where p.StocktakeDetails.Count == 0 select v; // //var detailsQry = Context.StocktakeDetails.Where(d => d.StocktakeRequest.RequestID != request.RequestID).Select(d => d.Part).Distinct(); // //var detailsPartQry = (from d in Context.StocktakeDetails join p in partQry1 on d.Part.PartID equals p.PartID where d.StocktakeRequest.RequestID != request.RequestID select p).Distinct(); // //var detailsQry = Context.View_StocktakeDetails.Where(d => d.RequestID != request.RequestID).Select(d => d.PartID.Value ).Distinct(); // //var detailsPartQry = from p in Context.ViewPart join d in detailsQry on p.PartID equals d select p; // //partQry = partQry.Union(detailsPartQry); //} //if (request != null) //{ // var detailsQry = Context.StocktakeDetails.AsQueryable(); // long requestID = request.RequestID; // //details of request // detailsQry = from d in detailsQry where d.StocktakeRequest.RequestID == requestID select d; // //get parts not in this request // var qry = from p in partQry join d in detailsQry on p.PartID equals d.Part.PartID into detailParts select new { p, cnt=detailParts.Count() }; // partQry = qry.Where(pd => pd.cnt == 0).Select(pd => pd.p); // //partQry = (from v in partQry // //join p in pQry // // on v.PartID equals p.PartID // //select v); //} // partQry = partQry.OrderBy(p => p.PartCode); //var result = (from p in partQry join d in Context.StocktakeDetails on p.PartID equals d.Part.PartID into joinedParts select new { p, Count=joinedParts.Count() }).Where(pd=>pd.Count==0);//from joinedPart in joinedParts.DefaultIfEmpty() select new { p, joinedPart });// //partQry = result.Select(pd => pd.p).OrderBy(p => p.PartCode);// result.Where(pd => pd.joinedPart == null).Select(pd => pd.p).OrderBy(p => p.PartCode); //return (ObjectQuery<ViewPart>)this.GetQueryByPage(partQry, pageSize, pageNumber, out pageCount, out itemCount); }