Exemple #1
0
 public void ChangeGroup(GroupCondition condition, int broId, PathFindingData pathFindingData)
 {
     this.condition       = condition;
     this.broId           = broId;
     this.pathFindingData = pathFindingData;
     conditionAdded       = true;
 }
        ICondition ExtractCondition(ref CssToken token)
        {
            var condition = default(ICondition);

            if (token.Type == CssTokenType.RoundBracketOpen)
            {
                token = _tokenizer.Get();
                condition = CreateCondition(ref token);

                if (condition != null)
                    condition = new GroupCondition(condition);
                else if (token.Type == CssTokenType.Ident)
                    condition = DeclarationCondition(ref token);

                if (token.Type == CssTokenType.RoundBracketClose)
                    token = _tokenizer.Get();
            }
            else if (token.Data.Equals(Keywords.Not, StringComparison.OrdinalIgnoreCase))
            {
                token = _tokenizer.Get();
                condition = ExtractCondition(ref token);

                if (condition != null)
                    condition = new NotCondition(condition);
            }

            return condition;
        }
Exemple #3
0
        // Returns a list of AclExpansionEntry for the passed User, ACE with the passed Positon and passed GroupSelection
        private List <AclExpansionEntry> GetAclExpansionEntryList_UserPositionGroupSelection(
            User user, Position position, GroupCondition groupCondition, GroupHierarchyCondition groupHierarchyCondition)
        {
            List <User> userList = new List <User> ();

            userList.Add(user);

            var userFinderStub = MockRepository.GenerateStub <IAclExpanderUserFinder> ();

            userFinderStub.Expect(mock => mock.FindUsers()).Return(userList);

            List <AccessControlList> aclList = new List <AccessControlList>();

            var ace = TestHelper.CreateAceWithPositionAndGroupCondition(position, groupCondition);

            ace.GroupHierarchyCondition = groupHierarchyCondition;

            AttachAccessTypeReadWriteDelete(ace, true, null, true);
            Assert.That(ace.Validate().IsValid);
            var acl = TestHelper.CreateStatefulAcl(ace);

            aclList.Add(acl);

            var aclFinderStub = MockRepository.GenerateStub <IAclExpanderAclFinder> ();

            aclFinderStub.Expect(mock => mock.FindAccessControlLists()).Return(aclList);

            var aclExpander = new AclExpander(userFinderStub, aclFinderStub);

            // Retrieve the resulting list of AclExpansionEntry|s
            var aclExpansionEntryList = aclExpander.GetAclExpansionEntryList();

            return(aclExpansionEntryList);
        }
        /// <summary>
        /// 查询配送方式-产品
        /// </summary>
        /// <param name="filter"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        public DataTable QueryShipTypeAreaPriceList(ShipTypeAreaPriceQueryFilter filter, out int TotalCount)
        {
            MapSortField(filter);
            TotalCount = 0;
            PagingInfoEntity  pagingInfo = ToPagingInfo(filter.PagingInfo);
            CustomDataCommand cmd        = DataCommandManager.CreateCustomDataCommandFromConfig("ShipTypeAreaPrice_QueryShipTypeAreaPrice");

            using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingInfo, "SAP.SysNo DESC"))
            {
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SAP.ShipTypeSysNo", DbType.Int32, "@ShipTypeSysNo", QueryConditionOperatorType.Equal, filter.ShipTypeSysNo);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SAP.MerchantSysNo", DbType.Int32, "@VendorSysNo", QueryConditionOperatorType.Equal, filter.VendorSysNo);
                if (filter.CompanyCustomer.HasValue)
                {
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SAP.CompanyCustomer", DbType.Int32, "@CompanyCustomer", QueryConditionOperatorType.Equal, (int)filter.CompanyCustomer.Value);
                }

                if (!string.IsNullOrEmpty(filter.AreaName))
                {
                    using (GroupCondition g = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "A.ProvinceName", DbType.String, "@ProvinceName", QueryConditionOperatorType.Equal, filter.AreaName);
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "A.CityName", DbType.String, "@CityName", QueryConditionOperatorType.Equal, filter.AreaName);
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "A.DistrictName", DbType.String, "@DistrictName", QueryConditionOperatorType.Equal, filter.AreaName);
                    }
                }
                if (filter.AreaSysNo.HasValue)
                {
                    using (GroupCondition g = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "A.SysNO", DbType.String, "@SysNO", QueryConditionOperatorType.Equal, filter.AreaSysNo);
                    }
                }
                else if (filter.CitySysNo.HasValue)
                {
                    using (GroupCondition g = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "A.SysNo", DbType.String, "@SysNo", QueryConditionOperatorType.Equal, filter.CitySysNo);
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "A.CitySysNo", DbType.String, "@CitySysNo", QueryConditionOperatorType.Equal, filter.CitySysNo);
                    }
                }
                else if (filter.ProvinceSysNo.HasValue)
                {
                    using (GroupCondition g = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "A.SysNo", DbType.String, "@SysNo", QueryConditionOperatorType.Equal, filter.ProvinceSysNo);
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "A.ProvinceSysNo", DbType.String, "@ProvinceSysNo", QueryConditionOperatorType.Equal, filter.ProvinceSysNo);
                    }
                }

                cmd.CommandText = sqlBuilder.BuildQuerySql();
                DataTable dt = cmd.ExecuteDataTable("CompanyCustomer", typeof(ECCentral.BizEntity.Common.CompanyCustomer));
                TotalCount = int.Parse(cmd.GetParameterValue("@TotalCount").ToString());
                return(dt);
            }
        }
