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.

2143 lines
97 KiB

10 months ago
10 months ago
10 months ago
  1. using Newtonsoft.Json;
  2. using Swift.API.Common;
  3. using Swift.API.Common.Cancel;
  4. using Swift.API.Common.Enum;
  5. using Swift.API.ThirdPartyApiServices;
  6. using Swift.API.TPAPIs;
  7. using Swift.DAL.BL.Remit.Transaction;
  8. using Swift.DAL.BL.System.GeneralSettings;
  9. using Swift.DAL.OnlineAgent;
  10. using Swift.DAL.SwiftDAL;
  11. using Swift.web.Component.Grid;
  12. using Swift.web.Component.Grid.gridHelper;
  13. using Swift.web.Library;
  14. using System;
  15. using System.Collections.Generic;
  16. using System.ComponentModel;
  17. using System.Data;
  18. using System.IO;
  19. using System.Linq;
  20. using System.Text;
  21. using System.Text.RegularExpressions;
  22. using System.Threading.Tasks;
  23. using System.Web;
  24. using System.Web.Script.Serialization;
  25. using System.Web.UI.HtmlControls;
  26. namespace Swift.web.Remit.UserControl
  27. {
  28. public partial class UcTransaction : System.Web.UI.UserControl
  29. {
  30. private readonly DbResult msgDb = new DbResult();
  31. private RemittanceLibrary rl = new RemittanceLibrary();
  32. private SmtpMailSetting smtpMailSetting = new SmtpMailSetting();
  33. private readonly SmtpMailSetting _mailToAgent = new SmtpMailSetting();
  34. private ApproveTransactionDao at = new ApproveTransactionDao();
  35. private TranViewDao obj = new TranViewDao();
  36. private readonly StaticDataDdl _sdd = new StaticDataDdl();
  37. private const string ModifyPayoutLocationId = "20121520";
  38. private const string ModifyPayoutLocationIdAg = "40101730";
  39. private readonly SwiftGrid _grid = new SwiftGrid();
  40. OnlineCustomerDao _cd = new OnlineCustomerDao();
  41. public bool ShowDetailBlock { get; set; }
  42. public bool ShowLogBlock { get; set; }
  43. public bool ShowCommentBlock { get; set; }
  44. public bool ShowBankDetail { get; set; }
  45. public bool ShowOfac { get; set; }
  46. public bool ShowCompliance { get; set; }
  47. public bool ShowApproveButton { get; set; }
  48. public bool ShowDocDetails { get; set; }
  49. public string TranNo
  50. {
  51. get { return hddTranId.Value; }
  52. set { hddTranId.Value = value; }
  53. }
  54. public string CtrlNo
  55. {
  56. get { return lblControlNo.Text; }
  57. set { lblControlNo.Text = value; }
  58. }
  59. public string PayTokenId
  60. {
  61. get { return hddPayTokenId.Value; }
  62. set { hddPayTokenId.Value = value; }
  63. }
  64. public string TranStatus
  65. {
  66. get { return tranStatus.Text; }
  67. set { tranStatus.Text = value; }
  68. }
  69. public string PayStatus
  70. {
  71. get { return payStatus.Text; }
  72. set { payStatus.Text = value; }
  73. }
  74. public string ModeOfPayment
  75. {
  76. get { return modeOfPayment.Text; }
  77. set { modeOfPayment.Text = value; }
  78. }
  79. public string CreatedBy
  80. {
  81. get { return createdBy.Text; }
  82. set { createdBy.Text = value; }
  83. }
  84. public string ApprovedBy
  85. {
  86. get { return approvedBy.Text; }
  87. set { approvedBy.Text = value; }
  88. }
  89. public string PaidBy
  90. {
  91. get { return paidBy.Text; }
  92. set { paidBy.Text = value; }
  93. }
  94. public string CancelRequestedBy
  95. {
  96. get { return cancelRequestedBy.Text; }
  97. set { cancelRequestedBy.Text = value; }
  98. }
  99. public string CancelApprovedBy
  100. {
  101. get { return cancelApprovedBy.Text; }
  102. set { cancelApprovedBy.Text = value; }
  103. }
  104. public string trnStatusBeforeCnlReq
  105. {
  106. get { return hddTrnSatusBeforeCnlReq.Value; }
  107. set { hddTrnSatusBeforeCnlReq.Value = value; }
  108. }
  109. public string PAgent
  110. {
  111. get { return pAgent.Value; }
  112. set { pAgent.Value = value; }
  113. }
  114. //public string LockTranSaction
  115. //{
  116. // get { return lockTranSaction.Text; }
  117. // set { lockTranSaction.Text = value; }
  118. //}
  119. public bool TranFound { get; set; }
  120. public string HoldTranId { get; set; }
  121. public string isFromApprove { get; set; }
  122. public string isFromApproveTxn { get; set; }
  123. public void SearchData(string tranNo, string ctrlNo, string mode, string lockMode, string displayType = null)
  124. {
  125. SearchData(tranNo, ctrlNo, mode, lockMode, "SEARCH", "ADM:SEARCH TXN", false, displayType);
  126. }
  127. public void SearchData(string tranNo, string ctrlNo, string mode, string lockMode, string viewType, string viewMsg, bool isArchive = false, string displayType = null)
  128. {
  129. //pnlShowBankDetail.Visible = ShowBankDetail;
  130. tranNoName.Text = GetStatic.GetTranNoName();
  131. TranNo = tranNo;
  132. CtrlNo = ctrlNo;
  133. TranFound = false;
  134. if (viewType == "SEARCH")
  135. {
  136. PanelKycDocumentUpload.Visible = false;
  137. }
  138. string showHideDocPanel = GetStatic.ReadQueryString("showDocPanel", "");
  139. if(showHideDocPanel == "N")
  140. {
  141. PanelKycDocumentUpload.Visible = false;
  142. }
  143. DataSet ds = null;
  144. if (isArchive)
  145. {
  146. //var obj = new ArchiveReportsDao();
  147. //ds = obj.SelectTransaction(GetStatic.GetUser(), ctrlNo, TranNo, lockMode, viewType, viewMsg);
  148. }
  149. else
  150. {
  151. var obj = new TranViewDao();
  152. ds = obj.SelectTransaction(GetStatic.GetUser(), ctrlNo, TranNo, lockMode, viewType, viewMsg);
  153. }
  154. if (ds == null)
  155. {
  156. rl.ManageInvalidControlNoAttempt(Page, GetStatic.GetUser(), "N");
  157. return;
  158. }
  159. if (ds.Tables.Count > 1)
  160. {
  161. if (displayType == "cancelpartner")
  162. {
  163. upnl1.Visible = false;
  164. PanelDocumentUpload.Visible = false;
  165. PanelQuestionnaire.Visible = false;
  166. }
  167. if (ds.Tables[0].Rows.Count > 0)
  168. {
  169. var tRow = ds.Tables[0].Rows[0];
  170. customerSignatureImg.ImageUrl = "/Remit/Transaction/TxnDocView/TxnDocView.ashx?txnDate=" + tRow["createdDate"].ToString() + "&controlNo=" + tRow["controlNo"].ToString();
  171. hdnCustomerId.Value = tRow["sCustomerId"].ToString();
  172. hdnRegisterDate.Value = tRow["registerDate"].ToString();
  173. hdnMembershipId.Value = tRow["uniqueId"].ToString();
  174. TranFound = true;
  175. HoldTranId = tRow["holdTranId"].ToString();
  176. // ShowQuestionaireLink(HoldTranId, displayType, viewType);
  177. rl.ManageInvalidControlNoAttempt(Page, GetStatic.GetUser(), "Y");
  178. lblControlNo.Text = tRow["controlNo"].ToString();
  179. lblTranNo.Text = tRow["tranId"].ToString();
  180. hddTranId.Value = tRow["tranId"].ToString();
  181. isRealTime.Value = tRow["isRealTime"].ToString();
  182. // pnlExRate.Visible = false;
  183. if (tRow["extCustomerId"].ToString() == "")
  184. sCId.Visible = false;
  185. else
  186. sCustomerId.Text = tRow["extCustomerId"].ToString();
  187. if (tRow["sMemId"].ToString() == "")
  188. sDisMemId.Visible = false;
  189. else
  190. {
  191. sDisMemId.Visible = true;
  192. sMemId.Text = tRow["sMemId"].ToString();
  193. }
  194. if (tRow["rMemId"].ToString() == "")
  195. rDisMemId.Visible = false;
  196. else
  197. {
  198. rDisMemId.Visible = true;
  199. rMemId.Text = tRow["rMemId"].ToString();
  200. }
  201. hdnCustomerId.Value = tRow["sCustomerId"].ToString();
  202. if (tRow["tranStatus"].ToString().ToUpper() == "CANCEL")
  203. {
  204. showHideTranStatus.Visible = true;
  205. highLightTranStatus.InnerText = "CANCELLED Transaction";
  206. }
  207. if (tRow["tranStatus"].ToString().ToUpper() == "LOCK")
  208. {
  209. lockAudit.Visible = true;
  210. var html = new StringBuilder("Locked By ");
  211. html.Append(tRow["lockedBy"] + " on " + tRow["lockedDate"]);
  212. lockAudit.InnerHtml = html.ToString();
  213. }
  214. if (mode == "u") // mode: modification transaction
  215. {
  216. //sName.Text = GetLinkTextForModification("Sender Name", "senderName", tRow);
  217. //sName.Text = GetLinkTextForModification("Sender Name", "senderName", tRow);
  218. //sAddress.Text = GetLinkTextForModification("Sender Address", "sAddress", tRow);
  219. //sContactNo.Text = GetLinkTextForModification("Sender Contact No", "sContactNo", tRow);
  220. //sIdType.Text = GetLinkTextForModification("Sender Id Type", "sIdType", tRow);
  221. //sIdNo.Text = GetLinkTextForModification("Sender Id No", "sIdNo", tRow);
  222. if (tRow["pAgent"].ToString() == "394428" && tRow["paymentMethod"].ToString().ToUpper() == "CASH PAYMENT")
  223. {
  224. rName.Text = GetLinkTextForModification("Receiver Name", "receiverName", tRow);
  225. }
  226. else
  227. {
  228. rName.Text = GetLinkTextForModification("Receiver Name", "receiverName", tRow);
  229. rAddress.Text = GetLinkTextForModification("Receiver Address", "rAddress", tRow);
  230. rContactNo.Text = GetLinkTextForModification("Receiver Contact No", "rContactNo", tRow);
  231. rIdType.Text = GetLinkTextForModification("Receiver Id Type", "rIdType", tRow);
  232. rIdNo.Text = GetLinkTextForModification("Receiver Id No", "rIdNo", tRow);
  233. }
  234. if (tRow["paymentMethod"].ToString().ToUpper() == "BANK DEPOSIT")
  235. {
  236. accountNo.Text = GetLinkTextForModification("Account No", "accountNo", tRow);
  237. bankName.Text = GetLinkBankPayoutLocation("Bank Name", "BankName", tRow);
  238. branchName.Text = GetLinkBankPayoutLocation("Branch Name", "pBranchName", tRow);
  239. }
  240. }
  241. else
  242. {
  243. rName.Text = tRow["receiverName"].ToString(); //
  244. rAddress.Text = tRow["rAddress"].ToString(); //
  245. rContactNo.Text = tRow["rContactNo"].ToString(); //
  246. rIdType.Text = tRow["rIdType"].ToString(); //
  247. rIdNo.Text = tRow["rIdNo"].ToString(); //
  248. }
  249. sName.Text = tRow["senderName"].ToString(); //
  250. sDetail.Text = tRow["showDetails"].ToString();
  251. customerId.Text = tRow["sCustomerId"].ToString(); //
  252. occupation.Text = tRow["occupation"].ToString();
  253. sAddress.Text = tRow["sAddress"].ToString(); //
  254. sContactNo.Text = tRow["sContactNo"].ToString(); //
  255. sIdType.Text = tRow["sIdType"].ToString(); //
  256. sIdNo.Text = tRow["sIdNo"].ToString(); //
  257. //editCust.Text = tRow["editCustomer"].ToString();
  258. hdnRName.Value = tRow["receiverName"].ToString();
  259. hdnSName.Value = tRow["senderName"].ToString();
  260. sCountry.Text = tRow["sCountryName"].ToString();
  261. sEmail.Text = tRow["sEmail"].ToString();
  262. rCountry.Text = tRow["rCountryName"].ToString();
  263. sDOB.Text = tRow["sDob"].ToString();
  264. sourceFund.Text = tRow["sourceOfFund"].ToString();
  265. purpose.Text = tRow["purposeOfRemit"].ToString();
  266. nativeCountry.Text = tRow["nativeCountry"].ToString();
  267. //Sending Agent Detail
  268. hddSAgentEmail.Value = tRow["sAgentEmail"].ToString();
  269. sAgentName.Text = tRow["sAgentName"].ToString();
  270. sBranchName.Text = tRow["sBranchName"].ToString();
  271. sAgentCountry.Text = tRow["sCountryName"].ToString();
  272. sAgentDistrict.Text = tRow["sAgentDistrict"].ToString();
  273. sAgentCity.Text = tRow["sAgentCity"].ToString();
  274. sAgentLocation.Text = tRow["sAgentLocation"].ToString();
  275. referralName.Text = tRow["referralName"].ToString();
  276. PanelQuestionnaire.Visible = false;
  277. if (tRow["IsQuestionnaire"].ToString().ToLower() != "none")
  278. {
  279. PanelQuestionnaire.Visible = true;
  280. }
  281. hdnViewQuestionnaire.Value = tRow["IsQuestionnaire"].ToString();
  282. //Payout Agent Detail
  283. pAgentCountry.Text = tRow["pAgentCountry"].ToString();
  284. pAgentDistrict.Text = tRow["pAgentDistrict"].ToString();
  285. pAgentCity.Text = tRow["pAgentCity"].ToString();
  286. if (rl.HasRight(ModifyPayoutLocationId) || rl.HasRight(ModifyPayoutLocationIdAg))
  287. {
  288. if (mode == "u" && tRow["paymentMethod"].ToString().ToUpper() != "BANK DEPOSIT")
  289. // mode: modification payout location
  290. {
  291. pAgentLocation.Text = GetLinkPayoutLocation("Payout Location", "pAgentLocation", tRow);
  292. accountNo.Text = tRow["accountNo"].ToString();
  293. bankName.Text = tRow["BankName"].ToString();
  294. branchName.Text = tRow["BranchName"].ToString();
  295. pBranchName.Text = tRow["pBranchName"].ToString();
  296. }
  297. else if (mode == "u" && tRow["paymentMethod"].ToString().ToUpper() == "BANK DEPOSIT")
  298. //modify mode & bank deposit mode
  299. {
  300. accountNo.Text = GetLinkPayoutLocation("Account Number", "accountNo", tRow);
  301. bankName.Text = GetLinkBankPayoutLocation("Bank Name", "BankName", tRow);
  302. branchName.Text = GetLinkBankPayoutLocation("Branch Name", "BranchName", tRow);
  303. pBranchName.Text = GetLinkPayoutLocation("Paying Branch", "pBranchName", tRow);
  304. pAgentLocation.Text = tRow["pAgentLocation"].ToString();
  305. }
  306. else
  307. {
  308. pAgentLocation.Text = tRow["pAgentLocation"].ToString();
  309. accountNo.Text = tRow["accountNo"].ToString();
  310. bankName.Text = tRow["BankName"].ToString();
  311. branchName.Text = tRow["BranchName"].ToString();
  312. postDate.Text = tRow["postDate"].ToString();
  313. releaseDate.Text = tRow["releaseDate"].ToString();
  314. pBranchName.Text = tRow["pBranchName"].ToString();
  315. }
  316. }
  317. else
  318. {
  319. pAgentLocation.Text = tRow["pAgentLocation"].ToString();
  320. accountNo.Text = tRow["accountNo"].ToString();
  321. //bankName.Text = tRow["BankName"].ToString();
  322. //branchName.Text = tRow["BranchName"].ToString();
  323. //pBranchName.Text = tRow["pBranchName"].ToString();
  324. }
  325. //bankName.Text = tRow["BankName"].ToString();
  326. //branchName.Text = tRow["BranchName"].ToString();
  327. pBranchName.Text = tRow["pBranchName"].ToString();
  328. pAgentLocation.Text = tRow["pAgentLocation"].ToString();
  329. if (tRow["rCountryName"].ToString().ToLower() == "nepal")
  330. {
  331. trBranch.Visible = false;
  332. }
  333. else
  334. {
  335. trBranch.Visible = true;
  336. }
  337. pAgentName.Text = tRow["pAgentName"].ToString();
  338. //modeOfPayment.Text = tRow["paymentMethod"].ToString();
  339. modeOfPayment.Text = GetPaymentMode("Mode of Payment", "paymentMethod", tRow);
  340. modeOfDeposit.Text = tRow["depositType"].ToString();
  341. payer.Text = tRow["payerName"].ToString();
  342. transactionReference.Text = tRow["trustPaymentId"].ToString();
  343. tranStatus.Text = tRow["tranStatus"].ToString();
  344. payStatus.Text = tRow["payStatus"].ToString();
  345. sAgentComm.Text = GetStatic.FormatData(tRow["sAgentComm"].ToString(), "M");
  346. sAgentCommCurr.Text = tRow["sAgentCommCurrency"].ToString();
  347. if (payStatus.Text == "Paid")
  348. {
  349. //payAgentComm.Visible = true;
  350. pAgentComm.Text = GetStatic.FormatData(tRow["pAgentComm"].ToString(), "M");
  351. pAgentCommCurr.Text = tRow["pAgentCommCurrency"].ToString();
  352. }
  353. pnlShowBankDetail.Visible = (tRow["paymentMethod"].ToString().ToUpper() == "BANK DEPOSIT" ? true : false);
  354. if (tRow["paymentMethod"].ToString().ToUpper().Equals("MOBILE WALLET"))
  355. {
  356. pnlShowBankDetail.Visible = true;
  357. }
  358. //if (tRow["tranType"].ToString() == "I")
  359. //{
  360. // pnlExRate.Visible = true;
  361. handling.Text = GetStatic.FormatData(tRow["customerPremium"].ToString(), "M");
  362. exRate.Text = GetStatic.ShowDecimalRate(tRow["exRate"].ToString());
  363. // }
  364. pCountry.Text = tRow["rCountryName"].ToString();
  365. rewardPoints.Text = tRow["rewardPoints"].ToString();
  366. //bankDetails.Visible = false;
  367. //lblCollMode.Text = tRow["collMode"].ToString();
  368. //if (tRow["collMode"].ToString().ToLower() == "bank deposit")
  369. //{
  370. // bankDetails.Visible = true;
  371. // PopulateBankDetails(ds.Tables[3]);
  372. //}
  373. transferAmount.Text = GetStatic.FormatData(tRow["tAmt"].ToString(), "M");
  374. serviceCharge.Text = GetStatic.FormatData(tRow["serviceCharge"].ToString(), "M");
  375. total.Text = GetStatic.FormatData(tRow["cAmt"].ToString(), "M");
  376. payoutAmt.Text = GetStatic.FormatData(tRow["pAmt"].ToString(), "M");
  377. relationship.Text = tRow["relationship"].ToString();
  378. if (tRow["payoutMsg"].ToString() == "-")
  379. trpMsg.Visible = false;
  380. else
  381. payoutMsg.Text = tRow["payoutMsg"].ToString();
  382. tAmtCurr.Text = tRow["collCurr"].ToString();
  383. scCurr.Text = tRow["collCurr"].ToString();
  384. totalCurr.Text = tRow["collCurr"].ToString();
  385. pAmtCurr.Text = tRow["payoutCurr"].ToString();
  386. createdBy.Text = tRow["createdBy"].ToString();
  387. createdDate.Text = tRow["createdDate"].ToString();
  388. createdFrom.Text = tRow["createdFrom"].ToString();
  389. approvedBy.Text = tRow["approvedBy"].ToString();
  390. approvedDate.Text = tRow["approvedDate"].ToString();
  391. paidBy.Text = tRow["paidBy"].ToString();
  392. paidDate.Text = tRow["paidDate"].ToString();
  393. cancelRequestedBy.Text = tRow["cancelRequestBy"].ToString();
  394. cancelRequestedDate.Text = tRow["cancelRequestDate"].ToString();
  395. cancelApprovedBy.Text = tRow["cancelApprovedBy"].ToString();
  396. cancelApprovedDate.Text = tRow["cancelApprovedDate"].ToString();
  397. createdFrom.Text = tRow["createdFrom"].ToString();
  398. hddPayTokenId.Value = tRow["payTokenId"].ToString();
  399. introducer.Text = tRow["introducer"].ToString();
  400. verifiedBy.Text = tRow["verifiedBy"].ToString();
  401. verifiedDate.Text = tRow["verifiedDate"].ToString();
  402. tblCreatedLog.Visible = createdBy.Text != "";
  403. tblApprovedLog.Visible = approvedBy.Text != "";
  404. tblPaidLog.Visible = paidBy.Text != "";
  405. tblCancelRequestedLog.Visible = cancelRequestedBy.Text != "";
  406. tblCancelApprovedLog.Visible = cancelApprovedBy.Text != "";
  407. tblVerifiedLog.Visible = verifiedBy.Text != "";
  408. trNameAsPerBank.Visible = false;
  409. if (!string.IsNullOrEmpty(tRow["receiverNameAlt"].ToString()))
  410. {
  411. trNameAsPerBank.Visible = true;
  412. lblNameAsPerBank.Text = tRow["receiverNameAlt"].ToString();
  413. }
  414. }
  415. if (displayType != "cancelpartner")
  416. {
  417. ShowDocumentUploadOrNot();
  418. // PopulateVoucherDetail(TranNo);
  419. }
  420. //pnlLog.Visible = false;
  421. if (ds.Tables[1].Rows.Count > 0)
  422. {
  423. //pnlLog.Visible = true;
  424. var dt = ds.Tables[1];
  425. var str = new StringBuilder("<table class=\"table table-responsive table-bordered table-striped\">");
  426. str.Append("<tr>");
  427. str.Append("<th>Updated By</th>");
  428. str.Append("<th>Updated Date</th>");
  429. str.Append("<th>Message</th>");
  430. str.Append("<th>Action</th>");
  431. str.Append("</tr>");
  432. foreach (DataRow dr in dt.Rows)
  433. {
  434. str.Append("<tr>");
  435. str.Append("<td align='left'>" + dr["createdBy"] + "</td>");
  436. str.Append("<td align='left'>" + dr["createdDate"] + "</td>");
  437. if (dr["fileType"].ToString() == "")
  438. {
  439. str.Append("<td align='left'>" + dr["message"] + "</td>");
  440. }
  441. else
  442. {
  443. str.Append("<td align='left'><a title='View Deposit Slip' target='_blank' href='/doc/" + lblControlNo.Text + "/" + dr["rowId"].ToString() + "." + dr["fileType"].ToString() + "'>" + dr["message"] + "</a></td>");
  444. }
  445. if (dr["deleteComment"].ToString() == "Y" && dr["fieldName"].ToString() != "STATUS_SYNC")
  446. {
  447. str.Append("<td align='left'><a class=\"btn btn-xs btn-primary\" title=\"Delete\" onClick= \"DeleteTroubleTicket( " + dr["rowId"].ToString() + ")\"><i class=\"fa fa-trash\"></i></a></td>");
  448. }
  449. str.Append("</tr>");
  450. }
  451. str.Append("</table>");
  452. rptLog.InnerHtml = str.ToString();
  453. }
  454. // Customer Document Details
  455. if (ds.Tables.Count > 4)
  456. {
  457. if (ds.Tables[4] != null && ds.Tables[4].Rows.Count > 0)
  458. {
  459. var dt = ds.Tables[4];
  460. var str = new StringBuilder("<table class=\"table table-responsive table-bordered table-striped\">");
  461. str.Append("<tr>");
  462. str.Append("<th>S.N</th>");
  463. str.Append("<th>Doc Type</th>");
  464. str.Append("<th>File Type</th>");
  465. str.Append("<th>File Name</th>");
  466. str.Append("<th>Uploaded Date</th>");
  467. str.Append("</tr>");
  468. foreach (DataRow dr in dt.Rows)
  469. {
  470. str.Append("<tr>");
  471. str.Append("<td align='left'>" + dr["SN"] + "</td>");
  472. str.Append("<td align='left'>" + dr["documentType"] + "</td>");
  473. str.Append("<td align='left'>" + dr["fileType"] + "</td>");
  474. str.Append("<td align='left'>" + dr["fileName"] + "</td>");
  475. str.Append("<td align='left'>" + dr["uploadedDate"] + "</td>");
  476. }
  477. str.Append("</table>");
  478. customerDocDetails.InnerHtml = str.ToString();
  479. }
  480. }
  481. }
  482. }
  483. public class CustomerDocumentView
  484. {
  485. public string CdId { get; set; }
  486. public string FileName { get; set; }
  487. public string FileType { get; set; }
  488. public string DocumentName { get; set; }
  489. public string ImageUrl { get; set; }
  490. public bool isEkyc { get; set; }
  491. }
  492. private List<string> GetDocTypeListNew()
  493. {
  494. List<string> docType = new List<string>();
  495. docType.Add("ID Front");
  496. docType.Add("ID Back");
  497. docType.Add("Additional ID Front");
  498. docType.Add("Additional ID Back");
  499. return docType;
  500. }
  501. public void GetImageUrl()
  502. {
  503. string customerId = hdnCustomerId.Value;
  504. string registerDate = hdnRegisterDate.Value;
  505. string membershipId = hdnMembershipId.Value;
  506. var documentDetails = _cd.GetDocumentByCustomerId(customerId);
  507. List<CustomerDocumentView> customerDocument = new List<CustomerDocumentView>();
  508. List<DataRow> docList = new List<DataRow>();
  509. List<string> docTypeList = GetDocTypeListNew();
  510. if (documentDetails != null)
  511. {
  512. docList = documentDetails.Rows.Cast<DataRow>().ToList();
  513. foreach (var item in docTypeList)
  514. {
  515. var docDetails = docList.Where(x => x.Field<string>("documentName").ToLower().ToString().Equals(item.ToLower())).FirstOrDefault();
  516. if (docDetails != null)
  517. {
  518. CustomerDocumentView doc = new CustomerDocumentView
  519. {
  520. CdId = docDetails.Field<int>("cdid").ToString(),// cast error aauxa eta
  521. FileName = docDetails.Field<string>("fileName").ToString(),
  522. FileType = docDetails.Field<string>("fileType") == null ? "" : docDetails.Field<string>("fileType").ToString(),
  523. DocumentName = docDetails.Field<string>("documentName").ToString(),
  524. ImageUrl = "/Handler/CustomerSignature.ashx?registerDate=" + Convert.ToDateTime(registerDate).ToString("yyyy-MM-dd") + "&customerId=" + customerId + "&membershipNo=" + membershipId + "&fileName=" + docDetails.Field<string>("fileName").ToString(),
  525. isEkyc = false
  526. };
  527. customerDocument.Add(doc);
  528. }
  529. }
  530. }
  531. Response.ContentType = "text/plain";
  532. var serializer = new JavaScriptSerializer();
  533. var json = serializer.Serialize(customerDocument);
  534. Response.Write(json);
  535. Response.End();
  536. }
  537. public void GetImageUrl1()
  538. {
  539. string customerId = hdnCustomerId.Value;
  540. string registerDate = hdnRegisterDate.Value;
  541. string membershipId = hdnMembershipId.Value;
  542. var documentDetails = _cd.GetDocumentByCustomerId(customerId);
  543. string[] imageUrlArray = new string[4];
  544. StringBuilder imageHtml = new StringBuilder();
  545. List<DataRow> docList = new List<DataRow>();
  546. if (documentDetails != null)
  547. {
  548. docList = documentDetails.Rows.Cast<DataRow>().ToList();
  549. docList = docList.Where(x => !string.IsNullOrEmpty(x.Field<string>("documentName"))).ToList();
  550. var IdFront = docList.Where(x => x.Field<string>("documentName").ToString().Equals("ID Front")).FirstOrDefault();
  551. if (IdFront != null)
  552. {
  553. imageUrlArray[0] = "/Handler/CustomerSignature.ashx?registerDate=" + Convert.ToDateTime(registerDate).ToString("yyyy-MM-dd") + "&customerId=" + customerId + "&membershipNo=" + membershipId + "&fileName=" + IdFront.Field<string>("fileName").ToString();
  554. }
  555. var IdBack = docList.Where(x => x.Field<string>("documentName").ToString().Equals("ID Back")).FirstOrDefault();
  556. if (IdBack != null)
  557. {
  558. imageUrlArray[1] = "/Handler/CustomerSignature.ashx?registerDate=" + Convert.ToDateTime(registerDate).ToString("yyyy-MM-dd") + "&customerId=" + customerId + "&membershipNo=" + membershipId + "&fileName=" + IdBack.Field<string>("fileName").ToString();
  559. }
  560. var AdditionalIdFront = docList.Where(x => x.Field<string>("documentName") != null && x.Field<string>("documentName").ToString().Equals("Additional ID Front")).SingleOrDefault();
  561. if (AdditionalIdFront != null)
  562. {
  563. imageUrlArray[2] = "/Handler/CustomerSignature.ashx?registerDate=" + Convert.ToDateTime(registerDate).ToString("yyyy-MM-dd") + "&customerId=" + customerId + "&membershipNo=" + membershipId + "&fileName=" + AdditionalIdFront.Field<string>("fileName").ToString();
  564. }
  565. else
  566. imageUrlArray[2] = "";
  567. var AdditionalIdBack = docList.Where(x => x.Field<string>("documentName") != null && x.Field<string>("documentName").ToString().Equals("Additional ID Back")).FirstOrDefault();
  568. if (AdditionalIdBack != null)
  569. {
  570. imageUrlArray[3] = "/Handler/CustomerSignature.ashx?registerDate=" + Convert.ToDateTime(registerDate).ToString("yyyy-MM-dd") + "&customerId=" + customerId + "&membershipNo=" + membershipId + "&fileName=" + AdditionalIdBack.Field<string>("fileName").ToString();
  571. }
  572. else
  573. imageUrlArray[3] = "";
  574. }
  575. Response.ContentType = "text/plain";
  576. var serializer = new JavaScriptSerializer();
  577. var json = serializer.Serialize(imageUrlArray);
  578. Response.Write(json);
  579. Response.End();
  580. }
  581. private void saveCustomerDocument()
  582. {
  583. string customerId = hdnCustomerId.Value;
  584. string registerDate = hdnRegisterDate.Value;
  585. string membershipId = hdnMembershipId.Value;
  586. HttpFileCollection fileCollection = Request.Files;
  587. for (int i = 0; i < fileCollection.AllKeys.Length; i++)
  588. {
  589. HttpPostedFile file = fileCollection[i];
  590. if (file != null)
  591. {
  592. string documentTypeName = "";
  593. string documentType = "";
  594. string fileType = "";
  595. string cdid = "";
  596. string filename = "";
  597. var keyName = fileCollection.AllKeys[i];
  598. keyName = keyName.Replace("ucTran$", "");
  599. if (keyName.ToLower().Equals("reg_front_id1"))
  600. {
  601. documentTypeName = "ID Card(Front)";
  602. documentType = "11394";
  603. if (hdnreg_front_idCdId != null & !string.IsNullOrEmpty(hdnreg_front_idCdId.Value))
  604. {
  605. var r = hdnreg_front_idCdId.Value.Split('|');
  606. filename = r[0];
  607. cdid = r[1];
  608. }
  609. }
  610. if (keyName.ToLower().Equals("reg_back_id"))
  611. {
  612. documentTypeName = "ID Card(Back)";
  613. documentType = "11395";
  614. if (hdnreg_front_idCdId != null & !string.IsNullOrEmpty(hdnreg_back_id_idCdId.Value))
  615. {
  616. var r = hdnreg_back_id_idCdId.Value.Split('|');
  617. filename = r[0];
  618. cdid = r[1];
  619. }
  620. }
  621. if (keyName.ToLower().Equals("reg_additional_id"))
  622. {
  623. documentTypeName = "Additional ID (Front)";
  624. documentType = "11396";
  625. if (hdnreg_front_idCdId != null & !string.IsNullOrEmpty(hdnreg_additional_idCdId.Value))
  626. {
  627. var r = hdnreg_additional_idCdId.Value.Split('|');
  628. if (r.Count() > 1)
  629. {
  630. filename = r[0];
  631. cdid = r[1];
  632. }
  633. else
  634. cdid = r[0];
  635. }
  636. }
  637. if (keyName.ToLower().Equals("reg_additional_id2"))
  638. {
  639. documentTypeName = "Additional ID (Back)";
  640. documentType = "11397";
  641. if (hdnreg_front_idCdId != null & !string.IsNullOrEmpty(hdnreg_additional_id2CdId.Value))
  642. {
  643. var r = hdnreg_additional_id2CdId.Value.Split('|');
  644. if (r.Count() > 1)
  645. {
  646. filename = r[0];
  647. cdid = r[1];
  648. }
  649. else
  650. cdid = r[0];
  651. }
  652. }
  653. if (file.ContentLength > 0 && !string.IsNullOrEmpty(file.FileName))
  654. {
  655. string fileNameNew = (!string.IsNullOrWhiteSpace(file.FileName) ? UploadDocument(file, customerId, documentTypeName, membershipId, registerDate, filename, out fileType)
  656. : UploadDocument(file, customerId, documentType, membershipId, registerDate, filename, out fileType));
  657. //CustomerDocument cm = new CustomerDocument();
  658. //cm.customerId = result[0];
  659. //cm.fileDescription = "";
  660. //cm.documentType = documentType;
  661. //cm.fileUrl = fileName;
  662. //cm.fileType = fileType;
  663. if (fileNameNew.Contains("notValid extensions."))
  664. {
  665. GetStatic.CallBackJs1(Page, "Print Message", "ManageMessage('" + fileNameNew + "');");
  666. continue;
  667. }
  668. else
  669. _cd.UpdateCustomerDocument(cdid, customerId, fileNameNew, documentTypeName, fileType, documentType, GetStatic.GetUser());
  670. }
  671. }
  672. }
  673. }
  674. private string UploadDocument(HttpPostedFile doc, string customerId, string documentType, string membershipId, string registeredDate, string filenameOld, out string fileType)
  675. {
  676. fileType = "";
  677. string fName = "";
  678. try
  679. {
  680. fileType = doc.ContentType;
  681. string fileExtension = new FileInfo(doc.FileName).Extension;
  682. string documentExtension = GetStatic.ReadWebConfig("customerDocFileExtension", "");
  683. if (documentExtension.ToLower().Contains(fileExtension.ToLower()))
  684. {
  685. string fileName = customerId + "_" + documentType.Replace(" ", string.Empty) + "_" + DateTime.Now.Hour.ToString() + DateTime.Now.Millisecond.ToString() + "_" + registeredDate.Replace("-", "_") + fileExtension;
  686. string path = GetStatic.GetCustomerFilePath() + "CustomerDocument\\" + registeredDate.Replace("-", "\\") + "\\" + membershipId;
  687. if (!Directory.Exists(path))
  688. Directory.CreateDirectory(path);
  689. bool folderExists = Directory.Exists(path + "\\deleted");
  690. if (!folderExists)
  691. Directory.CreateDirectory(path + "\\deleted");
  692. String filename_initial = path + "\\deleted\\" + $"org_{filenameOld}";
  693. String filename_current = filename_initial;
  694. var count = 0;
  695. while (File.Exists(filename_current))
  696. {
  697. count++;
  698. filename_current = Path.GetDirectoryName(filename_initial)
  699. + Path.DirectorySeparatorChar
  700. + Path.GetFileNameWithoutExtension(filename_initial)
  701. + count.ToString()
  702. + Path.GetExtension(filename_initial);
  703. }
  704. File.Move(path + "\\" + filenameOld, filename_current);
  705. doc.SaveAs(path + "\\" + filenameOld);
  706. fName = filenameOld;
  707. }
  708. else
  709. {
  710. fName = "notValid extensions.";
  711. }
  712. }
  713. catch (Exception ex)
  714. {
  715. GetStatic.LogError(ex, "UploadDocument");
  716. fName = "";
  717. }
  718. return fName;
  719. }
  720. private void PopulateBankDetails(DataTable dataTable)
  721. {
  722. if (null == dataTable || dataTable.Rows.Count == 0)
  723. {
  724. return;
  725. }
  726. int sNo = 0;
  727. StringBuilder sb = new StringBuilder();
  728. foreach (DataRow item in dataTable.Rows)
  729. {
  730. sNo++;
  731. sb.AppendLine("<tr>");
  732. sb.AppendLine("<td>" + sNo + "</td>");
  733. sb.AppendLine("<td>" + item["PARTICULARS"].ToString() + "</td>");
  734. sb.AppendLine("<td>" + item["TRANDATE"].ToString() + "</td>");
  735. sb.AppendLine("<td>" + GetStatic.ShowDecimal(item["DEPOSITAMOUNT"].ToString()) + "</td>");
  736. sb.AppendLine("</tr>");
  737. }
  738. bankDpositDetails.InnerHtml = sb.ToString();
  739. }
  740. public void PopulateVoucherDetail(string tranNo)
  741. {
  742. var obj = new TranViewDao();
  743. var dt = obj.SelectVoucherDetail(GetStatic.GetUser(), tranNo);
  744. if (dt.Rows.Count == 0 || null == dt)
  745. {
  746. return;
  747. }
  748. int sNo = 1;
  749. StringBuilder sb = new StringBuilder();
  750. foreach (DataRow item in dt.Rows)
  751. {
  752. sb.AppendLine("<td>" + sNo + "</td>");
  753. sb.AppendLine("<td>" + item["voucherNo"].ToString() + "</td>");
  754. sb.AppendLine("<td>" + item["voucherDate"].ToString() + "</td>");
  755. sb.AppendLine("<td align='right'>" + GetStatic.ShowDecimal(item["voucherAmt"].ToString()) + "</td>");
  756. sb.AppendLine("<td>" + item["bankName"].ToString() + "</td>");
  757. sb.AppendLine("</tr>");
  758. sNo++;
  759. }
  760. voucherDetailDiv.InnerHtml = sb.ToString();
  761. }
  762. public void SearchData(string tranNo, string ctrlNo)
  763. {
  764. SearchData(tranNo, ctrlNo, "");
  765. }
  766. public void SearchData(string tranNo, string ctrlNo, string lockMode)
  767. {
  768. SearchData(tranNo, ctrlNo, "", lockMode);
  769. }
  770. public string GetLinkTextForModification(string label, string fieldName, DataRow dr)
  771. {
  772. var str = "<a href=# title='Edit Record'><div class = \"link\" onclick = \"EditData('" + label + "', '" + fieldName + "', '" + dr[fieldName] + "','" + hddTranId.Value + "')\">" +
  773. dr[fieldName] + "<img border=0 src=\"/Images/edit.gif\"/></a></div>";
  774. return str;
  775. }
  776. public string GetLinkPayoutLocation(string label, string fieldName, DataRow dr)
  777. {
  778. var str = "<a href=# title='Edit Record'><div class = \"link\" onclick = \"EditPayoutLocation('" + label + "', '" + fieldName + "', '" + dr[fieldName] + "','" + hddTranId.Value + "')\">" +
  779. dr[fieldName] + "<img border=0 src=\"/Images/edit.gif\"/></a></div>";
  780. return str;
  781. }
  782. public string GetLinkBankPayoutLocation(string label, string fieldName, DataRow dr)
  783. {
  784. string fieldValue = dr[fieldName].ToString().Trim();
  785. var str = "<a href=# title='Edit Record'><div class = \"link\" onclick = \"EditBankName('" + label + "', '" + fieldName + "', '" + fieldValue + "','" + hddTranId.Value + "','" + dr["pCountryId"] + "')\">" +
  786. fieldValue + "<img border=0 src=\"/Images/edit.gif\"/></a></div>";
  787. return str;
  788. }
  789. public string GetPaymentMode(string label, string fieldName, DataRow dr)
  790. {
  791. string fieldValue = dr[fieldName].ToString().Trim();
  792. var str = "<a href=# title='Edit Record'><div class = \"link\" onclick = \"EditPaymentMode('" + label + "', '" + fieldName + "', '" + fieldValue + "','" + hddTranId.Value + "','" + dr["rCountryName"] + "')\">" +
  793. fieldValue + "<img border=0 src=\"/Images/edit.gif\"/></a></div>";
  794. return str;
  795. }
  796. public void SearchData()
  797. {
  798. //if TranNo is not blank, search by tranNo
  799. //if CtrlNo is not blank, search by ctrlNo
  800. }
  801. private void ManageMessage(DbResult dbResult)
  802. {
  803. GetStatic.SetMessage(dbResult);
  804. GetStatic.AlertMessage(Page);
  805. }
  806. protected void Page_Load(object sender, EventArgs e)
  807. {
  808. pnlDetail.Visible = ShowDetailBlock;
  809. pnlLog.Visible = ShowLogBlock;
  810. pnlComment.Visible = ShowCommentBlock;
  811. pnlReleaseBtn.Visible = ShowApproveButton;
  812. pnlPartnerRemarks.Visible = ShowApproveButton;
  813. panelCustomerDocDetails.Visible = ShowDocDetails;
  814. ShowOFACList();
  815. ShowComplianceList();
  816. ShowCashLimitHoldList();
  817. ShowDocumentUploadOrNot();
  818. if (ShowApproveButton)
  819. {
  820. ShowPartnerRemarks();
  821. }
  822. else
  823. {
  824. pnlNotRealTimeRemarks.Visible = false;
  825. notRealTimeRemarksDiv.Visible = false;
  826. }
  827. var methodName = Request.Form["methodName"];
  828. if (methodName == "deleteTroubleTicket")
  829. {
  830. DeleteTroubleTicket();
  831. // ShowLog();
  832. }
  833. if(methodName == "GetCustomerDetails")
  834. {
  835. GetCustomerDetails();
  836. }
  837. if (methodName == "GetImageUrl")
  838. {
  839. GetImageUrl();
  840. }
  841. }
  842. private void GetCustomerDetails()
  843. {
  844. string eId = Request.Form["Id"];
  845. var dt = _cd.GetDetailsForEditCustomer(eId, GetStatic.GetUser());
  846. Response.ContentType = "text/plain";
  847. var json = DataTableToJson(dt);
  848. Response.Write(json);
  849. Response.End();
  850. }
  851. public static string DataTableToJson(DataTable table)
  852. {
  853. if (table == null)
  854. return "";
  855. var list = new List<Dictionary<string, object>>();
  856. foreach (DataRow row in table.Rows)
  857. {
  858. var dict = new Dictionary<string, object>();
  859. foreach (DataColumn col in table.Columns)
  860. {
  861. dict[col.ColumnName] = string.IsNullOrEmpty(row[col].ToString()) ? "" : row[col];
  862. }
  863. list.Add(dict);
  864. }
  865. var serializer = new JavaScriptSerializer();
  866. string json = serializer.Serialize(list);
  867. return json;
  868. }
  869. private void DeleteTroubleTicket()
  870. {
  871. var obj = new TranViewDao();
  872. var rowId = Request.Form["rowId"];
  873. var user = GetStatic.GetUser();
  874. DbResult dbResult = obj.DeleteTroubleTicket(rowId, user);
  875. Response.ContentType = "text/plain";
  876. Response.Write(JsonConvert.SerializeObject(dbResult));
  877. Response.End();
  878. }
  879. private void ShowDocumentUploadOrNot()
  880. {
  881. PopulateDocument();
  882. PanelDocumentUpload.Visible = true;
  883. uploadDocument.Visible = true;
  884. uploadDocumentButton.Visible = true;
  885. //if (isFromApprove == "Y")
  886. //{
  887. // uploadDocument.Visible = true;
  888. // uploadDocumentButton.Visible = true;
  889. //}
  890. //if (isFromApproveTxn == "Y")
  891. //{
  892. // uploadDocument.Visible = true;
  893. // uploadDocumentButton.Visible = true;
  894. //}
  895. }
  896. protected void btnAdd_Click(object sender, EventArgs e)
  897. {
  898. if (GetStatic.GetisSendPush() == "Y")
  899. AddCommentApi();
  900. else
  901. AddComment();
  902. comments.Text = "";
  903. ShowLog();
  904. }
  905. protected void btnEditCustomer_Click(object sender, EventArgs e)
  906. {
  907. string customerId = hdnCustomerId.Value;
  908. Response.Redirect("/Remit/Administration/CustomerRegistration/Manage.aspx?customerId=" + customerId + "&MethodName=GetCustomerDetailsForEdit");
  909. }
  910. #region for desplaying a transaction comments log
  911. public void ShowLog()
  912. {
  913. var obj = new TranViewDao();
  914. var ds = obj.DisplayLog(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  915. if (ds == null)
  916. return;
  917. if (ds.Tables[0].Rows.Count > 0)
  918. {
  919. pnlLog.Visible = true;
  920. var dt = ds.Tables[0];
  921. var str = new StringBuilder("<table class='table table-responsive table-bordered table-striped'>");
  922. str.Append("<tr>");
  923. str.Append("<th>Updated By</th>");
  924. str.Append("<th width='130px'>Updated Date</th>");
  925. str.Append("<th>Message</th>");
  926. str.Append("<th>Action</th>");
  927. str.Append("</tr>");
  928. foreach (DataRow dr in dt.Rows)
  929. {
  930. str.Append("<tr>");
  931. str.Append("<td align='left'>" + dr["createdBy"] + "</td>");
  932. str.Append("<td align='left'>" + dr["createdDate"] + "</td>");
  933. if (dr["fileType"].ToString() == "")
  934. {
  935. str.Append("<td align='left'>" + dr["message"] + "</td>");
  936. }
  937. else
  938. {
  939. str.Append("<td align='left'><a title='View Deposit Slip' target='_blank' href='/doc/" + lblControlNo.Text + "/" + dr["rowId"].ToString() + "." + dr["fileType"].ToString() + "'>" + dr["message"] + "</a></td>");
  940. }
  941. if (dr["deleteComment"].ToString() == "Y" && dr["fieldName"].ToString() != "STATUS_SYNC")
  942. {
  943. str.Append("<td align='left'><a class=\"btn btn-xs btn-primary\" title=\"Delete\" onClick= \"DeleteTroubleTicket( " + dr["rowId"].ToString() + ")\"><i class=\"fa fa-trash\"></i></a></td>");
  944. }
  945. str.Append("</tr>");
  946. }
  947. str.Append("</table>");
  948. rptLog.InnerHtml = str.ToString();
  949. }
  950. }
  951. #endregion for desplaying a transaction comments log
  952. public void ShowOFACList()
  953. {
  954. var obj = new TranViewDao();
  955. var ds = obj.DisplayOFAC(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  956. if (ds == null)
  957. {
  958. pnlOFAC.Visible = false;
  959. return;
  960. }
  961. var senderName = hdnSName.Value;
  962. var recName = hdnRName.Value;
  963. var name = senderName + ' ' + recName;
  964. if (ds.Tables[0].Rows[0]["isJsonData"].ToString() == "Y")
  965. {
  966. string res = GetStatic.ParseOfacJson(ds.Tables[0].Rows[0]["ofacRemarks"].ToString(), name);
  967. if (!string.IsNullOrEmpty(res))
  968. {
  969. pnlOFAC.Visible = true;
  970. displayOFAC.InnerHtml = res;
  971. string checkFlag = obj.checkFlagOFAC(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  972. if (checkFlag == "Y")
  973. {
  974. pnlReleaseBtn.Visible = false;
  975. ofacApproveRemarks.Visible = false;
  976. }
  977. GetStatic.AlertMessage(Page);
  978. }
  979. return;
  980. }
  981. if (ds.Tables[0].Rows.Count > 0)
  982. {
  983. pnlOFAC.Visible = true;
  984. var dt = ds.Tables[0];
  985. int cols = dt.Columns.Count;
  986. var str = new StringBuilder("<table class='trnLog' border=\"1\" cellspacing=0 cellpadding=\"3\">");
  987. str.Append("<tr>");
  988. for (int i = 0; i < cols; i++)
  989. {
  990. str.Append("<th><div align=\"left\">" + dt.Columns[i].ColumnName + "</div></th>");
  991. }
  992. str.Append("</tr>");
  993. foreach (DataRow dr in dt.Rows)
  994. {
  995. str.Append("<tr>");
  996. str.Append("<td align=\"left\">" + dr[0] + "</td>");
  997. var strArr = name.Split(' ');
  998. var arrlen = strArr.Length;
  999. string value = dr[1].ToString();
  1000. for (int j = 0; j < arrlen; j++)
  1001. {
  1002. if (!string.IsNullOrWhiteSpace(strArr[j]))
  1003. {
  1004. if (strArr[j].Length > 2)
  1005. {
  1006. value = value.ToUpper().Replace(strArr[j], GetStatic.PutRedBackGround(strArr[j]));
  1007. }
  1008. }
  1009. }
  1010. str.Append("<td align=\"left\">" + value + "</td>");
  1011. str.Append("</tr>");
  1012. }
  1013. str.Append("</table>");
  1014. displayOFAC.InnerHtml = str.ToString();
  1015. string checkFlag = obj.checkFlagOFAC(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  1016. if (checkFlag == "Y")
  1017. {
  1018. pnlReleaseBtn.Visible = false;
  1019. ofacApproveRemarks.Visible = false;
  1020. }
  1021. GetStatic.AlertMessage(Page);
  1022. }
  1023. }
  1024. public void ShowComplianceList()
  1025. {
  1026. var obj = new TranViewDao();
  1027. var ds = obj.DisplayCompliance(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  1028. if (ds == null)
  1029. {
  1030. pnlCompliance.Visible = false;
  1031. //PanelDocumentUpload.Visible = false;
  1032. //pnlReleaseBtnCashHold.Visible = false;
  1033. return;
  1034. }
  1035. if (ds.Tables[0].Rows.Count > 0)
  1036. {
  1037. pnlCompliance.Visible = true;
  1038. var dt = ds.Tables[0];
  1039. int cols = dt.Columns.Count;
  1040. var str = new StringBuilder("<table class='table table-responsive table-bordered table-striped'>");
  1041. str.Append("<tr>");
  1042. for (int i = 2; i < cols; i++)
  1043. {
  1044. str.Append("<th><div align=\"left\">" + dt.Columns[i].ColumnName + "</div></th>");
  1045. }
  1046. str.Append("</tr>");
  1047. foreach (DataRow dr in dt.Rows)
  1048. {
  1049. str.Append("<tr>");
  1050. for (int i = 2; i < cols; i++)
  1051. {
  1052. if (i == 4)
  1053. {
  1054. var strArr = dr["Matched ControlNo"].ToString().Split(',');
  1055. var arrlen = strArr.Length;
  1056. str.Append("<td>");
  1057. for (int j = 0; j < arrlen; j++)
  1058. {
  1059. if (dr["csDetailRecId"].ToString() != "0")
  1060. {
  1061. str.Append(strArr[j]);
  1062. }
  1063. else
  1064. {
  1065. str.Append("<a href=\"#\" onclick=\"OpenInNewWindow('/Remit/Transaction/Reports/SearchTransaction.aspx?controlNo=" + strArr[j] + "')\">" + strArr[j] + "</a> &nbsp;");
  1066. }
  1067. }
  1068. str.Append("</td>");
  1069. }
  1070. else if (i == 3)
  1071. {
  1072. if (dr["csDetailRecId"].ToString() == "0")
  1073. {
  1074. str.Append("<td align=\"left\"><a href=\"#\" onclick=\"OpenInNewWindow('/Remit/OFACManagement/ComplianceDetail.aspx?id=" + dr["rowId"].ToString() + "&csID=" + dr["csDetailRecId"] + "')\">" + dr[i].ToString() + "</a></td>");
  1075. }
  1076. else
  1077. {
  1078. str.Append("<td align=\"left\"><a href=\"#\" onclick=\"OpenInNewWindow('/Remit/OFACManagement/ComplianceDetail.aspx?type=compNew&id=" + dr["csDetailRecId"].ToString() + "')\">" + dr[i].ToString() + "</a></td>");
  1079. }
  1080. }
  1081. else
  1082. {
  1083. str.Append("<td align=\"left\">" + dr[i].ToString() + "</td>");
  1084. }
  1085. }
  1086. str.Append("</tr>");
  1087. }
  1088. str.Append("</table>");
  1089. displayCompliance.InnerHtml = str.ToString();
  1090. string checkFlag = obj.checkFlagCompliance(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  1091. if (checkFlag == "Y")
  1092. {
  1093. pnlReleaseBtn.Visible = false;
  1094. complianceApproveRemarks.Visible = false;
  1095. }
  1096. GetStatic.AlertMessage(Page);
  1097. }
  1098. }
  1099. public void ShowCashLimitHoldList()
  1100. {
  1101. var obj = new TranViewDao();
  1102. var ds = obj.DisplayCashLimitHold(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  1103. if (ds == null)
  1104. {
  1105. pnlCashLimitHold.Visible = false;
  1106. pnlReleaseBtnCashHold.Visible = false;
  1107. return;
  1108. }
  1109. if (ds.Tables[0].Rows.Count > 0)
  1110. {
  1111. var dt = ds.Tables[0];
  1112. int cols = dt.Columns.Count;
  1113. var str = new StringBuilder("<table class='table table-responsive table-bordered table-striped'>");
  1114. str.Append("<tr>");
  1115. for (int i = 2; i < cols; i++)
  1116. {
  1117. str.Append("<th><div align=\"left\">" + dt.Columns[i].ColumnName + "</div></th>");
  1118. }
  1119. str.Append("</tr>");
  1120. foreach (DataRow dr in dt.Rows)
  1121. {
  1122. str.Append("<tr>");
  1123. for (int i = 2; i < cols; i++)
  1124. {
  1125. if (i == 4)
  1126. {
  1127. var strArr = dr["Matched Tran ID"].ToString().Split(',');
  1128. var arrlen = strArr.Length;
  1129. str.Append("<td>");
  1130. for (int j = 0; j < arrlen; j++)
  1131. {
  1132. str.Append("<a href=\"#\" onclick=\"OpenInNewWindow('/Remit/Transaction/Reports/SearchTransaction.aspx?tranId=" + strArr[j] + "')\">" + strArr[j] + "</a> &nbsp;");
  1133. }
  1134. str.Append("</td>");
  1135. }
  1136. else if (i == 3)
  1137. {
  1138. //str.Append("<td align=\"left\"><a href=\"#\" onclick=\"OpenInNewWindow('/Remit/OFACManagement/ComplianceDetail.aspx?id=" + dr["rowId"].ToString() + "')\">" + dr[i].ToString() + "</a></td>");
  1139. str.Append("<td align=\"left\">" + dr[i].ToString() + "</td>");
  1140. }
  1141. else
  1142. {
  1143. str.Append("<td align=\"left\">" + dr[i].ToString() + "</td>");
  1144. }
  1145. }
  1146. str.Append("</tr>");
  1147. }
  1148. str.Append("</table>");
  1149. displayCashLimitHold.InnerHtml = str.ToString();
  1150. string checkFlag = obj.checkFlagCashLimitHold(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  1151. if (checkFlag == "Y")
  1152. pnlReleaseBtnCashHold.Visible = false;
  1153. GetStatic.AlertMessage(Page);
  1154. }
  1155. }
  1156. public void ShowPartnerRemarks()
  1157. {
  1158. var isrealTime = isRealTime.Value;
  1159. if (isrealTime == "True")//is realtime
  1160. {
  1161. string sql = "SELECT CANCEL_REASON_CODE, CANCEL_REASON_TITLE FROM TBL_PARTNER_CANCEL_REASON (NOLOCK) WHERE PARTNER_ID = 394130 AND IS_ACTIVE = 1";
  1162. pnlPartnerRemarks.Visible = true;
  1163. partnerRemarksDiv.Visible = true;
  1164. pnlNotRealTimeRemarks.Visible = false;
  1165. notRealTimeRemarksDiv.Visible = false;
  1166. _sdd.SetDDL(ref ddlRemarks, sql, "CANCEL_REASON_CODE", "CANCEL_REASON_TITLE", "", "Select Reason");
  1167. }
  1168. else
  1169. {
  1170. pnlPartnerRemarks.Visible = false;
  1171. pnlNotRealTimeRemarks.Visible = true;
  1172. notRealTimeRemarksDiv.Visible = true;
  1173. }
  1174. }
  1175. protected void btnApproveCompliance_Click(object sender, EventArgs e)
  1176. {
  1177. SaveComplianceApproveRemarks();
  1178. //DbResult result = obj.CheckTranInBothRule(GetStatic.GetUser(), hddTranId.Value);
  1179. //if(result.ErrorCode == "1")
  1180. //{
  1181. // SaveComplianceApproveRemarks();
  1182. //}
  1183. //else
  1184. //{
  1185. // var apiRes = ApproveTxn();
  1186. // if(apiRes.ErrorCode == "0")
  1187. // {
  1188. // SaveComplianceApproveRemarks();
  1189. // }
  1190. // else
  1191. // {
  1192. // GetStatic.SetMessage(apiRes);
  1193. // GetStatic.AlertMessage(Page);
  1194. // }
  1195. //}
  1196. }
  1197. private DbResult ApproveTxn()
  1198. {
  1199. DbResult _dbRes = at.GetTxnApproveDataCompliance(GetStatic.GetUser(), hddTranId.Value);
  1200. if (_dbRes.ErrorCode != "0")
  1201. {
  1202. return _dbRes;
  1203. }
  1204. else if (_dbRes.Extra == "True")//is realtime
  1205. {
  1206. SendTransactionServices _tpSend = new SendTransactionServices();
  1207. var result = _tpSend.ReleaseTransaction(new TFReleaseTxnRequest()
  1208. {
  1209. TfPin = _dbRes.Id,
  1210. RequestBy = GetStatic.GetUser(),
  1211. ProviderId = _dbRes.Msg
  1212. });
  1213. _dbRes.ErrorCode = result.ResponseCode;
  1214. _dbRes.Msg = result.Msg;
  1215. _dbRes.Id = "";
  1216. return _dbRes;
  1217. }
  1218. else
  1219. {
  1220. string newSession = Guid.NewGuid().ToString().Replace("-", "");
  1221. var result = at.GetHoldedTxnForApprovedByAdminCompliance(GetStatic.GetUser(), hddTranId.Value, newSession);
  1222. _dbRes.ErrorCode = result.ResponseCode;
  1223. _dbRes.Msg = result.Msg;
  1224. _dbRes.Id = "";
  1225. return _dbRes;
  1226. }
  1227. }
  1228. public void SaveComplianceApproveRemarks(string cashHoldLimitFlag = "")
  1229. {
  1230. saveCustomerDocument();
  1231. DbResult dbResult = obj.SaveApproveRemarksComplaince(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, remarksCompliance.Text, remarksOFAC.Text, remarksCashLimitHold.Text, cashHoldLimitFlag);
  1232. GetStatic.SetMessage(dbResult);
  1233. if (dbResult.ErrorCode != "0")
  1234. {
  1235. GetStatic.AlertMessage(Page);
  1236. }
  1237. else
  1238. {
  1239. //ShowComplianceList();
  1240. //ShowOFACList();
  1241. Response.Redirect("/Remit/Compliance/ApproveOFACandComplaince/Dashboard.aspx");
  1242. return;
  1243. }
  1244. }
  1245. public void AddComment()
  1246. {
  1247. var obj = new TranViewDao();
  1248. DbResult dbResult = obj.AddComment(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, comments.Text);
  1249. ManageMessage(dbResult);
  1250. if (dbResult.ErrorCode != "0")
  1251. {
  1252. GetStatic.CallBackJs1(Page, "Result", "alert('" + dbResult.Msg + "')");
  1253. return;
  1254. }
  1255. //else
  1256. //{
  1257. // SetupEmailSetting();
  1258. // SendMailNew(lblControlNo.Text);
  1259. //}
  1260. }
  1261. protected void SendMailNew(string controlNo)
  1262. {
  1263. string msgSubject = "JME No: " + controlNo;
  1264. string msgBody = "Dear Sir/Madam,";
  1265. msgBody += "<br /><br /> The Complaint detials are as below:";
  1266. msgBody += "<br /><br /> Remitter Name: " + sName.Text;
  1267. msgBody += "<br /><br /> Beneficiary Name: " + rName.Text;
  1268. msgBody += "<br /><br /> Complaint Message: " + comments.Text;
  1269. Task.Factory.StartNew(() => { SendEmailForComplaint(msgSubject, msgBody, "support@jme.com.np"); });
  1270. }
  1271. private void SendEmailForComplaint(string msgSubject, string msgBody, string toEmailId)
  1272. {
  1273. SmtpMailSetting mail = new SmtpMailSetting
  1274. {
  1275. MsgBody = msgBody,
  1276. MsgSubject = msgSubject,
  1277. ToEmails = toEmailId
  1278. };
  1279. mail.SendSmtpMail(mail);
  1280. }
  1281. public void AddCommentApi()
  1282. {
  1283. var obj = new TranViewDao();
  1284. var randObj = new Random();
  1285. var sendSmsEmail = "";
  1286. //if (chkSms.Checked == true)
  1287. // sendSmsEmail = "sms";
  1288. //if (chkEmail.Checked == true)
  1289. // sendSmsEmail = "email";
  1290. //if (chkEmail.Checked && chkSms.Checked == true)
  1291. // sendSmsEmail = "both";
  1292. if (chkPush.Checked == true)
  1293. sendSmsEmail = "push";
  1294. AddComment();
  1295. if (chkPush.Checked == true)
  1296. {
  1297. string agentRefId = randObj.Next(1000000000, 1999999999).ToString();
  1298. var dr = obj.AddCommentApi(GetStatic.GetUser(), chkPush.Checked ? hdnCustomerId.Value : agentRefId, lblControlNo.Text, hddTranId.Value, comments.Text, sendSmsEmail);
  1299. if (dr[0].ToString() == "0" || dr[0].ToString().ToUpper() == "SUCCESS")
  1300. {
  1301. SendPushNotification(lblControlNo.Text, dr[1].ToString(), dr[2].ToString(), comments.Text);
  1302. }
  1303. else
  1304. {
  1305. GetStatic.AlertMessage(Page, dr[1].ToString());
  1306. }
  1307. }
  1308. }
  1309. private delegate void DoStuff(); //delegate for the action
  1310. private void SendMail()
  1311. {
  1312. var myAction = new DoStuff(AsyncMailProcessing);
  1313. //invoke it asynchrnously, control passes to next statement
  1314. myAction.BeginInvoke(null, null);
  1315. }
  1316. private void AsyncMailProcessing()
  1317. {
  1318. var bw = new BackgroundWorker();
  1319. // this allows our worker to report progress during work
  1320. bw.WorkerReportsProgress = true;
  1321. // what to do in the background thread
  1322. bw.DoWork += new DoWorkEventHandler(
  1323. delegate (object o, DoWorkEventArgs args)
  1324. {
  1325. var b = o as BackgroundWorker;
  1326. smtpMailSetting.SendSmtpMail(smtpMailSetting);
  1327. if (!string.IsNullOrEmpty(hddSAgentEmail.Value))
  1328. _mailToAgent.SendSmtpMail(_mailToAgent);
  1329. });
  1330. // what to do when progress changed (update the progress bar for example)
  1331. bw.ProgressChanged += new ProgressChangedEventHandler(
  1332. delegate (object o, ProgressChangedEventArgs args)
  1333. {
  1334. //label1.Text = string.Format("{0}% Completed", args.ProgressPercentage);
  1335. });
  1336. // what to do when worker completes its task (notify the user)
  1337. bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
  1338. delegate (object o, RunWorkerCompletedEventArgs args)
  1339. {
  1340. var dbResult = new DbResult();
  1341. dbResult.SetError("0", "Mail Sent Successfully", "");
  1342. GetStatic.PrintMessage(Page, dbResult);
  1343. });
  1344. bw.RunWorkerAsync();
  1345. }
  1346. private void SetupEmailSetting()
  1347. {
  1348. var obj = new SystemEmailSetupDao();
  1349. var ds = obj.GetDataForEmail(GetStatic.GetUser(), "Trouble", lblControlNo.Text, comments.Text);
  1350. if (ds == null)
  1351. return;
  1352. if (ds.Tables.Count == 0)
  1353. return;
  1354. if (ds.Tables.Count > 1)
  1355. {
  1356. //Email Server Settings
  1357. if (ds.Tables[0].Rows.Count > 0)
  1358. {
  1359. var dr1 = ds.Tables[0].Rows[0];
  1360. smtpMailSetting.SmtpServer = dr1["smtpServer"].ToString();
  1361. smtpMailSetting.SmtpPort = Convert.ToInt32(dr1["smtpPort"]);
  1362. smtpMailSetting.SendEmailId = dr1["sendID"].ToString();
  1363. smtpMailSetting.SendEmailPwd = dr1["sendPSW"].ToString();
  1364. smtpMailSetting.EnableSsl = GetStatic.GetCharToBool(dr1["enableSsl"].ToString());
  1365. _mailToAgent.SmtpServer = dr1["smtpServer"].ToString();
  1366. _mailToAgent.SmtpPort = Convert.ToInt32(dr1["smtpPort"]);
  1367. _mailToAgent.SendEmailId = dr1["sendID"].ToString();
  1368. _mailToAgent.SendEmailPwd = dr1["sendPSW"].ToString();
  1369. _mailToAgent.EnableSsl = GetStatic.GetCharToBool(dr1["enableSsl"].ToString());
  1370. }
  1371. if (ds.Tables[1].Rows.Count == 0)
  1372. return;
  1373. //Email Receiver
  1374. if (ds.Tables[1].Rows.Count > 0)
  1375. {
  1376. var dt = ds.Tables[1];
  1377. foreach (DataRow dr2 in dt.Rows)
  1378. {
  1379. if (!string.IsNullOrEmpty(smtpMailSetting.ToEmails))
  1380. smtpMailSetting.ToEmails = smtpMailSetting.ToEmails + ",";
  1381. smtpMailSetting.ToEmails = smtpMailSetting.ToEmails + dr2["email"].ToString();
  1382. }
  1383. }
  1384. //Email Subject and Body
  1385. if (ds.Tables[2].Rows.Count > 0)
  1386. {
  1387. var dr3 = ds.Tables[2].Rows[0];
  1388. if (dr3 == null)
  1389. return;
  1390. smtpMailSetting.MsgSubject = dr3[0].ToString();
  1391. smtpMailSetting.MsgBody = dr3[1].ToString();
  1392. _mailToAgent.MsgSubject = dr3[0].ToString();
  1393. _mailToAgent.MsgBody = dr3[1].ToString();
  1394. _mailToAgent.ToEmails = hddSAgentEmail.Value;
  1395. }
  1396. }
  1397. }
  1398. private void UploadSms()
  1399. {
  1400. string sql = "exec [proc_sendSMSModule] @flag='sms'";
  1401. sql = sql + " ,@user=" + rl.FilterString(GetStatic.GetUser());
  1402. sql = sql + " ,@msg=" + rl.FilterString(comments.Text);
  1403. var obj = new SwiftDao();
  1404. string msg = obj.GetSingleResult(sql);
  1405. if (msg.Contains("Sucessfully"))
  1406. {
  1407. msgDb.SetError("0", msg, "");
  1408. comments.Text = "";
  1409. }
  1410. else
  1411. msgDb.SetError("1", msg, "");
  1412. GetStatic.PrintMessage(Page, msgDb);
  1413. }
  1414. public void SearchPartnerData(string ctrlNo, string mode, string lockMode, string viewType, string viewMsg, bool isArchive = false)
  1415. {
  1416. //pnlShowBankDetail.Visible = ShowBankDetail;
  1417. tranNoName.Text = GetStatic.GetTranNoName();
  1418. payoutPartnerPinDiv.Visible = true;
  1419. // TranNo = tranNo;
  1420. CtrlNo = ctrlNo;
  1421. TranFound = false;
  1422. DataSet ds = null;
  1423. if (isArchive)
  1424. {
  1425. //var obj = new ArchiveReportsDao();
  1426. //ds = obj.SelectTransaction(GetStatic.GetUser(), ctrlNo, TranNo, lockMode, viewType, viewMsg);
  1427. }
  1428. else
  1429. {
  1430. var obj = new TranViewDao();
  1431. ds = obj.SelectPartnerTransaction(GetStatic.GetUser(), ctrlNo, TranNo, lockMode, viewType, viewMsg);
  1432. }
  1433. if (ds == null)
  1434. {
  1435. rl.ManageInvalidControlNoAttempt(Page, GetStatic.GetUser(), "N");
  1436. return;
  1437. }
  1438. if (ds.Tables.Count > 1)
  1439. {
  1440. if (ds.Tables[0].Rows.Count > 0)
  1441. {
  1442. TranFound = true;
  1443. rl.ManageInvalidControlNoAttempt(Page, GetStatic.GetUser(), "Y");
  1444. var tRow = ds.Tables[0].Rows[0];
  1445. lblControlNo.Text = tRow["controlNo"].ToString();
  1446. lblPartnerPayoutPin.Text = tRow["PartnerPIN"].ToString();
  1447. lblTranNo.Text = tRow["tranId"].ToString();
  1448. hddTranId.Value = tRow["tranId"].ToString();
  1449. // pnlExRate.Visible = false;
  1450. if (tRow["extCustomerId"].ToString() == "")
  1451. sCId.Visible = false;
  1452. else
  1453. sCustomerId.Text = tRow["extCustomerId"].ToString();
  1454. if (tRow["sMemId"].ToString() == "")
  1455. sDisMemId.Visible = false;
  1456. else
  1457. {
  1458. sDisMemId.Visible = true;
  1459. sMemId.Text = tRow["sMemId"].ToString();
  1460. }
  1461. if (tRow["rMemId"].ToString() == "")
  1462. rDisMemId.Visible = false;
  1463. else
  1464. {
  1465. rDisMemId.Visible = true;
  1466. rMemId.Text = tRow["rMemId"].ToString();
  1467. }
  1468. if (tRow["tranStatus"].ToString().ToUpper() == "CANCEL")
  1469. {
  1470. showHideTranStatus.Visible = true;
  1471. highLightTranStatus.InnerText = "CANCELLED Transaction";
  1472. }
  1473. if (tRow["tranStatus"].ToString().ToUpper() == "LOCK")
  1474. {
  1475. lockAudit.Visible = true;
  1476. var html = new StringBuilder("Locked By ");
  1477. html.Append(tRow["lockedBy"] + " on " + tRow["lockedDate"]);
  1478. lockAudit.InnerHtml = html.ToString();
  1479. }
  1480. if (mode == "u") // mode: modification transaction
  1481. {
  1482. sName.Text = GetLinkTextForModification("Sender Name", "senderName", tRow);
  1483. sName.Text = GetLinkTextForModification("Sender Name", "senderName", tRow);
  1484. sAddress.Text = GetLinkTextForModification("Sender Address", "sAddress", tRow);
  1485. sContactNo.Text = GetLinkTextForModification("Sender Contact No", "sContactNo", tRow);
  1486. sIdType.Text = GetLinkTextForModification("Sender Id Type", "sIdType", tRow);
  1487. sIdNo.Text = GetLinkTextForModification("Sender Id No", "sIdNo", tRow);
  1488. rName.Text = GetLinkTextForModification("Receiver Name", "receiverName", tRow);
  1489. rAddress.Text = GetLinkTextForModification("Receiver Address", "rAddress", tRow);
  1490. rContactNo.Text = GetLinkTextForModification("Receiver Contact No", "rContactNo", tRow);
  1491. rIdType.Text = GetLinkTextForModification("Receiver Id Type", "rIdType", tRow);
  1492. rIdNo.Text = GetLinkTextForModification("Receiver Id No", "rIdNo", tRow);
  1493. if (tRow["paymentMethod"].ToString().ToUpper() == "BANK DEPOSIT")
  1494. {
  1495. accountNo.Text = GetLinkTextForModification("Account No", "accountNo", tRow);
  1496. bankName.Text = GetLinkBankPayoutLocation("Bank Name", "BankName", tRow);
  1497. branchName.Text = GetLinkBankPayoutLocation("Branch Name", "pBranchName", tRow);
  1498. }
  1499. }
  1500. else
  1501. {
  1502. sName.Text = tRow["senderName"].ToString(); //
  1503. sAddress.Text = tRow["sAddress"].ToString(); //
  1504. sContactNo.Text = tRow["sContactNo"].ToString(); //
  1505. sIdType.Text = tRow["sIdType"].ToString(); //
  1506. sIdNo.Text = tRow["sIdNo"].ToString(); //
  1507. rName.Text = tRow["receiverName"].ToString(); //
  1508. rAddress.Text = tRow["rAddress"].ToString(); //
  1509. rContactNo.Text = tRow["rContactNo"].ToString(); //
  1510. rIdType.Text = tRow["rIdType"].ToString(); //
  1511. rIdNo.Text = tRow["rIdNo"].ToString(); //
  1512. }
  1513. hdnRName.Value = tRow["receiverName"].ToString();
  1514. hdnSName.Value = tRow["senderName"].ToString();
  1515. sCountry.Text = tRow["sCountryName"].ToString();
  1516. sEmail.Text = tRow["sEmail"].ToString();
  1517. rCountry.Text = tRow["rCountryName"].ToString();
  1518. //Sending Agent Detail
  1519. hddSAgentEmail.Value = tRow["sAgentEmail"].ToString();
  1520. sAgentName.Text = tRow["sAgentName"].ToString();
  1521. sBranchName.Text = tRow["sBranchName"].ToString();
  1522. sAgentCountry.Text = tRow["sCountryName"].ToString();
  1523. sAgentDistrict.Text = tRow["sAgentDistrict"].ToString();
  1524. sAgentCity.Text = tRow["sAgentCity"].ToString();
  1525. sAgentLocation.Text = tRow["sAgentLocation"].ToString();
  1526. //Payout Agent Detail
  1527. pAgentCountry.Text = tRow["pAgentCountry"].ToString();
  1528. pAgentDistrict.Text = tRow["pAgentDistrict"].ToString();
  1529. pAgentCity.Text = tRow["pAgentCity"].ToString();
  1530. payer.Text = tRow["payerName"].ToString();
  1531. if (rl.HasRight(ModifyPayoutLocationId) || rl.HasRight(ModifyPayoutLocationIdAg))
  1532. {
  1533. if (mode == "u" && tRow["paymentMethod"].ToString().ToUpper() != "BANK DEPOSIT")
  1534. // mode: modification payout location
  1535. {
  1536. pAgentLocation.Text = GetLinkPayoutLocation("Payout Location", "pAgentLocation", tRow);
  1537. accountNo.Text = tRow["accountNo"].ToString();
  1538. bankName.Text = tRow["BankName"].ToString();
  1539. branchName.Text = tRow["BranchName"].ToString();
  1540. pBranchName.Text = tRow["pBranchName"].ToString();
  1541. }
  1542. else if (mode == "u" && tRow["paymentMethod"].ToString().ToUpper() == "BANK DEPOSIT")
  1543. //modify mode & bank deposit mode
  1544. {
  1545. accountNo.Text = GetLinkPayoutLocation("Account Number", "accountNo", tRow);
  1546. bankName.Text = GetLinkBankPayoutLocation("Bank Name", "BankName", tRow);
  1547. branchName.Text = GetLinkBankPayoutLocation("Branch Name", "BranchName", tRow);
  1548. pBranchName.Text = GetLinkPayoutLocation("Paying Branch", "pBranchName", tRow);
  1549. pAgentLocation.Text = tRow["pAgentLocation"].ToString();
  1550. }
  1551. else
  1552. {
  1553. pAgentLocation.Text = tRow["pAgentLocation"].ToString();
  1554. accountNo.Text = tRow["accountNo"].ToString();
  1555. bankName.Text = tRow["BankName"].ToString();
  1556. branchName.Text = tRow["BranchName"].ToString();
  1557. pBranchName.Text = tRow["pBranchName"].ToString();
  1558. }
  1559. }
  1560. else
  1561. {
  1562. pAgentLocation.Text = tRow["pAgentLocation"].ToString();
  1563. accountNo.Text = tRow["accountNo"].ToString();
  1564. bankName.Text = tRow["BankName"].ToString();
  1565. branchName.Text = tRow["BranchName"].ToString();
  1566. pBranchName.Text = tRow["pBranchName"].ToString();
  1567. }
  1568. pAgentName.Text = tRow["pAgentName"].ToString();
  1569. //modeOfPayment.Text = tRow["paymentMethod"].ToString();
  1570. modeOfPayment.Text = GetPaymentMode("Mode of Payment", "paymentMethod", tRow);
  1571. modeOfDeposit.Text = tRow["depositType"].ToString();
  1572. tranStatus.Text = tRow["tranStatus"].ToString();
  1573. payStatus.Text = tRow["payStatus"].ToString();
  1574. transactionReference.Text = tRow["trustPaymentId"].ToString();
  1575. sAgentComm.Text = GetStatic.FormatData(tRow["sAgentComm"].ToString(), "M");
  1576. sAgentCommCurr.Text = tRow["sAgentCommCurrency"].ToString();
  1577. if (payStatus.Text == "Paid")
  1578. {
  1579. //payAgentComm.Visible = true;
  1580. pAgentComm.Text = GetStatic.FormatData(tRow["pAgentComm"].ToString(), "M");
  1581. pAgentCommCurr.Text = tRow["pAgentCommCurrency"].ToString();
  1582. }
  1583. pnlShowBankDetail.Visible = (tRow["paymentMethod"].ToString().ToUpper() == "BANK DEPOSIT" ? true : false);
  1584. if (tRow["paymentMethod"].ToString().ToUpper().Equals("MOBILE WALLET"))
  1585. {
  1586. pnlShowBankDetail.Visible = true;
  1587. }
  1588. //if (tRow["tranType"].ToString() == "I")
  1589. //{
  1590. // pnlExRate.Visible = true;
  1591. handling.Text = GetStatic.FormatData(tRow["customerPremium"].ToString(), "M");
  1592. exRate.Text = GetStatic.FormatData(tRow["exRate"].ToString(), "M");
  1593. // }
  1594. transferAmount.Text = GetStatic.FormatData(tRow["tAmt"].ToString(), "M");
  1595. serviceCharge.Text = GetStatic.FormatData(tRow["serviceCharge"].ToString(), "M");
  1596. total.Text = GetStatic.FormatData(tRow["cAmt"].ToString(), "M");
  1597. payoutAmt.Text = GetStatic.FormatData(tRow["pAmt"].ToString(), "M");
  1598. relationship.Text = tRow["relationship"].ToString();
  1599. purpose.Text = tRow["purpose"].ToString();
  1600. if (tRow["payoutMsg"].ToString() == "-")
  1601. trpMsg.Visible = false;
  1602. else
  1603. payoutMsg.Text = tRow["payoutMsg"].ToString();
  1604. tAmtCurr.Text = tRow["collCurr"].ToString();
  1605. scCurr.Text = tRow["collCurr"].ToString();
  1606. totalCurr.Text = tRow["collCurr"].ToString();
  1607. pAmtCurr.Text = tRow["payoutCurr"].ToString();
  1608. createdBy.Text = tRow["createdBy"].ToString();
  1609. createdDate.Text = tRow["createdDate"].ToString();
  1610. approvedBy.Text = tRow["approvedBy"].ToString();
  1611. approvedDate.Text = tRow["approvedDate"].ToString();
  1612. paidBy.Text = tRow["paidBy"].ToString();
  1613. paidDate.Text = tRow["paidDate"].ToString();
  1614. cancelRequestedBy.Text = tRow["cancelRequestBy"].ToString();
  1615. cancelRequestedDate.Text = tRow["cancelRequestDate"].ToString();
  1616. cancelApprovedBy.Text = tRow["cancelApprovedBy"].ToString();
  1617. cancelApprovedDate.Text = tRow["cancelApprovedDate"].ToString();
  1618. hddPayTokenId.Value = tRow["payTokenId"].ToString();
  1619. tblCreatedLog.Visible = createdBy.Text != "";
  1620. tblApprovedLog.Visible = approvedBy.Text != "";
  1621. tblPaidLog.Visible = paidBy.Text != "";
  1622. tblCancelRequestedLog.Visible = cancelRequestedBy.Text != "";
  1623. tblCancelApprovedLog.Visible = cancelApprovedBy.Text != "";
  1624. }
  1625. // PopulateVoucherDetail(TranNo);
  1626. //pnlLog.Visible = false;
  1627. if (ds.Tables[1].Rows.Count > 0)
  1628. {
  1629. //pnlLog.Visible = true;
  1630. var dt = ds.Tables[1];
  1631. var str = new StringBuilder("<table class=\"table table-responsive table-bordered table-striped\">");
  1632. str.Append("<tr>");
  1633. str.Append("<th>Updated By</th>");
  1634. str.Append("<th>Updated Date</th>");
  1635. str.Append("<th>Message</th>");
  1636. str.Append("</tr>");
  1637. foreach (DataRow dr in dt.Rows)
  1638. {
  1639. str.Append("<tr>");
  1640. str.Append("<td align='left'>" + dr["createdBy"] + "</td>");
  1641. str.Append("<td align='left'>" + dr["createdDate"] + "</td>");
  1642. if (dr["fileType"].ToString() == "")
  1643. {
  1644. str.Append("<td align='left'>" + dr["message"] + "</td>");
  1645. }
  1646. else
  1647. {
  1648. str.Append("<td align='left'><a title='View Deposit Slip' target='_blank' href='/doc/" + lblControlNo.Text + "/" + dr["rowId"].ToString() + "." + dr["fileType"].ToString() + "'>" + dr["message"] + "</a></td>");
  1649. }
  1650. str.Append("</tr>");
  1651. }
  1652. str.Append("</table>");
  1653. rptLog.InnerHtml = str.ToString();
  1654. }
  1655. }
  1656. }
  1657. protected void btnReleaseCashHoldLimit_Click(object sender, EventArgs e)
  1658. {
  1659. SaveComplianceApproveRemarks("saveCashHoldRmks");
  1660. //DbResult result = obj.CheckTranInBothRule(GetStatic.GetUser(), hddTranId.Value);
  1661. //if (result.ErrorCode == "1")
  1662. //{
  1663. // SaveComplianceApproveRemarks("saveCashHoldRmks");
  1664. //}
  1665. //else
  1666. //{
  1667. // var apiRes = ApproveTxn();
  1668. // if (apiRes.ErrorCode == "0")
  1669. // {
  1670. // SaveComplianceApproveRemarks("saveCashHoldRmks");
  1671. // }
  1672. // else
  1673. // {
  1674. // GetStatic.SetMessage(apiRes);
  1675. // GetStatic.AlertMessage(Page);
  1676. // }
  1677. //}
  1678. }
  1679. protected void btnRejectTxn_Click(object sender, EventArgs e)
  1680. {
  1681. var tranId = hddTranId.Value;
  1682. var remarksIdValue = remarksId.Value;
  1683. var notRealTimeReason = notRealTimeRemarks.Text;
  1684. var res = CheckRemarksAvailability();
  1685. if (res)
  1686. {
  1687. DbResult _dbRes = at.GetTxnApproveData(GetStatic.GetUser(), tranId);
  1688. if (_dbRes.Extra == "True")//is realtime
  1689. {
  1690. string ProcessId = Guid.NewGuid().ToString().Replace("-", "") + ":" + _dbRes.Extra2 + ":statusSync";
  1691. CancelRequestServices crs = new CancelRequestServices();
  1692. JsonResponse _resp = crs.CancelTransaction(new CancelTxnPartner()
  1693. {
  1694. ProviderId = _dbRes.Msg,
  1695. PartnerPinNo = _dbRes.Id,
  1696. CancelReason = remarksIdValue,
  1697. ProcessId = ProcessId.Substring(ProcessId.Length - 40, 40)
  1698. });
  1699. if (_resp.ResponseCode == "0")
  1700. {
  1701. var remarksIdTextValue = remarksIdText.Value;
  1702. var dr = at.RejectHoldedTXN(GetStatic.GetUser(), hddTranId.Value, lblControlNo.Text, remarksIdTextValue);
  1703. GetStatic.SetMessage(dr);
  1704. if (dr.ErrorCode != "0")
  1705. {
  1706. GetStatic.AlertMessage(Page);
  1707. }
  1708. else
  1709. {
  1710. //ShowComplianceList();
  1711. //ShowOFACList();
  1712. Response.Redirect("/Remit/Compliance/ApproveOFACandComplaince/Dashboard.aspx");
  1713. return;
  1714. }
  1715. }
  1716. else
  1717. {
  1718. var dr = new DbResult()
  1719. {
  1720. ErrorCode = "1",
  1721. Msg = _resp.Msg
  1722. };
  1723. GetStatic.SetMessage(dr);
  1724. GetStatic.AlertMessage(Page);
  1725. }
  1726. }
  1727. else
  1728. {
  1729. var dr = at.RejectHoldedTXN(GetStatic.GetUser(), hddTranId.Value, lblControlNo.Text, notRealTimeRemarks.Text);
  1730. GetStatic.SetMessage(dr);
  1731. if (dr.ErrorCode != "0")
  1732. {
  1733. GetStatic.AlertMessage(Page);
  1734. }
  1735. else
  1736. {
  1737. //ShowComplianceList();
  1738. //ShowOFACList();
  1739. Response.Redirect("/Remit/Compliance/ApproveOFACandComplaince/Dashboard.aspx");
  1740. return;
  1741. }
  1742. }
  1743. }
  1744. }
  1745. public void ShowQuestionaireLink(string HoldTranId, string displayType, string mode)
  1746. {
  1747. pnlQuestionaire.Visible = true;
  1748. if (displayType == "cancelpartner")
  1749. {
  1750. pnlQuestionaire.Visible = false;
  1751. }
  1752. else
  1753. {
  1754. var obj = new TranViewDao();
  1755. DataTable res = obj.QuestionaireExists(GetStatic.GetUser(), HoldTranId);
  1756. if (res.Rows.Count > 0)
  1757. {
  1758. DataTable questionnnaire = obj.ShowQA(GetStatic.GetUser(), HoldTranId);
  1759. LoadGrid(questionnnaire, mode);
  1760. pnlQuestionaire.Visible = true;
  1761. questionaireDiv.Visible = true;
  1762. }
  1763. else
  1764. {
  1765. pnlQuestionaire.Visible = false;
  1766. }
  1767. }
  1768. }
  1769. private void LoadGrid(DataTable questionnnaire, string mode)
  1770. {
  1771. if (questionnnaire.Rows.Count > 0)
  1772. {
  1773. //var questionnnaire = ds.Tables[5];
  1774. var str = new StringBuilder("<table class=\"table table-responsive table-bordered table-striped\">");
  1775. str.Append("<tr>");
  1776. str.Append("<th>SN</th>");
  1777. str.Append("<th>QSN</th>");
  1778. str.Append("<th>ANSWER_TEXT</th>");
  1779. str.Append("<th></th>");
  1780. str.Append("</tr>");
  1781. foreach (DataRow dr in questionnnaire.Rows)
  1782. {
  1783. str.Append("<tr>");
  1784. str.Append("<td contenteditable = 'false' align='left'>" + dr["SN"] + "</td>");
  1785. str.Append("<td contenteditable = 'false' align='left'>" + dr["QSN"] + "</td>");
  1786. str.Append("<td contenteditable = 'false' id = \"newValue\" name = \"newValue\" runat= \"server\" align='left'>" + dr["ANSWER_TEXT"] + " </td>");
  1787. // str.Append("<td> <button type = \"button\" id=\"editQ\" class=\"edit btn btn-primary\"> <span class=\"glyphicon glyphicon-edit\"></span> Edit </button> </td>");
  1788. if (mode.ToLower().Equals("search"))
  1789. {
  1790. str.Append("<td> <button type = \"button\" id=\"editQ\" class=\"edit btn btn-primary\"> Edit </button> </td>");
  1791. str.Append("<td> <button type = \"button\" id=\"updateQ\" class=\"update btn btn-primary\" disabled = \"disabled\" \" > Update </button> </td> ");
  1792. str.Append("<td style=\"display:none\" align='left'>" + dr["ROW_ID"] + "</td>");
  1793. }
  1794. // str.Append("<td align='left'><input class = \"edit btn btn-primary\" type= \"button\" id=\"editQ\" value=\"Edit\"/></td> <td align='left'><input class= \"btn btn-primary\" disabled=\"disabled\" id=\"updateQ\" onClick=\"UpdateQuestionare('" + dr["ROW_ID"] + "')\" value=\"Update\"/> </td>");
  1795. // str.Append("<td> <button type = \"button\" class=\"btn btn-primary\" id=\"updateQ\" onClick=\"UpdateQuestionare('" + dr["ROW_ID"] + "')\" > <span class=\"glyphicon glyphicon - edit\"></span> Update </button> </td> ");
  1796. // str.Append("<td align='left'><input class= \"btn btn-primary\" disabled=\"disabled\" id=\"updateQ\" onClick=\"UpdateQuestionare('" + dr["ROW_ID"] + "')\" value=\"Update\"/> </td>");
  1797. str.Append("</tr>");
  1798. }
  1799. str.Append("</table>");
  1800. qaGrid.InnerHtml = str.ToString();
  1801. }
  1802. }
  1803. //private void LoadGridOld()
  1804. //{
  1805. // _grid.ColumnList = new List<GridColumn>
  1806. // {
  1807. // new GridColumn("SN", "SN", "", "T"),
  1808. // new GridColumn("QSN", "Questionnaires", "Question", "T"),
  1809. // new GridColumn("ANSWER_TEXT", "Answer", "", "T"),
  1810. // // new GridColumn("updateQ", "Edit" , "" , "")
  1811. // };
  1812. // _grid.GridType = 1;
  1813. // _grid.GridDataSource = SwiftGrid.GridDS.RemittanceDB;
  1814. // _grid.AllowEdit = false;
  1815. // _grid.SortOrder = "ASC";
  1816. // _grid.RowIdField = "QUES_ID";
  1817. // _grid.ThisPage = "ModifyTran.aspx";
  1818. // _grid.InputPerRow = 4;
  1819. // _grid.GridMinWidth = 700;
  1820. // _grid.GridWidth = 100;
  1821. // _grid.IsGridWidthInPercent = true;
  1822. // //_grid.AllowApprove = swiftLibrary.HasRight(ApproveFunctionId);
  1823. // string sql = "EXEC [proc_transactionView] @flag = 's-QuestionaireAnswer',@tranId='" + HoldTranId + "'";
  1824. // _grid.SetComma();
  1825. // rpt_grid.InnerHtml = _grid.CreateGrid(sql);
  1826. //}
  1827. public bool CheckRemarksAvailability()
  1828. {
  1829. var remarksIdValue = remarksId.Value;
  1830. var notRealTimeReason = notRealTimeRemarks.Text;
  1831. if (notRealTimeRemarksDiv.Visible)
  1832. {
  1833. if (notRealTimeReason == "" || notRealTimeReason == "undeifned")
  1834. {
  1835. GetStatic.AlertMessage(this.Page, "Reject Remarks is compulsory if you reject the transaction");
  1836. return false;
  1837. }
  1838. }
  1839. if (pnlPartnerRemarks.Visible)
  1840. {
  1841. if (remarksIdValue == "" || remarksIdValue == "undeifned")
  1842. {
  1843. GetStatic.AlertMessage(this.Page, "Remarks is compulsory if you reject the transaction");
  1844. return false;
  1845. }
  1846. }
  1847. return true;
  1848. }
  1849. protected void btnUploadFile_Click(object sender, EventArgs e)
  1850. {
  1851. OnlineCustomerDao _cd = new OnlineCustomerDao();
  1852. string fileExtension = Path.GetExtension(reg_front_id.FileName);
  1853. if (reg_front_id.HasFile)
  1854. {
  1855. if (fileExtension.ToLower() != ".pdf")
  1856. {
  1857. GetStatic.AlertMessage(this.Page, "You can only upload PDF files!");
  1858. return;
  1859. }
  1860. if (string.IsNullOrEmpty(hdnCustomerId.Value))
  1861. {
  1862. GetStatic.AlertMessage(this.Page, "Invalid customer found!");
  1863. return;
  1864. }
  1865. var result = _cd.GetCustomerDetailsForFileUpload(hdnCustomerId.Value).Split('|');
  1866. var customerId = result[0];
  1867. var membershipId = result[1];
  1868. var registerDate = result[2];
  1869. string fileName = "Compliance_Doc_" + GetStatic.GetDateTimeStamp() + "_" + GetStatic.GetUser() + fileExtension;
  1870. string path = GetStatic.GetCustomerFilePath() + "CustomerDocument\\" + registerDate.Replace("-", "\\") + "\\" + membershipId + "\\ComplianceDocument";
  1871. if (!Directory.Exists(path))
  1872. Directory.CreateDirectory(path);
  1873. reg_front_id.SaveAs(path + "/" + fileName);
  1874. if (!string.IsNullOrEmpty(fileName))
  1875. _cd.UpdateCustomerDocumentCompliance("", customerId, fileName, "Compliance Document", "application/pdf", "0", GetStatic.GetUser(), lblTranNo.Text.Trim());
  1876. reg_front_id.Attributes.Clear();
  1877. reg_front_id.PostedFile.InputStream.Dispose();
  1878. GetStatic.AlertMessage(this.Page, "File uploaded successfully!");
  1879. PopulateDocument();
  1880. }
  1881. else
  1882. {
  1883. GetStatic.AlertMessage(this.Page, "No file to upload!");
  1884. return;
  1885. }
  1886. }
  1887. private void PopulateDocument()
  1888. {
  1889. OnlineCustomerDao _cd = new OnlineCustomerDao();
  1890. var result = _cd.GetCustomerComplianceDocumentByDocumentId(hdnCustomerId.Value, GetStatic.GetUser(), lblTranNo.Text);
  1891. if (result == null)
  1892. {
  1893. return;
  1894. }
  1895. if (result.Rows.Count <= 0)
  1896. {
  1897. return;
  1898. }
  1899. string customerId = result.Rows[0]["CUSTOMERID"].ToString();
  1900. string membershipId = result.Rows[0]["MEMBERSHIPID"].ToString();
  1901. string registerDate = result.Rows[0]["CUSTOMERDATE"].ToString();
  1902. StringBuilder sb = new StringBuilder();
  1903. foreach (DataRow item in result.Rows)
  1904. {
  1905. sb.AppendLine("<div class='col-md-3 form-group'>");
  1906. sb.AppendLine("<img src=\"/images/pdf-img.png\" style=\"width: 100%;\" onclick=\"showDocument('" + item["cdId"].ToString() + "', '" + item["fileType"].ToString() + "')\" />");
  1907. sb.AppendLine("</div>");
  1908. }
  1909. populateDocument.InnerHtml = sb.ToString();
  1910. }
  1911. private void SendPushNotification(string controlnumber, string deviceType, string deviceId, string comments)
  1912. {
  1913. SendNotificationRequestMobile request = new SendNotificationRequestMobile()
  1914. {
  1915. IsBulkNotification = false,
  1916. ProcessId = controlnumber,
  1917. ProviderId = NotifyTemplate.NONE.ToString(),
  1918. NotificationTypeId = NOTIFICATION_TYPE.PUSH_NOTIFICATION.ToString(),
  1919. Template = NotifyTemplate.NONE,
  1920. Recipients = new List<RecipientViewModel>()
  1921. {
  1922. new RecipientViewModel()
  1923. {
  1924. NotificationContent = new NotificationDTO() {
  1925. Body = comments,
  1926. Title = "IME LONDON",
  1927. MessageType = "INFO",
  1928. ClickActivity = "OPEN_ACTIVITY_NOTIFICATION"
  1929. },
  1930. Address= deviceType,
  1931. DeviceType =deviceId }
  1932. }
  1933. };
  1934. JsonResponse dbResult1 = NotifierV2.SendNotification(request, NOTIFICATION_TYPE.PUSH_NOTIFICATION);
  1935. }
  1936. }
  1937. }