// //税款计算(现金流)
// //2018年5月11日修改,去除之前的送数逻辑,新增BADI计算相关科目
// *SELECT(%010804ZH%, "ID", "TIME", "[PLAN] = Y")
// *SELECT(%010804ZH1%, "ID", "TIME", "[PLAN] = S") // //计算分期分产品,管理口径的1.1.1.1、预缴增值税基数 A01030402,1.1.1、预缴增值税 A01030401010101以及分期分产品(普通、非普通、其他)
// //的1.1.1.1、预缴土地增值税基数 A01030404,1.1、预缴土地增值税 A01030403010101
// //清数开始
// *XDIM_MEMBERSET TIME = %010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET P_ACCOUNT = A01030402,A01030401010101 //1.1.1.1、预缴增值税基数,1.1.1、预缴增值税
// *XDIM_MEMBERSET PRODUCT = BAS(P01)
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD010101 //管理
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS A01030402,A01030401010101
// *WHEN P_ENTITY.LEVEL
// *IS <>"L5.1"
// *REC(EXPRESSION=0)
// *ENDWHEN
// *ENDWHEN // *XDIM_MEMBERSET TIME = %010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET P_ACCOUNT = A01030404,A01030403010101 //1.1.1.1、预缴土地增值税基数、1.1、预缴土地增值税
// *XDIM_MEMBERSET PRODUCT = BAS(P01)
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD01020301,AD01020302,AD01020303 //普通,非普通,其他
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS A01030404,A01030403010101
// *WHEN P_ENTITY.LEVEL
// *IS "L6","L7"
// *REC(EXPRESSION=0)
// *ENDWHEN
// *ENDWHEN
// *COMMIT
// //清数结束
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET PRODUCT = BAS(P01)
// *XDIM_MEMBERSET TIME = BAS(PTIME_TOTAL)
// *XDIM_MEMBERSET P_ACCOUNT =A010104,A010105
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD010101
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *START_BADI SKJS_XJL
// QUERY = OFF
// WRITE = ON
// *END_BADI // //计算项目.INP,不区分产品,管理口径的1.1.1.1、预缴增值税基数 A01030402,1.1.1、预缴增值税 A01030401010101
// //将分期分产品的数据写到项目.INP,不区分产品上
// //清数开始
// *XDIM_MEMBERSET TIME = %010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET P_ACCOUNT = A01030402,A01030401010101 //1.1.1.1、预缴增值税基数,1.1.1、预缴增值税
// *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD010101 //管理
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS A01030402,A01030401010101
// *WHEN P_ENTITY.LEVEL
// *IS "L5.1"
// *REC(EXPRESSION=0)
// *ENDWHEN
// *ENDWHEN
// *COMMIT
// //清数结束
// *XDIM_MEMBERSET TIME = %010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET P_ACCOUNT = A01030402,A01030401010101 //1.1.1.1、预缴增值税基数,1.1.1、预缴增值税
// *XDIM_MEMBERSET PRODUCT = BAS(P01)
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD010101 //管理
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS A01030402,A01030401010101
// *WHEN P_ENTITY.LEVEL
// *IS "L6","L7"
// *REC(EXPRESSION=%VALUE%,PRODUCT = WO_PRODUCT,P_ENTITY = P_ENTITY.MAPPINGT)
// *ENDWHEN
// *ENDWHEN // //计算项目.INP,不区分产品,普通/非普通/其他口径的1.1.1.1、预缴土地增值税基数 A01030404,1.1、预缴土地增值税 A01030403010101,上月实际手录
// //将分期分产品的数据写到项目.INP,不区分产品上
// //清数开始
// *XDIM_MEMBERSET TIME = %010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET P_ACCOUNT = A01030404,A01030403010101 //1.1.1.1、预缴土地增值税基数、1.1、预缴土地增值税
// *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD01020301,AD01020302,AD01020303 //普通,非普通,其他
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS A01030404,A01030403010101
// *WHEN P_ENTITY.LEVEL
// *IS "L5.1"
// *REC(EXPRESSION=0)
// *ENDWHEN
// *ENDWHEN
// *COMMIT
// //清数结束
// *XDIM_MEMBERSET TIME = %010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET P_ACCOUNT = A01030404,A01030403010101 //1.1.1.1、预缴土地增值税基数、1.1、预缴土地增值税
// *XDIM_MEMBERSET PRODUCT = BAS(P01)
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD01020301,AD01020302,AD01020303 //普通,非普通,其他
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS A01030404,A01030403010101
// *WHEN P_ENTITY.LEVEL
// *IS "L6","L7"
// *WHEN P_ENTITY.MAPPINGT
// *IS <> ""
// *REC(EXPRESSION=%VALUE%,PRODUCT = WO_PRODUCT,P_ENTITY = P_ENTITY.MAPPINGT) //普通,非普通,其他
// *ENDWHEN
// *ENDWHEN
// *ENDWHEN
// *COMMIT // //计算项目.INP,不区分产品,管理口径的1.1.1.1、预缴土地增值税基数 A01030404,1.1、预缴土地增值税 A01030403010101,上月实际计算
// //清数开始
// *XDIM_MEMBERSET TIME = %010804ZH1%,%010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET P_ACCOUNT = A01030404,A01030403010101 //1.1.1.1、预缴土地增值税基数、1.1、预缴土地增值税
// *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD010101 //管理
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS A01030404,A01030403010101
// *WHEN P_ENTITY.LEVEL
// *IS "L5.1"
// *REC(EXPRESSION=0)
// *ENDWHEN
// *ENDWHEN
// *COMMIT
// //清数结束
// *XDIM_MEMBERSET TIME = %010804ZH1%,%010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET P_ACCOUNT = A01030404,A01030403010101 //1.1.1.1、预缴土地增值税基数、1.1、预缴土地增值税
// *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD01020301,AD01020302,AD01020303 //普通,非普通,其他
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS A01030404,A01030403010101
// *WHEN P_ENTITY.LEVEL
// *IS "L5.1"
// *REC(EXPRESSION=%VALUE%,ADDITION=AD010101) //管理
// *ENDWHEN
// *ENDWHEN
// *COMMIT // //计算预缴附加税
// //“预缴增值税小计”*《税率表》“附加税率”
// //清数开始
// // *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// // *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// // *XDIM_MEMBERSET TIME = BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL)
// // *XDIM_ADDMEMBERSET TIME = %010804ZH%,3010.01
// // *XDIM_MEMBERSET P_ACCOUNT = A01030401020101
// // *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// // *XDIM_MEMBERSET AUDITTRAIL = INPUT
// // *XDIM_MEMBERSET ADDITION = AD010101
// // *XDIM_MEMBERSET ITEM = WO_ITEM
// // *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// // *XDIM_MEMBERSET RESERVE = WO_RESERVE
// // *WHEN P_ACCOUNT
// // *IS *
// // *REC(EXPRESSION = 0)
// // *ENDWHEN
// // *COMMIT
// //清数结束
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET TIME = BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL)
// *XDIM_ADDMEMBERSET TIME = %010804ZH%,3010.01
// *XDIM_MEMBERSET P_ACCOUNT = BAS(A010304010101) //预缴增值税小计
// *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD010101
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS BAS(A010304010101)
// *REC(EXPRESSION = %VALUE%*([P_ACCOUNT].[A01050504],[TIME].[WO_TIME],[ADDITION].[WO_ADDITION]),P_ACCOUNT=A01030401020101)
// *ENDWHEN // //计算3.小税种(土地使用税+房产税+印花税+车船税+其他)
// //《税款计算(小税种)》(“土地使用税合计”+“房产税合计”+“印花税合计”+“车船税”+其他)
// //清数开始
// // *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// // *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// // *XDIM_MEMBERSET TIME = BAS(PTIME_TOTAL)
// // *XDIM_MEMBERSET P_ACCOUNT = A0103040103
// // *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// // *XDIM_MEMBERSET AUDITTRAIL = INPUT
// // *XDIM_MEMBERSET ADDITION = AD010101
// // *XDIM_MEMBERSET ITEM = WO_ITEM
// // *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// // *XDIM_MEMBERSET RESERVE = WO_RESERVE
// // *WHEN P_ACCOUNT
// // *IS *
// // *REC(EXPRESSION = 0)
// // *ENDWHEN
// // *COMMIT
// //清数结束
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET TIME = BAS(PTIME_TOTAL)
// *XDIM_MEMBERSET P_ACCOUNT = BAS(A01030301),BAS(A01030303),BAS(A01030305),A01030306,A01030307,A01030309
// *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD010101
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS *
// *REC(EXPRESSION = %VALUE%,P_ACCOUNT=A0103040103)
// *ENDWHEN // //计算按纳税义务发生时间补缴增值税对应附加税
// //清数开始
// // *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// // *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// // *XDIM_MEMBERSET TIME = BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL)
// // *XDIM_ADDMEMBERSET TIME = %010804ZH%,3010.01
// // *XDIM_MEMBERSET P_ACCOUNT = A010304010202
// // *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// // *XDIM_MEMBERSET AUDITTRAIL = INPUT
// // *XDIM_MEMBERSET ADDITION = AD010101
// // *XDIM_MEMBERSET ITEM = WO_ITEM
// // *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// // *XDIM_MEMBERSET RESERVE = WO_RESERVE
// // *WHEN P_ACCOUNT
// // *IS *
// // *REC(EXPRESSION = 0)
// // *ENDWHEN
// // *COMMIT
// //清数结束
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET TIME = BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL)
// *XDIM_ADDMEMBERSET TIME = %010804ZH%,3010.01
// *XDIM_MEMBERSET P_ACCOUNT = A010304010102 //按纳税义务发生时间补缴增值税
// *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD010101
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS A010304010102
// *REC(EXPRESSION = %VALUE%*([P_ACCOUNT].[A01050504],[TIME].[WO_TIME],[ADDITION].[WO_ADDITION]),P_ACCOUNT=A010304010202)
// *ENDWHEN // //计算上一年一月及以后的1.1.1.1、利润总额,1.1.1.2、预缴企业所得税回款基数,1.1.1.3、预缴企业所得税结转收入基数,1.1.1.4、土增税(现金流口径),1.1.1.5、附加税(现金流口径)
// //1.1.1.6、土增税(利润口径),1.1.1.7、附加税(利润口径),1.1.1、应税利润,1.1.2、当年累计应税利润
// //当前版本及以后年月的1.1、预缴企业所得税
// //清数开始
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET TIME = %010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01
// *XDIM_MEMBERSET P_ACCOUNT = A010304070101 //1.1、预缴企业所得税
// *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD010101
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS *
// *REC(EXPRESSION = 0)
// *ENDWHEN // *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET TIME =BAS(2999.TOTAL),BAS(3000.TOTAL),BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL)
// *XDIM_MEMBERSET P_ACCOUNT = A01030408,A01030409,A01030412,A01030413,A01030414,A01030415,A01030416,A01030417,A01030418
// *XDIM_MEMBERSET PRODUCT = WO_PRODUCT
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET ADDITION = AD010101
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *WHEN P_ACCOUNT
// *IS *
// *REC(EXPRESSION = 0)
// *ENDWHEN
// *COMMIT
// //清数结束
// *XDIM_MEMBERSET TIME = BAS(2999.TOTAL),BAS(3000.TOTAL),BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),WO_TIME //计划时间
// *XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
// *XDIM_MEMBERSET P_ACCOUNT = A010601,A0201010201,A02010101010105,A02010101010101,A010105,A01050506,A01050505,A01030411,A010304070101,A010304070102 //利润总额
// *XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
// *XDIM_MEMBERSET AUDITTRAIL = INPUT
// *XDIM_MEMBERSET PRODUCT = WO_PRODUCT,BAS(P01)
// *XDIM_MEMBERSET ADDITION = AD010101,AD010103,WO_ADDITION
// *XDIM_MEMBERSET ITEM = WO_ITEM
// *XDIM_MEMBERSET D_TYPE = WO_D_TYPE
// *XDIM_MEMBERSET RESERVE = WO_RESERVE
// *START_BADI TAX_CF
// QUERY = ON
// WRITE = ON
// *END_BADI //税款计算(现金流) 20190310 优化by zhoulf
//20190814 modify by yanglf:对于管理口径预缴土增税,新增当年调实期的计算 *SELECT(%010804ZH%, "ID", "TIME", "[PLAN] = Y")
// *SELECT(%010804ZH1%, "ID", "TIME", "[PLAN] = S")
// *SELECT(%010804ZH2%, "ID", "TIME", "[PLAN] = X")
*SELECT(%010804ZH1%, "ID", "TIME", "[ID]>=2985.12 AND [ID]<3001.01 AND [PLAN]<>Y") //上年及以前实际数 //计算清0;
//分期分产品:1、管理口径的预缴增值税基数,预缴增值税;2、普通、非普通、其他的预缴土地增值税基数、预缴土地增值税;
//项目不区分产品:3、管理口径的预缴增值税基数,预缴增值税;4、普通,非普通,其他的预缴土地增值税基数、预缴土地增值税;5、管理口径的预缴土地增值税基数、预缴土地增值税
//项目不区分产品:6、预缴企业所得税;7、1.1.1.2-1.1.1.8
*XDIM_MEMBERSET TIME = %010804ZH1%,%010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
*XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
*XDIM_MEMBERSET P_ACCOUNT = A01030402,A01030401010101,A01030404,A01030403010101,A01030402,A01030401010101,A010304070101,A01030408,A01030409,A01030412,A01030413,A01030414,A01030415,A01030416,A01030417,A01030418
*XDIM_MEMBERSET PRODUCT = BAS(P01),WO_PRODUCT
*XDIM_MEMBERSET AUDITTRAIL = INPUT
*XDIM_MEMBERSET ADDITION = AD010101,AD01020301,AD01020302,AD01020303
*XDIM_MEMBERSET ITEM = WO_ITEM
*XDIM_MEMBERSET D_TYPE = WO_D_TYPE
*XDIM_MEMBERSET RESERVE = WO_RESERVE
*WHEN TIME
*IS %010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
*WHEN PRODUCT
*IS BAS(P01)
*WHEN ADDITION
*IS AD010101
*WHEN P_ACCOUNT
*IS A01030402,A01030401010101 //分期分产品:1、管理口径的预缴增值税基数,预缴增值税;
*WHEN P_ENTITY.LEVEL
*IS <>"L5.1"
*REC(FACTOR = 0)
*ENDWHEN
*ENDWHEN
*IS AD01020301,AD01020302,AD01020303
*WHEN P_ACCOUNT
*IS A01030404,A01030403010101 //分期分产品:2、普通、非普通、其他的预缴土地增值税基数、预缴土地增值税;
*WHEN P_ENTITY.LEVEL
*IS "L6","L7"
*REC(FACTOR = 0)
*ENDWHEN
*ENDWHEN
*ENDWHEN
*IS WO_PRODUCT
*WHEN ADDITION
*IS AD010101
*WHEN P_ACCOUNT
*IS A01030402,A01030401010101,A01030401020101 //不区分产品:3、管理口径的预缴增值税基数,预缴增值税、2.1.1、预缴附加税(20190504新增附加税清数);
*WHEN P_ENTITY.LEVEL
*IS "L5.1"
*REC(FACTOR = 0)
*ENDWHEN
*IS A010304070101 //不区分产品:6、预缴企业所得税
*WHEN P_ENTITY.LEVEL
*IS "L5.1"
*REC(FACTOR = 0)
*ENDWHEN
*ENDWHEN
*IS AD01020301,AD01020302,AD01020303
*WHEN P_ACCOUNT
*IS A01030404,A01030403010101 //不区分产品:4、普通,非普通,其他的预缴土地增值税基数、预缴土地增值税;
*WHEN P_ENTITY.LEVEL
*IS "L5.1"
*REC(FACTOR = 0)
*ENDWHEN
*ENDWHEN
*ENDWHEN
*ENDWHEN
*IS %010804ZH1%,%010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
*WHEN PRODUCT
*IS WO_PRODUCT
*WHEN ADDITION
*IS AD010101
*WHEN P_ACCOUNT
*IS A01030404,A01030403010101 //不区分产品:5、管理口径的预缴土地增值税基数、预缴土地增值税
*WHEN P_ENTITY.LEVEL
*IS "L5.1"
*REC(FACTOR = 0)
*ENDWHEN
*ENDWHEN
*ENDWHEN
*ENDWHEN
*IS BAS(2999.TOTAL),BAS(3000.TOTAL),BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL)
*WHEN PRODUCT
*IS WO_PRODUCT
*WHEN ADDITION
*IS AD010101
*WHEN P_ACCOUNT //7、1.1.1.2-1.1.1.8
*IS A01030408,A01030409,A01030412,A01030413,A01030414,A01030415,A01030416,A01030417,A01030418
*WHEN P_ENTITY.LEVEL
*IS "L5.1"
*REC(FACTOR = 0)
*ENDWHEN
*ENDWHEN
*ENDWHEN
*ENDWHEN
*ENDWHEN //计算分期分产品,管理口径的预缴增值税基数、预缴增值税以及分期分产品(普通、非普通、其他)预缴土地增值税基数、预缴土地增值税
*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
*XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
*XDIM_MEMBERSET PRODUCT = BAS(P01)
*XDIM_MEMBERSET TIME = BAS(PTIME_TOTAL)
*XDIM_MEMBERSET P_ACCOUNT =A010104,A010105
*XDIM_MEMBERSET AUDITTRAIL = INPUT
*XDIM_MEMBERSET ADDITION = AD010101
*XDIM_MEMBERSET ITEM = WO_ITEM
*XDIM_MEMBERSET D_TYPE = WO_D_TYPE
*XDIM_MEMBERSET RESERVE = WO_RESERVE
*START_BADI SKJS_XJL
QUERY = OFF
WRITE = ON
*END_BADI //1.计算项目.INP,不区分产品,管理口径的预缴增值税基数、预缴增值税,将分期分产品的数据写到项目.INP,不区分产品上;
//2.计算项目.INP,不区分产品,普通/非普通/其他口径的预缴土地增值税基数、预缴土地增值税、上月实际手录,将分期分产品的数据写到项目.INP,不区分产品上;
//3.计算项目.INP,不区分产品,管理口径的预缴土地增值税基数、预缴土地增值税,含第2点手工调实数,上月实际计算
*XDIM_MEMBERSET TIME = %010804ZH1%,%010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //全周期
*XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
*XDIM_MEMBERSET P_ACCOUNT = A01030402,A01030401010101,A01030404,A01030403010101
*XDIM_MEMBERSET PRODUCT = BAS(P01),WO_PRODUCT
*XDIM_MEMBERSET AUDITTRAIL = INPUT
*XDIM_MEMBERSET ADDITION = AD010101,AD01020301,AD01020302,AD01020303
*XDIM_MEMBERSET ITEM = WO_ITEM
*XDIM_MEMBERSET D_TYPE = WO_D_TYPE
*XDIM_MEMBERSET RESERVE = WO_RESERVE
*WHEN TIME
*IS %010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01 //计划时间
*WHEN PRODUCT
*IS BAS(P01)
*WHEN ADDITION
*IS AD010101
*WHEN P_ACCOUNT
*IS A01030402,A01030401010101 //1、管理口径的预缴增值税基数、预缴增值税
*WHEN P_ENTITY.LEVEL
*IS "L6","L7"
*REC(EXPRESSION=%VALUE%,PRODUCT = WO_PRODUCT,P_ENTITY = P_ENTITY.MAPPINGT)
*ENDWHEN
*ENDWHEN
*IS AD01020301,AD01020302,AD01020303
*WHEN P_ACCOUNT
*IS A01030404,A01030403010101 //2、普通/非普通/其他口径的预缴土地增值税基数、预缴土地增值税;3、管理口径的预缴土地增值税基数、预缴土地增值税
*WHEN P_ENTITY.LEVEL
*IS "L6","L7"
*REC(EXPRESSION=%VALUE%,PRODUCT = WO_PRODUCT,P_ENTITY = P_ENTITY.MAPPINGT)
*REC(EXPRESSION=%VALUE%,PRODUCT = WO_PRODUCT,P_ENTITY = P_ENTITY.MAPPINGT,ADDITION=AD010101) //管理
*ENDWHEN
*ENDWHEN
*ENDWHEN
*ENDWHEN
*IS %010804ZH1% //加上实际期
*WHEN PRODUCT
*IS WO_PRODUCT
*WHEN ADDITION
*IS AD01020301,AD01020302,AD01020303
*WHEN P_ACCOUNT
*IS A01030404,A01030403010101 //3、管理口径的预缴土地增值税基数、预缴土地增值税
*WHEN P_ENTITY.LEVEL
*IS "L5.1"
*REC(EXPRESSION=%VALUE%,PRODUCT = WO_PRODUCT,ADDITION=AD010101) //管理
*ENDWHEN
*ENDWHEN
*ENDWHEN
*ENDWHEN
*ENDWHEN //1.计算预缴附加税;2.小税种;3.计算按纳税义务发生时间补缴增值税对应附加税;
*XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
*XDIM_MEMBERSET TIME = BAS(PTIME_TOTAL)
*XDIM_MEMBERSET P_ACCOUNT = BAS(A010304010101),BAS(A01030301),BAS(A01030303),BAS(A01030305),A01030306,A01030307,A01030309,A010304010102
*XDIM_MEMBERSET PRODUCT = WO_PRODUCT
*XDIM_MEMBERSET AUDITTRAIL = INPUT
*XDIM_MEMBERSET ADDITION = AD010101
*XDIM_MEMBERSET ITEM = WO_ITEM
*XDIM_MEMBERSET D_TYPE = WO_D_TYPE
*XDIM_MEMBERSET RESERVE = WO_RESERVE
*WHEN TIME
*IS %010804ZH%,BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),3010.01
*WHEN P_ACCOUNT
*IS BAS(A010304010101) //1.计算预缴附加税;
*REC(EXPRESSION = %VALUE%*([P_ACCOUNT].[A01050504],[TIME].[WO_TIME],[ADDITION].[WO_ADDITION]),P_ACCOUNT=A01030401020101)
*IS A010304010102 //3.计算按纳税义务发生时间补缴增值税对应附加税
*REC(EXPRESSION = %VALUE%*([P_ACCOUNT].[A01050504],[TIME].[WO_TIME],[ADDITION].[WO_ADDITION]),P_ACCOUNT=A010304010202)
*ENDWHEN
*IS BAS(PTIME_TOTAL)
*WHEN P_ACCOUNT //2.小税种
*IS BAS(A01030301),BAS(A01030303),BAS(A01030305),A01030306,A01030307,A01030309
*REC(EXPRESSION = %VALUE%,P_ACCOUNT=A0103040103)
*ENDWHEN
*ENDWHEN //计算上一年一月及以后的1.1.1.1、利润总额,1.1.1.2、预缴企业所得税回款基数,1.1.1.3、预缴企业所得税结转收入基数,1.1.1.4、土增税(现金流口径),1.1.1.5、附加税(现金流口径)
//1.1.1.6、土增税(利润口径),1.1.1.7、附加税(利润口径),1.1.1、应税利润,1.1.2、当年累计应税利润
//当前版本及以后年月的1.1、预缴企业所得税
*XDIM_MEMBERSET TIME = BAS(2999.TOTAL),BAS(3000.TOTAL),BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL),WO_TIME //计划时间
*XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
*XDIM_MEMBERSET P_ACCOUNT = A010601,A0201010201,A02010101010105,A02010101010101,A010105,A01050506,A01050505,A01030411,A010304070101,A010304070102 //利润总额
*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
*XDIM_MEMBERSET AUDITTRAIL = INPUT
*XDIM_MEMBERSET PRODUCT = WO_PRODUCT,BAS(P01)
*XDIM_MEMBERSET ADDITION = AD010101,AD010103,WO_ADDITION
*XDIM_MEMBERSET ITEM = WO_ITEM
*XDIM_MEMBERSET D_TYPE = WO_D_TYPE
*XDIM_MEMBERSET RESERVE = WO_RESERVE
*START_BADI TAX_CF
QUERY = ON
WRITE = ON
*END_BADI
*SELECT(%010803ZH1%, "ID", "TIME", "[PLAN] = 'Y'")

