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.

417 lines
20 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_sambaBatchTxn] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[proc_sambaBatchTxn]
  9. (
  10. @flag VARCHAR(50) = NULL
  11. ,@user VARCHAR(50) = NULL
  12. ,@id INT = NULL
  13. ,@extBankId INT = NULL
  14. ,@extBankName VARCHAR(200)= NULL
  15. ,@extBankBranchId INT = NULL
  16. ,@pBankType VARCHAR(50) = NULL
  17. ,@extBankBranchName VARCHAR(200)= NULL
  18. )
  19. AS
  20. SET NOCOUNT ON;
  21. SET XACT_ABORT ON;
  22. BEGIN TRY
  23. IF @flag ='i'
  24. BEGIN
  25. IF NOT EXISTS(SELECT 'X' FROM RemittanceLogData.dbo.[temp_money] WITH(NOLOCK) WHERE FLAG IS NULL)
  26. BEGIN
  27. EXEC proc_errorHandler 1, 'Transaction Not Found.', @user
  28. RETURN;
  29. END
  30. INSERT INTO sambaBatch
  31. (
  32. [controlNo]
  33. ,[senderName]
  34. ,[receiverName]
  35. ,[sCountry]
  36. ,[sSuperAgent]
  37. ,[sSuperAgentName]
  38. ,[sAgent]
  39. ,[sAgentName]
  40. ,[sBranch]
  41. ,[sBranchName]
  42. ,[paymentMethod]
  43. ,[cAmt]
  44. ,[tAmt]
  45. ,[pAmt]
  46. ,[customerRate]
  47. ,[payoutCurr]
  48. ,[pCountry]
  49. ,[pBank]
  50. ,[pbankName]
  51. ,[pBankBranch]
  52. ,[pBankBranchName]
  53. ,pBankType
  54. ,[accountNo]
  55. ,[tranStatus]
  56. ,[payStatus]
  57. ,[collCurr]
  58. ,[tranType]
  59. ,[serviceCharge]
  60. ,[sCurrCostRate]
  61. ,[pMessage]
  62. ,[createdBy]
  63. ,[createdDate]
  64. ,[createdDateLocal]
  65. ,senName
  66. ,senAddress
  67. ,senCity
  68. ,senCountry
  69. ,senNativeCountry
  70. ,senEmail
  71. ,senCompanyName
  72. ,senIdType
  73. ,senIdNumber
  74. ,recName
  75. ,recAddress
  76. ,recHomePhone
  77. ,recWorkPhone
  78. ,recCity
  79. ,recCountry
  80. ,recIdType
  81. ,recIdNumber
  82. )
  83. SELECT controlNo = refno ,
  84. senderName = SenderName ,
  85. ReceiverName receiverName,
  86. sCountry = SenderCountry ,
  87. sSuperAgent = '4641',
  88. sSuperAgentName = 'INTERNATIONAL AGENTS',
  89. sAgent = '4873',
  90. sAgentName = 'SAMBA FINANCIAL GROUP',
  91. sBranch = '4874',
  92. sBranchName = 'SAMBA FINANCIAL GROUP - RIYADH',
  93. paymentMethod = CASE WHEN tm.paymentType = 'Cash Pay' THEN 'Cash Payment' WHEN tm.paymentType = 'Bank Transfer' THEN 'Bank Deposit' ELSE tm.paymentType END,
  94. cAmt = paidAmt-1.87,
  95. tAmt = paidAmt-1.87,
  96. pAmt = TotalRoundAmt,
  97. customerRate = Today_Dollar_rate,
  98. payoutCurr = receiveCType,
  99. pCountry = 'Nepal',
  100. pBank = CASE WHEN tm.paymentType = 'Bank Transfer' THEN eb.extBankId ELSE NULL END,
  101. pBankName = CASE WHEN tm.paymentType = 'Bank Transfer' THEN eb.bankName ELSE NULL END,
  102. pBankBranch = NULL,
  103. pBankBranchName = CASE WHEN tm.paymentType = 'Bank Transfer' THEN rBankBranch ELSE NULL END,
  104. pBankType = CASE WHEN tm.paymentType = 'Bank Transfer' THEN 'E' ELSE NULL END,
  105. accountNo = tm.rBankACNo,
  106. tranStatus = 'Hold',
  107. payStatus = 'Unpaid',
  108. collCurr = paidCType,
  109. tranType = 'I',
  110. serviceCharge = SCharge,
  111. sCurrCostRate = '1',
  112. pMessage = ReciverMessage,
  113. createdBy =SEmpID,
  114. createdDate = local_DOT,
  115. createdDateLocal = local_DOT,
  116. tm.SenderName,
  117. tm.SenderAddress,
  118. tm.SenderCity,
  119. tm.SenderCountry,
  120. tm.SenderNativeCountry,
  121. tm.SenderEmail,
  122. SenderCompany,
  123. 'Passport',
  124. senderPassport,
  125. tm.ReceiverName,
  126. ReceiverAddress+'(AC:'+tm.rBankACNo+')',
  127. ReceiverPhone,
  128. receiver_mobile,
  129. ReceiverCity,
  130. ReceiverCountry,
  131. ReceiverIDDescription ,
  132. ReceiverID
  133. FROM RemittanceLogData.dbo.[temp_money] tm WITH(NOLOCK)
  134. LEFT JOIN agentMaster pb WITH(NOLOCK) ON pb.mapCodeInt = tm.rBankID AND (pb.agentType IN (2904, 2906) OR (pb.agentType = 2903 AND pb.actAsBranch = 'Y'))
  135. LEFT JOIN agentMaster pa WITH(NOLOCK) ON pb.parentId = pa.agentId AND pa.agentType IN (2903, 2905)
  136. LEFT JOIN externalBank eb WITH(NOLOCK) ON eb.mapCodeInt = pa.mapCodeInt
  137. WHERE tm.FLAG is null
  138. UPDATE RemittanceLogData.dbo.[temp_money] SET FLAG = 'Y' WHERE FLAG IS NULL
  139. EXEC proc_errorHandler 0, 'Data submitted successfully', @user
  140. END
  141. IF @flag = 's'
  142. BEGIN
  143. SELECT
  144. id,
  145. [Control No] = dbo.FNADecryptString(controlNo),
  146. [Sender Name] = senderName,
  147. [Receiver Name] = receiverName,
  148. [Sending Country] = sCountry,
  149. [Payment Method] = paymentMethod,
  150. [Payout Amount] = pAmt,
  151. [Bank Name] = pBankName,
  152. [Branch Name] = pBankBranchName,
  153. [Account No.] = accountNo,
  154. [Receiver Address] = recAddress
  155. FROM sambaBatch with(nolock) where approvedDate is null
  156. END
  157. IF @flag = 'u'
  158. BEGIN
  159. UPDATE sambaBatch SET pBank = '',pBankName='',pBankBranch = '',pBankBranchName = '' WHERE ID = @ID
  160. END
  161. IF @flag = 'd'
  162. BEGIN
  163. DELETE FROM sambaBatch WHERE id = @id
  164. EXEC proc_errorHandler 0, 'Record has been deleted successfully', @user
  165. END
  166. IF @flag='update-bank'
  167. BEGIN
  168. DECLARE @pAgent INT,@pBranch INT,@pAgentName VARCHAR(200)
  169. IF @pBankType = 'I'
  170. BEGIN
  171. SET @pAgent = @extBankId
  172. END
  173. ELSE
  174. BEGIN
  175. SELECT @pAgent = internalCode FROM externalBank WITH(NOLOCK) WHERE extBankId = @extBankId
  176. END
  177. SELECT @pAgentName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pAgent
  178. IF @pBranch IS NULL
  179. SELECT TOP 1 @pBranch = agentId FROM agentMaster WITH(NOLOCK) WHERE parentId = @pAgent AND isHeadOffice = 'Y'
  180. UPDATE sambaBatch SET
  181. pBranch = @pBranch
  182. ,pBank = @extBankId
  183. ,pBankBranch = @extBankBranchId
  184. ,pBankBranchName = @extBankBranchName
  185. ,pBankType = @pBankType
  186. ,pBankName = @extBankName
  187. ,modifiedBy = @user
  188. ,modifiedDate = Getdate()
  189. ,pAgent = @pAgent
  190. ,pAgentName = @pAgentName
  191. WHERE id = @id
  192. EXEC [proc_errorHandler] 0, 'Bank Updated Successfully.', @id
  193. END
  194. IF @flag = 'a'
  195. BEGIN
  196. SELECT
  197. id,
  198. controlNo = dbo.FNADecryptString(controlNo),
  199. senderName,
  200. receiverName,
  201. sCountry,
  202. sSuperAgent,
  203. sSuperAgentName,
  204. sAgent,
  205. sAgentName,
  206. sBranch,
  207. sBranchName,
  208. paymentMethod,
  209. tAmt,
  210. cAmt,
  211. pAmt,
  212. customerRate,
  213. payoutCurr,
  214. pCountry,
  215. pBank,
  216. pBankName,
  217. pBankBranch,
  218. pBankBranchName,
  219. pBankType,
  220. accountNo,
  221. tranStatus,
  222. payStatus,
  223. collCurr,
  224. tranType,
  225. serviceCharge,
  226. sCurrCostRate,
  227. pMessage,
  228. senName,
  229. senAddress,
  230. senCity,
  231. senCountry,
  232. senNativeCountry,
  233. senEmail,
  234. senCompanyName,
  235. senIdType,
  236. senIdNumber,
  237. senContactNo = '',
  238. recName,
  239. recAddress,
  240. recContactNo = isnull(recHomePhone,'')+' , '+isnull(recWorkPhone,''),
  241. recHomePhone,
  242. recWorkPhone,
  243. recCity,
  244. recCountry,
  245. recIdType,
  246. recIdNumber
  247. FROM sambaBatch WITH(NOLOCK) WHERE id = @id
  248. END
  249. IF @flag ='approve'
  250. BEGIN
  251. IF NOT EXISTS(SELECT 'X' FROM sambaBatch WITH(NOLOCK) WHERE approvedDate IS NULL)
  252. BEGIN
  253. EXEC proc_errorHandler 1, 'Transaction Not Found.', @user
  254. RETURN;
  255. END
  256. DECLARE @tranId BIGINT,@controlNoEncrypted VARCHAR(50)
  257. SELECT @controlNoEncrypted = controlNo FROM sambaBatch WITH(NOLOCK) WHERE id = @id
  258. INSERT INTO remitTran
  259. (
  260. [controlNo]
  261. ,[senderName]
  262. ,[receiverName]
  263. ,[sCountry]
  264. ,[sSuperAgent]
  265. ,[sSuperAgentName]
  266. ,[sAgent]
  267. ,[sAgentName]
  268. ,[sBranch]
  269. ,[sBranchName]
  270. ,[paymentMethod]
  271. ,[cAmt]
  272. ,[tAmt]
  273. ,[pAmt]
  274. ,[customerRate]
  275. ,[payoutCurr]
  276. ,[pCountry]
  277. ,pAgent
  278. ,pAgentName
  279. ,[pBank]
  280. ,[pbankName]
  281. ,[pBankBranch]
  282. ,[pBankBranchName]
  283. ,pBankType
  284. ,[accountNo]
  285. ,[tranStatus]
  286. ,[payStatus]
  287. ,[collCurr]
  288. ,[tranType]
  289. ,[serviceCharge]
  290. ,[sCurrCostRate]
  291. ,[pMessage]
  292. ,[createdBy]
  293. ,[createdDate]
  294. ,[createdDateLocal]
  295. ,approvedBy
  296. ,approvedDate
  297. ,approvedDateLocal
  298. )
  299. SELECT
  300. [controlNo]
  301. ,[senderName]
  302. ,[receiverName]
  303. ,[sCountry]
  304. ,[sSuperAgent]
  305. ,[sSuperAgentName]
  306. ,[sAgent]
  307. ,[sAgentName]
  308. ,[sBranch]
  309. ,[sBranchName]
  310. ,[paymentMethod] = case when pBankBranch is not null then 'Bank Deposit' else [paymentMethod] end
  311. ,[cAmt]
  312. ,[tAmt]
  313. ,[pAmt]
  314. ,[customerRate]
  315. ,[payoutCurr]
  316. ,[pCountry]
  317. ,pAgent
  318. ,pAgentName
  319. ,[pBank]
  320. ,[pbankName]
  321. ,[pBankBranch]
  322. ,[pBankBranchName]
  323. ,pBankType
  324. ,[accountNo]
  325. ,'Payment'
  326. ,'Unpaid'
  327. ,[collCurr]
  328. ,[tranType]
  329. ,[serviceCharge]
  330. ,[sCurrCostRate]
  331. ,[pMessage]
  332. ,[createdBy]
  333. ,[createdDate]
  334. ,[createdDateLocal]
  335. ,approvedBy =@user
  336. ,approvedDate = getdate()
  337. ,approvedDateLocal = getdate()
  338. FROM sambaBatch WITH(NOLOCK) WHERE id = @id
  339. SET @tranId = @@IDENTITY
  340. INSERT INTO tranSenders(tranId,firstName,address,city,country,nativeCountry,email,companyName,idType,idNumber)
  341. SELECT
  342. @tranId,
  343. senName,
  344. senAddress,
  345. senCity,
  346. senCountry,
  347. senNativeCountry,
  348. senEmail,
  349. senCompanyName,
  350. senIdType,
  351. senIdNumber
  352. FROM sambaBatch tm WITH(NOLOCK) WHERE id = @id
  353. INSERT INTO tranReceivers(tranId,firstName,address,homePhone,workPhone,city,country,idType,idNumber)
  354. SELECT
  355. @tranId,
  356. recName,
  357. recAddress,
  358. recHomePhone,
  359. recWorkPhone,
  360. recCity,
  361. recCountry,
  362. recIdType,
  363. recIdNumber
  364. FROM sambaBatch tm WITH(NOLOCK) WHERE id = @id
  365. UPDATE sambaBatch SET approvedBy = @user,approvedDate=GETDATE() WHERE id = @id
  366. EXEC proc_pushToAc @flag= 'i', @controlNoEncrypted = @controlNoEncrypted
  367. EXEC proc_errorHandler 0, 'Transaction has been approved successfully.', @tranId
  368. END
  369. END TRY
  370. BEGIN CATCH
  371. IF @@TRANCOUNT<>0
  372. ROLLBACK TRANSACTION
  373. DECLARE @errorMessage VARCHAR(MAX)
  374. SET @errorMessage = ERROR_MESSAGE()
  375. EXEC proc_errorHandler 1, @errorMessage, @user
  376. END CATCH
  377. GO