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 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); }
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 List <StocktakeRequest> CreateCycleCountByPlant(User user) { PlantBLL plantBLL = new PlantBLL(); List <Plant> plants = plantBLL.GetPlants(); PartBLL partBll = new PartBLL(); List <ViewPart> partList = partBll.GetPartsByPlantToCycleCount().ToList();//GetPartsToCycleCount().ToList(); Dictionary <int, List <ViewPart> > dictDetails = new Dictionary <int, List <ViewPart> >(); foreach (var item in plants) { int plantID = item.PlantID; List <ViewPart> partsByPlant = partList.Where(p => p.PlantID == plantID).ToList(); if (partsByPlant != null && partsByPlant.Count > 0) { dictDetails.Add(plantID, partsByPlant); } } //List<StocktakeRequest> requestList = new List<StocktakeRequest>(); List <NewStocktakeRequest> requestList = new List <NewStocktakeRequest>(); //group request by plant foreach (var plantID in dictDetails.Keys) { //StocktakeRequest request = new StocktakeRequest() { IsStatic = true, Plant = new Plant() { PlantID = plantID } }; NewStocktakeRequest request = new NewStocktakeRequest() { IsStatic = true, PlantID = plantID, IsCycleCount = true }; request.RequestBy = user.UserID; //request.StocktakeDetails = new EntityCollection<StocktakeDetails>(); request.Details = new List <NewStocktakeDetails>(); foreach (var item in dictDetails[plantID]) { //StocktakeDetails details = new StocktakeDetails //{ // Part = new Part { PartID = item.PartID }, // StocktakeType = new StocktakeType { TypeID = 90 }, // StocktakePriority = new StocktakePriority { PriorityID = 1 } //}; NewStocktakeDetails details = new NewStocktakeDetails { PartID = item.PartID.ToString(), StocktakeTypeID = 90, StocktakePriority = 1 }; //request.StocktakeDetails.Add(details); request.Details.Add(details); } requestList.Add(request); } List <StocktakeRequest> newRequestList = new List <StocktakeRequest>(); //create request by plant if (requestList.Count > 0) { using (Context.Connection.CreateConnectionScope()) { DbTransaction transaction = Context.BeginTransaction(); try { foreach (var item in requestList) { StocktakeRequest newRequest = CreateStocktakeRequest(item, transaction); newRequestList.Add(newRequest); } transaction.Commit(); } catch (Exception) { transaction.Rollback(); } } } for (int i = 0; i < newRequestList.Count; i++) { newRequestList[i] = GetRequest(newRequestList[i]); } return(newRequestList); }