Exemple #1
0
        public static string BuildTreeNodeSearchString(string costCode, TreeNodeSearchType searchType)
        {
            string cBSFullCode = CBSDAO.GetCBSFullCode(costCode);

            switch (searchType)
            {
            case TreeNodeSearchType.AllSubNodeIncludeSelf:
                return(string.Format(" costCode in ( select costCode from CBS where FullCode  like '{0}%'  ) ", cBSFullCode));

            case TreeNodeSearchType.AllSubNodeNotIncludeSelf:
                return(string.Format(" costCode in ( select costCode from CBS where FullCode  FullCode like '{0}%' and FullCode <> {'0'}  ) ", cBSFullCode));

            case TreeNodeSearchType.FirstChildNode:
                return(string.Format(" CostCode in ( select CostCode from CBS where ParentCode = '{0}'  ) ", cBSFullCode));

            case TreeNodeSearchType.AllSubLeafNode:
                return(string.Format("  costCode in ( select costCode from CBS c where FullCode like '{0}%' and Not Exists ( select * from CBS e where e.ParentCode = c.CostCode  ) ) ", cBSFullCode));

            case TreeNodeSearchType.AllSubNotLeafNode:
                return(string.Format("  costCode in ( select costCode from CBS c where FullCode like '{0}%' and Exists ( select * from CBS e where e.ParentCode = c.CostCode  ) ) ", cBSFullCode));

            case TreeNodeSearchType.OnlySelfNode:
                return(string.Format(" CostCode  = '{0}'  ) ", costCode));
            }
            return("");
        }
        public override void AddStrategy(Strategy strategy)
        {
            switch (((PaymentItemStrategyName)strategy.Name))
            {
            case PaymentItemStrategyName.PaymentItemCode:
                strategy.RelationFieldName = "PaymentItemCode";
                strategy.Type = StrategyType.StringEqual;
                break;

            case PaymentItemStrategyName.PaymentCode:
                strategy.RelationFieldName = "PaymentCode";
                strategy.Type = StrategyType.StringEqual;
                break;

            case PaymentItemStrategyName.ContractCode:
                strategy.RelationFieldName = "ContractCode";
                strategy.Type = StrategyType.StringEqual;
                break;

            case PaymentItemStrategyName.CostCode:
                strategy.RelationFieldName = "CostCode";
                strategy.Type = StrategyType.StringEqual;
                break;

            case PaymentItemStrategyName.CostBudgetSetCode:
                strategy.RelationFieldName = "CostBudgetSetCode";
                strategy.Type = StrategyType.StringEqual;
                break;

            case PaymentItemStrategyName.PaymentType:
                strategy.RelationFieldName = "PaymentType";
                strategy.Type = StrategyType.StringEqual;
                break;

            case PaymentItemStrategyName.Status:
                strategy.RelationFieldName = "Status";
                strategy.Type = StrategyType.NumberIn;
                break;

            case PaymentItemStrategyName.IsContract:
                strategy.RelationFieldName = "IsContract";
                strategy.Type = StrategyType.IntegerEqual;
                break;

            case PaymentItemStrategyName.AllocateCode:
                strategy.RelationFieldName = "AllocateCode";
                strategy.Type = StrategyType.StringEqual;
                break;

            case PaymentItemStrategyName.CostCodeIncludeAllChild:
                strategy.RelationFieldName = "CostFullCode";
                strategy.Type = StrategyType.StringLike;
                strategy.SetParameter(0, CBSDAO.GetCBSFullCode(strategy.GetParameter(0)) + "%");
                break;

            case PaymentItemStrategyName.PayDate:
                strategy.RelationFieldName = "PayDate";
                strategy.Type = StrategyType.DateTimeRange;
                break;

            case PaymentItemStrategyName.IsApportion:
                strategy.RelationFieldName = "IsApportion";
                strategy.Type = StrategyType.IntegerEqual;
                break;

            case PaymentItemStrategyName.ProjectCode:
                strategy.RelationFieldName = "ProjectCode";
                strategy.Type = StrategyType.StringEqual;
                break;

            case PaymentItemStrategyName.ContractCostPlanCode:
                strategy.RelationFieldName = "ContractCostPlanCode";
                strategy.Type = StrategyType.StringEqual;
                break;

            case PaymentItemStrategyName.ContractCostCashCode:
                strategy.RelationFieldName = "ContractCostCashCode";
                strategy.Type = StrategyType.StringEqual;
                break;

            case PaymentItemStrategyName.PBSType:
                strategy.RelationFieldName = "PBSType";
                strategy.Type = StrategyType.StringEqual;
                break;

            case PaymentItemStrategyName.PBSCode:
                strategy.RelationFieldName = "PBSCode";
                strategy.Type = StrategyType.StringEqual;
                break;

            default:
                strategy.Type = StrategyType.Other;
                break;
            }
            base.AddStrategy(strategy);
        }
