Beispiel #1
0
        public QueryResult QueryProductCostInAndCostOutReport(CostInAndCostOutReportQueryFilter queryFilter)
        {
            int       totalCount;
            DataTable table = ObjectFactory <IInventoryQueryDA> .Instance.QueryProductCostInAndCostOutReport(queryFilter, out totalCount);

            QueryResult result = new QueryResult()
            {
                Data       = table,
                TotalCount = totalCount
            };

            return(result);
        }
        /// <summary>
        /// 商品入库出库报表导出
        /// </summary>
        /// <param name="model"></param>
        /// <param name="textInfoList"></param>
        /// <param name="columnSet"></param>
        public void ExportExcelForCostInAndCostOutReport(CostInAndCostOutReportQueryVM model, ColumnSet[] columnSet)
        {
            CostInAndCostOutReportQueryFilter filter = model.ConvertVM <CostInAndCostOutReportQueryVM, CostInAndCostOutReportQueryFilter>();

            filter.PagingInfo = new QueryFilter.Common.PagingInfo()
            {
                PageIndex = 0,
                PageSize  = int.MaxValue,
            };

            string relativeUrl = "/InventoryService/Inventory/QueryCostInAndCostOutReport";

            restClient.ExportFile(relativeUrl, filter, columnSet);
        }
Beispiel #3
0
        /// <summary>
        /// 商品入库出库报表
        /// </summary>
        /// <param name="filter"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        public DataTable QueryProductCostInAndCostOutReport(CostInAndCostOutReportQueryFilter filter, out int totalCount)
        {
            PagingInfoEntity pagingInfo = new PagingInfoEntity()
            {
                SortField     = filter.PagingInfo.SortBy,
                StartRowIndex = filter.PagingInfo.PageIndex * filter.PagingInfo.PageSize,
                MaximumRows   = filter.PagingInfo.PageSize
            };

            CustomDataCommand command = DataCommandManager.CreateCustomDataCommandFromConfig("QueryProductCostInAndCostOutReport");

            using (DynamicQuerySqlBuilder builder = new DynamicQuerySqlBuilder(
                       command.CommandText, command, pagingInfo, "p.[SysNo] DESC"))
            {
                builder.ConditionConstructor.AddCustomCondition(QueryConditionRelationType.AND, @"(
EXISTS(SELECT TOP 1 1 FROM @tCostIn c WHERE p.SysNo = c.ProductSysNo)OR 
EXISTS(SELECT TOP 1 1 FROM @tCostOut c WHERE p.SysNo = c.ProductSysNo))");

                builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "c1.SysNo", DbType.Int32,
                                                          "@C1SysNo", QueryConditionOperatorType.Equal, filter.Category1SysNo);

                builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "c2.SysNo", DbType.Int32,
                                                          "@C2SysNo", QueryConditionOperatorType.Equal, filter.Category2SysNo);

                builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "c3.SysNo", DbType.Int32,
                                                          "@C3SysNo", QueryConditionOperatorType.Equal, filter.Category3SysNo);

                builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "p.ProductID", DbType.String,
                                                          "@ProductID", QueryConditionOperatorType.Equal, filter.ProductID);

                builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "p.ProductName", DbType.String,
                                                          "@ProductName", QueryConditionOperatorType.Like, filter.ProductName);

                builder.ConditionConstructor.AddInCondition(QueryConditionRelationType.AND, "brand.SysNo", DbType.Int32, filter.BrandSysNoList);

                builder.ConditionConstructor.AddInCondition(QueryConditionRelationType.AND, "vendor.SysNo", DbType.Int32, filter.VendorSysNoList);

                builder.ConditionConstructor.AddInCondition(QueryConditionRelationType.AND, "stk.SysNo", DbType.Int32, filter.WarehouseSysNoList);

                command.CommandText = builder.BuildQuerySql();
                command.CommandText = command.CommandText.Replace("#strWhereDate#", string.Format(" (c.InDate BETWEEN '{0}' AND '{1}') "
                                                                                                  , filter.DateTimeFrom.HasValue ? filter.DateTimeFrom.Value.ToString("yyyy-MM-dd HH:mm:ss") : DateTime.Parse("1900-01-01 00:00:00").ToString("yyyy-MM-dd HH:mm:ss")
                                                                                                  , filter.DateTimeTo.HasValue ? filter.DateTimeTo.Value.ToString("yyyy-MM-dd HH:mm:ss") : DateTime.Parse("2100-12-31 23:59:59").ToString("yyyy-MM-dd HH:mm:ss")));

                DataTable dt = command.ExecuteDataTable();

                totalCount = Convert.ToInt32(command.GetParameterValue("@TotalCount"));
                return(dt);
            }
        }
        /// <summary>
        /// 商品入库出库报表查询
        /// </summary>
        /// <param name="model"></param>
        /// <param name="callback"></param>
        public void QueryCostInAndCostOutReport(CostInAndCostOutReportQueryVM model, int pageIndex, int pageSize, string sortField, EventHandler <RestClientEventArgs <dynamic> > callback)
        {
            CostInAndCostOutReportQueryFilter filter = model.ConvertVM <CostInAndCostOutReportQueryVM, CostInAndCostOutReportQueryFilter>();

            filter.PagingInfo = new QueryFilter.Common.PagingInfo()
            {
                PageIndex = pageIndex,
                PageSize  = pageSize,
                SortBy    = sortField
            };

            string relativeUrl = "/InventoryService/Inventory/QueryCostInAndCostOutReport";

            restClient.QueryDynamicData(relativeUrl, filter, (_, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                callback(this, new RestClientEventArgs <dynamic>(args.Result, this.page));
            });
        }