Guest User

Untitled

a guest
Mar 22nd, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.70 KB | None | 0 0
  1. USE [EUROPA_PROD_DB]
  2. GO
  3.  
  4. /****** Object: View [dbo].[vw_Transactions] Script Date: 05/04/2012 12:51:24 ******/
  5. SET ANSI_NULLS ON
  6. GO
  7.  
  8. SET QUOTED_IDENTIFIER ON
  9. GO
  10.  
  11. CREATE VIEW [dbo].[vw_Transactions] AS
  12. SELECT
  13. TA.AcctCode,TA.AcctName,TA.GroupMask,TA.Levels,TA.ActType,TA.L1Parent,TA.L2Parent,
  14. TA.L3Parent,TA.L4Parent,
  15. TH.TransId,TH.TransType,TH.RefDate PostingDate,TH.DueDate,
  16. TH.TaxDate,TD.Account,TD.Debit,TD.Credit
  17. FROM OJDT TH
  18. INNER JOIN JDT1 TD ON TH.TransId=TD.TransId
  19. INNER JOIN vw_AccountDetails TA ON TD.Account=TA.AcctCode
  20.  
  21. GO
  22.  
  23. USE [EUROPA_PROD_DB]
  24. GO
  25.  
  26. /****** Object: View [dbo].[vw_AccountDetails] Script Date: 05/04/2012 12:50:39 ******/
  27. SET ANSI_NULLS ON
  28. GO
  29.  
  30. SET QUOTED_IDENTIFIER ON
  31. GO
  32.  
  33. CREATE VIEW [dbo].[vw_AccountDetails]
  34. AS
  35. SELECT TA.AcctCode,TA.AcctName,TA.GroupMask,TA.Levels,TA.ActType,
  36. CASE Levels
  37. WHEN 1 THEN
  38. TA.AcctName
  39. WHEN 2 THEN
  40. (SELECT TA1.AcctName FROM OACT TA1 WHERE TA1.AcctCode=TA.FatherNum)
  41. WHEN 3 THEN
  42. (SELECT TA3.AcctName FROM OACT TA3 WHERE TA3.AcctCode=
  43. (SELECT TA2.FatherNum FROM OACT TA2 WHERE TA2.AcctCode=
  44. (SELECT TA1.AcctCode FROM OACT TA1 WHERE TA1.AcctCode=TA.FatherNum)))
  45. WHEN 4 THEN
  46. (SELECT TA3.AcctName FROM OACT TA3 WHERE TA3.AcctCode=
  47. (SELECT TA3.FatherNum FROM OACT TA3 WHERE TA3.AcctCode=
  48. (SELECT TA2.FatherNum FROM OACT TA2 WHERE TA2.AcctCode=
  49. (SELECT TA1.AcctCode FROM OACT TA1 WHERE TA1.AcctCode=TA.FatherNum))))
  50. WHEN 5 THEN
  51. (SELECT TA3.AcctName FROM OACT TA3 WHERE TA3.AcctCode=
  52. (SELECT TA3.FatherNum FROM OACT TA3 WHERE TA3.AcctCode=
  53. (SELECT TA3.FatherNum FROM OACT TA3 WHERE TA3.AcctCode=
  54. (SELECT TA2.FatherNum FROM OACT TA2 WHERE TA2.AcctCode=
  55. (SELECT TA1.AcctCode FROM OACT TA1 WHERE TA1.AcctCode=TA.FatherNum)))))
  56. ELSE '' END AS L1Parent,
  57. CASE Levels
  58. WHEN 1 THEN
  59. ''
  60. WHEN 2 THEN
  61. TA.AcctName
  62. WHEN 3 THEN
  63. (SELECT TA1.AcctName FROM OACT TA1 WHERE TA1.AcctCode=TA.FatherNum)
  64. WHEN 4 THEN
  65. (SELECT TA3.AcctName FROM OACT TA3 WHERE TA3.AcctCode=
  66. (SELECT TA2.FatherNum FROM OACT TA2 WHERE TA2.AcctCode=
  67. (SELECT TA1.AcctCode FROM OACT TA1 WHERE TA1.AcctCode=TA.FatherNum)))
  68. WHEN 5 THEN
  69. (SELECT TA3.AcctName FROM OACT TA3 WHERE TA3.AcctCode=
  70. (SELECT TA3.FatherNum FROM OACT TA3 WHERE TA3.AcctCode=
  71. (SELECT TA2.FatherNum FROM OACT TA2 WHERE TA2.AcctCode=
  72. (SELECT TA1.AcctCode FROM OACT TA1 WHERE TA1.AcctCode=TA.FatherNum))))
  73. ELSE '' END AS L2Parent,
  74. CASE Levels
  75. WHEN 1 THEN
  76. ''
  77. WHEN 2 THEN
  78. ''
  79. WHEN 3 THEN
  80. TA.AcctName
  81. WHEN 4 THEN
  82. (SELECT TA1.AcctName FROM OACT TA1 WHERE TA1.AcctCode=TA.FatherNum)
  83. WHEN 5 THEN
  84. (SELECT TA3.AcctName FROM OACT TA3 WHERE TA3.AcctCode=
  85. (SELECT TA2.FatherNum FROM OACT TA2 WHERE TA2.AcctCode=
  86. (SELECT TA1.AcctCode FROM OACT TA1 WHERE TA1.AcctCode=TA.FatherNum)))
  87. ELSE '' END AS L3Parent,
  88. CASE Levels
  89. WHEN 1 THEN
  90. ''
  91. WHEN 2 THEN
  92. ''
  93. WHEN 3 THEN
  94. ''
  95. WHEN 4 THEN
  96. TA.AcctName
  97. WHEN 5 THEN
  98. (SELECT TA1.AcctName FROM OACT TA1 WHERE TA1.AcctCode=TA.FatherNum)
  99. ELSE '' END AS L4Parent
  100.  
  101. FROM OACT TA
  102. WHERE TA.Postable='Y'
  103.  
  104. GO
  105.  
  106. CREATE PROCEDURE sp_CustomProfit_And_Loss
  107. (
  108. @BeginDate DATETIME,
  109. @EndDate DATETIME
  110. )
  111. AS
  112. BEGIN
  113. SELECT L1Parent,L2Parent,Balance,RowOrder
  114. FROM fn_CustomProfit_And_Loss(@BeginDate,@EndDate)
  115. order by RowOrder
  116.  
  117. END
  118.  
  119. CREATE FUNCTION fn_CustomProfit_And_Loss
  120. (
  121. @BeginDate DATETIME,
  122. @EndDate DATETIME
  123. )
  124. RETURNS @table TABLE(
  125. L1Parent VARCHAR(72),
  126. L2Parent VARCHAR(72),
  127. Balance MONEY,
  128. RowOrder INT
  129. )
  130. AS
  131. BEGIN
  132. SET @BeginDate=CAST(YEAR(@BeginDate) AS CHAR(4))+'-'+CAST(MONTH(@BeginDate) AS CHAR(2)) +'-'+ CAST(DAY(@BeginDate) AS CHAR(2))
  133. SET @EndDate=CAST(YEAR(@EndDate) AS CHAR(4))+'-'+CAST(MONTH(@EndDate) AS CHAR(2)) +'-'+ CAST(DAY(@EndDate) AS CHAR(2))
  134. --SET @EndDate='2012-12-31'
  135.  
  136.  
  137. INSERT INTO @table
  138. SELECT
  139. CASE L1Parent WHEN 'Turnover' THEN 'Income' ELSE L1Parent END L1Parent,
  140. L2Parent,
  141. SUM(Credit-Debit) Balance,
  142. 1 RowOrder
  143. FROM vw_Transactions
  144. WHERE GroupMask=4--Income
  145. AND PostingDate BETWEEN @BeginDate AND @EndDate
  146. GROUP BY L1Parent,L2Parent
  147.  
  148. UNION ALL
  149. SELECT
  150. CASE L1Parent WHEN 'Cost of Sales' THEN 'Cost Of Goods Sold' ELSE L1Parent END L1Parent,
  151. L2Parent,
  152. SUM(Debit-Credit) Balance,
  153. 2 RowOrder
  154. FROM vw_Transactions
  155. WHERE GroupMask=5--COGS
  156. AND PostingDate BETWEEN @BeginDate AND @EndDate
  157. GROUP BY L1Parent,L2Parent
  158.  
  159. UNION ALL
  160.  
  161. SELECT
  162. CASE L1Parent WHEN 'Operating Costs' THEN 'Expenses' ELSE L1Parent END L1Parent,
  163. L2Parent,
  164. SUM(Debit-Credit) Balance,
  165. 3 RowOrder
  166. FROM vw_Transactions
  167. WHERE GroupMask IN(6,71,81)--Expenses
  168. AND PostingDate BETWEEN @BeginDate AND @EndDate
  169. GROUP BY L1Parent,L2Parent
  170.  
  171. RETURN
  172. END
Add Comment
Please, Sign In to add comment