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); }
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)); }