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.

201 lines
6.6 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. SET ANSI_NULLS ON
  4. GO
  5. SET QUOTED_IDENTIFIER ON
  6. GO
  7. CREATE PROC PROC_API_ROUTE_PARTNERS
  8. (
  9. @FLAG VARCHAR(20)
  10. --grid parameters
  11. ,@user VARCHAR(50) = NULL
  12. ,@pageSize VARCHAR(50) = NULL
  13. ,@pageNumber VARCHAR(50) = NULL
  14. ,@sortBy VARCHAR(50) = NULL
  15. ,@sortOrder VARCHAR(50) = NULL
  16. ,@agentID BIGINT = NULL
  17. ,@PaymentMethod INT = NULL
  18. ,@CountryId INT = NULL
  19. ,@minAmount Money = NULL
  20. ,@maxAmount Money = NULL
  21. ,@isActive VARCHAR(10) = NULL
  22. ,@rowId INT = NULL
  23. )
  24. AS
  25. SET NOCOUNT ON;
  26. SET XACT_ABORT ON;
  27. BEGIN
  28. DECLARE @table VARCHAR(MAX)
  29. ,@select_field_list VARCHAR(MAX)
  30. ,@extra_field_list VARCHAR(MAX)
  31. ,@sql_filter VARCHAR(MAX)
  32. IF @FLAG = 'I'
  33. BEGIN
  34. IF EXISTS (SELECT 1 FROM TblPartnerwiseCountry (NOLOCK) WHERE CountryId = @CountryId AND PaymentMethod = @PaymentMethod AND AgentId = @agentID)
  35. BEGIN
  36. SELECT '0' ErrorCode , 'Record already exists, please use existing record.' Msg , NULL id
  37. RETURN
  38. END
  39. INSERT INTO TblPartnerwiseCountry (CountryId, AgentId, IsActive, CreatedBy, CreatedDate, PaymentMethod,MinTxnAmount,MaxTxnAmount)
  40. SELECT @CountryId, @agentID, @isActive, @user, GETDATE(), @PaymentMethod,@minAmount,@maxAmount
  41. SELECT '0' ErrorCode , 'Record has been added successfully.' Msg , NULL id
  42. END
  43. IF @FLAG = 'u'
  44. BEGIN
  45. INSERT INTO TblPartnerwiseCountryHistory (partnerWiseCountryRowId, CountryId, AgentId, IsActive, PaymentMethod,MinTxnAmount,MaxTxnAmount, ModifiedBy, ModifiedDate)
  46. SELECT @rowId, CountryId, AgentId, IsActive, PaymentMethod, MinTxnAmount, MaxTxnAmount, @user, GETDATE() FROM TblPartnerwiseCountry (NOLOCK) WHERE id = @rowId
  47. UPDATE TblPartnerwiseCountry SET
  48. CountryId = @CountryId,
  49. IsActive = @isActive,
  50. ModifiedBy = @user,
  51. ModifiedDate = GETDATE(),
  52. PaymentMethod = @PaymentMethod,
  53. AgentId = @agentID,
  54. MinTxnAmount = @minAmount,
  55. MaxTxnAmount = @maxAmount
  56. WHERE id = @rowId
  57. SELECT '0' ErrorCode , 'Record has been modified successfully.' Msg , NULL id
  58. END
  59. ELSE IF @FLAG = 'select'
  60. BEGIN
  61. SELECT id,CountryId,P.AgentId,PaymentMethod,A.agentName as providerName,GetRateFrom,p.CreatedBy,p.CreatedDate,p.IsActive,ROUND(CAST(MinTxnAmount AS DECIMAL),0) MinTxnAmount
  62. ,ROUND(CAST(MaxTxnAmount AS DECIMAL),0) MaxTxnAmount ,p.ModifiedBy,p.ModifiedDate
  63. FROM TblPartnerwiseCountry p(NOLOCK)
  64. INNER JOIN agentMaster A(NOLOCK) ON A.agentId =P.AgentId
  65. WHERE id = @rowId
  66. END
  67. ELSE IF @FLAG = 'S'
  68. BEGIN
  69. SET @sortBy = 'id'
  70. SET @sortOrder = 'desc'
  71. SET @table = '( SELECT TP.id
  72. ,AM.agentName
  73. ,CM.countryName
  74. ,[PAYOUT_METHOD] = ISNULL(SM.typeTitle, ''ALL'')
  75. ,[IS_ACTIVE] = CASE WHEN TP.isActive = 1 THEN ''YES'' ELSE ''NO'' END
  76. ,[ScheduleEnabled] = CASE WHEN TP.ScheduleEnabled = 1 THEN ''YES'' ELSE ''NO'' END
  77. ,TP.countryId
  78. ,TP.agentId
  79. ,TP.PaymentMethod
  80. ,TP.MinTxnAmount
  81. ,TP.MaxTxnAmount
  82. FROM TblPartnerwiseCountry TP(NOLOCK)
  83. INNER JOIN countryMaster CM(NOLOCK) ON CM.countryId = TP.CountryId
  84. INNER JOIN agentMaster AM(NOLOCK) ON AM.agentId = TP.AgentId
  85. LEFT JOIN serviceTypeMaster SM(NOLOCK) ON SM.serviceTypeId = TP.PaymentMethod '
  86. SET @sql_filter = ''
  87. SET @table = @table + ')x'
  88. IF @agentID <> 0
  89. SET @sql_filter = @sql_filter+' And agentId = '''+CAST(@agentID AS VARCHAR)+''''
  90. IF @PaymentMethod <> 0
  91. SET @sql_filter = @sql_filter+' And PaymentMethod = '''+CAST(@PaymentMethod AS VARCHAR)+''''
  92. IF @CountryId <> 0
  93. SET @sql_filter = @sql_filter+' And CountryId = '''+CAST(@CountryId AS VARCHAR)+''''
  94. SET @select_field_list = '
  95. id,agentName,countryName,PAYOUT_METHOD,IS_ACTIVE,MinTxnAmount,MaxTxnAmount,ScheduleEnabled'
  96. EXEC dbo.proc_paging @table, @sql_filter, @select_field_list, @extra_field_list
  97. , @sortBy, @sortOrder, @pageSize, @pageNumber
  98. END
  99. ELSE IF @FLAG = 'country-list'
  100. BEGIN
  101. SELECT * FROM (
  102. SELECT '' [value], 'Select Country' [text] UNION ALL
  103. SELECT CAST(CM.COUNTRYID AS VARCHAR) [value], CM.COUNTRYNAME [text] FROM COUNTRYMASTER CM(NOLOCK)
  104. INNER JOIN (
  105. SELECT DISTINCT COUNTRYID
  106. FROM TblPartnerwiseCountry (NOLOCK)
  107. )X ON X.COUNTRYID = CM.COUNTRYID
  108. ) X
  109. ORDER BY X.[value] ASC
  110. END
  111. ELSE IF @FLAG = 'payout-list'
  112. BEGIN
  113. SELECT * FROM (
  114. SELECT '' [value], 'Select Payout Method' [text] UNION ALL
  115. SELECT CAST(serviceTypeId AS VARCHAR) [value], typeTitle [text]
  116. FROM serviceTypeMaster (NOLOCK)
  117. WHERE ISNULL(isActive, 'Y') = 'Y'
  118. )X
  119. ORDER BY X.[value] ASC
  120. END
  121. ELSE IF @FLAG = 'agent-list'
  122. BEGIN
  123. SELECT * FROM (
  124. SELECT '' [value], 'Select Partner' [text] UNION ALL
  125. SELECT CAST(AM.AGENTID AS VARCHAR) [value], AM.AGENTNAME [text] FROM AGENTMASTER AM(NOLOCK)
  126. INNER JOIN (
  127. SELECT DISTINCT AGENTID
  128. FROM TblPartnerwiseCountry (NOLOCK)
  129. )X ON X.AGENTID = AM.AGENTID
  130. ) X
  131. ORDER BY X.[value] ASC
  132. END
  133. ELSE IF @FLAG = 'enable-disable'
  134. BEGIN
  135. SELECT @CountryId=CountryId,@PaymentMethod = PaymentMethod FROM TblPartnerwiseCountry (NOLOCK)WHERE id = @rowId
  136. IF @isActive <> 'YES' AND EXISTS(SELECT TOP 1 'A' FROM TblPartnerwiseCountry (NOLOCK) WHERE CountryId=@CountryId AND PaymentMethod = @PaymentMethod AND IsActive=1)
  137. BEGIN
  138. SELECT '1' ErrorCode , 'Service is already activated for this country,Please disable same service first and enable again.' Msg , @rowId id
  139. RETURN
  140. END
  141. IF @isActive = 'YES'
  142. BEGIN
  143. update TblPartnerwiseCountry set IsActive = 0 where id = @rowId
  144. SELECT '0' ErrorCode , 'Record has been disabled successfully.' Msg , @rowId id
  145. END
  146. ELSE
  147. BEGIN
  148. update TblPartnerwiseCountry set IsActive = 1 where id = @rowId
  149. SELECT '0' ErrorCode , 'Record has been enabled successfully.' Msg , @rowId id
  150. END
  151. END
  152. ELSE IF @FLAG = 'SchedulerSetup'
  153. BEGIN
  154. IF EXISTS(SELECT TOP 1 'A' FROM TblPartnerwiseCountry (NOLOCK) WHERE id = @rowId AND ScheduleEnabled = 1)
  155. BEGIN
  156. UPDATE TblPartnerwiseCountry SET ScheduleEnabled = 0 WHERE id = @rowId
  157. SELECT '0' ErrorCode , 'Scheduler is set off to push transaction.' Msg , @rowId id
  158. RETURN
  159. END
  160. ELSE
  161. BEGIN
  162. UPDATE TblPartnerwiseCountry SET ScheduleEnabled = 1 WHERE id = @rowId
  163. SELECT '0' ErrorCode , 'Scheduler started to send transaction.' Msg , @rowId id
  164. RETURN
  165. END
  166. END
  167. ELSE IF @FLAG = 'payout-method'
  168. BEGIN
  169. SELECT SM.serviceTypeId, SM.typeTitle FROM countryReceivingMode CR(NOLOCK)
  170. INNER JOIN serviceTypeMaster SM(NOLOCK) ON SM.serviceTypeId = CR.receivingMode
  171. WHERE CR.countryId = @CountryId
  172. END
  173. ELSE IF @FLAG = 'partner'
  174. BEGIN
  175. SELECT agentId, agentName FROM agentMaster (NOLOCK) WHERE parentId = 0 AND agentId NOT IN (1001, 1008, 1009)
  176. UNION ALL
  177. SELECT agentId, agentName FROM agentMaster (NOLOCK) WHERE agentId IN (1036,1056)
  178. END
  179. END