Exemple #5
0
        /// <summary>
        /// 查询市级以上的地域
        /// </summary>
        /// <param name="filter"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        public DataTable QueryAreaNoDistrictList(AreaQueryFilter filter, out int totalCount)
        {
            totalCount = 0;
            CustomDataCommand customCommand = DataCommandManager.CreateCustomDataCommandFromConfig("GetAreaList");
            PagingInfoEntity  pagingInfo    = ToPagingInfo(filter.PagingInfo);

            using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder(customCommand.CommandText, customCommand, pagingInfo, "SysNo DESC"))
            {
                if (filter.DistrictSysNumber.HasValue)
                {//精确查询区
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SysNo", DbType.String, "@SysNo", QueryConditionOperatorType.Equal, filter.DistrictSysNumber);
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "CitySysNo", DbType.String, "@CitySysNo", QueryConditionOperatorType.Equal, filter.CitySysNumber);
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "ProvinceSysNo", DbType.String, "@ProvinceSysNo", QueryConditionOperatorType.Equal, filter.ProvinceSysNumber);
                }
                else
                if (filter.CitySysNumber.HasValue)
                {    //查询出市以及其下属的区
                    using (GroupCondition g = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SysNo", DbType.String, "@SysNo", QueryConditionOperatorType.Equal, filter.CitySysNumber);
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "ProvinceSysNo", DbType.String, "@ProvinceSysNo", QueryConditionOperatorType.Equal, filter.ProvinceSysNumber);
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "CitySysNo", DbType.String, "@CitySysNo", QueryConditionOperatorType.Equal, filter.CitySysNumber);
                    }
                    //sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "ProvinceSysNo", DbType.String, "@ProvinceSysNo", QueryConditionOperatorType.Equal, filter.ProvinceSysNumber);
                }
                else if (filter.ProvinceSysNumber.HasValue)
                {    //查询出省以及其下属的市和区
                    using (GroupCondition g = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SysNo", DbType.String, "@SysNo", QueryConditionOperatorType.Equal, filter.ProvinceSysNumber);
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "ProvinceSysNo", DbType.String, "@ProvinceSysNo", QueryConditionOperatorType.Equal, filter.ProvinceSysNumber);
                        //paramValues 设置为filter.ProvinceSysNumber是为了通过构造验证没有实际意义
                        //sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "CitySysNo", DbType.String, "", QueryConditionOperatorType.IsNull, filter.ProvinceSysNumber);
                    }
                }
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Status", DbType.Int32, "@Status", QueryConditionOperatorType.Equal, filter.Status);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Rank", DbType.String, "@Rank", QueryConditionOperatorType.Equal, filter.Rank);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "WeightLimit", DbType.Int32, "@WeightLimit", QueryConditionOperatorType.Equal, filter.WeightLimit);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOAmountLimit", DbType.Decimal, "@SOAmountLimit", QueryConditionOperatorType.Equal, filter.SOAmtLimit);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "CompanyCode", DbType.AnsiStringFixedLength, "@CompanyCode", QueryConditionOperatorType.Equal, "8601");
                sqlBuilder.ConditionConstructor.AddNullCheckCondition(QueryConditionRelationType.AND, "[DistrictName]", QueryConditionOperatorType.IsNull);
                sqlBuilder.ConditionConstructor.AddNullCheckCondition(QueryConditionRelationType.AND, "[CityName]", QueryConditionOperatorType.IsNotNull);
                customCommand.CommandText = sqlBuilder.BuildQuerySql();

                DataTable dt = customCommand.ExecuteDataTable(new EnumColumnList {
                    { "Status", typeof(AreaStatus) }
                });

                totalCount = int.Parse(customCommand.GetParameterValue("TotalCount").ToString());

                return(dt);
            }
        }
Exemple #6
0
        private DecidedGoalType DecidedGoal(GroupCondition group, Condition condition, Translation translation, ref PathFindingData pathFindingData)
        {
            if (!condition.isSet)
            {
                if (!group.isSet)
                {
                    return(DecidedGoalType.None);
                }
                return(DecidedGoalType.Group);
            }
            if (!group.isSet)
            {
                return(DecidedGoalType.Condition);
            }

            var conditionDistance = math.length(condition.goal - translation.Value);
            var groupDistance     = math.length(group.goal - translation.Value);

            switch (pathFindingData.decisionMethod)
            {
            case DecisionMethod.Max:
                if (conditionDistance < groupDistance)
                {
                    return(DecidedGoalType.Group);
                }
                else
                {
                    return(DecidedGoalType.Condition);
                }

            case DecisionMethod.Min:
                if (conditionDistance < groupDistance)
                {
                    return(DecidedGoalType.Condition);
                }
                else
                {
                    return(DecidedGoalType.Group);
                }

            case DecisionMethod.ConditionOverGroup:
                return(DecidedGoalType.Condition);

            case DecisionMethod.GroupOverCondition:
                return(DecidedGoalType.Group);
            }
            return(DecidedGoalType.None);
        }
Exemple #7
0
        /// <summary>
        /// 查询配送方式-地区-价格
        /// </summary>
        /// <param name="queryFilter"></param>
        /// <returns></returns>
        public static QueryResult <ShipTypeAreaPriceInfoQueryResult> QueryShipTypeAreaPrice(ShipTypeAreaPriceQueryFilter queryFilter)
        {
            CustomDataCommand command = DataCommandManager.CreateCustomDataCommandFromConfig("QueryShipTypeAreaPrice");

            using (var sqlBuilder = new DynamicQuerySqlBuilder(command.CommandText, command, queryFilter, string.IsNullOrEmpty(queryFilter.SortFields) ? "stap.SysNo ASC" : queryFilter.SortFields))
            {
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "stap.MerchantSysNo", DbType.Int32, "@MerchantSysNo", QueryConditionOperatorType.Equal, queryFilter.MerchantSysNo);
                if (queryFilter.ShipTypeSysNo.HasValue)
                {
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "stap.ShipTypeSysNo", DbType.String, "@ShipTypeSysNo", QueryConditionOperatorType.Equal, queryFilter.ShipTypeSysNo.Value);
                }
                if (queryFilter.DistrictSysNo.HasValue)
                {
                    using (GroupCondition g = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.SysNO", DbType.String, "@SysNO", QueryConditionOperatorType.Equal, queryFilter.DistrictSysNo);
                    }
                }
                else if (queryFilter.CitySysNo.HasValue)
                {
                    using (GroupCondition g = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.SysNo", DbType.String, "@SysNo", QueryConditionOperatorType.Equal, queryFilter.CitySysNo);
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "a.CitySysNo", DbType.String, "@CitySysNo", QueryConditionOperatorType.Equal, queryFilter.CitySysNo);
                    }
                }
                else if (queryFilter.ProvinceSysNo.HasValue)
                {
                    using (GroupCondition g = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.SysNo", DbType.String, "@SysNo", QueryConditionOperatorType.Equal, queryFilter.ProvinceSysNo);
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "a.ProvinceSysNo", DbType.String, "@ProvinceSysNo", QueryConditionOperatorType.Equal, queryFilter.ProvinceSysNo);
                    }
                }
                command.CommandText = sqlBuilder.BuildQuerySql();
                List <ShipTypeAreaPriceInfoQueryResult> resultList = command.ExecuteEntityList <ShipTypeAreaPriceInfoQueryResult>();
                int totalCount = Convert.ToInt32(command.GetParameterValue("@TotalCount"));

                return(new QueryResult <ShipTypeAreaPriceInfoQueryResult>()
                {
                    PageInfo = new PageInfo()
                    {
                        PageIndex = queryFilter.PageIndex, PageSize = queryFilter.PageSize, TotalCount = totalCount, SortBy = queryFilter.SortFields
                    }, ResultList = resultList
                });
            }
        }
