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
            });
        }
Пример #2
0
        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
            });
        }