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.

341 lines
11 KiB

1 year ago
  1. SET QUOTED_IDENTIFIER ON
  2. SET ANSI_NULLS ON
  3. GO
  4. CREATE OR ALTER PROCEDURE PROC_GET_TRANSACTION_MONEYGRAM(
  5. @controlNo VARCHAR(100) = NULL
  6. ,@tranId BIGINT = NULL
  7. ,@agentId VARCHAR(20) = NULL
  8. ,@flag VARCHAR(20)
  9. )
  10. AS
  11. SET NOCOUNT ON;
  12. BEGIN
  13. IF @flag='tran'
  14. BEGIN
  15. DECLARE @decryptedControlNo VARCHAR(100),@partnerId BIGINT = NULL
  16. SET @decryptedControlNo=dbo.FNADecryptString(@controlNo)
  17. DECLARE @PartnerRemitPurposeMapping TABLE(DefaultValue VARCHAR(100) NOT NULL,PartnerValue VARCHAR(100) NULL)
  18. DECLARE @PartnerFundSourceMapping TABLE(DefaultValue VARCHAR(100) NOT NULL,PartnerValue VARCHAR(100) NULL)
  19. DECLARE @PartnerIdTypeMapping TABLE(DefaultValue VARCHAR(100) NOT NULL,PartnerValue VARCHAR(100) NULL)
  20. DECLARE @PartnerRelationShipMapping TABLE(DefaultValue VARCHAR(100) NOT NULL,PartnerValue VARCHAR(100) NULL)
  21. DECLARE @PartnerOccupationMapping TABLE(DefaultValue VARCHAR(100) NOT NULL,PartnerValue VARCHAR(100) NULL, Detail VARCHAR(200) NULL)
  22. INSERT INTO @PartnerRemitPurposeMapping(DefaultValue,PartnerValue)
  23. SELECT 'Family maintenance','MAINTENANCE_EXPENSES' UNION ALL
  24. SELECT 'Savings','OTHER' UNION ALL
  25. SELECT 'Salary / Commission','OTHER'
  26. INSERT INTO @PartnerFundSourceMapping(DefaultValue,PartnerValue)
  27. SELECT 'Salary / Wages','CASH' UNION ALL
  28. SELECT 'Business','BUSINESS' UNION ALL
  29. SELECT 'Savings','SAVINGS'
  30. INSERT INTO @PartnerIdTypeMapping(DefaultValue,PartnerValue)
  31. SELECT 'Business Registation','STA' UNION ALL
  32. SELECT 'Alien Registration Card','ALN' UNION ALL
  33. SELECT 'National ID','GOV' UNION ALL
  34. SELECT 'Passport','PAS' UNION ALL
  35. SELECT 'Driving License','DRV'
  36. INSERT INTO @PartnerRelationShipMapping(DefaultValue,PartnerValue)
  37. SELECT 'Father','FATHER' UNION ALL
  38. SELECT 'Mother','MOTHER' UNION ALL
  39. SELECT 'Wife','WIFE' UNION ALL
  40. SELECT 'Brother','BROTHER' UNION ALL
  41. SELECT 'Sister','SISTER' UNION ALL
  42. SELECT 'Uncle','UNCLE' UNION ALL
  43. SELECT 'Aunt','AUNT' UNION ALL
  44. SELECT 'Friend','FRIEND' UNION ALL
  45. SELECT 'Self','SELF'
  46. INSERT INTO @PartnerOccupationMapping(DefaultValue,PartnerValue,Detail)
  47. SELECT 'Govt. Employee','ADMIN' AS acvalue,'Administrative (Secretary, Paralegal)' AS aclabel
  48. UNION ALL
  49. SELECT '','AGRICULTURE','Agriculture (Farmer, Forestry, Animal Care)'
  50. UNION ALL
  51. SELECT 'Businessman','AUTOMOTIVE_SALES','Automotive Sales/Repair'
  52. UNION ALL
  53. SELECT 'Salaried','BANKING','Banking / Financial Services'
  54. UNION ALL
  55. SELECT 'Salaried','CLEAN_SERVICES','Cleaning Services (Maid, Janitorial)'
  56. UNION ALL
  57. SELECT 'Self employed','CLERGY','Clergy / Religious Leader'
  58. UNION ALL
  59. SELECT 'Self employed','COMPUTER','Computer / IT Services'
  60. UNION ALL
  61. SELECT 'Businessman','CONSTRUCT_WORKER','Construction Worker (Residential/Commercial)'
  62. UNION ALL
  63. SELECT 'Salaried','CUSTOMER_CARE','Customer Care / Call Center Support'
  64. UNION ALL
  65. SELECT 'Student','EDUCATION','Education (Teacher, Administrator, Writer)'
  66. UNION ALL
  67. SELECT 'Salaried','ENGINEER','Engineer'
  68. UNION ALL
  69. SELECT 'Salaried','FACTORY','Factory / Manufacturing / Production'
  70. UNION ALL
  71. SELECT 'Salaried','GENERAL_LABOR','General Labor (Mason, Construction)'
  72. UNION ALL
  73. SELECT 'Govt. Employee','GOV_EMPLOYEE','Government Employee / Military / Police'
  74. UNION ALL
  75. SELECT 'Salaried','HEALTH_SERVICES','Healthcare Services (Nurse/Lab/EMT)'
  76. UNION ALL
  77. SELECT 'Self employed','HOMEMAKER','Homemaker'
  78. UNION ALL
  79. SELECT 'Self employed','PROF_DRIVER','Professional Driver (Taxi/Trucking/Delivery)'
  80. UNION ALL
  81. SELECT 'Self employed','PUBLIC_OFFICIAL','Public Official, Legislator, etc.'
  82. UNION ALL
  83. SELECT 'Self employed','RESTAURANT','Restaurant / Food Services (Cook, Servers)'
  84. UNION ALL
  85. SELECT 'Salaried','RETAIL','Retail (Store Manager, Cashier, Stocker)'
  86. UNION ALL
  87. SELECT 'Retiree','RETIRED','Retired'
  88. UNION ALL
  89. SELECT 'Student','STUDENT','Student'
  90. UNION ALL
  91. SELECT 'Unemployed','UNEMPLOYED','Unemployed / Not in Labor Force'
  92. DECLARE @pBankId VARCHAR(20) = NULL,@pBankBranchId VARCHAR(20)
  93. SELECT @tranId=id,@partnerId=pSuperAgent,@pBankId=pBank, @pBankBranchId = pBankBranch FROM dbo.remitTrantemp(NOLOCK) WHERE controlNo=@controlNo
  94. IF @tranId IS NULL
  95. BEGIN
  96. SELECT '1' ErrorCode,'Cannot process the transaction' Msg, @decryptedControlNo Id
  97. END
  98. ELSE
  99. BEGIN
  100. SELECT '0' ErrorCode, 'Can process the transaction' Msg, @decryptedControlNo Id
  101. END
  102. DECLARE @pBankCode VARCHAR(20) = NULL , @pBankBranchCode VARCHAR(20) = NULL
  103. IF EXISTS(SELECT 'A' FROM dbo.remitTrantemp(NOLOCK) WHERE id=@tranId AND purposeOfRemit IS NULL)
  104. UPDATE dbo.remitTrantemp SET purposeOfRemit = 'Family maintenance' WHERE id=@tranId
  105. IF EXISTS(SELECT 'A' FROM dbo.remitTrantemp(NOLOCK) WHERE id=@tranId AND relWithSender IS NULL)
  106. UPDATE dbo.remitTrantemp SET relWithSender = 'Friend' WHERE id=@tranId
  107. IF EXISTS(SELECT 'A' FROM tranSendersTemp(NOLOCK) WHERE tranId = @tranId AND city IS NULL)
  108. BEGIN
  109. UPDATE dbo.tranSendersTemp SET city = 'Seoul' WHERE tranId=@tranId
  110. UPDATE customerMaster SET city = 'Seoul' WHERE city IS NULL AND approvedDate IS NOT NULL
  111. END
  112. SELECT @pBankCode = agentCode FROM dbo.agentMaster(nolock)
  113. WHERE agentId = @pBankId AND agentType = '2903' AND isActive = 'Y'
  114. SELECT @pBankBranchCode = agentCode FROM dbo.agentMaster(nolock)
  115. WHERE agentId = @pBankBranchId AND agentType = '2904' AND isActive = 'Y'
  116. SELECT
  117. rt.id
  118. ,controlNo=dbo.FNADecryptString(rt.controlNo)
  119. ,rt.sCurrCostRate
  120. ,rt.sCurrHoMargin
  121. ,rt.serviceCharge
  122. ,rt.sCountry
  123. ,sCountryIso2=cms.countryCode
  124. ,sCountryIso3=cms.isoAlpha3
  125. ,rt.sSuperAgent
  126. ,rt.sSuperAgentName
  127. ,rt.sAgent
  128. ,rt.sAgentName
  129. ,rt.sBranch
  130. ,rt.sBranchName
  131. ,rt.pCountry
  132. ,pCountryIso2=cmp.countryCode
  133. ,pCountryIso3=cmp.isoAlpha3
  134. ,rt.pSuperAgent
  135. ,rt.pSuperAgentName
  136. ,rt.pAgent
  137. ,rt.pAgentName
  138. ,rt.pBranch
  139. ,rt.pBranchName
  140. ,rt.paymentMethod
  141. ,rcAgent.agentCode AS pBank
  142. ,rt.pBankName
  143. ,rt.pBankBranch
  144. ,rt.pBankBranchName
  145. ,'576667877' AS accountNo
  146. ,rt.externalBankCode
  147. ,rt.collMode
  148. ,rt.collCurr
  149. ,rt.tAmt
  150. ,rt.cAmt
  151. ,rt.pAmt
  152. ,rt.payoutCurr
  153. ,relWithSender=rws.PartnerValue
  154. ,purposeOfRemit=por.PartnerValue
  155. ,sourceOfFund = fs.PartnerValue
  156. ,rt.tranStatus
  157. ,rt.payStatus
  158. ,ContNo=dbo.FNADecryptString(rt.ContNo)
  159. ,controlNo2=dbo.FNADecryptString(rt.controlNo2)
  160. ,rt.senderName
  161. ,rt.receiverName
  162. ,isOnlineTxn= ''
  163. ,rt.sRouteId
  164. ,deliveryMethodId=CASE WHEN rt.paymentMethod ='Cash Payment' THEN '1'
  165. WHEN rt.paymentMethod = 'Bank Deposit' THEN '2'
  166. WHEN rt.paymentMethod='Mobile Wallet' THEN '13'
  167. WHEN rt.paymentMethod = 'Home Delivery' THEN '12'
  168. ELSE '0' END
  169. ,round(ex.pAmt/rt.pCurrCostRate,2) AS [UsdAmount]
  170. ,ex.FOREX_SESSION_ID AS forexSessionId
  171. ,thirdPartyType = 'NONE'
  172. ,receivingAgentID = rcAgent.routingCode
  173. FROM dbo.remitTranTemp(NOLOCK) rt
  174. INNER JOIN dbo.exRateCalcHistory(NOLOCK)ex ON ex.ControlNo = rt.controlNo
  175. INNER JOIN dbo.countryMaster(NOLOCK) cms ON rt.sCountry=cms.countryName
  176. INNER JOIN dbo.countryMaster(NOLOCK) cmp ON rt.pCountry=cmp.countryName
  177. LEFT JOIN @PartnerRemitPurposeMapping por ON por.DefaultValue=rt.purposeOfRemit
  178. LEFT JOIN @PartnerFundSourceMapping fs ON fs.DefaultValue=rt.sourceOfFund
  179. LEFT JOIN @PartnerRelationShipMapping rws ON rws.DefaultValue=rt.relWithSender
  180. LEFT JOIN dbo.agentMaster(NOLOCK) rcAgent ON rcAgent.agentId = rt.pBank
  181. WHERE rt.id=@tranId
  182. SELECT
  183. ts.tranId
  184. ,ts.customerId
  185. ,ts.membershipId
  186. ,firstName=(SELECT firstName FROM dbo.FNASplitName(ts.firstName) )
  187. ,middleName=(SELECT middleName FROM dbo.FNASplitName(ts.firstName) )
  188. ,lastName1=(SELECT lastName1 FROM dbo.FNASplitName(ts.firstName) )
  189. ,lastName2=(SELECT lastName2 FROM dbo.FNASplitName(ts.firstName) )
  190. ,ts.fullName
  191. ,ts.country
  192. ,countryIso2=c.countryCode
  193. ,countryIso3=c.isoAlpha3
  194. ,ts.address
  195. ,ts.STATE
  196. ,ts.district
  197. ,'610000' AS zipCode
  198. ,ts.city
  199. ,'' AS email
  200. ,ts.homePhone
  201. ,ts.workPhone
  202. ,mobile=ts.mobile
  203. ,phoneCode='82'
  204. ,ts.nativeCountry
  205. ,nativeCountryIso2=cmn.countryCode
  206. ,nativeCountryIso3=cmn.isoAlpha3
  207. ,dob=FORMAT(ts.dob, 'yyyy-MM-dd', 'en-US' )
  208. ,ts.placeOfIssue
  209. ,ts.customerType
  210. ,occupation = ISNULL(pom.PartnerValue,'STUDENT')
  211. ,idType=itp.PartnerValue
  212. ,ts.idNumber
  213. ,ts.idPlaceOfIssue
  214. ,issuedDate=FORMAT(ts.issuedDate, 'yyyy-MM-dd', 'en-US' )
  215. ,validDate =FORMAT(ts.validDate, 'yyyy-MM-dd', 'en-US' )
  216. ,gender= ''
  217. ,ts.salary
  218. ,ts.companyName
  219. ,ts.address2
  220. ,consumerId = '0'
  221. FROM dbo.tranSendersTemp (NOLOCK)ts
  222. INNER JOIN dbo.customerMaster(NOLOCK) cms ON ts.customerId=cms.customerId
  223. INNER JOIN dbo.countryMaster(NOLOCK) cmn ON ts.nativeCountry=cmn.countryName
  224. INNER JOIN dbo.countryMaster(NOLOCK) c ON ts.country=c.countryName
  225. LEFT JOIN @PartnerIdTypeMapping itp ON itp.DefaultValue=ts.idType
  226. LEFT JOIN @PartnerOccupationMapping pom ON ts.occupation = pom.DefaultValue
  227. WHERE ts.tranid=@tranId
  228. SELECT
  229. tr.tranId
  230. ,tr.customerId
  231. ,tr.membershipId
  232. ,tr.firstName
  233. ,tr.middleName
  234. ,tr.lastName1
  235. ,tr.lastName2
  236. ,tr.fullName
  237. ,tr.country
  238. ,countryIso2=c.countryCode
  239. ,countryIso3=c.isoAlpha3
  240. ,tr.address
  241. ,tr.STATE
  242. ,tr.district
  243. ,tr.zipCode
  244. ,tr.city
  245. ,'' AS email
  246. ,tr.homePhone
  247. ,tr.workPhone
  248. ,tr.mobile
  249. ,tr.nativeCountry
  250. ,nativeCountryIso2=cmn.countryCode
  251. ,nativeCountryIso3=cmn.isoAlpha3
  252. ,dob=FORMAT(tr.dob, 'yyyy-MM-dd', 'en-US' )
  253. ,tr.placeOfIssue
  254. ,tr.customerType
  255. ,tr.occupation
  256. ,idType = itp.PartnerValue
  257. ,idNumber = tr.idNumber
  258. ,tr.idPlaceOfIssue
  259. ,issuedDate=FORMAT(tr.issuedDate, 'yyyy-MM-dd', 'en-US' )
  260. ,validDate=FORMAT(tr.validDate, 'yyyy-MM-dd', 'en-US' )
  261. ,gender=''
  262. ,tr.address2
  263. ,ISNULL(ri.localFirstName,N'')+ISNULL(N' '+ri.localMiddleName,N'')+ISNULL(N' '+ri.localLastName1,N'')+ISNULL(N' '+ri.localLastName2,N'') AS nativename
  264. FROM dbo.tranReceiversTemp (NOLOCK)tr
  265. INNER JOIN dbo.countryMaster(NOLOCK) cmn ON tr.nativeCountry=cmn.countryName
  266. INNER JOIN dbo.countryMaster(NOLOCK) c ON tr.country=c.countryName
  267. INNER JOIN dbo.receiverInformation(NOLOCK) ri ON ri.receiverId=tr.customerId
  268. LEFT JOIN @PartnerIdTypeMapping itp ON itp.DefaultValue=tr.idType
  269. WHERE tr.tranid=@tranId
  270. END
  271. IF @flag='cancelTran'
  272. BEGIN
  273. SELECT
  274. ROUND(pAmt/pCurrCostRate,2) AS sendAmount
  275. ,null AS feeAmount
  276. ,'USD' AS sendCurrency
  277. ,dbo.FNADecryptString(controlNo) AS referenceNumber
  278. ,'gmeltd' AS operatorName
  279. ,'P' AS reversalType /* overridden from application based on same day reversal logic */
  280. ,'WRONG_SERVICE' AS sendReversalReason
  281. ,'' AS feeRefund /* overridden from application based on same day reversal logic*/
  282. ,CAST(0 AS BIT) AS communicationRetryIndicator /*1 true, 0 false */
  283. ,postedDateLocal AS sendDate
  284. FROM dbo.remitTran(NOLOCK) WHERE id = @tranId AND tranStatus = 'CancelRequest'
  285. END
  286. IF @flag='amendTran'
  287. BEGIN
  288. SELECT
  289. dbo.FNADecryptString(rt.controlNo) AS referenceNumber
  290. ,'gmeltd' AS operatorName
  291. ,tr.firstName AS receiverFirstName
  292. ,tr.middleName AS receiverMiddleName
  293. ,tr.lastName1 AS receiverLastName
  294. ,tr.lastName2 AS receiverLastName2
  295. FROM dbo.remitTran(NOLOCK) rt INNER JOIN dbo.tranReceivers tr ON rt.id = tr.tranId
  296. WHERE rt.id = @tranId AND rt.tranStatus = 'ModificationRequest'
  297. END
  298. IF @flag='getBankCode'
  299. BEGIN
  300. SELECT agentCode AS BANKCODE FROM dbo.agentMaster(nolock) WHERE agentId = @agentId AND isActive = 'Y'
  301. END
  302. END
  303. GO