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.

284 lines
14 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_agentBlock] 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_agentBlock](
  9. @flag VARCHAR(30) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@id VARCHAR(30) = NULL
  12. ,@agentId VARCHAR(30) = NULL
  13. ,@agentStatus VARCHAR(30) = NULL
  14. ,@remarks VARCHAR(255)= NULL
  15. ,@sortBy VARCHAR(50) = NULL
  16. ,@sortOrder VARCHAR(5) = NULL
  17. ,@pageSize INT = NULL
  18. ,@pageNumber INT = NULL
  19. ,@modType VARCHAR(30) = NULL
  20. ,@fromDate VARCHAR(30) = NULL
  21. ,@toDate VARCHAR(30) = NULL
  22. )AS
  23. BEGIN
  24. DECLARE
  25. @selectFieldList VARCHAR(MAX)
  26. ,@extraFieldList VARCHAR(MAX)
  27. ,@table VARCHAR(MAX)
  28. ,@sqlFilter VARCHAR(MAX)
  29. IF @flag='a'
  30. BEGIN
  31. SELECT
  32. id
  33. ,agentId
  34. ,agentStatus
  35. ,remarks
  36. FROM agentBlock WHERE id=@id
  37. RETURN
  38. END
  39. IF @flag = 's'
  40. BEGIN
  41. IF @sortBy IS NULL
  42. SET @sortBy = 'agentId'
  43. SET @table = '(
  44. SELECT
  45. id = ag.id
  46. ,agentId = am.agentName
  47. ,agentStatus= ag.agentStatus
  48. ,remarks = ag.remarks
  49. ,createdBy = ag.createdBy
  50. ,createdDate= ag.createdDate
  51. ,approvedDate= ag.approvedDate
  52. ,approvedBy = ag.approvedBy
  53. ,modifiedBy = ISNULL(x.createdBy, ag.createdBy)
  54. ,modifiedDate = ISNULL(x.createdDate, ag.createdDate)
  55. ,hasChanged = CASE WHEN (x.id IS NOT NULL) OR (ag.approvedBy IS NULL) THEN ''Y'' ELSE ''N'' END
  56. FROM agentBlock ag WITH(NOLOCK)
  57. LEFT JOIN (
  58. SELECT
  59. id
  60. ,createdBy = MAX(createdBy)
  61. ,createdDate = MAX(createdDate)
  62. FROM agentBlockMod agm WITH(NOLOCK)
  63. GROUP BY id
  64. ) x ON ag.id = x.id
  65. LEFT JOIN agentMaster am with(nolock) on am.agentId=ag.agentId
  66. where ag.agentStatus=''Block'' OR ag.agentStatus=''Inactive''
  67. ) x'
  68. SET @sqlFilter = ''
  69. IF @fromDate IS NOT NULL AND @toDate IS NOT NULL
  70. SET @sqlFilter=@sqlFilter+ 'AND approvedDate between '''+@fromDate +'''and '''+@toDate+' 23:59:59'''
  71. IF @agentStatus IS NOT NULL
  72. SET @sqlFilter=@sqlFilter+' AND agentStatus='''+@agentStatus+''''
  73. IF @agentId IS NOT NULL
  74. SET @sqlFilter=@sqlFilter+' AND agentId like ''%'+@agentId+'%'''
  75. SET @selectFieldList = '
  76. id
  77. ,agentId
  78. ,agentStatus
  79. ,remarks
  80. ,createdBy
  81. ,createdDate
  82. ,modifiedBy
  83. ,modifiedDate
  84. ,approvedDate
  85. ,approvedBy
  86. ,hasChanged
  87. '
  88. EXEC dbo.proc_paging
  89. @table
  90. ,@sqlFilter
  91. ,@selectFieldList
  92. ,@extraFieldList
  93. ,@sortBy
  94. ,@sortOrder
  95. ,@pageSize
  96. ,@pageNumber
  97. END
  98. IF @flag='i'
  99. BEGIN
  100. IF EXISTS(SELECT 'X' FROM agentBlock WITH(NOLOCK) WHERE agentId = @agentId AND approvedDate IS NULL)
  101. BEGIN
  102. EXEC proc_errorHandler 1, 'Request already in pending.', NULL
  103. RETURN
  104. END
  105. INSERT INTO agentBlock
  106. (
  107. agentId
  108. ,agentStatus
  109. ,remarks
  110. ,createdDate
  111. ,createdBy
  112. )
  113. SELECT
  114. @agentId
  115. ,@agentStatus
  116. ,@remarks
  117. ,GETDATE()
  118. ,@user
  119. EXEC proc_errorHandler 0, 'Record has been requested successfully.', NULL
  120. RETURN
  121. END
  122. IF @flag = 'u'
  123. BEGIN
  124. IF EXISTS (SELECT 'X' FROM agentBlock WITH(NOLOCK) WHERE id = @id AND approvedBy IS NULL AND createdBy <> @user)
  125. BEGIN
  126. EXEC proc_errorHandler 1, 'You can not modify this record. Previous Modification has not been approved yet.', NULL
  127. RETURN
  128. END
  129. IF EXISTS (SELECT 'X' FROM agentBlockMod WITH(NOLOCK) WHERE id = @id AND createdBy <> @user)
  130. BEGIN
  131. EXEC proc_errorHandler 1, 'You can not modify this record. Previous Modification has not been approved yet.', NULL
  132. RETURN
  133. END
  134. BEGIN TRANSACTION
  135. IF EXISTS (SELECT 'X' FROM agentBlock WITH(NOLOCK) WHERE id = @id AND approvedBy IS NULL AND createdBy = @user)
  136. BEGIN
  137. UPDATE agentBlock SET
  138. agentId =@agentId
  139. ,agentStatus =@agentStatus
  140. ,remarks =@remarks
  141. ,modifiedDate =GETDATE()
  142. ,modifiedBy =@user
  143. END
  144. ELSE
  145. BEGIN
  146. DELETE FROM agentBlockMod WHERE id = @id
  147. INSERT INTO agentBlockMod (
  148. id
  149. ,agentId
  150. ,agentStatus
  151. ,remarks
  152. ,createdDate
  153. ,createdBy
  154. ,modType
  155. )
  156. SELECT
  157. @id
  158. ,@agentId
  159. ,@agentStatus
  160. ,@remarks
  161. ,GETDATE()
  162. ,@user
  163. ,'U'
  164. END
  165. COMMIT TRANSACTION
  166. EXEC proc_errorHandler 0, 'Record updated successfully', @agentId
  167. END
  168. IF @flag = 'approve'
  169. BEGIN
  170. DECLARE @updateAbleCol VARCHAR(30)=NULL
  171. IF EXISTS (SELECT 'X' FROM agentBlock WITH(NOLOCK) WHERE approvedBy IS NULL AND id = @id)
  172. BEGIN
  173. SET @modType = 'I'
  174. SELECT @agentId=agentId FROM agentBlock WITH(NOLOCK) WHERE id = @id
  175. IF EXISTS(SELECT 'x' FROM agentBlock WITH(NOLOCK) WHERE id=@id AND agentStatus='Inactive')
  176. BEGIN
  177. SET @updateAbleCol='isActive'
  178. END
  179. ELSE
  180. BEGIN
  181. SET @updateAbleCol='agentBlock'
  182. END
  183. END
  184. ELSE
  185. BEGIN
  186. SELECT @modType = modType FROM agentBlockMod WITH(NOLOCK) WHERE id = @id
  187. SELECT @agentId=agentId FROM agentBlockMod WITH(NOLOCK) WHERE id = @id
  188. IF EXISTS(SELECT 'x' FROM agentBlockMod WITH(NOLOCK) WHERE id=@id AND agentStatus='Inactive')
  189. BEGIN
  190. SET @updateAbleCol='isActive'
  191. END
  192. ELSE
  193. BEGIN
  194. SET @updateAbleCol='agentBlock'
  195. END
  196. END
  197. IF @modType = 'I'
  198. BEGIN --New record
  199. BEGIN TRAN
  200. UPDATE agentBlock SET
  201. approvedBy = @user
  202. ,approvedDate= GETDATE()
  203. WHERE id = @id
  204. IF(@updateAbleCol='isActive')
  205. BEGIN
  206. UPDATE agentMaster
  207. SET isActive='N',
  208. modifiedBy = @user,
  209. modifiedDate = GETDATE()
  210. WHERE agentId=@agentId
  211. END
  212. ELSE IF(@updateAbleCol='agentBlock')
  213. BEGIN
  214. UPDATE agentMaster SET
  215. agentBlock='B',
  216. isActive = 'N',
  217. modifiedBy = @user,
  218. modifiedDate = GETDATE()
  219. WHERE agentId=@agentId
  220. END
  221. COMMIT TRAN
  222. END
  223. ELSE IF @modType = 'U'
  224. BEGIN
  225. BEGIN TRAN
  226. UPDATE main SET
  227. main.agentId =mode.agentId
  228. ,main.agentStatus =mode.agentStatus
  229. ,main.remarks =mode.remarks
  230. ,main.modifiedDate =GETDATE()
  231. ,main.modifiedBy = @user
  232. FROM agentBlock main
  233. INNER JOIN agentBlockMod mode ON mode.id= main.id
  234. WHERE mode.id = @id
  235. IF(@updateAbleCol='isActive')
  236. BEGIN
  237. UPDATE agentMaster
  238. SET isActive='N',
  239. modifiedBy = @user,
  240. modifiedDate = GETDATE()
  241. WHERE agentId=@agentId
  242. END
  243. ELSE IF(@updateAbleCol='agentBlock')
  244. BEGIN
  245. UPDATE agentMaster
  246. SET agentBlock='B',
  247. isActive = 'N',
  248. modifiedBy = @user,
  249. modifiedDate = GETDATE()
  250. WHERE agentId=@agentId
  251. END
  252. COMMIT TRAN
  253. END
  254. DELETE FROM agentBlockMod WHERE id = @id
  255. EXEC proc_errorHandler 0, 'Modification approved successfully', @agentId
  256. END
  257. IF @flag='ddlstatus'
  258. BEGIN
  259. SELECT '' value, 'Select' text
  260. UNION ALL SELECT 'Block' value, 'Blocked' text
  261. UNION ALL SELECT 'Inactive' value, 'Inactive' text
  262. END
  263. END
  264. GO