*XDIM_MEMBERSET P_ENTITY = BAS(%P_ENTITY_SET%)
*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
*XDIM_MEMBERSET TIME = BAS(3001.TOTAL),BAS(3002.TOTAL),BAS(3003.TOTAL),BAS(3004.TOTAL),BAS(3005.TOTAL),BAS(3006.TOTAL),BAS(3007.TOTAL),BAS(3008.TOTAL),BAS(3009.TOTAL)
*XDIM_ADDMEMBERSET TIME = %010803ZH1%,3010.01
*XDIM_MEMBERSET P_ACCOUNT = A01030202,A01030203,A01030204,A01030205
*XDIM_MEMBERSET PRODUCT = BAS(P01)
*XDIM_MEMBERSET AUDITTRAIL = INPUT
*XDIM_MEMBERSET ADDITION = AD010103
*XDIM_MEMBERSET ITEM = WO_ITEM
*XDIM_MEMBERSET D_TYPE = WO_D_TYPE
*XDIM_MEMBERSET RESERVE = WO_RESERVE
*WHEN P_ACCOUNT
*IS A01030202,A01030203
*REC(EXPRESSION =%VALUE%*([P_ACCOUNT].[A01050504],[PRODUCT].[WO_PRODUCT],[TIME].[WO_TIME],[ADDITION].[WO_ADDITION],[AUDITTRAIL].[INPUT_COPY],[D_TYPE].[WO_D_TYPE]),P_ACCOUNT = A0103020101,D_TYPE=WO_D_TYPE)
*IS A01030204,A01030205
*REC(EXPRESSION =-1*%VALUE%*([P_ACCOUNT].[A01050504],[PRODUCT].[WO_PRODUCT],[TIME].[WO_TIME],[ADDITION].[WO_ADDITION],[AUDITTRAIL].[INPUT_COPY],[D_TYPE].[WO_D_TYPE]),P_ACCOUNT = A0103020101,D_TYPE=WO_D_TYPE)
*ENDWHEN METHOD if_uj_custom_logic~execute. "//定义常量
CONSTANTS:
cns_parent1 TYPE char20 VALUE 'PARENTH1',
cns_parent2 TYPE char20 VALUE 'PARENTH2'. "//定义类型
TYPES: BEGIN OF ty_data.
INCLUDE TYPE zbpcs_0003.
TYPES:signeddata TYPE /b28/oisdata,
END OF ty_data. TYPES:BEGIN OF ty_dim,
zdimension TYPE char20,
zlevel TYPE char20,
zvalue TYPE char32,
zrange TYPE char20,
END OF ty_dim. "//定义变量
DATA:lv_in_entity TYPE char32,
lv_in_category TYPE char32,
lv_in_time TYPE char32,
lv_in_p_account TYPE char32,
lv_in_product TYPE char32,
lv_in_audittrail TYPE char32,
lv_in_addition TYPE char32,
lv_in_item TYPE char32,
lv_in_d_type TYPE char32,
lv_in_reserve TYPE char32. "//定义内表
DATA:
lt_dim TYPE TABLE OF ty_dim,
rt_product TYPE RANGE OF char32,
rt_account TYPE RANGE OF char32,
rt_account1 TYPE RANGE OF char32,
rt_account_other TYPE RANGE OF char32,
rt_entity TYPE RANGE OF char32,
rt_audittrail TYPE RANGE OF char32,
rt_time TYPE RANGE OF char32. "Y "//定义结果/工作区
DATA:lt_result TYPE TABLE OF ty_data,
ls_result TYPE ty_data.
DATA:et_member TYPE uja_t_dim_member. "//定义工作区
DATA:ls_data TYPE ty_data,
lt_data TYPE STANDARD TABLE OF ty_data,
lt_data1 TYPE STANDARD TABLE OF ty_data, "internal table data1
ls_data1 TYPE ty_data,
lt_data2 TYPE STANDARD TABLE OF ty_data, "internal table data2
ls_data2 TYPE ty_data,
lt_data_a TYPE STANDARD TABLE OF ty_data, "internal table a
ls_data_a TYPE ty_data,
lt_data_b TYPE STANDARD TABLE OF ty_data, "internal table b
lt_data_b_sum TYPE STANDARD TABLE OF ty_data, "internal table b sum
ls_data_b TYPE ty_data,
lt_data_c TYPE STANDARD TABLE OF ty_data, "internal table c
ls_data_c TYPE ty_data,
ls_member LIKE LINE OF et_member,
ls_dim TYPE ty_dim,
rs_range LIKE LINE OF rt_time.
"//定义类
DATA: lo_hier TYPE REF TO if_uja_hier,
lo_dim TYPE REF TO cl_uja_dim.
FIELD-SYMBOLS:<fs_range> LIKE rt_entity.
"//定义宏
DEFINE add_lt_dim.
ls_dim-zdimension = &1.
ls_dim-zlevel = &2.
ls_dim-zvalue = &3.
ls_dim-zrange = &4.
append ls_dim to lt_dim.
clear ls_dim.
END-OF-DEFINITION. DEFINE insert_range.
clear:&1.
&1-sign = &3.
&1-option = &4.
&1-dimension = &5.
&1-low = &6.
&1-high = &7.
collect &1 into &2.
END-OF-DEFINITION. "//-模型维护 数据
DATA: lo_dataref TYPE REF TO data.
DATA: lt_selections TYPE uj0_t_sel.
DATA: ls_selections LIKE LINE OF lt_selections. *&--------------------------------------- Get Input Parameters
LOOP AT it_param INTO data(ls_param).
CASE ls_param-hashkey.
WHEN 'P_ENTITY'.
lv_in_entity = ls_param-hashvalue.
WHEN 'CATEGORY'.
lv_in_category = ls_param-hashvalue.
WHEN OTHERS.
ENDCASE.
ENDLOOP. "//取叶子节点
CLEAR:rt_product,rt_entity,rt_time.
add_lt_dim 'P_ENTITY' cns_parent1 lv_in_entity 'RT_ENTITY'. "BAS(%P_ENTITY_SET%)
add_lt_dim 'PRODUCT ' cns_parent1 'P01' 'RT_PRODUCT'. "BAS(P01) LOOP AT lt_dim INTO ls_dim.
TRY.
CREATE OBJECT lo_dim
EXPORTING
i_appset_id = i_appset_id "PROVIDE APPSET NAME
i_dimension = ls_dim-zdimension. "PROVIDE DIMENSION NAME
CATCH cx_uja_admin_error.
ENDTRY. TRY .
lo_hier = lo_dim->get_hier_ref( ls_dim-zlevel ).
CATCH cx_uja_admin_error.
ENDTRY. CHECK lo_hier IS NOT INITIAL.
CALL METHOD lo_hier->get_children
EXPORTING
i_member = ls_dim-zvalue
i_level = 99
if_self = abap_true
IMPORTING
et_mbr_name = et_member.
ASSIGN (ls_dim-zrange) TO <fs_range>. LOOP AT et_member INTO ls_member.
rs_range-sign = 'I'.
rs_range-option = 'EQ'.
rs_range-low = ls_member.
APPEND rs_range TO <fs_range>.
ENDLOOP. CLEAR :et_member[],ls_member.
ENDLOOP. *TIME筛选逻辑3
CALL METHOD zbpccl_comm_api=>get_filter_time
EXPORTING
iv_type = '3'
CHANGING
it_time = rt_time. "//从RT_TIME,RT_PRODUCT,RT_ENTITY,RT_AUDITTRAIL筛选数据
CLEAR:lt_selections,ls_selections.
"RT_ENTITY
LOOP AT rt_entity INTO rs_range.
insert_range ls_selections lt_selections 'I' 'EQ' 'P_ENTITY' rs_range-low space.
ENDLOOP. "CATEGORY
insert_range ls_selections lt_selections 'I' 'EQ' 'CATEGORY' lv_in_category space. "RT_TIME
LOOP AT rt_time INTO rs_range.
insert_range ls_selections lt_selections 'I' 'EQ' 'TIME' rs_range-low space.
ENDLOOP. "RT_ACCOUNT
insert_range ls_selections lt_selections 'I' 'EQ' 'P_ACCOUNT' 'A01030202' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'P_ACCOUNT' 'A01030203' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'P_ACCOUNT' 'A01030204' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'P_ACCOUNT' 'A01030205' space. "RT_PRODUCT
LOOP AT rt_product INTO rs_range.
insert_range ls_selections lt_selections 'I' 'EQ' 'PROCUCT' rs_range-low space.
ENDLOOP. "AUDITTRAIL
insert_range ls_selections lt_selections 'I' 'EQ' 'AUDITTRAIL' 'INPUT' space. "ADDITION
insert_range ls_selections lt_selections 'I' 'EQ' 'ADDITION' 'AD010103' space.
"ITEM
insert_range ls_selections lt_selections 'I' 'EQ' 'ITEM' 'WO_ITEM' space. "D_TYPE
insert_range ls_selections lt_selections 'I' 'EQ' 'D_TYPE' 'WO_D_TYPE' space. "RESERVE
insert_range ls_selections lt_selections 'I' 'EQ' 'RESERVE' 'WO_RESERVE' space. "//取PRODUCT属性数据
IF rt_product IS NOT INITIAL.
SELECT /b28/s_ipd6tnw AS product,
/b28/s_ippv8n1 as barn
into table @data(lt_product)
from /b28/pipd6tnw
where /b28/s_ipd6tnw in @rt_product
and objvers eq 'A'.
ENDIF. DATA:ls_product LIKE LINE OF lt_product.
SORT lt_product BY product. "//根据维度条件取数
CLEAR:lt_data.
CALL METHOD zbpccl_comm_api=>get_model_data
EXPORTING
iv_appset_id = i_appset_id
iv_appl_id = i_appl_id
it_selections = lt_selections
CHANGING
it_data = lt_data. lt_data_a = lt_data."主数据 "//将原模型中P_ACCOUNT、TIME、ADDITION删除,取出数据LT_DATA1
DELETE lt_selections WHERE dimension = 'ADDITION' OR
dimension = 'P_ACCOUNT' OR
dimension = 'PRODUCT' OR
dimension = 'AUDITTRAIL' OR
dimension = 'D_TYPE' OR
dimension = 'TIME' . insert_range ls_selections lt_selections 'I' 'EQ' 'P_ACCOUNT' 'A01050504' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'PRODUCT' 'WO_PRODUCT' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'TIME' 'WO_TIME' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'ADDITION' 'WO_ADDITION' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'AUDITTRAIL' 'INPUT_COPY' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'D_TYPE' 'WO_D_TYPE' space. "//根据维度条件取数LT_DATA1
CLEAR:lt_data.
CALL METHOD zbpccl_comm_api=>get_model_data
EXPORTING
iv_appset_id = i_appset_id
iv_appl_id = i_appl_id
it_selections = lt_selections
CHANGING
it_data = lt_data1. "进行数据合计
CLEAR:lt_data_b_sum,ls_data1.
LOOP AT lt_data1 INTO ls_data1.
COLLECT ls_data1 INTO lt_data_b_sum.
ENDLOOP. "开始结果赋值
LOOP AT lt_data_a INTO ls_data_a .
READ TABLE lt_data_b_sum INTO ls_data WITH KEY audittrail = ls_data_a-audittrail
category = ls_data_a-category
item = ls_data_a-item
measures = ls_data_a-measures
p_entity = ls_data_a-p_entity
reserve = ls_data_a-reserve.
CHECK sy-subrc = 0.
CLEAR ls_result.
ls_result-p_account = 'A0103020101'.
ls_result-d_type = 'WO_D_TYPE'.
IF ls_data_a-p_account = 'A01030202' OR ls_data_a-p_account = 'A01030203'.
ls_result-signeddata = ls_data_a-signeddata * ls_data-signeddata.
COLLECT ls_result INTO lt_result.
ELSEIF ls_data_a-p_account = 'A01030204' OR ls_data_a-p_account = 'A01030205'.
ls_result-signeddata = -1 * ls_data_a-signeddata * ls_data-signeddata.
COLLECT ls_result INTO lt_result.
ENDIF.
ENDLOOP .
ct_data = lt_result.
ENDMETHOD. "if_uj_custom_logic~execute
METHOD if_uj_custom_logic~execute.

  CONSTANTS:
