Advertisement
Guest User

Untitled

a guest
Oct 17th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.95 KB | None | 0 0
  1. --CREATE PROC [dbo].[sp_REPORTS_ChargeExtract]
  2. DECLARE
  3. @PeriodID INT,
  4. @CompanyID INT,
  5. @ExpenseCodeGroupID INT
  6. --AS
  7. BEGIN
  8. BEGIN TRY DROP TABLE #ProcessedData END TRY BEGIN CATCH END CATCH
  9. SET @CompanyID = 1
  10. SET @PeriodID = 2019
  11. SET @ExpenseCodeGroupID = 1034 --1040 1034
  12.  
  13.  
  14. DECLARE @singleQuote CHAR = CHAR(39),
  15. @SCExemptID INT = (SELECT AttributeDefinitionID FROM ExtendedAttributeDefinition WHERE AttributeKey = 'SCEXEMPT' AND CompanyID IN(@CompanyID, 0)), --AttributeDefinitionID
  16. @ProtectedRightsID INT = (SELECT AttributeDefinitionID FROM ExtendedAttributeDefinition WHERE AttributeKey = 'PROTECTEDRIGHTS' AND CompanyID IN(@CompanyID, 0)),
  17. @RentGroupID INT = (SELECT AttributeDefinitionID FROM ExtendedAttributeDefinition where AttributeKey = 'RNTGROUP' AND CompanyID IN (@CompanyID, 0)),
  18. @NotCalcID INT = (SELECT AttributeDefinitionID FROM ExtendedAttributeDefinition WHERE AttributeKey = 'BUDGETEXEMPT' AND CompanyID IN (@CompanyID, 0)),
  19. @ServiceChargesECGID INT = (SELECT ExpenseCodeGroupID FROM ExpenseCodeGroup WHERE name = 'Service Charge' and CompanyID IN (@CompanyID, 0) and @PeriodID BETWEEN StartPeriod and ISNULL(endperiod, 9999))
  20.  
  21. --DECLARE @April datetime = CAST(@PeriodID as varchar(4)) + '-04-01 00:00:00.000'
  22. DECLARE @July datetime = CAST(@PeriodID as varchar(4)) + '-07-01 00:00:00.000'
  23.  
  24. SELECT
  25. ' ' as [*],
  26. @singleQuote + u.OriginalCode + @singleQuote as [Reference],
  27. 'L' as [Ref Type],
  28. 'CH' as [Charge Type],
  29. ' ' as [Charge Code],
  30. CAST(SUM(bud.PayFreqValue) as decimal(19,2)) as [Charge Value],
  31. 'N' as [VAT Flag],
  32. ' ' as [VAT Value],
  33. Case
  34. when @CompanyID = 1 AND pf.Name LIKE 'Weekly%'
  35. then convert(varchar(max), [dbo].GetEffectiveDateByFreqID(@periodID, pf.PaymentFrequencyID), 105)
  36. when @CompanyID = 1 AND pf.Name IN('Monthly', 'Annual')
  37. then '01-04-' + CAST(@PeriodID as varchar(4))
  38. when @CompanyID = 2 AND pf.Name LIKE 'Weekly%'
  39. then convert(varchar(max), [dbo].GetEffectiveDateByFreqID(@periodID -1, pf.PaymentFrequencyID), 105)
  40. when @CompanyID = 2 AND pf.Name ='Monthly'
  41. then '01-07-' + CAST(@PeriodID -1 as varchar(4))
  42. when @CompanyID = 3 AND pf.Name LIKE 'Weekly%'
  43. then convert(varchar(max), [dbo].GetEffectiveDateByFreqID(@periodID, pf.PaymentFrequencyID), 105)
  44. when @CompanyID = 3 AND pf.Name ='Monthly'
  45. then '01-04-' + CAST(@PeriodID as varchar(4))
  46. when @CompanyID = 4 AND pf.Name LIKE 'Weekly%'
  47. then convert(varchar(max), [dbo].GetEffectiveDateByFreqID(@periodID, pf.PaymentFrequencyID), 105)
  48. when @CompanyID = 4 AND pf.Name ='Monthly'
  49. then '01-04-' + CAST(@PeriodID -1 as varchar(4))
  50. else ''
  51. END as [Effective Date],
  52. ' ' as [Termination Date],
  53. ' ' as [Secure / Other],
  54. ISNULL(eavRentGroup.Value, 'NOT SET') as [Rent Group],
  55. ' ' as [Accounts Company],
  56. ' ' as [Cost Centre],
  57. ' ' as [Expense Code],
  58. @ExpenseCodeGroupID as [Expense Code Group ID],
  59. eavProtRights.Value as [ProtRights],
  60. ISNULL(eavNotCalc.Value, 'false') as [NotCalc]
  61. --SELECT *
  62. INTO #ProcessedData
  63. FROM Unit u
  64. INNER JOIN ManagementUnit mu
  65. ON mu.MUID = u.MUID
  66. AND @PeriodID BETWEEN mu.StartPeriod AND ISNULL(mu.EndPeriod, 9999)
  67. INNER JOIN ChargeUnit cu
  68. ON mu.MUID = cu.MUID
  69. AND @PeriodID BETWEEN cu.StartPeriod AND ISNULL(cu.EndPeriod, 9999)
  70. AND cu.OriginalCode NOT LIKE '%_DUM'
  71. INNER JOIN ChargeUnitUnits cuu
  72. ON cuu.UnitID = u.UnitID
  73. AND cuu.CUID = cu.CUID
  74. AND @PeriodID BETWEEN cuu.StartPeriod AND ISNULL(cuu.EndPeriod, 9999)
  75. INNER JOIN HierarchyNode hn
  76. ON mu.ParentNodeID = hn.NodeID
  77. AND @PeriodID BETWEEN hn.StartPeriod AND ISNULL(hn.EndPeriod,9999)
  78. LEFT JOIN ExtendedAttributeValues eavSCExempt
  79. ON mu.MUID = eavSCExempt.ObjectID
  80. AND eavSCExempt.AttributeDefinitionID = @SCExemptID
  81. AND @PeriodID BETWEEN eavSCExempt.StartPeriod AND ISNULL(eavSCExempt.EndPeriod, 9999)
  82. AND (eavSCExempt.Value IS NULL or eavSCExempt.Value IN('FALSE', 'false', '0', 'f', 'F'))
  83. FULL JOIN ExtendedAttributeValues eavNotCalc
  84. ON cu.CUID = eavNotCalc.ObjectID
  85. AND eavNotCalc.AttributeDefinitionID = @NotCalcID
  86. AND @PeriodID BETWEEN eavNotCalc.StartPeriod AND ISNULL(eavNotCalc.EndPeriod, 9999)
  87. AND (eavNotCalc.Value IS NULL OR eavNotCalc.Value IN ('TRUE', 'T', '1', 'YES', 'Y'))
  88. FULL JOIN ExtendedAttributeValues eavProtRights
  89. ON eavProtRights.ObjectID = u.UnitID
  90. AND @PeriodID BETWEEN eavProtRights.StartPeriod AND ISNULL(eavProtRights.EndPeriod,9999)
  91. AND eavProtRights.AttributeDefinitionID = @ProtectedRightsID
  92. FULL JOIN ExtendedAttributeValues eavRentGroup
  93. ON eavRentGroup.ObjectID = u.UnitID
  94. AND @PeriodID BETWEEN eavRentGroup.StartPeriod AND ISNULL(eavRentGroup.EndPeriod, 9999)
  95. AND eavRentGroup.AttributeDefinitionID = @RentGroupID
  96. INNER JOIN fn_CORE_Budgets_BASE(@PeriodID, @CompanyID, CAST(@companyID as varchar(1)), DEFAULT, DEFAULT, DEFAULT, DEFAULT) bud
  97. ON mu.MUID = bud.MUID
  98. AND u.UnitID = bud.UnitID
  99. AND @ExpenseCodeGroupID = bud.ExpenseCodeGroupID
  100. and bud.IsExcluded = 0
  101. AND bud.IsOmitted = 0
  102. INNER JOIN ExpenseCode ec
  103. ON ec.ExpenseCodeID = bud.ExpenseCodeID
  104. AND ec.CompanyID = @CompanyID
  105. AND @PeriodID BETWEEN ec.StartPeriod AND ISNULL(ec.EndPeriod, 9999)
  106. INNER JOIN ExpenseCodeGroup ecg
  107. ON @ExpenseCodeGroupID = ecg.ExpenseCodeGroupID
  108. AND ecg.CompanyID = @CompanyID
  109. AND @PeriodID BETWEEN ecg.StartPeriod AND ISNULL(ecg.EndPeriod, 9999)
  110. INNER JOIN WorkflowDefinition wd
  111. ON ecg.WorkflowGUID = wd.WorkflowGUID
  112. AND wd.CompanyID IN(@CompanyID, 0)
  113. INNER JOIN WorkflowStepDefinition wfsd
  114. ON wfsd.WorkflowGUID = wd.WorkflowGUID
  115. AND FinalStep = 1
  116. INNER JOIN Workflowstatus wfs
  117. ON wfs.MUID = mu.MUID
  118. AND wfs.WorkflowGUID = wd.WorkflowGUID
  119. AND wfs.CompanyID IN (@CompanyID, 0)
  120. AND wfs.CurrentStepGUID = wfsd.StepGUID
  121. AND @PeriodID = wfs.PeriodID
  122. INNER JOIN PaymentFrequency pf
  123. ON pf.PaymentFrequencyID = bud.PayFrq
  124. AND pf.CompanyID IN (@CompanyID, 0)
  125. WHERE @companyID = CAST(LEFT(Ancestry,1) as int)
  126. AND @PeriodID between u.StartPeriod AND ISNULL(u.EndPeriod, 9999)
  127. --AND (ecg.ExpenseCodeGroupID = @ServiceChargesECGID AND eavProtRights.Value NOT IN ('TRUE', 'true', 'T', 't', '1'))
  128. GROUP BY u.Name, u.UnitID, u.OriginalCode, eavProtRights.Value, eavRentGroup.Value, eavNotCalc.Value , pf.PaymentFrequencyID, pf.Name --, ecg.ExpenseCodeGroupID, ecg.Name -- eavRentGroup.Value, eavProtRights.Value, pf.Name,
  129. order by u.OriginalCode
  130.  
  131. DELETE FROM #ProcessedData where [Expense Code Group ID] = @ServiceChargesECGID and ProtRights IN ('TRUE', 'true', 'T', 't', '1')
  132. DELETE FROM #ProcessedData where NotCalc IN ('TRUE', 'true', 'T', 't', '1')
  133.  
  134.  
  135. SELECT [*],[Reference],[Ref Type],[Charge Type],[Charge Code],[Charge Value],[VAT Flag],[VAT Value],[Effective Date],[Termination Date],[Secure / Other],
  136. [Rent Group],[Accounts Company],[Cost Centre],[Expense Code]
  137. FROM #ProcessedData
  138. order by Reference
  139. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement