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.

146 lines
4.7 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[EXCHANGE_PROC_COSTRATE_SETUP] Script Date: 7/4/2019 11:35:48 AM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROCEDURE [dbo].[EXCHANGE_PROC_COSTRATE_SETUP]
  9. @flag VARCHAR(20),
  10. @id INT = NULL,
  11. @user VARCHAR(50) = NULL,
  12. @agentName VARCHAR(500) = NULL,
  13. @sortBy VARCHAR(50) = NULL,
  14. @sortOrder VARCHAR(5) = NULL,
  15. @pageSize INT = NULL,
  16. @pageNumber INT = NULL,
  17. @currencyRateId BIGINT = NULL,
  18. @agentId BIGINT = NULL,
  19. @buyTolerancePlus MONEY = NULL,
  20. @buyToleranceMinus MONEY = NULL,
  21. @saleTolerancePlus MONEY = NULL,
  22. @saleToleranceMinus MONEY = NULL,
  23. @buyRate MONEY = NULL,
  24. @baseCurrency CHAR(3) = NULL,
  25. @saleRate MONEY = NULL
  26. AS
  27. BEGIN
  28. SET NOCOUNT ON;
  29. IF @FLAG='S'
  30. BEGIN
  31. DECLARE
  32. @selectFieldList VARCHAR(MAX)
  33. ,@extraFieldList VARCHAR(MAX)
  34. ,@table VARCHAR(MAX)
  35. ,@sqlFilter VARCHAR(MAX)
  36. IF @sortBy IS NULL
  37. SET @sortBy = 'agentName'
  38. SET @table = '(
  39. SELECT agentId,agentName,agentCode,agentAddress,agentPhone1,createdBy,createdDate
  40. FROM dbo.agentMaster (NOLOCK) WHERE parentid = 1008 AND agentGrp = 11023
  41. ) x'
  42. SET @sqlFilter = ''
  43. IF @agentName IS NOT NULL
  44. SET @sqlFilter +=' AND agentName LIKE '''+@agentName + '%'''
  45. SET @selectFieldList = 'agentId,agentName,agentCode,agentAddress,agentPhone1,createdBy,createdDate'
  46. EXEC dbo.proc_paging
  47. @table
  48. ,@sqlFilter
  49. ,@selectFieldList
  50. ,@extraFieldList
  51. ,@sortBy
  52. ,@sortOrder
  53. ,@pageSize
  54. ,@pageNumber
  55. RETURN
  56. END
  57. IF @flag='curCostRateAv' --currency cost rate avaiable
  58. BEGIN
  59. SELECT crs.rowId AS rowId, baseCurrency, quoteCurrency ,cm.currencyName AS currencyName, buyRate
  60. , buyTolerancePlus,buyToleranceMinus,saleRate,saleTolerancePlus,saleToleranceMinus
  61. FROM EXCHANGE_COSTRATE_SETUP (NOLOCK) crs
  62. INNER JOIN dbo.currencyMaster (NOLOCK) cm ON cm.currencyCode=crs.quoteCurrency
  63. AND crs.agentId=@agentId
  64. RETURN
  65. END
  66. IF @flag='i'
  67. BEGIN
  68. BEGIN TRANSACTION
  69. INSERT INTO dbo.EXCHANGE_COSTRATE_SETUP
  70. (
  71. baseCurrency, quoteCurrency, buyRate, buyTolerancePlus, buyToleranceMinus,
  72. saleRate,saleTolerancePlus,saleToleranceMinus,agentId,modifiedBy,modifiedDate
  73. )
  74. SELECT cc.baseCurrency, cc.quoteCurrency, cc.buyRate, cc.buyTolerancePlus, cc.buyToleranceMinus,
  75. cc.saleRate,cc.saleTolerancePlus,cc.saleToleranceMinus,@agentId,@user,GETDATE()
  76. FROM EXCHANGE_CURRENCYRATE_SETUP cc
  77. LEFT JOIN EXCHANGE_COSTRATE_SETUP c ON cc.baseCurrency=c.baseCurrency AND c.agentId=@agentId
  78. WHERE c.baseCurrency IS NULL AND ISNULL(cc.active,'N')='Y'
  79. --/*Register Account */
  80. --IF NOT EXISTS(SELECT * FROM FastMoneyPro_Account.dbo.BillSetting (NOLOCK) WHERE company_id=@agentId)
  81. -- BEGIN
  82. -- INSERT INTO FastMoneyPro_Account.dbo.BillSetting(
  83. -- company_id ,journal_voucher ,receipt_voucher ,contra_voucher ,payment_voucher ,manual_voucher ,fcy_purchase ,fcy_sales,CommonDate
  84. -- )
  85. -- SELECT 1,1,1,1,1,1,1,1,GETDATE()
  86. -- END
  87. --SET @agentName='Cash in Hand'
  88. --/*Gl code assign*/
  89. --IF NOT EXISTS(SELECT * FROM FastMoneyPro_Account.dbo.GL_Group (NOLOCK) WHERE p_id='22' AND gl_code=22 AND gl_Name=@agentName )
  90. -- BEGIN
  91. -- Exec FastMoneyPro_Account.dbo.procFindGLTreeShape @p_id='22',@gl_name = @agentName,@bal_grp='',@accountPrifix=''
  92. -- END
  93. --/*Account no */
  94. --EXEC FastMoneyPro_Account.dbo.EXCHANGE_PROC_BRANCHCURR_ASSIGN @BRANCH_ID=@agentId,@user=@user
  95. COMMIT TRANSACTION
  96. SELECT 0 errorCode,'Rate updated successfully' MSG,null id
  97. RETURN
  98. END
  99. IF @flag='u'
  100. BEGIN
  101. IF NOT EXISTS(
  102. SELECT 'A' FROM currencyMaster C WITH(NOLOCK)
  103. WHERE C.currencyCode = @baseCurrency
  104. AND (@buyRate + ISNULL(@buyTolerancePlus,0)) BETWEEN C.rateMin AND C.rateMax
  105. AND (@buyRate - ISNULL(@buyToleranceMinus,0)) BETWEEN C.rateMin AND C.rateMax
  106. AND (@saleRate + ISNULL(@saleTolerancePlus,0)) BETWEEN C.rateMin AND C.rateMax
  107. AND (@saleRate - ISNULL(@saleToleranceMinus,0)) BETWEEN C.rateMin AND C.rateMax
  108. )
  109. BEGIN
  110. SELECT TOP 1 '1' CODE,'MIN and MAX rate must be lies between :'+CAST(C.rateMin AS VARCHAR)+' and '+CAST(C.rateMax AS VARCHAR)+' with Tolerance' MSG ,null id
  111. FROM currencyMaster C WITH(NOLOCK)
  112. WHERE C.currencyCode = @baseCurrency
  113. RETURN;
  114. END
  115. UPDATE EXCHANGE_COSTRATE_SETUP SET
  116. buyTolerancePlus = @buyTolerancePlus
  117. ,buyToleranceMinus = @buyToleranceMinus
  118. ,saleTolerancePlus = @saleTolerancePlus
  119. ,saleToleranceMinus = @saleToleranceMinus
  120. ,modifiedBy = @user
  121. ,modifiedDate = GETDATE()
  122. WHERE rowId=@id AND agentId=@agentId
  123. SELECT 0 errorCode,'Rate updated successfully' MSG,null id
  124. RETURN
  125. END
  126. END
  127. GO