public QueryResult ExportProductShiftDetail(ProductShiftDetailReportQueryFilter filter) { int totalCount = 0; ProductShiftDetail needManualItem = null; ProductShiftDetailAmtInfo outAmt = null, inAmt = null; var list = ObjectFactory <IProductShiftDetailQueryDA> .Instance.Query(filter, out totalCount, ref outAmt, ref inAmt, ref needManualItem); DataTable dt = new DataTable(); var propertys = typeof(ProductShiftDetail).GetProperties(); foreach (var property in propertys) { dt.Columns.Add(property.Name); } foreach (var data in list) { var newRow = dt.NewRow(); foreach (var property in propertys) { newRow[property.Name] = property.GetValue(data, null); } dt.Rows.Add(newRow); } return(new QueryResult() { TotalCount = totalCount, Data = dt }); }
public List <ProductShiftDetail> Query(ProductShiftDetailReportQueryFilter filter, out int totalCount , ref ProductShiftDetailAmtInfo outAmt, ref ProductShiftDetailAmtInfo inAmt , ref ProductShiftDetail needManualItem) { totalCount = 0; List <ProductShiftDetail> result = null; if (filter.IsCheckCompany || filter.IsCheckDetail) { if (filter.IsCheckDetail) { result = QueryProductShiftDetailCompanyInfos(filter, out totalCount); if (totalCount > 0) { outAmt = QueryCompanyAmtCountInfo(filter)[0]; } } else { List <ProductShiftDetailAmtInfo> listAmtInfo = null; ProductShiftDetail productAdjest = null; result = QueryCompany(filter, ref listAmtInfo, ref productAdjest, out totalCount); if (result.Count > 0 || (listAmtInfo != null && listAmtInfo.Count > 0)) { outAmt = listAmtInfo.Find(item => item.CountType.Value == 1); inAmt = listAmtInfo.Find(item => item.CountType.Value == -1); if (result.Count > 0) { var alertItem = result.Find(x => { return(x.NeedManual == true); }); if (alertItem != null || productAdjest != null) { if (alertItem != null) { needManualItem = alertItem; } else { needManualItem = productAdjest; } } } } } } else { result = QueryProductShiftDetail(filter, out totalCount); } return(result); }
public ProductShiftDetailResp QueryProductShiftDetail(ProductShiftDetailReportQueryFilter filter) { int totalCount = 0; ProductShiftDetail needManualItem = null; ProductShiftDetailAmtInfo outAmt = null, inAmt = null; var list = ObjectFactory <IProductShiftDetailQueryDA> .Instance.Query(filter, out totalCount, ref outAmt, ref inAmt, ref needManualItem); return(new ProductShiftDetailResp() { Data = list, TotalCount = totalCount, OutAmt = outAmt, InAmt = inAmt, NeedManualItem = needManualItem }); }
private List <ProductShiftDetail> QueryCompany(ProductShiftDetailReportQueryFilter filter, ref List <ProductShiftDetailAmtInfo> listAmtInfo, ref ProductShiftDetail productAdjest, out int totalCount) { CustomDataCommand dataCommand = DataCommandManager.CreateCustomDataCommandFromConfig("QueryProductShiftDetailCompany"); List <ProductShiftDetail> result = new List <ProductShiftDetail>(); using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder( dataCommand.CommandText, dataCommand, ToPagingInfo(filter.PagingInfo), "ShiftQty desc")) { sqlBuilder.ConditionConstructor.AddCustomCondition(QueryConditionRelationType.AND, "1=1"); if (!string.IsNullOrEmpty(filter.GoldenTaxNo)) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "stItem.GoldenTaxNo", DbType.String, "@GoldenTaxNo", QueryConditionOperatorType.Equal, filter.GoldenTaxNo); } dataCommand.AddInputParameter("@SapCoCodeFrom", DbType.String, filter.OutCompany); dataCommand.AddInputParameter("@SapCoCodeTo", DbType.String, filter.EnterCompany); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "st.OutTime", DbType.DateTime, "@OutTimeStart", QueryConditionOperatorType.MoreThanOrEqual, filter.OutTimeStart); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "st.OutTime", DbType.DateTime, "@OutTimeEnd", QueryConditionOperatorType.LessThanOrEqual, filter.OutTimeEnd); sqlBuilder.ConditionConstructor.AddCustomCondition(QueryConditionRelationType.AND, " stItem.GoldenTaxNo is null "); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "st.CompanyCode", DbType.AnsiStringFixedLength, "@CompanyCode", QueryConditionOperatorType.Equal, filter.CompanyCode); dataCommand.CommandText = sqlBuilder.BuildQuerySql(); var transferBefore = dataCommand.ExecuteEntityList <ProductShiftDetail>(); listAmtInfo = QueryCompanyAmtCountInfo(filter); var transferResult = CollideOutAmt(listAmtInfo, transferBefore); totalCount = transferResult == null ? 0 : transferResult.Count; var rowIndex = filter.PagingInfo.PageIndex.Value * filter.PagingInfo.PageSize.Value; var pageSize = filter.PagingInfo.PageSize.Value; result = transferResult == null ? null : transferResult.Skip(rowIndex).Take(pageSize).ToList(); //加调整项///////////////////////////////// productAdjest = transferResult.Find(x => { return(x.NeedManual == true); }); ///////////////////////////////////////////////////// List <ShiftSysnoProduct> listAtoB = GetStockAToStockB(filter, GetListString(transferResult)); for (int i = 0; i < transferResult.Count; i++) { List <ShiftSysnoProduct> listShiftAtoB = listAtoB.Where(item => item.ProductSysNo == transferResult[i].ProductSysNo).ToList(); if (transferResult[i].ShiftQty.HasValue && transferResult[i].ShiftQty > 0) { if (listShiftAtoB.Count > 0) { transferResult[i].ShiftSysNo = listShiftAtoB[0].ShiftSysNo; transferResult[i].OutTime = listShiftAtoB[0].OutTime; transferResult[i].StockNameB = listShiftAtoB[0].StockNameB; } } } return(result); } }