Exemple #8
0
        CssCondition ExtractCondition(ref CssToken token)
        {
            var condition = default(CssCondition);

            CreateNewNode();

            if (token.Type == CssTokenType.RoundBracketOpen)
            {
                token = NextToken();
                CollectTrivia(ref token);
                condition = AggregateCondition(ref token);

                if (condition != null)
                {
                    condition = new GroupCondition(condition);
                }
                else if (token.Type == CssTokenType.Ident)
                {
                    condition = DeclarationCondition(ref token);
                }

                if (token.Type == CssTokenType.RoundBracketClose)
                {
                    token = NextToken();
                    CollectTrivia(ref token);
                }
            }
            else if (token.Data.Isi(Keywords.Not))
            {
                token = NextToken();
                CollectTrivia(ref token);
                condition = ExtractCondition(ref token);

                if (condition != null)
                {
                    condition = new NotCondition(condition);
                }
            }

            return(CloseNode(condition));
        }
Exemple #9
0
        IConditionFunction ExtractCondition(ref CssToken token)
        {
            if (token.Type == CssTokenType.RoundBracketOpen)
            {
                token = NextToken();
                CollectTrivia(ref token);
                var condition = AggregateCondition(ref token);

                if (condition != null)
                {
                    var group = new GroupCondition();
                    group.Content = condition;
                    condition     = group;
                }
                else if (token.Type == CssTokenType.Ident)
                {
                    condition = DeclarationCondition(ref token);
                }

                if (token.Type == CssTokenType.RoundBracketClose)
                {
                    token = NextToken();
                    CollectTrivia(ref token);
                }

                return(condition);
            }
            else if (token.Data.Isi(Keywords.Not))
            {
                var condition = new NotCondition();
                token = NextToken();
                CollectTrivia(ref token);
                condition.Content = ExtractCondition(ref token);
                return(condition);
            }

            return(null);
        }
Exemple #10
0
        private bool IsGroupConditionEnabled(GroupCondition value, bool isStateful)
        {
            switch (value)
            {
            case GroupCondition.None:
                return(true);

            case GroupCondition.OwningGroup:
                return(isStateful);

            case GroupCondition.SpecificGroup:
                return(true);

            case GroupCondition.AnyGroupWithSpecificGroupType:
                return(true);

            case GroupCondition.BranchOfOwningGroup:
                return(isStateful);

            default:
                throw CreateInvalidOperationException("The value '{0}' is not a valid value for 'GroupCondition'.", value);
            }
        }
Exemple #11
0
        ICondition ExtractCondition(ref CssToken token)
        {
            var condition = default(ICondition);

            if (token.Type == CssTokenType.RoundBracketOpen)
            {
                token     = _tokenizer.Get();
                condition = CreateCondition(ref token);

                if (condition != null)
                {
                    condition = new GroupCondition(condition);
                }
                else if (token.Type == CssTokenType.Ident)
                {
                    condition = DeclarationCondition(ref token);
                }

                if (token.Type == CssTokenType.RoundBracketClose)
                {
                    token = _tokenizer.Get();
                }
            }
            else if (token.Data.Equals(Keywords.Not, StringComparison.OrdinalIgnoreCase))
            {
                token     = _tokenizer.Get();
                condition = ExtractCondition(ref token);

                if (condition != null)
                {
                    condition = new NotCondition(condition);
                }
            }

            return(condition);
        }