Exemple #3
0
        public override string BuildSingleStrategyString(Strategy strategy)
        {
            PaymentStrategyName name = (PaymentStrategyName)strategy.Name;
            string text = "";

            if (strategy.Type == StrategyType.Other)
            {
                switch (name)
                {
                case PaymentStrategyName.WBSCode:
                {
                    string costCode    = strategy.GetParameter(0);
                    string cBSFullCode = CBSDAO.GetCBSFullCode(costCode);
                    switch (strategy.GetParameter(1))
                    {
                    case "0":
                        return(WBSStrategyBuilder.BuildTreeNodeSearchString(costCode, TreeNodeSearchType.AllSubNodeIncludeSelf));

                    case "1":
                        return(WBSStrategyBuilder.BuildTreeNodeSearchString(costCode, TreeNodeSearchType.AllSubLeafNode));

                    case "2":
                        return(WBSStrategyBuilder.BuildTreeNodeSearchString(costCode, TreeNodeSearchType.AllSubNotLeafNode));

                    case "4":
                        return(WBSStrategyBuilder.BuildTreeNodeSearchString(costCode, TreeNodeSearchType.OnlySelfNode));
                    }
                    return(text);
                }

                case PaymentStrategyName.AccessRange:
                    return(BuildAccessRangeString(strategy.GetParameter(0), strategy.GetParameter(1)));

                case PaymentStrategyName.GroupCode:
                case PaymentStrategyName.PaymentTitle:
                case PaymentStrategyName.PaymentNameEx:
                    return(text);

                case PaymentStrategyName.GroupCodeEx:
                {
                    string systemGroupCode = strategy.GetParameter(0);
                    switch (strategy.GetParameter(1))
                    {
                    case "0":
                        return(SystemGroupStrategyBuilder.BuildTreeNodeSearchString(systemGroupCode, TreeNodeSearchType.AllSubNodeIncludeSelf, SystemClassDescription.GetItemTypeColumnName("Payment")));

                    case "1":
                        return(SystemGroupStrategyBuilder.BuildTreeNodeSearchString(systemGroupCode, TreeNodeSearchType.AllSubLeafNode, SystemClassDescription.GetItemTypeColumnName("Payment")));

                    case "2":
                        return(SystemGroupStrategyBuilder.BuildTreeNodeSearchString(systemGroupCode, TreeNodeSearchType.AllSubNotLeafNode, SystemClassDescription.GetItemTypeColumnName("Payment")));
                    }
                    return(text);
                }

                case PaymentStrategyName.NotPayout:
                    return("isnull(Money, 0) - isnull(TotalPayoutMoney, 0) >= 0.01");

                case PaymentStrategyName.BatchPayment:
                    return("Payer = '成本批量请款'");

                case PaymentStrategyName.NotBatchPayment:
                    return("isnull(Payer, '') <> '成本批量请款'");
                }
                return(text);
            }
            return(StandardStrategyStringBuilder.BuildStrategyString(strategy));
        }