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.

932 lines
31 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_commissionGroupMapping] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_commissionGroupMapping]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_commissionGroupMapping] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. /*
  12. EXEC proc_commissionGroupMapping @flag = 's',@packageId=0
  13. */
  14. CREATE proc [dbo].[proc_commissionGroupMapping]
  15. @flag VARCHAR(50) = NULL
  16. ,@user VARCHAR(30) = NULL
  17. ,@id INT = NULL
  18. ,@packageId INT = NULL
  19. ,@ruleId INT = NULL
  20. ,@groupId INT = NULL
  21. ,@packageName VARCHAR(200) = NULL
  22. ,@ruleName VARCHAR(200) = NULL
  23. ,@ruleType VARCHAR(200) = NULL
  24. ,@groupName VARCHAR(200) = NULL
  25. ,@scMasterId INT = NULL
  26. ,@sortBy VARCHAR(50) = NULL
  27. ,@sortOrder VARCHAR(5) = NULL
  28. ,@pageSize INT = NULL
  29. ,@pageNumber INT = NULL
  30. AS
  31. SET NOCOUNT ON;
  32. SET XACT_ABORT ON;
  33. BEGIN TRY
  34. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  35. DECLARE @table AS VARCHAR(MAX),@sql_filter VARCHAR(MAX)
  36. ,@select_field_list VARCHAR(MAX)
  37. ,@extra_field_list VARCHAR(MAX)
  38. DECLARE @commissionRule TABLE(ruleId INT)
  39. DECLARE @commissionRuleNew TABLE(ruleId INT)
  40. DECLARE @found INT = 0
  41. DECLARE @ssAgent INT, @rsAgent INT,@sCountry INT, @rCountry INT,
  42. @sAgent INT, @sBranch INT, @sState INT, @sGroup INT, @rAgent INT, @rBranch INT,
  43. @rState INT, @rGroup INT, @tranType INT
  44. -- ### START COMMISSION PACKAGE ### ---
  45. IF @flag = 'i'
  46. BEGIN
  47. IF EXISTS(SELECT 'X' FROM commissionPackage WHERE packageId = @packageId AND ruleId = @ruleId AND ISNULL(isDeleted, 'N') = 'N')
  48. BEGIN
  49. EXEC proc_errorHandler 1, 'Already Added!', @user
  50. RETURN;
  51. END
  52. INSERT @commissionRule
  53. SELECT ruleId FROM commissionPackage WHERE packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N'
  54. SELECT
  55. @sAgent = sAgent
  56. ,@sBranch = sBranch
  57. ,@sState = sState
  58. ,@sGroup = sGroup
  59. ,@rAgent = rAgent
  60. ,@rBranch = rBranch
  61. ,@rState = rState
  62. ,@rGroup = rGroup
  63. ,@tranType = tranType
  64. FROM scMaster WITH(NOLOCK) WHERE scMasterId = @ruleId
  65. IF EXISTS(SELECT 'X' FROM scMaster WHERE
  66. ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  67. AND ISNULL(sBranch, 0) = ISNULL(@sBranch, 0)
  68. AND ISNULL(sState, 0) = ISNULL(@sState, 0)
  69. AND ISNULL(sGroup, 0) = ISNULL(@sGroup, 0)
  70. AND ISNULL(rAgent, 0) = ISNULL(@rAgent, 0)
  71. AND ISNULL(rBranch, 0) = ISNULL(@rBranch, 0)
  72. AND ISNULL(rState, 0) = ISNULL(@rState, 0)
  73. AND ISNULL(rGroup, 0) = ISNULL(@rGroup, 0)
  74. AND ISNULL(tranType, 0) = ISNULL(@tranType, 0)
  75. AND ISNULL(isDeleted, 'N') = 'N'
  76. AND scMasterId IN (SELECT ruleId FROM @commissionRule))
  77. BEGIN
  78. EXEC proc_errorHandler 1, 'Commission Rule with this criteria has already been added', NULL
  79. RETURN
  80. END
  81. INSERT INTO commissionPackage(
  82. packageId
  83. ,ruleId
  84. ,isActive
  85. ,createdBy
  86. ,createdDate
  87. )
  88. SELECT
  89. @packageId
  90. ,@ruleId
  91. ,'Y'
  92. ,@user
  93. ,GETDATE()
  94. EXEC proc_errorHandler 0, 'Successfully Added!', @user
  95. END
  96. IF @flag='packList'
  97. BEGIN
  98. select distinct packageId,case when ruleType='ds' then rtrim(ltrim(dbo.FNAGetDataValue(packageId)))+' -Domestic'
  99. else rtrim(ltrim(dbo.FNAGetDataValue(packageId)))+' -International' end as packageName from commissionPackage
  100. where isActive='Y' and isDeleted is null
  101. END
  102. IF @flag = 'u'
  103. BEGIN
  104. IF EXISTS(SELECT * FROM commissionPackage WHERE packageId=@packageId AND ruleId=@ruleId and id<>@id AND isDeleted IS NULL)
  105. BEGIN
  106. EXEC proc_errorHandler 1, 'Already Added!', @user
  107. RETURN;
  108. END
  109. UPDATE commissionPackage SET packageId=@packageId,ruleId=@ruleId,modifiedBy=@user,modifiedDate=getdate()
  110. WHERE ID=@ID
  111. EXEC proc_errorHandler 0, 'Successfully Updated!', @user
  112. END
  113. IF @flag = 'a'
  114. BEGIN
  115. SELECT * FROM commissionPackage WHERE id=@id
  116. END
  117. IF @flag = 'd'
  118. BEGIN
  119. IF EXISTS (
  120. SELECT 'X' FROM commissionPackage WITH(NOLOCK)
  121. WHERE id = @id AND (createdBy <> @user AND approvedBy IS NULL)
  122. )
  123. BEGIN
  124. EXEC proc_errorHandler 1, 'You can not delete this record. Previous modification has not been approved yet.', @id
  125. END
  126. IF EXISTS (
  127. SELECT 'X' FROM commissionPackageHistory WITH(NOLOCK)
  128. WHERE id = @id AND (approvedBy IS NULL AND createdBy <> @user)
  129. )
  130. BEGIN
  131. EXEC proc_errorHandler 1, 'You can not delete this record. Previous modification has not been approved yet.', @id
  132. RETURN
  133. END
  134. IF EXISTS(SELECT 'X' FROM commissionPackage WITH(NOLOCK) WHERE id = @id AND approvedBy IS NULL AND createdBy = @user)
  135. BEGIN
  136. DELETE FROM commissionPackage WHERE id = @id AND approvedBy IS NULL
  137. DELETE FROM commissionPackageHistory WHERE id = @id AND approvedBy IS NULL
  138. EXEC proc_errorHandler 0, 'Record deleted successfully.', @id
  139. RETURN
  140. END
  141. ELSE
  142. BEGIN
  143. DELETE FROM commissionPackageHistory WHERE id = @id AND approvedBy IS NULL
  144. INSERT INTO commissionPackageHistory(
  145. id
  146. ,packageId
  147. ,ruleId
  148. ,ruleType
  149. ,modType
  150. ,createdBy
  151. ,createdDate
  152. )
  153. SELECT
  154. id
  155. ,packageId
  156. ,ruleId
  157. ,ruleType
  158. ,'D'
  159. ,@user
  160. ,GETDATE()
  161. FROM commissionPackage
  162. WHERE id = @id
  163. END
  164. EXEC proc_errorHandler 0, 'Record deleted successfully.', @user
  165. END
  166. IF @flag = 'ds' -- ### domestic commission List
  167. BEGIN
  168. SELECT A.ID
  169. ,A.ruleId
  170. ,A.packageId
  171. ,ROW_NUMBER() OVER(order by A.ID) [S.N.]
  172. ,[Package Name] = '<a href="CommissionView.aspx?packageId=' + cast(A.packageId as varchar) + '&ruleType=ds">' + B.detailTitle + '</a>'
  173. ,[Rule Name] = '<a href="CommissionView.aspx?packageId=' + cast(A.packageId as varchar) + '&ruleId=' + cast(A.ruleId as varchar) + '&ruleType=ds">' +C.code+ '</a>'
  174. ,A.createdBy [Created By]
  175. ,CONVERT(VARCHAR,A.createdDate,101) [Created Date]
  176. FROM commissionPackage A WITH(NOLOCK) INNER JOIN
  177. staticDataValue B WITH(NOLOCK) ON A.packageId=B.valueId
  178. INNER JOIN scMaster C WITH(NOLOCK) ON C.scMasterId=A.ruleId
  179. WHERE ISNULL(A.ISDELETED,'N') = 'N' and A.ruleType ='ds'
  180. AND A.packageId = @packageId
  181. END
  182. IF @flag = 'ic'
  183. BEGIN
  184. --International Service Charge List
  185. SELECT A.ID
  186. ,A.ruleId
  187. ,A.packageId
  188. ,ROW_NUMBER() OVER(order by A.ID) [S.N.]
  189. ,[Package Name] = '<a href="CommissionView.aspx?packageId=' + cast(A.packageId as varchar) + '&ruleType=sc">' + B.detailTitle + '</a>'
  190. ,[Rule Name] = '<a href="CommissionView.aspx?packageId=' + cast(A.packageId as varchar) + '&ruleId=' + cast(A.ruleId as varchar) + '&ruleType=sc">' +C.code+ '</a>'
  191. ,A.createdBy [Created By]
  192. ,CONVERT(VARCHAR,A.createdDate,101) [Created Date]
  193. FROM commissionPackage A WITH(NOLOCK) INNER JOIN
  194. staticDataValue B WITH(NOLOCK) ON A.packageId=B.valueId
  195. INNER JOIN sscMaster C WITH(NOLOCK) ON C.sscMasterId=A.ruleId
  196. WHERE ISNULL(A.isDeleted,'N') = 'N' and A.ruleType='sc'
  197. AND A.packageId = @packageId
  198. --International Pay Commission List
  199. SELECT A.ID
  200. ,A.ruleId
  201. ,A.packageId
  202. ,ROW_NUMBER() OVER(order by A.ID) [S.N.]
  203. ,[Package Name] = '<a href="CommissionView.aspx?packageId=' + cast(A.packageId as varchar) + '&ruleType=cp">' + B.detailTitle + '</a>'
  204. ,[Rule Name] = '<a href="CommissionView.aspx?packageId=' + cast(A.packageId as varchar) + '&ruleId=' + cast(A.ruleId as varchar) + '&ruleType=cp">' +C.code+ '</a>'
  205. ,A.createdBy [Created By]
  206. ,CONVERT(VARCHAR,A.createdDate,101) [Created Date]
  207. FROM commissionPackage A WITH(NOLOCK) INNER JOIN
  208. staticDataValue B WITH(NOLOCK) ON A.packageId=B.valueId
  209. INNER JOIN scPayMaster C WITH(NOLOCK) ON C.scPayMasterId=A.ruleId
  210. WHERE ISNULL(A.ISDELETED,'N') = 'N' and A.ruleType='cp' and A.packageId=@packageId
  211. AND A.packageId = @packageId
  212. --International Send Commission List
  213. SELECT A.ID
  214. ,A.ruleId
  215. ,A.packageId
  216. ,ROW_NUMBER() OVER(order by A.ID) [S.N.]
  217. ,[Package Name] = '<a href="CommissionView.aspx?packageId=' + cast(A.packageId as varchar) + '&ruleType=cs">' + B.detailTitle + '</a>'
  218. ,[Rule Name] = '<a href="CommissionView.aspx?packageId=' + cast(A.packageId as varchar) + '&ruleId=' + cast(A.ruleId as varchar) + '&ruleType=cs">' +C.code+ '</a>'
  219. ,A.createdBy [Created By]
  220. ,CONVERT(VARCHAR,A.createdDate,101) [Created Date]
  221. FROM commissionPackage A WITH(NOLOCK) INNER JOIN
  222. staticDataValue B WITH(NOLOCK) ON A.packageId=B.valueId
  223. INNER JOIN scSendMaster C WITH(NOLOCK) ON C.scSendMasterId=A.ruleId
  224. WHERE ISNULL(A.ISDELETED,'N') = 'N' and A.ruleType='cs' and A.packageId=@packageId
  225. AND A.packageId = @packageId
  226. END
  227. ELSE IF @flag = 'vc' --View Changes(Maker/Checker)
  228. BEGIN
  229. SELECT
  230. main.ruleId
  231. ,hasChanged = 'N'
  232. ,modType = ''
  233. FROM commissionPackage main
  234. LEFT JOIN commissionPackageHistory mode ON main.ruleId = mode.ruleId AND main.packageId = mode.packageId
  235. WHERE main.packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N' AND main.ruleType = 'sc' AND main.approvedBy IS NOT NULL AND mode.approvedBy IS NULL AND ISNULL(mode.modType, '') <> 'D'
  236. UNION ALL
  237. SELECT
  238. ruleId
  239. ,hasChanged = 'Y'
  240. ,modType
  241. FROM commissionPackageHistory WHERE packageId = @packageId AND ruleType = 'sc' AND approvedBy IS NULL
  242. SELECT
  243. main.ruleId
  244. ,hasChanged = 'N'
  245. ,modType = ''
  246. FROM commissionPackage main
  247. LEFT JOIN commissionPackageHistory mode ON main.ruleId = mode.ruleId AND main.packageId = mode.packageId
  248. WHERE main.packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N' AND main.ruleType = 'cp' AND main.approvedBy IS NOT NULL AND mode.approvedBy IS NULL AND ISNULL(mode.modType, '') <> 'D'
  249. UNION ALL
  250. SELECT
  251. ruleId
  252. ,hasChanged = 'Y'
  253. ,modType
  254. FROM commissionPackageHistory WHERE packageId = @packageId AND ruleType = 'cp' AND approvedBy IS NULL
  255. SELECT
  256. main.ruleId
  257. ,hasChanged = 'N'
  258. ,modType = ''
  259. FROM commissionPackage main
  260. LEFT JOIN commissionPackageHistory mode ON main.ruleId = mode.ruleId AND main.packageId = mode.packageId
  261. WHERE main.packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N' AND main.ruleType = 'cs' AND main.approvedBy IS NOT NULL AND mode.approvedBy IS NULL AND ISNULL(mode.modType, '') <> 'D'
  262. UNION ALL
  263. SELECT
  264. ruleId
  265. ,hasChanged = 'Y'
  266. ,modType
  267. FROM commissionPackageHistory WHERE packageId = @packageId AND ruleType = 'cs' AND approvedBy IS NULL
  268. END
  269. ELSE IF @flag = 'pal' --Package Audit Log
  270. BEGIN
  271. SELECT DISTINCT
  272. createdBy
  273. ,createdDate
  274. ,packageId
  275. FROM commissionPackageHistory WHERE packageId = @packageId AND approvedBy IS NULL
  276. END
  277. -- ### END COMMISSION PACKAGE ### ---
  278. -- ### START COMMISSION GROUP ### ---
  279. --Package Display
  280. IF @flag = 'pd'
  281. BEGIN
  282. SELECT
  283. id
  284. ,cg.packageId
  285. ,cg.groupId
  286. ,[S.N.] = ROW_NUMBER() OVER(ORDER BY cg.id)
  287. ,[Package Name] = '<a href="CommissionView.aspx?packageId=' + CAST(cg.packageId AS VARCHAR) + '&ruleType=ds">' + sdv.detailTitle + '</a>'
  288. ,[Created By] = cg.createdBy
  289. ,[Created Date] = CONVERT(VARCHAR, cg.createdDate, 101)
  290. FROM commissionGroup cg WITH(NOLOCK)
  291. INNER JOIN staticDataValue sdv WITH(NOLOCK) ON cg.packageId = sdv.valueId
  292. WHERE cg.groupId = @groupId
  293. AND sdv.typeID = 6400
  294. AND ISNULL(cg.isDeleted, 'N') = 'N'
  295. SELECT
  296. id
  297. ,cg.packageId
  298. ,cg.groupId
  299. ,[S.N.] = ROW_NUMBER() OVER(ORDER BY cg.id)
  300. ,[Package Name] = '<a href="CommissionView.aspx?packageId=' + CAST(cg.packageId AS VARCHAR) + '&ruleType=cp">' + sdv.detailTitle + '</a>'
  301. ,[Created By] = cg.createdBy
  302. ,[Created Date] = CONVERT(VARCHAR, cg.createdDate, 101)
  303. FROM commissionGroup cg WITH(NOLOCK)
  304. INNER JOIN staticDataValue sdv WITH(NOLOCK) ON cg.packageId = sdv.valueId
  305. WHERE cg.groupId = @groupId
  306. AND sdv.typeID = 6500
  307. AND ISNULL(cg.isDeleted, 'N') = 'N'
  308. END
  309. IF @flag = 'ig'
  310. BEGIN
  311. IF EXISTS(SELECT 'X' FROM commissionGroup WHERE packageId = @packageId AND groupId = @groupId AND ISNULL(isDeleted, 'N') = 'N')
  312. BEGIN
  313. EXEC proc_errorHandler 1, 'Already Added!', @user
  314. RETURN
  315. END
  316. DECLARE @RULE_TYPE VARCHAR(10)
  317. SELECT @RULE_TYPE=ruleType FROM commissionPackage WHERE packageId=@packageId
  318. IF @RULE_TYPE='ds'
  319. BEGIN
  320. --New Commission Rule Table From New PackageId
  321. INSERT @commissionRuleNew
  322. SELECT DISTINCT ruleId FROM commissionPackage WITH(NOLOCK)
  323. WHERE packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N'
  324. AND ruleType='ds'
  325. --Old Commission Rule Table From Old PackageId assigned to Group
  326. INSERT @commissionRule
  327. SELECT DISTINCT cp.ruleId
  328. FROM commissionGroup cg WITH(NOLOCK)
  329. INNER JOIN commissionPackage cp WITH(NOLOCK) ON cg.packageId = cp.packageId AND ISNULL(cp.isDeleted, 'N') = 'N'
  330. WHERE cg.groupId = @groupId
  331. AND cp.ruleType='ds'
  332. WHILE EXISTS(SELECT 'X' FROM @commissionRuleNew)
  333. BEGIN
  334. SELECT TOP 1 @ruleId = ruleId FROM @commissionRuleNew
  335. SELECT
  336. @sAgent = sAgent
  337. ,@sBranch = sBranch
  338. ,@sState = sState
  339. ,@sGroup = sGroup
  340. ,@rAgent = rAgent
  341. ,@rBranch = rBranch
  342. ,@rState = rState
  343. ,@rGroup = rGroup
  344. ,@tranType = tranType
  345. FROM scMaster WITH(NOLOCK) WHERE scMasterId = @ruleId
  346. IF EXISTS(SELECT 'X' FROM scMaster WHERE
  347. ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  348. AND ISNULL(sBranch, 0) = ISNULL(@sBranch, 0)
  349. AND ISNULL(sState, 0) = ISNULL(@sState, 0)
  350. AND ISNULL(sGroup, 0) = ISNULL(@sGroup, 0)
  351. AND ISNULL(rAgent, 0) = ISNULL(@rAgent, 0)
  352. AND ISNULL(rBranch, 0) = ISNULL(@rBranch, 0)
  353. AND ISNULL(rState, 0) = ISNULL(@rState, 0)
  354. AND ISNULL(rGroup, 0) = ISNULL(@rGroup, 0)
  355. AND ISNULL(tranType, 0) = ISNULL(@tranType, 0)
  356. AND ISNULL(isDeleted, 'N') = 'N'
  357. AND scMasterId IN (SELECT ruleId FROM @commissionRule))
  358. BEGIN
  359. SET @found = 1
  360. END
  361. DELETE FROM @commissionRuleNew WHERE ruleId = @ruleId
  362. END
  363. IF @found = 1
  364. BEGIN
  365. EXEC proc_errorHandler 1, 'This commission package consist of commission rule criteria which has already been defined in this group', NULL
  366. RETURN
  367. END
  368. END
  369. IF @RULE_TYPE='sc'
  370. BEGIN
  371. --New Commission Rule Table From New PackageId
  372. INSERT @commissionRuleNew
  373. SELECT DISTINCT ruleId FROM commissionPackage WITH(NOLOCK) WHERE packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N'
  374. AND ruleType='sc'
  375. --Old Commission Rule Table From Old PackageId assigned to Group
  376. INSERT @commissionRule
  377. SELECT DISTINCT cp.ruleId
  378. FROM commissionGroup cg WITH(NOLOCK)
  379. INNER JOIN commissionPackage cp WITH(NOLOCK) ON cg.packageId = cp.packageId AND ISNULL(cp.isDeleted, 'N') = 'N'
  380. WHERE cg.groupId = @groupId AND cp.ruleType='sc'
  381. WHILE EXISTS(SELECT 'X' FROM @commissionRuleNew)
  382. BEGIN
  383. SELECT TOP 1 @ruleId = ruleId FROM @commissionRuleNew
  384. SELECT
  385. @sCountry = sCountry
  386. ,@rCountry = rCountry
  387. ,@ssAgent = ssAgent
  388. ,@rsAgent = rsAgent
  389. ,@sAgent = sAgent
  390. ,@sBranch = sBranch
  391. ,@sState = State
  392. ,@sGroup = agentGroup
  393. ,@rAgent = rAgent
  394. ,@rBranch = rBranch
  395. ,@rState = rState
  396. ,@rGroup = rAgentGroup
  397. ,@tranType = tranType
  398. FROM sscMaster WITH(NOLOCK) WHERE sscMasterId = @ruleId
  399. IF EXISTS(SELECT 'X' FROM sscMaster WHERE
  400. ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  401. AND ISNULL(sBranch, 0) = ISNULL(@sBranch, 0)
  402. AND ISNULL(State, 0) = ISNULL(@sState, 0)
  403. AND ISNULL(agentGroup, 0) = ISNULL(@sGroup, 0)
  404. AND ISNULL(rAgent, 0) = ISNULL(@rAgent, 0)
  405. AND ISNULL(rBranch, 0) = ISNULL(@rBranch, 0)
  406. AND ISNULL(rState, 0) = ISNULL(@rState, 0)
  407. AND ISNULL(rAgentGroup, 0) = ISNULL(@rGroup, 0)
  408. AND ISNULL(tranType, 0) = ISNULL(@tranType, 0)
  409. AND ISNULL(sCountry, 0) = ISNULL(@sCountry, 0)
  410. AND ISNULL(rCountry, 0) = ISNULL(@rCountry, 0)
  411. AND ISNULL(ssAgent, 0) = ISNULL(@ssAgent, 0)
  412. AND ISNULL(rsAgent, 0) = ISNULL(@rsAgent, 0)
  413. AND ISNULL(isDeleted, 'N') = 'N'
  414. AND sscMasterId IN (SELECT ruleId FROM @commissionRule))
  415. BEGIN
  416. SET @found = 1
  417. END
  418. DELETE FROM @commissionRuleNew WHERE ruleId = @ruleId
  419. END
  420. IF @found = 1
  421. BEGIN
  422. EXEC proc_errorHandler 1, 'This commission package consist of commission rule criteria which has already been defined in this group', NULL
  423. RETURN
  424. END
  425. END
  426. IF @RULE_TYPE='cp'
  427. BEGIN
  428. --New Commission Rule Table From New PackageId
  429. INSERT @commissionRuleNew
  430. SELECT DISTINCT ruleId FROM commissionPackage WITH(NOLOCK) WHERE packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N'
  431. AND ruleType='cp'
  432. --Old Commission Rule Table From Old PackageId assigned to Group
  433. INSERT @commissionRule
  434. SELECT DISTINCT cp.ruleId
  435. FROM commissionGroup cg WITH(NOLOCK)
  436. INNER JOIN commissionPackage cp WITH(NOLOCK) ON cg.packageId = cp.packageId AND ISNULL(cp.isDeleted, 'N') = 'N'
  437. WHERE cg.groupId = @groupId
  438. AND cp.ruleType='cp'
  439. WHILE EXISTS(SELECT 'X' FROM @commissionRuleNew)
  440. BEGIN
  441. SELECT TOP 1 @ruleId = ruleId FROM @commissionRuleNew
  442. SELECT
  443. @sCountry = sCountry
  444. ,@rCountry = rCountry
  445. ,@ssAgent = ssAgent
  446. ,@rsAgent = rsAgent
  447. ,@sAgent = sAgent
  448. ,@sBranch = sBranch
  449. ,@sState = State
  450. ,@sGroup = agentGroup
  451. ,@rAgent = rAgent
  452. ,@rBranch = rBranch
  453. ,@rState = rState
  454. ,@rGroup = rAgentGroup
  455. ,@tranType = tranType
  456. FROM scPayMaster WITH(NOLOCK) WHERE scPayMasterId = @ruleId
  457. IF EXISTS(SELECT 'X' FROM scPayMaster WHERE
  458. ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  459. AND ISNULL(sBranch, 0) = ISNULL(@sBranch, 0)
  460. AND ISNULL(State, 0) = ISNULL(@sState, 0)
  461. AND ISNULL(agentGroup, 0) = ISNULL(@sGroup, 0)
  462. AND ISNULL(rAgent, 0) = ISNULL(@rAgent, 0)
  463. AND ISNULL(rBranch, 0) = ISNULL(@rBranch, 0)
  464. AND ISNULL(rState, 0) = ISNULL(@rState, 0)
  465. AND ISNULL(rAgentGroup, 0) = ISNULL(@rGroup, 0)
  466. AND ISNULL(tranType, 0) = ISNULL(@tranType, 0)
  467. AND ISNULL(sCountry, 0) = ISNULL(@sCountry, 0)
  468. AND ISNULL(rCountry, 0) = ISNULL(@rCountry, 0)
  469. AND ISNULL(ssAgent, 0) = ISNULL(@ssAgent, 0)
  470. AND ISNULL(rsAgent, 0) = ISNULL(@rsAgent, 0)
  471. AND ISNULL(isDeleted, 'N') = 'N'
  472. AND scPayMasterId IN (SELECT ruleId FROM @commissionRule))
  473. BEGIN
  474. SET @found = 1
  475. END
  476. DELETE FROM @commissionRuleNew WHERE ruleId = @ruleId
  477. END
  478. IF @found = 1
  479. BEGIN
  480. EXEC proc_errorHandler 1, 'This commission package consist of commission rule criteria which has already been defined in this group', NULL
  481. RETURN
  482. END
  483. END
  484. IF @RULE_TYPE='cs'
  485. BEGIN
  486. --New Commission Rule Table From New PackageId
  487. INSERT @commissionRuleNew
  488. SELECT DISTINCT ruleId FROM commissionPackage WITH(NOLOCK) WHERE packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N'
  489. AND ruleType='cs'
  490. --Old Commission Rule Table From Old PackageId assigned to Group
  491. INSERT @commissionRule
  492. SELECT DISTINCT cp.ruleId
  493. FROM commissionGroup cg WITH(NOLOCK)
  494. INNER JOIN commissionPackage cp WITH(NOLOCK) ON cg.packageId = cp.packageId AND ISNULL(cp.isDeleted, 'N') = 'N'
  495. WHERE cg.groupId = @groupId
  496. AND cp.ruleType='cs'
  497. WHILE EXISTS(SELECT 'X' FROM @commissionRuleNew)
  498. BEGIN
  499. SELECT TOP 1 @ruleId = ruleId FROM @commissionRuleNew
  500. SELECT
  501. @sCountry = sCountry
  502. ,@rCountry = rCountry
  503. ,@ssAgent = ssAgent
  504. ,@rsAgent = rsAgent
  505. ,@sAgent = sAgent
  506. ,@sBranch = sBranch
  507. ,@sState = State
  508. ,@sGroup = agentGroup
  509. ,@rAgent = rAgent
  510. ,@rBranch = rBranch
  511. ,@rState = rState
  512. ,@rGroup = rAgentGroup
  513. ,@tranType = tranType
  514. FROM scSendMaster WITH(NOLOCK) WHERE scSendMasterId = @ruleId
  515. IF EXISTS(SELECT 'X' FROM scSendMaster WHERE
  516. ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  517. AND ISNULL(sBranch, 0) = ISNULL(@sBranch, 0)
  518. AND ISNULL(State, 0) = ISNULL(@sState, 0)
  519. AND ISNULL(agentGroup, 0) = ISNULL(@sGroup, 0)
  520. AND ISNULL(rAgent, 0) = ISNULL(@rAgent, 0)
  521. AND ISNULL(rBranch, 0) = ISNULL(@rBranch, 0)
  522. AND ISNULL(rState, 0) = ISNULL(@rState, 0)
  523. AND ISNULL(rAgentGroup, 0) = ISNULL(@rGroup, 0)
  524. AND ISNULL(tranType, 0) = ISNULL(@tranType, 0)
  525. AND ISNULL(sCountry, 0) = ISNULL(@sCountry, 0)
  526. AND ISNULL(rCountry, 0) = ISNULL(@rCountry, 0)
  527. AND ISNULL(ssAgent, 0) = ISNULL(@ssAgent, 0)
  528. AND ISNULL(rsAgent, 0) = ISNULL(@rsAgent, 0)
  529. AND ISNULL(isDeleted, 'N') = 'N'
  530. AND scSendMasterId IN (SELECT ruleId FROM @commissionRule))
  531. BEGIN
  532. SET @found = 1
  533. END
  534. DELETE FROM @commissionRuleNew WHERE ruleId = @ruleId
  535. END
  536. IF @found = 1
  537. BEGIN
  538. EXEC proc_errorHandler 1, 'This commission package consist of commission rule criteria which has already been defined in this group', NULL
  539. RETURN
  540. END
  541. END
  542. INSERT INTO commissionGroup(
  543. packageId
  544. ,groupId
  545. ,isActive
  546. ,createdBy
  547. ,createdDate
  548. )
  549. SELECT
  550. @packageId
  551. ,@groupId
  552. ,'Y'
  553. ,@user
  554. ,GETDATE()
  555. EXEC proc_errorHandler 0, 'Successfully Added!', @user
  556. END
  557. IF @flag = 'ug'
  558. BEGIN
  559. IF EXISTS(SELECT * FROM commissionGroup WHERE packageId=@packageId AND groupId=@groupId and id<>@id AND isDeleted IS NULL)
  560. BEGIN
  561. EXEC proc_errorHandler 1, 'Already Added!', @user
  562. RETURN;
  563. END
  564. UPDATE commissionGroup SET packageId=@packageId,groupId=@groupId,modifiedBy=@user,modifiedDate=getdate()
  565. WHERE ID=@ID
  566. EXEC proc_errorHandler 0, 'Successfully Updated!', @user
  567. END
  568. IF @flag = 'ag'
  569. BEGIN
  570. SELECT * FROM commissionGroup WHERE id=@id
  571. END
  572. IF @flag = 'dg'
  573. BEGIN
  574. UPDATE commissionGroup SET isDeleted='Y' WHERE id=@id
  575. EXEC proc_errorHandler 0, 'Successfully Deleted!', @user
  576. END
  577. IF @flag = 'sg'
  578. BEGIN
  579. IF @sortBy IS NULL
  580. SET @sortBy = 'id'
  581. IF @sortOrder IS NULL
  582. SET @sortOrder = 'ASC'
  583. SET @table = '(
  584. select
  585. distinct
  586. a.id
  587. ,a.groupId
  588. ,a.packageId
  589. ,[groupName]=''<a href="ruleCommView.aspx?groupId='' + cast(a.groupId as varchar) + ''">'' + dbo.FNAGetDataValue(a.groupId) + ''</a>''
  590. ,[packageName]=''<a href="ruleCommView.aspx?packageId='' + cast(a.packageId as varchar) + ''">'' + dbo.FNAGetDataValue(a.packageId) + ''</a>''
  591. ,a.createdBy
  592. ,a.createdDate
  593. from commissionGroup a with(nolock)
  594. inner join commissionPackage b with(nolock) on a.packageId=b.packageId
  595. where a.isDeleted is null
  596. ) x'
  597. SET @sql_filter = ''
  598. IF @groupName IS NOT NULL
  599. SET @sql_filter = @sql_filter+' AND groupName LIKE ''%' + @groupName + '%'''
  600. IF @packageName IS NOT NULL
  601. SET @sql_filter = @sql_filter+' AND packageName LIKE ''%' + @packageName + '%'''
  602. SET @select_field_list ='
  603. id
  604. ,groupId
  605. ,packageId
  606. ,groupName
  607. ,packageName
  608. ,createdBy
  609. ,createdDate'
  610. EXEC dbo.proc_paging
  611. @table
  612. ,@sql_filter
  613. ,@select_field_list
  614. ,@extra_field_list
  615. ,@sortBy
  616. ,@sortOrder
  617. ,@pageSize
  618. ,@pageNumber
  619. END
  620. -- ### END COMMISSION GROUP ### ---
  621. -- ### START COMMISSION VIEW ### ---
  622. IF @flag='V'
  623. BEGIN
  624. if @ruleType='ds'
  625. begin
  626. select
  627. distinct
  628. code [Code]
  629. ,description [Desc]
  630. ,dbo.GetAgentNameFromId(sAgent) sAgent
  631. ,dbo.GetAgentNameFromId(sBranch) sBranch
  632. ,isnull(stTbl.stateCode,'All State') sState
  633. ,isnull(dbo.[FNAGetDataValue](sGroup),'All Group') sGroup
  634. ,dbo.GetAgentNameFromId(rAgent) rAgent
  635. ,dbo.GetAgentNameFromId(rBranch) rBranch
  636. ,isnull(stTbl1.stateCode,'All State') rState
  637. ,isnull(dbo.[FNAGetDataValue](rGroup),'All Group') rGroup
  638. ,scM.typeTitle tranType
  639. ,dbo.[FNAGetDataValue](commissionBase) CommBase
  640. ,main.createdBy
  641. ,main.createdDate
  642. ,main.effectiveFrom
  643. ,main.effectiveTo
  644. from scMaster main with(nolock)
  645. inner join commissionPackage comPck with(nolock) on main.scMasterId=comPck.ruleId
  646. left join countryStateMaster stTbl with(nolock) on stTbl.stateId=main.sState
  647. left join countryStateMaster stTbl1 with(nolock) on stTbl1.stateId=main.rState
  648. left join serviceTypeMaster scM on scM.serviceTypeId=main.tranType
  649. where main.scMasterId=@scMasterId
  650. end
  651. if @ruleType='sc'
  652. begin
  653. SELECT
  654. DISTINCT
  655. code [Code]
  656. ,description [Desc]
  657. ,CM.countryName sCountry
  658. ,dbo.GetAgentNameFromId(ssAgent) ssAgent
  659. ,dbo.GetAgentNameFromId(sAgent) sAgent
  660. ,dbo.GetAgentNameFromId(sBranch) sBranch
  661. ,isnull(stTbl.stateCode,'Any') sState
  662. ,main.zip sZip
  663. ,isnull(dbo.[FNAGetDataValue](main.agentGroup),'Any') sGroup
  664. ,CM1.countryName rCountry
  665. ,dbo.GetAgentNameFromId(rsAgent) rsAgent
  666. ,dbo.GetAgentNameFromId(rAgent) rAgent
  667. ,dbo.GetAgentNameFromId(rBranch) rBranch
  668. ,isnull(stTbl1.stateCode,'Any') rState
  669. ,rZip
  670. ,isnull(dbo.[FNAGetDataValue](rAgentGroup),'Any') rGroup
  671. ,effectiveFrom
  672. ,effectiveTo
  673. ,baseCurrency baseCurrency
  674. ,scM.typeTitle tranType
  675. ,ve positiveDisc
  676. ,dbo.FNAGetDataValue(veType) positiveDiscType
  677. ,ne negativeDisc
  678. ,dbo.FNAGetDataValue(neType) negativeDiscType
  679. ,main.createdBy
  680. ,main.createdDate
  681. ,main.effectiveFrom
  682. ,main.effectiveTo
  683. FROM sscMaster main WITH(NOLOCK)
  684. INNER JOIN commissionPackage comPck with(nolock) on main.sscMasterId=comPck.ruleId
  685. INNER JOIN countryMaster CM with(nolock) on CM.countryId=main.sCountry
  686. INNER JOIN countryMaster CM1 WITH(NOLOCK) ON CM1.countryId=main.rCountry
  687. LEFT JOIN countryStateMaster stTbl with(nolock) on stTbl.stateId=main.State
  688. LEFT JOIN countryStateMaster stTbl1 with(nolock) on stTbl1.stateId=main.rState
  689. LEFT JOIN serviceTypeMaster scM on scM.serviceTypeId=main.tranType
  690. WHERE main.sscMasterId = @scMasterId AND ISNULL(comPck.isDeleted, 'N') = 'N'
  691. end
  692. IF @ruleType='cp'
  693. BEGIN
  694. SELECT
  695. distinct
  696. code [Code]
  697. ,description [Desc]
  698. ,dbo.GetAgentNameFromId(ssAgent) ssAgent
  699. ,dbo.GetAgentNameFromId(sAgent) sAgent
  700. ,dbo.GetAgentNameFromId(sBranch) sBranch
  701. ,isnull(stTbl.stateCode,'All State') sState
  702. ,ISNULL(cm.countryName,'All Coutry') sCountry
  703. ,ISNULL(main.zip,'') sZip
  704. ,isnull(dbo.[FNAGetDataValue](agentGroup),'Any') sGroup
  705. ,ISNULL(rcm.countryName,'All Coutry') rCountry
  706. ,dbo.GetAgentNameFromId(rsAgent) rsAgent
  707. ,dbo.GetAgentNameFromId(rAgent) rAgent
  708. ,dbo.GetAgentNameFromId(rBranch) rBranch
  709. ,isnull(stTbl1.stateCode,'All State') rState
  710. ,ISNULL(main.rZip,'') rZip
  711. ,isnull(dbo.[FNAGetDataValue](ragentGroup),'Any') rGroup
  712. ,scM.typeTitle tranType
  713. ,main.baseCurrency baseCurrency
  714. ,main.commissionCurrency commCurrency
  715. ,dbo.[FNAGetDataValue](commissionBase) commBase
  716. ,main.effectiveFrom
  717. ,main.effectiveTo
  718. from scPayMaster main with(nolock)
  719. inner join commissionPackage comPck with(nolock) on main.scPayMasterId=comPck.ruleId
  720. left join countryStateMaster stTbl with(nolock) on stTbl.stateId= main.[state]
  721. left join countryStateMaster stTbl1 with(nolock) on stTbl1.stateId= main.rState
  722. left join serviceTypeMaster scM on scM.serviceTypeId=main.tranType
  723. left join countryMaster cm with (nolock) on cm.countryId = main.sCountry
  724. left join countryMaster rcm with (nolock) on rcm.countryId = main.rCountry
  725. where main.scPayMasterId=@scMasterId AND ISNULL(comPck.isDeleted, 'N') = 'N'
  726. end
  727. if @ruleType='cs'
  728. begin
  729. select
  730. distinct
  731. code [Code]
  732. ,description [Desc]
  733. ,dbo.GetAgentNameFromId(ssAgent) ssAgent
  734. ,dbo.GetAgentNameFromId(sAgent) sAgent
  735. ,dbo.GetAgentNameFromId(sBranch) sBranch
  736. ,isnull(stTbl.stateCode,'All State') sState
  737. ,ISNULL(cm.countryName,'All Coutry') sCountry
  738. ,ISNULL(main.zip,'') sZip
  739. ,isnull(dbo.[FNAGetDataValue](agentGroup),'Any') sGroup
  740. ,ISNULL(rcm.countryName,'All Coutry') rCountry
  741. ,dbo.GetAgentNameFromId(rsAgent) rsAgent
  742. ,dbo.GetAgentNameFromId(rAgent) rAgent
  743. ,dbo.GetAgentNameFromId(rBranch) rBranch
  744. ,isnull(stTbl1.stateCode,'All State') rState
  745. ,ISNULL(main.rZip,'') rZip
  746. ,isnull(dbo.[FNAGetDataValue](ragentGroup),'Any') rGroup
  747. ,scM.typeTitle tranType
  748. ,main.baseCurrency baseCurrency
  749. ,dbo.[FNAGetDataValue](commissionBase) commBase
  750. ,main.effectiveFrom
  751. ,main.effectiveTo
  752. from scSendMaster main with(nolock)
  753. inner join commissionPackage comPck with(nolock) on main.scSendMasterId=comPck.ruleId
  754. left join countryStateMaster stTbl with(nolock) on stTbl.stateId=main.[State]
  755. left join countryStateMaster stTbl1 with(nolock) on stTbl1.stateId=main.rState
  756. left join serviceTypeMaster scM on scM.serviceTypeId=main.tranType
  757. left join countryMaster cm with (nolock) on cm.countryId = sCountry
  758. left join countryMaster rcm with (nolock) on rcm.countryId = rCountry
  759. where main.scSendMasterId=@scMasterId AND ISNULL(comPck.isDeleted, 'N') = 'N'
  760. end
  761. END
  762. IF @flag='V1'
  763. BEGIN
  764. if @ruleType='ds'
  765. begin
  766. SELECT
  767. scDetailId = main.scDetailId
  768. ,fromAmt = main.fromAmt
  769. ,toAmt = main.toAmt
  770. ,serviceChargePcnt = main.serviceChargePcnt
  771. ,serviceChargeMinAmt = main.serviceChargeMinAmt
  772. ,serviceChargeMaxAmt = main.serviceChargeMaxAmt
  773. ,sAgentCommPcnt = main.sAgentCommPcnt
  774. ,sAgentCommMinAmt = main.sAgentCommMinAmt
  775. ,sAgentCommMaxAmt = main.sAgentCommMinAmt
  776. ,ssAgentCommPcnt = main.ssAgentCommPcnt
  777. ,ssAgentCommMinAmt = main.ssAgentCommMinAmt
  778. ,ssAgentCommMaxAmt = main.ssAgentCommMinAmt
  779. ,pAgentCommPcnt = main.pAgentCommPcnt
  780. ,pAgentCommMinAmt = main.pAgentCommMinAmt
  781. ,pAgentCommMaxAmt = main.pAgentCommMaxAmt
  782. ,psAgentCommPcnt = main.psAgentCommPcnt
  783. ,psAgentCommMinAmt = main.psAgentCommMinAmt
  784. ,psAgentCommMaxAmt = main.psAgentCommMaxAmt
  785. ,bankCommPcnt = main.bankCommPcnt
  786. ,bankCommMinAmt = main.bankCommMinAmt
  787. ,bankCommMaxAmt = main.bankCommMaxAmt
  788. ,main.createdBy
  789. ,main.createdDate
  790. FROM scDetail main WITH(NOLOCK)
  791. WHERE main.scMasterId = @scMasterId AND ISNULL(main.isDeleted, 'N') <> 'Y'
  792. ORDER BY fromAmt
  793. end
  794. if @ruleType='sc'
  795. begin
  796. SELECT [From Amount] = ISNULL(mode.fromAmt, main.fromAmt)
  797. ,[To Amount] = ISNULL(mode.toAmt, main.toAmt)
  798. ,Percentage = ISNULL(mode.pcnt, main.pcnt)
  799. ,[Min Amount] = ISNULL(mode.minAmt, main.minAmt)
  800. ,[Max Amount] = ISNULL(mode.maxAmt, main.maxAmt)
  801. FROM sscDetail main WITH(NOLOCK)
  802. LEFT JOIN sscDetailHistory mode ON main.sscDetailId = mode.sscDetailId AND mode.approvedBy IS NULL
  803. WHERE main.sscMasterId = @scMasterId AND ISNULL(main.isDeleted, 'N') <> 'Y'
  804. ORDER BY [From Amount]
  805. end
  806. if @ruleType='cp'
  807. begin
  808. SELECT
  809. [From Amount] = main.fromAmt
  810. ,[To Amount] = main.toAmt
  811. ,[Percentage] = main.pcnt
  812. ,[Min Amount] = main.minAmt
  813. ,[Max Amount] = main.maxAmt
  814. FROM scPayDetail main WITH(NOLOCK)
  815. WHERE main.scPayMasterId = @scMasterId
  816. AND ISNULL(main.isDeleted, 'N') <> 'Y'
  817. ORDER BY [From Amount]
  818. end
  819. if @ruleType='cs'
  820. begin
  821. SELECT
  822. [From Amount] = main.fromAmt
  823. ,[To Amount] = main.toAmt
  824. ,[Percentage] = main.pcnt
  825. ,[Min Amount] = main.minAmt
  826. ,[Max Amount] = main.maxAmt
  827. FROM scSendDetail main WITH(NOLOCK)
  828. WHERE main.scSendMasterId = @scMasterId
  829. AND ISNULL(main.isDeleted, 'N') <> 'Y'
  830. ORDER BY [From Amount]
  831. end
  832. END
  833. -- ### END COMMISSION VIEW ### ---
  834. END TRY
  835. BEGIN CATCH
  836. IF @@TRANCOUNT > 0
  837. ROLLBACK TRANSACTION
  838. DECLARE @errorMessage VARCHAR(MAX)
  839. SET @errorMessage = ERROR_MESSAGE()
  840. EXEC proc_errorHandler 1, @errorMessage, @user
  841. END CATCH
  842. GO