Exemple #12
0
        public DataTable QueryRegister(RegisterQueryFilter filter, out int totalCount)
        {
            PagingInfoEntity pagingEntity = new PagingInfoEntity();

            pagingEntity.SortField     = filter.PagingInfo.SortBy;
            pagingEntity.MaximumRows   = filter.PagingInfo.PageSize;
            pagingEntity.StartRowIndex = filter.PagingInfo.PageIndex * filter.PagingInfo.PageSize;
            CustomDataCommand cmd = null;

            if (filter.IsRepeatRegister.HasValue && filter.IsRepeatRegister.Value)
            {
                cmd = DataCommandManager.CreateCustomDataCommandFromConfig("QueryRegistersForRepeatRegister");
            }
            else
            {
                cmd = DataCommandManager.CreateCustomDataCommandFromConfig("QueryRegisters");
            }
            using (var sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingEntity, " register.SysNo DESC "))
            {
                #region build conditions

                #region

                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "request.CustomerSysNo",
                    DbType.Int32,
                    "@CustomerSysNo",
                    QueryConditionOperatorType.Equal,
                    filter.CustomerSysNo
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.ProductSysNo",
                    DbType.Int32,
                    "@ProductSysNo",
                    QueryConditionOperatorType.Equal,
                    filter.ProductSysNo
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "request.RequestID",
                    DbType.String,
                    "@RequestID",
                    QueryConditionOperatorType.Equal,
                    filter.RequestID
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.IsRecommendRefund",
                    DbType.Int32,
                    "@IsRecommendRefund",
                    QueryConditionOperatorType.Equal,
                    filter.IsRecommendRefund
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.RequestType",
                    DbType.Int32,
                    "@RequestTypeCode",
                    QueryConditionOperatorType.Equal,
                    filter.RequestType
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "request.SOSysNo",
                    DbType.Int32,
                    "@SOSysNo",
                    QueryConditionOperatorType.Equal,
                    filter.SOSysNo
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.SysNo",
                    DbType.Int32,
                    "@SysNo",
                    QueryConditionOperatorType.Equal,
                    filter.RegisterSysNo
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "customer.CustomerID",
                    DbType.String,
                    "@CustomerID",
                    QueryConditionOperatorType.Equal,
                    filter.CustomerID
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "request.CreateTime",
                    DbType.DateTime,
                    "@CreateTimeFrom",
                    QueryConditionOperatorType.MoreThanOrEqual,
                    filter.CreateTimeFrom
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "request.CreateTime",
                    DbType.DateTime,
                    "@CreateTimeTo",
                    QueryConditionOperatorType.LessThanOrEqual,
                    filter.CreateTimeTo
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.RevertStatus",
                    DbType.Int32,
                    "@RevertStatusCode",
                    QueryConditionOperatorType.Equal,
                    filter.RevertStatus
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.NewProductStatus",
                    DbType.Int32,
                    "@NewProductStatusCode",
                    QueryConditionOperatorType.Equal,
                    filter.NewProductStatus
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.OutBoundStatus",
                    DbType.Int32,
                    "@OutBoundStatusCode",
                    QueryConditionOperatorType.Equal,
                    filter.OutBoundStatus
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.ReturnStatus",
                    DbType.Int32,
                    "@ReturnStatusCode",
                    QueryConditionOperatorType.Equal,
                    filter.ReturnStatus
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.Status",
                    DbType.Int32,
                    "@StatusCode",
                    QueryConditionOperatorType.Equal,
                    filter.RequestStatus
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.RefundStatus",
                    DbType.Int32,
                    "@RefundStatusCode",
                    QueryConditionOperatorType.Equal,
                    filter.RefundStatus
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.NextHandler",
                    DbType.Int32,
                    "@NextHandlerCode",
                    QueryConditionOperatorType.Equal,
                    filter.NextHandler
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.IsWithin7Days",
                    DbType.Int32,
                    "@IsWithin7Days",
                    QueryConditionOperatorType.Equal,
                    filter.IsWithin7Days
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.RMAReason",
                    DbType.Int32,
                    "@RMAReason",
                    QueryConditionOperatorType.Equal,
                    filter.RMAReason
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "product.PMUserSysNo",
                    DbType.Int32,
                    "@PMUserSysNo",
                    QueryConditionOperatorType.Equal,
                    filter.PMUserSysNo
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "category3.Category1SysNo",
                    DbType.Int32,
                    "@C1SysNo",
                    QueryConditionOperatorType.Equal,
                    filter.Category1SysNo
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "category3.Category2SysNo",
                    DbType.Int32,
                    "@C2SysNo",
                    QueryConditionOperatorType.Equal,
                    filter.Category2SysNo
                    );
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "category3.Category3SysNo",
                    DbType.Int32,
                    "@C3SysNo",
                    QueryConditionOperatorType.Equal,
                    filter.Category3SysNo
                    );

                //销售方
                if (filter.SellersType != null)
                {
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.InvoiceType",
                        DbType.AnsiStringFixedLength,
                        "@InvoiceType",
                        QueryConditionOperatorType.Equal,
                        filter.SellersType
                        );
                }
                //是否已打印标签
                if (filter.IsLabelPrinted.HasValue)
                {
                    string isLabelPrinted = string.Empty;
                    if (filter.IsLabelPrinted == false)
                    {
                        isLabelPrinted = "N";
                    }
                    else if (filter.IsLabelPrinted == true)
                    {
                        isLabelPrinted = "Y";
                    }

                    sqlBuilder.ConditionConstructor.AddCondition
                    (
                        QueryConditionRelationType.AND,
                        "request.IsLabelPrinted",
                        DbType.String,
                        "@IsLabelPrinted",
                        QueryConditionOperatorType.Equal,
                        isLabelPrinted
                    );
                }
                //商家处理结果
                sqlBuilder.ConditionConstructor.AddCondition
                (
                    QueryConditionRelationType.AND,
                    "register.SellerOperationInfo",
                    DbType.String,
                    "@SellerOperationInfo",
                    QueryConditionOperatorType.Equal,
                    filter.SellerOperationInfo
                );

                if (filter.IsRepeatRegister.HasValue)
                {
                    if (filter.IsRepeatRegister.Value)
                    {
                        QueryConditionOperatorType qcOperator = QueryConditionOperatorType.MoreThan;
                        if (filter.CompareSymbol == CompareSymbolType.Equal)
                        {
                            qcOperator = QueryConditionOperatorType.Equal;
                        }
                        else if (filter.CompareSymbol == CompareSymbolType.LessThan)
                        {
                            qcOperator = QueryConditionOperatorType.LessThan;
                        }
                        else if (filter.CompareSymbol == CompareSymbolType.MoreThan)
                        {
                            qcOperator = QueryConditionOperatorType.MoreThan;
                        }
                        sqlBuilder.ConditionConstructor.AddCondition(
                            QueryConditionRelationType.AND,
                            "Repeat.RepeatProductCount",
                            DbType.Int32,
                            "@RepeatProductCount",
                            qcOperator,
                            filter.ProductCount);
                    }
                    else
                    {
                        string feedBackCondition1 = string.Empty;
                        string feedBackCondition2 = string.Empty;

                        feedBackCondition1 = @"SELECT 1
                                              FROM [OverseaServiceManagement].[dbo].[RepeatRegister] WITH(NOLOCK)
                                            WHERE SOSysNo = request.SOSysNo 
	                                            AND [ProductSysNo] = register.ProductSysNo 
	                                            AND [CurrentCount] = 1"    ;

                        feedBackCondition2 = @"SELECT 1
                                              FROM [OverseaServiceManagement].[dbo].[RepeatRegister] WITH(NOLOCK)
                                            WHERE SOSysNo = request.SOSysNo 
	                                            AND [ProductSysNo] = register.ProductSysNo"    ;

                        using (GroupCondition group = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                        {
                            sqlBuilder.ConditionConstructor.AddSubQueryCondition(
                                QueryConditionRelationType.AND,
                                null,
                                QueryConditionOperatorType.Exist,
                                feedBackCondition1
                                );

                            sqlBuilder.ConditionConstructor.AddSubQueryCondition(
                                QueryConditionRelationType.OR,
                                null,
                                QueryConditionOperatorType.NotExist,
                                feedBackCondition2
                                );
                        }
                    }
                }

                if (!string.IsNullOrEmpty(filter.NextHandlerList) && filter.NextHandler == RMANextHandler.Dun)
                {
                    string feedBackCondition = string.Empty;
                    feedBackCondition = "SELECT 1 FROM dbo.RMA_Register_Dunlog Dunlog WITH(NOLOCK) WHERE Dunlog.RegisterSysNo = register.SysNo"
                                        + " AND Dunlog.FeedBack IN (" + filter.NextHandlerList + ")";
                    ConditionConstructor subCondition = sqlBuilder.ConditionConstructor.AddSubQueryCondition(
                        QueryConditionRelationType.AND,
                        null,
                        QueryConditionOperatorType.Exist,
                        feedBackCondition
                        );
                }

                #endregion

                #region DateTime conditions

                if (filter.IsUnReceive.HasValue && filter.IsUnReceive.Value)
                {
                    sqlBuilder.ConditionConstructor.AddNullCheckCondition(
                        QueryConditionRelationType.AND, "request.RecvTime", QueryConditionOperatorType.IsNull
                        );
                }
                else
                {
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.RecvTime",
                        DbType.DateTime,
                        "@RecvTimeFrom",
                        QueryConditionOperatorType.MoreThanOrEqual,
                        filter.RecvTimeFrom
                        );
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.RecvTime",
                        DbType.DateTime,
                        "@RecvTimeTo",
                        QueryConditionOperatorType.LessThanOrEqual,
                        filter.RecvTimeTo
                        );
                }

                if (filter.IsUnReturn.HasValue && filter.IsUnReturn.Value)
                {
                    sqlBuilder.ConditionConstructor.AddNullCheckCondition(
                        QueryConditionRelationType.AND, "rmareturn.ReturnTime", QueryConditionOperatorType.IsNull
                        );
                }
                else
                {
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "rmareturn.ReturnTime",
                        DbType.DateTime,
                        "@ReturnTimeFrom",
                        QueryConditionOperatorType.MoreThanOrEqual,
                        filter.ReturnTimeFrom
                        );
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "rmareturn.ReturnTime",
                        DbType.DateTime,
                        "@ReturnTimeTo",
                        QueryConditionOperatorType.LessThanOrEqual,
                        filter.ReturnTimeTo
                        );
                }

                if (filter.IsUnRefund.HasValue && filter.IsUnRefund.Value)
                {
                    sqlBuilder.ConditionConstructor.AddNullCheckCondition(
                        QueryConditionRelationType.AND, "refund.RefundTime", QueryConditionOperatorType.IsNull
                        );
                }
                else
                {
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "refund.RefundTime",
                        DbType.DateTime,
                        "@RefundTimeFrom",
                        QueryConditionOperatorType.MoreThanOrEqual,
                        filter.RefundTimeFrom
                        );
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "refund.RefundTime",
                        DbType.DateTime,
                        "@RefundTimeTo",
                        QueryConditionOperatorType.LessThanOrEqual,
                        filter.RefundTimeTo
                        );
                }

                if (filter.IsUnResponse.HasValue && filter.IsUnResponse.Value)
                {
                    sqlBuilder.ConditionConstructor.AddNullCheckCondition(
                        QueryConditionRelationType.AND, "register.ResponseTime", QueryConditionOperatorType.IsNull
                        );
                }
                else
                {
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "register.ResponseTime",
                        DbType.DateTime,
                        "@ResponseTimeFrom",
                        QueryConditionOperatorType.MoreThanOrEqual,
                        filter.ResponseTimeFrom
                        );
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "register.ResponseTime",
                        DbType.DateTime,
                        "@ResponseTimeTo",
                        QueryConditionOperatorType.LessThanOrEqual,
                        filter.ResponseTimeTo
                        );
                }

                if (filter.IsUnOutbound.HasValue && filter.IsUnOutbound.Value)
                {
                    sqlBuilder.ConditionConstructor.AddNullCheckCondition(
                        QueryConditionRelationType.AND, "outbound.OutTime", QueryConditionOperatorType.IsNull
                        );
                }
                else
                {
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "outbound.OutTime",
                        DbType.DateTime,
                        "@OutBoundTimeFrom",
                        QueryConditionOperatorType.MoreThanOrEqual,
                        filter.OutboundTimeFrom
                        );
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "outbound.OutTime",
                        DbType.DateTime,
                        "@OutBoundTimeTo",
                        QueryConditionOperatorType.LessThanOrEqual,
                        filter.OutboundTimeTo
                        );
                }

                if (filter.IsUnCheck.HasValue && filter.IsUnCheck.Value)
                {
                    sqlBuilder.ConditionConstructor.AddNullCheckCondition(
                        QueryConditionRelationType.AND, "register.CheckTime", QueryConditionOperatorType.IsNull
                        );
                }
                else
                {
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "register.CheckTime",
                        DbType.DateTime,
                        "@CheckTimeFrom",
                        QueryConditionOperatorType.MoreThanOrEqual,
                        filter.CheckTimeFrom
                        );
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "register.CheckTime",
                        DbType.DateTime,
                        "@CheckTimeTo",
                        QueryConditionOperatorType.LessThanOrEqual,
                        filter.CheckTimeTo
                        );
                }

                if (filter.IsUnRevert.HasValue && filter.IsUnRevert.Value)
                {
                    sqlBuilder.ConditionConstructor.AddNullCheckCondition(
                        QueryConditionRelationType.AND, "rmarevert.OutTime", QueryConditionOperatorType.IsNull
                        );
                }
                else
                {
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "rmarevert.OutTime",
                        DbType.DateTime,
                        "@RevertTimeFrom",
                        QueryConditionOperatorType.MoreThanOrEqual,
                        filter.RevertTimeFrom
                        );
                    sqlBuilder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "rmarevert.OutTime",
                        DbType.DateTime,
                        "@RevertTimeTo",
                        QueryConditionOperatorType.LessThanOrEqual,
                        filter.RevertTimeTo
                        );
                }

                #endregion

                #region VIP condition

                if (filter.IsVIP.HasValue)
                {
                    using (GroupCondition group = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                    {
                        if (filter.IsVIP == true)
                        {
                            sqlBuilder.ConditionConstructor.AddCondition(
                                QueryConditionRelationType.AND,
                                "customer.VIPRank",
                                DbType.Int32,
                                "@AutoVIP",
                                QueryConditionOperatorType.Equal,
                                2    // VIPRank.AutoVIP
                                );
                            sqlBuilder.ConditionConstructor.AddCondition(
                                QueryConditionRelationType.OR,
                                "customer.VIPRank",
                                DbType.Int32,
                                "@ManualVIP",
                                QueryConditionOperatorType.Equal,
                                4    // VIPRank.ManualVIP
                                );
                        }
                        else
                        {
                            sqlBuilder.ConditionConstructor.AddCondition(
                                QueryConditionRelationType.AND,
                                "customer.VIPRank",
                                DbType.Int32,
                                "@AutoNonVIP",
                                QueryConditionOperatorType.Equal,
                                1    // VIPRank.AutoNonVIP
                                );
                            sqlBuilder.ConditionConstructor.AddCondition(
                                QueryConditionRelationType.OR,
                                "customer.VIPRank",
                                DbType.Int32,
                                "@ManualNonVIP",
                                QueryConditionOperatorType.Equal,
                                3    // VIPRank.ManualNonVIP
                                );
                        }
                    }
                }

                #endregion
                sqlBuilder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "register.CompanyCode",
                    DbType.String,
                    "@CompanyCode",
                    QueryConditionOperatorType.Equal,
                    filter.CompanyCode
                    );
                #endregion
                cmd.CommandText = MakeSqlWithCondition(filter, sqlBuilder.BuildQuerySql());
                EnumColumnList enumList = new EnumColumnList();
                enumList.Add("OutBoundStatus", typeof(RMAOutBoundStatus));
                enumList.Add("RevertStatus", typeof(RMARevertStatus));
                enumList.Add("RefundStatus", typeof(RMARefundStatus));
                enumList.Add("ReturnStatus", typeof(RMAReturnStatus));
                enumList.Add("NewProductStatus", typeof(RMANewProductStatus));
                enumList.Add("Status", typeof(RMARequestStatus));
                enumList.Add("InvoiceType", typeof(SellersType));

                CodeNamePairColumnList codeNameList = new CodeNamePairColumnList();
                codeNameList.Add("RMAReason", "RMA", "RMAReason");
                codeNameList.Add("SellerOperationInfo", "RMA", "SellerOperationInfo");
                var dt = cmd.ExecuteDataTable(enumList, codeNameList);
                totalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount"));
                return(dt);
            }
        }