* cns_n TYPE c VALUE 'N',
* cns_p TYPE c VALUE 'P',
* cns_cn TYPE char32 VALUE 'C_CN',
cns_parent1 TYPE char20 VALUE 'PARENTH1',
cns_parent2 TYPE char20 VALUE 'PARENTH2'.
* cns_01 TYPE char3 VALUE '01*',
* cns_02 TYPE char3 VALUE '02*'. TYPES: BEGIN OF ty_data.
INCLUDE TYPE zbpcs_0003.
TYPES:signeddata TYPE /b28/oisdata,
END OF ty_data. TYPES:BEGIN OF ty_dim,
zdimension TYPE char20,
zlevel TYPE char20,
zvalue TYPE char32,
zrange TYPE char20,
END OF ty_dim. DATA: lv_in_entity TYPE char32,
lv_in_category TYPE char32,
lv_in_time TYPE char32.
* lv_in_p_account TYPE char32,
* lv_in_product TYPE char32,
* lv_in_audittrail TYPE char32,
* lv_in_addition TYPE char32,
* lv_in_item TYPE char32,
* lv_in_d_type TYPE char32,
* lv_in_reserve TYPE char32. DATA:
lt_dim TYPE TABLE OF ty_dim,
rt_product TYPE RANGE OF char32,
rt_account TYPE RANGE OF char32,
* rt_account_other TYPE RANGE OF char32,
rt_entity TYPE RANGE OF char32,
rt_audittrail TYPE RANGE OF char32,
rt_time TYPE RANGE OF char32, "YS
rt_time_logic3 TYPE RANGE OF char32. "Y DATA:lt_result TYPE TABLE OF ty_data,
ls_result TYPE ty_data.
DATA:et_member TYPE uja_t_dim_member. DATA:ls_data TYPE ty_data,
lt_data TYPE STANDARD TABLE OF ty_data,
lt_data1 TYPE STANDARD TABLE OF ty_data,
ls_data1 TYPE ty_data,
lt_data2 TYPE STANDARD TABLE OF ty_data,
ls_data2 TYPE ty_data,
lt_data_a TYPE STANDARD TABLE OF ty_data,
ls_data_a TYPE ty_data,
lt_data_b TYPE STANDARD TABLE OF ty_data,
lt_data_b_sum TYPE STANDARD TABLE OF ty_data,
ls_data_b TYPE ty_data,
lt_data_c TYPE STANDARD TABLE OF ty_data,
ls_data_c TYPE ty_data,
ls_member LIKE LINE OF et_member,
ls_dim TYPE ty_dim,
rs_range LIKE LINE OF rt_time. DATA: lo_hier TYPE REF TO if_uja_hier,
lo_dim TYPE REF TO cl_uja_dim.
FIELD-SYMBOLS:<fs_range> LIKE rt_entity. DEFINE add_lt_dim.
ls_dim-zdimension = &1.
ls_dim-zlevel = &2.
ls_dim-zvalue = &3.
ls_dim-zrange = &4.
APPEND ls_dim TO lt_dim.
CLEAR ls_dim.
END-OF-DEFINITION. DEFINE insert_range.
CLEAR:&1.
&1-sign = &3.
&1-option = &4.
&1-dimension = &5.
&1-low = &6.
&1-high = &7.
COLLECT &1 INTO &2.
END-OF-DEFINITION. DATA: lo_dataref TYPE REF TO data.
DATA: lt_selections TYPE uj0_t_sel.
DATA: ls_selections LIKE LINE OF lt_selections. *&--------------------------------------- Get Input Parameters
LOOP AT it_param INTO DATA(ls_param).
CASE ls_param-hashkey.
WHEN 'P_ENTITY'.
lv_in_entity = ls_param-hashvalue.
WHEN 'CATEGORY'.
lv_in_category = ls_param-hashvalue.
WHEN 'TIME'.
lv_in_time = ls_param-hashvalue. WHEN OTHERS.
ENDCASE.
ENDLOOP. CLEAR:rt_product,rt_entity,rt_time.
add_lt_dim 'PRODUCT' cns_parent1 'P01' 'RT_PRODUCT'.
add_lt_dim 'P_ENTITY' cns_parent1 lv_in_entity 'RT_ENTITY'. LOOP AT lt_dim INTO ls_dim.
TRY.
CREATE OBJECT lo_dim
EXPORTING
i_appset_id = i_appset_id "PROVIDE APPSET NAME
i_dimension = ls_dim-zdimension. " PROVIDE DIMENSION NAME
CATCH cx_uja_admin_error.
ENDTRY.
TRY .
lo_hier = lo_dim->get_hier_ref( ls_dim-zlevel ).
CATCH cx_uja_admin_error.
ENDTRY.
CHECK lo_hier IS NOT INITIAL.
CALL METHOD lo_hier->get_children
EXPORTING
i_member = ls_dim-zvalue
i_level = 99
if_self = abap_true
IMPORTING
et_mbr_name = et_member.
ASSIGN (ls_dim-zrange) TO <fs_range>.
LOOP AT et_member INTO ls_member.
rs_range-sign = 'I'.
rs_range-option = 'EQ'.
rs_range-low = ls_member.
APPEND rs_range TO <fs_range>.
ENDLOOP.
CLEAR :et_member[],ls_member.
ENDLOOP. *TIME筛选逻辑1
CALL METHOD zbpccl_comm_api=>get_filter_time
EXPORTING
iv_type = '1'
CHANGING
it_time = rt_time. *TIME筛选逻辑3
CALL METHOD zbpccl_comm_api=>get_filter_time
EXPORTING
iv_type = '3'
CHANGING
it_time = rt_time_logic3. CLEAR:lt_selections,ls_selections.
LOOP AT rt_time INTO rs_range.
insert_range ls_selections lt_selections 'I' 'EQ' 'TIME' rs_range-low space.
ENDLOOP. insert_range ls_selections lt_selections 'I' 'EQ' 'CATEGORY' lv_in_category space. LOOP AT rt_entity INTO rs_range.
insert_range ls_selections lt_selections 'I' 'EQ' 'P_ENTITY' rs_range-low space.
ENDLOOP. insert_range ls_selections lt_selections 'I' 'EQ' 'P_ACCOUNT' 'A01030402' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'P_ACCOUNT' 'A01030401010101' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'P_ACCOUNT' 'A01030404' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'P_ACCOUNT' 'A01030403010101' space. LOOP AT rt_product INTO rs_range.
insert_range ls_selections lt_selections 'I' 'EQ' 'PRODUCT' rs_range-low space.
ENDLOOP.
insert_range ls_selections lt_selections 'I' 'EQ' 'PRODUCT' 'WO_PRODUCT' space. insert_range ls_selections lt_selections 'I' 'EQ' 'AUDITTRAIL' 'INPUT' space. insert_range ls_selections lt_selections 'I' 'EQ' 'ITEM' 'WO_ITEM' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'D_TYPE' 'WO_D_TYPE' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'RESERVE' 'WO_RESERVE' space. insert_range ls_selections lt_selections 'I' 'EQ' 'ADDITION' 'AD010101' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'ADDITION' 'AD01020301' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'ADDITION' 'AD01020302' space.
insert_range ls_selections lt_selections 'I' 'EQ' 'ADDITION' 'AD01020303' space. IF rt_product IS NOT INITIAL.
SELECT /b28/s_ipd6tnw AS product,
/b28/s_ippv8n1 AS barn
INTO TABLE @DATA(lt_product)
FROM /b28/pipd6tnw
WHERE /b28/s_ipd6tnw IN @rt_product
AND objvers EQ 'A'.
ENDIF.
DATA:ls_product LIKE LINE OF lt_product.
SORT lt_product BY product. IF rt_entity IS NOT INITIAL.
SELECT /b28/s_ipdmtib AS p_entity,
/b28/s_ippun5d AS level,
/b28/s_ipp5qst AS mappingt
INTO TABLE @DATA(lt_entity)
FROM /b28/pipdmtib
WHERE /b28/s_ipdmtib IN @rt_entity.
ENDIF. CLEAR:lt_data.
CALL METHOD zbpccl_comm_api=>get_model_data
EXPORTING
iv_appset_id = i_appset_id
iv_appl_id = i_appl_id
it_selections = lt_selections
CHANGING
it_data = lt_data.
lt_data_a = lt_data. LOOP AT lt_data_a INTO ls_data_a . IF ls_data_a-time IN rt_time_logic3.
IF ls_data_a-product IN rt_product. IF ls_data_a-addition = 'AD010101'.
IF ls_data_a-p_account = 'A01030402' OR ls_data_a-p_account = 'A01030401010101'.
READ TABLE lt_entity ASSIGNING FIELD-SYMBOL(<lfs_entity>) WITH KEY p_entity = ls_data_a-p_entity.
IF sy-subrc = 0.
IF <lfs_entity>-level = 'L6' OR <lfs_entity>-level = 'L7'.
CLEAR ls_result.
ls_result = ls_data_a.
ls_result-product = 'WO_PRODUCT'.
ls_result-p_entity = <lfs_entity>-mappingt.
COLLECT ls_result INTO lt_result.
ENDIF.
ENDIF.
ENDIF.
ENDIF. IF ls_data_a-addition = 'AD01020301' OR ls_data_a-addition = 'AD01020302' OR ls_data_a-addition = 'AD01020303'.
IF ls_data_a-p_account = 'A01030404' OR ls_data_a-p_account = 'A01030403010101'.
READ TABLE lt_entity ASSIGNING FIELD-SYMBOL(<lfs_entity>) WITH KEY p_entity = ls_data_a-p_entity.
IF sy-subrc = 0.
IF <lfs_entity>-level = 'L6' OR <lfs_entity>-level = 'L7'.
CLEAR ls_result.
ls_result = ls_data_a.
ls_result-product = 'WO_PRODUCT'.
ls_result-p_entity = <lfs_entity>-mappingt.
COLLECT ls_result INTO lt_result. CLEAR ls_result.
ls_result = ls_data_a.
ls_result-product = 'WO_PRODUCT'.
ls_result-addition = 'AD010101'.
ls_result-p_entity = <lfs_entity>-mappingt.
COLLECT ls_result INTO lt_result.
ENDIF.
ENDIF.
ENDIF.
ENDIF. ENDIF.
ENDIF. ******* ?????这里有问题
IF ls_data_a-time = lv_in_time. IF ls_data_a-product = 'WO_PRODUCT'.
IF ls_data_a-addition = 'AD01020301' OR ls_data_a-addition = 'AD01020302' OR ls_data_a-addition = 'AD01020303'.
IF ls_data_a-p_account = 'A01030404' OR ls_data_a-p_account = 'A01030403010101'.
READ TABLE lt_entity ASSIGNING FIELD-SYMBOL(<lfs_entity>) WITH KEY p_entity = ls_data_a-p_entity.
IF sy-subrc = 0.
IF <lfs_entity>-level = 'L5.1'.
CLEAR ls_result.
ls_result = ls_data_a.
ls_result-addition = 'AD010101'.
COLLECT ls_result INTO lt_result.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP .
ct_data = lt_result.

