コード例 #1
0
        public QueryResult ExportBalanceAccount(BalanceAccountQueryFilter request)
        {
            int totalCount;
            var dataSet = ObjectFactory <IBalanceAccountQueryDA> .Instance.Query(request, out totalCount);

            return(new QueryResult()
            {
                Data = dataSet.Tables["DataResult"], TotalCount = totalCount
            });
        }
コード例 #2
0
        public void ExportExcelFile(BalanceAccountQueryVM queryVM, ColumnSet[] columnSet)
        {
            BalanceAccountQueryFilter queryFilter = queryVM.ConvertVM <BalanceAccountQueryVM, BalanceAccountQueryFilter>();

            queryFilter.PagingInfo = new PagingInfo
            {
                PageSize  = ECCentral.Portal.Basic.ConstValue.MaxRowCountLimit,
                PageIndex = 0,
                SortBy    = ""
            };
            queryFilter.CompanyCode = CPApplication.Current.CompanyCode;
            string relativeUrl = "/InvoiceService/BalanceAccount/Export";

            restClient.ExportFile(relativeUrl, queryFilter, columnSet);
        }
コード例 #3
0
        private DataSet ExecuteDataTable(CustomDataCommand dataCommand, BalanceAccountQueryFilter filter, out int totalCount)
        {
            DataSet        result      = new DataSet();
            EnumColumnList enumColumns = new EnumColumnList();

            enumColumns.Add("PrepayType", typeof(BalanceAccountPrepayType));

            DataTable resultDT = dataCommand.ExecuteDataTable(enumColumns);

            resultDT.TableName = "DataResult";
            result.Tables.Add(resultDT);

            totalCount = Convert.ToInt32(dataCommand.GetParameterValue("@TotalCount"));

            #region 计算统计结果

            decimal TotalStartBalance = Convert.ToDecimal(dataCommand.GetParameterValue("@StartBalance"));
            decimal TotalEndBalance   = Convert.ToDecimal(dataCommand.GetParameterValue("@EndBalance"));
            decimal PayedIn           = Convert.ToDecimal(dataCommand.GetParameterValue("@PayedIn"));
            decimal PayedOut          = Convert.ToDecimal(dataCommand.GetParameterValue("@PayedOut"));

            if (resultDT != null && resultDT.Rows.Count > 0)
            {
                //没有开始时间时每位客户的期初以及所有客户期初的总额都为0.00
                if (!filter.CreateTimeFrom.HasValue)
                {
                    TotalStartBalance = 0.00M;
                    foreach (DataRow row in resultDT.Rows)
                    {
                        row["StartBalance"] = 0.00M;
                    }
                }
            }
            DataTable statisticDT = new DataTable("StatisticResult");
            statisticDT.Columns.AddRange(new DataColumn[]
            {
                new DataColumn("TotalStartBalance", typeof(decimal)),
                new DataColumn("TotalEndBalance", typeof(decimal)),
                new DataColumn("PayedIn", typeof(decimal)),
                new DataColumn("PayedOut", typeof(decimal))
            });
            statisticDT.Rows.Add(TotalStartBalance, TotalEndBalance, PayedIn, PayedOut);
            result.Tables.Add(statisticDT);

            #endregion 计算统计结果

            return(result);
        }
コード例 #4
0
        private void MapSortField(BalanceAccountQueryFilter filter)
        {
            if (filter.PagingInfo != null && !string.IsNullOrEmpty(filter.PagingInfo.SortBy))
            {
                var index = 0;
                index = filter.PagingInfo.SortBy.Contains("asc") ? 4 : 5;
                var sort      = filter.PagingInfo.SortBy.Substring(0, filter.PagingInfo.SortBy.Length - index);
                var sortField = filter.PagingInfo.SortBy;
                switch (sort)
                {
                case "SysNo":
                    filter.PagingInfo.SortBy = sortField.Replace("SysNo", "CP.SysNo");
                    break;

                case "CreateTimeStr":
                    filter.PagingInfo.SortBy = sortField.Replace("CreateTimeStr", "CP.CreateTime");
                    break;

                case "CustomerID":
                    filter.PagingInfo.SortBy = sortField.Replace("CustomerID", "C.CustomerID");
                    break;

                case "CustomerSysNo":
                    filter.PagingInfo.SortBy = sortField.Replace("CustomerSysNo", "CP.CustomerSysNo");
                    break;

                case "prepayTypeDesc":
                    filter.PagingInfo.SortBy = sortField.Replace("prepayTypeDesc", "CP.prepayType");
                    break;

                case "OrderSysNo":
                    filter.PagingInfo.SortBy = sortField.Replace("OrderSysNo", "CP.OrderSysNo");
                    break;

                case "PrepayAmt":
                    filter.PagingInfo.SortBy = sortField.Replace("PrepayAmt", "CP.PrepayAmt");
                    break;

                case "PayTypeName":
                    filter.PagingInfo.SortBy = sortField.Replace("PayTypeName", "P.PayTypeName");
                    break;
                }
            }
        }
