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.

703 lines
30 KiB

  1. using System;
  2. using System.ComponentModel;
  3. using System.Data;
  4. using System.Text;
  5. using Swift.DAL.BL.Remit.Transaction;
  6. using Swift.DAL.SwiftDAL;
  7. using Swift.web.Library;
  8. namespace Swift.web.Remit.UserControl
  9. {
  10. public partial class UcTranEduPay : System.Web.UI.UserControl
  11. {
  12. private RemittanceLibrary sl = new RemittanceLibrary();
  13. private SmtpMailSetting smtpMailSetting = new SmtpMailSetting();
  14. private const string AddTroubleTicketFunctionId = "20121810";
  15. private const string AddTroubleTicketFunctionIdAg = "40101720";
  16. private const string ModifyPayoutLocationId = "20121520";
  17. private const string ModifyPayoutLocationIdAg = "40101730";
  18. public bool ShowDetailBlock { get; set; }
  19. public bool ShowLogBlock { get; set; }
  20. public bool ShowCommentBlock { get; set; }
  21. public bool ShowBankDetail { get; set; }
  22. public bool ShowOfac { get; set; }
  23. public bool ShowCompliance { get; set; }
  24. public bool ShowApproveButton { get; set; }
  25. public string TranNo
  26. {
  27. get { return hddTranId.Value; }
  28. set { hddTranId.Value = value; }
  29. }
  30. public string CtrlNo
  31. {
  32. get { return lblControlNo.Text; }
  33. set { lblControlNo.Text = value; }
  34. }
  35. public string PayTokenId
  36. {
  37. get { return hddPayTokenId.Value; }
  38. set { hddPayTokenId.Value = value; }
  39. }
  40. public string TranStatus
  41. {
  42. get { return tranStatus.Text; }
  43. set { tranStatus.Text = value; }
  44. }
  45. public string ModeOfPayment
  46. {
  47. get { return modeOfPayment.Text; }
  48. set { modeOfPayment.Text = value; }
  49. }
  50. public string CreatedBy
  51. {
  52. get { return createdBy.Text; }
  53. set { createdBy.Text = value; }
  54. }
  55. public string ApprovedBy
  56. {
  57. get { return approvedBy.Text; }
  58. set { approvedBy.Text = value; }
  59. }
  60. public string PaidBy
  61. {
  62. get { return paidBy.Text; }
  63. set { paidBy.Text = value; }
  64. }
  65. public string CancelRequestedBy
  66. {
  67. get { return cancelRequestedBy.Text; }
  68. set { cancelRequestedBy.Text = value; }
  69. }
  70. public string CancelApprovedBy
  71. {
  72. get { return cancelApprovedBy.Text; }
  73. set { cancelApprovedBy.Text = value; }
  74. }
  75. //public string LockTranSaction
  76. //{
  77. // get { return lockTranSaction.Text; }
  78. // set { lockTranSaction.Text = value; }
  79. //}
  80. public bool TranFound { get; set; }
  81. public void SearchData(string tranNo, string ctrlNo, string mode, string lockMode)
  82. {
  83. SearchData(tranNo, ctrlNo, mode, lockMode, "SEARCH", "ADM:SEARCH TXN");
  84. }
  85. public void SearchData(string tranNo, string ctrlNo, string mode, string lockMode, string viewType, string viewMsg)
  86. {
  87. tranNoName.Text = GetStatic.GetTranNoName();
  88. TranNo = tranNo;
  89. CtrlNo = ctrlNo;
  90. TranFound = false;
  91. var obj = new TranViewDao();
  92. var ds = obj.SelectTransactionEduPay(GetStatic.GetUser(), ctrlNo, TranNo, lockMode, viewType, viewMsg);
  93. if (ds == null)
  94. {
  95. sl.ManageInvalidControlNoAttempt(Page, GetStatic.GetUser(), "N");
  96. return;
  97. }
  98. if (ds.Tables.Count > 1)
  99. {
  100. if (ds.Tables[0].Rows.Count > 0)
  101. {
  102. TranFound = true;
  103. sl.ManageInvalidControlNoAttempt(Page, GetStatic.GetUser(), "Y");
  104. var tRow = ds.Tables[0].Rows[0];
  105. lblControlNo.Text = tRow["controlNo"].ToString();
  106. lblTranNo.Text = tRow["tranId"].ToString();
  107. hddTranId.Value = tRow["tranId"].ToString();
  108. pnlExRate.Visible = false;
  109. if (tRow["extCustomerId"].ToString() == "")
  110. sCId.Visible = false;
  111. else
  112. sCustomerId.Text = tRow["extCustomerId"].ToString();
  113. if (tRow["sMemId"].ToString() == "")
  114. sDisMemId.Visible = false;
  115. else
  116. {
  117. sDisMemId.Visible = true;
  118. sMemId.Text = tRow["sMemId"].ToString();
  119. }
  120. if (tRow["tranStatus"].ToString().ToUpper() == "CANCEL")
  121. {
  122. showHideTranStatus.Visible = true;
  123. highLightTranStatus.InnerText = "CANCELLED Transaction";
  124. }
  125. if (tRow["tranStatus"].ToString().ToUpper() == "LOCK")
  126. {
  127. lockAudit.Visible = true;
  128. var html = new StringBuilder("Locked By ");
  129. html.Append(tRow["lockedBy"] + " on " + tRow["lockedDate"]);
  130. lockAudit.InnerHtml = html.ToString();
  131. }
  132. if (mode == "u") // mode: modification transaction
  133. {
  134. sName.Text = GetLinkTextForModification("Sender Name", "senderName", tRow);
  135. sName.Text = GetLinkTextForModification("Sender Name", "senderName", tRow);
  136. sAddress.Text = GetLinkTextForModification("Sender Address", "sAddress", tRow);
  137. sContactNo.Text = GetLinkTextForModification("Sender Contact No", "sContactNo", tRow);
  138. sIdType.Text = GetLinkTextForModification("Sender Id Type", "sIdType", tRow);
  139. sIdNo.Text = GetLinkTextForModification("Sender Id No", "sIdNo", tRow);
  140. rName.Text = GetLinkTextForModification("Receiver Name", "receiverName", tRow);
  141. rAddress.Text = GetLinkTextForModification("Receiver Address", "rAddress", tRow);
  142. rContactNo.Text = GetLinkTextForModification("Receiver Contact No", "rContactNo", tRow);
  143. stdName.Text = GetLinkTextForModification("Student Name", "stdName", tRow);
  144. stdLevel.Text = GetLinkTextForModification("Student Name", "stdLevel", tRow);
  145. stdRollRegNo.Text = GetLinkTextForModification("Student Name", "stdRollRegNo", tRow);
  146. stdSemYr.Text = GetLinkTextForModification("Student Name", "stdSemYr", tRow);
  147. feeTypeId.Text = GetLinkTextForModification("Student Name", "feeTypeId", tRow);
  148. if (tRow["paymentMethod"].ToString().ToUpper() == "BANK DEPOSIT")
  149. {
  150. accountNo.Text = GetLinkTextForModification("Account No", "accountNo", tRow);
  151. bankName.Text = GetLinkTextForModification("Bank Name", "BankName", tRow);
  152. branchName.Text = GetLinkTextForModification("Branch Name", "pBranchName", tRow);
  153. }
  154. }
  155. else
  156. {
  157. sName.Text = tRow["senderName"].ToString(); //
  158. sAddress.Text = tRow["sAddress"].ToString(); //
  159. sContactNo.Text = tRow["sContactNo"].ToString(); //
  160. sIdType.Text = tRow["sIdType"].ToString(); //
  161. sIdNo.Text = tRow["sIdNo"].ToString(); //
  162. rName.Text = tRow["receiverName"].ToString(); //
  163. rAddress.Text = tRow["rAddress"].ToString(); //
  164. rContactNo.Text = tRow["rContactNo"].ToString(); //
  165. stdName.Text = tRow["stdName"].ToString();
  166. stdLevel.Text = tRow["stdLevel"].ToString();
  167. stdRollRegNo.Text = tRow["stdRollRegNo"].ToString();
  168. stdSemYr.Text = tRow["stdSemYr"].ToString();
  169. feeTypeId.Text = tRow["feeTypeId"].ToString();
  170. }
  171. sCountry.Text = tRow["sCountryName"].ToString();
  172. sEmail.Text = tRow["sEmail"].ToString();
  173. rCountry.Text = tRow["rCountryName"].ToString();
  174. //Sending Agent Detail
  175. sAgentName.Text = tRow["sAgentName"].ToString();
  176. sBranchName.Text = tRow["sBranchName"].ToString();
  177. sAgentCountry.Text = tRow["sCountryName"].ToString();
  178. sAgentDistrict.Text = tRow["sAgentDistrict"].ToString();
  179. sAgentCity.Text = tRow["sAgentCity"].ToString();
  180. sAgentLocation.Text = tRow["sAgentLocation"].ToString();
  181. //Payout Agent Detail
  182. pAgentCountry.Text = tRow["pAgentCountry"].ToString();
  183. pAgentDistrict.Text = tRow["pAgentDistrict"].ToString();
  184. pAgentCity.Text = tRow["pAgentCity"].ToString();
  185. if (sl.HasRight(ModifyPayoutLocationId) || sl.HasRight(ModifyPayoutLocationIdAg))
  186. {
  187. if (mode == "u" && tRow["paymentMethod"].ToString().ToUpper() != "BANK DEPOSIT")
  188. // mode: modification payout location
  189. {
  190. pAgentLocation.Text = GetLinkPayoutLocation("Payout Location", "pAgentLocation", tRow);
  191. accountNo.Text = tRow["accountNo"].ToString();
  192. bankName.Text = tRow["BankName"].ToString();
  193. branchName.Text = tRow["BranchName"].ToString();
  194. pBranchName.Text = tRow["pBranchName"].ToString();
  195. }
  196. else if (mode == "u" && tRow["paymentMethod"].ToString().ToUpper() == "BANK DEPOSIT")
  197. //modify mode & bank deposit mode
  198. {
  199. accountNo.Text = GetLinkPayoutLocation("Account Number", "accountNo", tRow);
  200. bankName.Text = GetLinkPayoutLocation("Bank Name", "BankName", tRow);
  201. branchName.Text = GetLinkPayoutLocation("Branch Name", "BranchName", tRow);
  202. pBranchName.Text = GetLinkPayoutLocation("Paying Branch", "pBranchName", tRow);
  203. pAgentLocation.Text = tRow["pAgentLocation"].ToString();
  204. }
  205. else
  206. {
  207. pAgentLocation.Text = tRow["pAgentLocation"].ToString();
  208. accountNo.Text = tRow["accountNo"].ToString();
  209. bankName.Text = tRow["BankName"].ToString();
  210. branchName.Text = tRow["BranchName"].ToString();
  211. pBranchName.Text = tRow["pBranchName"].ToString();
  212. }
  213. }
  214. else
  215. {
  216. pAgentLocation.Text = tRow["pAgentLocation"].ToString();
  217. accountNo.Text = tRow["accountNo"].ToString();
  218. bankName.Text = tRow["BankName"].ToString();
  219. branchName.Text = tRow["BranchName"].ToString();
  220. pBranchName.Text = tRow["pBranchName"].ToString();
  221. }
  222. pAgentName.Text = tRow["pAgentName"].ToString();
  223. modeOfPayment.Text = tRow["paymentMethod"].ToString();
  224. tranStatus.Text = tRow["tranStatus"].ToString();
  225. payStatus.Text = tRow["payStatus"].ToString();
  226. sAgentComm.Text = GetStatic.FormatData(tRow["sAgentComm"].ToString(), "M");
  227. sAgentCommCurr.Text = tRow["sAgentCommCurrency"].ToString();
  228. if (payStatus.Text == "Paid")
  229. {
  230. payAgentComm.Visible = true;
  231. pAgentComm.Text = GetStatic.FormatData(tRow["pAgentComm"].ToString(), "M");
  232. pAgentCommCurr.Text = tRow["pAgentCommCurrency"].ToString();
  233. }
  234. pnlShowBankDetail.Visible = (tRow["paymentMethod"].ToString().ToUpper() == "BANK DEPOSIT" ? true : false);
  235. if (tRow["tranType"].ToString() == "I")
  236. {
  237. pnlExRate.Visible = true;
  238. handling.Text = GetStatic.FormatData(tRow["handlingFee"].ToString(), "M");
  239. exRate.Text = GetStatic.FormatData(tRow["exRate"].ToString(), "M");
  240. }
  241. transferAmount.Text = GetStatic.FormatData(tRow["tAmt"].ToString(), "M");
  242. serviceCharge.Text = GetStatic.FormatData(tRow["serviceCharge"].ToString(), "M");
  243. total.Text = GetStatic.FormatData(tRow["cAmt"].ToString(), "M");
  244. payoutAmt.Text = GetStatic.FormatData(tRow["pAmt"].ToString(), "M");
  245. if (tRow["payoutMsg"].ToString() == "-")
  246. trpMsg.Visible = false;
  247. else
  248. payoutMsg.Text = tRow["payoutMsg"].ToString();
  249. tAmtCurr.Text = tRow["collCurr"].ToString();
  250. scCurr.Text = tRow["collCurr"].ToString();
  251. totalCurr.Text = tRow["collCurr"].ToString();
  252. pAmtCurr.Text = tRow["payoutCurr"].ToString();
  253. createdBy.Text = tRow["createdBy"].ToString();
  254. createdDate.Text = tRow["createdDate"].ToString();
  255. approvedBy.Text = tRow["approvedBy"].ToString();
  256. approvedDate.Text = tRow["approvedDate"].ToString();
  257. paidBy.Text = tRow["paidBy"].ToString();
  258. paidDate.Text = tRow["paidDate"].ToString();
  259. cancelRequestedBy.Text = tRow["cancelRequestBy"].ToString();
  260. cancelRequestedDate.Text = tRow["cancelRequestDate"].ToString();
  261. cancelApprovedBy.Text = tRow["cancelApprovedBy"].ToString();
  262. cancelApprovedDate.Text = tRow["cancelApprovedDate"].ToString();
  263. hddPayTokenId.Value = tRow["payTokenId"].ToString();
  264. tblCreatedLog.Visible = createdBy.Text != "";
  265. tblApprovedLog.Visible = approvedBy.Text != "";
  266. tblPaidLog.Visible = paidBy.Text != "";
  267. tblCancelRequestedLog.Visible = cancelRequestedBy.Text != "";
  268. tblCancelApprovedLog.Visible = cancelApprovedBy.Text != "";
  269. }
  270. pnlLog.Visible = false;
  271. if (ds.Tables[1].Rows.Count > 0)
  272. {
  273. pnlLog.Visible = true;
  274. var dt = ds.Tables[1];
  275. var str = new StringBuilder("<table class='trnLog' border=\"1\" cellspacing=0 cellpadding=\"3\">");
  276. str.Append("<tr>");
  277. str.Append("<th>Updated By</th>");
  278. str.Append("<th width='130px'>Updated Date</th>");
  279. str.Append("<th>Message</th>");
  280. str.Append("</tr>");
  281. foreach (DataRow dr in dt.Rows)
  282. {
  283. str.Append("<tr>");
  284. str.Append("<td align='left'>" + dr["createdBy"] + "</td>");
  285. str.Append("<td align='left'>" + dr["createdDate"] + "</td>");
  286. if (dr["fileType"].ToString() == "")
  287. {
  288. str.Append("<td align='left'>" + dr["message"] + "</td>");
  289. }
  290. else
  291. {
  292. 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>");
  293. }
  294. str.Append("</tr>");
  295. }
  296. str.Append("</table>");
  297. rptLog.InnerHtml = str.ToString();
  298. }
  299. }
  300. }
  301. public void SearchData(string tranNo, string ctrlNo)
  302. {
  303. SearchData(tranNo, ctrlNo, "");
  304. }
  305. public void SearchData(string tranNo, string ctrlNo, string lockMode)
  306. {
  307. SearchData(tranNo, ctrlNo, "", lockMode);
  308. }
  309. public string GetLinkTextForModification(string label, string fieldName, DataRow dr)
  310. {
  311. var str = "<a href=# title='Edit Record'><div class = \"link\" onclick = \"EditData('" + label + "', '" + fieldName + "', '" + dr[fieldName] + "','" + hddTranId.Value + "')\">" +
  312. dr[fieldName] + "<img border=0 src=\"/Images/edit.gif\"/></a></div>";
  313. return str;
  314. }
  315. public string GetLinkPayoutLocation(string label, string fieldName, DataRow dr)
  316. {
  317. var str = "<a href=# title='Edit Record'><div class = \"link\" onclick = \"EditPayoutLocation('" + label + "', '" + fieldName + "', '" + dr[fieldName] + "','" + hddTranId.Value + "')\">" +
  318. dr[fieldName] + "<img border=0 src=\"/Images/edit.gif\"/></a></div>";
  319. return str;
  320. }
  321. public void SearchData()
  322. {
  323. //if TranNo is not blank, search by tranNo
  324. //if CtrlNo is not blank, search by ctrlNo
  325. }
  326. private void ManageMessage(DbResult dbResult)
  327. {
  328. GetStatic.SetMessage(dbResult);
  329. GetStatic.AlertMessage(Page);
  330. }
  331. protected void Page_Load(object sender, EventArgs e)
  332. {
  333. pnlDetail.Visible = ShowDetailBlock;
  334. pnlLog.Visible = ShowLogBlock;
  335. pnlComment.Visible = (sl.HasRight(AddTroubleTicketFunctionId) || sl.HasRight(AddTroubleTicketFunctionIdAg)) && ShowCommentBlock;
  336. pnlReleaseBtn.Visible = ShowApproveButton;
  337. //pnlOFAC.Visible = ShowOfac;
  338. ShowOFACList();
  339. //pnlCompliance.Visible = ShowCompliance;
  340. ShowComplianceList();
  341. }
  342. protected void btnAdd_Click(object sender, EventArgs e)
  343. {
  344. if (GetStatic.GetIsApiFlag() == "Y")
  345. AddCommentApi();
  346. else
  347. AddComment();
  348. comments.Text = "";
  349. ShowLog();
  350. }
  351. #region for desplaying a transaction comments log
  352. public void ShowLog()
  353. {
  354. var obj = new TranViewDao();
  355. var ds = obj.DisplayLog(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  356. if (ds == null)
  357. return;
  358. if (ds.Tables[0].Rows.Count > 0)
  359. {
  360. pnlLog.Visible = true;
  361. var dt = ds.Tables[0];
  362. var str = new StringBuilder("<table class='trnLog' border=\"1\" cellspacing=0 cellpadding=\"3\">");
  363. str.Append("<tr>");
  364. str.Append("<th>Updated By</th>");
  365. str.Append("<th width='130px'>Updated Date</th>");
  366. str.Append("<th>Message</th>");
  367. str.Append("</tr>");
  368. foreach (DataRow dr in dt.Rows)
  369. {
  370. str.Append("<tr>");
  371. str.Append("<td align='left'>" + dr["createdBy"] + "</td>");
  372. str.Append("<td align='left'>" + dr["createdDate"] + "</td>");
  373. if (dr["fileType"].ToString() == "")
  374. {
  375. str.Append("<td align='left'>" + dr["message"] + "</td>");
  376. }
  377. else
  378. {
  379. 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>");
  380. }
  381. str.Append("</tr>");
  382. }
  383. str.Append("</table>");
  384. rptLog.InnerHtml = str.ToString();
  385. }
  386. }
  387. #endregion
  388. public void ShowOFACList()
  389. {
  390. var obj = new TranViewDao();
  391. var ds = obj.DisplayOFAC(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  392. if (ds == null)
  393. {
  394. pnlOFAC.Visible = false;
  395. return;
  396. }
  397. if (ds.Tables[0].Rows[0]["isJsonData"].ToString() == "Y")
  398. {
  399. string res = GetStatic.ParseOfacJson(ds.Tables[0].Rows[0]["ofacRemarks"].ToString(), "");
  400. if (!string.IsNullOrEmpty(res))
  401. {
  402. pnlOFAC.Visible = true;
  403. displayOFAC.InnerHtml = res;
  404. string checkFlag = obj.checkFlagOFAC(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  405. if (checkFlag == "Y")
  406. {
  407. pnlReleaseBtn.Visible = false;
  408. }
  409. GetStatic.AlertMessage(Page);
  410. }
  411. return;
  412. }
  413. if (ds.Tables[0].Rows.Count > 0)
  414. {
  415. pnlOFAC.Visible = true;
  416. var dt = ds.Tables[0];
  417. int cols = dt.Columns.Count;
  418. var str = new StringBuilder("<table class='trnLog' border=\"1\" cellspacing=0 cellpadding=\"3\">");
  419. str.Append("<tr>");
  420. for (int i = 0; i < cols; i++)
  421. {
  422. str.Append("<th><div align=\"left\">" + dt.Columns[i].ColumnName + "</div></th>");
  423. }
  424. str.Append("</tr>");
  425. foreach (DataRow dr in dt.Rows)
  426. {
  427. str.Append("<tr>");
  428. str.Append("<td align=\"left\">" + dr[0] + "</td>");
  429. str.Append("<td align=\"left\">" + dr[1].ToString() + "</td>");
  430. str.Append("</tr>");
  431. }
  432. str.Append("</table>");
  433. displayOFAC.InnerHtml = str.ToString();
  434. string checkFlag = obj.checkFlagOFAC(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  435. if (checkFlag == "Y")
  436. {
  437. pnlReleaseBtn.Visible = false;
  438. }
  439. GetStatic.AlertMessage(Page);
  440. }
  441. }
  442. public void ShowComplianceList()
  443. {
  444. var obj = new TranViewDao();
  445. var ds = obj.DisplayOFAC(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  446. if (ds == null)
  447. {
  448. pnlOFAC.Visible = false;
  449. return;
  450. }
  451. if (ds.Tables[0].Rows[0]["isJsonData"].ToString() == "Y")
  452. {
  453. string res = GetStatic.ParseOfacJson(ds.Tables[0].Rows[0]["ofacRemarks"].ToString(), "");
  454. if (!string.IsNullOrEmpty(res))
  455. {
  456. pnlOFAC.Visible = true;
  457. displayOFAC.InnerHtml = res;
  458. string checkFlag = obj.checkFlagOFAC(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  459. if (checkFlag == "Y")
  460. {
  461. pnlReleaseBtn.Visible = false;
  462. }
  463. GetStatic.AlertMessage(Page);
  464. }
  465. return;
  466. }
  467. if (ds.Tables[0].Rows.Count > 0)
  468. {
  469. pnlOFAC.Visible = true;
  470. var dt = ds.Tables[0];
  471. int cols = dt.Columns.Count;
  472. var str = new StringBuilder("<table class='trnLog' border=\"1\" cellspacing=0 cellpadding=\"3\">");
  473. str.Append("<tr>");
  474. for (int i = 0; i < cols; i++)
  475. {
  476. str.Append("<th><div align=\"left\">" + dt.Columns[i].ColumnName + "</div></th>");
  477. }
  478. str.Append("</tr>");
  479. foreach (DataRow dr in dt.Rows)
  480. {
  481. str.Append("<tr>");
  482. str.Append("<td align=\"left\">" + dr[0] + "</td>");
  483. str.Append("<td align=\"left\">" + dr[1].ToString() + "</td>");
  484. str.Append("</tr>");
  485. }
  486. str.Append("</table>");
  487. displayOFAC.InnerHtml = str.ToString();
  488. string checkFlag = obj.checkFlagOFAC(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, "");
  489. if (checkFlag == "Y")
  490. {
  491. pnlReleaseBtn.Visible = false;
  492. }
  493. GetStatic.AlertMessage(Page);
  494. }
  495. }
  496. protected void btnApproveCompliance_Click(object sender, EventArgs e)
  497. {
  498. SaveComplianceApproveRemarks();
  499. }
  500. public void SaveComplianceApproveRemarks()
  501. {
  502. var obj = new TranViewDao();
  503. DbResult dbResult = obj.SaveApproveRemarksComplaince(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, remarksCompliance.Text, remarksOFAC.Text,remarksCashLimitHold.Text);
  504. GetStatic.SetMessage(dbResult);
  505. if (dbResult.ErrorCode != "0")
  506. {
  507. GetStatic.AlertMessage(Page);
  508. }
  509. else
  510. {
  511. ShowComplianceList();
  512. ShowOFACList();
  513. }
  514. }
  515. public void AddComment()
  516. {
  517. var obj = new TranViewDao();
  518. DbResult dbResult = obj.AddComment(GetStatic.GetUser(), lblControlNo.Text, hddTranId.Value, comments.Text);
  519. ManageMessage(dbResult);
  520. if (dbResult.ErrorCode != "0")
  521. {
  522. GetStatic.CallBackJs1(Page, "Result", "alert('" + dbResult.Msg + "')");
  523. return;
  524. }
  525. else
  526. {
  527. SetupEmailSetting();
  528. SendMail();
  529. }
  530. }
  531. public void AddCommentApi()
  532. {
  533. var obj = new TranViewDao();
  534. var randObj = new Random();
  535. string agentRefId = randObj.Next(1000000000, 1999999999).ToString();
  536. var dr = obj.AddCommentApi(GetStatic.GetUser(), agentRefId, lblControlNo.Text, hddTranId.Value, comments.Text,"");
  537. if (dr[0].ToString() == "0" || dr[0].ToString().ToUpper() == "SUCCESS")
  538. {
  539. AddComment();
  540. }
  541. else
  542. {
  543. GetStatic.AlertMessage(Page, dr[1].ToString());
  544. }
  545. }
  546. private delegate void DoStuff(); //delegate for the action
  547. private void SendMail()
  548. {
  549. var myAction = new DoStuff(AsyncMailProcessing);
  550. //invoke it asynchrnously, control passes to next statement
  551. myAction.BeginInvoke(null, null);
  552. }
  553. private void AsyncMailProcessing()
  554. {
  555. var bw = new BackgroundWorker();
  556. // this allows our worker to report progress during work
  557. bw.WorkerReportsProgress = true;
  558. // what to do in the background thread
  559. bw.DoWork += new DoWorkEventHandler(
  560. delegate(object o, DoWorkEventArgs args)
  561. {
  562. var b = o as BackgroundWorker;
  563. smtpMailSetting.SendSmtpMail(smtpMailSetting);
  564. });
  565. // what to do when progress changed (update the progress bar for example)
  566. bw.ProgressChanged += new ProgressChangedEventHandler(
  567. delegate(object o, ProgressChangedEventArgs args)
  568. {
  569. //label1.Text = string.Format("{0}% Completed", args.ProgressPercentage);
  570. });
  571. // what to do when worker completes its task (notify the user)
  572. bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
  573. delegate(object o, RunWorkerCompletedEventArgs args)
  574. {
  575. var dbResult = new DbResult();
  576. dbResult.SetError("0", "Mail Sent Successfully", "");
  577. GetStatic.PrintMessage(Page, dbResult);
  578. });
  579. bw.RunWorkerAsync();
  580. }
  581. private void SetupEmailSetting()
  582. {
  583. var obj = new TranViewDao();
  584. var ds = obj.GetEmailFormat(GetStatic.GetUser(), "Trouble", hddTranId.Value, "", comments.Text);
  585. if (ds == null)
  586. return;
  587. if (ds.Tables.Count == 0)
  588. return;
  589. if (ds.Tables.Count > 1)
  590. {
  591. //Email Server Settings
  592. if (ds.Tables[0].Rows.Count > 0)
  593. {
  594. var dr1 = ds.Tables[0].Rows[0];
  595. smtpMailSetting.SmtpServer = dr1["smtpServer"].ToString();
  596. smtpMailSetting.SmtpPort = Convert.ToInt32(dr1["smtpPort"]);
  597. smtpMailSetting.SendEmailId = dr1["sendID"].ToString();
  598. smtpMailSetting.SendEmailPwd = dr1["sendPSW"].ToString();
  599. }
  600. if (ds.Tables[1].Rows.Count == 0)
  601. return;
  602. //Email Receiver
  603. if (ds.Tables[1].Rows.Count > 0)
  604. {
  605. var dt = ds.Tables[1];
  606. foreach (DataRow dr2 in dt.Rows)
  607. {
  608. if (!string.IsNullOrEmpty(smtpMailSetting.ToEmails))
  609. smtpMailSetting.ToEmails = smtpMailSetting.ToEmails + ",";
  610. smtpMailSetting.ToEmails = smtpMailSetting.ToEmails + dr2["email"].ToString();
  611. }
  612. }
  613. //Email Subject and Body
  614. if (ds.Tables[2].Rows.Count > 0)
  615. {
  616. var dr3 = ds.Tables[2].Rows[0];
  617. if (dr3 == null)
  618. return;
  619. smtpMailSetting.MsgSubject = dr3[0].ToString();
  620. smtpMailSetting.MsgBody = dr3[1].ToString();
  621. }
  622. }
  623. }
  624. }
  625. }