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.

2111 lines
95 KiB

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