コード例 #5
0
        public void Query(BalanceAccountQueryVM queryVM, int pageSize, int pageIndex, string sortField, Action <dynamic> callback)
        {
            BalanceAccountQueryFilter filter = queryVM.ConvertVM <BalanceAccountQueryVM, BalanceAccountQueryFilter>();

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

            string relativeUrl = "/InvoiceService/BalanceAccount/Query";

            filter.CompanyCode = CPApplication.Current.CompanyCode;
            restClient.QueryDynamicData(relativeUrl, filter, (obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                callback(args.Result);
            });
        }
コード例 #6
0
        public DataSet Query(BalanceAccountQueryFilter filter, out int totalCount)
        {
            DataSet          result     = null;
            PagingInfoEntity pagingInfo = new PagingInfoEntity();

            if (filter.PagingInfo != null)
            {
                MapSortField(filter);

                pagingInfo.MaximumRows   = filter.PagingInfo.PageSize;
                pagingInfo.StartRowIndex = filter.PagingInfo.PageIndex * filter.PagingInfo.PageSize;
                pagingInfo.SortField     = filter.PagingInfo.SortBy;
            }

            CustomDataCommand dataCommand = DataCommandManager.CreateCustomDataCommandFromConfig("QueryBalanceAccount");

            using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder(
                       dataCommand.CommandText, dataCommand, pagingInfo, "CP.SysNo desc"))
            {
                StringBuilder t1 = new StringBuilder();
                StringBuilder t2 = new StringBuilder();
                StringBuilder t3 = new StringBuilder();

                t1.Append("WHERE PL.Status = @Status AND PL.CompanyCode = @CompanyCode ");
                t2.Append("WHERE PL.Status = @Status AND PL.CompanyCode = @CompanyCode ");
                t3.Append("WHERE PL.Status = @Status AND PL.CompanyCode = @CompanyCode ");

                if (filter.CustomerSysNo.HasValue)
                {
                    t1.Append(" AND PL.CustomerSysNo = @CustomerSysNo ");
                    t2.Append(" AND PL.CustomerSysNo = @CustomerSysNo ");
                    t3.Append(" AND PL.CustomerSysNo = @CustomerSysNo ");
                }

                if (!string.IsNullOrEmpty(filter.CustomerID))
                {
                    t1.Append(" AND C.CustomerID = @CustomerID ");
                    t2.Append(" AND C.CustomerID = @CustomerID ");
                    t3.Append(" AND C.CustomerID = @CustomerID ");
                }

                if (filter.CreateTimeFrom.HasValue)
                {
                    t1.Append(" AND PL.CreateTime < @CreateDateFrom ");
                    t3.Append(" AND PL.CreateTime > @CreateDateFrom ");
                }

                if (filter.CreateTimeTo.HasValue)
                {
                    t2.Append(" AND PL.CreateTime <= @CreateDateTo ");
                    t3.Append(" AND PL.CreateTime <= @CreateDateTo ");
                }

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "CP.CustomerSysNo",
                                                             DbType.Int32, "@CustomerSysNo", QueryConditionOperatorType.Equal, filter.CustomerSysNo);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "C.CustomerID",
                                                             DbType.String, "@CustomerID", QueryConditionOperatorType.Equal, filter.CustomerID);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "CP.CreateTime",
                                                             DbType.DateTime, "@CreateDateFrom", QueryConditionOperatorType.MoreThanOrEqual, filter.CreateTimeFrom);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "CP.CreateTime",
                                                             DbType.DateTime, "@CreateDateTo", QueryConditionOperatorType.LessThanOrEqual, filter.CreateTimeTo);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "CP.CompanyCode",
                                                             DbType.AnsiStringFixedLength, "@CompanyCode", QueryConditionOperatorType.Equal, filter.CompanyCode);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "CP.Status",
                                                             DbType.AnsiStringFixedLength, "@Status", QueryConditionOperatorType.Equal, 'A');

                if (filter.DetailType.HasValue)
                {
                    if (filter.DetailType.Value > 0)
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "cp.PrepayAmt", DbType.Decimal, "@PrepayAmt", QueryConditionOperatorType.MoreThanOrEqual, 0);
                    }
                    else
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "cp.PrepayAmt", DbType.Decimal, "@PrepayAmt", QueryConditionOperatorType.LessThan, 0);
                    }
                }

                dataCommand.AddOutParameter("@StartBalance", DbType.Double, 50);
                dataCommand.AddOutParameter("@EndBalance", DbType.Double, 50);
                dataCommand.AddOutParameter("@PayedIn", DbType.Double, 50);
                dataCommand.AddOutParameter("@PayedOut", DbType.Double, 50);

                dataCommand.CommandText = sqlBuilder.BuildQuerySql();
                dataCommand.CommandText = dataCommand.CommandText.Replace("#ITWHERE01#", t1.ToString());
                dataCommand.CommandText = dataCommand.CommandText.Replace("#ITWHERE02#", t2.ToString());
                dataCommand.CommandText = dataCommand.CommandText.Replace("#ITWHERE03#", t3.ToString());

                result = ExecuteDataTable(dataCommand, filter, out totalCount);
            }
            return(result);
        }