You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

301 lines
10 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[EXCHANGE_PROC_CURRBUYSELLRATE] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[EXCHANGE_PROC_CURRBUYSELLRATE]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[EXCHANGE_PROC_CURRBUYSELLRATE] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. CREATE PROCEDURE [dbo].[EXCHANGE_PROC_CURRBUYSELLRATE]
  12. @FLAG VARCHAR(20),
  13. @BRANCH_ID VARCHAR(30) = NULL,
  14. @CURR VARCHAR(5) = NULL,
  15. @USER VARCHAR(50) = NULL,
  16. @date VARCHAR(10) = NULL,
  17. @sortBy VARCHAR(50) = NULL,
  18. @sortOrder VARCHAR(5) = NULL,
  19. @pageSize INT = NULL,
  20. @pageNumber INT = NULL
  21. AS
  22. SET NOCOUNT ON;
  23. ----SELECT @BRANCH_ID = BRANCH_ID FROM BRANCHES WITH(NOLOCK) WHERE COMPANY_ID = @BRANCH_ID
  24. DECLARE @CurrencyName VARCHAR(100)= 'KRW'
  25. DECLARE @remarks VARCHAR(200),@BAL DECIMAL(10,2),@lblCurr varchar(5),@unit DECIMAL(10,2)
  26. IF @FLAG = 'S'
  27. BEGIN
  28. SELECT e.SaleRate rate,e.Saletoleranceplus tolPlus,e.Saletoleranceminus tolMinus
  29. ,remarks = 'Max Rate: '+CAST((E.SaleRate) + (Saletoleranceplus) AS VARCHAR)
  30. + ' /Min Rate: '+CAST((E.SaleRate) - (Saletoleranceminus) AS VARCHAR)
  31. ,isnull(e.FixedCurUnit,1) unit,ISNULL(usd_amt,0)*-1 bal, ISNULL(usd_amt,0)*-1 WONBAL,e.baseCurrency curr
  32. --,@afterDecimal afterDecimal
  33. FROM FastMoneyPro_Account.dbo.ac_master a with (nolock)
  34. INNER JOIN FastMoneyPro_Remit.dbo.EXCHANGE_CURRENCYRATE_SETUP e with (nolock) on e.baseCurrency = a.ac_currency
  35. --INNER JOIN (SELECT cashId FROM Branches WHERE BRANCH_ID=@BRANCH_ID) X ON X.cashId=E.RateCode
  36. WHERE ac_currency = @CURR AND e.Active='y' and
  37. acct_rpt_code='MoneyEx' AND a.agent_id = @BRANCH_ID
  38. RETURN
  39. END
  40. IF @FLAG = 'B'
  41. BEGIN
  42. SELECT SUM(X.rate) rate,SUM(Buytoleranceplus) tolPlus ,SUM(Buytoleranceminus) tolMinus
  43. --,@remarks remarks,ISNULL(@BAL,0.00) bal
  44. ,remarks = 'Max Rate: '+CAST(SUM(X.rate) + SUM(Buytoleranceplus) AS VARCHAR)
  45. + ' /Min Rate: '+CAST(SUM(X.rate) - SUM(Buytoleranceminus) AS VARCHAR)
  46. ,SUM(X.unit) unit,@CurrencyName curr
  47. , bal = (SELECT SUM(ISNULL(CLR_BAL_AMT,0))*-1 WONBAL FROM FastMoneyPro_Account.dbo.ac_master WHERE branch_id = @BRANCH_ID AND ac_currency = @CURR AND acct_rpt_code='MoneyEx')
  48. FROM (
  49. SELECT 0 rate,0 Buytoleranceplus, 0 Buytoleranceminus,0 unit UNION ALL
  50. SELECT TOP 1 e.BuyRate rate,e.Buytoleranceplus,e.Buytoleranceminus,e.FixedCurUnit unit
  51. FROM FastMoneyPro_Account.dbo.ac_master a with (nolock)
  52. INNER JOIN EXCHANGE_CURRENCYRATE_SETUP e with (nolock) on e.baseCurrency = a.ac_currency
  53. WHERE ac_currency = @CURR AND e.Active='y' and
  54. acct_rpt_code = 'MoneyEx' AND a.agent_id = @BRANCH_ID
  55. )X
  56. RETURN
  57. END
  58. ELSE IF @FLAG='bBal' ---->> branch balance on WON FOR BUY OPERATION
  59. BEGIN
  60. select TOP 1 cast(isnull(e.FixedCurUnit,1) as varchar)+' '+e.baseCurrency+' = '+cast(cast(e.BuyRate as float) as varchar)+' '+e.quoteCurrency [remarks]
  61. ,isnull(a.usd_amt*-1,0) [AMT]
  62. ,(SELECT ISNULL(CLR_BAL_AMT,0)*-1 WONBAL FROM FastMoneyPro_Account.dbo.ac_master WHERE branch_id = @BRANCH_ID AND ac_currency = @CurrencyName AND acct_rpt_code=@CurrencyName) WONBAL
  63. ,isnull(e.FixedCurUnit,1) unit,@CurrencyName curr
  64. FROM FastMoneyPro_Account.dbo.ac_master a with (nolock) inner join EXCHANGE_CURRENCYRATE_SETUP e with (nolock) on e.baseCurrency = a.ac_currency
  65. WHERE ac_currency = @CURR AND acct_rpt_code= @CURR
  66. AND a.branch_id = @BRANCH_ID and e.Active='y' ORDER BY e.currencyRateId DESC
  67. RETURN
  68. END
  69. ELSE IF @FLAG='sBal' ---->> branch balance on RESPECTIVE CURR FOR SELL OPERATION
  70. BEGIN
  71. select TOP 1 cast(isnull(e.FixedCurUnit,1) as varchar)+' '+e.baseCurrency+' = '+cast(cast(e.SaleRate as float) as varchar)+' '+e.baseCurrency [remarks]
  72. ,isnull(a.usd_amt*-1,0) [AMT],ISNULL(CLR_BAL_AMT,0)*-1 WONBAL,isnull(e.FixedCurUnit,1) [unit],e.baseCurrency curr
  73. FROM FastMoneyPro_Account.dbo.ac_master a with (nolock)
  74. inner join EXCHANGE_CURRENCYRATE_SETUP e with (nolock) on e.baseCurrency = a.ac_currency
  75. --INNER JOIN Branches B ON B.cashId = E.RateCode WHERE ac_currency = @CURR AND acct_rpt_code= @CURR
  76. AND A.branch_id = @BRANCH_ID AND e.Active='y' ORDER BY e.currencyRateId DESC
  77. RETURN
  78. END
  79. ELSE IF @FLAG = 'tRate'-->> TODAYS RATE FOR BRANCH
  80. BEGIN
  81. DECLARE @table VARCHAR(MAX),@sql_filter VARCHAR(100),@select_field_list VARCHAR(MAX),@extra_field_list VARCHAR(10)
  82. IF @sortBy IS NULL
  83. SET @sortBy = 'CurFixed'
  84. IF @sortOrder IS NULL
  85. SET @sortOrder = 'ASC'
  86. SET @table = '(Select
  87. B.BRANCH_NAME,B.BRANCH_ID,E.CurFixed,E.BuyRate,E.Buytoleranceplus,E.Buytoleranceminus
  88. ,E.SaleRate,E.Saletoleranceplus,E.Saletoleranceminus
  89. ,E.RevRate,E.CreatedDate
  90. from EXCHANGE_CURRENCYRATE_SETUP E
  91. Inner join RateCodeTable R on R.ratecodeId = E.RateCode
  92. Inner join Branches B on B.cashId = E.RateCode
  93. where E.CurFixed = ISNULL(CurFixed,E.CurFixed) and e.active =''y'' and r.active =''y''
  94. ) x'
  95. SET @sql_filter = ''
  96. IF @BRANCH_ID IS NOT NULL
  97. SET @sql_filter +=' AND BRANCH_ID = '''+@BRANCH_ID+''''
  98. IF @CURR IS NOT NULL
  99. SET @sql_filter = @sql_filter + ' AND CurFixed = '''+@CURR+''''
  100. SET @select_field_list ='
  101. BRANCH_NAME
  102. ,BRANCH_ID
  103. ,CurFixed
  104. ,BuyRate
  105. ,Buytoleranceplus
  106. ,Buytoleranceminus
  107. ,SaleRate
  108. ,Saletoleranceplus
  109. ,Saletoleranceminus
  110. ,RevRate
  111. ,CreatedDate'
  112. EXEC dbo.proc_paging
  113. @table
  114. ,@sql_filter
  115. ,@select_field_list
  116. ,@extra_field_list
  117. ,@sortBy
  118. ,@sortOrder
  119. ,@pageSize
  120. ,@pageNumber
  121. END
  122. ELSE IF @FLAG = 'RateDis' -->> BRANCH WISERATE DISPLAY
  123. BEGIN
  124. Select
  125. '' BRANCH_NAME,E.baseCurrency,E.BuyRate,E.Buytoleranceplus,E.Buytoleranceminus
  126. ,E.SaleRate,E.Saletoleranceplus,E.Saletoleranceminus
  127. ,E.RevRate,E.CreatedDate ,E.FixedCurUnit
  128. ,c.curr_desc
  129. ,buyRateDecimals = CASE Charindex('.', E.BuyRate)
  130. WHEN 0 THEN 0
  131. ELSE
  132. Len (
  133. Cast(
  134. Cast(
  135. Reverse(CONVERT(VARCHAR(50), E.BuyRate, 128)) AS FLOAT
  136. ) AS BIGINT
  137. )
  138. )
  139. END
  140. ,saleRateDecimals = CASE Charindex('.', E.SaleRate)
  141. WHEN 0 THEN 0
  142. ELSE
  143. Len (
  144. Cast(
  145. Cast(
  146. Reverse(CONVERT(VARCHAR(50), E.SaleRate, 128)) AS FLOAT
  147. ) AS BIGINT
  148. )
  149. )
  150. END
  151. from EXCHANGE_CURRENCYRATE_SETUP E
  152. -- Inner join RateCodeTable R on R.ratecodeId = E.RateCode
  153. -- Inner join Branches B on B.cashId = E.RateCode
  154. INNER JOIN dbo.currency_setup c ON c.curr_code = e.baseCurrency
  155. where --B.BRANCH_ID = @BRANCH_ID AND
  156. E.baseCurrency = ISNULL(E.baseCurrency,E.baseCurrency) and E.Active='Y'-- AND R.active='Y'
  157. ORDER BY E.FixedCurUnit, E.baseCurrency
  158. END
  159. ELSE IF @FLAG = 'RateEdit'-->> TODAYS RATE FOR RATE MAINTENANCE
  160. BEGIN
  161. IF @sortBy IS NULL
  162. SET @sortBy = 'CurFixed'
  163. IF @sortOrder IS NULL
  164. SET @sortOrder = 'ASC'
  165. SET @table = '(SELECT E.exrateId,E.CurFixed,E.CurVariable,E.FixedCurUnit,E.RevRate,E.BuyRate,E.SaleRate
  166. ,CAST(ISNULL(SaleRate,0)-ISNULL(BuyRate,0) AS Decimal(20,6)) as MARGIN,ISNULL(e.ModifiedDate,E.CREATEDDATE) [moddate]
  167. ,ISNULL(e.ModifiedBy,E.CreatedBy) ModifiedBy FROM EXCHANGE_CURRENCYRATE_SETUP E WITH(NOLOCK) INNER JOIN RateCodeTable R WITH (NOLOCK)
  168. ON E.RateCode=R.ratecodeId INNER JOIN Branches B ON B.cashId = E.RateCode
  169. where b.BRANCH_ID = '''+@BRANCH_ID+''' and E.Active=''Y'' AND R.active=''Y''
  170. ) x'
  171. SET @sql_filter = ''
  172. IF @CURR IS NOT NULL
  173. SET @sql_filter = @sql_filter + ' AND CurFixed = '''+@CURR+''''
  174. SET @select_field_list ='
  175. exrateId
  176. ,CurFixed
  177. ,CurVariable
  178. ,FixedCurUnit
  179. ,RevRate
  180. ,BuyRate
  181. ,SaleRate
  182. ,MARGIN
  183. ,moddate
  184. ,ModifiedBy'
  185. EXEC dbo.proc_paging
  186. @table
  187. ,@sql_filter
  188. ,@select_field_list
  189. ,@extra_field_list
  190. ,@sortBy
  191. ,@sortOrder
  192. ,@pageSize
  193. ,@pageNumber
  194. END
  195. ELSE IF @FLAG = 'RateHistory'-->> RATE HISTORY
  196. BEGIN
  197. --IF @sortBy IS NULL
  198. SET @sortBy = 'Branch_name'
  199. IF @sortOrder IS NULL
  200. SET @sortOrder = 'ASC'
  201. SET @table = '(SELECT E.*,b.BRANCH_ID as BranchId,b.Branch_name
  202. FROM ExchangeRateTable_History E WITH(NOLOCK)
  203. INNER JOIN Branches B ON E.RateCode = B.cashId
  204. WHERE 1=1
  205. ) x'
  206. SET @sql_filter = ''
  207. IF @BRANCH_ID IS NOT NULL
  208. SET @sql_filter +=' AND BRANCH_ID = '''+@BRANCH_ID+''''
  209. IF @CURR IS NOT NULL
  210. SET @sql_filter = @sql_filter + ' AND CurFixed = '''+@CURR+''''
  211. IF @date IS NOT NULL
  212. SET @sql_filter = @sql_filter +' AND CAST(ModifiedDate AS DATE) = '''+@date+''''
  213. SET @select_field_list ='
  214. exrateId
  215. ,BRANCH_ID
  216. ,Branch_name
  217. ,CurFixed
  218. ,CurVariable
  219. ,FixedCurUnit
  220. ,RevRate
  221. ,BuyRate
  222. ,Buytoleranceplus
  223. ,Buytoleranceminus
  224. ,CreatedDate
  225. ,ModifiedDate
  226. ,Saletoleranceplus
  227. ,Saletoleranceminus
  228. ,SaleRate'
  229. EXEC dbo.proc_paging
  230. @table
  231. ,@sql_filter
  232. ,@select_field_list
  233. ,@extra_field_list
  234. ,@sortBy
  235. ,@sortOrder
  236. ,@pageSize
  237. ,@pageNumber
  238. END
  239. IF @FLAG ='operationDDL' -->> ONLY FOR BUY,SELL,CROSS OPERATION DO NOT CHANGE THE QUERY
  240. BEGIN
  241. --CURRENCY DDL
  242. IF @BRANCH_ID IS NOT NULL
  243. BEGIN
  244. select c.currencyCode+'('+c.currencyName+')' [curr_name],c.currencyCode AS curr_code
  245. from dbo.EXCHANGE_COSTRATE_SETUP b WITH(NOLOCK)
  246. INNER JOIN currencyMaster c WITH(NOLOCK) on b.baseCurrency=c.currencyCode
  247. where b.agentId = @BRANCH_ID
  248. ORDER BY C.currencyCode
  249. END
  250. ELSE
  251. BEGIN
  252. select currencyCode+'('+currencyName+')' [curr_name],currencyName from dbo.currencyMaster WHERE 1=2
  253. END
  254. --COUNTRY DDL
  255. SELECT id refid,ref_code FROM FastMoneyPro_Account.dbo.StaticDataDetail WITH(NOLOCK) WHERE type_id = 1 ORDER BY ref_code
  256. -->> Customer Type
  257. SELECT valueId refid,detailTitle ref_code FROM dbo.staticDataValue WITH(NOLOCK) WHERE typeID=7005 order by valueId
  258. -->> Purpose of Txn
  259. SELECT valueId refid,detailTitle ref_code FROM dbo.staticDataValue WITH(NOLOCK) WHERE typeID=7003 order by valueId
  260. -->> ID Type
  261. SELECT valueId refid,detailTitle ref_code FROM dbo.staticDataValue WITH(NOLOCK) WHERE typeID=7002 order by valueId
  262. -->> Occupation
  263. SELECT valueId refid,detailTitle ref_code FROM dbo.staticDataValue WITH(NOLOCK) WHERE typeID=2000 order by valueId
  264. -->> Source of Money
  265. SELECT valueId refid,detailTitle ref_code FROM dbo.staticDataValue WITH(NOLOCK) WHERE typeID=3900 order by valueId
  266. --Source of FCY
  267. SELECT valueId refid,detailTitle ref_code FROM dbo.staticDataValue WITH(NOLOCK) WHERE typeID=7004 order by valueId
  268. -- STR REASON
  269. select id refid,ref_code from FastMoneyPro_Account.dbo.StaticDataDetail WITH(NOLOCK) where type_id=109 order by ref_code
  270. END
  271. GO