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.

153 lines
10 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_agentToAgentCardTransfer] 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_agentToAgentCardTransfer]
  9. (
  10. @flag VARCHAR(20) = NULL
  11. ,@user VARCHAR(30) = NULL
  12. ,@rowId INT = NULL
  13. ,@agentFrmName VARCHAR(255) = NULL
  14. ,@agentToName VARCHAR(255) = NULL
  15. ,@remitCardNo VARCHAR(30) = NULL
  16. ,@cardType VARCHAR(30) = NULL
  17. ,@cardStatus VARCHAR(30) = NULL
  18. ,@fromCardNo BIGINT = NULL
  19. ,@toCardNo BIGINT = NULL
  20. ,@modifiedDate VARCHAR(30) = NULL
  21. ,@modifiedBy VARCHAR(30) = NULL
  22. ,@createdDate VARCHAR(30) = NULL
  23. ,@createdBy VARCHAR(30) = NULL
  24. )
  25. AS
  26. SET NOCOUNT ON
  27. SET XACT_ABORT ON
  28. BEGIN
  29. BEGIN TRY
  30. IF @flag='agentTransfer'
  31. BEGIN
  32. IF EXISTS (select 'X' from imeremitcardmaster where (len(@remitCardNo)<>16 and @cardType='r'))
  33. BEGIN
  34. SELECT '1' errorCode,'Invalid length of remit card serial number.' AS mes,null id
  35. RETURN;
  36. END
  37. IF EXISTS (select 'X' from imeremitcardmaster where (len(@remitCardNo)<>16 and @cardType='p'))
  38. BEGIN
  39. SELECT '1' errorCode,'Invalid length of remit card pin number.' AS mes ,null id
  40. RETURN;
  41. END
  42. IF EXISTS (select 'X' from imeremitcardmaster where (len(@remitCardNo)<>8 and @cardType='c'))
  43. BEGIN
  44. SELECT '1' errorCode,'Invalid length of customer card serial number.' AS mes ,null id
  45. RETURN;
  46. END
  47. IF EXISTS(SELECT 'X' from imeremitcardmaster where remitcardNo = @remitCardNo and cardStatus='Enrolled' and ISNULL(isDeleted,'N') <> 'Y')
  48. BEGIN
  49. SELECT '1' errorCode,'Card is already enrolled.' AS mes ,null id
  50. RETURN;
  51. END
  52. IF NOT EXISTS(SELECT 'X' from imeremitcardmaster where remitcardNo = @remitCardNo and cardStatus='Transfered' and ISNULL(agentId,'1001') = @agentFrmName and ISNULL(isDeleted,'N') <> 'Y')
  53. BEGIN
  54. SELECT '1' errorCode,'Cards is not in stock with provided agent.' AS mes ,null id
  55. RETURN;
  56. END
  57. BEGIN TRANSACTION
  58. UPDATE imeremitcardmaster
  59. SET agentId = @agentToName
  60. ,cardStatus ='Transfered'
  61. ,transferedBy =@user
  62. ,transferedDate =GETDATE()
  63. where remitcardNo = @remitCardNo
  64. SELECT '0' errorCode,'Successfully transfered.' AS mes ,null id
  65. RETURN;
  66. COMMIT TRANSACTION
  67. END
  68. IF @flag ='loopTransfer'
  69. BEGIN
  70. IF EXISTS (select 'X' from imeremitcardmaster where (len(@fromCardNo)<>8 and @cardType='c') or (len(@toCardNo)<>8 and @cardType='c'))
  71. BEGIN
  72. SELECT '1' errorCode,'Invalid length of customer card serial number.' AS mes ,null id
  73. RETURN;
  74. END
  75. IF EXISTS(SELECT 'X' from imeremitcardmaster where remitcardNo between @fromCardNo and @toCardNo and cardStatus='Enrolled' AND ISNULL(agentId,'1001') = @agentFrmName AND ISNULL(isDeleted,'N') <> 'Y')
  76. BEGIN
  77. SELECT '1' errorCode,'Some of the cards are already Enrolled.' AS mes ,null id
  78. RETURN;
  79. END
  80. IF EXISTS(SELECT 'X' from imeremitcardmaster where remitcardNo between @fromCardNo and @toCardNo and (cardStatus='Transfered' OR cardStatus='HO') AND ISNULL(agentId,'1001') = @agentFrmName and ISNULL(isDeleted,'N') <> 'Y' having count('x') <> (@toCardNo - @fromCardNo)+ 1)
  81. BEGIN
  82. SELECT '1' errorCode,'Provided cards are not in stock with assigned agent.' AS mes ,null id
  83. RETURN;
  84. END
  85. IF EXISTS(SELECT 'X' FROM imeremitcardmaster WITH(NOLOCK) WHERE remitCardNo between @fromCardNo and @toCardNo AND ISNULL(isDeleted,'N') <> 'Y' having count('x') <> (@toCardNo - @fromCardNo)+ 1 )
  86. BEGIN
  87. SELECT 1 errorCode,'Some of card number doesnot exists in stock. \n Please update your stock. ' mes ,null id
  88. RETURN
  89. END
  90. IF NOT EXISTS (select 'X' from imeremitcardmaster where remitCardNo = @toCardNo and @cardType='c')
  91. BEGIN
  92. SELECT '1' errorCode,'Card stock exceeds for transfer.' AS mes ,null id
  93. RETURN;
  94. END
  95. BEGIN TRANSACTION
  96. BEGIN
  97. UPDATE
  98. icm
  99. SET
  100. agentId=@agentToName
  101. ,modifiedBy=@user
  102. ,cardStatus ='Transfered'
  103. ,transferedBy =@user
  104. ,transferedDate =GETDATE()
  105. ,modifiedDate=GETDATE()
  106. FROM imeremitcardmaster icm
  107. INNER JOIN
  108. imeremitcardmaster im
  109. ON icm.remitCardNo = im.remitCardNo WHERE icm.remitCardNo between @fromCardNo and @toCardNo
  110. END
  111. COMMIT TRANSACTION
  112. SELECT '0' errorCode,'Successfully Assigned.' AS mes ,null id
  113. END
  114. IF @flag = 'getStockAmount'
  115. BEGIN
  116. SELECT COUNT(remitcardno) FROM imeremitcardmaster WITH(NOLOCK)
  117. WHERE ISNULL(agentId,'1001') = @agentFrmName
  118. AND (cardStatus ='Transfered' or cardStatus ='HO') and cardtype = @cardType
  119. END
  120. END TRY
  121. BEGIN CATCH
  122. SELECT 1 , ERROR_MESSAGE()+ERROR_LINE() mes , null id
  123. RETURN
  124. END CATCH
  125. END
  126. GO