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.

361 lines
33 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_syncDomTxn] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. --SELECT TOP 1 paid_Date = paidDate + paidTime, * FROM hremit.dbo.AccountTransaction
  9. --EXEC proc_syncDomTxn
  10. CREATE procEDURE [dbo].[proc_syncDomTxn]
  11. @flag varchar(20)
  12. AS
  13. SET NOCOUNT ON
  14. CREATE TABLE #txn (id INT IDENTITY(1,1),tranNo VARCHAR(50))
  15. if @flag ='cashpayNewSync'
  16. begin
  17. --1. Transaction Generated by New System but Paid By Old System Synchronize-----------------------------------------------------------------------
  18. IF OBJECT_ID('tempdb..#TEMP1') IS NOT NULL
  19. DROP TABLE #TEMP1
  20. IF OBJECT_ID('tempdb..#TEMP2') IS NOT NULL
  21. DROP TABLE #TEMP2
  22. SELECT dbo.decryptDblocal(refno) AS refno, Tranno, SEmpID INTO #TEMP1
  23. FROM hremit.dbo.AccountTransaction WITH (NOLOCK)
  24. WHERE paidDate BETWEEN '2012-12-01' AND '2012-12-16 23:59'
  25. SELECT dbo.FNADecryptString(controlNo)AS controlNo INTO #TEMP2
  26. FROM remitTran WITH (NOLOCK)
  27. WHERE paidDate BETWEEN '2012-12-01' AND '2012-12-16 23:59'
  28. AND ISNULL(sCountry,'') = 'Nepal'
  29. /*
  30. SELECT A.refno, A.Tranno, A.SEmpID
  31. FROM #TEMP1 A
  32. WHERE A.refno NOT IN (SELECT controlNo from #TEMP2)
  33. */
  34. --TRUNCATE TABLE #txn
  35. INSERT INTO #txn
  36. SELECT A.Tranno FROM #TEMP1 A
  37. WHERE A.refno NOT IN (SELECT controlNo from #TEMP2)
  38. --SELECT * FROM @txn
  39. IF NOT EXISTS(SELECT 'X' FROM #txn)
  40. RETURN
  41. UPDATE rt SET
  42. rt.pBranch = pb.agentId
  43. ,rt.pBranchName = pb.agentName
  44. ,rt.pAgent = ISNULL(pa.agentId, pb.agentId)
  45. ,rt.pAgentName = ISNULL(pa.agentName, pb.agentName)
  46. ,rt.pSuperAgent = 1002
  47. ,rt.pSuperAgentName = 'International Money Express (IME) Pvt. Ltd'
  48. ,rt.pAgentComm = acTrn.receiverCommission
  49. ,rt.pAgentCommCurrency = 'NPR'
  50. ,rt.pSuperAgentComm = 0
  51. ,rt.pSuperAgentCommCurrency = 'NPR'
  52. ,rt.pCountry = 'Nepal'
  53. ,rt.pState = pb.agentState
  54. ,rt.pDistrict = pb.agentDistrict
  55. ,rt.tranStatus = 'Paid'
  56. ,rt.payStatus = 'Paid'
  57. ,rt.paidBy = 'D:' + acTrn.paidBy
  58. ,rt.paidDate = acTrn.paidDate + acTrn.paidTime
  59. ,rt.paidDateLocal = acTrn.paidDate + acTrn.paidTime
  60. FROM remitTran rt
  61. INNER JOIN hremit.dbo.AccountTransaction acTrn ON dbo.FNADecryptString(rt.controlNo) = dbo.decryptDbLocal(acTrn.refno)
  62. INNER JOIN #txn txn ON acTrn.Tranno = txn.tranNo
  63. INNER JOIN agentMaster pb ON pb.mapCodeInt = acTrn.rBankID
  64. LEFT JOIN agentMaster pa ON pb.parentId = pa.agentId AND pa.agentType = 2903
  65. UPDATE rec SET
  66. rec.idType2 = acTrn.rec_id_type
  67. ,rec.idNumber2 = acTrn.rec_id_no
  68. ,rec.mobile = acTrn.ReceiverPhone
  69. FROM tranReceivers rec
  70. INNER JOIN remitTran rt ON rec.tranId = rt.id
  71. INNER JOIN hremit.dbo.AccountTransaction acTrn ON dbo.FNADecryptString(rt.controlNo) = dbo.decryptDbLocal(acTrn.refno)
  72. INNER JOIN #txn txn ON acTrn.Tranno = txn.tranNo
  73. end
  74. if @flag ='cashpayOldImport'
  75. begin
  76. --------------------------------------------------------------------------------------------------------------------------------------
  77. --2. Old System Unpaid and Paid Transaction Import------------------------------------------------------------------------------------
  78. IF OBJECT_ID('tempdb..#TEMP3') IS NOT NULL
  79. DROP TABLE #TEMP3
  80. IF OBJECT_ID('tempdb..#TEMP4') IS NOT NULL
  81. DROP TABLE #TEMP4
  82. SELECT dbo.decryptDblocal(refno) AS refno, Tranno, SEmpID INTO #TEMP3
  83. FROM hremit.dbo.AccountTransaction WITH (NOLOCK)
  84. WHERE DOT BETWEEN '2010-12-18' AND '2012-12-18 23:59' and paymentType='Cash Pay'
  85. and status='un-paid' and TransStatus ='Payment'
  86. DELETE T
  87. from #TEMP3 T, remitTran M
  88. Where (T.refno) = dbo.FNADecryptstring(M.controlNo)
  89. SELECT dbo.FNADecryptString(controlNo)AS controlNo INTO #TEMP4
  90. FROM remitTran WITH (NOLOCK)
  91. WHERE createdDate BETWEEN '2010-12-19' AND '2012-12-19 23:59'
  92. AND ISNULL(sCountry,'') = 'Nepal'
  93. /*
  94. SELECT A.refno, A.Tranno, A.SEmpID FROM #TEMP3 A
  95. WHERE A.refno NOT IN (SELECT controlNo from #TEMP4)
  96. select * from #TEMP3
  97. */
  98. INSERT INTO #txn
  99. SELECT A.Tranno FROM #TEMP3 A
  100. -- select * from #txn
  101. IF NOT EXISTS(SELECT 'X' FROM #txn)
  102. RETURN
  103. --1. Main Table Insert-----------------------------------------------------------------------------------------------------------------------
  104. --SELECT TOP 1 * FROM hremit.dbo.AccountTransaction WHERE rBankID IS NOT NULL ORDER BY Tranno DESC
  105. INSERT INTO remitTran(
  106. controlNo,customerRate,serviceCharge,handlingFee
  107. ,sAgentComm,sAgentCommCurrency,sSuperAgentComm,sSuperAgentCommCurrency
  108. ,pAgentComm,pAgentCommCurrency,pSuperAgentComm,pSuperAgentCommCurrency
  109. ,sSuperAgent,sSuperAgentName,sAgent,sAgentName,sBranch,sBranchName,sCountry
  110. ,pSuperAgent,pSuperAgentName
  111. ,pAgent,pAgentName
  112. ,pBranch,pBranchName,pCountry
  113. ,pState,pDistrict,pLocation,paymentMethod
  114. ,collCurr,tAmt,cAmt,pAmt,payoutCurr
  115. ,relWithSender,tranStatus,payStatus
  116. ,createdDate,createdDateLocal,createdBy,approvedBy,approvedDate,approvedDateLocal
  117. ,paidDate,paidDateLocal,paidBy
  118. ,tranType,oldSysTranNo
  119. )
  120. SELECT
  121. dbo.FNAEncryptString(dbo.decryptDbLocal(actrn.refNo)),NULL,actrn.SCharge,0
  122. ,actrn.senderCommission,actrn.paidCType,0,actrn.paidCType
  123. ,actrn.receiverCommission,'NPR',0,'NPR'
  124. ,1002,'International Money Express (IME) Pvt. Ltd',ISNULL(sa.agentId, sb.agentId),ISNULL(sa.agentName, sb.agentName),sb.agentId,sb.agentName,actrn.SenderCountry
  125. ,1002,'International Money Express (IME) Pvt. Ltd'
  126. ,ISNULL(pa.agentId, pb.agentId),ISNULL(pa.agentName, pb.agentName)
  127. ,pb.agentId,pb.agentName,'Nepal'
  128. ,pb.agentState,pb.agentDistrict,receiveAgentID,CASE WHEN actrn.paymentType = 'Cash Pay' THEN 'Cash Payment' WHEN actrn.paymentType = 'Bank Transfer' THEN 'Bank Deposit' END
  129. ,actrn.paidCType,actrn.paidAmt - actrn.SCharge,actrn.paidAmt,actrn.TotalRoundAmt,'NPR'
  130. ,NULL,actrn.TransStatus,CASE WHEN actrn.[status] = 'Un-Paid' THEN 'Unpaid' ELSE actrn.[status] END
  131. ,actrn.confirmDate,actrn.confirmDate,CASE WHEN LEFT(actrn.sEmpId,2)='S:' THEN actrn.SEmpID ELSE 'D:' + actrn.SEmpID END,CASE WHEN LEFT(actrn.approve_by,2)='S:' THEN actrn.approve_by ELSE 'D:' + actrn.approve_by END,actrn.confirmDate,actrn.confirmDate
  132. ,actrn.paidDate,actrn.paidDate,CASE WHEN LEFT(actrn.paidBy, 2) = 'S:' THEN RIGHT(actrn.paidBy, LEN(actrn.paidBy) - 2) ELSE actrn.paidBy END
  133. ,'D',NULL
  134. FROM hremit.dbo.AccountTransaction actrn
  135. INNER JOIN #txn t ON actrn.Tranno = t.tranNo
  136. LEFT JOIN agentMaster sb WITH(NOLOCK) ON sb.mapCodeDom = actrn.agentid
  137. LEFT JOIN agentMaster sa WITH(NOLOCK) ON sa.agentId = sb.parentId AND sa.agentType = 2903
  138. LEFT JOIN agentMaster pb WITH(NOLOCK) ON pb.mapCodeInt = actrn.rBankID AND (pb.agentType = 2904 OR pb.actAsBranch = 'Y')
  139. LEFT JOIN agentMaster pa WITH(NOLOCK) ON pa.agentId = pb.parentId
  140. --2. Sender Information---------------------------------------------------------------------------------------------------------
  141. INSERT INTO tranSenders(
  142. tranId,firstName,[address],mobile,homePhone,idType,idNumber
  143. )
  144. SELECT
  145. rt.id,actrn.SenderName,actrn.SenderAddress,actrn.SenderPhoneno,actrn.SenderPhoneno,actrn.id_type,actrn.id_no
  146. FROM hremit.dbo.AccountTransaction actrn
  147. INNER JOIN #txn t ON actrn.Tranno = t.tranNo
  148. INNER JOIN remitTran rt WITH(NOLOCK) ON dbo.decryptDbLocal(actrn.refno) = dbo.FNADecryptString(rt.controlNo)
  149. --End-------------------------------------------------------------------------------------------------------------------------------
  150. --3. Receiver Information------------------------------------------------------------------------------------------------------------------
  151. INSERT INTO tranReceivers(
  152. tranId,firstName,[address],mobile,idType,idNumber,idType2,idNumber2
  153. )
  154. SELECT
  155. rt.id,actrn.ReceiverName,actrn.ReceiverAddress,actrn.ReceiverPhone,actrn.rec_id_type,actrn.rec_id_no,actrn.rec_id_type,actrn.rec_id_no
  156. FROM hremit.dbo.AccountTransaction actrn
  157. INNER JOIN #txn t ON actrn.Tranno = t.tranNo
  158. INNER JOIN remitTran rt WITH(NOLOCK) ON dbo.decryptDbLocal(actrn.refno) = dbo.FNADecryptString(rt.controlNo)
  159. --End--------------------------------------------------------------------------------------------------------------------------------------
  160. end
  161. if @flag ='acDepositNewSync' --A/C Deposit Txn Synchronize(New System)
  162. begin
  163. --1. Transaction Generated by New System(A/C Deposit) but Paid By Old System Synchronize-----------------------------------------------------------------------
  164. IF OBJECT_ID('tempdb..#TEMP5') IS NOT NULL
  165. DROP TABLE #TEMP5
  166. IF OBJECT_ID('tempdb..#TEMP6') IS NOT NULL
  167. DROP TABLE #TEMP6
  168. SELECT dbo.decryptDblocal(refno) AS refno, Tranno, SEmpID INTO #TEMP5
  169. FROM hremit.dbo.AccountTransaction WITH (NOLOCK)
  170. WHERE paidDate BETWEEN CAST(GETDATE() - 1 AS DATE) AND GETDATE() AND paymentType = 'Bank Transfer'
  171. SELECT dbo.FNADecryptString(controlNo)AS controlNo INTO #TEMP6
  172. FROM remitTran WITH (NOLOCK)
  173. WHERE paidDate BETWEEN CAST(GETDATE() - 1 AS DATE) AND GETDATE() AND paymentMethod = 'Bank Deposit'
  174. AND ISNULL(sCountry,'') = 'Nepal'
  175. /*
  176. SELECT A.refno, A.Tranno, A.SEmpID
  177. FROM #TEMP5 A
  178. WHERE A.refno NOT IN (SELECT controlNo from #TEMP6)
  179. */
  180. --TRUNCATE TABLE #txn
  181. INSERT INTO #txn
  182. SELECT A.Tranno FROM #TEMP5 A
  183. WHERE A.refno NOT IN (SELECT controlNo from #TEMP6)
  184. --SELECT * FROM @txn
  185. IF NOT EXISTS(SELECT 'X' FROM #txn)
  186. BEGIN
  187. EXEC proc_errorHandler 1, 'No transaction to synchronise', NULL
  188. RETURN
  189. END
  190. UPDATE rt SET
  191. rt.pAgentComm = acTrn.receiverCommission
  192. ,rt.pAgentCommCurrency = 'NPR'
  193. ,rt.pSuperAgentComm = 0
  194. ,rt.pSuperAgentCommCurrency = 'NPR'
  195. ,rt.pCountry = 'Nepal'
  196. ,rt.pState = pb.agentState
  197. ,rt.pDistrict = pb.agentDistrict
  198. ,rt.tranStatus = 'Paid'
  199. ,rt.payStatus = 'Paid'
  200. ,rt.paidBy = 'D:' + acTrn.paidBy
  201. ,rt.paidDate = acTrn.paidDate
  202. ,rt.paidDateLocal = acTrn.paidDate
  203. FROM remitTran rt
  204. INNER JOIN hremit.dbo.AccountTransaction acTrn ON dbo.FNADecryptString(rt.controlNo) = dbo.decryptDbLocal(acTrn.refno)
  205. INNER JOIN #txn txn ON acTrn.Tranno = txn.tranNo
  206. LEFT JOIN agentMaster pb ON acTrn.rBankID = pb.mapCodeDomAc AND pb.agentType IN (2903,2905)
  207. /*
  208. UPDATE rec SET
  209. rec.idType2 = acTrn.rec_id_type
  210. ,rec.idNumber2 = acTrn.rec_id_no
  211. ,rec.mobile = acTrn.ReceiverPhone
  212. FROM tranReceivers rec
  213. INNER JOIN remitTran rt ON rec.tranId = rt.id
  214. INNER JOIN hremit.dbo.AccountTransaction acTrn ON dbo.FNADecryptString(rt.controlNo) = dbo.decryptDbLocal(acTrn.refno)
  215. INNER JOIN #txn txn ON acTrn.Tranno = txn.tranNo
  216. */
  217. SELECT 0, 'Operation successful, Total no. of transactions synchronised : ' + CAST(COUNT(*) AS VARCHAR), NULL FROM #txn
  218. end
  219. if @flag ='acDepositOldImport' --A/C Deposit Txn Import(From Old System)
  220. begin
  221. --------------------------------------------------------------------------------------------------------------------------------------
  222. --3. Old System Bank Deposit(Paid) Transaction Import------------------------------------------------------------------------------------
  223. IF OBJECT_ID('tempdb..#TEMP7') IS NOT NULL
  224. DROP TABLE #TEMP7
  225. IF OBJECT_ID('tempdb..#TEMP8') IS NOT NULL
  226. DROP TABLE #TEMP8
  227. SELECT dbo.decryptDblocal(refno) AS refno, Tranno, SEmpID INTO #TEMP7
  228. FROM hremit.dbo.AccountTransaction WITH (NOLOCK)
  229. WHERE paidDate BETWEEN '2012-12-01' AND '2012-12-17 23:59' and paymentType = 'Bank Transfer'
  230. and [status] = 'Paid'
  231. DELETE T
  232. from #TEMP7 T, remitTran M
  233. Where (T.refno) = dbo.FNADecryptstring(M.controlNo)
  234. --TRUNCATE TABLE #txn
  235. INSERT INTO #txn
  236. SELECT A.Tranno FROM #TEMP7 A
  237. -- 8624 WHERE A.refno NOT IN (SELECT controlNo from #TEMP4)
  238. IF NOT EXISTS(SELECT 'X' FROM #txn)
  239. RETURN
  240. --SELECT * FROM #
  241. --SELECT COUNT(*), dbo.fnadecryptstring(controlNo) FROM #tmpTran GROUP BY controlNo HAVING COUNT(*) > 1
  242. --1. Main Table Insert-----------------------------------------------------------------------------------------------------------------------
  243. --SELECT TOP 1 * FROM hremit.dbo.AccountTransaction WHERE rBankID IS NOT NULL ORDER BY Tranno DESC
  244. INSERT INTO remitTran(
  245. controlNo,customerRate,serviceCharge,handlingFee
  246. ,sAgentComm,sAgentCommCurrency,sSuperAgentComm,sSuperAgentCommCurrency
  247. ,pAgentComm,pAgentCommCurrency,pSuperAgentComm,pSuperAgentCommCurrency
  248. ,sSuperAgent,sSuperAgentName,sAgent,sAgentName,sBranch,sBranchName,sCountry
  249. ,pSuperAgent,pSuperAgentName
  250. ,pAgent,pAgentName
  251. ,pBranch,pBranchName,pCountry
  252. ,pState,pDistrict,pLocation,paymentMethod
  253. ,pBank,pBankName,pBankBranch,pBankBranchName,accountNo
  254. ,collCurr,tAmt,cAmt,pAmt,payoutCurr
  255. ,relWithSender,tranStatus,payStatus
  256. ,createdDate,createdDateLocal,createdBy,approvedBy,approvedDate,approvedDateLocal
  257. ,paidDate,paidDateLocal,paidBy
  258. ,tranType,oldSysTranNo
  259. )
  260. SELECT
  261. --COUNT(*)
  262. DISTINCT
  263. controlNo = dbo.FNAEncryptString(dbo.decryptDbLocal(actrn.refNo)),custRate = NULL,serviceCharge=actrn.SCharge,hfee=0
  264. ,actrn.senderCommission,actrn.paidCType,ssAgentComm=0,ssAgentCommCurr=actrn.paidCType
  265. ,actrn.receiverCommission,pAgentCommCurr='NPR',psAgentComm=0,psAgentCommCurr='NPR'
  266. ,ssa=1002,ssan='International Money Express (IME) Pvt. Ltd',sa=ISNULL(sa.agentId, sb.agentId),san=ISNULL(sa.agentName, sb.agentName),sb=sb.agentId,sbn=sb.agentName,actrn.SenderCountry
  267. ,psa=NULL,psan=NULL
  268. ,pa=NULL,pan=NULL
  269. ,pb=NULL,pbn=NULL,rCountry='Nepal'
  270. ,pb.agentState,pb.agentDistrict,actrn.receiveAgentID,dm='Bank Deposit'
  271. ,pBank = pa.agentId,pBankName = pa.agentName,pBankBranch = pb.agentId,pBankBranchName = pb.agentName,actrn.bank_account_detail
  272. ,collCurr=actrn.paidCType,tAmt=actrn.paidAmt - actrn.SCharge,pAmt=actrn.paidAmt,actrn.TotalRoundAmt,pCurr='NPR'
  273. ,rel=NULL,actrn.TransStatus,actrn.[status]
  274. ,cdate=actrn.confirmDate,cDatel=actrn.confirmDate,cUser='D:' + actrn.SEmpID,appUser='D:' + actrn.approve_by,appdate=actrn.confirmDate,appdatel=actrn.confirmDate
  275. ,pDate=actrn.paidDate,pDatel=actrn.paidDate,pUser=CASE WHEN LEFT(actrn.paidBy, 2) = 'S:' THEN RIGHT(actrn.paidBy, LEN(actrn.paidBy) - 2) ELSE actrn.paidBy END
  276. ,tranType='D',oldSysTNo=NULL
  277. FROM hremit.dbo.AccountTransaction actrn WITH(NOLOCK)
  278. INNER JOIN #txn t ON actrn.Tranno = t.tranNo
  279. LEFT JOIN agentMaster sb WITH(NOLOCK) ON sb.mapCodeDom = actrn.agentid
  280. LEFT JOIN agentMaster sa WITH(NOLOCK) ON sa.agentId = sb.parentId AND sa.agentType = 2903
  281. LEFT JOIN agentMaster pb WITH(NOLOCK) ON pb.mapCodeDomAc = actrn.rBankID
  282. AND pb.agentType IN (2903)
  283. LEFT JOIN agentMaster pa WITH(NOLOCK) ON pa.agentId = pb.parentId
  284. WHERE pb.agentId IS NOT NULL
  285. --2. Sender Information---------------------------------------------------------------------------------------------------------
  286. INSERT INTO tranSenders(
  287. tranId,firstName,[address],mobile,homePhone,idType,idNumber
  288. )
  289. SELECT
  290. rt.id,actrn.SenderName,actrn.SenderAddress,actrn.SenderPhoneno,actrn.SenderPhoneno,actrn.id_type,actrn.id_no
  291. FROM hremit.dbo.AccountTransaction actrn WITH(NOLOCK)
  292. INNER JOIN #txn t ON actrn.Tranno = t.tranNo
  293. INNER JOIN remitTran rt WITH(NOLOCK) ON dbo.decryptDbLocal(actrn.refno) = dbo.FNADecryptString(rt.controlNo)
  294. --End-------------------------------------------------------------------------------------------------------------------------------
  295. --3. Receiver Information------------------------------------------------------------------------------------------------------------------
  296. INSERT INTO tranReceivers(
  297. tranId,firstName,[address],mobile,idType,idNumber,idType2,idNumber2
  298. )
  299. SELECT
  300. rt.id,actrn.ReceiverName,actrn.ReceiverAddress,actrn.ReceiverPhone,actrn.rec_id_type,actrn.rec_id_no,actrn.rec_id_type,actrn.rec_id_no
  301. FROM hremit.dbo.AccountTransaction actrn WITH(NOLOCK)
  302. INNER JOIN #txn t ON actrn.Tranno = t.tranNo
  303. INNER JOIN remitTran rt WITH(NOLOCK) ON dbo.decryptDbLocal(actrn.refno) = dbo.FNADecryptString(rt.controlNo)
  304. --End--------------------------------------------------------------------------------------------------------------------------------------
  305. end
  306. GO