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.

324 lines
21 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_approveCustomer] 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_approveCustomer]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(50) = NULL
  11. ,@fromDate VARCHAR(50) = NULL
  12. ,@toDate VARCHAR(50) = NULL
  13. ,@agentId VARCHAR(100) = NULL
  14. ,@status VARCHAR(200) = NULL
  15. ,@membershipId VARCHAR(10) = NULL
  16. ,@isDoc VARCHAR(10) = NULL
  17. ,@sortBy VARCHAR(50) = NULL
  18. ,@sortOrder VARCHAR(10) = NULL
  19. ,@mode CHAR(2) = NULL
  20. ,@zone VARCHAR(50) = NULL
  21. ,@agentGrp VARCHAR(50) = NULL
  22. ,@district VARCHAR(50) = NULL
  23. AS
  24. SET NOCOUNT ON
  25. SET XACT_ABORT ON
  26. BEGIN TRY
  27. /*
  28. EXEC proc_approveCustomer @flag='s',@user='admin',
  29. @fromDate = '2014-06-24',
  30. @toDate = '2014-06-28',
  31. @agentId =NULL,
  32. @status = NULL
  33. */
  34. DECLARE @FilterList TABLE(head VARCHAR(50), value VARCHAR(100))
  35. DECLARE
  36. @table VARCHAR(MAX) = NULL
  37. ,@url VARCHAR(max) = ''
  38. ,@gobalFilter VARCHAR(MAX) = ''
  39. ,@tempSql VARCHAR(MAX) = ''
  40. IF ISDATE(@fromDate) = 1 AND ISDATE(@toDate) = 1
  41. BEGIN
  42. INSERT INTO @FilterList
  43. SELECT 'From Date',@fromDate UNION ALL
  44. SELECT 'To Date',@toDate
  45. SET @gobalFilter=@gobalFilter+' AND main.createdDate BETWEEN ''' + @fromDate + ''' AND ''' + @toDate + ' 23:59:59'''
  46. END
  47. ELSE IF ISDATE(@fromDate) = 1
  48. BEGIN
  49. INSERT INTO @FilterList
  50. SELECT 'From Date',@fromDate
  51. SET @gobalFilter=@gobalFilter+' AND main.createdDate> ''' + @fromDate + ''''
  52. END
  53. ELSE IF ISDATE(@toDate) = 1
  54. BEGIN
  55. INSERT INTO @FilterList
  56. SELECT 'To Date',@toDate
  57. SET @gobalFilter=@gobalFilter+' AND main.createdDate< ''' + @toDate + ''''
  58. END
  59. IF @agentId IS NOT NULL
  60. BEGIN
  61. INSERT INTO @FilterList
  62. SELECT 'Sending Agent',agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@agentId
  63. SET @url=@url+'&agentId='+@agentId
  64. SET @gobalFilter=@gobalFilter+' AND am.agentId ='''+@agentId+''''
  65. END
  66. IF @status IS NOT NULL
  67. BEGIN
  68. INSERT INTO @FilterList
  69. SELECT 'Status',@status
  70. SET @url=@url+'&status='+@status
  71. SET @gobalFilter=@gobalFilter+' AND main.customerStatus ='''+@status+''''
  72. END
  73. IF @zone IS NOT NULL
  74. BEGIN
  75. INSERT INTO @FilterList
  76. SELECT 'Zone',@zone
  77. SET @url=@url+'&sZone='+@zone
  78. SET @gobalFilter=@gobalFilter+' AND am.agentState ='''+@zone+''''
  79. END
  80. IF @district IS NOT NULL
  81. BEGIN
  82. INSERT INTO @FilterList
  83. SELECT 'District',@district
  84. SET @url=@url+'&district='+@district
  85. SET @gobalFilter=@gobalFilter+' AND am.agentDistrict ='''+@district+''''
  86. END
  87. IF @agentGrp IS NOT NULL
  88. BEGIN
  89. INSERT INTO @FilterList
  90. SELECT 'Agent Group',detailTitle FROM dbo.staticDataValue WITH(NOLOCK) WHERE valueId=@agentGrp
  91. SET @url=@url+'&agentGrp='+@agentGrp
  92. SET @gobalFilter=@gobalFilter+' AND am.agentGrp ='''+@agentGrp+''''
  93. END
  94. IF @memberShipId IS NOT NULL
  95. BEGIN
  96. INSERT INTO @FilterList
  97. SELECT 'Membership Id',@memberShipId
  98. SET @url=@url+'&memberShipId='+@memberShipId
  99. SET @gobalFilter=@gobalFilter+' AND cast(main.memberShipId as varchar) ='''+@memberShipId+''''
  100. END
  101. IF @isDoc IS NOT NULL
  102. BEGIN
  103. INSERT INTO @FilterList
  104. SELECT 'Document Uploaded',@isDoc
  105. SET @url=@url+'&isDoc='+@isDoc
  106. IF @isDoc='Yes'
  107. BEGIN
  108. SET @gobalFilter=@gobalFilter+' AND cd.customerId is not null and cd.cdId is not null'
  109. END
  110. IF @isDoc='NO'
  111. BEGIN
  112. SET @gobalFilter=@gobalFilter+' AND cd.customerId is null and cd.cdId is null'
  113. END
  114. END
  115. IF @flag='s'
  116. BEGIN
  117. SET @gobalFilter=@gobalFilter
  118. SET @table='
  119. SELECT
  120. customerId = main.customerId
  121. ,[Mem. Id] = main.membershipId
  122. ,[Name] = ISNULL(main.firstName, '''') + ISNULL( '' '' + main.middleName, '''')+ ISNULL( '' '' + main.lastName, '''')
  123. ,[Mobile] = main.mobile
  124. ,[Agent Name] = am.agentName
  125. ,[Created Date] = main.createdDate
  126. ,[Is Uploaded] = case when cd.customerId is null then ''No'' else ''Yes'' end
  127. ,[Status] = customerStatus
  128. ,[Subject] = ci.subject
  129. ,[HO-Complain] = ci.description
  130. ,[Agent Group]=CASE WHEN am.agentGrp=''4301'' THEN ''Bank & Finance''
  131. WHEN am.agentGrp=''6207'' THEN ''Private Agents''
  132. WHEN am.agentGrp=''8026'' THEN ''Cooperative''
  133. WHEN am.agentGrp=''8027'' THEN ''School & College''
  134. WHEN am.agentGrp=''4300'' THEN ''IME Center''
  135. WHEN am.agentGrp=''8028'' THEN ''International Agents''
  136. ELSE ''ALL''
  137. END
  138. ,[Zone]= am.agentState
  139. ,[District]= am.agentDistrict
  140. FROM customerMaster main WITH(NOLOCK)
  141. LEFT JOIN (
  142. SELECT customerId, MAX(cdId) cdId FROM customerDocument WITH(NOLOCK) GROUP BY customerId
  143. ) cd on main.customerId = cd.customerId
  144. LEFT JOIN agentMaster am with(nolock) on am.agentId = main.agentId
  145. LEFT JOIN customerInfo ci WITH(NOLOCK) ON main.customerId = ci.customerId and ci.setPrimary = ''Y''
  146. WHERE rejectedDate IS NULL AND (main.isDeleted = ''N'' OR main.isDeleted IS NULL) ' + @gobalFilter
  147. SET @tempSql='select customerId, [S.N.]=row_number() over(order by [Mem. Id]),[Mem. Id],[Name],[Mobile],[Agent Name],[Created Date],[Is Uploaded],[Status],[Subject],[HO-Complain],[Agent Group],[Zone],[District] FROM ('+@table+')X'
  148. PRINT @tempSql
  149. EXEC(@tempSql)
  150. --RETURN
  151. END
  152. IF @flag = 'ss'
  153. BEGIN
  154. SELECT x.customerId
  155. ,[S.N.] = row_number() over(order by x.customerId)
  156. ,[Mem. Id]
  157. ,[Name]
  158. ,[Mobile]
  159. ,[Agent Name]
  160. ,[Created Date]
  161. ,[Is Uploaded]
  162. ,[Status]
  163. ,[Subject]
  164. ,[HO-Complain]
  165. ,[Agent Group]
  166. ,[Zone]
  167. ,[District]
  168. FROM
  169. (
  170. SELECT distinct
  171. customerId = main.customerId
  172. ,[Mem. Id] = main.membershipId
  173. ,[Name] = ISNULL(main.firstName, '') + ISNULL( ' ' + main.middleName, '')+ ISNULL( ' ' + main.lastName, '')
  174. ,[Mobile] = main.mobile
  175. ,[Agent Name] = am.agentName
  176. ,[Created Date] = main.createdDate
  177. ,[Is Uploaded] = case when cd.customerId is null then 'No' else 'Yes' end
  178. ,[Status] = customerStatus
  179. ,[Subject] = ci.subject
  180. ,[HO-Complain] = ci.description
  181. ,[Agent Group]=CASE WHEN am.agentGrp='4301' THEN 'Bank & Finance'
  182. WHEN am.agentGrp='6207' THEN 'Private Agents'
  183. WHEN am.agentGrp='8026' THEN 'Cooperative'
  184. WHEN am.agentGrp='8027' THEN 'School & College'
  185. WHEN am.agentGrp='4300' THEN 'IME Center'
  186. WHEN am.agentGrp='8028' THEN 'International Agents'
  187. ELSE 'ALL'
  188. END
  189. ,[Zone]= main.pZone
  190. ,[District]= main.pDistrict
  191. FROM customerMaster main WITH(NOLOCK)
  192. LEFT JOIN customerDocument cd with(nolock) on main.customerId = cd.customerId
  193. LEFT JOIN agentMaster am with(nolock) on am.agentId = main.agentId
  194. LEFT JOIN customerInfo ci WITH(NOLOCK) ON main.customerId = ci.customerId and ci.setPrimary = 'Y'
  195. WHERE rejectedDate IS NULL
  196. AND main.agentId = ISNULL(@agentId,main.agentId)
  197. AND main.customerStatus = ISNULL(@status,main.customerStatus)
  198. AND main.membershipId = ISNULL(@membershipId,main.membershipId)
  199. AND ISNULL(main.isDeleted,'N') = 'N'
  200. )X WHERE [Is Uploaded] = ISNULL(@isDoc,[Is Uploaded])
  201. END
  202. IF @flag = 's-dash'
  203. BEGIN
  204. SELECT x.customerId
  205. ,[S.N.] = row_number() over(order by x.customerId)
  206. ,[Mem. Id]
  207. ,[Name]
  208. ,[Mobile]
  209. ,[Agent Name]
  210. ,[Created Date]
  211. ,[Is Uploaded]
  212. ,[Status]
  213. ,[Subject]
  214. ,[HO-Complain]
  215. FROM
  216. (
  217. SELECT distinct
  218. customerId = main.customerId
  219. ,[Mem. Id] = main.membershipId
  220. ,[Name] = ISNULL(main.firstName, '') + ISNULL( ' ' + main.middleName, '')+ ISNULL( ' ' + main.lastName, '')
  221. ,[Mobile] = main.mobile
  222. ,[Agent Name] = am.agentName
  223. ,[Created Date] = main.createdDate
  224. ,[Is Uploaded] = case when cd.customerId is null then 'No' else 'Yes' end
  225. ,[Status] = customerStatus
  226. ,[Subject] = ci.subject
  227. ,[HO-Complain] = ci.description
  228. FROM customerMaster main WITH(NOLOCK)
  229. LEFT JOIN customerDocument cd with(nolock) on main.customerId = cd.customerId
  230. INNER JOIN agentMaster am with(nolock) on am.agentId = main.agentId
  231. LEFT JOIN customerInfo ci WITH(NOLOCK) ON main.customerId = ci.customerId and ci.setPrimary = 'Y'
  232. WHERE rejectedDate IS NULL
  233. AND am.agentState = ISNULL(@zone,am.agentState)
  234. AND main.customerStatus = ISNULL(@status,main.customerStatus)
  235. AND ISNULL(main.isDeleted,'N') = 'N'
  236. )X WHERE 1=1
  237. END
  238. IF @flag = 's_summary'
  239. BEGIN
  240. SELECT [Zone] = x.agentState,
  241. [Pending] = SUM(x.Pending),
  242. [Complain] = SUM(x.Complain),
  243. [Updated] = SUM(x.Updated)
  244. FROM
  245. (
  246. SELECT am.agentState
  247. ,CASE WHEN cm.customerStatus='Pending' THEN COUNT('a') ELSE 0 END 'Pending'
  248. ,CASE WHEN cm.customerStatus='Complain' THEN COUNT('a')ELSE 0 END 'Complain'
  249. ,CASE WHEN cm.customerStatus='Updated' THEN COUNT('a')ELSE 0 END 'Updated'
  250. FROM dbo.customerMaster cm WITH(NOLOCK)
  251. INNER JOIN dbo.agentMaster am WITH(NOLOCK) ON cm.agentId = am.agentId
  252. WHERE cm.rejectedDate IS NULL
  253. AND ISNULL(cm.isDeleted,'N') = 'N'
  254. GROUP BY am.agentState,cm.customerStatus
  255. )x GROUP BY x.agentState
  256. END
  257. IF @flag = 's_detail'
  258. BEGIN
  259. IF @mode = '1'
  260. SET @status = 'Pending'
  261. IF @mode = '2'
  262. SET @status = 'Updated'
  263. IF @mode = '3'
  264. SET @status = 'Complain'
  265. SELECT x.customerId
  266. ,[S.N.] = row_number() over(order by x.customerId)
  267. ,[Mem. Id]
  268. ,[Name]
  269. ,[Mobile]
  270. ,[Agent Name]
  271. ,[Created Date]
  272. ,[Is Uploaded]
  273. ,[Status]
  274. ,[Subject]
  275. ,[HO-Complain]
  276. FROM
  277. (
  278. SELECT distinct
  279. customerId = main.customerId
  280. ,[Mem. Id] = main.membershipId
  281. ,[Name] = ISNULL(main.firstName, '') + ISNULL( ' ' + main.middleName, '')+ ISNULL( ' ' + main.lastName, '')
  282. ,[Mobile] = main.mobile
  283. ,[Agent Name] = am.agentName
  284. ,[Created Date] = main.createdDate
  285. ,[Is Uploaded] = case when cd.customerId is null then 'No' else 'Yes' end
  286. ,[Status] = customerStatus
  287. ,[Subject] = ci.subject
  288. ,[HO-Complain] = ci.description
  289. FROM customerMaster main WITH(NOLOCK)
  290. LEFT JOIN customerDocument cd with(nolock) on main.customerId = cd.customerId
  291. LEFT JOIN agentMaster am with(nolock) on am.agentId = main.agentId
  292. LEFT JOIN customerInfo ci WITH(NOLOCK) ON main.customerId = ci.customerId and ci.setPrimary = 'Y'
  293. WHERE rejectedDate IS NULL
  294. AND main.customerStatus = @status
  295. AND ISNULL(main.isDeleted,'N') = 'N'
  296. )X WHERE [Is Uploaded] = ISNULL(@isDoc,[Is Uploaded])
  297. END
  298. END TRY
  299. BEGIN CATCH
  300. IF @@TRANCOUNT > 0
  301. ROLLBACK TRANSACTION
  302. DECLARE @errorMessage VARCHAR(MAX)
  303. SET @errorMessage = ERROR_MESSAGE()
  304. EXEC proc_errorHandler 1, @errorMessage, @agentId
  305. END CATCH
  306. GO