Exemple #13
0
        public AccessControlEntry CreateAceWithPositionAndGroupCondition(Position position, GroupCondition groupCondition)
        {
            using (_transaction.EnterNonDiscardingScope())
            {
                AccessControlEntry entry = AccessControlEntry.NewObject();
                entry.UserCondition    = UserCondition.SpecificPosition;
                entry.SpecificPosition = position;
                entry.GroupCondition   = groupCondition;
                if (groupCondition == GroupCondition.OwningGroup)
                {
                    entry.GroupHierarchyCondition = GroupHierarchyCondition.ThisAndParent;
                }

                return(entry);
            }
        }
Exemple #14
0
        public DataTable QueryRMARequest(RMARequestQueryFilter filter, out int totalCount)
        {
            if (filter == null)
            {
                totalCount = -1;
                return(null);
            }

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

            PagingInfoEntity pagingInfo = new PagingInfoEntity()
            {
                SortField     = filter.PagingInfo.SortBy,
                StartRowIndex = filter.PagingInfo.PageIndex * filter.PagingInfo.PageSize,
                MaximumRows   = filter.PagingInfo.PageSize
            };

            using (DynamicQuerySqlBuilder builder = new DynamicQuerySqlBuilder(dataCommand.CommandText, dataCommand, pagingInfo, "request.SysNo DESC"))
            {
                #region build query conditions

                if (filter.CreateDateFrom != null)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.CreateTime", DbType.DateTime, "@CreateTimeFrom",
                        QueryConditionOperatorType.MoreThanOrEqual,
                        filter.CreateDateFrom);
                }
                if (filter.CreateDateTo != null)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.CreateTime", DbType.DateTime, "@CreateTimeTo",
                        QueryConditionOperatorType.LessThan,
                        filter.CreateDateTo);
                }

                if (filter.ReceivedDateFrom != null)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.RecvTime", DbType.DateTime, "@RecvTimeFrom",
                        QueryConditionOperatorType.MoreThanOrEqual,
                        filter.ReceivedDateFrom);
                }

                if (filter.ReceivedDateTo != null)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.RecvTime", DbType.DateTime, "@RecvTimeTo",
                        QueryConditionOperatorType.LessThan,
                        filter.ReceivedDateTo);
                }

                if (filter.ETakeDateFrom != null)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.ETakeDate", DbType.DateTime, "@ETakeDateFrom",
                        QueryConditionOperatorType.MoreThanOrEqual,
                        filter.ETakeDateFrom);
                }

                if (filter.ETakeDateTo != null)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.ETakeDate", DbType.DateTime, "@ETakeDateTo",
                        QueryConditionOperatorType.LessThan,
                        filter.ETakeDateTo);
                }
                if (!string.IsNullOrEmpty(filter.SOID))
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "so.SOID", DbType.String, "@SOID",
                        QueryConditionOperatorType.Equal,
                        filter.SOID);
                }

                if (!string.IsNullOrEmpty(filter.RequestID))
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.RequestID", DbType.String, "@RequestID",
                        QueryConditionOperatorType.Equal,
                        filter.RequestID);
                }


                if (filter.IsVIP.HasValue)
                {
                    using (GroupCondition group = new GroupCondition(builder, QueryConditionRelationType.AND))
                    {
                        if (filter.IsVIP.Value)
                        {
                            builder.ConditionConstructor.AddCondition(
                                QueryConditionRelationType.AND,
                                "customer.VIPRank",
                                DbType.Int32,
                                "@AutoVIP",
                                QueryConditionOperatorType.Equal,
                                2    // VIPRank.AutoVIP
                                );
                            builder.ConditionConstructor.AddCondition(
                                QueryConditionRelationType.OR,
                                "customer.VIPRank",
                                DbType.Int32,
                                "@ManualVIP",
                                QueryConditionOperatorType.Equal,
                                4    // VIPRank.ManualVIP
                                );
                        }
                        else
                        {
                            builder.ConditionConstructor.AddCondition(
                                QueryConditionRelationType.AND,
                                "customer.VIPRank",
                                DbType.Int32,
                                "@AutoNonVIP",
                                QueryConditionOperatorType.Equal,
                                1    // VIPRank.AutoNonVIP
                                );
                            builder.ConditionConstructor.AddCondition(
                                QueryConditionRelationType.OR,
                                "customer.VIPRank",
                                DbType.Int32,
                                "@ManualNonVIP",
                                QueryConditionOperatorType.Equal,
                                3    // VIPRank.ManualNonVIP
                                );
                        }
                    }
                }

                if (filter.CustomerSysNo.HasValue)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "customer.SysNo", DbType.Int32, "@SysNo",
                        QueryConditionOperatorType.Equal,
                        filter.CustomerSysNo);
                }

                if (!string.IsNullOrEmpty(filter.CustomerID))
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "customer.CustomerID", DbType.String, "@CustomerID",
                        QueryConditionOperatorType.Equal,
                        filter.CustomerID);
                }

                if (filter.ReceiveUserSysNo.HasValue)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.RecvUserSysNo", DbType.Int32, "@RecvUserSysNo",
                        QueryConditionOperatorType.Equal,
                        filter.ReceiveUserSysNo);
                }

                if (filter.IsSubmit.HasValue)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.IsSubmit",
                        DbType.Int32,
                        "@IsSubmit",
                        QueryConditionOperatorType.Equal,
                        filter.IsSubmit);
                }

                if (filter.Status.HasValue)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.Status",
                        DbType.Int32,
                        "@Status",
                        QueryConditionOperatorType.Equal,
                        filter.Status
                        );
                }

                if (filter.SysNo.HasValue)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.SysNo",
                        DbType.Int32,
                        "@SysNo",
                        QueryConditionOperatorType.Equal,
                        filter.SysNo
                        );
                }

                if (filter.SOSysNo.HasValue)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.SOSysNo",
                        DbType.Int32,
                        "@SOSysNo",
                        QueryConditionOperatorType.Equal,
                        filter.SOSysNo
                        );
                }
                if (!string.IsNullOrEmpty(filter.CompanyCode))
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.CompanyCode",
                        DbType.AnsiStringFixedLength,
                        "@CompanyCode",
                        QueryConditionOperatorType.Equal,
                        filter.CompanyCode
                        );
                }

                if (filter.IsLabelPrinted != null)
                {
                    string strIsLabelPrinted = "N";
                    if (filter.IsLabelPrinted.Value)
                    {
                        strIsLabelPrinted = "Y";
                    }

                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.IsLabelPrinted",
                        DbType.AnsiStringFixedLength,
                        "@IsLabelPrinted",
                        QueryConditionOperatorType.Equal,
                        strIsLabelPrinted
                        );
                }

                if (filter.SellersType != null)
                {
                    if (filter.SellersType == SellersType.Self)
                    {
                        builder.ConditionConstructor.AddCondition(
                            QueryConditionRelationType.AND,
                            "request.InvoiceType",
                            DbType.AnsiStringFixedLength,
                            "@InvoiceType",
                            QueryConditionOperatorType.Equal,
                            0
                            );
                    }
                    else
                    {
                        builder.ConditionConstructor.AddCondition(
                            QueryConditionRelationType.AND,
                            "request.InvoiceType",
                            DbType.AnsiStringFixedLength,
                            "@InvoiceType",
                            QueryConditionOperatorType.Equal,
                            1
                            );
                    }
                }

                //服务编码 add by norton 2012.11.21
                if (!string.IsNullOrEmpty(filter.ServiceCode))
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.ServiceCode",
                        DbType.String,
                        "@ServiceCode",
                        QueryConditionOperatorType.Equal,
                        filter.ServiceCode);
                }
                if (filter.AuditUserSysNo.HasValue)
                {
                    builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND,
                                                              "request.AuditUserSysNo",
                                                              DbType.Int32,
                                                              "@AuditUserSysNo",
                                                              QueryConditionOperatorType.Equal,
                                                              filter.AuditUserSysNo);
                }

                if (filter.AuditDateFrom != null)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.AuditTime", DbType.DateTime, "@AuditDateFrom",
                        QueryConditionOperatorType.MoreThanOrEqual,
                        filter.AuditDateFrom);
                }
                if (filter.AuditDateTo != null)
                {
                    builder.ConditionConstructor.AddCondition(
                        QueryConditionRelationType.AND,
                        "request.AuditTime", DbType.DateTime, "@AuditDateTo",
                        QueryConditionOperatorType.LessThanOrEqual,
                        filter.AuditDateTo);
                }

                #endregion

                dataCommand.CommandText = builder.BuildQuerySql();

                #region 扩展字段读取
                string columnExtendColumnRMAItemSysNos = string.Empty;
                //需要读取额外的单件连接数据
                if (filter.IsReadRMAItemSysNos)
                {
                    columnExtendColumnRMAItemSysNos = string.Format(",{0}", "(SELECT [OverseaOrderManagement].[dbo].[UF_GetRMAItemSysNos] (request.SysNo)) as RMAItemSysNos");
                }
                dataCommand.CommandText = dataCommand.CommandText.Replace("#ExtendColRMAItemSysNos#", columnExtendColumnRMAItemSysNos);

                #endregion

                dataCommand.SetParameterValue("@StartNumber", filter.PagingInfo.PageSize * filter.PagingInfo.PageIndex);
                dataCommand.SetParameterValue("@EndNumber", filter.PagingInfo.PageSize * filter.PagingInfo.PageIndex + filter.PagingInfo.PageSize);

                DataTable dt = dataCommand.ExecuteDataTable("Status", typeof(RMARequestStatus));
                totalCount = Convert.ToInt32(dataCommand.GetParameterValue("@TotalCount"));
                return(dt);
            }
        }
