Advertisement
liamdmt

TH6R_PJ_300047 GROUP BY Master Project No

Feb 18th, 2020
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 30.75 KB | None | 0 0
  1. WITH PJREV AS
  2. (
  3. SELECT H.PROJECT_NO, H.REVISION_NO,'OST' FROMWHERE,H.TOTAL_PRE_TAX_HOME_AMT
  4. FROM PJ_EST_OST_HDR H
  5. LEFT JOIN MT_FINANCIAL_PERIOD FP1 ON DATE(H.VARIATION_DATETIME) BETWEEN FP1.PERIOD_START_DATE AND FP1.PERIOD_CLOSING_DATE
  6. WHERE 1=1
  7. AND (H.VARIATION_DATETIME IS NULL OR ((FP1.FINANCIAL_YEAR*100+FP1.FINANCIAL_PERIOD) <= ($P{FINANCIAL_YEAR}*100+$P{FINANCIAL_PERIOD})))
  8. UNION ALL
  9. SELECT H.PROJECT_NO,HST.REVISION_NO,'HST' FROMWHERE,HST.TOTAL_PRE_TAX_HOME_AMT
  10. FROM PJ_EST_REV_HST_HDR HST
  11. LEFT JOIN PJ_EST_OST_HDR H ON H.PROJECT_NO = HST.PROJECT_NO
  12. LEFT JOIN MT_FINANCIAL_PERIOD FP1 ON DATE(H.VARIATION_DATETIME) BETWEEN FP1.PERIOD_START_DATE AND FP1.PERIOD_CLOSING_DATE
  13. LEFT JOIN
  14. (SELECT MAX(REVISION_NO) REVISION_NO, PROJECT_NO
  15. FROM PJ_EST_REV_HST_HDR HST
  16. LEFT JOIN MT_FINANCIAL_PERIOD FP1 ON (COALESCE(HST.VARIATION_DATETIME, HST.ESTIMATION_DATE) BETWEEN FP1.PERIOD_START_DATE AND FP1.PERIOD_CLOSING_DATE)
  17. WHERE 1=1
  18. AND ((FP1.FINANCIAL_YEAR*100+FP1.FINANCIAL_PERIOD) <= ($P{FINANCIAL_YEAR}*100+$P{FINANCIAL_PERIOD}))
  19. GROUP BY PROJECT_NO
  20. ) MAX_REV ON MAX_REV.PROJECT_NO = HST.PROJECT_NO
  21. WHERE 1=1
  22. AND MAX_REV.REVISION_NO = HST.REVISION_NO
  23. AND (H.VARIATION_DATETIME IS NOT NULL AND ((FP1.FINANCIAL_YEAR*100+FP1.FINANCIAL_PERIOD) > ($P{FINANCIAL_YEAR}*100+$P{FINANCIAL_PERIOD})))
  24. ),
  25.  
  26. PJ_EST_OST_HDR_TEMP AS (
  27. SELECT PJ.*, COALESCE(PJ.MASTER_PROJECT_NO, PJ.PROJECT_NO) AS MASTER_PROJECT_NO_
  28. FROM PJ_EST_OST_HDR AS PJ
  29. INNER JOIN PJREV ON PJ.PROJECT_NO = PJREV.PROJECT_NO
  30. WHERE 1 = 1
  31. $P!{__RPT__FILTER__PARAM}
  32. AND (($P{PROJECT_STATUS_OPTION} = 'A')
  33.     OR ($P{PROJECT_STATUS_OPTION} = 'H'
  34.         AND PJ.PROJECT_NO IN (SELECT PROJECT_NO
  35.                                 FROM PJ_RCG_HST_HDR
  36.                                 WHERE FINAL_RECOG_FLAG = 'Y'
  37.                                 AND   (IS_REVERSED_FLAG IS NULL OR IS_REVERSED_FLAG <> 'Y')
  38.                                 AND   (YEAR_POSTED_TO*100 + PERIOD_POSTED_TO <= 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD} ))
  39.         )
  40.     OR ($P{PROJECT_STATUS_OPTION} = 'O'
  41.         AND PJ.PROJECT_NO NOT IN (SELECT PROJECT_NO
  42.                                     FROM PJ_RCG_HST_HDR
  43.                                     WHERE FINAL_RECOG_FLAG = 'Y'
  44.                                     AND   (YEAR_POSTED_TO*100 + PERIOD_POSTED_TO <= 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD} )))
  45. )
  46. -- add Security Right Control by Project Team Member
  47. -- IS_SUPERVISOR = Y with this FC OR Being a team member
  48. AND (
  49.     $P{IS_SUPERVISOR} = 'Y'
  50.     OR PJ.PROJECT_NO IN (SELECT PROJECT_NO FROM PJ_EST_OST_TEAM_MEMBER WHERE EMPLOYEE_CODE = $P{THIS_EMP})
  51.     )
  52. -- end Security.
  53. ),
  54.  
  55. PJREV2 AS (
  56. SELECT SUM(PJREV.TOTAL_PRE_TAX_HOME_AMT) AS TOTAL_PRE_TAX_HOME_AMT, PEOHT.MASTER_PROJECT_NO_
  57. FROM PJREV
  58. INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON PJREV.PROJECT_NO = PEOHT.PROJECT_NO
  59. GROUP BY PEOHT.MASTER_PROJECT_NO_
  60. ),
  61. BUDGET_CATEGORY_TBL AS(
  62. SELECT
  63. PEOHT.MASTER_PROJECT_NO_,
  64. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  65. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  66. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  67. BC.BUDGET_CATEGORY_DESC
  68. FROM PJ_BUDGET_OST_HDR H
  69. INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  70. LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON H.BUDGET_NO = BGT_SCH.BUDGET_NO
  71. LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  72. LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  73. WHERE 1=1
  74. AND BGT_SCH.IS_LEAF = 'Y'
  75. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  76. BCG.BUDGET_CATEGORY_GROUP_DESC,
  77. BGT_SCH.BUDGET_CATEGORY_CODE,
  78. BC.BUDGET_CATEGORY_DESC,
  79. PEOHT.MASTER_PROJECT_NO_
  80.  
  81. UNION
  82. SELECT
  83. PEOHT.MASTER_PROJECT_NO_,
  84. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  85. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  86. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  87. BC.BUDGET_CATEGORY_DESC
  88. FROM PJ_BUDGET_REV_HST_HDR HST
  89. INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON HST.PROJECT_NO = PEOHT.PROJECT_NO
  90. LEFT JOIN PJ_BUDGET_REV_HST_SCH BGT_SCH ON HST.BUDGET_NO = BGT_SCH.BUDGET_NO AND HST.REVISION_NO = BGT_SCH.REVISION_NO
  91. LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  92. LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  93. WHERE 1=1
  94. AND BGT_SCH.IS_LEAF = 'Y'
  95. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  96. BCG.BUDGET_CATEGORY_GROUP_DESC,
  97. BGT_SCH.BUDGET_CATEGORY_CODE,
  98. BC.BUDGET_CATEGORY_DESC,
  99. PEOHT.MASTER_PROJECT_NO_
  100. ),
  101. PJBUDGET_TBL AS
  102. (
  103. /*
  104. display from Budget Category, Budget Category Group level only.
  105. Pj_budget_ost/rev_hst_sch as at date.
  106. Pj_budget_ost_hdr.variation_date is null or <= as at date -> read from ost table
  107. Else, check rev_hst table, get latest revision for variation date as at date or variation date null
  108. */
  109. SELECT SUM(H.AMT) AS AMT, H.MASTER_PROJECT_NO_, H.BUDGET_CATEGORY_GROUP_CODE, H.BUDGET_CATEGORY_GROUP_DESC, H.BUDGET_CATEGORY_CODE, H.BUDGET_CATEGORY_DESC
  110. FROM (
  111. SELECT
  112. PEOHT.MASTER_PROJECT_NO_,
  113. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  114. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  115. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  116. BC.BUDGET_CATEGORY_DESC,
  117. SUM(BGT_SCH.BUDGET_COST_IN_HOME_CCY) AMT
  118. FROM PJ_BUDGET_OST_HDR H
  119. INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  120. LEFT JOIN MT_FINANCIAL_PERIOD FP1 ON DATE(H.VARIATION_DATE) BETWEEN FP1.PERIOD_START_DATE AND FP1.PERIOD_CLOSING_DATE
  121. LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON H.BUDGET_NO = BGT_SCH.BUDGET_NO
  122. LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  123. LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  124. WHERE 1=1
  125. AND BGT_SCH.IS_LEAF = 'Y'
  126. AND (H.VARIATION_DATETIME IS NULL OR ((FP1.FINANCIAL_YEAR*100+FP1.FINANCIAL_PERIOD) <= 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD} ))
  127. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  128. BCG.BUDGET_CATEGORY_GROUP_DESC,
  129. BGT_SCH.BUDGET_CATEGORY_CODE,
  130. BC.BUDGET_CATEGORY_DESC,
  131. PEOHT.MASTER_PROJECT_NO_
  132.  
  133. UNION ALL
  134.  
  135. SELECT
  136. PEOHT.MASTER_PROJECT_NO_,
  137. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  138. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  139. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  140. BC.BUDGET_CATEGORY_DESC,
  141. SUM(BGT_SCH.BUDGET_COST_IN_HOME_CCY) AMT
  142. FROM PJ_BUDGET_REV_HST_HDR HST
  143. LEFT JOIN PJ_BUDGET_OST_HDR H ON H.BUDGET_NO = HST.BUDGET_NO
  144. INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  145. LEFT JOIN MT_FINANCIAL_PERIOD FP1 ON DATE(H.VARIATION_DATE) BETWEEN FP1.PERIOD_START_DATE AND FP1.PERIOD_CLOSING_DATE
  146. LEFT JOIN
  147. (SELECT MAX(REVISION_NO) REVISION_NO, BUDGET_NO
  148. FROM PJ_BUDGET_REV_HST_HDR HST
  149. LEFT JOIN MT_FINANCIAL_PERIOD FP1 ON HST.VARIATION_DATE BETWEEN FP1.PERIOD_START_DATE AND FP1.PERIOD_CLOSING_DATE
  150. WHERE 1=1
  151. AND (HST.VARIATION_DATE IS NULL OR (FP1.FINANCIAL_YEAR*100+FP1.FINANCIAL_PERIOD) <= (100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD} ))
  152. GROUP BY BUDGET_NO
  153. ) MAX_REV ON MAX_REV.BUDGET_NO = HST.BUDGET_NO
  154. LEFT JOIN PJ_BUDGET_REV_HST_SCH BGT_SCH ON H.BUDGET_NO = BGT_SCH.BUDGET_NO AND HST.REVISION_NO = BGT_SCH.REVISION_NO
  155. LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  156. LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  157. WHERE 1=1
  158. AND BGT_SCH.IS_LEAF = 'Y'
  159. AND MAX_REV.REVISION_NO = HST.REVISION_NO
  160. AND (H.VARIATION_DATETIME IS NOT NULL AND ((FP1.FINANCIAL_YEAR*100+FP1.FINANCIAL_PERIOD) > (100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD} )))
  161. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  162. BCG.BUDGET_CATEGORY_GROUP_DESC,
  163. BGT_SCH.BUDGET_CATEGORY_CODE,
  164. BC.BUDGET_CATEGORY_DESC,
  165. PEOHT.MASTER_PROJECT_NO_
  166. ) AS H GROUP BY H.MASTER_PROJECT_NO_, H.BUDGET_CATEGORY_GROUP_CODE, H.BUDGET_CATEGORY_GROUP_DESC, H.BUDGET_CATEGORY_CODE, H.BUDGET_CATEGORY_DESC
  167. ),
  168. CURRENT_ACTUAL_COST_TBL AS
  169. (
  170. SELECT SUM(H.AMT) AS AMT, H.MASTER_PROJECT_NO_, H.BUDGET_CATEGORY_GROUP_CODE, H.BUDGET_CATEGORY_GROUP_DESC, H.BUDGET_CATEGORY_CODE, H.BUDGET_CATEGORY_DESC, H.ITEM_CATEGORY_CODE, H.ITEM_CATEGORY_DESC
  171. FROM (
  172. SELECT
  173. PEOHT.MASTER_PROJECT_NO_,
  174. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  175. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  176. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  177. BC.BUDGET_CATEGORY_DESC,
  178. SUM(D.ACTUAL_COST_IN_HOME_CCY) AMT,
  179. COALESCE(MI.INVENTORY_CATEGORY_CODE,'ZZZ') ITEM_CATEGORY_CODE,
  180. CAT.INVENTORY_CATEGORY_DESC ITEM_CATEGORY_DESC
  181. FROM PJ_COMMITTED_COST_TRACK_TRN_HDR H
  182.   INNER JOIN PJ_COMMITTED_COST_TRACK_TRN_DET D ON H.PROJECT_NO = D.PROJECT_NO AND H.TRN_SEQ_NO = D.TRN_SEQ_NO AND H.NO_OF_ALLOC = D.NO_OF_ALLOC
  183.   INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  184.   LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  185.   LEFT JOIN PJ_BUDGET_OST_HDR BGT_H ON H.PROJECT_NO = BGT_H.PROJECT_NO
  186.   LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON BGT_H.BUDGET_NO = BGT_SCH.BUDGET_NO AND D.SCH_SEQ_NO = BGT_SCH.SCH_SEQ_NO
  187.   LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  188.   LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  189.   LEFT JOIN PJ_BUDGET_OST_CST_ITM CST ON CST.CST_ITM_SEQ_NO = D.CST_ITM_SEQ_NO AND CST.BUDGET_NO = BGT_SCH.BUDGET_NO AND CST.SCH_SEQ_NO = D.SCH_SEQ_NO
  190.   LEFT JOIN MT_INVENTORY MI ON MI.INVENTORY_CODE = CST.INVENTORY_CODE
  191.   LEFT JOIN MT_INVENTORY_CATEGORY CAT ON MI.INVENTORY_CATEGORY_CODE = CAT.INVENTORY_CATEGORY_CODE
  192. WHERE 1=1
  193. AND BGT_SCH.IS_LEAF = 'Y'
  194. AND CST.DT_TYPE = 'I'
  195. AND (100*H.FINANCIAL_YEAR + H.FINANCIAL_PERIOD) = 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  196.  
  197.  
  198. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  199. BCG.BUDGET_CATEGORY_GROUP_DESC,
  200. BGT_SCH.BUDGET_CATEGORY_CODE,
  201. BC.BUDGET_CATEGORY_DESC,
  202. MI.INVENTORY_CATEGORY_CODE,
  203. CAT.INVENTORY_CATEGORY_DESC,
  204. PEOHT.MASTER_PROJECT_NO_
  205.  
  206. UNION ALL
  207. SELECT
  208. PEOHT.MASTER_PROJECT_NO_,
  209. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  210. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  211. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  212. BC.BUDGET_CATEGORY_DESC,
  213. SUM(D.ACTUAL_COST_IN_HOME_CCY) AMT,
  214. COALESCE(MI.SERVICE_CATEGORY_CODE,'ZZZ') ITEM_CATEGORY_CODE,
  215. CAT.SERVICE_CATEGORY_DESC   ITEM_CATEGORY_DESC
  216. FROM PJ_COMMITTED_COST_TRACK_TRN_HDR H
  217.   INNER JOIN PJ_COMMITTED_COST_TRACK_TRN_DET D ON H.PROJECT_NO = D.PROJECT_NO AND H.TRN_SEQ_NO = D.TRN_SEQ_NO AND H.NO_OF_ALLOC = D.NO_OF_ALLOC
  218.   INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  219.   LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  220.   LEFT JOIN PJ_BUDGET_OST_HDR BGT_H ON H.PROJECT_NO = BGT_H.PROJECT_NO
  221.   LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON BGT_H.BUDGET_NO = BGT_SCH.BUDGET_NO AND D.SCH_SEQ_NO = BGT_SCH.SCH_SEQ_NO
  222.   LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  223.   LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  224.   LEFT JOIN PJ_BUDGET_OST_CST_ITM CST ON CST.CST_ITM_SEQ_NO = D.CST_ITM_SEQ_NO AND CST.BUDGET_NO = BGT_SCH.BUDGET_NO AND CST.SCH_SEQ_NO = D.SCH_SEQ_NO
  225.   LEFT JOIN MT_SERVICE MI ON MI.SERVICE_CODE = CST.SERVICE_CODE
  226.   LEFT JOIN MT_SERVICE_CATEGORY CAT ON MI.SERVICE_CATEGORY_CODE = CAT.SERVICE_CATEGORY_CODE
  227. WHERE 1=1
  228. AND BGT_SCH.IS_LEAF = 'Y'
  229. AND CST.DT_TYPE = 'S'
  230. AND (100*H.FINANCIAL_YEAR + H.FINANCIAL_PERIOD) = 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  231.  
  232.  
  233. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  234. BCG.BUDGET_CATEGORY_GROUP_DESC,
  235. BGT_SCH.BUDGET_CATEGORY_CODE,
  236. BC.BUDGET_CATEGORY_DESC,
  237. MI.SERVICE_CATEGORY_CODE,
  238. CAT.SERVICE_CATEGORY_DESC,
  239. PEOHT.MASTER_PROJECT_NO_
  240.  
  241.  
  242. UNION ALL
  243. SELECT
  244. PEOHT.MASTER_PROJECT_NO_,
  245. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  246. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  247. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  248. BC.BUDGET_CATEGORY_DESC,
  249. SUM(D.ACTUAL_COST_IN_HOME_CCY) AMT,
  250. 'SUBCONCOST' ITEM_CATEGORY_CODE,
  251. 'Subcon Cost'   ITEM_CATEGORY_DESC
  252. FROM PJ_COMMITTED_COST_TRACK_TRN_HDR H
  253.   INNER JOIN PJ_COMMITTED_COST_TRACK_TRN_DET D ON H.PROJECT_NO = D.PROJECT_NO AND H.TRN_SEQ_NO = D.TRN_SEQ_NO AND H.NO_OF_ALLOC = D.NO_OF_ALLOC
  254.   INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  255.   LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  256.   LEFT JOIN PJ_BUDGET_OST_HDR BGT_H ON H.PROJECT_NO = BGT_H.PROJECT_NO
  257.   LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON BGT_H.BUDGET_NO = BGT_SCH.BUDGET_NO AND D.SCH_SEQ_NO = BGT_SCH.SCH_SEQ_NO
  258.   LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  259.   LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  260.   LEFT JOIN PJ_BUDGET_OST_CST_ITM CST ON CST.CST_ITM_SEQ_NO = D.CST_ITM_SEQ_NO AND CST.BUDGET_NO = BGT_SCH.BUDGET_NO AND CST.SCH_SEQ_NO = D.SCH_SEQ_NO
  261.   LEFT JOIN MT_SERVICE MI ON MI.SERVICE_CODE = CST.SERVICE_CODE
  262.  
  263. WHERE 1=1
  264. AND BGT_SCH.IS_LEAF = 'Y'
  265. AND CST.DT_TYPE = 'N'
  266. AND (100*H.FINANCIAL_YEAR + H.FINANCIAL_PERIOD) = 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  267.  
  268.  
  269. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  270. BCG.BUDGET_CATEGORY_GROUP_DESC,
  271. BGT_SCH.BUDGET_CATEGORY_CODE,
  272. BC.BUDGET_CATEGORY_DESC,
  273. PEOHT.MASTER_PROJECT_NO_
  274.  
  275. UNION ALL
  276. SELECT
  277. PEOHT.MASTER_PROJECT_NO_,
  278. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  279. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  280. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  281. BC.BUDGET_CATEGORY_DESC,
  282. SUM(D.ACTUAL_COST_IN_HOME_CCY) AMT,
  283. 'EMPLOYEECOST' ITEM_CATEGORY_CODE,
  284. 'Employee Cost' ITEM_CATEGORY_DESC
  285. FROM PJ_COMMITTED_COST_TRACK_TRN_HDR H
  286.   INNER JOIN PJ_COMMITTED_COST_TRACK_TRN_DET D ON H.PROJECT_NO = D.PROJECT_NO AND H.TRN_SEQ_NO = D.TRN_SEQ_NO AND H.NO_OF_ALLOC = D.NO_OF_ALLOC
  287.   INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  288.   LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  289.   LEFT JOIN PJ_BUDGET_OST_HDR BGT_H ON H.PROJECT_NO = BGT_H.PROJECT_NO
  290.   LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON BGT_H.BUDGET_NO = BGT_SCH.BUDGET_NO AND D.SCH_SEQ_NO = BGT_SCH.SCH_SEQ_NO
  291.   LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  292.   LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  293.   LEFT JOIN PJ_BUDGET_OST_CST_ITM CST ON CST.CST_ITM_SEQ_NO = D.CST_ITM_SEQ_NO AND CST.BUDGET_NO = BGT_SCH.BUDGET_NO AND CST.SCH_SEQ_NO = D.SCH_SEQ_NO
  294.   LEFT JOIN MT_SERVICE MI ON MI.SERVICE_CODE = CST.SERVICE_CODE
  295.  
  296. WHERE 1=1
  297. AND BGT_SCH.IS_LEAF = 'Y'
  298. AND CST.DT_TYPE NOT IN ('N','S','I')
  299. AND (100*H.FINANCIAL_YEAR + H.FINANCIAL_PERIOD) = 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  300.  
  301.  
  302. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  303. BCG.BUDGET_CATEGORY_GROUP_DESC,
  304. BGT_SCH.BUDGET_CATEGORY_CODE,
  305. BC.BUDGET_CATEGORY_DESC,
  306. PEOHT.MASTER_PROJECT_NO_
  307. ) AS H GROUP BY H.MASTER_PROJECT_NO_, H.BUDGET_CATEGORY_GROUP_CODE, H.BUDGET_CATEGORY_GROUP_DESC, H.BUDGET_CATEGORY_CODE, H.BUDGET_CATEGORY_DESC, H.ITEM_CATEGORY_CODE, H.ITEM_CATEGORY_DESC
  308.  
  309. ),
  310. ACCUM_ACTUAL_COST_TBL AS
  311. (
  312. SELECT SUM(H.AMT) AS AMT, H.MASTER_PROJECT_NO_, H.BUDGET_CATEGORY_GROUP_CODE, H.BUDGET_CATEGORY_GROUP_DESC, H.BUDGET_CATEGORY_CODE, H.BUDGET_CATEGORY_DESC, H.ITEM_CATEGORY_CODE, H.ITEM_CATEGORY_DESC
  313. FROM (
  314. SELECT
  315. PEOHT.MASTER_PROJECT_NO_,
  316. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  317. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  318. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  319. BC.BUDGET_CATEGORY_DESC,
  320. SUM(D.ACTUAL_COST_IN_HOME_CCY) AMT,
  321. COALESCE(MI.INVENTORY_CATEGORY_CODE,'ZZZ') ITEM_CATEGORY_CODE,
  322. CAT.INVENTORY_CATEGORY_DESC ITEM_CATEGORY_DESC
  323. FROM PJ_COMMITTED_COST_TRACK_TRN_HDR H
  324.   INNER JOIN PJ_COMMITTED_COST_TRACK_TRN_DET D ON H.PROJECT_NO = D.PROJECT_NO AND H.TRN_SEQ_NO = D.TRN_SEQ_NO AND H.NO_OF_ALLOC = D.NO_OF_ALLOC
  325.   INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  326.   LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  327.   LEFT JOIN PJ_BUDGET_OST_HDR BGT_H ON H.PROJECT_NO = BGT_H.PROJECT_NO
  328.   LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON BGT_H.BUDGET_NO = BGT_SCH.BUDGET_NO AND D.SCH_SEQ_NO = BGT_SCH.SCH_SEQ_NO
  329.   LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  330.   LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  331.   LEFT JOIN PJ_BUDGET_OST_CST_ITM CST ON CST.CST_ITM_SEQ_NO = D.CST_ITM_SEQ_NO AND CST.BUDGET_NO = BGT_SCH.BUDGET_NO AND CST.SCH_SEQ_NO = D.SCH_SEQ_NO
  332.   LEFT JOIN MT_INVENTORY MI ON MI.INVENTORY_CODE = CST.INVENTORY_CODE
  333.   LEFT JOIN MT_INVENTORY_CATEGORY CAT ON MI.INVENTORY_CATEGORY_CODE = CAT.INVENTORY_CATEGORY_CODE
  334. WHERE 1=1
  335. AND BGT_SCH.IS_LEAF = 'Y'
  336. AND CST.DT_TYPE = 'I'
  337. AND (100*H.FINANCIAL_YEAR + H.FINANCIAL_PERIOD) <= 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  338.  
  339.  
  340. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  341. BCG.BUDGET_CATEGORY_GROUP_DESC,
  342. BGT_SCH.BUDGET_CATEGORY_CODE,
  343. BC.BUDGET_CATEGORY_DESC,
  344. MI.INVENTORY_CATEGORY_CODE,
  345. CAT.INVENTORY_CATEGORY_DESC,
  346. PEOHT.MASTER_PROJECT_NO_
  347.  
  348. UNION ALL
  349. SELECT
  350. PEOHT.MASTER_PROJECT_NO_,
  351. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  352. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  353. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  354. BC.BUDGET_CATEGORY_DESC,
  355. SUM(D.ACTUAL_COST_IN_HOME_CCY) AMT,
  356. COALESCE(MI.SERVICE_CATEGORY_CODE,'ZZZ') ITEM_CATEGORY_CODE,
  357. CAT.SERVICE_CATEGORY_DESC   ITEM_CATEGORY_DESC
  358. FROM PJ_COMMITTED_COST_TRACK_TRN_HDR H
  359.   INNER JOIN PJ_COMMITTED_COST_TRACK_TRN_DET D ON H.PROJECT_NO = D.PROJECT_NO AND H.TRN_SEQ_NO = D.TRN_SEQ_NO AND H.NO_OF_ALLOC = D.NO_OF_ALLOC
  360.   INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  361.   LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  362.   LEFT JOIN PJ_BUDGET_OST_HDR BGT_H ON H.PROJECT_NO = BGT_H.PROJECT_NO
  363.   LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON BGT_H.BUDGET_NO = BGT_SCH.BUDGET_NO AND D.SCH_SEQ_NO = BGT_SCH.SCH_SEQ_NO
  364.   LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  365.   LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  366.   LEFT JOIN PJ_BUDGET_OST_CST_ITM CST ON CST.CST_ITM_SEQ_NO = D.CST_ITM_SEQ_NO AND CST.BUDGET_NO = BGT_SCH.BUDGET_NO AND CST.SCH_SEQ_NO = D.SCH_SEQ_NO
  367.   LEFT JOIN MT_SERVICE MI ON MI.SERVICE_CODE = CST.SERVICE_CODE
  368.   LEFT JOIN MT_SERVICE_CATEGORY CAT ON MI.SERVICE_CATEGORY_CODE = CAT.SERVICE_CATEGORY_CODE
  369. WHERE 1=1
  370. AND BGT_SCH.IS_LEAF = 'Y'
  371. AND CST.DT_TYPE = 'S'
  372. AND (100*H.FINANCIAL_YEAR + H.FINANCIAL_PERIOD) <= 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  373.  
  374.  
  375. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  376. BCG.BUDGET_CATEGORY_GROUP_DESC,
  377. BGT_SCH.BUDGET_CATEGORY_CODE,
  378. BC.BUDGET_CATEGORY_DESC,
  379. MI.SERVICE_CATEGORY_CODE,
  380. CAT.SERVICE_CATEGORY_DESC,
  381. PEOHT.MASTER_PROJECT_NO_
  382.  
  383.  
  384. UNION ALL
  385. SELECT
  386. PEOHT.MASTER_PROJECT_NO_,
  387. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  388. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  389. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  390. BC.BUDGET_CATEGORY_DESC,
  391. SUM(D.ACTUAL_COST_IN_HOME_CCY) AMT,
  392. 'SUBCONCOST' ITEM_CATEGORY_CODE,
  393. 'Subcon Cost'   ITEM_CATEGORY_DESC
  394. FROM PJ_COMMITTED_COST_TRACK_TRN_HDR H
  395.   INNER JOIN PJ_COMMITTED_COST_TRACK_TRN_DET D ON H.PROJECT_NO = D.PROJECT_NO AND H.TRN_SEQ_NO = D.TRN_SEQ_NO AND H.NO_OF_ALLOC = D.NO_OF_ALLOC
  396.   INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  397.   LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  398.   LEFT JOIN PJ_BUDGET_OST_HDR BGT_H ON H.PROJECT_NO = BGT_H.PROJECT_NO
  399.   LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON BGT_H.BUDGET_NO = BGT_SCH.BUDGET_NO AND D.SCH_SEQ_NO = BGT_SCH.SCH_SEQ_NO
  400.   LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  401.   LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  402.   LEFT JOIN PJ_BUDGET_OST_CST_ITM CST ON CST.CST_ITM_SEQ_NO = D.CST_ITM_SEQ_NO AND CST.BUDGET_NO = BGT_SCH.BUDGET_NO AND CST.SCH_SEQ_NO = D.SCH_SEQ_NO
  403. WHERE 1=1
  404. AND BGT_SCH.IS_LEAF = 'Y'
  405. AND CST.DT_TYPE = 'N'
  406. AND (100*H.FINANCIAL_YEAR + H.FINANCIAL_PERIOD) <= 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  407.  
  408.  
  409. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  410. BCG.BUDGET_CATEGORY_GROUP_DESC,
  411. BGT_SCH.BUDGET_CATEGORY_CODE,
  412. BC.BUDGET_CATEGORY_DESC,
  413. PEOHT.MASTER_PROJECT_NO_
  414.  
  415. UNION ALL
  416. SELECT
  417. PEOHT.MASTER_PROJECT_NO_,
  418. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  419. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  420. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  421. BC.BUDGET_CATEGORY_DESC,
  422. SUM(D.ACTUAL_COST_IN_HOME_CCY) AMT,
  423. 'EMPLOYEECOST' ITEM_CATEGORY_CODE,
  424. 'Employee Cost' ITEM_CATEGORY_DESC
  425. FROM PJ_COMMITTED_COST_TRACK_TRN_HDR H
  426.   INNER JOIN PJ_COMMITTED_COST_TRACK_TRN_DET D ON H.PROJECT_NO = D.PROJECT_NO AND H.TRN_SEQ_NO = D.TRN_SEQ_NO AND H.NO_OF_ALLOC = D.NO_OF_ALLOC
  427.   INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  428.   LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  429.   LEFT JOIN PJ_BUDGET_OST_HDR BGT_H ON H.PROJECT_NO = BGT_H.PROJECT_NO
  430.   LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON BGT_H.BUDGET_NO = BGT_SCH.BUDGET_NO AND D.SCH_SEQ_NO = BGT_SCH.SCH_SEQ_NO
  431.   LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  432.   LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  433.   LEFT JOIN PJ_BUDGET_OST_CST_ITM CST ON CST.CST_ITM_SEQ_NO = D.CST_ITM_SEQ_NO AND CST.BUDGET_NO = BGT_SCH.BUDGET_NO AND CST.SCH_SEQ_NO = D.SCH_SEQ_NO
  434.  
  435. WHERE 1=1
  436. AND BGT_SCH.IS_LEAF = 'Y'
  437. AND CST.DT_TYPE NOT IN ('N','S','I')
  438. AND (100*H.FINANCIAL_YEAR + H.FINANCIAL_PERIOD) <= 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  439.  
  440.  
  441. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  442. BCG.BUDGET_CATEGORY_GROUP_DESC,
  443. BGT_SCH.BUDGET_CATEGORY_CODE,
  444. BC.BUDGET_CATEGORY_DESC,
  445. PEOHT.MASTER_PROJECT_NO_
  446. ) AS H GROUP BY H.MASTER_PROJECT_NO_, H.BUDGET_CATEGORY_GROUP_CODE, H.BUDGET_CATEGORY_GROUP_DESC, H.BUDGET_CATEGORY_CODE, H.BUDGET_CATEGORY_DESC, H.ITEM_CATEGORY_CODE, H.ITEM_CATEGORY_DESC
  447.  
  448. ),
  449. CURRENT_RECOG_COST_TBL AS
  450. (
  451. SELECT
  452. PEOHT.MASTER_PROJECT_NO_,
  453. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  454. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  455. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  456. BC.BUDGET_CATEGORY_DESC,
  457. SUM(D.COST_HOME_TO_RECOG) AMT
  458. FROM PJ_RCG_HST_HDR H
  459. INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  460. LEFT JOIN PJ_RCG_HST_SCH D ON H.PROJECT_NO = D.PROJECT_NO AND H.RECOGNITION_NO = D.RECOGNITION_NO
  461. LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON D.BUDGET_NO = BGT_SCH.BUDGET_NO AND D.SCH_SEQ_NO = BGT_SCH.SCH_SEQ_NO
  462. LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  463. LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  464. LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  465. WHERE 1=1
  466. AND BGT_SCH.IS_LEAF = 'Y'
  467. AND (100*H.YEAR_POSTED_TO + H.PERIOD_POSTED_TO) = 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  468. AND (H.IS_CANCELLED IS NULL OR H.IS_CANCELLED = 'N')
  469.  
  470.  
  471. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  472. BCG.BUDGET_CATEGORY_GROUP_DESC,
  473. BGT_SCH.BUDGET_CATEGORY_CODE,
  474. BC.BUDGET_CATEGORY_DESC,
  475. PEOHT.MASTER_PROJECT_NO_
  476. ),
  477.  
  478. ACCUM_RECOG_COST_TBL AS
  479. (
  480. SELECT
  481. PEOHT.MASTER_PROJECT_NO_,
  482. COALESCE(BCG.BUDGET_CATEGORY_GROUP_CODE,'ZZZ') BUDGET_CATEGORY_GROUP_CODE,
  483. BCG.BUDGET_CATEGORY_GROUP_DESC BUDGET_CATEGORY_GROUP_DESC,
  484. COALESCE(BGT_SCH.BUDGET_CATEGORY_CODE,'ZZZ') BUDGET_CATEGORY_CODE,
  485. BC.BUDGET_CATEGORY_DESC,
  486. SUM(D.COST_HOME_TO_RECOG) AMT
  487. FROM PJ_RCG_HST_HDR H
  488. INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  489. LEFT JOIN PJ_RCG_HST_SCH D ON H.PROJECT_NO = D.PROJECT_NO AND H.RECOGNITION_NO = D.RECOGNITION_NO
  490. LEFT JOIN PJ_BUDGET_OST_SCH BGT_SCH ON D.BUDGET_NO = BGT_SCH.BUDGET_NO AND D.SCH_SEQ_NO = BGT_SCH.SCH_SEQ_NO
  491. LEFT JOIN MT_BUDGET_CATEGORY BC ON BC.BUDGET_CATEGORY_CODE = BGT_SCH.BUDGET_CATEGORY_CODE
  492. LEFT JOIN MT_BUDGET_CATEGORY_GROUP BCG ON BC.BUDGET_CATEGORY_GROUP_CODE =BCG.BUDGET_CATEGORY_GROUP_CODE
  493. LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  494. WHERE 1=1
  495. AND BGT_SCH.IS_LEAF = 'Y'
  496. AND (100*H.YEAR_POSTED_TO + H.PERIOD_POSTED_TO) <=100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  497. AND (H.IS_CANCELLED IS NULL OR H.IS_CANCELLED = 'N')
  498.  
  499.  
  500. GROUP BY BCG.BUDGET_CATEGORY_GROUP_CODE,
  501. BCG.BUDGET_CATEGORY_GROUP_DESC,
  502. BGT_SCH.BUDGET_CATEGORY_CODE,
  503. BC.BUDGET_CATEGORY_DESC,
  504. PEOHT.MASTER_PROJECT_NO_
  505. ),
  506. CURRENT_RECOG_COST_PJ_TBL AS
  507. (
  508. SELECT
  509. PEOHT.MASTER_PROJECT_NO_,
  510. SUM(H.COST_HOME_TO_RECOG) AMT
  511. FROM PJ_RCG_HST_HDR H
  512. INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  513. LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  514. WHERE 1=1
  515. AND (100*H.YEAR_POSTED_TO + H.PERIOD_POSTED_TO) = 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  516. AND (H.IS_CANCELLED IS NULL OR H.IS_CANCELLED = 'N')
  517.  
  518.  
  519. GROUP BY PEOHT.MASTER_PROJECT_NO_
  520. ),
  521.  
  522. ACCUM_RECOG_COST_PJ_TBL AS
  523. (
  524. SELECT
  525. PEOHT.MASTER_PROJECT_NO_,
  526. SUM(H.COST_HOME_TO_RECOG) AMT
  527. FROM PJ_RCG_HST_HDR H
  528. INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON H.PROJECT_NO = PEOHT.PROJECT_NO
  529. LEFT JOIN PJ_EST_OST_SUB_HDR PJSUB ON PJSUB.PROJECT_NO = H.PROJECT_NO
  530. WHERE 1=1
  531. AND (100*H.YEAR_POSTED_TO + H.PERIOD_POSTED_TO) <=100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  532. AND (H.IS_CANCELLED IS NULL OR H.IS_CANCELLED = 'N')
  533.  
  534.  
  535. GROUP BY PEOHT.MASTER_PROJECT_NO_
  536. )
  537. SELECT
  538. PJ.MASTER_PROJECT_NO_ AS MASTER_PROJECT_NO
  539. ,COALESCE(PJREV2.TOTAL_PRE_TAX_HOME_AMT,0) ACCUM_BUDGETED_REVENUE
  540. --BILLING SALES
  541. ,COALESCE(
  542.     (SELECT SUM(BD.NETT_INV_PRE_TAX_HOME_AMT) AMT
  543.     FROM PJ_EST_OST_CST_BRKDWN BD
  544.     INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON BD.PROJECT_NO = PEOHT.PROJECT_NO
  545.     WHERE PEOHT.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  546.     AND BD.YEAR_POSTED_TO*100 + BD.PERIOD_POSTED_TO = 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  547.     )
  548. ,0) BS_CURRENT_ACTUAL_REVENUE
  549. ,COALESCE(
  550.     (SELECT SUM(BD.NETT_INV_PRE_TAX_HOME_AMT) AMT
  551.     FROM PJ_EST_OST_CST_BRKDWN BD
  552.     INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON BD.PROJECT_NO = PEOHT.PROJECT_NO
  553.     WHERE PEOHT.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  554.     AND BD.YEAR_POSTED_TO*100 + BD.PERIOD_POSTED_TO <= 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  555.     )
  556. ,0) BS_ACCUM_ACTUAL_REVENUE
  557. ,COALESCE(
  558.     (SELECT SUM(BD.RECOG_INV_PRE_TAX_HOME_AMT) AMT
  559.     FROM PJ_EST_OST_CST_BRKDWN BD
  560.     INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON BD.PROJECT_NO = PEOHT.PROJECT_NO
  561.     WHERE PEOHT.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  562.     AND BD.YEAR_POSTED_TO*100 + BD.PERIOD_POSTED_TO = 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  563.     )
  564. ,0) BS_CURRENT_RECOG_REVENUE
  565. ,COALESCE(
  566.     (SELECT SUM(BD.RECOG_INV_PRE_TAX_HOME_AMT) AMT
  567.     FROM PJ_EST_OST_CST_BRKDWN BD
  568.     INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON BD.PROJECT_NO = PEOHT.PROJECT_NO
  569.     WHERE PEOHT.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  570.     AND BD.YEAR_POSTED_TO*100 + BD.PERIOD_POSTED_TO <= 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  571.     )
  572. ,0) BS_ACCUM_RECOG_REVENUE
  573. --REVENUE ACCRUAL
  574. ,COALESCE(
  575.     (SELECT SUM(BD.TOTAL_REVENUE_ACCRUAL_HOME_AMT) AMT
  576.     FROM PJ_EST_OST_CST_BRKDWN BD
  577.     INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON BD.PROJECT_NO = PEOHT.PROJECT_NO
  578.     WHERE PEOHT.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  579.     AND BD.YEAR_POSTED_TO*100 + BD.PERIOD_POSTED_TO = 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  580.     )
  581. ,0) RA_CURRENT_ACTUAL_REVENUE
  582. ,COALESCE(
  583.     (SELECT SUM(BD.TOTAL_REVENUE_ACCRUAL_HOME_AMT) AMT
  584.     FROM PJ_EST_OST_CST_BRKDWN BD
  585.     INNER JOIN PJ_EST_OST_HDR_TEMP AS PEOHT ON BD.PROJECT_NO = PEOHT.PROJECT_NO
  586.     WHERE PEOHT.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  587.     AND BD.YEAR_POSTED_TO*100 + BD.PERIOD_POSTED_TO <= 100*$P{FINANCIAL_YEAR} + $P{FINANCIAL_PERIOD}
  588.     )
  589. ,0) RA_ACCUM_ACTUAL_REVENUE
  590. ,BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_GROUP_CODE
  591. ,BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_GROUP_DESC
  592. ,BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_CODE
  593. ,BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_DESC
  594. ,COALESCE(CURRENT_RECOG_COST_PJ_TBL.AMT,0) CURRENT_RECOG_COST_PJ_AMT --AT PJ LEVEL
  595. ,COALESCE(ACCUM_RECOG_COST_PJ_TBL.AMT,0) ACCUM_RECOG_COST_PJ_AMT --AT PJ LEVEL
  596. ,COALESCE(PJBUDGET_TBL.AMT,0) PJBUDGET_AMT --AT BUDGET CAT LEVEL
  597. ,COALESCE(CURRENT_RECOG_COST_TBL.AMT,0) CURRENT_RECOG_COST_AMT --AT BUDGET CAT LEVEL
  598. ,COALESCE(ACCUM_RECOG_COST_TBL.AMT,0) ACCUM_RECOG_COST_AMT --AT BUDGET CAT LEVEL
  599. ,ACCUM_ACTUAL_COST_TBL.ITEM_CATEGORY_CODE
  600. ,ACCUM_ACTUAL_COST_TBL.ITEM_CATEGORY_DESC
  601. ,COALESCE(CURRENT_ACTUAL_COST_TBL.AMT,0) CURRENT_ACTUAL_COST_AMT --AT ITEM CAT LEVEL
  602. ,COALESCE(ACCUM_ACTUAL_COST_TBL.AMT,0) ACCUM_ACTUAL_COST_AMT --AT ITEM CAT LEVEL
  603. FROM
  604. (SELECT DISTINCT MASTER_PROJECT_NO_ FROM PJ_EST_OST_HDR_TEMP) AS PJ
  605. JOIN PJREV2 ON PJ.MASTER_PROJECT_NO_ = PJREV2.MASTER_PROJECT_NO_
  606. LEFT JOIN BUDGET_CATEGORY_TBL ON BUDGET_CATEGORY_TBL.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  607. LEFT JOIN PJBUDGET_TBL ON PJBUDGET_TBL.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_ AND PJBUDGET_TBL.BUDGET_CATEGORY_CODE = BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_CODE AND PJBUDGET_TBL.BUDGET_CATEGORY_GROUP_CODE = BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_GROUP_CODE
  608. LEFT JOIN ACCUM_ACTUAL_COST_TBL ON ACCUM_ACTUAL_COST_TBL.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  609.     AND ACCUM_ACTUAL_COST_TBL.BUDGET_CATEGORY_GROUP_CODE = BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_GROUP_CODE
  610.     AND ACCUM_ACTUAL_COST_TBL.BUDGET_CATEGORY_CODE = BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_CODE
  611. LEFT JOIN CURRENT_ACTUAL_COST_TBL ON CURRENT_ACTUAL_COST_TBL.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  612.     AND ACCUM_ACTUAL_COST_TBL.BUDGET_CATEGORY_GROUP_CODE = CURRENT_ACTUAL_COST_TBL.BUDGET_CATEGORY_GROUP_CODE
  613.     AND ACCUM_ACTUAL_COST_TBL.BUDGET_CATEGORY_CODE = CURRENT_ACTUAL_COST_TBL.BUDGET_CATEGORY_CODE
  614.     AND ACCUM_ACTUAL_COST_TBL.ITEM_CATEGORY_CODE = CURRENT_ACTUAL_COST_TBL.ITEM_CATEGORY_CODE
  615. LEFT JOIN CURRENT_RECOG_COST_TBL ON CURRENT_RECOG_COST_TBL.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  616.     AND BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_GROUP_CODE = CURRENT_RECOG_COST_TBL.BUDGET_CATEGORY_GROUP_CODE
  617.     AND BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_CODE = CURRENT_RECOG_COST_TBL.BUDGET_CATEGORY_CODE
  618. LEFT JOIN ACCUM_RECOG_COST_TBL ON ACCUM_RECOG_COST_TBL.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  619.     AND BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_GROUP_CODE = ACCUM_RECOG_COST_TBL.BUDGET_CATEGORY_GROUP_CODE
  620.     AND BUDGET_CATEGORY_TBL.BUDGET_CATEGORY_CODE = ACCUM_RECOG_COST_TBL.BUDGET_CATEGORY_CODE
  621. LEFT JOIN CURRENT_RECOG_COST_PJ_TBL ON CURRENT_RECOG_COST_PJ_TBL.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  622. LEFT JOIN ACCUM_RECOG_COST_PJ_TBL ON ACCUM_RECOG_COST_PJ_TBL.MASTER_PROJECT_NO_ = PJ.MASTER_PROJECT_NO_
  623. WHERE 1=1
  624. --AND (COALESCE(PJBUDGET_TBL.AMT,0) <>0 OR COALESCE(ACCUM_RECOG_COST_PJ_TBL.AMT,0) <>0 OR COALESCE(ACCUM_ACTUAL_COST_TBL.AMT,0)<>0 )
  625.  
  626. ORDER BY MASTER_PROJECT_NO,BUDGET_CATEGORY_GROUP_CODE,BUDGET_CATEGORY_CODE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement