//public string Inproportion(string idStr, string weightStr, string totalQtyStr, string adjQtyStr, string Location, string Item) public string Inproportion(string idStr, string Location, string Item) { QuotaSearchModel searchModel=new QuotaSearchModel{Location=Location,Item=Item}; TempData["QuotaSearchModel"] = searchModel; try { if (string.IsNullOrEmpty(idStr)) { throw new BusinessException(Resources.EXT.ControllerLan.Con_FlowDetailCanNotBeEmpty); } string[] idArr = idStr.Split(','); //string[] qtyArr = adjQtyStr.Split(','); //string[] weightArr = weightStr.Split(','); //string[] totalQtyArr = totalQtyStr.Split(','); decimal allWeight = 0; decimal allTotalQty = 0; decimal maxProportion = 0; IList<FlowDetail> FlowDetailList = new List<FlowDetail>(); FlowDetail noNeedAdjDetail = new FlowDetail(); for (int i = 0; i < idArr.Count(); i++) { FlowDetail flowDetail = QueryMgr.FindById<FlowDetail>(Convert.ToInt32(idArr[i])); allWeight += flowDetail.MrpWeight; allTotalQty += flowDetail.MrpTotal; if (flowDetail.MrpTotal / flowDetail.MrpWeight > maxProportion) { maxProportion = flowDetail.MrpTotal / flowDetail.MrpWeight; noNeedAdjDetail = flowDetail; } FlowDetailList.Add(flowDetail); } FlowDetailList.Remove(noNeedAdjDetail); if (noNeedAdjDetail.MrpTotalAdjust != 0) { noNeedAdjDetail.MrpTotalAdjust = 0; GenericMgr.Update(noNeedAdjDetail); } foreach (var flowDetail in FlowDetailList) { flowDetail.MrpTotalAdjust = (noNeedAdjDetail.MrpTotal * flowDetail.MrpWeight) / noNeedAdjDetail.MrpWeight - flowDetail.MrpTotal; GenericMgr.Update(flowDetail); } //pickListMgr.CreatePickList(orderDetailList); SaveSuccessMessage(Resources.MRP.Quota.Quota_Adjusted); return "Succeed"; } catch (BusinessException ex) { Response.TrySkipIisCustomErrors = true; Response.StatusCode = 500; Response.Write(ex.GetMessages()[0].GetMessageString()); return string.Empty; } }
public ActionResult List(GridCommand command, QuotaSearchModel searchModel) { if (!string.IsNullOrEmpty(searchModel.Item) && !string.IsNullOrEmpty(searchModel.Location)) { TempData["QuotaSearchModel"] = searchModel; } return View(); }
public ActionResult List(GridCommand command, QuotaSearchModel searchModel) { ViewBag.ItemCode = searchModel.ItemCode; SearchCacheModel searchCacheModel = this.ProcessSearchModel(command, searchModel); //if (string.IsNullOrWhiteSpace(searchModel.ItemCode)) //{ // SaveWarningMessage("物料代码不能为空。"); //} ViewBag.PageSize = base.ProcessPageSize(command.PageSize); return View(); }
public ActionResult _AjaxList(GridCommand command, QuotaSearchModel searchModel) { TempData["GridCommand"] = command; //if (string.IsNullOrWhiteSpace(searchModel.ItemCode)) //{ // return PartialView(new GridModel(new List<Quota>())); //} SearchStatementModel searchStatementModel = PrepareSearchStatement(command, searchModel); var data = GetAjaxPageData<Quota>(searchStatementModel, command); return PartialView(data); //foreach (var flowDet in data.Data) //{ // var flowMaster=this.genericMgr.FindById<FlowMaster>(flowDet.Flow); // flowDet.PartyFrom = flowMaster.PartyFrom; // flowDet.LocationTo = flowMaster.LocationTo; // var supplier = this.genericMgr.FindById<Supplier>(flowMaster.PartyFrom); // flowDet.ManufactureParty = supplier.Code; // flowDet.ManufacturePartyDesc = supplier.CodeDescription; // flowDet.ManufacturePartyShortCode = supplier.ShortCode; // var location = this.genericMgr.FindById<Location>(flowDet.LocationTo); // flowDet.SapLocation = location.SAPLocation; // var item = this.genericMgr.FindById<Item>(flowDet.Item); // flowDet.ItemDescription = item.Description; //} //data.Data = data.Data.OrderBy(d => d.LocationTo).ToList(); //string locTo = string.Empty; //foreach (var flowDet in data.Data) //{ // var mrpWeight = data.Data.Where(d => d.LocationTo == flowDet.LocationTo).Sum(d => d.MrpWeight); // if (mrpWeight > 0) // { // flowDet.AverageRatio = decimal.Round((Convert.ToDecimal(flowDet.MrpWeight * 100.00) / mrpWeight)).ToString() + "%"; // } // else // { // flowDet.AverageRatio = "0%"; // } // if (flowDet.LocationTo.Equals(locTo)) // { // flowDet.LocationTo = string.Empty; // flowDet.SapLocation = string.Empty; // } // else // { // locTo = flowDet.LocationTo; // } //} //return PartialView(data); }
public ActionResult _AjaxList(GridCommand command, QuotaSearchModel searchModel) { SearchStatementModel searchStatementModel = PrepareSearchStatement(command, searchModel); return PartialView(GetAjaxPageData<FlowDetail>(searchStatementModel, command)); }
public ActionResult _Update(Int32 id, Quota quota, QuotaSearchModel searchModel) { ViewBag.ItemCode = searchModel.ItemCode; try { if (quota.AdjQty < 0) { throw new BusinessException(" 调整数不能小于0"); } Quota upQuota = this.genericMgr.FindById<Quota>(id); var c = this.genericMgr.FindAll<QuotaCycleQty>("select q from QuotaCycleQty as q where q.Item=?", upQuota.Item); if (c==null || c.Count == 0) { throw new BusinessException(string.Format(" 物料{0}没有维护配额循环量,更新失败。",quota.Item)); } upQuota.AdjQty = quota.AdjQty; this.genericMgr.Update(upQuota); } catch (BusinessException ex) { SaveErrorMessage("修改失败。" + ex.GetMessages()[0].GetMessageString()); } catch (Exception ex) { SaveErrorMessage("修改失败。" + ex.Message); } GridCommand command = (GridCommand)TempData["GridCommand"]; TempData["GridCommand"] = command; SearchStatementModel searchStatementModel = PrepareSearchStatement(command, searchModel); var data = GetAjaxPageData<Quota>(searchStatementModel, command); return PartialView(data); }
private SearchStatementModel PrepareSearchStatement(GridCommand command, QuotaSearchModel searchModel) { string whereStatement = string.Empty; IList<object> param = new List<object>(); whereStatement = " where fd.MrpWeight!=0 and fd.LocationTo = ? and fd.Item = ?"; param.Add(string.IsNullOrEmpty(searchModel.Location) ? string.Empty : searchModel.Location); param.Add(string.IsNullOrEmpty(searchModel.Item) ? string.Empty : searchModel.Item); string sortingStatement = HqlStatementHelper.GetSortingStatement(command.SortDescriptors); SearchStatementModel searchStatementModel = new SearchStatementModel(); searchStatementModel.SelectCountStatement = selectCountStatement; searchStatementModel.SelectStatement = selectStatement; searchStatementModel.WhereStatement = whereStatement; searchStatementModel.SortingStatement = sortingStatement; searchStatementModel.Parameters = param.ToArray<object>(); return searchStatementModel; }
public ActionResult _AjaxCycleQtyList(GridCommand command, QuotaSearchModel searchModel) { TempData["CycleQtyGridCommand"] = command; //if (string.IsNullOrWhiteSpace(searchModel.ItemCode)) //{ // return PartialView(new GridModel(new List<QuotaCycleQty>())); //} SearchStatementModel searchStatementModel = PrepareCycleQtySearchStatement(command, searchModel); return PartialView(GetAjaxPageData<QuotaCycleQty>(searchStatementModel, command)); }
private string SupplierCycleSearchStatement(QuotaSearchModel searchModel) { string searchSql = " select quota.Supplier,quota.SupplierNm,quota.SupplierShortCode,quota.Item,quota.ItemDesc,quota.RefItemCode,quota.Weight,quota.AccumulateQty,quota.AdjQty,qc.CycleQty from SCM_Quota as quota left join SCM_QuotaCycleQty as qc on quota.Item=qc.Item where 1=1 and quota.Weight not in(0,100) "; if (!string.IsNullOrWhiteSpace(searchModel.ItemCode)) { searchSql += string.Format(" and quota.Item in (select Item from SCM_Quota where Supplier='{0}' and Item ='{1}') ", new object[]{ CurrentUser.Code,searchModel.ItemCode}); } else { searchSql += string.Format(" and quota.Item in (select Item from SCM_Quota where Supplier='{0}') ", CurrentUser.Code); } return searchSql; }
public string Save(string idStr, string adjQtyStr, string Location, string Item) { QuotaSearchModel searchModel = new QuotaSearchModel { Location = Location, Item = Item }; TempData["QuotaSearchModel"] = searchModel; try { if (string.IsNullOrEmpty(idStr)) { throw new BusinessException(Resources.EXT.ControllerLan.Con_FlowDetailCanNotBeEmpty); } string[] idArr = idStr.Split(','); string[] qtyArr = adjQtyStr.Split(','); for (int i = 0; i < idArr.Count(); i++) { FlowDetail flowDetail = QueryMgr.FindById<FlowDetail>(Convert.ToInt32(idArr[i])); flowDetail.MrpTotalAdjust = decimal.Parse(qtyArr[i]); GenericMgr.Update(flowDetail); } //pickListMgr.CreatePickList(orderDetailList); SaveSuccessMessage(Resources.MRP.Quota.Quota_Saved); return "Succeed"; } catch (BusinessException ex) { Response.TrySkipIisCustomErrors = true; Response.StatusCode = 500; Response.Write(ex.GetMessages()[0].GetMessageString()); return string.Empty; } }
public ActionResult _AjaxSupplierCycleList(GridCommand command, QuotaSearchModel searchModel) { string searchSql = SupplierCycleSearchStatement(searchModel); var searchResult = this.genericMgr.FindAllWithNativeSql<object[]>(searchSql); //quota.Supplier,quota.SupplierNm,quota.SupplierShortCode,quota.Item,quota.ItemDesc, //quota.RefItemCode,quota.Weight,quota.AccumulateQty,quota.AdjQty,qc.CycleQty var allResult = (from tak in searchResult select new Quota { Supplier = (string)tak[0], SupplierName = (string)tak[1], SupplierShortCode = (string)tak[2], Item = (string)tak[3], ItemDesc = (string)tak[4], RefItemCode = (string)tak[5], Weight = (decimal?)tak[6], AccumulateQty = (decimal?)tak[7], AdjQty = (decimal?)tak[8], CycleQty = (decimal?)tak[9], }).ToList(); GridModel<Quota> gridModel = new GridModel<Quota>(); gridModel.Total = allResult.Count; gridModel.Data = allResult.Skip((command.Page - 1) * command.PageSize).Take(command.PageSize); return PartialView(gridModel); }
public void ExportSupplierXLS(QuotaSearchModel searchModel) { string searchSql = SupplierCycleSearchStatement(searchModel); var searchResult = this.genericMgr.FindAllWithNativeSql<object[]>(searchSql); //quota.Supplier,quota.SupplierNm,quota.SupplierShortCode,quota.Item,quota.ItemDesc, //quota.RefItemCode,quota.Weight,quota.AccumulateQty,quota.AdjQty,qc.CycleQty var allResult = (from tak in searchResult select new Quota { Supplier = (string)tak[0], SupplierName = (string)tak[1], SupplierShortCode = (string)tak[2], Item = (string)tak[3], ItemDesc = (string)tak[4], RefItemCode = (string)tak[5], Weight = (decimal?)tak[6], AccumulateQty = (decimal?)tak[7], AdjQty = (decimal?)tak[8], CycleQty = (decimal?)tak[9], }).ToList(); ExportToXLS<Quota>("ExportSupplierXLS", "xls", allResult); }
public ActionResult CycleQtyList(GridCommand command, QuotaSearchModel searchModel) { ViewBag.HaveCycleEditPermission = CurrentUser.Permissions.Where(p => p.PermissionCode == "Url_QuotaCycleQty_Edit").Count() > 0; ViewBag.ItemCode = searchModel.ItemCode; SearchCacheModel searchCacheModel = this.ProcessSearchModel(command, searchModel); //if (string.IsNullOrWhiteSpace(searchModel.ItemCode)) //{ // SaveWarningMessage("物料代码不能为空。"); //} ViewBag.PageSize = base.ProcessPageSize(command.PageSize); return View(); }
public ActionResult SupplierCycleList(GridCommand command, QuotaSearchModel searchModel) { SearchCacheModel searchCacheModel = this.ProcessSearchModel(command, searchModel); ViewBag.PageSize = 100; return View(); }
private SearchStatementModel PrepareCycleQtySearchStatement(GridCommand command, QuotaSearchModel searchModel) { string whereStatement = string.Empty; IList<object> param = new List<object>(); HqlStatementHelper.AddEqStatement("Item", searchModel.ItemCode, "q", ref whereStatement, param); string sortingStatement = HqlStatementHelper.GetSortingStatement(command.SortDescriptors); SearchStatementModel searchStatementModel = new SearchStatementModel(); searchStatementModel.SelectCountStatement = selectQuotaCycleQtyCountStatement; searchStatementModel.SelectStatement = selectQuotaCycleQtyStatement; searchStatementModel.WhereStatement = whereStatement; searchStatementModel.SortingStatement = sortingStatement; searchStatementModel.Parameters = param.ToArray<object>(); return searchStatementModel; }
public ActionResult _CycleQtyUpdate(Int32 id, QuotaCycleQty quotaCycleQty, QuotaSearchModel searchModel) { try { ViewBag.HaveCycleEditPermission = CurrentUser.Permissions.Where(p => p.PermissionCode == "Url_QuotaCycleQty_Edit").Count() > 0; ViewBag.ItemCode = searchModel.ItemCode; if (quotaCycleQty.CycleQty <= 0) { throw new BusinessException(" 循环数不能小于等于0"); } QuotaCycleQty upQuotaCycleQty = this.genericMgr.FindById<QuotaCycleQty>(id); var quotaList = this.genericMgr.FindAll<Quota>("select q from Quota as q where q.Item=? and Isactive=?", new object[] { upQuotaCycleQty.Item, true }); if (quotaList == null || quotaList.Count == 0) { throw new BusinessException(string.Format(" 物料编号{0}没有维护有效的调整数,请确认。 ", upQuotaCycleQty.Item)); } else { var supplierCodes = quotaList.Select(q => q.Supplier).ToArray(); var flowMasters = new List<FlowMaster>(); foreach (var supplier in supplierCodes) { var flowMasterBySupplier = this.genericMgr.FindAll<FlowMaster>("select f from FlowMaster as f where f.IsActive=1 and f.PartyFrom=? and exists( select 1 from FlowDetail as d where d.Flow=f.Code and d.Item=? )", new object[] { supplier, upQuotaCycleQty.Item}); if (flowMasterBySupplier == null || flowMasterBySupplier.Count == 0) { throw new BusinessException(string.Format(" 物料编号{0},供应商{1}没有找到有效的采购路线,请确认。 ", upQuotaCycleQty.Item, supplier)); } else { flowMasters.Add(flowMasterBySupplier.First()); } } var locTos = flowMasters.Select(f => f.LocationTo).ToList(); var flowMasterGrooups = (from tak in flowMasters group tak by tak.PartyFrom into result select new { Supplier = result.Key, FlowMasters = result.ToList() }); foreach (var groups in flowMasterGrooups) { foreach (var locTo in locTos) { if (groups.FlowMasters.Where(f => f.LocationTo == locTo).Count() == 0) { throw new BusinessException(string.Format(" 物料编号{0},供应商{1}目的库位{2}没有找到有效的采购路线,与其他供应商不一致,请确认。 ", upQuotaCycleQty.Item, groups.FlowMasters.First().PartyFrom, locTo)); } } } } upQuotaCycleQty.CycleQty = quotaCycleQty.CycleQty; this.genericMgr.Update(upQuotaCycleQty); } catch (BusinessException ex) { SaveErrorMessage("修改失败。" + ex.GetMessages()[0].GetMessageString()); } catch (Exception ex) { SaveErrorMessage("修改失败。" + ex.Message); } ViewBag.HaveCycleEditPermission = CurrentUser.Permissions.Where(p => p.PermissionCode == "Url_QuotaCycleQty_Edit").Count() > 0; GridCommand command = (GridCommand)TempData["CycleQtyGridCommand"]; TempData["CycleQtyGridCommand"] = command; SearchStatementModel searchStatementModel = PrepareCycleQtySearchStatement(command, searchModel); return PartialView(GetAjaxPageData<QuotaCycleQty>(searchStatementModel, command)); }
public ActionResult _CycleQtyDelete(Int32 id, QuotaSearchModel searchModel) { try { ViewBag.HaveCycleEditPermission = CurrentUser.Permissions.Where(p => p.PermissionCode == "Url_QuotaCycleQty_Edit").Count() > 0; ViewBag.ItemCode = searchModel.ItemCode; this.genericMgr.DeleteById<QuotaCycleQty>(id); SaveSuccessMessage("删除成功。"); } catch (BusinessException ex) { SaveErrorMessage("删除失败。" + ex.GetMessages()[0].GetMessageString()); } catch (Exception ex) { SaveErrorMessage("删除失败。" + ex.Message); } ViewBag.HaveCycleEditPermission = CurrentUser.Permissions.Where(p => p.PermissionCode == "Url_QuotaCycleQty_Edit").Count() > 0; GridCommand command = (GridCommand)TempData["CycleQtyGridCommand"]; TempData["CycleQtyGridCommand"] = command; SearchStatementModel searchStatementModel = PrepareCycleQtySearchStatement(command, searchModel); return PartialView(GetAjaxPageData<QuotaCycleQty>(searchStatementModel, command)); }