Exemple #15
0
        public JsonResult Get(int draw, int start)
        {
            var filteredData = _db.tbGroup.AsQueryable();

            string parameter = Request.Query["search[value]"].FirstOrDefault();

            GroupCondition condition = null;

            if (parameter != "")
            {
                condition = (GroupCondition)JsonConvert.DeserializeObject(parameter, typeof(GroupCondition));
            }

            List <tbGroup> rows = null;

            if (condition != null)
            {
                if (condition.GroupID != "")
                {
                    filteredData = filteredData.Where(e => e.GroupID.Contains(condition.GroupID));
                }

                if (condition.GroupName != "")
                {
                    filteredData = filteredData.Where(e => e.GroupName.Contains(condition.GroupName));
                }
            }

            int recordsTotal = filteredData.Count();

            rows = filteredData.OrderBy(e => e.GroupID).Skip(start).Take(10).ToList();

            var renderModel = new DataTablesRenderModel
            {
                draw            = draw,
                data            = rows,
                length          = rows.Count(),
                recordsFiltered = recordsTotal,
                recordsTotal    = recordsTotal
            };

            return(Json(renderModel));
            ////////////////


            //var filteredData = (from p in _db.ProductInfoes

            //                    select new
            //                    {
            //                        p.ProductNo,
            //                        p.ProductName,
            //                        p.Spec,
            //                        p.Unit,
            //                        p.Capcity
            //                    }).AsQueryable();

            //int recordsTotal = _db.ProductInfoes.Count();
            //var rows = filteredData.OrderBy(e => e.ProductNo).ToList();
            //var rows = filteredData.OrderBy(e => e.ProductNo).Skip(start).Take(10).ToList();
            //rows = filteredData.OrderBy(e => e.ProductNo).Where(s => s.ProductNo == searchProductNo).Skip(start).Take(10).ToList();
            //var renderModel = new DataTablesRenderModel
            //{
            //    draw = draw,
            //    data = rows,
            //    length = rows.Count(),
            //    recordsFiltered = recordsTotal,
            //    recordsTotal = recordsTotal
            //};
            //return Json(renderModel);
        }
