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.

1217 lines
35 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_csSafeListDetail] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_csSafeListDetail]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_csSafeListDetail] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. CREATE PROCEDURE [dbo].[proc_csSafeListDetail]
  12. @flag VARCHAR(50) = NULL
  13. ,@user VARCHAR(30) = NULL
  14. ,@csMasterId VARCHAR(30) = NULL
  15. ,@sCountry INT = NULL
  16. ,@sAgent INT = NULL
  17. ,@sState INT = NULL
  18. ,@sZip INT = NULL
  19. ,@sGroup INT = NULL
  20. ,@sCustType INT = NULL
  21. ,@rCountry INT = NULL
  22. ,@rAgent INT = NULL
  23. ,@rState INT = NULL
  24. ,@rZip INT = NULL
  25. ,@rGroup INT = NULL
  26. ,@rCustType INT = NULL
  27. ,@currency INT = NULL
  28. ,@ruleScope VARCHAR(5) = NULL
  29. ,@isEnable CHAR(1) = NULL
  30. ,@sortBy VARCHAR(50) = NULL
  31. ,@sortOrder VARCHAR(5) = NULL
  32. ,@pageSize INT = NULL
  33. ,@pageNumber INT = NULL
  34. ------------- parameters need for safelist rule details ----------------------
  35. ,@csSafeListDetailID VARCHAR(30) = NULL
  36. ,@condition INT = NULL
  37. ,@collMode INT = NULL
  38. ,@paymentMode INT = NULL
  39. ,@tranCount INT = NULL
  40. ,@amount MONEY = NULL
  41. ,@period INT = NULL
  42. ,@nextAction CHAR(1) = NULL
  43. AS
  44. BEGIN
  45. SET NOCOUNT ON;
  46. BEGIN TRY
  47. DECLARE
  48. @sql VARCHAR(MAX)
  49. ,@oldValue VARCHAR(MAX)
  50. ,@newValue VARCHAR(MAX)
  51. ,@module VARCHAR(10)
  52. ,@tableAlias VARCHAR(100)
  53. ,@logIdentifier VARCHAR(50)
  54. ,@logParamMod VARCHAR(100)
  55. ,@logParamMain VARCHAR(100)
  56. ,@table VARCHAR(MAX)
  57. ,@select_field_list VARCHAR(MAX)
  58. ,@extra_field_list VARCHAR(MAX)
  59. ,@sql_filter VARCHAR(MAX)
  60. ,@id VARCHAR(10)
  61. ,@modType VARCHAR(6)
  62. ,@ApprovedFunctionId INT
  63. SELECT
  64. @ApprovedFunctionId = 20602030
  65. IF @flag = 'i' --safelist rule insert
  66. BEGIN
  67. IF EXISTS(
  68. SELECT 'x' FROM csMaster
  69. WHERE ISNULL(sCountry, 0) = ISNULL(@sCountry, 0)
  70. AND ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  71. AND ISNULL(sState, 0) = ISNULL(@sState, 0)
  72. AND ISNULL(sZip, 0) = ISNULL(@sZip, 0)
  73. AND ISNULL(sGroup, 0) = ISNULL(@sGroup, 0)
  74. AND ISNULL(sCustType, 0) = ISNULL(@sCustType, 0)
  75. AND ISNULL(rCountry, 0) = ISNULL(@sCountry, 0)
  76. AND ISNULL(rAgent, 0) = ISNULL(@sAgent, 0)
  77. AND ISNULL(rState, 0) = ISNULL(@sState, 0)
  78. AND ISNULL(rZip, 0) = ISNULL(@sZip, 0)
  79. AND ISNULL(rGroup, 0) = ISNULL(@sGroup, 0)
  80. AND ISNULL(rCustType, 0) = ISNULL(@sCustType, 0)
  81. AND ISNULL(ruleScope,0) = ISNULL(@ruleScope,0)
  82. AND ISNULL(isDeleted,'N')<>'Y')
  83. BEGIN
  84. EXEC proc_errorHandler 1, 'Record already exist.', @csMasterId
  85. RETURN
  86. END
  87. BEGIN TRANSACTION
  88. INSERT INTO csMaster (
  89. sCountry
  90. ,sAgent
  91. ,sState
  92. ,sZip
  93. ,sGroup
  94. ,sCustType
  95. ,rCountry
  96. ,rAgent
  97. ,rState
  98. ,rZip
  99. ,rGroup
  100. ,rCustType
  101. ,currency
  102. ,isEnable
  103. ,createdBy
  104. ,createdDate
  105. ,ruleScope
  106. --,isSafeList
  107. )
  108. SELECT
  109. @sCountry
  110. ,@sAgent
  111. ,@sState
  112. ,@sZip
  113. ,@sGroup
  114. ,@sCustType
  115. ,@rCountry
  116. ,@rAgent
  117. ,@rState
  118. ,@rZip
  119. ,@rGroup
  120. ,@rCustType
  121. ,@currency
  122. ,'Y'
  123. ,@user
  124. ,GETDATE()
  125. ,@ruleScope
  126. --,'Y'
  127. SET @csMasterId = SCOPE_IDENTITY()
  128. IF @@TRANCOUNT > 0
  129. COMMIT TRANSACTION
  130. EXEC proc_errorHandler 0, 'Record has been added successfully.', @csMasterId
  131. END
  132. ELSE IF @flag = 'm' --safelist rule in grid
  133. BEGIN
  134. DECLARE
  135. @m VARCHAR(MAX)
  136. ,@d VARCHAR(MAX)
  137. SET @m = '(
  138. SELECT
  139. csMasterId = ISNULL(mode.csMasterId, main.csMasterId)
  140. ,sCountry = ISNULL(mode.sCountry, main.sCountry)
  141. ,sAgent = ISNULL(mode.sAgent, main.sAgent)
  142. ,sState = ISNULL(mode.sState, main.sState)
  143. ,sZip = ISNULL(mode.sZip, main.sZip)
  144. ,sGroup = ISNULL(mode.sGroup, main.sGroup)
  145. ,sCustType = ISNULL(mode.sCustType, main.sCustType)
  146. ,rCountry = ISNULL(mode.rCountry, main.rCountry)
  147. ,rAgent = ISNULL(mode.rAgent, main.rAgent)
  148. ,rState = ISNULL(mode.rState, main.rState)
  149. ,rZip = ISNULL(mode.rZip, main.rZip)
  150. ,rGroup = ISNULL(mode.rGroup, main.rGroup)
  151. ,rCustType = ISNULL(mode.rCustType, main.rCustType)
  152. ,currency = ISNULL(mode.currency, main.currency)
  153. ,isDisabled=CASE WHEN ISNULL(ISNULL(mode.isEnable, main.isEnable),''n'')=''y'' then ''Enabled'' else ''Disabled'' END
  154. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.createdBy ELSE mode.createdBy END
  155. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.createdDate ELSE mode.createdDate END
  156. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  157. (mode.csMasterId IS NOT NULL)
  158. THEN ''Y'' ELSE ''N'' END
  159. ,ruleScope = ISNULL(mode.ruleScope,main.ruleScope)
  160. ,CASE WHEN main.approvedBy IS NULL THEN '''' ELSE ''none'' END as isApproved
  161. FROM csMaster main WITH(NOLOCK)
  162. LEFT JOIN csMasterHistory mode ON main.csMasterId = mode.csMasterId AND mode.approvedBy IS NULL
  163. AND (
  164. mode.createdBy = ''' + @user + '''
  165. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  166. )
  167. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y''
  168. --AND ISNULL(main.isSafeList,''N'')=''Y''
  169. AND (
  170. main.approvedBy IS NOT NULL
  171. OR main.createdBy = ''' + @user + '''
  172. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  173. )
  174. ) '
  175. SET @d = '(
  176. SELECT
  177. csSafeListDetailID = main.csSafeListDetailID
  178. ,csMasterId = main.csMasterId
  179. ,tranCount = ISNULL(mode.tranCount, main.tranCount)
  180. ,amount = ISNULL(mode.amount, main.amount)
  181. ,nextAction = ISNULL(mode.nextAction, main.nextAction)
  182. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.createdBy ELSE mode.createdBy END
  183. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.createdDate ELSE mode.createdDate END
  184. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  185. (mode.csSafeListDetailID IS NOT NULL)
  186. THEN ''Y'' ELSE ''N'' END
  187. FROM csSafeListRuleDetail main WITH(NOLOCK)
  188. LEFT JOIN csSafeListRuleDetailHistory mode ON main.csSafeListDetailID = mode.csSafeListDetailID AND mode.approvedBy IS NULL
  189. AND (
  190. mode.createdBy = ''' + @user + '''
  191. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  192. )
  193. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y''
  194. AND (
  195. main.approvedBy IS NOT NULL
  196. OR main.createdBy = ''' + @user + '''
  197. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  198. )
  199. ) '
  200. SET @table = '
  201. (
  202. SELECT
  203. m.csMasterId
  204. ,m.sCountry
  205. ,sCountryName = ISNULL(sc.countryName, ''All'')
  206. ,m.sAgent
  207. ,sAgentName = ISNULL(sa.agentName, ''All'')
  208. ,m.sState
  209. ,sStateName = ISNULL(ss.stateName, ''All'')
  210. ,m.sZip
  211. ,sGroup = sg.detailTitle
  212. ,m.sCustType
  213. ,m.rCountry
  214. ,rCountryName = ISNULL(rc.countryName, ''All'')
  215. ,m.rAgent
  216. ,rAgentName = ISNULL(ra.agentName, ''All'')
  217. ,m.rState
  218. ,rStateName = ISNULL(rs.stateName, ''All'')
  219. ,m.rZip
  220. ,rGroup = rg.detailTitle
  221. ,m.rCustType
  222. ,m.currency
  223. ,m.isDisabled
  224. ,modifiedBy = MAX(ISNULL(m.modifiedBy, d.modifiedBy))
  225. ,hasChanged = MAX(CASE WHEN m.hasChanged = ''Y'' OR d.hasChanged = ''Y'' THEN ''Y'' ELSE ''N'' END)
  226. ,m.ruleScope
  227. ,m.isApproved
  228. FROM ' + @m + ' m
  229. LEFT JOIN ' + @d + ' d ON m.csMasterId = d.csMasterId
  230. LEFT JOIN countryMaster sc WITH(NOLOCK) ON m.sCountry = sc.countryId
  231. LEFT JOIN agentMaster sa WITH(NOLOCK) ON m.sAgent = sa.agentId
  232. LEFT JOIN countryStateMaster ss WITH(NOLOCK) ON m.sState = ss.stateId
  233. LEFT JOIN staticDataValue sct WITH(NOLOCK) ON m.rCustType = sct.valueId
  234. LEFT JOIN staticDataValue sg WITH(NOLOCK) ON m.sGroup = sg.valueId
  235. LEFT JOIN countryMaster rc WITH(NOLOCK) ON m.rCountry = rc.countryId
  236. LEFT JOIN agentMaster ra WITH(NOLOCK) ON m.rAgent = ra.agentId
  237. LEFT JOIN countryStateMaster rs WITH(NOLOCK) ON m.rState = rs.stateId
  238. LEFT JOIN staticDataValue rct WITH(NOLOCK) ON m.rCustType = rct.valueId
  239. LEFT JOIN staticDataValue rg WITH(NOLOCK) ON m.rGroup = rg.valueId
  240. GROUP BY
  241. m.csMasterId
  242. ,sCountry
  243. ,sc.countryName
  244. ,sAgent
  245. ,sa.agentName
  246. ,sState
  247. ,ss.stateName
  248. ,sZip
  249. ,m.sGroup
  250. ,sg.detailTitle
  251. ,sCustType
  252. ,rCountry
  253. ,rc.countryName
  254. ,rAgent
  255. ,ra.agentName
  256. ,rState
  257. ,rs.stateName
  258. ,rZip
  259. ,m.rGroup
  260. ,rg.detailTitle
  261. ,rCustType
  262. ,currency
  263. ,isDisabled
  264. ,ruleScope
  265. ,isApproved
  266. ) x
  267. '
  268. print @table
  269. --
  270. SET @sql_filter = ' '
  271. IF @sCountry IS NOT NULL
  272. SET @sql_filter = @sql_filter + ' AND sCountry = ' + CAST(@sCountry AS VARCHAR(50))
  273. IF @sAgent IS NOT NULL
  274. SET @sql_filter = @sql_filter + ' AND sAgent = ' + CAST(@sAgent AS VARCHAR(50))
  275. IF @sState IS NOT NULL
  276. SET @sql_filter = @sql_filter + ' AND sState = ' + CAST(@sState AS VARCHAR(50))
  277. IF @sZip IS NOT NULL
  278. SET @sql_filter = @sql_filter + ' AND sZip = ' + CAST(@sZip AS VARCHAR(50))
  279. IF @sGroup IS NOT NULL
  280. SET @sql_filter = @sql_filter + ' AND sGroup = ' + CAST(@sGroup AS VARCHAR(50))
  281. IF @sCustType IS NOT NULL
  282. SET @sql_filter = @sql_filter + ' AND sCustType = ' + CAST(@sCustType AS VARCHAR(50))
  283. IF @rCountry IS NOT NULL
  284. SET @sql_filter = @sql_filter + ' AND rCountry = ' + CAST(@rCountry AS VARCHAR(50))
  285. IF @rAgent IS NOT NULL
  286. SET @sql_filter = @sql_filter + ' AND rAgent = ' + CAST(@rAgent AS VARCHAR(50))
  287. IF @rState IS NOT NULL
  288. SET @sql_filter = @sql_filter + ' AND rState = ' + CAST(@rState AS VARCHAR(50))
  289. IF @rZip IS NOT NULL
  290. SET @sql_filter = @sql_filter + ' AND rZip = ' + CAST(@rZip AS VARCHAR(50))
  291. IF @rGroup IS NOT NULL
  292. SET @sql_filter = @sql_filter + ' AND rGroup = ' + CAST(@rGroup AS VARCHAR(50))
  293. IF @rCustType IS NOT NULL
  294. SET @sql_filter = @sql_filter + ' AND rCustType = ' + CAST(@rCustType AS VARCHAR(50))
  295. IF @currency IS NOT NULL
  296. SET @sql_filter = @sql_filter + ' AND currency = ' + CAST(@currency AS VARCHAR(50))
  297. SET @select_field_list = '
  298. csMasterId
  299. ,sCountry
  300. ,sCountryName
  301. ,sAgent
  302. ,sAgentName
  303. ,sState
  304. ,sStateName
  305. ,sZip
  306. ,sGroup
  307. ,sCustType
  308. ,rCountry
  309. ,rCountryName
  310. ,rAgent
  311. ,rAgentName
  312. ,rState
  313. ,rStateName
  314. ,rZip
  315. ,rGroup
  316. ,rCustType
  317. ,currency
  318. ,isDisabled
  319. ,modifiedBy
  320. ,hasChanged
  321. ,ruleScope
  322. ,isApproved
  323. '
  324. SET @extra_field_list = ''
  325. IF @sortBy IS NULL
  326. SET @sortBy = 'csMasterId'
  327. IF @sortOrder IS NULL
  328. SET @sortOrder = 'ASC'
  329. EXEC dbo.proc_paging
  330. @table
  331. ,@sql_filter
  332. ,@select_field_list
  333. ,@extra_field_list
  334. ,@sortBy
  335. ,@sortOrder
  336. ,@pageSize
  337. ,@pageNumber
  338. END
  339. ELSE IF @flag = 'u' --update safelist rule
  340. BEGIN
  341. IF EXISTS (
  342. SELECT 'X' FROM csMaster WITH(NOLOCK)
  343. WHERE csMasterId = @csMasterId AND ( createdBy <> @user AND approvedBy IS NULL)
  344. )
  345. BEGIN
  346. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @csMasterId
  347. RETURN
  348. END
  349. IF EXISTS (
  350. SELECT 'X' FROM csMasterHistory WITH(NOLOCK)
  351. WHERE csMasterId = @csMasterId AND (createdBy<> @user OR modType = 'D') AND approvedBy IS NULL
  352. )
  353. BEGIN
  354. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @csMasterId
  355. RETURN
  356. END
  357. IF EXISTS(
  358. SELECT 'x' FROM csMaster
  359. WHERE ISNULL(sCountry, 0) = ISNULL(@sCountry, 0)
  360. AND ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  361. AND ISNULL(sState, 0) = ISNULL(@sState, 0)
  362. AND ISNULL(sZip, 0) = ISNULL(@sZip, 0)
  363. AND ISNULL(sGroup, 0) = ISNULL(@sGroup, 0)
  364. AND ISNULL(sCustType, 0) = ISNULL(@sCustType, 0)
  365. AND ISNULL(rCountry, 0) = ISNULL(@sCountry, 0)
  366. AND ISNULL(rAgent, 0) = ISNULL(@sAgent, 0)
  367. AND ISNULL(rState, 0) = ISNULL(@sState, 0)
  368. AND ISNULL(rZip, 0) = ISNULL(@sZip, 0)
  369. AND ISNULL(rGroup, 0) = ISNULL(@sGroup, 0)
  370. AND ISNULL(rCustType, 0) = ISNULL(@sCustType, 0)
  371. AND ISNULL(isDeleted,'N')<>'Y'
  372. AND ISNULL(ruleScope,0) = ISNULL(@ruleScope,0)
  373. AND csMasterId <> @csMasterId)
  374. BEGIN
  375. EXEC proc_errorHandler 1, 'Record already exist.', @csMasterId
  376. RETURN
  377. END
  378. BEGIN TRANSACTION
  379. IF EXISTS (SELECT 'X' FROM csMaster WHERE approvedBy IS NULL AND csMasterId = @csMasterId)
  380. BEGIN
  381. UPDATE csMaster SET
  382. sCountry = @sCountry
  383. ,sAgent = @sAgent
  384. ,sState = @sState
  385. ,sZip = @sZip
  386. ,sGroup = @sGroup
  387. ,sCustType = @sCustType
  388. ,rCountry = @rCountry
  389. ,rAgent = @rAgent
  390. ,rState = @rState
  391. ,rZip = @rZip
  392. ,rGroup = @rGroup
  393. ,rCustType = @rCustType
  394. ,currency = @currency
  395. ,modifiedBy = @user
  396. ,modifiedDate = GETDATE()
  397. ,ruleScope = @ruleScope
  398. WHERE csMasterId = @csMasterId
  399. END
  400. ELSE
  401. BEGIN
  402. DELETE FROM csMasterHistory WHERE csMasterId = @csMasterId AND approvedBy IS NULL
  403. INSERT INTO csMasterHistory(
  404. csMasterId
  405. ,sCountry
  406. ,sAgent
  407. ,sState
  408. ,sZip
  409. ,sGroup
  410. ,sCustType
  411. ,rCountry
  412. ,rAgent
  413. ,rState
  414. ,rZip
  415. ,rGroup
  416. ,rCustType
  417. ,currency
  418. ,isEnable
  419. ,createdBy
  420. ,createdDate
  421. ,modType
  422. ,ruleScope
  423. )
  424. SELECT
  425. @csMasterId
  426. ,@sCountry
  427. ,@sAgent
  428. ,@sState
  429. ,@sZip
  430. ,@sGroup
  431. ,@sCustType
  432. ,@rCountry
  433. ,@rAgent
  434. ,@rState
  435. ,@rZip
  436. ,@rGroup
  437. ,@rCustType
  438. ,@currency
  439. ,@isEnable
  440. ,@user
  441. ,GETDATE()
  442. ,'U'
  443. ,@ruleScope
  444. END
  445. IF @@TRANCOUNT > 0
  446. COMMIT TRANSACTION
  447. EXEC proc_errorHandler 0, 'Record updated successfully.', @csMasterId
  448. END
  449. ELSE IF @flag = 'u_v2' --update safelist rule
  450. BEGIN
  451. IF EXISTS (
  452. SELECT 'X' FROM csSafelistRuleDetail WITH(NOLOCK)
  453. WHERE csSafeListDetailID = @csSafeListDetailID AND ( createdBy <> @user AND approvedBy IS NULL)
  454. )
  455. BEGIN
  456. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @csSafeListDetailID
  457. RETURN
  458. END
  459. IF EXISTS (
  460. SELECT 'X' FROM csSafelistRuleDetail WITH(NOLOCK)
  461. WHERE csSafeListDetailID = @csSafeListDetailID AND (createdBy<> @user OR ISNULL(isDeleted,'N') <> 'N') AND approvedBy IS NULL
  462. )
  463. BEGIN
  464. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @csSafeListDetailID
  465. RETURN
  466. END
  467. IF EXISTS(
  468. SELECT 'x' FROM csSafelistRuleDetail (NOLOCK)
  469. WHERE ISNULL(condition, 0) = ISNULL(@condition, 0)
  470. AND ISNULL(tranCount, 0) = ISNULL(@tranCount, 0)
  471. AND ISNULL(period, 0) = ISNULL(@period, 0)
  472. AND ISNULL(nextAction, 0) = ISNULL(@nextAction, 0)
  473. AND ISNULL(ruleScope, 0) = ISNULL(@ruleScope, 0)
  474. AND csSafeListDetailID <> @csSafeListDetailID)
  475. BEGIN
  476. EXEC proc_errorHandler 1, 'Record already exist.', NULL
  477. RETURN
  478. END
  479. BEGIN TRANSACTION
  480. IF EXISTS (SELECT 'X' FROM csSafelistRuleDetail (NOLOCK) WHERE approvedBy IS NULL AND csSafeListDetailID = @csSafeListDetailID)
  481. BEGIN
  482. UPDATE csSafelistRuleDetail SET
  483. condition = @condition
  484. ,tranCount = @tranCount
  485. ,amount = @amount
  486. ,period = @period
  487. ,nextAction = @nextAction
  488. ,createdBy = @user
  489. ,createdDate = GETDATE()
  490. ,isEnable = 'Y'
  491. ,ruleScope = @ruleScope
  492. ,modifiedBy = @user
  493. ,modifiedDate = GETDATE()
  494. WHERE csSafeListDetailID = @csSafeListDetailID
  495. END
  496. ELSE
  497. BEGIN
  498. INSERT INTO
  499. csSafelistRuleDetailHistory
  500. (
  501. csSafeListDetailID
  502. ,condition
  503. ,tranCount
  504. ,amount
  505. ,period
  506. ,nextAction
  507. ,isActive
  508. ,isDeleted
  509. ,approvedBy
  510. ,approvedDate
  511. ,createdBy
  512. ,createdDate
  513. ,modifiedBy
  514. ,modifiedDate
  515. ,isEnable
  516. )
  517. SELECT csSafeListDetailID
  518. ,condition
  519. ,tranCount
  520. ,amount
  521. ,period
  522. ,nextAction
  523. ,isActive
  524. ,isDeleted
  525. ,approvedBy
  526. ,approvedDate
  527. ,createdBy
  528. ,createdDate
  529. ,modifiedBy
  530. ,modifiedDate
  531. ,isEnable
  532. FROM csSafelistRuleDetail
  533. WHERE csSafeListDetailID = @csSafeListDetailID
  534. UPDATE csSafelistRuleDetail SET
  535. condition = @condition
  536. ,tranCount = @tranCount
  537. ,amount = @amount
  538. ,period = @period
  539. ,nextAction = @nextAction
  540. ,createdBy = @user
  541. ,createdDate = GETDATE()
  542. ,isEnable = 'Y'
  543. ,ruleScope = @ruleScope
  544. ,modifiedBy = @user
  545. ,modifiedDate = GETDATE()
  546. WHERE csSafeListDetailID = @csSafeListDetailID
  547. END
  548. IF @@TRANCOUNT > 0
  549. COMMIT TRANSACTION
  550. EXEC proc_errorHandler 0, 'Record updated successfully.', @csMasterId
  551. END
  552. ELSE IF @flag = 'disable' --enable/disable safelist rule
  553. BEGIN
  554. --N--disable
  555. --Y --enable
  556. IF (SELECT isnull(isEnable,'N') FROM csMaster WHERE csMasterId = @csMasterId)='N'
  557. BEGIN
  558. UPDATE csMaster SET isEnable='Y' WHERE csMasterId = @csMasterId
  559. EXEC proc_errorHandler 0, 'Record enabled successfully.', @csMasterId
  560. --return;
  561. END
  562. ELSE
  563. BEGIN
  564. UPDATE csMaster SET isEnable='N' WHERE csMasterId = @csMasterId
  565. EXEC proc_errorHandler 0, 'Record disabled successfully.', @csMasterId
  566. --RETURN;
  567. END
  568. IF (SELECT isnull(isEnable,'N') FROM csMasterHistory WHERE csMasterId = @csMasterId)='N'
  569. BEGIN
  570. UPDATE csMasterHistory SET isEnable='Y' WHERE csMasterId = @csMasterId
  571. EXEC proc_errorHandler 0, 'Record enabled successfully.', @csMasterId
  572. --RETURN;
  573. END
  574. ELSE
  575. BEGIN
  576. UPDATE csMasterHistory SET isEnable='N' WHERE csMasterId = @csMasterId
  577. EXEC proc_errorHandler 0, 'Record disabled successfully.', @csMasterId
  578. --RETURN;
  579. END
  580. END
  581. ELSE IF @flag = 'ruleDetail'
  582. BEGIN
  583. SELECT
  584. sCountry = ISNULL(scm.countryName, 'All')
  585. ,sAgent = ISNULL(sam.agentName, 'All')
  586. ,sState = ISNULL(ss.stateName, 'All')
  587. ,sZip
  588. ,sGroup = ISNULL(sg.detailTitle, 'All')
  589. ,sCustType = ISNULL(sct.detailTitle, 'All')
  590. ,rCountry = ISNULL(rcm.countryName, 'All')
  591. ,rAgent = ISNULL(ram.agentName, 'All')
  592. ,rState = ISNULL(rs.stateName, 'All')
  593. ,rZip
  594. ,rGroup = ISNULL(rg.detailTitle, 'All')
  595. ,rCustType = ISNULL(rct.detailTitle, 'All')
  596. ,currency = currency
  597. ,ruleScope = ISNULL(ruleScope,'send')
  598. FROM csMaster cm WITH(NOLOCK)
  599. LEFT JOIN countryMaster scm WITH(NOLOCK) ON cm.sCountry = scm.countryId
  600. LEFT JOIN agentMaster sam WITH(NOLOCK) ON cm.sAgent = sam.agentId
  601. LEFT JOIN countryStateMaster ss WITH(NOLOCK) ON cm.sState = ss.stateId
  602. LEFT JOIN staticDataValue sg WITH(NOLOCK) ON cm.sGroup = sg.valueId
  603. LEFT JOIN staticDataValue sct WITH(NOLOCK) ON cm.sCustType = sct.valueId
  604. LEFT JOIN countryMaster rcm WITH(NOLOCK) ON cm.rCountry = rcm.countryId
  605. LEFT JOIN agentMaster ram WITH(NOLOCK) ON cm.rAgent = ram.agentId
  606. LEFT JOIN countryStateMaster rs WITH(NOLOCK) ON cm.rState = rs.stateId
  607. LEFT JOIN staticDataValue rg WITH(NOLOCK) ON cm.rGroup = rg.valueId
  608. LEFT JOIN staticDataValue rct WITH(NOLOCK) ON cm.rCustType = rct.valueId
  609. WHERE csMasterId = @csMasterId
  610. END
  611. ELSE IF @flag = 'ird'--insert rule detail (done)
  612. BEGIN
  613. IF @condition ='4601' AND ISNULL(@tranCount,'0')=0
  614. BEGIN
  615. EXEC proc_errorHandler 0, 'Sorry, Tran count can not be 0!', @csSafeListDetailID
  616. return;
  617. END
  618. IF @condition IN ('4600','4602','4603') AND ISNULL(@period,'0')=0
  619. BEGIN
  620. EXEC proc_errorHandler 1, 'Sorry, Period(In days) can not be 0!', @csSafeListDetailID
  621. return;
  622. END
  623. IF EXISTS(
  624. SELECT 'x' FROM csSafeListRuleDetail
  625. WHERE ISNULL(csMasterId, 0) = ISNULL(@csMasterId, 0)
  626. AND ISNULL(condition, 0) = ISNULL(@condition, 0)
  627. AND ISNULL(collMode, 0) = ISNULL(@collMode, 0)
  628. AND ISNULL(paymentMode, 0) = ISNULL(@paymentMode, 0)
  629. AND ISNULL(tranCount, 0) = ISNULL(@tranCount, 0)
  630. AND ISNULL(amount, 0) = ISNULL(@amount, 0)
  631. AND ISNULL(period, 0) = ISNULL(@period, 0))
  632. BEGIN
  633. EXEC proc_errorHandler 1, 'Record already exist.', @csMasterId
  634. RETURN
  635. END
  636. BEGIN TRANSACTION
  637. INSERT INTO csSafeListRuleDetail (
  638. csMasterId
  639. ,condition
  640. ,collMode
  641. ,paymentMode
  642. ,tranCount
  643. ,amount
  644. ,period
  645. ,nextAction
  646. ,createdBy
  647. ,createdDate
  648. ,isEnable
  649. )
  650. SELECT
  651. @csMasterId
  652. ,@condition
  653. ,@collMode
  654. ,@paymentMode
  655. ,@tranCount
  656. ,@amount
  657. ,@period
  658. ,@nextAction
  659. ,@user
  660. ,GETDATE()
  661. ,'Y'
  662. IF @@TRANCOUNT > 0
  663. COMMIT TRANSACTION
  664. EXEC proc_errorHandler 0, 'Record has been added successfully.', @csSafeListDetailID
  665. END
  666. ELSE IF @flag = 'ird_v2' --insert rule detail (done)
  667. BEGIN
  668. IF EXISTS(
  669. SELECT 'x' FROM csSafelistRuleDetail
  670. WHERE ISNULL(condition, 0) = ISNULL(@condition, 0)
  671. AND ISNULL(tranCount, 0) = ISNULL(@tranCount, 0)
  672. AND ISNULL(period, 0) = ISNULL(@period, 0)
  673. AND ISNULL(nextAction, 0) = ISNULL(@nextAction, 0)
  674. AND ISNULL(ruleScope, 0) = ISNULL(@ruleScope, 0))
  675. BEGIN
  676. EXEC proc_errorHandler 1, 'Record already exist.', NULL
  677. RETURN
  678. END
  679. BEGIN TRANSACTION
  680. INSERT INTO csSafelistRuleDetail (
  681. condition
  682. ,tranCount
  683. ,amount
  684. ,period
  685. ,nextAction
  686. ,createdBy
  687. ,createdDate
  688. ,isEnable
  689. ,ruleScope
  690. )
  691. SELECT
  692. @condition
  693. ,@tranCount
  694. ,@amount
  695. ,@period
  696. ,@nextAction
  697. ,@user
  698. ,GETDATE()
  699. ,'Y'
  700. ,@ruleScope
  701. SET @csSafeListDetailID = SCOPE_IDENTITY()
  702. IF @@TRANCOUNT > 0
  703. COMMIT TRANSACTION
  704. EXEC proc_errorHandler 0, 'Record has been added successfully.', @csSafeListDetailID
  705. END
  706. ELSE IF @flag = 'urd' --update rule detail (done)
  707. BEGIN
  708. IF EXISTS (
  709. SELECT 'X' FROM csSafeListRuleDetail WITH(NOLOCK)
  710. WHERE csSafeListDetailID = @csSafeListDetailID AND ( createdBy <> @user AND approvedBy IS NULL)
  711. )
  712. BEGIN
  713. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @csSafeListDetailID
  714. RETURN
  715. END
  716. BEGIN TRANSACTION
  717. IF EXISTS (SELECT 'X' FROM csSafeListRuleDetail WHERE createdBy = @user AND approvedBy IS NULL AND csSafeListDetailID = @csSafeListDetailID)
  718. BEGIN
  719. UPDATE csSafeListRuleDetail SET
  720. csMasterId = @csMasterId
  721. ,condition = @condition
  722. ,collMode = @collMode
  723. ,paymentMode = @paymentMode
  724. ,tranCount = @tranCount
  725. ,amount = @amount
  726. ,period = @period
  727. ,nextAction = @nextAction
  728. WHERE csSafeListDetailID = @csSafeListDetailID
  729. END
  730. ELSE
  731. BEGIN
  732. INSERT INTO csSafeListRuleDetailHistory(
  733. [csSafeListDetailID],
  734. [csMasterId],
  735. [condition],
  736. [collMode],
  737. [paymentMode],
  738. [tranCount],
  739. [amount],
  740. [period],
  741. [nextAction],
  742. [isActive],
  743. [isDeleted],
  744. [approvedBy],
  745. [approvedDate],
  746. [createdBy],
  747. [createdDate],
  748. [modifiedBy],
  749. [modifiedDate],
  750. [isEnable]
  751. )
  752. SELECT
  753. @csSafeListDetailID,
  754. [csMasterId],
  755. [condition],
  756. [collMode],
  757. [paymentMode],
  758. [tranCount],
  759. [amount],
  760. [period],
  761. [nextAction],
  762. [isActive],
  763. [isDeleted],
  764. [approvedBy],
  765. [approvedDate],
  766. [createdBy],
  767. GETDATE(),
  768. [modifiedBy],
  769. [modifiedDate],
  770. [isEnable]
  771. FROM csSafeListRuleDetail WHERE [csSafeListDetailID]=@csSafeListDetailID
  772. UPDATE csSafeListRuleDetail SET
  773. csMasterId = @csMasterId
  774. ,condition = @condition
  775. ,collMode = @collMode
  776. ,paymentMode = @paymentMode
  777. ,tranCount = @tranCount
  778. ,amount = @amount
  779. ,period = @period
  780. ,nextAction = @nextAction
  781. ,[modifiedBy] =@user
  782. ,[modifiedDate]=GETDATE()
  783. WHERE csSafeListDetailID = @csSafeListDetailID
  784. END
  785. IF @@TRANCOUNT > 0
  786. COMMIT TRANSACTION
  787. EXEC proc_errorHandler 0, 'Record updated successfully.', @csSafeListDetailID
  788. END
  789. ELSE IF @flag = 'urd_v2' --update rule detail (done)
  790. BEGIN
  791. IF EXISTS (
  792. SELECT 'X' FROM csSafelistRuleDetail WITH(NOLOCK)
  793. WHERE csSafeListDetailID = @csSafeListDetailID AND ( createdBy <> @user AND approvedBy IS NULL)
  794. )
  795. BEGIN
  796. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @csSafeListDetailID
  797. RETURN
  798. END
  799. IF EXISTS (
  800. SELECT 'X' FROM csSafelistRuleDetail WITH(NOLOCK)
  801. WHERE csSafeListDetailID = @csSafeListDetailID AND (createdBy<> @user OR ISNULL(isDeleted,'N') <> 'N') AND approvedBy IS NULL
  802. )
  803. BEGIN
  804. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @csSafeListDetailID
  805. RETURN
  806. END
  807. IF EXISTS(
  808. SELECT 'x' FROM csSafelistRuleDetail (NOLOCK)
  809. WHERE ISNULL(condition, 0) = ISNULL(@condition, 0)
  810. AND ISNULL(tranCount, 0) = ISNULL(@tranCount, 0)
  811. AND ISNULL(period, 0) = ISNULL(@period, 0)
  812. AND ISNULL(nextAction, 0) = ISNULL(@nextAction, 0)
  813. AND ISNULL(ruleScope, 0) = ISNULL(@ruleScope, 0)
  814. AND csSafeListDetailID <> @csSafeListDetailID)
  815. BEGIN
  816. EXEC proc_errorHandler 1, 'Record already exist.', NULL
  817. RETURN
  818. END
  819. BEGIN TRANSACTION
  820. IF EXISTS (SELECT 'X' FROM csSafelistRuleDetail (NOLOCK) WHERE approvedBy IS NULL AND csSafeListDetailID = @csSafeListDetailID)
  821. BEGIN
  822. UPDATE csSafelistRuleDetail SET
  823. condition = @condition
  824. ,tranCount = @tranCount
  825. ,amount = @amount
  826. ,period = @period
  827. ,nextAction = @nextAction
  828. ,createdBy = @user
  829. ,createdDate = GETDATE()
  830. ,isEnable = 'Y'
  831. ,ruleScope = @ruleScope
  832. ,modifiedBy = @user
  833. ,modifiedDate = GETDATE()
  834. WHERE csSafeListDetailID = @csSafeListDetailID
  835. END
  836. ELSE
  837. BEGIN
  838. INSERT INTO
  839. csSafelistRuleDetailHistory
  840. (
  841. csSafeListDetailID
  842. ,condition
  843. ,tranCount
  844. ,amount
  845. ,period
  846. ,nextAction
  847. ,isActive
  848. ,isDeleted
  849. ,approvedBy
  850. ,approvedDate
  851. ,createdBy
  852. ,createdDate
  853. ,modifiedBy
  854. ,modifiedDate
  855. ,isEnable
  856. ,ruleScope
  857. )
  858. SELECT csSafeListDetailID
  859. ,condition
  860. ,tranCount
  861. ,amount
  862. ,period
  863. ,nextAction
  864. ,isActive
  865. ,isDeleted
  866. ,approvedBy
  867. ,approvedDate
  868. ,createdBy
  869. ,createdDate
  870. ,modifiedBy
  871. ,modifiedDate
  872. ,isEnable
  873. ,ruleScope
  874. FROM csSafelistRuleDetail
  875. WHERE csSafeListDetailID = @csSafeListDetailID
  876. UPDATE csSafelistRuleDetail SET
  877. condition = @condition
  878. ,tranCount = @tranCount
  879. ,amount = @amount
  880. ,period = @period
  881. ,nextAction = @nextAction
  882. ,createdBy = @user
  883. ,createdDate = GETDATE()
  884. ,isEnable = 'Y'
  885. ,ruleScope = @ruleScope
  886. ,modifiedBy = @user
  887. ,modifiedDate = GETDATE()
  888. WHERE csSafeListDetailID = @csSafeListDetailID
  889. END
  890. IF @@TRANCOUNT > 0
  891. COMMIT TRANSACTION
  892. EXEC proc_errorHandler 0, 'Record updated successfully.', @csMasterId
  893. END
  894. ELSE IF @flag ='rdGrid'--rule detail in grid (done)
  895. BEGIN
  896. IF @sortBy IS NULL
  897. SET @sortBy = 'condition'
  898. IF @sortOrder IS NULL
  899. SET @sortOrder = 'ASC'
  900. SET @pageNumber = 1
  901. SET @pageSize = 10000
  902. SET @table = '(
  903. SELECT
  904. main.csSafeListDetailID
  905. ,condition=ISNULL(con.detailTitle,''All'')
  906. ,condition1 =condition
  907. ,collMode=ISNULL(cm.detailTitle, ''All'')
  908. ,collMode1=collMode
  909. ,paymentMode= ISNULL(pm.typeTitle, ''All'')
  910. ,paymentMode1 =paymentMode
  911. ,main.tranCount
  912. ,main.amount
  913. ,main.period
  914. ,main.nextAction
  915. ,isDisabled=CASE WHEN ISNULL(main.isEnable,''n'')=''y'' then ''Enabled'' else ''Disabled'' END
  916. ,main.createdBy
  917. ,main.createdDate
  918. ,main.modifiedBy
  919. ,main.modifiedDate
  920. ,CASE WHEN main.approvedBy IS NULL THEN '''' ELSE ''none'' END as isApproved
  921. FROM csSafeListRuleDetail main WITH(NOLOCK)
  922. LEFT JOIN staticDataValue con WITH(NOLOCK) ON main.condition = con.valueId
  923. LEFT JOIN staticDataValue cm WITH(NOLOCK) ON main.collMode = cm.valueId
  924. LEFT JOIN serviceTypeMaster pm WITH(NOLOCK) ON main.paymentMode = pm.serviceTypeId
  925. WHERE main.csMasterId = ''' + CAST (@csMasterId AS VARCHAR) + ''' AND ISNULL(main.isDeleted, ''N'') <> ''Y''
  926. --AND (
  927. -- main.approvedBy IS NOT NULL
  928. -- OR main.createdBy = ''' + ISNULL(@user,'') + '''
  929. -- )
  930. )x'
  931. SET @sql_filter = ''
  932. IF @condition IS NOT NULL
  933. SET @sql_filter = @sql_filter + ' AND x.condition1 = ' + CAST(@condition AS VARCHAR(50))
  934. IF @collMode IS NOT NULL
  935. SET @sql_filter = @sql_filter + ' AND x.collMode1 = ' + CAST(@collMode AS VARCHAR(50))
  936. IF @paymentMode IS NOT NULL
  937. SET @sql_filter = @sql_filter + ' AND x.paymentMode1 = ' + CAST(@paymentMode AS VARCHAR(50))
  938. IF @nextAction IS NOT NULL
  939. SET @sql_filter = @sql_filter + ' AND x.nextAction = ''' + CAST(@nextAction AS VARCHAR(50))+''''
  940. --IF @condition IS NOT NULL
  941. -- SET @sql_filter = @sql_filter + ' AND condition = ' + CAST(ISNULL(@condition,'') AS VARCHAR(50))
  942. --IF @collMode IS NOT NULL
  943. -- SET @sql_filter = @sql_filter + ' AND collMode = ' + CAST(ISNULL(@collMode,'') AS VARCHAR(50))
  944. --IF @paymentMode IS NOT NULL
  945. -- SET @sql_filter = @sql_filter + ' AND paymentMode = ' + CAST(ISNULL(@paymentMode,'') AS VARCHAR(50))
  946. --IF @nextAction IS NOT NULL
  947. -- SET @sql_filter = @sql_filter + ' AND nextAction = '+ CAST(ISNULL(@nextAction,'') AS VARCHAR(50))
  948. --PRINT (@table+@sql_filter)
  949. SET @select_field_list ='
  950. csSafeListDetailID
  951. ,condition
  952. ,collMode
  953. ,paymentMode
  954. ,tranCount
  955. ,amount
  956. ,period
  957. ,nextAction
  958. ,isDisabled
  959. ,createdBy
  960. ,createdDate
  961. ,modifiedBy
  962. ,modifiedDate
  963. ,isApproved
  964. '
  965. EXEC dbo.proc_paging
  966. @table
  967. ,@sql_filter
  968. ,@select_field_list
  969. ,@extra_field_list
  970. ,@sortBy
  971. ,@sortOrder
  972. ,@pageSize
  973. ,@pageNumber
  974. END
  975. ELSE IF @flag ='rdGrid_v2'--rule detail in grid (done)
  976. BEGIN
  977. IF @sortBy IS NULL
  978. SET @sortBy = 'condition'
  979. IF @sortOrder IS NULL
  980. SET @sortOrder = 'ASC'
  981. SET @pageNumber = 1
  982. SET @pageSize = 10000
  983. SET @table = '(
  984. SELECT
  985. main.csSafeListDetailID
  986. ,condition=ISNULL(con.detailTitle,''All'')
  987. ,condition1 =condition
  988. ,main.tranCount
  989. ,main.amount
  990. ,main.period
  991. ,CASE WHEN main.nextAction=''H'' THEN ''Hold''
  992. WHEN main.nextAction=''B'' THEN ''Block''
  993. WHEN main.nextAction=''M'' THEN ''Mark''
  994. ELSE ''''
  995. END nextAction
  996. ,main.ruleScope
  997. ,isDisabled=CASE WHEN ISNULL(main.isEnable,''n'')=''y'' then ''Enabled'' else ''Disabled'' END
  998. ,main.createdBy
  999. ,main.createdDate
  1000. ,main.modifiedBy
  1001. ,main.modifiedDate
  1002. ,CASE WHEN main.approvedBy IS NULL THEN '''' ELSE ''none'' END as isApproved
  1003. FROM csSafeListRuleDetail main WITH(NOLOCK)
  1004. LEFT JOIN staticDataValue con WITH(NOLOCK) ON main.condition = con.valueId
  1005. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y''
  1006. )x'
  1007. SET @sql_filter = ''
  1008. IF @condition IS NOT NULL
  1009. SET @sql_filter = @sql_filter + ' AND x.condition1 = ' + CAST(@condition AS VARCHAR(50))
  1010. IF @nextAction IS NOT NULL
  1011. SET @sql_filter = @sql_filter + ' AND x.nextAction = ''' + CAST(@nextAction AS VARCHAR(50))+''''
  1012. IF @ruleScope IS NOT NULL
  1013. SET @sql_filter = @sql_filter + ' AND x.ruleScope = ''' + CAST(@ruleScope AS VARCHAR(50))+''''
  1014. IF @tranCount IS NOT NULL AND @tranCount<>0
  1015. SET @sql_filter = @sql_filter + ' AND x.tranCount = ''' + CAST(@tranCount AS VARCHAR(50))+''''
  1016. IF @amount IS NOT NULL AND @amount<>0
  1017. SET @sql_filter = @sql_filter + ' AND x.amount = ''' + CAST(@amount AS VARCHAR(50))+''''
  1018. IF @period IS NOT NULL AND @period<>0
  1019. SET @sql_filter = @sql_filter + ' AND x.period = ''' + CAST(@period AS VARCHAR(50))+''''
  1020. SET @select_field_list ='
  1021. csSafeListDetailID
  1022. ,condition
  1023. ,tranCount
  1024. ,amount
  1025. ,period
  1026. ,nextAction
  1027. ,ruleScope
  1028. ,isDisabled
  1029. ,createdBy
  1030. ,createdDate
  1031. ,modifiedBy
  1032. ,modifiedDate
  1033. ,isApproved
  1034. '
  1035. EXEC dbo.proc_paging
  1036. @table
  1037. ,@sql_filter
  1038. ,@select_field_list
  1039. ,@extra_field_list
  1040. ,@sortBy
  1041. ,@sortOrder
  1042. ,@pageSize
  1043. ,@pageNumber
  1044. END
  1045. ELSE IF @flag = 'rDisable' --rule detail disable (done)
  1046. BEGIN
  1047. IF (SELECT isnull(isEnable,'N') FROM csSafeListRuleDetail WHERE csSafeListDetailID = @csSafeListDetailID)='N'
  1048. begin
  1049. UPDATE csSafeListRuleDetail SET isEnable='Y' WHERE csSafeListDetailID = @csSafeListDetailID
  1050. EXEC proc_errorHandler 0, 'Record enabled successfully.', @csSafeListDetailID
  1051. return;
  1052. end
  1053. else
  1054. begin
  1055. UPDATE csSafeListRuleDetail SET isEnable='N' WHERE csSafeListDetailID = @csSafeListDetailID
  1056. EXEC proc_errorHandler 0, 'Record disabled successfully.', @csSafeListDetailID
  1057. return;
  1058. end
  1059. END
  1060. ELSE IF @flag = 'rEdit' --rule detail edit(done)
  1061. BEGIN
  1062. SELECT
  1063. *
  1064. ,amount1 = CAST(amount AS DECIMAL(38, 2))
  1065. FROM csSafeListRuleDetail WITH(NOLOCK) WHERE csSafeListDetailID = @csSafeListDetailID
  1066. END
  1067. ELSE IF @flag = 'a_rule' --approve rule detail (done)
  1068. BEGIN
  1069. IF EXISTS (
  1070. SELECT 'X' FROM csSafeListRuleDetail WITH(NOLOCK)
  1071. WHERE csSafeListDetailID = @csSafeListDetailID AND approvedBy IS NOT NULL)
  1072. BEGIN
  1073. EXEC proc_errorHandler 1, 'Record already approved.', @csSafeListDetailID
  1074. RETURN
  1075. END
  1076. IF EXISTS (
  1077. SELECT 'X' FROM csSafeListRuleDetail WITH(NOLOCK)
  1078. WHERE csSafeListDetailID = @csSafeListDetailID AND createdBy = @user AND approvedBy IS NULL
  1079. )
  1080. BEGIN
  1081. EXEC proc_errorHandler 1, 'You cannot approve this record.', @csSafeListDetailID
  1082. RETURN
  1083. END
  1084. BEGIN TRANSACTION
  1085. UPDATE csSafeListRuleDetail SET approvedBy=@user, approvedDate=GETDATE() WHERE csSafeListDetailID = @csSafeListDetailID
  1086. IF @@TRANCOUNT > 0
  1087. COMMIT TRANSACTION
  1088. EXEC proc_errorHandler 0, 'Approved successfully.', @csSafeListDetailID
  1089. END
  1090. ELSE IF @flag = 'ar' --approve safe list rule
  1091. BEGIN
  1092. IF EXISTS (
  1093. SELECT 'X' FROM csMaster WITH(NOLOCK)
  1094. WHERE csMasterId = @csMasterId AND approvedBy IS NOT NULL)
  1095. BEGIN
  1096. EXEC proc_errorHandler 1, 'Record already approved.', @csMasterId
  1097. RETURN
  1098. END
  1099. IF EXISTS (
  1100. SELECT 'X' FROM csMaster WITH(NOLOCK)
  1101. WHERE csMasterId = @csMasterId AND createdBy = @user AND approvedBy IS NULL
  1102. )
  1103. BEGIN
  1104. EXEC proc_errorHandler 1, 'You cannot approve this record.', @csMasterId
  1105. RETURN
  1106. END
  1107. BEGIN TRANSACTION
  1108. UPDATE csMaster SET approvedBy=@user, approvedDate=GETDATE() WHERE csMasterId = @csMasterId
  1109. IF @@TRANCOUNT > 0
  1110. COMMIT TRANSACTION
  1111. EXEC proc_errorHandler 0, 'Approved successfully.', @csMasterId
  1112. END
  1113. END TRY
  1114. BEGIN CATCH
  1115. IF @@TRANCOUNT > 0
  1116. ROLLBACK TRANSACTION
  1117. DECLARE @errorMessage VARCHAR(MAX)
  1118. SET @errorMessage = ERROR_MESSAGE()
  1119. EXEC proc_errorHandler 1, @errorMessage, @csMasterId
  1120. END CATCH
  1121. END
  1122. GO