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.

221 lines
14 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_topupQueue] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[proc_topupQueue]
  9. @flag VARCHAR(20)
  10. ,@user VARCHAR(50) = NULL
  11. ,@tranId VARCHAR(100) = NULL
  12. ,@tranType CHAR(1) = NULL
  13. ,@mode CHAR(1) = NULL
  14. ,@topupMobileNo VARCHAR(20) = NULL
  15. ,@userName VARCHAR(50) = NULL
  16. ,@password VARCHAR(50) = NULL
  17. ,@code VARCHAR(100) = NULL
  18. ,@refNo VARCHAR(50) = NULL
  19. ,@msg VARCHAR(MAX) = NULL
  20. ,@processId VARCHAR(100) = NULL
  21. AS
  22. SET NOCOUNT ON;
  23. BEGIN TRY
  24. IF @flag = 's'
  25. BEGIN
  26. IF (@userName = 'R3m17U53r' AND @password = '70pUp@R3m17U53r')
  27. BEGIN
  28. SELECT TOP 50
  29. errorCode = 0,
  30. rowId,
  31. mobileNo,
  32. TopupAmt,
  33. topupId,
  34. msg = 'Success'
  35. FROM FastMoneyPro_remit.dbo.topupQueue WITH(NOLOCK)
  36. WHERE (tranStatus IS NULL OR tranStatus ='Suspicious') AND LEFT(mobileNo,3) <> '985'
  37. AND msg IS NULL
  38. ORDER BY createdDate
  39. RETURN;
  40. END
  41. SELECT
  42. errorCode = 1,
  43. rowId = null,
  44. mobileNo = NULL,
  45. TopupAmt = NULL,
  46. topupId = NULL,
  47. msg = 'Authentication failed.'
  48. END
  49. IF @flag = 'lu'
  50. BEGIN
  51. IF (@userName = 'R3m17U53r' AND @password = '70pUp@R3m17U53r')
  52. BEGIN
  53. UPDATE dbo.topupQueue SET
  54. tranStatus = CASE when @code = 0 THEN 'Success'
  55. WHEN @code = 12 THEN 'Suspicious'
  56. WHEN @code = 1 THEN null
  57. WHEN @code = 2 THEN 'Invalid'
  58. WHEN @processId IS NOT NULL AND @code = 1 THEN 'FAIL'
  59. ELSE 'Success' END,
  60. msg = @msg,
  61. topupId = case when topupId is null then @processId else topupId END,
  62. processDate = GETDATE()
  63. WHERE rowId = @refNo
  64. EXEC proc_errorHandler 0, 'Record has been updated successfully.', NULL
  65. RETURN;
  66. END
  67. EXEC proc_errorHandler 1, 'Authentication failed.', NULL
  68. RETURN;
  69. END
  70. IF @flag ='a'
  71. BEGIN
  72. DECLARE
  73. @membershipId VARCHAR(50),
  74. @mobileNo VARCHAR(50),
  75. @serviceCharge MONEY,
  76. @topupAmt MONEY,
  77. @txnDate DATETIME
  78. DECLARE
  79. @date VARCHAR(20) = CONVERT(VARCHAR, GETDATE(),101),
  80. @monthStartDate VARCHAR(20),
  81. @monthEndDate VARCHAR(20),
  82. @fiscalYear VARCHAR(10),
  83. @monthNumber CHAR(2),
  84. @txnCount INT,
  85. @lastName VARCHAR(200),
  86. @salutation VARCHAR(20)
  87. SELECT @fiscalYear = dbo.FNAReturnCurrentFiscalYear(@date)
  88. SELECT @monthNumber = dbo.GetNepaliMonth(@date)
  89. SELECT @monthStartDate= dbo.GetMonthStartDateEng(@fiscalYear,@monthNumber)
  90. SELECT @monthEndDate= dbo.GetMonthEndDateEng(@fiscalYear,@monthNumber)
  91. IF @tranType = 'D'
  92. BEGIN
  93. SELECT
  94. @membershipId = ISNULL(sen.membershipId,''),
  95. @mobileNo = sen.mobile,
  96. @serviceCharge = rt.serviceCharge,
  97. @tranType = rt.tranType,
  98. @txnDate = rt.approvedDate,
  99. @salutation = CASE WHEN cm.gender = '1801' THEN 'Mr.'
  100. WHEN cm.gender = '1802' AND maritalStatus = 'Married' THEN 'Mrs.'
  101. WHEN cm.gender = '1802' AND maritalStatus = 'Unmarried' THEN 'Ms.'
  102. ELSE 'Mr/Ms.'
  103. END,
  104. @lastName = UPPER(ISNULL(cm.lastName,cm.firstName)),
  105. @topupMobileNo = sen.workPhone
  106. FROM remitTran rt WITH(NOLOCK)
  107. INNER JOIN dbo.tranSenders sen WITH(NOLOCK) ON rt.id = sen.tranId
  108. INNER JOIN dbo.customerMaster cm WITH(NOLOCK) ON cm.membershipId = sen.membershipId
  109. WHERE rt.id = @tranId AND sen.membershipId IS NOT NULL
  110. IF @txnDate > '2016-07-15' OR @txnDate <'2016-06-15'
  111. RETURN;
  112. SELECT @txnCount = COUNT('x') FROM topupQueue tq WITH(NOLOCK)
  113. WHERE createdDate BETWEEN @monthStartDate AND @monthEndDate+' 23:59:59'
  114. AND membershipId = @membershipId AND tranType = 'D'
  115. IF @txnCount >= 1
  116. RETURN;
  117. IF @topupMobileNo IS NOT NULL AND LEFT(@mobileNo,3) = '985'
  118. BEGIN
  119. SET @mobileNo = @topupMobileNo
  120. UPDATE customerMaster SET topupMobileNo = @mobileNo WHERE membershipId = @membershipId
  121. END
  122. IF LEN(@mobileNo) <> 10
  123. RETURN;
  124. IF @membershipId = ''
  125. RETURN;
  126. --SELECT @topupAmt =
  127. --CASE
  128. --WHEN @serviceCharge BETWEEN 100 AND 200 THEN 10
  129. --WHEN @serviceCharge BETWEEN 201 AND 400 THEN 20
  130. --WHEN @serviceCharge > 400 THEN 30
  131. --ELSE 0
  132. --END
  133. SET @topupAmt = 10
  134. IF @topupAmt <> 0 AND @membershipId IS NOT NULL AND @mobileNo IS NOT NULL
  135. BEGIN
  136. --IF @mode='s'
  137. --BEGIN
  138. SELECT
  139. @txnCount = COUNT('x') FROM SMSQueue tq WITH(NOLOCK)
  140. WHERE createdDate BETWEEN @monthStartDate AND @monthEndDate+' 23:59:59'
  141. AND membershipId = @membershipId AND tranType = 'D'
  142. IF @txnCount >= 1 OR LEFT(@mobileNo,3) = '985'
  143. RETURN;
  144. SET @msg='Dear '+ISNULL(@salutation,'')+' '+ISNULL(@lastName, 'Customer')+',Thank you for choosing IME. You will receive FREE MOBILE RECHARGE of Rs.'+CAST(@topupAmt AS VARCHAR)+'.'
  145. INSERT INTO SMSQueue(mobileNo,msg,createdDate,createdBy,country,tranId,txnDate,tranType,membershipId)
  146. SELECT @mobileNo,@msg,GETDATE(),@user,'Nepal',@tranId,@txnDate,'D',@membershipId
  147. RETURN;
  148. --END
  149. INSERT INTO topupQueue(tranId,mobileNo,topupAmt,createdDate,tranType,membershipId,txnDate)
  150. SELECT @tranId,@mobileNo,@topupAmt,GETDATE(),'D',@membershipId,@txnDate
  151. END
  152. END
  153. IF @tranType <> 'D'
  154. BEGIN
  155. IF @mode='s'
  156. BEGIN
  157. RETURN;
  158. END
  159. SELECT
  160. @membershipId = ISNULL(rec.membershipId,''),
  161. @mobileNo = rec.mobile,
  162. @txnDate = rt.paidDate,
  163. @salutation = CASE WHEN cm.gender = '1801' AND maritalStatus = 'Married' THEN 'Mr.'
  164. WHEN cm.gender = '1802' AND maritalStatus = 'Married' THEN 'Mrs.'
  165. WHEN cm.gender = '1802' AND maritalStatus = 'Unmarried' THEN 'Ms.'
  166. END,
  167. @lastName = UPPER(ISNULL(cm.lastName,cm.firstName))
  168. FROM remitTran rt WITH(NOLOCK)
  169. INNER JOIN dbo.tranReceivers rec WITH(NOLOCK) ON rt.id = rec.tranId
  170. INNER JOIN dbo.customerMaster cm WITH(NOLOCK) ON cm.membershipId = rec.membershipId
  171. WHERE rt.id = @tranId AND rec.membershipId IS NOT NULL
  172. IF @txnDate > '2016-07-15' OR @txnDate <'2016-06-15'
  173. RETURN;
  174. SELECT @txnCount = COUNT('x') FROM topupQueue tq WITH(NOLOCK)
  175. WHERE txnDate BETWEEN @monthStartDate AND @monthEndDate+' 23:59:59'
  176. AND membershipId = @membershipId AND tranType = 'I'
  177. IF @topupMobileNo IS NOT NULL AND LEFT(@mobileNo,3) = '985'
  178. SET @mobileNo = @topupMobileNo
  179. IF @txnCount >= 1
  180. RETURN;
  181. IF LEN(@mobileNo) <> 10
  182. RETURN;
  183. IF @membershipId = ''
  184. RETURN;
  185. SET @topupAmt = 10
  186. IF @membershipId IS NOT NULL AND @mobileNo IS NOT NULL
  187. BEGIN
  188. INSERT INTO topupQueue(tranId,mobileNo,topupAmt,createdDate,tranType,membershipId,txnDate)
  189. SELECT @tranId,@mobileNo,@topupAmt,GETDATE(),'I',@membershipId,@txnDate
  190. END
  191. END
  192. END
  193. END TRY
  194. BEGIN CATCH
  195. --SELECT 1234, error_LINE(), ERROR_MESSAGE()
  196. --do nothing
  197. END CATCH
  198. GO