Exemple #16
0
        public DataTable Query(AuditRefundQueryFilter filter, out int totalCount)
        {
            DataTable        result     = null;
            PagingInfoEntity pagingInfo = new PagingInfoEntity();

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

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

            CustomDataCommand cmd = DataCommandManager.CreateCustomDataCommandFromConfig("GetAuditRefundList");

            using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingInfo, "SOIncomeBank.SysNo DESC"))
            {
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[SysNo]", DbType.Int32, "@SysNo", QueryConditionOperatorType.Equal, filter.Id);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[Status]", DbType.Int32, "@Status", QueryConditionOperatorType.Equal, filter.AuditStatus);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[HaveAutoRMA]", DbType.Int32, "@HaveAutoRMA", QueryConditionOperatorType.Equal, filter.ShipRejected);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[OrderType]", DbType.Int32, "@OrderType", QueryConditionOperatorType.Equal, filter.OrderType);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[RefundPayType]", DbType.Int32, "@RefundType", QueryConditionOperatorType.Equal, filter.RefundPayType);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[RefundReason]", DbType.Int32, "@RMAReason", QueryConditionOperatorType.Equal, filter.RMAReasonCode);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[OrderSysNo]", DbType.Int32, "@RMANumber", QueryConditionOperatorType.Equal, filter.RMANumber);

                if (!string.IsNullOrEmpty(filter.OrderNumber))
                {
                    List <int> OrderNumberList  = new List <int>();
                    int[]      OrderNumberArray = Array.ConvertAll <string, int>(filter.OrderNumber.Split('.'),
                                                                                 new Converter <string, int>((source) =>
                    {
                        return(Convert.ToInt32(string.IsNullOrEmpty(source) ? "0" : source));
                    }));
                    OrderNumberList.AddRange(OrderNumberArray);
                    sqlBuilder.ConditionConstructor.AddInCondition <int>(QueryConditionRelationType.AND, "SOIncomeBank.SOSysNo", DbType.Int32, OrderNumberList);
                }

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[CreateTime]", DbType.DateTime, "@CreateTimeFrom", QueryConditionOperatorType.MoreThanOrEqual, filter.CreateTimeFrom);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[CreateTime]", DbType.DateTime, "@CreateTimeTo", QueryConditionOperatorType.LessThanOrEqual, filter.CreateTimeTo);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[AuditTime]", DbType.DateTime, "@AuditTimeFrom", QueryConditionOperatorType.MoreThanOrEqual, filter.AuditTimeFrom);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[AuditTime]", DbType.DateTime, "@AuditTimeTo", QueryConditionOperatorType.LessThanOrEqual, filter.AuditTimeTo);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "RMARefund.Status", DbType.Int32, "@RMAStatus", QueryConditionOperatorType.Equal, filter.RMAStatus);
                if (filter.CashRelated)
                {
                    using (GroupCondition group = new GroupCondition(sqlBuilder, QueryConditionRelationType.AND))
                    {
                        sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "RMARefund.[CashFlag]", DbType.Int32, "@CashFlag", QueryConditionOperatorType.Equal, 0);
                        sqlBuilder.ConditionConstructor.AddNullCheckCondition(QueryConditionRelationType.OR, "RMARefund.[CashFlag]", QueryConditionOperatorType.IsNull);
                    }
                }
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncome.[Status]", DbType.Int32, "@RefundStatus", QueryConditionOperatorType.Equal, filter.RefundStatus);

                //为提高性能改为左匹配
                if (!string.IsNullOrEmpty(filter.CustomerID))
                {
                    sqlBuilder.ConditionConstructor.AddCustomCondition(QueryConditionRelationType.AND, string.Format(" Customer.CustomerID like '{0}%'", filter.CustomerID));
                }

                switch (filter.OperationType)
                {
                case OperationSignType.LessThanOrEqual:
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.RefundCashAmt", DbType.Decimal, "@RefundAmount", QueryConditionOperatorType.LessThanOrEqual, filter.RefundAmount);
                    break;

                case OperationSignType.Equal:
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.RefundCashAmt", DbType.Decimal, "@RefundAmount", QueryConditionOperatorType.Equal, filter.RefundAmount);
                    break;

                case OperationSignType.MoreThanOrEqual:
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.RefundCashAmt", DbType.Decimal, "@RefundAmount", QueryConditionOperatorType.MoreThanOrEqual, filter.RefundAmount);
                    break;
                }
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOIncomeBank.[CompanyCode]", DbType.AnsiStringFixedLength, "@CompanyCode", QueryConditionOperatorType.Equal, filter.CompanyCode);

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "NetPayExt.[Status]", DbType.Int32, "@WLTRefundStatus", QueryConditionOperatorType.Equal, filter.WLTRefundStatus);

                if (!string.IsNullOrEmpty(filter.PayTypeSysNo))
                {
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOMaster.payTypeSysNo",
                                                                 DbType.Int32, "@payTypeSysNo", QueryConditionOperatorType.Equal, Int32.Parse(filter.PayTypeSysNo));
                }

                if (filter.IsVAT.HasValue)
                {
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SOMaster.IsVAT",
                                                                 DbType.Int32, "@IsVAT", QueryConditionOperatorType.Equal, filter.IsVAT.Value);
                }

                if (filter.StockSysNo.HasValue)
                {
                    sqlBuilder.ConditionConstructor.AddCustomCondition(QueryConditionRelationType.AND,
                                                                       @"exists (SELECT TOP 1 1 FROM OverseaOrderManagement.dbo.V_OM_SO_Item ITEM WITH(NOLOCK)
	                      WHERE item.SOSysNo = SOMaster.SysNo
                          AND item.WarehouseNumber = @WareHouseNumber)");

                    cmd.AddInputParameter("@WareHouseNumber", DbType.Int32, filter.StockSysNo.Value);
                }

                cmd.CommandText    = sqlBuilder.BuildQuerySql();
                cmd.CommandTimeout = TimeOut;

                EnumColumnList enumColumns = new EnumColumnList();
                enumColumns.Add("AuditStatus", typeof(RefundStatus));
                enumColumns.Add("OrderType", typeof(RefundOrderType));
                enumColumns.Add("RefundStatus", typeof(SOIncomeStatus));
                enumColumns.Add("RefundPayType", typeof(RefundPayType));
                enumColumns.Add("Source", typeof(NetPaySource));

                result     = cmd.ExecuteDataTable(enumColumns);
                totalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount"));
            }
            return(result);
        }
