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.

868 lines
40 KiB

1 year ago
1 year ago
  1. using Swift.API.Common;
  2. using Swift.API.Common.SendTxn;
  3. using Swift.API.ThirdPartyApiServices;
  4. using Swift.DAL.SwiftDAL;
  5. using System;
  6. using System.Data;
  7. using System.Text;
  8. namespace Swift.DAL.BL.Remit.Transaction
  9. {
  10. public class ApproveTransactionDao : RemittanceDao
  11. {
  12. public DataSet SelectTransaction(string controlNo, string user)
  13. {
  14. string sql = "EXEC proc_approveTran @flag = 'details'";
  15. sql += ", @user = " + FilterString(user);
  16. sql += ", @controlNo = " + FilterString(controlNo);
  17. DataSet ds = ExecuteDataset(sql);
  18. if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
  19. return null;
  20. return ds;
  21. }
  22. public DbResult ApproveV2(string user, string tranId, string controlNo, string agentRefId)
  23. {
  24. string sql = "EXEC proc_approveTranAPI_v2";
  25. sql += " @flag = 'approve'";
  26. sql += ", @user = " + FilterString(user);
  27. sql += ", @tranId = " + FilterString(tranId);
  28. sql += ", @controlNo = " + FilterString(controlNo);
  29. sql += ", @agentRefId = " + FilterString(agentRefId);
  30. return ParseDbResult(ExecuteDataset(sql).Tables[0]);
  31. }
  32. public string GetAvailableBalance(string user, string tranId)
  33. {
  34. var sql = "EXEC PROC_CUSTOMER_DEPOSITS @flag = 'available-balance'";
  35. sql += ", @user = " + FilterString(user);
  36. sql += ", @tranId = " + FilterString(tranId);
  37. return GetSingleResult(sql);
  38. }
  39. public DataRow ApproveAPI(string user, string tranId, string controlNo, string agentRefId)
  40. {
  41. string sql = "EXEC proc_approveTranAPI";
  42. sql += " @flag = 'approveAPI'";
  43. sql += ", @user = " + FilterString(user);
  44. sql += ", @tranId = " + FilterString(tranId);
  45. sql += ", @controlNo = " + FilterString(controlNo);
  46. sql += ", @agentRefId = " + FilterString(agentRefId);
  47. DataSet ds = ExecuteDataset(sql);
  48. if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
  49. return null;
  50. return ds.Tables[0].Rows[0];
  51. }
  52. public DbResult ApproveTranAPI(string user, string tranId, string controlNo, string agentRefId)
  53. {
  54. string sql = "EXEC proc_approveTranAPI";
  55. sql += " @flag = 'approve'";
  56. sql += ", @user = " + FilterString(user);
  57. sql += ", @tranId = " + FilterString(tranId);
  58. sql += ", @controlNo = " + FilterString(controlNo);
  59. sql += ", @agentRefId = " + FilterString(agentRefId);
  60. return ParseDbResult(ExecuteDataset(sql).Tables[0]);
  61. }
  62. public DbResult ApproveTran(string user, string tranId, string controlNo, string agentRefId)
  63. {
  64. string sql = "EXEC proc_approveTran";
  65. sql += " @flag = 'approve'";
  66. sql += ", @user = " + FilterString(user);
  67. sql += ", @tranId = " + FilterString(tranId);
  68. sql += ", @controlNo = " + FilterString(controlNo);
  69. sql += ", @agentRefId = " + FilterString(agentRefId);
  70. return ParseDbResult(ExecuteDataset(sql).Tables[0]);
  71. }
  72. public DbResult Reject(string user, string tranId, string remarks, string settlingAgentId)
  73. {
  74. var sql = "EXEC proc_ApproveHoldedTXN @flag = 'reject'";
  75. sql += ", @user = " + FilterString(user);
  76. sql += ", @id = " + FilterString(tranId);
  77. sql += ", @remarks = " + FilterString(remarks);
  78. sql += ", @settlingAgentId = " + FilterString(settlingAgentId);
  79. return ParseDbResult(sql);
  80. }
  81. public DbResult SyncTransaction(string user, string controlno)
  82. {
  83. var sql = "EXEC PROC_STATUS_CHANGE_AFTER_PAID_OR_CANCEL @flag = 'SYNC'";
  84. sql += ", @user = " + FilterString(user);
  85. sql += ", @CONTROLNO = " + FilterString(controlno);
  86. return ParseDbResult(sql);
  87. }
  88. public DbResult ApproveMappingData(string user, string tranId, string customerId, string flag,string remmitTranTempId)
  89. {
  90. var sql = "EXEC PROC_CUSTOMER_DEPOSITS ";
  91. sql += "@flag = " + FilterString(flag);
  92. sql += ", @user = " + FilterString(user);
  93. sql += ", @tranId = " + FilterString(tranId);
  94. sql += ", @customerId = " + FilterString(customerId);
  95. sql += ", @remmitTranTempId = " + FilterString(remmitTranTempId);
  96. return ParseDbResult(sql);
  97. }
  98. public DbResult VerifyForApprove(string user, string controlNo, string cAmt)
  99. {
  100. string sql = "EXEC proc_approveTran @flag = 'va'";
  101. sql += ", @user = " + FilterString(user);
  102. sql += ", @controlNo = " + FilterString(controlNo);
  103. sql += ", @cAmt = " + FilterString(cAmt);
  104. return ParseDbResult(ExecuteDataset(sql).Tables[0]);
  105. }
  106. public DbResult TranViewLog(string user, string tranId, string controlNo, string remarks, string tranViewType)
  107. {
  108. string sql = "EXEC proc_tranViewHistory";
  109. sql += " @flag = 'i'";
  110. sql += ", @user = " + FilterString(user);
  111. sql += ", @tranId = " + FilterString(tranId);
  112. sql += ", @controlNo = " + FilterString(controlNo);
  113. sql += ", @remarks = " + FilterString(remarks);
  114. sql += ", @tranViewType = " + FilterString(tranViewType);
  115. return ParseDbResult(ExecuteDataset(sql).Tables[0]);
  116. }
  117. public DataSet GetHoldedTXNList(string user, string branch, string id, string country, string sender, string receiver
  118. , string amt, string branchId, string userType, string flag,
  119. string txnDate, string txnUser, string ControlNo, string txnType)
  120. {
  121. string sql = "EXEC proc_ApproveHoldedTXN ";
  122. sql += " @flag = " + FilterString(flag);
  123. sql += ", @user = " + FilterString(user);
  124. sql += ", @id = " + FilterString(id);
  125. sql += ", @branch = " + FilterString(branch);
  126. sql += ", @country = " + FilterString(country);
  127. sql += ", @sender = " + FilterString(sender);
  128. sql += ", @receiver = " + FilterString(receiver);
  129. sql += ", @amt = " + FilterString(amt);
  130. sql += ", @branchId = " + FilterString(branchId);
  131. sql += ", @userType = " + FilterString(userType);
  132. sql += ", @txnDate = " + FilterString(txnDate);
  133. sql += ", @txncreatedBy = " + FilterString(txnUser);
  134. sql += ", @ControlNo = " + FilterString(ControlNo);
  135. sql += ", @txnType = " + FilterString(txnType);
  136. return ExecuteDataset(sql);
  137. }
  138. public DataSet GetHoldedTXNListAgent(string user, string id, string country, string sender, string receiver
  139. , string amt, string branchId, string userType, string flag,
  140. string txnDate, string txnUser, string controlNo, string txnType, string sendCountry
  141. ,string settlingAgent)
  142. {
  143. string sql = "EXEC proc_ApproveHoldedTXN ";
  144. sql += " @flag = " + FilterString(flag);
  145. sql += ", @user = " + FilterString(user);
  146. sql += ", @id = " + FilterString(id);
  147. sql += ", @country = " + FilterString(country);
  148. sql += ", @sender = " + FilterString(sender);
  149. sql += ", @receiver = " + FilterString(receiver);
  150. sql += ", @amt = " + FilterString(amt);
  151. sql += ", @branchId = " + FilterString(branchId);
  152. sql += ", @userType = " + FilterString(userType);
  153. sql += ", @txnDate = " + FilterString(txnDate);
  154. sql += ", @txncreatedBy = " + FilterString(txnUser);
  155. sql += ", @ControlNo = " + FilterString(controlNo);
  156. sql += ", @txnType = " + FilterString(txnType);
  157. sql += ", @sendCountry = " + FilterString(sendCountry);
  158. sql += ", @settlingAgentId = " + FilterString(settlingAgent);
  159. return ExecuteDataset(sql);
  160. }
  161. public DataSet GetHoldedTXNListAdmin(string user, string branch, string id, string country, string sender, string receiver
  162. , string amt, string branchId, string userType, string flag,
  163. string txnDate, string txnUser, string controlNo, string txnType, string sendCountry, string sendAgent, string sendBranch)
  164. {
  165. string sql = "EXEC proc_ApproveHoldedTXN ";
  166. sql += " @flag = " + FilterString(flag);
  167. sql += ", @user = " + FilterString(user);
  168. sql += ", @id = " + FilterString(id);
  169. sql += ", @branch = " + FilterString(branch);
  170. sql += ", @country = " + FilterString(country);
  171. sql += ", @sender = " + FilterString(sender);
  172. sql += ", @receiver = " + FilterString(receiver);
  173. sql += ", @amt = " + FilterString(amt);
  174. sql += ", @branchId = " + FilterString(branchId);
  175. sql += ", @userType = " + FilterString(userType);
  176. sql += ", @txnDate = " + FilterString(txnDate);
  177. sql += ", @txncreatedBy = " + FilterString(txnUser);
  178. sql += ", @ControlNo = " + FilterString(controlNo);
  179. sql += ", @txnType = " + FilterString(txnType);
  180. sql += ", @sendCountry = " + FilterString(sendCountry);
  181. sql += ", @sendAgent = " + FilterString(sendAgent);
  182. sql += ", @sendBranch = " + FilterString(sendBranch);
  183. return ExecuteDataset(sql);
  184. }
  185. public DataSet GetHoldedTXNListAdminMobile(string user, string branch, string id, string country, string sender, string receiver
  186. , string amt, string branchId, string userType, string flag,
  187. string txnDate, string txnUser, string controlNo, string txnType, string sendCountry, string sendAgent, string sendBranch, string email)
  188. {
  189. string sql = "EXEC proc_ApproveHoldedTxnMobile ";
  190. sql += " @flag = " + FilterString(flag);
  191. sql += ", @user = " + FilterString(user);
  192. sql += ", @id = " + FilterString(id);
  193. sql += ", @branch = " + FilterString(branch);
  194. sql += ", @country = " + FilterString(country);
  195. sql += ", @sender = " + FilterString(sender);
  196. sql += ", @receiver = " + FilterString(receiver);
  197. sql += ", @amt = " + FilterString(amt);
  198. sql += ", @branchId = " + FilterString(branchId);
  199. sql += ", @userType = " + FilterString(userType);
  200. sql += ", @txnDate = " + FilterString(txnDate);
  201. sql += ", @txncreatedBy = " + FilterString(txnUser);
  202. sql += ", @ControlNo = " + FilterString(controlNo);
  203. sql += ", @txnType = " + FilterString(txnType);
  204. sql += ", @sendCountry = " + FilterString(sendCountry);
  205. sql += ", @sendAgent = " + FilterString(sendAgent);
  206. sql += ", @sendBranch = " + FilterString(sendBranch);
  207. sql += ", @email = " + FilterString(email);
  208. return ExecuteDataset(sql);
  209. }
  210. public DataSet GetAllTxnDataForVerifyCreatedFromSendTabPage(string sAgent, string user)
  211. {
  212. string sql = "EXEC proc_ApproveHoldedTXN @flag = 'getTxnForVerify'";
  213. sql += " ,@sendAgent=" + FilterString(sAgent);
  214. sql += " ,@user=" + FilterString(user);
  215. return ExecuteDataset(sql);
  216. }
  217. public DbResult VerifyTransaction(string tranId, string username)
  218. {
  219. String sql = "Exec proc_ApproveHoldedTXN @flag='verifyTxnSendFromTabPage'";
  220. sql += ", @id=" + FilterString(tranId);
  221. sql += ", @user=" + FilterString(username);
  222. return ParseDbResult(sql);
  223. }
  224. public DbResult RejectHoldedTXN(string user, string id, string controlNO = "",string remarks = "")
  225. {
  226. var sql = "EXEC proc_ApproveHoldedTXN @flag = 'reject'";
  227. sql += ", @user = " + FilterString(user);
  228. sql += ", @id = " + FilterString(id);
  229. sql += ", @remarks = " + FilterString(remarks);
  230. sql += ", @ControlNo = " + FilterString(controlNO);
  231. return ParseDbResult(sql);
  232. }
  233. public DbResult ApproveHoldedTXN(string user, string id)
  234. {
  235. var sql = "EXEC proc_ApproveHoldedTXN @flag = 'approve'";
  236. sql += ", @user = " + FilterString(user);
  237. sql += ", @id = " + FilterString(id);
  238. var drDb = ParseDbResult(sql);
  239. return drDb;
  240. }
  241. public DbResult GetTxnApproveData(string user, string id)
  242. {
  243. var sql = "EXEC proc_ApproveHoldedTXN @flag = 'get-info'";
  244. sql += ", @user = " + FilterString(user);
  245. sql += ", @id = " + FilterString(id);
  246. var drDb = ParseDbResult(sql);
  247. return drDb;
  248. }
  249. public DbResult GetTxnApproveDataIMEPay(string user, string id)
  250. {
  251. var sql = "EXEC proc_ApproveHoldedTXN @flag = 'get-info-imepay'";
  252. sql += ", @user = " + FilterString(user);
  253. sql += ", @id = " + FilterString(id);
  254. var drDb = ParseDbResultNew(sql);
  255. return drDb;
  256. }
  257. public DbResult GetTxnApproveDataForCancel(string user, string controlNo, string cancelReason)
  258. {
  259. var sql = "EXEC proc_ApproveHoldedTXN @flag = 'get-info-c-no'";
  260. sql += ", @user = " + FilterString(user);
  261. sql += ", @controlNo = " + FilterString(controlNo);
  262. sql += ", @cancelReason = " + FilterString(cancelReason);
  263. var drDb = ParseDbResult(sql);
  264. return drDb;
  265. }
  266. public DbResult TxnCancelRequest(string user, string controlNo, string cancelReason)
  267. {
  268. var sql = "EXEC proc_ApproveHoldedTXN @flag = 'cancel-request'";
  269. sql += ", @user = " + FilterString(user);
  270. sql += ", @controlNo = " + FilterString(controlNo);
  271. sql += ", @cancelReason = " + FilterString(cancelReason);
  272. var drDb = ParseDbResult(sql);
  273. return drDb;
  274. }
  275. public DbResult GetTxnApproveDataCompliance(string user, string id)
  276. {
  277. var sql = "EXEC proc_ApproveHoldedTXN @flag = 'get-info-for-compliance'";
  278. sql += ", @user = " + FilterString(user);
  279. sql += ", @id = " + FilterString(id);
  280. var drDb = ParseDbResult(sql);
  281. return drDb;
  282. }
  283. public JsonResponse GetHoldedTxnForApprovedByAdmin(string user, string id, string sessionId, string callFro = null)
  284. {
  285. var sql = "EXEC proc_GetHoldedTxnForApprovedByAdmin";
  286. sql += " @user = " + FilterString(user);
  287. sql += ", @tranId = " + FilterString(id);
  288. sql += ", @callFro = " + FilterString(callFro);
  289. var drDb = ExecuteDataRow(sql);
  290. if (drDb.Table.Columns.Contains("ErrorCode"))
  291. {
  292. return new JsonResponse()
  293. {
  294. ResponseCode = Convert.ToString(drDb["ErrorCode"]),
  295. Msg = Convert.ToString(drDb["msg"])
  296. };
  297. }
  298. string ProcessId = Guid.NewGuid().ToString().Replace("-", "") + ":" + Convert.ToString(drDb["processId"]) + ":sendTxn";
  299. SendTransactionRequest sendTxnRequest = new SendTransactionRequest();
  300. sendTxnRequest.UserName = user;
  301. sendTxnRequest.ProcessId = ProcessId.Substring(ProcessId.Length - 40, 40);
  302. sendTxnRequest.ProviderId = Convert.ToString(drDb["partnerId"]);
  303. sendTxnRequest.TranId = Convert.ToInt32(drDb["tranId"]);
  304. if (drDb.Table.Columns.Contains("IsRealtime"))
  305. {
  306. sendTxnRequest.IsRealtime = (drDb["IsRealtime"].ToString() == "Y" ? true : false);
  307. }
  308. else
  309. {
  310. sendTxnRequest.IsRealtime = false;
  311. }
  312. #region senderInformation
  313. TxnSender txnSender = new TxnSender();
  314. txnSender.CustomerId = Convert.ToInt32(drDb["customerId"]);
  315. txnSender.SFirstName = Convert.ToString(drDb["sfirstName"]);
  316. txnSender.SMiddleName = Convert.ToString(drDb["smiddleName"]);
  317. txnSender.SLastName1 = Convert.ToString(drDb["slastName1"]);
  318. txnSender.SLastName2 = Convert.ToString(drDb["slastName2"]);
  319. txnSender.SFullName = Convert.ToString(drDb["sfullName"]);
  320. txnSender.SIdIssueDate = Convert.ToString(drDb["sissuedDate"]);
  321. txnSender.SIdExpiryDate = Convert.ToString(drDb["svalidDate"]);
  322. txnSender.SOccuptionId = Convert.ToInt32(drDb["occupationId"]);
  323. txnSender.SOccuptionName = Convert.ToString(drDb["occupationName"]);
  324. txnSender.SBirthDate = Convert.ToString(drDb["sdob"]);
  325. txnSender.SEmail = string.IsNullOrEmpty(drDb["semail"].ToString()) ? null : Convert.ToString(drDb["semail"]);
  326. txnSender.SCityId = Convert.ToString(drDb["scity"]);
  327. if (drDb.Table.Columns.Contains("sstate"))
  328. {
  329. txnSender.SState = Convert.ToString(drDb["sstate"]);
  330. }
  331. if (drDb.Table.Columns.Contains("formOfPaymentId"))
  332. {
  333. txnSender.FormOfPaymentId = Convert.ToString(drDb["formOfPaymentId"]);
  334. }
  335. txnSender.SZipCode = Convert.ToString(drDb["szipCode"]);
  336. txnSender.SNativeCountry = Convert.ToString(drDb["snativeCountry"]);
  337. txnSender.SIdType = Convert.ToString(drDb["sidType"]);
  338. txnSender.SIdNo = Convert.ToString(drDb["sidNumber"]);
  339. txnSender.SMobile = Convert.ToString(drDb["smobile"]);
  340. txnSender.SAddress = Convert.ToString(drDb["saddress"]);
  341. txnSender.SIpAddress = Convert.ToString(drDb["ipAddress"]);
  342. txnSender.SCountryId = Convert.ToInt32(drDb["countryId"]);
  343. txnSender.SCountryName = Convert.ToString(drDb["sCountry"]);
  344. if (drDb.Table.Columns.Contains("IsIndividual"))
  345. {
  346. txnSender.IsIndividual = Convert.ToBoolean(drDb["IsIndividual"]);
  347. }
  348. txnSender.SourceOfFund = Convert.ToString(drDb["sourceOfFund"]);
  349. sendTxnRequest.Sender = txnSender;
  350. #endregion senderInformation
  351. #region receiverInformation
  352. TxnReceiver txnReceiver = new TxnReceiver();
  353. txnReceiver.ReceiverId = Convert.ToString(drDb["receiverId"]);
  354. txnReceiver.RFullName = Convert.ToString(drDb["rfullName"]);
  355. txnReceiver.RFirstName = Convert.ToString(drDb["rfirstName"]);
  356. txnReceiver.RMiddleName = Convert.ToString(drDb["rmiddleName"]);
  357. txnReceiver.RLastName = Convert.ToString(drDb["rlastName1"]);
  358. txnReceiver.RIdType = Convert.ToString(drDb["ridType"]);
  359. txnReceiver.RIdNo = Convert.ToString(drDb["ridNumber"]);
  360. txnReceiver.RIdValidDate = Convert.ToString(drDb["rvalidDate"]);
  361. txnReceiver.RDob = Convert.ToString(drDb["rdob"]);
  362. txnReceiver.RTel = Convert.ToString(drDb["rhomePhone"]);
  363. txnReceiver.RMobile = Convert.ToString(drDb["rmobile"]);
  364. txnReceiver.RNativeCountry = Convert.ToString(drDb["rnativeCountry"]);
  365. txnReceiver.RCity = Convert.ToString(drDb["rcity"]);
  366. txnReceiver.RAdd1 = Convert.ToString(drDb["raddress"]);
  367. txnReceiver.REmail = string.IsNullOrEmpty(drDb["remail"].ToString()) ? null : Convert.ToString(drDb["remail"]);
  368. txnReceiver.RAccountNo = Convert.ToString(drDb["raccountNo"]);
  369. txnReceiver.RCountry = Convert.ToString(drDb["rcountry"]);
  370. txnReceiver.RCityCode = Convert.ToString(drDb["rcityCode"]);
  371. txnReceiver.RelWithSenderName = Convert.ToString(drDb["relationName"]);
  372. txnReceiver.RStateId = Convert.ToString(drDb["rstate"]);
  373. txnReceiver.RLocation = Convert.ToString(drDb["pBankLocation"]);
  374. txnReceiver.UnitaryBankAccountNo = Convert.ToString(drDb["bankAccountNo"]);
  375. if (drDb.Table.Columns.Contains("rTownCode"))
  376. {
  377. txnReceiver.RLocation = Convert.ToString(drDb["rTownCode"]);
  378. }
  379. if (drDb.Table.Columns.Contains("payerId"))
  380. {
  381. txnReceiver.RLocationName = Convert.ToString(drDb["payerId"]);
  382. }
  383. sendTxnRequest.Receiver = txnReceiver;
  384. #endregion receiverInformation
  385. #region txnTransaction
  386. TxnTransaction transaction = new TxnTransaction();
  387. transaction.PCurr = Convert.ToString(drDb["payoutCurr"]);
  388. transaction.CollCurr = Convert.ToString(drDb["collCurr"]);
  389. transaction.CAmt = Convert.ToDecimal(drDb["cAmt"]);
  390. transaction.PAmt = Convert.ToDecimal(drDb["pAmt"]);
  391. transaction.TAmt = Convert.ToDecimal(drDb["tAmt"]);
  392. transaction.ServiceCharge = Convert.ToDecimal(drDb["serviceCharge"]);
  393. transaction.PComm = Convert.ToString(drDb["pAgentComm"]);
  394. transaction.PaymentType = Convert.ToString(drDb["paymentMethod"]);
  395. transaction.JMEControlNo = Convert.ToString(drDb["controlNo"]);
  396. transaction.PurposeOfRemittanceName = Convert.ToString(drDb["purposeOfRemit"]);
  397. if (drDb.Table.Columns.Contains("txnDate"))
  398. {
  399. transaction.TxnDate = Convert.ToString(drDb["txnDate"]);
  400. }
  401. if (drDb.Table.Columns.Contains("ssnno"))
  402. {
  403. transaction.TpRefNo = Convert.ToString(drDb["ssnno"]);
  404. }
  405. if (drDb.Table.Columns.Contains("exRate"))
  406. {
  407. transaction.ExRate = Convert.ToDecimal(drDb["exRate"]);
  408. }
  409. if (drDb.Table.Columns.Contains("Rate"))
  410. {
  411. transaction.Rate = Convert.ToDecimal(drDb["Rate"]);
  412. }
  413. transaction.PayoutMsg = Convert.ToString(drDb["remarks"]);
  414. sendTxnRequest.Transaction = transaction;
  415. #endregion txnTransaction
  416. #region agentInformation
  417. TxnAgent txnAgent = new TxnAgent();
  418. txnAgent.PBranchId = Convert.ToString(drDb["branchId"]);
  419. txnAgent.PBranchName = Convert.ToString(drDb["branchName"]);
  420. txnAgent.PBranchCity = Convert.ToString(drDb["city"]);
  421. txnAgent.PAgentId = Convert.ToInt32(drDb["pAgent"]);
  422. txnAgent.PAgentName = Convert.ToString(drDb["pAgentName"]);
  423. txnAgent.PBankType = Convert.ToString(drDb["pBankType"]);
  424. txnAgent.PBankId = Convert.ToString(drDb["pBank"]);
  425. txnAgent.PBankName = Convert.ToString(drDb["pBankName"]);
  426. txnAgent.SAgentId = Convert.ToInt32(drDb["sAgent"]);
  427. txnAgent.SAgentName = Convert.ToString(drDb["sAgentName"]);
  428. txnAgent.SSuperAgentId = Convert.ToInt32(drDb["sSuperAgent"]);
  429. if (drDb.Table.Columns.Contains("pBankBranchId"))
  430. {
  431. txnAgent.PBankBranchId = Convert.ToString(drDb["pBankBranchId"]);
  432. }
  433. txnAgent.SBranchId = Convert.ToInt32(drDb["sBranch"]);
  434. if (drDb.Table.Columns.Contains("pBankBranchName"))
  435. {
  436. txnAgent.PBankBranchName = Convert.ToString(drDb["pBankBranchName"]);
  437. }
  438. sendTxnRequest.Agent = txnAgent;
  439. #endregion agentInformation
  440. if (drDb.Table.Columns.Contains("isFirstTran"))
  441. {
  442. sendTxnRequest.isTxnAlreadyCreated = Convert.ToString(drDb["isFirstTran"]) == "Y" ? true : false;
  443. }
  444. else
  445. {
  446. sendTxnRequest.isTxnAlreadyCreated = true;
  447. }
  448. sendTxnRequest.IsRealtime = Convert.ToBoolean(drDb["IsRealtime"]);
  449. sendTxnRequest.SessionId = Convert.ToString(Guid.NewGuid()).Replace("-", "");
  450. if (string.IsNullOrEmpty(sendTxnRequest.SessionId) || string.IsNullOrWhiteSpace(sendTxnRequest.SessionId))
  451. sendTxnRequest.SessionId = sessionId;
  452. SendTransactionServices _tpSend = new SendTransactionServices();
  453. var result = _tpSend.SendTransaction(sendTxnRequest);
  454. sql = "";
  455. sql = "EXEC proc_tran_api_call_history ";
  456. sql += " @TRAN_ID =" + FilterString(sendTxnRequest.TranId.ToString());
  457. sql += ", @REQUESTED_BY =" + FilterString(user);
  458. sql += ", @RESPONSE_CODE =" + FilterString(result.ResponseCode);
  459. sql += ", @RESPONSE_MSG =" + FilterString(result.Msg);
  460. GetSingleResult(sql);
  461. return result;
  462. }
  463. public JsonResponse GetHoldedTxnForApprovedByAdminCompliance(string user, string id, string sessionId, string callFro = null)
  464. {
  465. var sql = "EXEC proc_GetHoldedTxnForApprovedByAdminCompliance";
  466. sql += " @user = " + FilterString(user);
  467. sql += ", @tranId = " + FilterString(id);
  468. sql += ", @callFro = " + FilterString(callFro);
  469. var drDb = ExecuteDataRow(sql);
  470. if (drDb.Table.Columns.Contains("ErrorCode"))
  471. {
  472. return new JsonResponse()
  473. {
  474. ResponseCode = Convert.ToString(drDb["ErrorCode"]),
  475. Msg = Convert.ToString(drDb["msg"])
  476. };
  477. }
  478. SendTransactionRequest sendTxnRequest = new SendTransactionRequest();
  479. sendTxnRequest.UserName = user;
  480. sendTxnRequest.ProviderId = Convert.ToString(drDb["partnerId"]);
  481. sendTxnRequest.TranId = Convert.ToInt32(drDb["tranId"]);
  482. if (drDb.Table.Columns.Contains("IsRealtime"))
  483. {
  484. sendTxnRequest.IsRealtime = (drDb["IsRealtime"].ToString() == "Y" ? true : false);
  485. }
  486. else
  487. {
  488. sendTxnRequest.IsRealtime = false;
  489. }
  490. #region senderInformation
  491. TxnSender txnSender = new TxnSender();
  492. txnSender.CustomerId = Convert.ToInt32(drDb["customerId"]);
  493. txnSender.SFirstName = Convert.ToString(drDb["sfirstName"]);
  494. txnSender.SMiddleName = Convert.ToString(drDb["smiddleName"]);
  495. txnSender.SLastName1 = Convert.ToString(drDb["slastName1"]);
  496. txnSender.SLastName2 = Convert.ToString(drDb["slastName2"]);
  497. txnSender.SFullName = Convert.ToString(drDb["sfullName"]);
  498. txnSender.SIdIssueDate = Convert.ToString(drDb["sissuedDate"]);
  499. txnSender.SIdExpiryDate = Convert.ToString(drDb["svalidDate"]);
  500. txnSender.SOccuptionId = Convert.ToInt32(drDb["occupationId"]);
  501. txnSender.SOccuptionName = Convert.ToString(drDb["occupationName"]);
  502. txnSender.SBirthDate = Convert.ToString(drDb["sdob"]);
  503. txnSender.SEmail = string.IsNullOrEmpty(drDb["semail"].ToString()) ? null : Convert.ToString(drDb["semail"]);
  504. txnSender.SCityId = Convert.ToString(drDb["scity"]);
  505. if (drDb.Table.Columns.Contains("sstate"))
  506. {
  507. txnSender.SState = Convert.ToString(drDb["sstate"]);
  508. }
  509. if (drDb.Table.Columns.Contains("formOfPaymentId"))
  510. {
  511. txnSender.FormOfPaymentId = Convert.ToString(drDb["formOfPaymentId"]);
  512. }
  513. txnSender.SZipCode = Convert.ToString(drDb["szipCode"]);
  514. txnSender.SNativeCountry = Convert.ToString(drDb["snativeCountry"]);
  515. txnSender.SIdType = Convert.ToString(drDb["sidType"]);
  516. txnSender.SIdNo = Convert.ToString(drDb["sidNumber"]);
  517. txnSender.SMobile = Convert.ToString(drDb["smobile"]);
  518. txnSender.SAddress = Convert.ToString(drDb["saddress"]);
  519. txnSender.SIpAddress = Convert.ToString(drDb["ipAddress"]);
  520. txnSender.SCountryId = Convert.ToInt32(drDb["countryId"]);
  521. txnSender.SCountryName = Convert.ToString(drDb["sCountry"]);
  522. if (drDb.Table.Columns.Contains("IsIndividual"))
  523. {
  524. txnSender.IsIndividual = Convert.ToBoolean(drDb["IsIndividual"]);
  525. }
  526. txnSender.SourceOfFund = Convert.ToString(drDb["sourceOfFund"]);
  527. if (drDb.Table.Columns.Contains("gender"))
  528. {
  529. txnSender.SGender = Convert.ToString(drDb["gender"]);
  530. }
  531. sendTxnRequest.Sender = txnSender;
  532. #endregion senderInformation
  533. #region receiverInformation
  534. TxnReceiver txnReceiver = new TxnReceiver();
  535. txnReceiver.ReceiverId = Convert.ToString(drDb["receiverId"]);
  536. txnReceiver.RFullName = Convert.ToString(drDb["rfullName"]);
  537. txnReceiver.RFirstName = Convert.ToString(drDb["rfirstName"]);
  538. txnReceiver.RMiddleName = Convert.ToString(drDb["rmiddleName"]);
  539. txnReceiver.RLastName = Convert.ToString(drDb["rlastName1"]);
  540. txnReceiver.RIdType = Convert.ToString(drDb["ridType"]);
  541. txnReceiver.RIdNo = Convert.ToString(drDb["ridNumber"]);
  542. txnReceiver.RIdValidDate = Convert.ToString(drDb["rvalidDate"]);
  543. txnReceiver.RDob = Convert.ToString(drDb["rdob"]);
  544. txnReceiver.RTel = Convert.ToString(drDb["rhomePhone"]);
  545. txnReceiver.RMobile = Convert.ToString(drDb["rmobile"]);
  546. txnReceiver.RNativeCountry = Convert.ToString(drDb["rnativeCountry"]);
  547. txnReceiver.RCity = Convert.ToString(drDb["rcity"]);
  548. txnReceiver.RAdd1 = Convert.ToString(drDb["raddress"]);
  549. txnReceiver.REmail = Convert.ToString(drDb["remail"]);
  550. txnReceiver.RAccountNo = Convert.ToString(drDb["raccountNo"]);
  551. txnReceiver.RCountry = Convert.ToString(drDb["rcountry"]);
  552. txnReceiver.RCityCode = Convert.ToString(drDb["rcityCode"]);
  553. txnReceiver.RelWithSenderName = Convert.ToString(drDb["relationName"]);
  554. txnReceiver.RStateId = Convert.ToString(drDb["rstate"]);
  555. txnReceiver.RLocation = Convert.ToString(drDb["pBankLocation"]);
  556. txnReceiver.UnitaryBankAccountNo = Convert.ToString(drDb["bankAccountNo"]);
  557. if (drDb.Table.Columns.Contains("rTownCode"))
  558. {
  559. txnReceiver.RLocation = Convert.ToString(drDb["rTownCode"]);
  560. }
  561. if (drDb.Table.Columns.Contains("payerId"))
  562. {
  563. txnReceiver.RLocationName = Convert.ToString(drDb["payerId"]);
  564. }
  565. sendTxnRequest.Receiver = txnReceiver;
  566. #endregion receiverInformation
  567. #region txnTransaction
  568. TxnTransaction transaction = new TxnTransaction();
  569. transaction.PCurr = Convert.ToString(drDb["payoutCurr"]);
  570. transaction.CollCurr = Convert.ToString(drDb["collCurr"]);
  571. transaction.CAmt = Convert.ToDecimal(drDb["cAmt"]);
  572. transaction.PAmt = Convert.ToDecimal(drDb["pAmt"]);
  573. transaction.TAmt = Convert.ToDecimal(drDb["tAmt"]);
  574. transaction.ServiceCharge = Convert.ToDecimal(drDb["serviceCharge"]);
  575. transaction.PComm = Convert.ToString(drDb["pAgentComm"]);
  576. transaction.PaymentType = Convert.ToString(drDb["paymentMethod"]);
  577. transaction.JMEControlNo = Convert.ToString(drDb["controlNo"]);
  578. transaction.PurposeOfRemittanceName = Convert.ToString(drDb["purposeOfRemit"]);
  579. if (drDb.Table.Columns.Contains("txnDate"))
  580. {
  581. transaction.TxnDate = Convert.ToString(drDb["txnDate"]);
  582. }
  583. if (drDb.Table.Columns.Contains("ssnno"))
  584. {
  585. transaction.TpRefNo = Convert.ToString(drDb["ssnno"]);
  586. }
  587. if (drDb.Table.Columns.Contains("exRate"))
  588. {
  589. transaction.ExRate = Convert.ToDecimal(drDb["exRate"]);
  590. }
  591. if (drDb.Table.Columns.Contains("Rate"))
  592. {
  593. transaction.Rate = Convert.ToDecimal(drDb["Rate"]);
  594. }
  595. transaction.PayoutMsg = Convert.ToString(drDb["remarks"]);
  596. sendTxnRequest.Transaction = transaction;
  597. #endregion txnTransaction
  598. #region agentInformation
  599. TxnAgent txnAgent = new TxnAgent();
  600. txnAgent.PBranchId = Convert.ToString(drDb["branchId"]);
  601. txnAgent.PBranchName = Convert.ToString(drDb["branchName"]);
  602. txnAgent.PBranchCity = Convert.ToString(drDb["city"]);
  603. txnAgent.PAgentId = Convert.ToInt32(drDb["pAgent"]);
  604. txnAgent.PAgentName = Convert.ToString(drDb["pAgentName"]);
  605. txnAgent.PBankType = Convert.ToString(drDb["pBankType"]);
  606. txnAgent.PBankId = Convert.ToString(drDb["pBank"]);
  607. txnAgent.PBankName = Convert.ToString(drDb["pBankName"]);
  608. txnAgent.SAgentId = Convert.ToInt32(drDb["sAgent"]);
  609. txnAgent.SAgentName = Convert.ToString(drDb["sAgentName"]);
  610. txnAgent.SSuperAgentId = Convert.ToInt32(drDb["sSuperAgent"]);
  611. if (drDb.Table.Columns.Contains("pBankBranchId"))
  612. {
  613. txnAgent.PBankBranchId = Convert.ToString(drDb["pBankBranchId"]);
  614. }
  615. txnAgent.SBranchId = Convert.ToInt32(drDb["sBranch"]);
  616. if (drDb.Table.Columns.Contains("pBankBranchName"))
  617. {
  618. txnAgent.PBankBranchName = Convert.ToString(drDb["pBankBranchName"]);
  619. }
  620. sendTxnRequest.Agent = txnAgent;
  621. #endregion agentInformation
  622. if (drDb.Table.Columns.Contains("isFirstTran"))
  623. {
  624. sendTxnRequest.isTxnAlreadyCreated = Convert.ToString(drDb["isFirstTran"]) == "Y" ? true : false;
  625. }
  626. else
  627. {
  628. sendTxnRequest.isTxnAlreadyCreated = true;
  629. }
  630. sendTxnRequest.IsRealtime = Convert.ToBoolean(drDb["IsRealtime"]);
  631. sendTxnRequest.SessionId = Convert.ToString(Guid.NewGuid()).Replace("-", "");
  632. if (string.IsNullOrEmpty(sendTxnRequest.SessionId) || string.IsNullOrWhiteSpace(sendTxnRequest.SessionId))
  633. sendTxnRequest.SessionId = sessionId;
  634. SendTransactionServices _tpSend = new SendTransactionServices();
  635. var result = _tpSend.SendTransaction(sendTxnRequest);
  636. sql = "";
  637. sql = "EXEC proc_tran_api_call_history ";
  638. sql += " @TRAN_ID =" + FilterString(sendTxnRequest.TranId.ToString());
  639. sql += ", @REQUESTED_BY =" + FilterString(user);
  640. sql += ", @RESPONSE_CODE =" + FilterString(result.ResponseCode);
  641. sql += ", @RESPONSE_MSG =" + FilterString(result.Msg);
  642. GetSingleResult(sql);
  643. return result;
  644. }
  645. public DbResult ApproveAllHoldedTXN(string user, string idList)
  646. {
  647. var sb = new StringBuilder("<root>");
  648. var list = idList.Split(',');
  649. foreach (var itm in list)
  650. {
  651. sb.Append("<row id=\"" + itm.Trim() + "\" />");
  652. }
  653. sb.Append("</root>");
  654. var sql = "EXEC proc_ApproveHoldedTXN @flag = 'approve-all'";
  655. sql += ", @user = " + FilterString(user);
  656. sql += ", @idList = " + FilterString(sb.ToString());
  657. return ParseDbResult(sql);
  658. }
  659. public DataSet GetHoldTransactionSummary(string user, string branchId, string userType)
  660. {
  661. string sql = "EXEC proc_ApproveHoldedTXN ";
  662. sql += " @flag = 's_txn_summary'";
  663. sql += ", @user = " + FilterString(user);
  664. sql += ", @branchId = " + FilterString(branchId);
  665. sql += ", @userType = " + FilterString(userType);
  666. return ExecuteDataset(sql);
  667. }
  668. public DataSet GetHoldAdminTransactionSummary(string user, string branchId, string userType)
  669. {
  670. string sql = "EXEC proc_ApproveHoldedTXN ";
  671. sql += " @flag = 's_admin_txn_summary'";
  672. sql += ", @user = " + FilterString(user);
  673. sql += ", @branchId = " + FilterString(branchId);
  674. sql += ", @userType = " + FilterString(userType);
  675. return ExecuteDataset(sql);
  676. }
  677. public DataSet GetHoldAdminTransactionSummaryOnline(string user, string branchId, string userType)
  678. {
  679. string sql = "EXEC proc_ApproveHoldedTXN ";
  680. sql += " @flag = 'OnlineTxn-waitingList'";
  681. sql += ", @user = " + FilterString(user);
  682. sql += ", @branchId = " + FilterString(branchId);
  683. sql += ", @userType = " + FilterString(userType);
  684. return ExecuteDataset(sql);
  685. }
  686. public DbResult ReprocessBySchedular(string count, string agentCode, string user, string pass)
  687. {
  688. var dr = new DbResult();
  689. var sql = "EXEC proc_transactionUtility @flag = 'rpid'";
  690. sql += ", @count = " + FilterString(count);
  691. sql += ", @agentCode = " + FilterString(agentCode);
  692. sql += ", @user = " + FilterString(user);
  693. sql += ", @pass = " + FilterString(pass);
  694. var dt = ExecuteDataTable(sql);
  695. var cnt = 0;
  696. foreach (DataRow row in dt.Rows)
  697. {
  698. try
  699. {
  700. //Reprocess(user, row["Id"].ToString(), row["processId"].ToString());
  701. cnt++;
  702. }
  703. catch
  704. {
  705. }
  706. }
  707. dr.SetError("0", cnt + " Transactions Processed Successfully.", "");
  708. return dr;
  709. }
  710. //public DbResult Reprocess(string user, string id, string processId = "")
  711. //{
  712. // return new GlobalBankDao().Reprocess(user, id, processId);
  713. //}
  714. #region approve transaction domestic
  715. public DataSet GetHoldTxnSummaryDomestic(string user)
  716. {
  717. string sql = "EXEC proc_approveHoldTranDomestic ";
  718. sql += " @flag = 'summary'";
  719. sql += ", @user = " + FilterString(user);
  720. return ExecuteDataset(sql);
  721. }
  722. public DataSet GetHoldTxnDetailDomestic(string user, string sAgent, string sender, string receiver
  723. , string controlNo, string amt, string txnDate, string txnUser)
  724. {
  725. string sql = "EXEC proc_approveHoldTranDomestic @flag = 'detail'";
  726. sql += ", @user = " + FilterString(user);
  727. sql += ", @sAgent = " + FilterString(sAgent);
  728. sql += ", @controlNo = " + FilterString(controlNo);
  729. sql += ", @sender = " + FilterString(sender);
  730. sql += ", @receiver = " + FilterString(receiver);
  731. sql += ", @amt = " + FilterString(amt);
  732. sql += ", @txnDate = " + FilterString(txnDate);
  733. sql += ", @txnUser = " + FilterString(txnUser);
  734. return ExecuteDataset(sql);
  735. }
  736. public DbResult ApproveSingleDom(string user, string tranId)
  737. {
  738. var sql = "EXEC proc_approveHoldTranDomestic @flag = 'approve'";
  739. sql += ", @user = " + FilterString(user);
  740. sql += ", @tranId = " + FilterString(tranId);
  741. var drDb = ParseDbResult(sql);
  742. return drDb;
  743. }
  744. #endregion approve transaction domestic
  745. public DataTable GetMailDetails(string user)
  746. {
  747. var sql = "EXEC proc_getEmailSendDetails @flag = 'get'";
  748. sql += ", @user = " + FilterString(user);
  749. return ExecuteDataTable(sql);
  750. }
  751. public DataTable ErrorEmail(string user, string rowId)
  752. {
  753. var sql = "EXEC proc_getEmailSendDetails @flag = 'error'";
  754. sql += ", @user = " + FilterString(user);
  755. sql += ", @rowId = " + FilterString(rowId);
  756. return ExecuteDataTable(sql);
  757. }
  758. public DbResult UpdateSyncTxnById(string user, string id)
  759. {
  760. var sql = "EXEC PROC_TP_TXN_PUSH @flag = 'INSTANT-PAID_V2'";
  761. sql += ", @user = " + FilterString(user);
  762. sql += ", @TRAN_ID = " + FilterString(id);
  763. var drDb = ParseDbResult(sql);
  764. return drDb;
  765. }
  766. }
  767. }