// //税款计算(现金流)
// //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