BPC 脚本的更多相关文章

  1. Apache执行Python脚本

    由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...

  2. SQL Server镜像自动生成脚本

    SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...

  3. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  4. 探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密

    下面的图片是我使用firefox和chrome浏览百度首页时候记录的http请求 下面是firefox: 下面是chrome: 在浏览百度首页前我都将浏览器的缓存全部清理掉,让这个场景最接近第一次访问 ...

  5. 第一个shell脚本

    打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好. #!/bin/bash echo "Hello World !" &quo ...

  6. Java 8 的 Nashorn 脚本引擎教程

    本文为了解所有关于 Nashorn JavaScript 引擎易于理解的代码例子. Nashorn JavaScript 引擎是Java SE 8的一部分,它与其它像Google V8 (它是Goog ...

  7. 【开源】.Net 动态脚本引擎NScript

    开源地址: https://git.oschina.net/chejiangyi/NScript 开源QQ群: .net 开源基础服务  238543768 .Net 动态脚本引擎 NScript   ...

  8. InstallShield 脚本语言学习笔记

    InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加.     一.基本语法规则      ...

  9. <译>通过PowerShell工具跨多台服务器执行SQL脚本

    有时候,当我们并没有合适的第三方工具(大部分需要付费)去管理多台数据库服务器,那么如何做最省力.省心呢?!Powershell一个强大的工具,可以很方便帮到我们处理日常的数据库维护工作 .简单的几步搞 ...

随机推荐

  1. css 实现球里装水

    <template> <div class="container">     <div class="wave"></ ...

  2. 谈谈.NET Core下如何利用 AsyncLocal 实现共享变量

    前言 在Web 应用程序中,我们经常会遇到这样的场景,如用户信息,租户信息本次的请求过程中都是固定的,我们希望是这种信息在本次请求内,一次赋值,到处使用.本文就来探讨一下,如何在.NET Core 下 ...

  3. es6 class解析

    直入主题.源代码如下: class A{ aName = 'A' constructor(aAge){ this.aAge = aAge } static aStatic = 'aStatic' } ...

  4. 2021.07.02 UVa1197 多路归并模板

    2021.07.02 UVa1197 多路归并模板 UVA11997 K Smallest Sums - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 分析: 题解 UVA11997 ...

  5. what 的页面制作

    1. html结构 <!-- section: what we do --> <section id="what" class="bg-light py ...

  6. 集合——Collection接口,List接口

    集合:对象的容器,定义了对多个对象进行操作的常用方法.可实现数组的功能 集合和数组的区别: 数组长度固定,集合长度不固定 数组可以存储基本数据类型和引用数据类型,集合只能存储引用数据类型. 集合的位置 ...

  7. python基础练习题(题目 模仿静态变量的用法)

    day27 --------------------------------------------------------------- 实例041:类的方法与变量 题目 模仿静态变量的用法. 程序 ...

  8. html_学习所有标签使用

    <!DOCTYPE html><!--声明为HTML5文档--><html lang="en"><head><!-- 页面表头 ...

  9. MySql免安装版 Error 2003 Can connect to MySQL server on ...

    现象描述:mysql只能本地登录,无法远程登录 解决方案: 1. 查看mysql端口(默认端口3306,命令端口根据需要修改),发现只有本地连接端口开放. netstat -an|findstr 33 ...

  10. 分布式任务调度平台XXL-JOB安装及使用

    一.为什么需要任务调度平台 在Java中,传统的定时任务实现方案,比如Timer,Quartz等都或多或少存在一些问题: 不支持集群.不支持统计.没有管理平台.没有失败报警.没有监控等等而且在现在分布 ...