Exemple #17
0
    public static void GroupCondition(ref GroupCondition gc)
    {
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.BeginVertical();
         if(DataHolder.BattleSystem().IsTurnBased())
        {
            gc.firstMove = EditorGUILayout.Toggle("First move", gc.firstMove, GUILayout.Width(mWidth));
            if(gc.firstMove)
            {
                gc.firstMoveRounds = EditorGUILayout.IntField("Rounds", gc.firstMoveRounds, GUILayout.Width(mWidth));
                if(gc.firstMoveRounds < 1) gc.firstMoveRounds = 1;
            }
        }
        else if(DataHolder.BattleSystem().IsActiveTime())
        {
            gc.timebar = EditorGUILayout.FloatField("Start timebar", gc.timebar, GUILayout.Width(mWidth));
        }
        for(int i=0; i<gc.setStatus.Length; i++)
        {
            if(DataHolder.StatusValue(i).IsConsumable())
            {
                EditorGUILayout.BeginHorizontal();
                gc.setStatus[i] = EditorGUILayout.Toggle("Set "+DataHolder.StatusValues().GetName(i),
                        gc.setStatus[i], GUILayout.Width(mWidth));

                if(gc.setStatus[i])
                {
                    gc.status[i] = EditorGUILayout.IntField(gc.status[i], GUILayout.Width(mWidth*0.5f));
                }
                EditorGUILayout.EndHorizontal();
            }
            else gc.setStatus[i] = false;
        }
        EditorGUILayout.EndVertical();
        EditorGUILayout.Separator();

        EditorGUILayout.BeginVertical();
        for(int i=0; i<gc.effect.Length; i++)
        {
            gc.effect[i] = (SkillEffect)EditorTab.EnumToolbar(DataHolder.Effects().GetName(i),
                    (int)gc.effect[i], typeof(SkillEffect));
        }
        EditorGUILayout.EndVertical();
        GUILayout.FlexibleSpace();
        EditorGUILayout.EndHorizontal();
    }