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.

1083 lines
37 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_errPaidTran] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_errPaidTran]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_errPaidTran] 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 PROC [dbo].[proc_errPaidTran]
  12. @flag VARCHAR(50) = NULL
  13. ,@user VARCHAR(200) = NULL
  14. ,@controlNo VARCHAR(100) = NULL
  15. ,@rowId INT = NULL
  16. ,@eptId INT = NULL
  17. ,@tranId INT = NULL
  18. ,@newPBranch INT = NULL
  19. ,@narration VARCHAR(200) = NULL
  20. ,@rIdType VARCHAR(100) = NULL
  21. ,@rIdNo VARCHAR(30) = NULL
  22. ,@expiryType CHAR(1) = NULL
  23. ,@issueDate DATETIME = NULL
  24. ,@validDate DATETIME = NULL
  25. ,@placeOfIssue VARCHAR(100) = NULL
  26. ,@mobileNo VARCHAR(20) = NULL
  27. ,@rRelativeType VARCHAR(100) = NULL
  28. ,@rRelativeName VARCHAR(100) = NULL
  29. ,@payRemarks VARCHAR(MAX) = NULL
  30. ,@newDeliveryMethod VARCHAR(100) = NULL
  31. ,@hasChanged VARCHAR(1) = NULL
  32. ,@createdDate VARCHAR(50) = NULL
  33. ,@sortOrder VARCHAR(5) = NULL
  34. ,@pageSize INT = NULL
  35. ,@pageNumber INT = NULL
  36. ,@sortBy VARCHAR(20) = NULL
  37. AS
  38. SET NOCOUNT ON
  39. SET XACT_ABORT ON
  40. DECLARE @controlNoEncrypted VARCHAR(20)
  41. SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo)
  42. IF @tranId IS NULL
  43. SELECT @tranId=id FROM remitTran WITH(NOLOCK) WHERE controlNo=@controlNoEncrypted
  44. IF @rowId IS NULL
  45. SET @rowId=@eptId
  46. BEGIN TRY
  47. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  48. DECLARE
  49. @sql VARCHAR(MAX)
  50. ,@oldValue VARCHAR(MAX)
  51. ,@newValue VARCHAR(MAX)
  52. ,@module VARCHAR(10)
  53. ,@tableAlias VARCHAR(100)
  54. ,@logIdentifier VARCHAR(50)
  55. ,@logParamMod VARCHAR(100)
  56. ,@logParamMain VARCHAR(100)
  57. ,@table VARCHAR(MAX)
  58. ,@select_field_list VARCHAR(MAX)
  59. ,@extra_field_list VARCHAR(MAX)
  60. ,@sql_filter VARCHAR(MAX)
  61. ,@id VARCHAR(10)
  62. ,@modType VARCHAR(6)
  63. ,@ApprovedFunctionId INT
  64. ,@tranAmount MONEY
  65. ,@agentId INT
  66. ,@oldPBranch INT
  67. ,@oldPBranchName VARCHAR(500)
  68. ,@newPBranchName VARCHAR(500)
  69. ,@newPaidDate VARCHAR(50)
  70. ,@oldPaidDate VARCHAR(50)
  71. ,@MESSAGE VARCHAR(MAX)
  72. ,@oldSettlingAgent INT
  73. ,@newSettlingAgent INT
  74. ,@parentId INT
  75. DECLARE
  76. @agentType INT
  77. ,@pBranch INT
  78. ,@pBranchName VARCHAR(100)
  79. ,@pAgent INT
  80. ,@pAgentName VARCHAR(100)
  81. ,@pSuperAgent INT
  82. ,@pSuperAgentName VARCHAR(100)
  83. ,@deliveryMethod VARCHAR(100)
  84. ,@deliveryMethodId INT
  85. ,@pLocation INT
  86. ,@pState VARCHAR(50)
  87. ,@pDistrict VARCHAR(50)
  88. ,@tAmt MONEY
  89. ,@cAmt MONEY
  90. ,@pAmt MONEY
  91. ,@payoutCurr VARCHAR(3)
  92. ,@serviceCharge MONEY
  93. ,@pCountry VARCHAR(100)
  94. ,@pCountryId INT
  95. ,@sBranch INT
  96. ,@sCountry VARCHAR(100)
  97. ,@sLocation INT
  98. ,@pAgentComm MONEY
  99. ,@pAgentCommCurrency VARCHAR(3)
  100. ,@pSuperAgentComm MONEY
  101. ,@pSuperAgentCommCurrency VARCHAR(3)
  102. ,@pHubComm MONEY
  103. ,@pHubCommCurrency VARCHAR(3)
  104. ,@settlingAgent INT
  105. SELECT
  106. @ApprovedFunctionId = 20141130
  107. ,@logIdentifier = 'eptId'
  108. ,@logParamMain = 'errPaidTran'
  109. ,@logParamMod = 'errPaidTranHistory'
  110. ,@module = '20'
  111. ,@tableAlias = 'Erroneously Paid Txn'
  112. SELECT @newPBranchName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@newPBranch
  113. IF @flag = 'i'
  114. BEGIN
  115. IF EXISTS(SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE tranId = @tranId AND ISNULL(isDeleted,'N') = 'N')
  116. BEGIN
  117. EXEC proc_errorHandler 1, 'Record (EP) already exists or recorded.', @tranId
  118. RETURN;
  119. END
  120. SELECT @oldPBranch = pBranch, @pLocation = pLocation FROM remitTran WITH(NOLOCK) WHERE id = @tranId
  121. DECLARE @districtId INT, @newAgentDistrictId INT
  122. SELECT @districtId = districtId FROM apiLocationMapping WITH(NOLOCK) WHERE apiDistrictCode = @pLocation
  123. SELECT @newAgentDistrictId = districtId FROM zoneDistrictMap WITH(NOLOCK)
  124. WHERE districtName = (SELECT agentDistrict FROM agentMaster WITH(NOLOCK) WHERE agentId = @newPBranch)
  125. IF RIGHT(@controlNo, 1) = 'D'
  126. BEGIN
  127. IF @districtId <> @newAgentDistrictId
  128. BEGIN
  129. EXEC proc_errorHandler 1, 'This agent is not allowed to pay this transaction. Transaction is not within this agent district', NULL
  130. RETURN
  131. END
  132. END
  133. --Find Old Settling Agent
  134. SELECT @oldSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @oldPBranch AND ISNULL(isSettlingAgent, 'N') = 'Y'
  135. IF @oldSettlingAgent IS NULL
  136. BEGIN
  137. SELECT @parentId = parentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @oldPBranch
  138. SELECT @oldSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId AND ISNULL(isSettlingAgent, 'N') = 'Y'
  139. END
  140. IF @oldSettlingAgent IS NULL
  141. BEGIN
  142. SELECT @parentId = parentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId
  143. SELECT @oldSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId AND ISNULL(isSettlingAgent, 'N') = 'Y'
  144. END
  145. --Find New Settling Agent
  146. SELECT @newSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @newPBranch AND ISNULL(isSettlingAgent, 'N') = 'Y'
  147. IF @newSettlingAgent IS NULL
  148. BEGIN
  149. SELECT @parentId = parentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @newPBranch
  150. SELECT @newSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId AND ISNULL(isSettlingAgent, 'N') = 'Y'
  151. END
  152. IF @newSettlingAgent IS NULL
  153. BEGIN
  154. SELECT @parentId = parentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId
  155. SELECT @newSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId AND ISNULL(isSettlingAgent, 'N') = 'Y'
  156. END
  157. IF @oldPBranch = @newPBranch
  158. BEGIN
  159. EXEC proc_errorHandler 1, 'Sorry, You can not choose same old branch!', @tranId
  160. RETURN
  161. END
  162. BEGIN TRANSACTION
  163. IF EXISTS(SELECT TOP 1 'X' FROM errPaidTran WHERE tranId = @tranId AND tranStatus='Paid')
  164. BEGIN
  165. INSERT INTO errPaidTran (
  166. tranId
  167. ,oldSettlingAgent
  168. ,oldPBranch
  169. ,oldPBranchName
  170. ,oldPSuperAgentComm
  171. ,oldPSuperAgentCommCurrency
  172. ,oldPAgentComm
  173. ,oldPAgentCommCurrency
  174. ,oldPaidDate
  175. ,newSettlingAgent
  176. ,newPBranch
  177. ,newPBranchName
  178. ,payoutAmt
  179. ,narration
  180. ,createdBy
  181. ,createdDate
  182. ,tranStatus
  183. )
  184. SELECT TOP 1 tranId,newSettlingAgent,newPBranch,newPBranchName,newPSuperAgentComm,newPSuperAgentCommCurrency,newPAgentComm,newPAgentCommCurrency,newPaidDate,
  185. @newSettlingAgent,@newPBranch,@newPBranchName,payoutAmt,@narration,@user,GETDATE(),'Unpaid'
  186. FROM errPaidTran WHERE tranId=@tranId AND tranStatus='Paid'
  187. ORDER BY eptId DESC
  188. SET @rowId = SCOPE_IDENTITY()
  189. END
  190. ELSE
  191. BEGIN
  192. INSERT INTO errPaidTran (
  193. tranId
  194. ,oldSettlingAgent
  195. ,oldPBranch
  196. ,oldPBranchName
  197. ,oldPSuperAgentComm
  198. ,oldPSuperAgentCommCurrency
  199. ,oldPAgentComm
  200. ,oldPAgentCommCurrency
  201. ,oldPaidDate
  202. ,newSettlingAgent
  203. ,newPBranch
  204. ,newPBranchName
  205. ,payoutAmt
  206. ,narration
  207. ,createdBy
  208. ,createdDate
  209. ,tranStatus
  210. )
  211. SELECT id,@oldSettlingAgent,pBranch,pBranchName,pSuperAgentComm,pSuperAgentCommCurrency,pAgentComm,pAgentCommCurrency,paidDate,
  212. @newSettlingAgent,@newPBranch,@newPBranchName,pAmt,@narration,@user,GETDATE(),'Unpaid'
  213. FROM remitTran WHERE id=@tranId
  214. SET @rowId = SCOPE_IDENTITY()
  215. END
  216. IF @@TRANCOUNT > 0
  217. COMMIT TRANSACTION
  218. EXEC proc_errorHandler 0, 'Record has been added successfully.', @rowId
  219. END
  220. IF @flag = 'u'
  221. BEGIN
  222. IF EXISTS (SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE eptId = @rowId AND approvedBy IS NULL AND createdBy <> @user)
  223. BEGIN
  224. EXEC proc_errorHandler 1, 'You can not modify this record.', @rowId
  225. RETURN
  226. END
  227. IF EXISTS (SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE eptId = @rowId AND tranStatus ='Paid')
  228. BEGIN
  229. EXEC proc_errorHandler 1, 'You can not modify, Already paid this record', @rowId
  230. RETURN
  231. END
  232. SELECT @tranId = tranId FROM errPaidTran WITH(NOLOCK) WHERE eptId = @rowId
  233. SELECT @pLocation = plocation FROM remitTran WITH(NOLOCK) WHERE id = @tranId
  234. SELECT @districtId = districtId FROM apiLocationMapping WITH(NOLOCK) WHERE apiDistrictCode = @pLocation
  235. SELECT @newAgentDistrictId = districtId FROM zoneDistrictMap WITH(NOLOCK)
  236. WHERE districtName = (SELECT agentDistrict FROM agentMaster WITH(NOLOCK) WHERE agentId = @newPBranch)
  237. IF @districtId IS NULL
  238. BEGIN
  239. EXEC proc_errorHandler 1, 'Location not found', NULL
  240. RETURN
  241. END
  242. IF @newAgentDistrictId IS NULL
  243. BEGIN
  244. EXEC proc_errorHandler 1, 'Location not found', NULL
  245. RETURN
  246. END
  247. IF @districtId <> @newAgentDistrictId
  248. BEGIN
  249. EXEC proc_errorHandler 1, 'This agent is not allowed to pay this transaction. Transaction is not within this agent district', NULL
  250. RETURN
  251. END
  252. --Find New Settling Agent
  253. SELECT @newSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @newPBranch AND ISNULL(isSettlingAgent, 'N') = 'Y'
  254. IF @newSettlingAgent IS NULL
  255. BEGIN
  256. SELECT @parentId = parentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @newPBranch
  257. SELECT @newSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId AND ISNULL(isSettlingAgent, 'N') = 'Y'
  258. END
  259. IF @newSettlingAgent IS NULL
  260. BEGIN
  261. SELECT @parentId = parentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId
  262. SELECT @newSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId AND ISNULL(isSettlingAgent, 'N') = 'Y'
  263. END
  264. BEGIN TRANSACTION
  265. IF EXISTS (SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE approvedBy IS NULL AND createdBy = @user)
  266. BEGIN
  267. UPDATE main SET
  268. main.tranId = trn.id
  269. ,main.oldPBranch = trn.pBranch
  270. ,main.oldPBranchName = trn.pBranchName
  271. ,main.oldPSuperAgentComm = trn.pSuperAgentComm
  272. ,main.oldPSuperAgentCommCurrency = trn.pSuperAgentCommCurrency
  273. ,main.oldPAgentComm = trn.pAgentComm
  274. ,main.oldPAgentCommCurrency = trn.pAgentCommCurrency
  275. ,main.oldPaidDate = trn.paidDate
  276. ,main.newSettlingAgent = @newSettlingAgent
  277. ,main.newPBranch = @newPBranch
  278. ,main.newPBranchName = @newPBranchName
  279. ,main.payoutAmt = trn.pAmt
  280. ,main.narration = @narration
  281. ,main.createdBy = @user
  282. ,main.createdDate = GETDATE()
  283. ,main.tranStatus = 'Unpaid'
  284. FROM errPaidTran main
  285. INNER JOIN remitTran trn ON trn.id= main.tranId
  286. WHERE main.eptId= @rowId
  287. END
  288. ELSE
  289. BEGIN
  290. IF EXISTS(SELECT TOP 1 'X' FROM errPaidTran WHERE tranId = @tranId AND tranStatus = 'Paid' AND eptId <> @rowId)
  291. BEGIN
  292. INSERT INTO errPaidTranHistory (
  293. eptId
  294. ,tranId
  295. ,oldSettlingAgent
  296. ,oldPBranch
  297. ,oldPBranchName
  298. ,oldPSuperAgentComm
  299. ,oldPSuperAgentCommCurrency
  300. ,oldPAgentComm
  301. ,oldPAgentCommCurrency
  302. ,oldPaidDate
  303. ,newSettlingAgent
  304. ,newPBranch
  305. ,newPBranchName
  306. ,payoutAmt
  307. ,narration
  308. ,createdBy
  309. ,createdDate
  310. ,modType
  311. )
  312. SELECT TOP 1 @rowId,tranId,newSettlingAgent,newPBranch,newPBranchName,newPSuperAgentComm,newPSuperAgentCommCurrency,newPAgentComm,
  313. newPAgentCommCurrency,newPaidDate,
  314. @newSettlingAgent,@newPBranch,@newPBranchName,payoutAmt,@narration,@user,GETDATE(),'U'
  315. FROM errPaidTran WHERE tranId=@tranId AND tranStatus='Paid'
  316. ORDER BY eptId DESC
  317. END
  318. ELSE
  319. BEGIN
  320. SELECT @oldPBranch = pBranch FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
  321. SELECT @oldSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @oldPBranch AND ISNULL(isSettlingAgent, 'N') = 'Y'
  322. IF @oldSettlingAgent IS NULL
  323. BEGIN
  324. SELECT @parentId = parentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @oldPBranch
  325. SELECT @oldSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId AND ISNULL(isSettlingAgent, 'N') = 'Y'
  326. END
  327. IF @oldSettlingAgent IS NULL
  328. BEGIN
  329. SELECT @parentId = parentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId
  330. SELECT @oldSettlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @parentId AND ISNULL(isSettlingAgent, 'N') = 'Y'
  331. END
  332. INSERT INTO errPaidTranHistory (
  333. eptId
  334. ,tranId
  335. ,oldSettlingAgent
  336. ,oldPBranch
  337. ,oldPBranchName
  338. ,oldPSuperAgentComm
  339. ,oldPSuperAgentCommCurrency
  340. ,oldPAgentComm
  341. ,oldPAgentCommCurrency
  342. ,oldPaidDate
  343. ,newSettlingAgent
  344. ,newPBranch
  345. ,newPBranchName
  346. ,payoutAmt
  347. ,narration
  348. ,createdBy
  349. ,createdDate
  350. ,modType
  351. )
  352. SELECT @rowId,id,@oldSettlingAgent,pBranch,pBranchName,pSuperAgentComm,pSuperAgentCommCurrency,pAgentComm,pAgentCommCurrency,paidDate,
  353. @newSettlingAgent,@newPBranch,@newPBranchName,pAmt,@narration,@user,GETDATE(),'U'
  354. FROM remitTran WHERE id=@tranId
  355. END
  356. END
  357. COMMIT TRANSACTION
  358. EXEC proc_errorHandler 0, 'Record updated successfully', @rowId
  359. END
  360. IF @flag = 'd'
  361. BEGIN
  362. IF EXISTS (SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE eptId = @rowId AND approvedBy IS NULL AND createdBy <> @user)
  363. BEGIN
  364. EXEC proc_errorHandler 1, 'You can not delete this record.', @rowId
  365. RETURN
  366. END
  367. IF EXISTS (SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE eptId = @rowId AND tranStatus='Paid')
  368. BEGIN
  369. EXEC proc_errorHandler 1, 'You can not delete this record, Already Paid!', @rowId
  370. RETURN
  371. END
  372. IF EXISTS (SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE eptId = @rowId AND approvedBy IS NULL AND createdBy = @user)
  373. BEGIN
  374. DELETE FROM errPaidTran WHERE eptId = @rowId
  375. END
  376. ELSE
  377. BEGIN
  378. EXEC proc_errorHandler 1, 'Sorry, You can not delete this record, Already Approved!', @rowId
  379. RETURN
  380. END
  381. EXEC proc_errorHandler 0, 'Record deleted successfully', @rowId
  382. END
  383. IF @flag IN ('reject','rejectAll')
  384. BEGIN
  385. IF NOT EXISTS (SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE eptId = @rowId AND approvedBy IS NULL)
  386. AND
  387. NOT EXISTS(SELECT 'X' FROM errPaidTranHistory WITH(NOLOCK) WHERE eptId = @rowId AND approvedBy IS NULL)
  388. BEGIN
  389. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @rowId
  390. RETURN
  391. END
  392. IF EXISTS (SELECT 'X' FROM errPaidTran WHERE eptId = @rowId AND approvedBy IS NULL)
  393. BEGIN --New record
  394. BEGIN TRANSACTION
  395. SET @modType = 'Reject'
  396. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  397. INSERT INTO #msg(errorCode, msg, id)
  398. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rowId, @user, @oldValue, @newValue
  399. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  400. BEGIN
  401. IF @@TRANCOUNT > 0
  402. ROLLBACK TRANSACTION
  403. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @rowId
  404. RETURN
  405. END
  406. DELETE FROM errPaidTran WHERE eptId = @rowId
  407. IF @@TRANCOUNT > 0
  408. COMMIT TRANSACTION
  409. END
  410. ELSE
  411. BEGIN
  412. BEGIN TRANSACTION
  413. SET @modType = 'Reject'
  414. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  415. INSERT INTO #msg(errorCode, msg, id)
  416. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rowId, @user, @oldValue, @newValue
  417. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  418. BEGIN
  419. IF @@TRANCOUNT > 0
  420. ROLLBACK TRANSACTION
  421. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @rowId
  422. RETURN
  423. END
  424. DELETE FROM errPaidTranHistory WHERE eptId = @rowId
  425. IF @@TRANCOUNT > 0
  426. COMMIT TRANSACTION
  427. END
  428. EXEC proc_errorHandler 0, 'Changes rejected successfully.', @rowId
  429. END
  430. IF @flag IN ('approve','approveAll')
  431. BEGIN
  432. DECLARE @requestedBy VARCHAR(50)
  433. IF NOT EXISTS (SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE eptId = @rowId AND approvedBy IS NULL)
  434. AND
  435. NOT EXISTS(SELECT 'X' FROM errPaidTranHistory WITH(NOLOCK) WHERE eptId = @rowId AND approvedBy IS NULL)
  436. BEGIN
  437. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @rowId
  438. RETURN
  439. END
  440. BEGIN TRANSACTION
  441. IF EXISTS (SELECT 'X' FROM errPaidTran WHERE approvedBy IS NULL AND eptId = @rowId)
  442. SET @modType = 'I'
  443. ELSE
  444. SELECT @modType = modType FROM errPaidTranHistory WHERE eptId = @rowId AND approvedBy IS NULL
  445. IF @modType = 'I'
  446. BEGIN --New record
  447. UPDATE errPaidTran SET
  448. approvedBy = @user
  449. ,approvedDate= dbo.FNAGetDateInNepalTZ()
  450. WHERE eptId = @rowId
  451. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @newValue OUTPUT
  452. SELECT
  453. @oldPaidDate = oldPaidDate
  454. ,@oldPBranchName = oldPBranchName
  455. ,@newPBranchName = newPBranchName
  456. ,@newPaidDate = createdDate
  457. ,@tranId = tranId
  458. ,@narration = narration
  459. ,@requestedBy = createdBy
  460. FROM errPaidTran WHERE eptId=@rowId
  461. SET @MESSAGE='EP:Paid by '+ ISNULL(@oldPBranchName,'') +' on '+ISNULL(@oldPaidDate,'')+' has been approved For Mistakely Post to agent '+ISNULL(@newPBranchName,'')+' on '+ISNULL(@newPaidDate,'') + ' by <b>' + @user + '</b>' + ISNULL('. <br/>Remarks:'
  462. + @narration, '')
  463. EXEC proc_transactionLogs 'i', @requestedBy, @tranId, @MESSAGE, 'M'
  464. END
  465. ELSE IF @modType = 'U'
  466. BEGIN
  467. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  468. UPDATE main SET
  469. main.newSettlingAgent = mode.newSettlingAgent
  470. ,main.newPBranch = mode.newPBranch
  471. ,main.newPBranchName = mode.newPBranchName
  472. ,main.narration = mode.narration
  473. ,main.modifiedDate = dbo.FNAGetDateInNepalTZ()
  474. ,main.modifiedBy = @user
  475. FROM errPaidTran main
  476. INNER JOIN errPaidTranHistory mode ON mode.eptId= main.eptId AND mode.approvedBy IS NULL
  477. WHERE mode.eptId = @rowId
  478. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @newValue OUTPUT
  479. SELECT
  480. @oldPaidDate = oldPaidDate
  481. ,@oldPBranchName = oldPBranchName
  482. ,@newPBranchName = newPBranchName
  483. ,@newPaidDate = createdDate
  484. ,@tranId = tranId
  485. ,@narration = narration
  486. ,@requestedBy = createdBy
  487. FROM errPaidTran WHERE eptId=@rowId
  488. SET @MESSAGE='EP:Paid by '+ ISNULL(@oldPBranchName,'') +' on '+ISNULL(@oldPaidDate,'')+' has been approved updated record For Mistakely Post to agent '+ISNULL(@newPBranchName,'')+' on '+ISNULL(@newPaidDate,'') + ' by <b>' + @user + '</b>' + ISNULL('.
  489. <br/>Remarks: ' + @narration, '')
  490. EXEC proc_transactionLogs 'i', @requestedBy, @tranId, @MESSAGE, 'M'
  491. END
  492. ELSE IF @modType = 'D'
  493. BEGIN
  494. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  495. UPDATE errPaidTran SET
  496. isDeleted = 'Y'
  497. ,modifiedDate = dbo.FNAGetDateInNepalTZ()
  498. ,modifiedBy = @user
  499. WHERE eptId = @rowId
  500. END
  501. SELECT
  502. @controlNo = dbo.fnadecryptstring(controlNo),
  503. @controlNoEncrypted = controlNo,
  504. @pAmt = pAmt,
  505. @pBranch = pBranch
  506. FROM remitTran rt WITH(NOLOCK) WHERE id = @tranId
  507. IF ISNUMERIC(@controlNo) = 1 AND RIGHT(@controlNo,1) <> 'D'
  508. BEGIN
  509. INSERT INTO dbo.rs_remitTranTroubleTicket(RefNo,Comments,DatePosted,PostedBy,uploadBy,status,noteType,tranno,category)
  510. SELECT @controlNoEncrypted, @message, GETDATE(), @user, @user, NULL, 2, NULL, 'push'
  511. END
  512. UPDATE errPaidTranHistory SET
  513. approvedBy = @user,
  514. approvedDate = dbo.FNAGetDateInNepalTZ()
  515. WHERE eptId = @rowId
  516. INSERT INTO #msg(errorCode, msg, id)
  517. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rowId, @user, @oldValue, @newValue
  518. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  519. BEGIN
  520. IF @@TRANCOUNT > 0
  521. ROLLBACK TRANSACTION
  522. EXEC proc_errorHandler 1, 'Could not approve the changes.', @rowId
  523. RETURN
  524. END
  525. -- ## Accounting EP
  526. DECLARE @a_commCodeDom VARCHAR(20), @a_commCodeIntl VARCHAR(20), @a_mapCodeDom VARCHAR(20), @a_mapCodeInt VARCHAR(20)
  527. , @b_commCodeDom VARCHAR(20), @b_commCodeIntl VARCHAR(20), @b_mapCodeDom VARCHAR(20), @b_mapCodeInt VARCHAR(20)
  528. IF RIGHT(@controlNo,1) <> 'D'
  529. BEGIN
  530. IF EXISTS(SELECT 'x' FROM FastMoneyPro_account.DBO.ErroneouslyPaymentNew WITH(NOLOCK) WHERE REF_NO = @controlNo)
  531. BEGIN
  532. UPDATE FastMoneyPro_account.DBO.ErroneouslyPaymentNew SET EP_invoiceNo = @rowId WHERE REF_NO = @controlNo
  533. END
  534. ELSE
  535. BEGIN
  536. INSERT INTO FastMoneyPro_account.DBO.ErroneouslyPaymentNew(REF_NO,TRANNO,AMOUNT,EP_COMMISSION,EP_AGENTCODE,EP_BRANCHCODE,EP_DATE,EP_USER,EP_invoiceNo)
  537. SELECT
  538. DBO.FNADecryptString(CONTROLNO),
  539. TRANID,
  540. FLOOR(E.payoutAmt),
  541. ISNULL(ISNULL(OLDPAGENTCOMM,pagentcomm),0),
  542. am.mapCodeInt,
  543. bm.mapCodeInt,
  544. E.APPROVEDDATE,
  545. E.APPROVEDBY,
  546. EPTID
  547. FROM errPaidTran E (NOLOCK)
  548. INNER JOIN REMITTRAN R (NOLOCK) ON E.TRANID = R.ID
  549. LEFT JOIN AGENTMASTER AM (NOLOCK) ON R.PAGENT = AM.AGENTID
  550. LEFT JOIN AGENTMASTER BM (NOLOCK) ON R.PBRANCH = BM.AGENTID
  551. WHERE eptId = @rowId
  552. END
  553. END
  554. ELSE
  555. BEGIN
  556. IF EXISTS(SELECT 'x' FROM FastMoneyPro_account.DBO.ErroneouslyPaymentNew WITH(NOLOCK) WHERE REF_NO = @controlNo)
  557. BEGIN
  558. UPDATE FastMoneyPro_account.DBO.ErroneouslyPaymentNew SET EP_invoiceNo = @rowId WHERE REF_NO = @controlNo
  559. END
  560. ELSE
  561. BEGIN
  562. INSERT INTO FastMoneyPro_account.DBO.ErroneouslyPaymentNew(REF_NO,TRANNO,AMOUNT,EP_COMMISSION,EP_AGENTCODE,EP_BRANCHCODE,EP_DATE,EP_USER,EP_invoiceNo)
  563. SELECT DBO.FNADecryptString(CONTROLNO)
  564. ,TRANID
  565. ,FLOOR(E.payoutAmt)
  566. ,ISNULL(ISNULL(OLDPAGENTCOMM,pagentcomm),0)
  567. ,CASE WHEN r.paymentMethod = 'Cash Payment' THEN am.mapCodeInt
  568. ELSE am.mapCodeDom END
  569. ,CASE WHEN r.paymentMethod = 'Cash Payment' THEN bm.mapCodeInt
  570. ELSE bm.mapCodeDom END
  571. ,E.APPROVEDDATE
  572. ,E.APPROVEDBY
  573. ,EPTID
  574. FROM errPaidTran E (NOLOCK)
  575. INNER JOIN REMITTRAN R (NOLOCK) ON E.TRANID=R.ID
  576. LEFT JOIN AGENTMASTER AM (NOLOCK) ON R.PAGENT=AM.AGENTID
  577. LEFT JOIN AGENTMASTER BM (NOLOCK) ON R.PBRANCH=BM.AGENTID
  578. WHERE eptId = @rowId
  579. END
  580. END
  581. -- ## Limit Update
  582. EXEC Proc_AgentBalanceUpdate @flag = 'ep',@tAmt = @pAmt ,@settlingAgent = @pBranch
  583. IF @@TRANCOUNT > 0
  584. COMMIT TRANSACTION
  585. EXEC proc_errorHandler 0, 'Changes approved successfully.', @rowId
  586. END
  587. IF @flag = 's'
  588. BEGIN
  589. SET @table = '(
  590. SELECT
  591. eptId = main.eptId
  592. ,tranId = main.tranId
  593. ,controlNo = tranMas.controlNo
  594. ,newPBranch = main.newPBranch
  595. ,newPBranchName = main.newPBranchName
  596. ,oldPBranch = main.oldPBranch
  597. ,oldPBranchName = main.oldPBranchName
  598. ,payoutAmount = main.payoutAmt
  599. ,oldPaidDate = main.oldPaidDate
  600. ,narration = main.narration
  601. ,receiverName = tRec.firstName + ISNULL( '' '' + tRec.middleName, '''') + ISNULL( '' '' + tRec.lastName1, '''') + ISNULL( '' '' + tRec.lastName2, '''')
  602. ,senderName = tSend.firstName + ISNULL( '' '' + tSend.middleName, '''') + ISNULL( '' '' + tSend.lastName1, '''') + ISNULL( '' '' + tSend.lastName2, '''')
  603. ,tranStatus = main.tranStatus
  604. ,createdBy = main.createdBy
  605. ,createdDate = main.createdDate
  606. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.CreatedDate ELSE ISNULL(mode.createdDate, main.modifiedDate) END
  607. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.CreatedBy ELSE ISNULL(mode.createdBy, main.modifiedBy) END
  608. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  609. (mode.tranId IS NOT NULL)
  610. THEN ''Y'' ELSE ''N'' END
  611. FROM errPaidTran main WITH(NOLOCK)
  612. INNER JOIN remitTran tranMas on tranMas.id=main.tranId
  613. INNER JOIN tranSenders tSend WITH(NOLOCK) ON tranMas.id = tSend.tranId
  614. INNER JOIN tranReceivers tRec WITH(NOLOCK) ON tranMas.id= tRec.tranId
  615. LEFT JOIN errPaidTranHistory mode ON main.eptId = mode.eptId AND mode.approvedBy IS NULL
  616. AND (
  617. mode.createdBy = ''' + @user + '''
  618. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  619. )
  620. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y'' AND main.tranStatus=''Unpaid''
  621. AND (
  622. main.approvedBy IS NOT NULL
  623. OR main.createdBy = ''' + @user + '''
  624. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  625. )
  626. )'
  627. IF @sortBy IS NULL
  628. SET @sortBy = 'eptId'
  629. IF @sortOrder IS NULL
  630. SET @sortOrder = 'ASC'
  631. SET @table = '(
  632. SELECT
  633. main.eptId
  634. ,main.tranId
  635. ,controlNo1=main.controlNo
  636. ,controlNo = ''<a href="#" onclick="OpenInNewWindow('''''+dbo.FNAGetURL()+'Remit/Transaction/Reports/SearchTransaction.aspx?controlNo='' + dbo.FNADecryptString(main.controlNo) + '''''')">'' + dbo.FNADecryptString(main.controlNo) + ''</a>''
  637. ,main.newPBranch
  638. ,main.newPBranchName
  639. ,main.oldPBranch
  640. ,main.oldPBranchName
  641. ,main.payoutAmount
  642. ,main.oldPaidDate
  643. ,main.narration
  644. ,main.receiverName
  645. ,main.senderName
  646. ,main.tranStatus
  647. ,main.createdBy
  648. ,main.createdDate
  649. ,main.modifiedDate
  650. ,main.modifiedBy
  651. ,main.hasChanged
  652. FROM ' + @table + ' main
  653. ) x'
  654. SET @sql_filter = ''
  655. IF @controlNo IS NOT NULL
  656. SET @sql_filter = @sql_filter + ' AND controlNo1 = ''' + dbo.FNAEncryptString(@controlNo) + ''''
  657. IF @hasChanged IS NOT NULL
  658. SET @sql_filter = @sql_filter + ' AND hasChanged = ''' + CAST(@haschanged AS VARCHAR) + ''''
  659. IF @createdDate IS NOT NULL
  660. SET @sql_filter = @sql_filter + ' AND cast(createdDate as date) = ''' + CAST(@createdDate AS VARCHAR(11)) + ''''
  661. SET @select_field_list ='
  662. eptId
  663. ,tranId
  664. ,controlNo1
  665. ,controlNo
  666. ,newPBranch
  667. ,newPBranchName
  668. ,oldPBranch
  669. ,oldPBranchName
  670. ,payoutAmount
  671. ,oldPaidDate
  672. ,narration
  673. ,receiverName
  674. ,senderName
  675. ,tranStatus
  676. ,createdBy
  677. ,createdDate
  678. ,modifiedDate
  679. ,modifiedBy
  680. ,hasChanged
  681. '
  682. EXEC dbo.proc_paging
  683. @table
  684. ,@sql_filter
  685. ,@select_field_list
  686. ,@extra_field_list
  687. ,@sortBy
  688. ,@sortOrder
  689. ,@pageSize
  690. ,@pageNumber
  691. END
  692. IF @flag = 'c'
  693. BEGIN
  694. IF NOT EXISTS(SELECT 'X' FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted AND tranStatus = 'Paid')
  695. BEGIN
  696. EXEC proc_errorHandler 1, 'Paid Transaction Not Found', @controlNoEncrypted
  697. RETURN
  698. END
  699. IF EXISTS(SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE tranId = @tranId AND tranStatus = 'Unpaid' AND ISNULL(isDeleted,'N')<>'Y')
  700. BEGIN
  701. EXEC proc_errorHandler 1, 'Transaction Already Processed For Mistakely Post!', @controlNoEncrypted
  702. RETURN
  703. END
  704. SELECT @agentId = agentId FROM applicationUsers WITH(NOLOCK) WHERE userName = @user
  705. IF @agentId = dbo.FNAGetHOAgentId()
  706. BEGIN
  707. EXEC proc_errorHandler 0, 'Transaction Found', @controlNoEncrypted
  708. RETURN
  709. END
  710. EXEC proc_errorHandler 0, 'Transaction Found', @controlNo
  711. END
  712. IF @flag = 'a'
  713. BEGIN
  714. SELECT a.*,dbo.FNADecryptString(b.controlNo) controlNo ,
  715. newPBranchName1 = newPBranchName+'|'+newPbranch
  716. FROM errPaidTran a WITH(NOLOCK) INNER JOIN remitTran b WITH(NOLOCK) ON a.tranId=b.id
  717. WHERE eptId = @rowId
  718. END
  719. IF @flag = 'PAY'
  720. BEGIN
  721. SELECT
  722. eptId
  723. ,newPBranch
  724. ,newPBranchName
  725. FROM errPaidTran WITH(NOLOCK)
  726. WHERE approvedDate IS NOT NULL
  727. AND tranId = @tranId
  728. AND tranStatus ='Unpaid'
  729. AND ISNULL(isDeleted,'N')<>'Y'
  730. END
  731. IF @flag = 'payUpdate'
  732. BEGIN
  733. IF NOT EXISTS(SELECT 'X'
  734. FROM errPaidTran WITH(NOLOCK)
  735. WHERE approvedDate IS NOT NULL
  736. AND eptId = @rowId
  737. AND tranStatus ='Unpaid'
  738. AND newPaidDate IS NULL
  739. AND ISNULL(isDeleted,'N')<>'Y')
  740. BEGIN
  741. SELECT '1','Transaction Not Available For Payment Order.',@rowId
  742. RETURN
  743. END
  744. SELECT
  745. @oldPBranch = oldPBranch
  746. ,@newPBranch = CASE WHEN @newPBranch IS NULL THEN newPBranch ELSE @newPBranch END
  747. ,@tranAmount = payoutAmt
  748. FROM errPaidTran WITH(NOLOCK)
  749. WHERE eptId=@rowId
  750. IF @newPBranch IS NULL OR @newPBranch = ''
  751. BEGIN
  752. SELECT '1','PO agent is missing.',@rowId
  753. RETURN
  754. END
  755. IF @newDeliveryMethod IS NULL OR @newDeliveryMethod = ''
  756. BEGIN
  757. SELECT '1','PO agent is missing.',@rowId
  758. RETURN
  759. END
  760. SELECT @newPBranchName = agentName
  761. FROM agentMaster WITH(NOLOCK) WHERE agentId = @newPBranch
  762. SET @pBranch = @newPBranch
  763. SELECT
  764. @agentType = agentType
  765. ,@pBranchName = agentName
  766. ,@pAgent = parentId
  767. ,@a_mapCodeDom = mapCodeDom
  768. ,@a_mapCodeInt = mapCodeInt
  769. ,@a_commCodeDom = commCodeDom
  770. ,@a_commCodeIntl = commCodeInt
  771. ,@b_mapCodeDom = mapCodeDom
  772. ,@b_mapCodeInt = mapCodeInt
  773. ,@b_commCodeDom = commCodeDom
  774. ,@b_commCodeIntl = commCodeInt
  775. ,@pCountry = agentCountry
  776. ,@pState = agentState
  777. ,@pDistrict = agentDistrict
  778. FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranch
  779. SELECT
  780. @deliveryMethod = paymentMethod
  781. ,@pLocation = pLocation
  782. ,@tAmt = tAmt
  783. ,@cAmt = cAmt
  784. ,@pAmt = pAmt
  785. ,@payoutCurr = payoutCurr
  786. ,@serviceCharge = serviceCharge
  787. ,@sBranch = sBranch
  788. ,@sCountry = sCountry
  789. ,@sBranch = sBranch
  790. FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
  791. SELECT @sLocation = agentLocation FROM agentMaster WITH(NOLOCK) WHERE agentId = @sBranch
  792. IF @agentType = 2903 --Agent
  793. BEGIN
  794. SET @pAgent = @pBranch
  795. END
  796. ELSE
  797. BEGIN
  798. SELECT
  799. @a_mapCodeDom = mapCodeDom
  800. ,@a_mapCodeInt = mapCodeInt
  801. ,@a_commCodeDom = commCodeDom
  802. ,@a_commCodeIntl = commCodeInt
  803. FROM agentMaster WITH(NOLOCK) WHERE agentId = @pAgent
  804. END
  805. SELECT @pSuperAgent = parentId, @pAgentName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pAgent
  806. SELECT @pSuperAgentName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pSuperAgent
  807. --3.Find Settlement Agent
  808. SELECT @settlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranch AND isSettlingAgent = 'Y'
  809. IF @settlingAgent IS NULL
  810. SELECT @settlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @pAgent AND isSettlingAgent = 'Y'
  811. IF @settlingAgent IS NULL
  812. SELECT @settlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @pSuperAgent AND isSettlingAgent = 'Y'
  813. SELECT @deliveryMethodId = serviceTypeId
  814. FROM serviceTypeMaster WITH(NOLOCK) WHERE typeTitle = @newDeliveryMethod AND ISNULL(isDeleted, 'N') = 'N'
  815. IF(@sCountry = 'Nepal')
  816. BEGIN
  817. IF @deliveryMethod = 'Cash Payment'
  818. BEGIN
  819. DECLARE @tranDistrictId INT, @payAgentDistrictId INT
  820. SELECT @payAgentDistrictId = districtId FROM apiLocationMapping WITH(NOLOCK) WHERE apiDistrictCode = @pLocation
  821. SELECT @tranDistrictId = districtId FROM apiLocationMapping WITH(NOLOCK) WHERE apiDistrictCode = (SELECT pLocation FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted)
  822. IF @payAgentDistrictId IS NULL
  823. BEGIN
  824. SELECT '1', 'Payout Location not found.',@rowId
  825. RETURN
  826. END
  827. IF @tranDistrictId IS NULL
  828. BEGIN
  829. SELECT '1', 'Payout Location not found.',@rowId
  830. RETURN
  831. END
  832. IF(@tranDistrictId <> @payAgentDistrictId)
  833. BEGIN
  834. SELECT '1', 'You are not allowed to pay this TXN. This TRANSACTION is not within the agent district.', @rowId
  835. RETURN
  836. END
  837. END
  838. END
  839. IF @sCountry = 'Nepal'
  840. BEGIN
  841. DECLARE @commissionCheck MONEY, @mapCode VARCHAR(20), @payOption INT
  842. IF @newDeliveryMethod = 'Cash Payment'
  843. SELECT @mapCode = mapCodeInt, @payOption = payOption FROM agentMaster WITH(NOLOCK) WHERE agentId = @newPBranch
  844. ELSE
  845. SELECT @mapCode = mapCodeIntAc, @payOption = payOption FROM agentMaster WITH(NOLOCK) WHERE agentId = @newPBranch
  846. IF @payOption IN (10,20)
  847. BEGIN
  848. SELECT
  849. @pAgentComm = ISNULL(pAgentComm, 0)
  850. ,@pSuperAgentComm = ISNULL(psAgentComm, 0)
  851. ,@commissionCheck = pAgentComm
  852. FROM dbo.FNAGetDomesticPayComm(@sBranch, @pBranch, @deliveryMethodId, @tAmt)
  853. END
  854. ELSE
  855. BEGIN
  856. SELECT @pAgentComm = 0, @commissionCheck = 0
  857. END
  858. SELECT @pAgentCommCurrency = 'NPR', @pSuperAgentCommCurrency = 'NPR'
  859. END
  860. ELSE
  861. BEGIN
  862. DECLARE @sCountryId INT
  863. IF @newDeliveryMethod = 'Cash Payment'
  864. SELECT @mapCode = mapCodeInt, @payOption = payOption FROM agentMaster WITH(NOLOCK) WHERE agentId = @newPBranch
  865. ELSE
  866. SELECT @mapCode = mapCodeIntAc, @payOption = payOption FROM agentMaster WITH(NOLOCK) WHERE agentId = @newPBranch
  867. SELECT @sCountryId = countryId FROM countryMaster WITH(NOLOCK) WHERE countryName = @sCountry AND ISNULL(isDeleted, 'N') = 'N'
  868. SELECT @sLocation = agentLocation FROM agentMaster WITH(NOLOCK) WHERE agentId = @sBranch
  869. SELECT @pSuperAgentComm = 0, @pSuperAgentCommCurrency = 'NPR'
  870. --IF @payOption IN (10,20)
  871. SELECT @pAgentComm = ISNULL(amount, 0),
  872. @commissionCheck = amount,
  873. @pAgentCommCurrency = commissionCurrency
  874. FROM dbo.FNAGetPayComm(@sBranch, @sCountryId, @sLocation, @pSuperAgent, 151, @pLocation,
  875. @pBranch, 'NPR', @deliveryMethodId, @cAmt, @pAmt, @serviceCharge, NULL, NULL)
  876. --ELSE
  877. -- SELECT @pAgentComm = 0, @pAgentCommCurrency = 'NPR', @commissionCheck = 0
  878. SELECT @pSuperAgentComm = 0, @pSuperAgentCommCurrency = 'NPR'
  879. END
  880. UPDATE errPaidTran SET
  881. ridType = @rIdType
  882. ,rIdNo = @rIdNo
  883. ,expiryType = @expiryType
  884. ,issueDate = @issueDate
  885. ,validDate = @validDate
  886. ,placeOfIssue = @placeOfIssue
  887. ,mobileNo = @mobileNo
  888. ,rRelativeType = @rRelativeType
  889. ,rRelativeName = @rRelativeName
  890. ,newPBranch = @pBranch
  891. ,newPBranchName = @pBranchName
  892. ,newPSuperAgentComm = @pSuperAgentComm
  893. ,newPSuperAgentCommCurrency = @pSuperAgentCommCurrency
  894. ,newPAgentComm = @pAgentComm
  895. ,newPAgentCommCurrency = @pAgentCommCurrency
  896. ,newPSuperAgent = @pSuperAgent
  897. ,newPSuperAgentName = @pSuperAgentName
  898. ,newPAgent = @pAgent
  899. ,newPAgentName = @pAgentName
  900. ,newDeliveryMethod = @newDeliveryMethod
  901. ,tranStatus = 'Paid'
  902. ,newPaidBy = @user
  903. ,newPaidDate = GETDATE()
  904. ,payRemarks = @payRemarks
  905. ,newSettlingAgent = @settlingAgent
  906. WHERE eptId = @rowId
  907. --6.Update receiver identification details
  908. SELECT @tranId = id, @controlNo = dbo.fnadecryptstring(controlNo) FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
  909. UPDATE tranReceivers SET
  910. idType = @rIdType
  911. ,idNumber = @rIdNo
  912. ,issuedDate = @issueDate
  913. ,validDate = @validDate
  914. ,placeOfIssue = @placeOfIssue
  915. ,mobile = @mobileNo
  916. WHERE tranId = @tranId
  917. EXEC proc_updatePayTopUpLimit @settlingAgent, @tranAmount
  918. SELECT
  919. @oldPaidDate = oldPaidDate
  920. ,@oldPBranchName = oldPBranchName
  921. ,@newPBranchName = newPBranchName
  922. ,@newPaidDate = createdDate
  923. FROM errPaidTran WHERE EPTID=@ROWID
  924. SET @MESSAGE='PO:Transaction has been paid by '+ ISNULL(@user,'') +' from '+ISNULL(@newPBranchName,'')+' agent on '+ CAST(GETDATE() AS VARCHAR)+' for Mistakely post record!'
  925. EXEC proc_transactionLogs 'i', @user, @tranId, @MESSAGE, 'M'
  926. IF ISNUMERIC(@controlNo) = 1 AND RIGHT(@controlNo,1) <> 'D'
  927. BEGIN
  928. INSERT INTO dbo.rs_remitTranTroubleTicket(RefNo,Comments,DatePosted,PostedBy,uploadBy,status,noteType,tranno,category)
  929. SELECT @controlNoEncrypted, @message, GETDATE(), @user, @user, NULL, 2, NULL, 'push'
  930. END
  931. --## Accounting PO
  932. UPDATE AC SET
  933. PO_COMMISSION = CASE WHEN R.sAgent = 4854 THEN 0 ELSE ISNULL(E.newPAgentComm,0) END
  934. ,PO_AgentCode = CASE WHEN R.tranType = 'D' AND E.newDeliveryMethod = 'Bank Deposit' THEN am.mapCodeDom
  935. ELSE AM.mapCodeInt END
  936. ,PO_BranchCode = CASE WHEN R.tranType = 'D' AND E.newDeliveryMethod = 'Bank Deposit' THEN bm.mapCodeDom
  937. ELSE bm.mapCodeInt END
  938. ,PO_DATE = E.newPaidDate
  939. ,PO_USER = E.newPaidBy
  940. ,PO_INVOICENO = E.eptId
  941. FROM FastMoneyPro_account.DBO.ErroneouslyPaymentNew AC, errPaidTran E (NOLOCK), REMITTRAN R (NOLOCK) ,AGENTMASTER AM (NOLOCK),AGENTMASTER BM (NOLOCK)
  942. WHERE E.EPTID = AC.EP_INVOICENO
  943. AND E.TRANID = R.ID
  944. AND E.newPBranch = bm.agentId
  945. AND E.newPAgent = am.agentId
  946. AND AC.ref_no = @controlNo
  947. -- ## Limit Update
  948. EXEC Proc_AgentBalanceUpdate @flag = 'po',@tAmt = @pAmt ,@settlingAgent = @pBranch
  949. IF @@TRANCOUNT > 0
  950. COMMIT TRANSACTION
  951. EXEC proc_errorHandler 0, 'Transaction has been paid successfully.', @tranId
  952. END
  953. IF @flag = 'cancel'
  954. BEGIN
  955. IF NOT EXISTS (SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE eptId = @rowId)
  956. BEGIN
  957. EXEC proc_errorHandler 1, 'Record not found.', @rowId
  958. RETURN
  959. END
  960. IF EXISTS (SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE eptId = @rowId AND approvedBy IS NULL)
  961. BEGIN
  962. EXEC proc_errorHandler 1, 'You can not cancel this transaction before approval.', @rowId
  963. RETURN
  964. END
  965. IF EXISTS (SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE eptId = @rowId AND tranStatus ='Paid')
  966. BEGIN
  967. EXEC proc_errorHandler 1, 'You can not cancel, Transaction has been already paid.', @rowId
  968. RETURN
  969. END
  970. BEGIN TRANSACTION
  971. UPDATE errPaidTran SET
  972. modifiedBy = @user
  973. ,modifiedDate = GETDATE()
  974. ,tranStatus = 'Cancel'
  975. FROM errPaidTran main WHERE main.eptId= @rowId
  976. SELECT @tranId = tranId FROM dbo.errPaidTran ep WITH(NOLOCK) WHERE eptId= @rowId
  977. SET @MESSAGE='EP Cancelled: '+ ISNULL(@narration,'')
  978. EXEC proc_transactionLogs 'i', @user, @tranId, @narration, 'C'
  979. COMMIT TRANSACTION
  980. EXEC proc_errorHandler 0, 'Transaction has been cancelled successfully', @rowId
  981. END
  982. END TRY
  983. BEGIN CATCH
  984. IF @@TRANCOUNT > 0
  985. ROLLBACK TRANSACTION
  986. DECLARE @errorMessage VARCHAR(MAX)
  987. SET @errorMessage = ERROR_MESSAGE()
  988. EXEC proc_errorHandler 1, @errorMessage, @tranId
  989. END CATCH
  990. GO