// //税款计算(现金流)
// //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. Model, HttpServletRequest, ModelMap区别

    看了spring mvc的底层会发现,model数据最终还是写到HttpServletRequest属性中,只是model的写法更体现了MVC思想减少各层间耦合 写法: 1.request.setAt ...

  2. Machine Learning 学习笔记 01 Typora、配置OSS、导论

    Typora 安装与使用. Typora插件. OSS图床配置. 机器学习导论. 机器学习的基本思路. 机器学习实操的7个步骤

  3. Python Requests 速通爆肝、这么牛逼的库你还不会用吗?

    上网原理 爬虫原理 Get.Post Requests 介绍 安装 常用方法 Http协议 开发者工具网络界面 Response对象 下载保存一张图片.一首音乐 添加Headers发送请求 判断HTT ...

  4. 洛谷 P2392 kkksc03考前临时抱佛脚, dp / 深搜

    题目链接 P2392 kkksc03考前临时抱佛脚 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目 dp代码 #include <iostream> #includ ...

  5. android软件简约记账app开发day10-主页面模块--头信息的展示,和之后功能完善的目标。

    android软件简约记账app开发day10-主页面模块--头信息的展示,和之后功能完善的目标. 今天来写主界面头信息的展示,也就是将第一天的写的layout中的item_main_top展示到主界 ...

  6. Bootstrap Blazor Table 组件(三)智能生成

    原文链接:https://www.cnblogs.com/ysmc/p/16201153.html Bootstrap Blazor 官网地址:https://www.blazor.zone 有了解过 ...

  7. 在GO中调用C源代码#基础篇1

    开坑说明 最近在编写客户端程序或与其他部门做功能集成时多次碰到了跨语言的sdk集成,虽说方案很多诸如rpc啊,管道啊,文件io啊,unix socket啊之类的不要太多,但最完美的基础方式还是让程序与 ...

  8. 攻防世界web进阶题—unfinish

    攻防世界web进阶题-unfinish 1.看一下题目提示SQL 2.打开题目看一下源码,没有问题 3.查一下网站的组成:php+Apache/2.4.7+Ubuntu 4.扫一下目录,扫到一个注册页 ...

  9. C# Thread.Sleep 不精准的问题以及解决方案

    1.问题 最近在写一个熔断的 SDK,其中一种策略是根据慢请求来进行熔断. 我们在测试的时候,在对应 API 里面采用了 Thread.Sleep(ms) 来模拟慢请求. 设置的慢请求阈值是 RT 1 ...

  10. AM57x 多核SoC开发板——GPMC的多通道AD采集综合案例手册(上)

    目 录 1 ----案例功能 2 ----操作说明 2.1 ----硬件连接 2.2 ----案例测试 2.3 ----使用CCS查看信号波形 2.3.1 ----加载Symbols信息表 2.3.2 ...