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.

1434 lines
64 KiB

10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
  1. using Swift.API.TPAPIs.MerchatradePushAPI;
  2. using Swift.DAL.BL.AgentPanel.Send;
  3. using Swift.DAL.BL.Remit.Transaction;
  4. using Swift.DAL.Domain;
  5. using Swift.DAL.SwiftDAL;
  6. using Swift.web.Library;
  7. using System;
  8. using System.Data;
  9. using System.IO;
  10. using System.Text;
  11. using System.Web;
  12. namespace Swift.web.AgentNew.SendTxn
  13. {
  14. public partial class Confirm : System.Web.UI.Page
  15. {
  16. private readonly SendTranIRHDao _st = new SendTranIRHDao();
  17. private readonly RemittanceLibrary _sl = new RemittanceLibrary();
  18. #region Get Sender Details
  19. protected readonly string _senderId = GetStatic.ReadQueryString("senderId", "");
  20. private readonly string _senfName = GetStatic.ReadQueryString("sfName", "");
  21. private readonly string _senmName = GetStatic.ReadQueryString("smName", "");
  22. private readonly string _senlName = GetStatic.ReadQueryString("slName", "");
  23. private readonly string _senlName2 = GetStatic.ReadQueryString("slName2", "");
  24. private readonly string _senIdType = GetStatic.ReadQueryString("sIdType", "");
  25. private readonly string _senIdNo = GetStatic.ReadQueryString("sIdNo", "").Trim().Replace(" ", "+");
  26. private readonly string _senIdValid = GetStatic.ReadQueryString("sIdValid", "");
  27. private readonly string _senGender = GetStatic.ReadQueryString("sGender", "");
  28. private readonly string _sendob = GetStatic.ReadQueryString("sdob", "");
  29. private readonly string _senTel = GetStatic.ReadQueryString("sTel", "");
  30. private readonly string _senMobile = GetStatic.ReadQueryString("sMobile", "");
  31. private readonly string _senNaCountry = GetStatic.ReadQueryString("sNaCountry", "");
  32. private readonly string _sencity = GetStatic.ReadQueryString("sCity", "");
  33. private readonly string _senPostCode = GetStatic.ReadQueryString("sPostCode", "");
  34. private readonly string _senAdd2 = GetStatic.ReadQueryString("sAdd2", "");
  35. private readonly string _senEmail = GetStatic.ReadQueryString("sEmail", "");
  36. private readonly string _smsSend = GetStatic.ReadQueryString("smsSend", "");
  37. private readonly string _memberCode = GetStatic.ReadQueryString("memberCode", "");
  38. private readonly string _senCompany = GetStatic.ReadQueryString("sCompany", "");
  39. #endregion Get Sender Details
  40. #region Get RECEIVER Details
  41. private readonly string _benId = GetStatic.ReadQueryString("benId", "");
  42. private readonly string _recfName = GetStatic.ReadQueryString("rfName", "");
  43. private readonly string _recmName = GetStatic.ReadQueryString("rmName", "");
  44. private readonly string _reclName = GetStatic.ReadQueryString("rlName", "");
  45. private readonly string _reclName2 = GetStatic.ReadQueryString("rlName2", "");
  46. private readonly string _recIdType = GetStatic.ReadQueryString("rIdType", "");
  47. private readonly string _recIdNo = GetStatic.ReadQueryString("rIdNo", "");
  48. private readonly string _recIdValid = GetStatic.ReadQueryString("rIdValid", "");
  49. private readonly string _recGender = GetStatic.ReadQueryString("rGender", "");
  50. private readonly string _recdob = GetStatic.ReadQueryString("rdob", "");
  51. private readonly string _recTel = GetStatic.ReadQueryString("rTel", "");
  52. private readonly string _recMobile = GetStatic.ReadQueryString("rMobile", "");
  53. //readonly string recNaCountry = GetStatic.ReadQueryString("rNaCountry", "");
  54. private readonly string _reccity = GetStatic.ReadQueryString("rCity", "");
  55. private readonly string _recPostCode = GetStatic.ReadQueryString("rPostCode", "");
  56. private readonly string _recAdd1 = GetStatic.ReadQueryString("rAdd1", "");
  57. private readonly string _recAdd2 = GetStatic.ReadQueryString("rAdd2", "");
  58. private readonly string _recEmail = GetStatic.ReadQueryString("rEmail", "");
  59. private readonly string _recaccountNo = GetStatic.ReadQueryString("accountNo", "");
  60. private readonly string _purposeOther = GetStatic.ReadQueryString("purposeOther", "");
  61. private readonly string _relationOther = GetStatic.ReadQueryString("relationOther", "");
  62. #endregion Get RECEIVER Details
  63. #region Get Transaction Details
  64. private readonly string _pCountryName = GetStatic.ReadQueryString("pCountry", "");
  65. private readonly long _pCountryId = GetStatic.ReadNumericDataFromQueryString("payCountryId");
  66. private readonly string _dm = GetStatic.ReadQueryString("collMode", "");
  67. private readonly long _dmId = GetStatic.ReadNumericDataFromQueryString("collModeId");
  68. private readonly string _pBank = GetStatic.ReadQueryString("pBank", "").Replace("undefined", "");
  69. private readonly string _pBankName = GetStatic.ReadQueryString("pBankText", "");
  70. private readonly string _pBankBranch = GetStatic.ReadQueryString("pBankBranch", "").Replace("undefined", "");
  71. private readonly string _pBankBranchName = GetStatic.ReadQueryString("pBankBranchText", "");
  72. private readonly string _pBankType = GetStatic.ReadQueryString("pBankType", "");
  73. private readonly string _pAgent = GetStatic.ReadQueryString("pAgent", "");
  74. private readonly string _pAgentName = GetStatic.ReadQueryString("pAgentName", "");
  75. private readonly string _pCurr = GetStatic.ReadQueryString("pCurr", "");
  76. private readonly string _collCurr = GetStatic.ReadQueryString("collCurr", "");
  77. private readonly decimal _cAmt = GetStatic.ReadDecimalDataFromQueryString("collAmt");
  78. private readonly decimal _pAmt = GetStatic.ReadDecimalDataFromQueryString("payAmt");
  79. private readonly decimal _tAmt = GetStatic.ReadDecimalDataFromQueryString("sendAmt");
  80. private readonly decimal _customerTotalAmt = GetStatic.ReadDecimalDataFromQueryString("customerTotalAmt");
  81. private readonly decimal _serviceCharge = GetStatic.ReadDecimalDataFromQueryString("scharge");
  82. private readonly decimal _discount = GetStatic.ReadDecimalDataFromQueryString("discount");
  83. private readonly decimal _customerRate = GetStatic.ReadDecimalDataFromQueryString("exRate");
  84. private readonly string _schemeType = GetStatic.ReadQueryString("schemeType", "");
  85. private readonly string schemeName = GetStatic.ReadQueryString("schemeName", "");
  86. private readonly string scDiscount = GetStatic.ReadQueryString("scDiscount", "");
  87. private readonly string exRateOffer = GetStatic.ReadQueryString("exRateOffer", "");
  88. private readonly string _couponId = GetStatic.ReadQueryString("couponId", "");
  89. private readonly string _rewardAmt = GetStatic.ReadQueryString("rewardAmt", "");
  90. private readonly string _isPromoCode = GetStatic.ReadQueryString("isPromoCode", "");
  91. private readonly string _rowId = GetStatic.ReadQueryString("rowId", "");
  92. private readonly string _pLocation = GetStatic.ReadQueryString("pLocation", "");
  93. private readonly string _pLocationText = GetStatic.ReadQueryString("pLocationText", "");
  94. private readonly string _pSubLocation = GetStatic.ReadQueryString("pSubLocation", "");
  95. private readonly string _pSubLocationText = GetStatic.ReadQueryString("pSubLocationText", "");
  96. private readonly string _payerId = GetStatic.ReadQueryString("payerId", "");
  97. private readonly string _payerBranchId = GetStatic.ReadQueryString("payerBranchId", "");
  98. private readonly string _isRealTime = GetStatic.ReadQueryString("isRealTime", "");
  99. private readonly string _tpExRate = GetStatic.ReadQueryString("tpExRate", "");
  100. private readonly string _isExrateFromPartner = GetStatic.ReadQueryString("IsExrateFromPartner", "");
  101. private readonly string _txnRequestFromAgent = GetStatic.ReadQueryString("txnRequestFromAgent", "");
  102. private readonly string _txnRequestRowId = GetStatic.ReadQueryString("txnRequestRowId", "");
  103. private readonly string _goodsType = GetStatic.ReadQueryString("goodsType", "");
  104. private readonly string _goodsOrigin = GetStatic.ReadQueryString("goodsOrigin", "");
  105. private readonly string _portOfShipment = GetStatic.ReadQueryString("portOfShipment", "");
  106. private readonly string _nameAsPerBank = GetStatic.ReadQueryString("nameAsPerBank", "");
  107. private readonly string _calcOriginalSc = GetStatic.ReadQueryString("calcOriginalSc", "");
  108. private readonly string _paymentOption = GetStatic.ReadQueryString("paymentOption", "");
  109. #endregion Get Transaction Details
  110. #region additional information
  111. private readonly string _por = GetStatic.ReadQueryString("por", "");
  112. private readonly string _sof = GetStatic.ReadQueryString("sof", "");
  113. private readonly string _rel = GetStatic.ReadQueryString("rel", "");
  114. private readonly string _occupation = GetStatic.ReadQueryString("occupation", "");
  115. private readonly string _payMsg = GetStatic.ReadQueryString("payMsg", "");
  116. private readonly string _company = GetStatic.ReadQueryString("company", "");
  117. private readonly string _nCust = GetStatic.ReadQueryString("newCustomer", "");
  118. private readonly string _eCust = GetStatic.ReadQueryString("EnrollCustomer", "");
  119. private readonly string _cancelrequestId = GetStatic.ReadQueryString("cancelrequestId", "");
  120. private readonly string _pSuperAgent = GetStatic.ReadQueryString("pSuperAgent", "");
  121. private readonly string _salary = GetStatic.ReadQueryString("salary", "");
  122. private readonly string _isCDDI = GetStatic.ReadQueryString("isCDDI", "");
  123. private readonly string _agentRefId = GetStatic.ReadQueryString("agentRefId", "");
  124. private readonly string _xmlAdditionalCDDI = GetStatic.ReadQueryString("xmlAdditionalCDDI", "");
  125. private readonly string _controlNumber = GetStatic.ReadQueryString("controlNumber", "");
  126. //readonly string _hdnreqAgent = GetStatic.ReadQueryString("hdnreqAgent", "");
  127. private readonly string _hdnreqBranch = GetStatic.ReadQueryString("hdnreqBranch", "");
  128. //new fields added
  129. private readonly string _isManualSC = GetStatic.ReadQueryString("isManualSC", "");
  130. private readonly string _manualSC = GetStatic.ReadQueryString("manualSC", "");
  131. private readonly string _sCustStreet = GetStatic.ReadQueryString("sCustStreet", "");
  132. private readonly string _sCustLocation = GetStatic.ReadQueryString("sCustLocation", "");
  133. private readonly string _sCustLocationText = GetStatic.ReadQueryString("sCustLocationText", "");
  134. private readonly string _sCustomerType = GetStatic.ReadQueryString("sCustomerType", "");
  135. private readonly string _sCustBusinessType = GetStatic.ReadQueryString("sCustBusinessType", "");
  136. private readonly string _sCustIdIssuedCountry = GetStatic.ReadQueryString("sCustIdIssuedCountry", "");
  137. private readonly string _sCustIdIssuedDate = GetStatic.ReadQueryString("sCustIdIssuedDate", "");
  138. private readonly string _receiverId = GetStatic.ReadQueryString("receiverId", "");
  139. private readonly string _payoutPartnerId = GetStatic.ReadQueryString("payoutPartnerId", "");
  140. private readonly string _cashCollMode = GetStatic.ReadQueryString("cashCollMode", "");
  141. private readonly string _customerDepositedBank = GetStatic.ReadQueryString("customerDepositedBank", "");
  142. private readonly string _introducerTxt = GetStatic.ReadQueryString("introducerTxt", "");
  143. private readonly string _customerPassword = GetStatic.ReadQueryString("customerPassword", "");
  144. #endregion additional information
  145. #region additional information for branch
  146. private readonly string _branchId = GetStatic.ReadQueryString("branchId", "");
  147. private readonly string _branchName = GetStatic.ReadQueryString("branchName", "");
  148. #endregion additional information for branch
  149. private readonly string _senAdd1 = GetStatic.ReadQueryString("sCity", "") + ", " + GetStatic.ReadQueryString("sCustStreet", "");
  150. private readonly string _calcBy = GetStatic.ReadQueryString("calcBy", "");
  151. private readonly string _promotionCode = GetStatic.ReadQueryString("promotionCode", "");
  152. private readonly string _promotionAmount = GetStatic.ReadQueryString("promotionAmount", "");
  153. private const string ConfirmPage = "40101460";
  154. private const string EnableCustomerSignature = "40101430";
  155. protected bool isProcessedBtnEnabled = true;
  156. protected void Page_Load(object sender, EventArgs e)
  157. {
  158. Authenticate();
  159. voucherDate1.Attributes.Add("readonly", "readonly");
  160. voucherDate2.Attributes.Add("readonly", "readonly");
  161. voucherDate1.Text = DateTime.Now.ToString("yyyy-MM-dd");
  162. voucherDate2.Text = DateTime.Now.ToString("yyyy-MM-dd");
  163. EnableDigitalSignature.Visible = _sl.HasRight(EnableCustomerSignature);
  164. isDisplaySignature.Value = Convert.ToString(_sl.HasRight(EnableCustomerSignature));
  165. if (!IsPostBack)
  166. {
  167. ShowData();
  168. CheckForCdd();
  169. InvoicePrintMode();
  170. PopulateDDL();
  171. RBAScreening();
  172. }
  173. trRnc.Attributes.Add("style", "display: none;");
  174. trWp.Attributes.Add("style", "display: none;");
  175. trRnc.Visible = false;
  176. }
  177. private void RBAScreening()
  178. {
  179. var dt = _st.RBAScreening(_senderId.ToString(), _cAmt.ToString(), GetStatic.GetUser(), _senNaCountry, hdnAgentRefId.Value);
  180. if (dt == null)
  181. return;
  182. var dr = dt.Rows[0];
  183. var errCode = dt.Rows[0][0].ToString();
  184. if (errCode == "0" || errCode == "2" || errCode == "3")
  185. {
  186. if (errCode == "2" || errCode == "3")
  187. {
  188. divEcdd.Visible = true;
  189. if (dr["spanMsg"].ToString() != "")
  190. {
  191. spnEcdd.InnerHtml = dr["spanMsg"].ToString();
  192. }
  193. }
  194. //hdnRBAScoreTxn.Value = dr["RBAScoreTxn"].ToString();
  195. //hdnRBAScoreCustomer.Value = dr["RBAScoreCustomer"].ToString();
  196. hdnRBATxnRisk.Value = dr["TransactionRisk"].ToString();
  197. hdnRBACustomerRisk.Value = dr["CustomerRisk"].ToString();
  198. hdnRBACustomerRiskValue.Value = dr["customerRiskValue"].ToString();
  199. return;
  200. }
  201. else if (errCode == "11")
  202. {
  203. dvAlertSummary.InnerHtml = dt.Rows[0][1].ToString();
  204. btnProceed.Attributes.Add("disabled", "disabled");
  205. isProcessedBtnEnabled = false;
  206. }
  207. }
  208. private void PopulateDDL()
  209. {
  210. _sl.SetDDL(ref bankList1, "SELECT rowId, bankName FROM vwBankLists (NOLOCK)", "rowId", "bankName", "", "Select Bank");
  211. _sl.SetDDL(ref bankList2, "SELECT rowId, bankName FROM vwBankLists (NOLOCK)", "rowId", "bankName", "", "Select Bank");
  212. }
  213. private void InvoicePrintMode()
  214. {
  215. var obj = new ReceiptDao();
  216. DataRow dr = obj.GetInvoiceMode(GetStatic.GetAgent());
  217. if (dr == null)
  218. return;
  219. if (dr["mode"].ToString().Equals("Single"))
  220. invoicePrintMode.Text = "s";
  221. else
  222. invoicePrintMode.Text = "d";
  223. }
  224. //Customer Due Diligence
  225. private void CheckForCdd()
  226. {
  227. var customerTotalAmt = _customerTotalAmt + _cAmt;
  228. if (customerTotalAmt > GetStatic.ParseInt(GetStatic.ReadWebConfig("cddEddBal", "300000")))
  229. {
  230. spnCdd.Visible = true;
  231. chkCdd.Visible = true;
  232. btnProceed.Enabled = false;
  233. }
  234. }
  235. private void Authenticate()
  236. {
  237. _sl.CheckAuthentication(ConfirmPage);
  238. }
  239. protected void ShowData()
  240. {
  241. var confirmText = "Confirmation:\n_____________________________________";
  242. confirmText += "\n\nAre you sure to send this transaction?";
  243. btnProceedCc.ConfirmText = confirmText;
  244. if (!ValidateTransaction())
  245. return;
  246. if (_dm.ToUpper() == "BANK DEPOSIT")
  247. {
  248. tdAccountNoLbl.Visible = true;
  249. tdAccountNoTxt.Visible = true;
  250. accountNo.Text = _recaccountNo;
  251. }
  252. else if (_dm.ToUpper() == "CASH PAYMENT TO OTHER BANK")
  253. {
  254. trPaymentThrough.Visible = true;
  255. paymentThrough.Text = _pAgentName;
  256. }
  257. sName.Text = _senfName + " " + _senmName + " " + _senlName + " " + _senlName2;
  258. sAddress.Text = @_senPostCode.Substring(0, 3) + "-" + _senPostCode.Substring(3)
  259. + ", " + _sCustLocationText + ", " + (string.IsNullOrWhiteSpace(_senAdd1) ? _senAdd2 : _senAdd1);
  260. sCity.Text = _sencity;
  261. sEmail.Text = _senEmail;
  262. sIdType.Text = _senIdType;
  263. sIdNo.Text = _senIdNo;
  264. sIdValidty.Text = _senIdValid;
  265. sdob.Text = _sendob;
  266. sCountry.Text = _senNaCountry;
  267. sContactNo.Text = _senMobile;
  268. sTelNo.Text = _senTel;
  269. rName.Text = _recfName + " " + _recmName + " " + _reclName + " " + _reclName2;
  270. rAddress.Text = string.IsNullOrWhiteSpace(_recAdd1) ? _recAdd2 : _recAdd1;
  271. //rCity.Text = _reccity;
  272. remail.Text = _recEmail;
  273. //rCountry.Text = recNaCountry;
  274. rContactNo.Text = _recMobile;
  275. rIdtype.Text = _recIdType;
  276. ridNo.Text = _recIdNo;
  277. //ridvalidity.Text = _recIdValid;
  278. rdob.Text = _recdob;
  279. rTelNo.Text = _recTel;
  280. transferAmount.Text = GetStatic.ShowDecimal(_tAmt.ToString());
  281. serviceCharge.Text = GetStatic.FormatData(_serviceCharge.ToString(), "M");
  282. total.Text = GetStatic.ShowDecimal(_cAmt.ToString());
  283. rewardAmt.Text = _rewardAmt;
  284. hdnIsPromoCode.Value = _isPromoCode;
  285. hdnRowId.Value = _rowId;
  286. exchangeRate.Text = _customerRate.ToString();
  287. payoutAmt.Text = GetStatic.ShowDecimal(_pAmt.ToString());
  288. payoutAmtInWords.Text = NumberToWordsConverter.NumberToWord(Convert.ToDouble(_pAmt.ToString()));
  289. sCurr1.Text = _collCurr;
  290. sCurr2.Text = _collCurr;
  291. sCurr3.Text = _collCurr;
  292. pCurr1.Text = _pCurr;
  293. pCurr2.Text = _pCurr;
  294. if (!string.IsNullOrEmpty(_schemeType))
  295. {
  296. tdSchemeLbl.Visible = true;
  297. tdSchemeTxt.Visible = true;
  298. var html = schemeName + "<br/> <div style='font-size:11px;'><span style='color: red;'>" + exRateOffer +
  299. "</span> (Ex. Rate)";
  300. html += " <span style='color: red;'>" + scDiscount + "</span> (S.C.)</div>";
  301. spnSchemeOffer.InnerHtml = html;
  302. }
  303. if (!string.IsNullOrEmpty(_payMsg))
  304. {
  305. msgToReceiver.Visible = true;
  306. payoutMsg.InnerHtml = @"<b>Message:</b> <br /><pre><span>" + _payMsg + "</span></pre>";
  307. }
  308. if (_pCountryId.ToString() != "151")
  309. {
  310. pLocationDetail.Visible = true;
  311. pLocation.Text = _pLocationText;
  312. pSubLocation.Text = _pSubLocationText;
  313. }
  314. pCountry.Text = _pCountryName;
  315. pAgentBranch.Text = "Anywhere";
  316. if (!string.IsNullOrEmpty(_pBankName))
  317. pAgentBranch.Text = _pBankName;
  318. if (!string.IsNullOrEmpty(_pBankBranchName))
  319. pAgentBranch.Text = _pBankName + " - " + _pBankBranchName;
  320. modeOfPayment.Text = _dm;
  321. paymentOption.Text = _paymentOption;
  322. trNameAsPerBank.Visible = false;
  323. if (!string.IsNullOrEmpty(_nameAsPerBank))
  324. {
  325. trNameAsPerBank.Visible = true;
  326. lblNameAsPerBank.Text = _nameAsPerBank;
  327. }
  328. //Load Tran Details
  329. }
  330. private string Msg = "";
  331. private bool RequiredFieldValidate()
  332. {
  333. if (_nCust == "N")
  334. {
  335. if (_senderId == "")
  336. {
  337. Msg = "Please choose Sender";
  338. return false;
  339. }
  340. }
  341. //validation for BKash added
  342. if ((_payoutPartnerId == "394130" | _payoutPartnerId == "394414") && _dmId == 13 && _pCountryName.ToUpper() == "BANGLADESH")
  343. {
  344. string accNumToValidate = _recaccountNo.Replace("+", "").Replace(" ", "");
  345. string countryCode = accNumToValidate.Substring(0, 3);
  346. if (countryCode != "880")
  347. {
  348. Msg = " Invalid country code passed in BKash Wallet Number!";
  349. return false;
  350. }
  351. if (accNumToValidate.Length != 13)
  352. {
  353. Msg = " Invalid BKash Wallet Number!";
  354. return false;
  355. }
  356. }
  357. if (string.IsNullOrWhiteSpace(_pLocation) && _pCountryId.ToString() != "151")
  358. {
  359. Msg = " Payout State is missing";
  360. return false;
  361. }
  362. if (_pCountryId.ToString() != "151")
  363. {
  364. if (string.IsNullOrWhiteSpace(_pSubLocation) && (_payoutPartnerId != "394400") && (_payoutPartnerId != "394449"))
  365. {
  366. Msg = " Payout City is missing";
  367. return false;
  368. }
  369. }
  370. if (string.IsNullOrWhiteSpace(_senfName))
  371. {
  372. Msg = " Sender First Name missing";
  373. return false;
  374. }
  375. if (string.IsNullOrWhiteSpace(_recfName))
  376. {
  377. Msg = " Receiver First Name missing";
  378. return false;
  379. }
  380. //if (!string.IsNullOrEmpty(_senIdValid))
  381. //{
  382. // if (Convert.ToDateTime(_senIdValid) < DateTime.Today)
  383. // {
  384. // Msg = "Sender ID has expired";
  385. // return false;
  386. // }
  387. //}
  388. //if (!string.IsNullOrEmpty(_recIdValid))
  389. //{
  390. // if (Convert.ToDateTime(_recIdValid) < DateTime.Now)
  391. // {
  392. // Msg = "Receiver ID is expired";
  393. // return false;
  394. // }
  395. //}
  396. if (string.IsNullOrWhiteSpace(_memberCode) && _eCust == "Y")
  397. {
  398. Msg = "MemberCode is missing for Customer Enrollment";
  399. return false;
  400. }
  401. if (string.IsNullOrWhiteSpace(_dm))
  402. {
  403. Msg = "Please choose payment mode";
  404. return false;
  405. }
  406. if (_tAmt == 0)
  407. {
  408. Msg = "Transfer Amount missing";
  409. return false;
  410. }
  411. if (_customerRate == 0)
  412. {
  413. Msg = "Exchange Rate missing";
  414. return false;
  415. }
  416. if (_cAmt == 0)
  417. {
  418. Msg = "Collection Amount is missing. Cannot send transaction";
  419. return false;
  420. }
  421. if (_tAmt >= GetStatic.ParseInt(GetStatic.ReadWebConfig("cddEddBal", "300000")))
  422. {
  423. if (string.IsNullOrWhiteSpace(_por) || string.IsNullOrWhiteSpace(_sof))
  424. {
  425. Msg = "Purpose of remittance and source of fund is required for Sending Amt " + GetStatic.ReadWebConfig("cddEddBal", "300000");
  426. return false;
  427. }
  428. }
  429. return true;
  430. }
  431. //Sender ID is expired
  432. private bool ValidateTransaction()
  433. {
  434. if (!RequiredFieldValidate())
  435. {
  436. string Message = "1-:::-" + Msg;
  437. GetStatic.CallBackJs1(Page, "Print Message", "ManageMessage('" + Message + "');");
  438. return false;
  439. }
  440. var trn = new IRHTranDetail();
  441. var randObj = new Random();
  442. var agentRefId = (string.IsNullOrEmpty(_agentRefId)) ? Guid.NewGuid().ToString() : _agentRefId;
  443. agentRefId = agentRefId.Substring(0, 18);
  444. hdnAgentRefId.Value = agentRefId;
  445. trn.AgentRefId = agentRefId;
  446. trn.User = GetStatic.GetUser();
  447. trn.SessionId = GetStatic.GetSessionId();
  448. trn.SenderId = _senderId.ToString();
  449. trn.SenFirstName = _senfName;
  450. trn.SenMiddleName = _senmName;
  451. trn.SenLastName = _senlName;
  452. trn.SenLastName2 = _senlName2;
  453. trn.SenGender = _senGender;
  454. trn.SenIdType = _senIdType;
  455. trn.SenIdNo = _senIdNo;
  456. trn.SenIdValid = _senIdValid;
  457. trn.SenDob = _sendob;
  458. trn.SenEmail = _senEmail;
  459. trn.SenTel = _senTel;
  460. trn.SenMobile = _senMobile;
  461. trn.SenNaCountry = _senNaCountry;
  462. trn.SenCity = _sencity;
  463. trn.SenPostCode = _senPostCode;
  464. trn.SenAdd1 = _senAdd1;
  465. trn.SenAdd2 = _senAdd2;
  466. trn.SenEmail = _senEmail;
  467. trn.SmsSend = _smsSend;
  468. trn.ReceiverId = _benId.ToString();
  469. trn.RecFirstName = _recfName;
  470. trn.RecMiddleName = _recmName;
  471. trn.RecLastName = _reclName;
  472. trn.RecLastName2 = _reclName2;
  473. trn.RecGender = _recGender;
  474. trn.RecIdType = _recIdType;
  475. trn.RecIdNo = _recIdNo;
  476. trn.RecIdValid = _recIdValid;
  477. trn.RecDob = _recdob;
  478. trn.RecTel = _recTel;
  479. trn.RecMobile = _recMobile;
  480. trn.RecNaCountry = "";
  481. trn.RecCity = _reccity;
  482. trn.RecPostCode = _recPostCode;
  483. trn.RecAdd1 = _recAdd1;
  484. trn.RecAdd2 = _recAdd2;
  485. trn.RecEmail = _recEmail;
  486. trn.RecAccountNo = _recaccountNo;
  487. trn.RecCountryId = _pCountryId.ToString();
  488. trn.RecCountry = _pCountryName;
  489. trn.DeliveryMethod = _dm;
  490. trn.DeliveryMethodId = _dmId.ToString();
  491. trn.PBank = _pBank;
  492. trn.PBankName = _pBankName;
  493. trn.PBankBranch = _pBankBranch;
  494. trn.PBankBranchName = _pBankBranchName;
  495. trn.PBankType = _pBankType;
  496. trn.PAgent = _pAgent;
  497. trn.PAgentName = _pAgentName;
  498. trn.PBankType = _pBankType;
  499. trn.PCurr = _pCurr;
  500. trn.CollCurr = _collCurr;
  501. trn.CollAmt = _cAmt.ToString();
  502. trn.PayoutAmt = _pAmt.ToString();
  503. trn.TransferAmt = _tAmt.ToString();
  504. trn.ServiceCharge = _serviceCharge.ToString();
  505. trn.Discount = _discount.ToString();
  506. trn.ExRate = _customerRate.ToString();
  507. trn.SchemeCode = _schemeType;
  508. trn.CouponTranNo = _couponId;
  509. trn.PurposeOfRemittance = _por;
  510. trn.SourceOfFund = _sof;
  511. trn.RelWithSender = _rel;
  512. trn.Occupation = _occupation;
  513. trn.PayoutMsg = _payMsg;
  514. trn.Company = _company;
  515. trn.NCustomer = _nCust;
  516. trn.ECustomer = _eCust;
  517. trn.MemberCode = _memberCode;
  518. trn.rewardAmt = _rewardAmt;
  519. hdnIsPromoCode.Value = _isPromoCode;
  520. trn.isPromoCode = _isPromoCode;
  521. hdnRowId.Value = _rowId;
  522. trn.rowId = _rowId;
  523. trn.SBranch = GetStatic.GetBranch();
  524. trn.SBranchName = GetStatic.GetBranchName();
  525. trn.SAgent = GetStatic.GetAgent();
  526. trn.SAgentName = GetStatic.GetAgentName();
  527. trn.SSuperAgent = GetStatic.GetSuperAgent();
  528. trn.SSuperAgentName = GetStatic.GetSuperAgentName();
  529. trn.SettlingAgent = GetStatic.GetSettlingAgent();
  530. trn.SCountry = GetStatic.GetCountry();
  531. trn.SCountryId = GetStatic.GetCountryId();
  532. trn.CwPwd = cwPwd.Text;
  533. trn.TtName = ttName.Text;
  534. trn.isManualSC = _isManualSC;
  535. trn.manualSC = _manualSC;
  536. trn.sCustStreet = _sCustStreet;
  537. trn.sCustLocation = _sCustLocation;
  538. trn.sCustomerType = _sCustomerType;
  539. trn.sCustBusinessType = _sCustBusinessType;
  540. trn.sCustIdIssuedCountry = _sCustIdIssuedCountry;
  541. trn.sCustIdIssuedDate = _sCustIdIssuedDate;
  542. trn.receiverId = _receiverId;
  543. trn.payoutPartner = _payoutPartnerId;
  544. trn.cashCollMode = _cashCollMode;
  545. trn.customerDepositedBank = _customerDepositedBank;
  546. trn.introducer = _introducerTxt;
  547. trn.tpExRate = _tpExRate;
  548. trn.PayerId = _payerId;
  549. trn.PayerBranchId = _payerBranchId;
  550. trn.isAdditionalCDDI = _isCDDI;
  551. trn.CDDIXml = _xmlAdditionalCDDI;
  552. trn.controlNumber = _controlNumber;
  553. trn.calcBy = _calcBy;
  554. trn.relationOther = _relationOther;
  555. trn.purposeOther = _purposeOther;
  556. trn.goodsType = _goodsType;
  557. trn.goodsOrigin = _goodsOrigin;
  558. trn.portOfShipment = _portOfShipment;
  559. DataSet ds = new DataSet();
  560. if (_isExrateFromPartner == "true")
  561. {
  562. ds = _st.ValidateTransactionTP(trn);
  563. }
  564. else
  565. {
  566. ds = _st.ValidateTransaction(trn);
  567. }
  568. var dbResult = _st.ParseDbResult(ds.Tables[0]);
  569. if (string.IsNullOrEmpty(_benId) || string.IsNullOrEmpty(_receiverId))
  570. {
  571. if (dbResult.ErrorCode == "0")
  572. {
  573. hddReceiverId.Value = dbResult.Extra;
  574. }
  575. else if (dbResult.ErrorCode == "100")
  576. {
  577. var dbResult1 = _st.ParseDbResult(ds.Tables[2]);
  578. if (dbResult1.ErrorCode == "0")
  579. {
  580. hddReceiverId.Value = dbResult1.Extra;
  581. }
  582. else
  583. {
  584. var dbResult2 = _st.ParseDbResult(ds.Tables[4]);
  585. hddReceiverId.Value = dbResult2.Extra;
  586. }
  587. }
  588. else if (dbResult.ErrorCode == "101" || dbResult.ErrorCode == "102" || dbResult.ErrorCode == "103")
  589. {
  590. var dbResult1 = _st.ParseDbResult(ds.Tables[2]);
  591. hddReceiverId.Value = dbResult1.Extra;
  592. }
  593. }
  594. if (dbResult.ErrorCode != "0")
  595. {
  596. complianceField.Visible = true;
  597. divCompliance.Visible = true;
  598. if (dbResult.ErrorCode == "100") //100 means ofac
  599. {
  600. var result = dbResult.Id.Split('|');
  601. hdnOfacRes.Value = result[0];
  602. hdnOfacReason.Value = result[1];
  603. hdnTrackBy.Value = dbResult.Extra;
  604. if (ds.Tables[1].Rows.Count > 0)
  605. LoadOfacList(dbResult, ds.Tables[1]);
  606. if (ds.Tables.Count > 2)
  607. {
  608. var dbResult2 = _st.ParseDbResult(ds.Tables[2]);
  609. if (ds.Tables[3].Rows.Count > 0 && dbResult2.ErrorCode != "0") //ofac and compliance both
  610. {
  611. LoadCompliance(dbResult2, ds.Tables[3], agentRefId);
  612. ShowDuplicateTxn(ds.Tables[5], ds.Tables[6]);
  613. }
  614. else //ofac only
  615. {
  616. ShowDuplicateTxn(ds.Tables[3], ds.Tables[4]);
  617. }
  618. }
  619. return true;
  620. }
  621. else if (dbResult.ErrorCode == "101" || dbResult.ErrorCode == "102" || dbResult.ErrorCode == "103")
  622. {
  623. if (ds.Tables.Count > 5)
  624. {
  625. // only compliance
  626. ShowDuplicateTxn(ds.Tables[5], ds.Tables[6]);
  627. }
  628. else
  629. ShowDuplicateTxn(ds.Tables[3], ds.Tables[4]);
  630. return LoadCompliance(dbResult, ds.Tables[1], agentRefId);
  631. }
  632. var mes = GetStatic.ParseResultJsPrint(dbResult);
  633. GetStatic.CallBackJs1(Page, "Print Message", "ManageMessage('" + mes + "');");
  634. return false;
  635. }
  636. else
  637. {
  638. ShowDuplicateTxn(ds.Tables[1], ds.Tables[2]);
  639. }
  640. return true;
  641. }
  642. private bool LoadCompliance(DbResult dbResult, DataTable dt, string agentRefId)
  643. {
  644. string isVisastatusRequireQuestionnaire = dbResult.Id.ToUpper();
  645. if (dbResult.ErrorCode == "101")
  646. {
  647. btnProceed.Enabled = false;
  648. btnProceed.Visible = false;
  649. LoadComplianceListNew(dbResult, dt);
  650. return true;
  651. }
  652. if (dbResult.ErrorCode == "102")
  653. {
  654. btnProceed.Enabled = true;
  655. btnProceed.Visible = true;
  656. if (dbResult.Extra2 == "Y")
  657. {
  658. additionalDocumentDiv.Visible = true;
  659. }
  660. if (_isCDDI == "Y" || (_isCDDI == "N" && isVisastatusRequireQuestionnaire == "N"))
  661. {
  662. LoadComplianceListNew(dbResult, dt);
  663. return true;
  664. }
  665. if (isVisastatusRequireQuestionnaire == "Y")
  666. {
  667. var msgCompliance = GetStatic.ParseResultJsPrint(dbResult);
  668. GetStatic.CallBackJs1(Page, "Print Message", "ManageMessage('" + msgCompliance + "-:::-" + dbResult.Extra2 + "-:::-" + agentRefId + "-:::-" + dbResult.Id + "');");
  669. return false;
  670. }
  671. }
  672. if (dbResult.ErrorCode == "103")
  673. {
  674. btnProceed.Enabled = true;
  675. btnProceed.Visible = true;
  676. if (_isCDDI == "Y")
  677. {
  678. LoadComplianceListNew(dbResult, dt);
  679. return true;
  680. }
  681. else
  682. {
  683. var msgCompliance = GetStatic.ParseResultJsPrint(dbResult);
  684. GetStatic.CallBackJs1(Page, "Print Message", "ManageMessage('" + msgCompliance + "-:::-" + dbResult.Extra2 + "-:::-" + agentRefId + "-:::-" + dbResult.Id + "');");
  685. return false;
  686. }
  687. }
  688. var mes = GetStatic.ParseResultJsPrint(dbResult);
  689. GetStatic.CallBackJs1(Page, "Print Message", "ManageMessage('" + mes + "');");
  690. return false;
  691. }
  692. private void LoadOfacList(DbResult dbResult, DataTable dt)
  693. {
  694. var confirmText = "Confirmation:\n_____________________________________";
  695. confirmText += "\n\nYou are confirming to send this OFAC/DJ suspicious transaction!!!";
  696. confirmText += "\n\nPlease note if this customer is found to be valid person from OFAC/DJ List then Teller will be charged fine from management";
  697. confirmText += "\n\n\nPlease make sure you have proper evidence that show this customer is not from OFAC/DJ List";
  698. btnProceedCc.ConfirmText = confirmText;
  699. int cols = dt.Columns.Count;
  700. spnWarningMsg.InnerHtml = dbResult.Msg;
  701. var str = new StringBuilder("<div class='table-responsive'><table class='TBLData table table-striped table-bordered' border=\"1\" cellspacing=0 cellpadding=\"3\">");
  702. str.Append("<tr>");
  703. for (int i = 0; i < cols; i++)
  704. {
  705. str.Append("<th><div align=\"left\">" + dt.Columns[i].ColumnName + "</div></th>");
  706. }
  707. str.Append("</tr>");
  708. foreach (DataRow dr in dt.Rows)
  709. {
  710. str.Append("<tr>");
  711. str.Append("<td align=\"left\">" + dr[0] + "</td>");
  712. string[] strArr = {
  713. _senfName.ToUpper(), _senmName.ToUpper(), _senlName.ToUpper(), _senlName2.ToUpper(),
  714. _recfName.ToUpper(), _recmName.ToUpper(), _reclName.ToUpper(), _reclName2.ToUpper()
  715. };
  716. var arrlen = strArr.Length;
  717. string value = dr[1].ToString();
  718. for (int j = 0; j < arrlen; j++)
  719. {
  720. if (!string.IsNullOrWhiteSpace(strArr[j]))
  721. {
  722. //if (j == 0 && !string.IsNullOrWhiteSpace(strArr[j]))
  723. if (strArr[j].Length > 2)
  724. {
  725. value = value.ToUpper().Replace(strArr[j],
  726. GetStatic.PutRedBackGround(strArr[j]));
  727. //if (j == 1 && !string.IsNullOrWhiteSpace(strArr[j]))
  728. // value = value.ToUpper().Replace(strArr[j],
  729. // GetStatic.PutYellowBackGround(strArr[j]));
  730. //if (j == 2 && !string.IsNullOrWhiteSpace(strArr[j]))
  731. // value = value.ToUpper().Replace(strArr[j],
  732. // GetStatic.PutBlueBackGround(strArr[j]));
  733. //if (j == 3 && !string.IsNullOrWhiteSpace(strArr[j]))
  734. // value = value.ToUpper().Replace(strArr[j],
  735. // GetStatic.PutHalfYellowBackGround(strArr[j]));
  736. }
  737. }
  738. }
  739. str.Append("<td align=\"left\">" + value + "</td>");
  740. str.Append("</tr>");
  741. }
  742. //str.Append("<tr><td>");
  743. //str.Append("<input type=\"button\" id=\"btnProceedOfac\" value=\"Proceed\" onclick=\"ProceedOfac();\" />");
  744. //str.Append("</td></tr>");
  745. str.Append("<tr>");
  746. str.Append("<td colspan=\"2\">OFAC Listed Customer are BLACK Listed customer or Suspicious for terrorist or Money Loundery Customer" +
  747. ", please ask for valid documentation from customer</td>");
  748. str.Append("</tr>");
  749. str.Append("</table></div>");
  750. divOfac.InnerHtml = str.ToString();
  751. }
  752. private void LoadComplianceListNew(DbResult dbResult, DataTable dt)
  753. {
  754. int cols = dt.Columns.Count;
  755. var str =
  756. new StringBuilder("<div class='table-responsive'><table class='table table-responsive table-striped table-bordered'>");
  757. str.Append("<tr>");
  758. for (int i = 2; i < cols; i++)
  759. {
  760. str.Append("<th><div align=\"left\">" + dt.Columns[i].ColumnName + "</div></th>");
  761. }
  762. str.Append("</tr>");
  763. foreach (DataRow dr in dt.Rows)
  764. {
  765. str.Append("<tr>");
  766. str.Append("<td>" + dr["S.N."].ToString() + "</td>");
  767. str.Append("<td align=\"left\"><a href=\"#\" onclick=\"OpenInNewWindow('/Remit/OFACManagement/ComplianceDetail.aspx?id=" +
  768. dr["Id"].ToString() + "&type=compNew')\">" + dr["Remarks"].ToString() + "</a></td>");
  769. str.Append("<td align='center' class='bg-danger'></strong>" + dr["Action"].ToString() + "</strong></td>");
  770. str.Append("</tr>");
  771. }
  772. str.Append("</table></div>");
  773. divCompliance.InnerHtml = str.ToString();
  774. }
  775. private void LoadComplianceList(DbResult dbResult, DataTable dt)
  776. {
  777. int cols = dt.Columns.Count;
  778. var str =
  779. new StringBuilder("<table class='table table-responsive table-striped table-bordered'>");
  780. str.Append("<tr>");
  781. for (int i = 2; i < cols; i++)
  782. {
  783. str.Append("<th><div align=\"left\">" + dt.Columns[i].ColumnName + "</div></th>");
  784. }
  785. str.Append("</tr>");
  786. foreach (DataRow dr in dt.Rows)
  787. {
  788. str.Append("<tr>");
  789. for (int i = 2; i < cols; i++)
  790. {
  791. if (i == 4)
  792. {
  793. var strArr = dr["Matched Tran ID"].ToString().Split(',');
  794. var arrlen = strArr.Length;
  795. str.Append("<td>");
  796. for (int j = 0; j < arrlen; j++)
  797. {
  798. str.Append(
  799. "<a href=\"#\" onclick=\"OpenInNewWindow('/Remit/Transaction/Reports/SearchTransaction.aspx?tranId=" +
  800. strArr[j] + "')\">" + strArr[j] + "</a> &nbsp;");
  801. }
  802. str.Append("</td>");
  803. }
  804. else if (i == 3)
  805. {
  806. str.Append(
  807. "<td align=\"left\"><a href=\"#\" onclick=\"OpenInNewWindow('/Remit/OFACManagement/ComplianceDetail.aspx?id=" +
  808. dr["Id"].ToString() + "&csID=" + dr["csDetailRecId"] + "')\">" +
  809. dr[i].ToString() + "</a></td>");
  810. }
  811. else
  812. {
  813. str.Append("<td align=\"left\">" + dr[i].ToString() + "</td>");
  814. }
  815. }
  816. str.Append("</tr>");
  817. }
  818. str.Append("</table>");
  819. divCompliance.InnerHtml = str.ToString();
  820. }
  821. protected void btnProceed_Click(object sender, EventArgs e)
  822. {
  823. Proceed();
  824. }
  825. private void Proceed()
  826. {
  827. if (chkCdd.Visible && !chkCdd.Checked)
  828. {
  829. GetStatic.AlertMessage(Page, "Please assure that you have conducted Customer Due Diligence");
  830. return;
  831. }
  832. //if (_sl.HasRight(EnableCustomerSignature) && (string.IsNullOrEmpty(customerPassword.Text) || string.IsNullOrWhiteSpace(customerPassword.Text)) && (string.IsNullOrEmpty(hddImgURL.Value) || string.IsNullOrWhiteSpace(hddImgURL.Value)))
  833. //{
  834. // GetStatic.AlertMessage(this, "Customer signature or customer password is required!");
  835. // return;
  836. //}
  837. if (_sl.HasRight(EnableCustomerSignature) && (string.IsNullOrEmpty(hddImgURL.Value) || string.IsNullOrWhiteSpace(hddImgURL.Value)))
  838. {
  839. GetStatic.AlertMessage(this, "Customer signature is required!");
  840. return;
  841. }
  842. var dbResult = Save();
  843. if (!string.IsNullOrEmpty(hddImgURL.Value) && (dbResult.ErrorCode == "0" || dbResult.ErrorCode == "100" || dbResult.ErrorCode == "101"))
  844. {
  845. UploadImage(hddImgURL.Value, dbResult.Id);
  846. }
  847. if (dbResult.ErrorCode == "0" || dbResult.ErrorCode == "100" || dbResult.ErrorCode == "101")
  848. {
  849. if (dbResult.Extra2 == "DEBIT_CARD")
  850. {
  851. var url = GetStatic.ReadWebConfig("trustpaymentCallback", "");
  852. var id = HttpUtility.UrlEncode(WebUtils.EncryptString(dbResult.Extra));
  853. var cn = HttpUtility.UrlEncode(WebUtils.EncryptString(dbResult.Id));
  854. string reference = dbResult.Extra3;
  855. url = $"{url}?ref={reference}&id={id}&cn={cn}";
  856. Response.Redirect(url, false);
  857. }
  858. else
  859. {
  860. GetStatic.SetMessage(dbResult);
  861. ManageMessage1(dbResult);
  862. }
  863. }
  864. else
  865. {
  866. GetStatic.SetMessage(dbResult);
  867. ManageMessage(dbResult);
  868. }
  869. }
  870. public void UploadImage(string imageData, string controlNo)
  871. {
  872. string path = GetStatic.GetCustomerFilePath() + "Transaction\\CustomerSignature\\" + DateTime.Now.Year.ToString() + "\\" + DateTime.Now.Month.ToString() + "\\" + DateTime.Now.Day.ToString();
  873. if (!Directory.Exists(path))
  874. Directory.CreateDirectory(path);
  875. string fileName = path + "\\" + controlNo + ".png";
  876. using (FileStream fs = new FileStream(fileName, FileMode.Create))
  877. {
  878. using (BinaryWriter bw = new BinaryWriter(fs))
  879. {
  880. byte[] data = Convert.FromBase64String(imageData);
  881. bw.Write(data);
  882. bw.Close();
  883. }
  884. }
  885. }
  886. private void ManageMessage1(DbResult dbResult)
  887. {
  888. var mes = GetStatic.ParseResultJsPrint(dbResult);
  889. mes = mes.Replace("'", "");
  890. mes = mes.Replace("<center>", "");
  891. mes = mes.Replace("</center>", "");
  892. //var invPrintMode = invoicePrintMode.Text;
  893. var invPrintMode = "d";
  894. var scriptName = "ManageMessage";
  895. var functionName = "ManageMessage('" + mes + "','" + invPrintMode + "');";
  896. GetStatic.CallBackJs1(Page, scriptName, functionName);
  897. }
  898. private DbResult Save()
  899. {
  900. var trn = new IRHTranDetail();
  901. trn.AgentRefId = hdnAgentRefId.Value;
  902. trn.User = GetStatic.GetUser();
  903. trn.SessionId = GetStatic.GetSessionId();
  904. trn.SenFirstName = _senfName;
  905. trn.SenMiddleName = _senmName;
  906. trn.SenLastName = _senlName;
  907. trn.SenLastName2 = _senlName2;
  908. trn.SenGender = _senGender;
  909. trn.SenIdType = _senIdType;
  910. trn.SenIdNo = _senIdNo;
  911. trn.SenIdValid = _senIdValid;
  912. trn.SenDob = _sendob;
  913. trn.SenEmail = _senEmail;
  914. trn.SenTel = _senTel;
  915. trn.SenMobile = _senMobile;
  916. trn.SenNaCountry = _senNaCountry;
  917. trn.SenCity = _sencity;
  918. trn.SenPostCode = _senPostCode;
  919. trn.SenAdd1 = _senAdd1;
  920. trn.SenAdd2 = _senAdd2;
  921. trn.SenEmail = _senEmail;
  922. trn.SenCompany = _senCompany;
  923. trn.SmsSend = _smsSend;
  924. trn.ReceiverId = string.IsNullOrEmpty(_benId) ? hddReceiverId.Value : _benId.ToString();
  925. trn.RecFirstName = _recfName;
  926. trn.RecMiddleName = _recmName;
  927. trn.RecLastName = _reclName;
  928. trn.RecLastName2 = _reclName2;
  929. trn.RecGender = _recGender;
  930. trn.RecIdType = _recIdType;
  931. trn.RecIdNo = _recIdNo;
  932. trn.RecIdValid = _recIdValid;
  933. trn.RecDob = _recdob;
  934. trn.RecTel = _recTel;
  935. trn.RecMobile = _recMobile;
  936. trn.RecNaCountry = "";
  937. trn.RecCity = _reccity;
  938. trn.RecPostCode = _recPostCode;
  939. trn.RecAdd1 = _recAdd1;
  940. trn.RecAdd2 = _recAdd2;
  941. trn.RecEmail = _recEmail;
  942. trn.RecAccountNo = _recaccountNo;
  943. trn.RecCountryId = _pCountryId.ToString();
  944. trn.RecCountry = _pCountryName;
  945. trn.DeliveryMethod = _dm;
  946. trn.DeliveryMethodId = _dmId.ToString();
  947. trn.PBank = _pBank;
  948. trn.PBankName = _pBankName;
  949. trn.PBankBranch = _pBankBranch;
  950. trn.PBankBranchName = _pBankBranchName;
  951. trn.PBankType = _pBankType;
  952. trn.PAgent = _pAgent;
  953. trn.PAgentName = _pAgentName;
  954. trn.PCurr = _pCurr;
  955. trn.CollCurr = _collCurr;
  956. trn.CollAmt = _cAmt.ToString();
  957. trn.PayoutAmt = _pAmt.ToString();
  958. trn.TransferAmt = _tAmt.ToString();
  959. trn.ServiceCharge = _serviceCharge.ToString();
  960. trn.Discount = _discount.ToString();
  961. trn.ExRate = _customerRate.ToString();
  962. trn.SchemeCode = _schemeType;
  963. trn.CouponTranNo = _couponId;
  964. trn.PurposeOfRemittance = _por;
  965. trn.SourceOfFund = _sof;
  966. trn.RelWithSender = _rel;
  967. trn.Occupation = _occupation;
  968. trn.PayoutMsg = _payMsg;
  969. trn.Company = _company;
  970. trn.NCustomer = _nCust;
  971. trn.ECustomer = _eCust;
  972. trn.MemberCode = _memberCode;
  973. trn.rewardAmt = _rewardAmt;
  974. hdnIsPromoCode.Value = _isPromoCode;
  975. trn.isPromoCode = _isPromoCode;
  976. hdnRowId.Value = _rowId;
  977. trn.rowId = _rowId;
  978. trn.CancelRequestId = _cancelrequestId;
  979. trn.Salary = _salary;
  980. //trn.TxnPassword = txnPassword.Text;
  981. trn.SBranch = _branchId;
  982. trn.SBranchName = _branchName;
  983. if (trn.SBranch != GetStatic.GetAgent())
  984. trn.IsOnBehalf = "Y";
  985. trn.SAgent = _branchId;
  986. trn.SAgentName = _branchName;
  987. trn.SettlingAgent = _branchId;
  988. trn.SCountry = GetStatic.GetCountry();
  989. trn.SCountryId = GetStatic.GetCountryId();
  990. trn.CwPwd = cwPwd.Text;
  991. trn.TtName = ttName.Text;
  992. trn.OfacRes = hdnOfacRes.Value;
  993. trn.OfacReason = hdnOfacReason.Value;
  994. trn.RBATxnRisk = hdnRBATxnRisk.Value;
  995. trn.RBACustomerRisk = hdnRBACustomerRisk.Value;
  996. trn.RBACustomerRiskValue = hdnRBACustomerRiskValue.Value;
  997. trn.DcInfo = "";
  998. trn.DcInfo = GetStatic.GetDcInfo();
  999. trn.IpAddress = GetStatic.GetIp();
  1000. trn.pStateId = _pLocation;
  1001. trn.pStateName = _pLocationText;
  1002. trn.pCityId = _pSubLocation;
  1003. trn.pCityName = _pSubLocationText;
  1004. trn.tpExRate = _tpExRate;
  1005. trn.manualSC = _manualSC;
  1006. trn.isManualSC = _isManualSC;
  1007. trn.sCustStreet = _sCustStreet;
  1008. trn.sCustLocation = _sCustLocation;
  1009. trn.sCustomerType = _sCustomerType;
  1010. trn.sCustBusinessType = _sCustBusinessType;
  1011. trn.sCustIdIssuedCountry = _sCustIdIssuedCountry;
  1012. trn.sCustIdIssuedDate = _sCustIdIssuedDate;
  1013. trn.payoutPartner = _payoutPartnerId;
  1014. trn.SenderId = _senderId;
  1015. trn.receiverId = string.IsNullOrEmpty(_benId) ? hddReceiverId.Value : _benId.ToString();
  1016. trn.cashCollMode = _cashCollMode;
  1017. trn.customerDepositedBank = _customerDepositedBank;
  1018. trn.introducer = _introducerTxt;
  1019. trn.PayerId = _payerId;
  1020. trn.PayerBranchId = _payerBranchId;
  1021. trn.VoucherDetail = GetVoucherDetail();
  1022. //trn.CustomerPassword = customerPassword.Text;
  1023. trn.isAdditionalCDDI = _isCDDI;
  1024. trn.CDDIXml = hddXMLCDDI.Value.Replace("%3e", "<").Replace("%3c", ">");
  1025. trn.controlNumber = _controlNumber;
  1026. trn.calcBy = _calcBy;
  1027. trn.relationOther = _relationOther;
  1028. trn.purposeOther = _purposeOther;
  1029. trn.promotionCode = _promotionCode;
  1030. trn.promotionAmount = _promotionAmount;
  1031. trn.txnRequestFromAgent = _txnRequestFromAgent;
  1032. trn.txnRequestRowId = _txnRequestRowId;
  1033. trn.goodsType = _goodsType;
  1034. trn.goodsOrigin = _goodsOrigin;
  1035. trn.portOfShipment = _portOfShipment;
  1036. trn.trackBy = hdnTrackBy.Value;
  1037. trn.nameAsPerBank = _nameAsPerBank;
  1038. trn.calcOriginalSc = _calcOriginalSc;
  1039. trn.paymentOption = _paymentOption;
  1040. trn.siteReference = GetStatic.ReadWebConfig("sitereference", "");
  1041. if (_isRealTime == "true")
  1042. {
  1043. DbResult _dbRes = new DbResult();
  1044. if (_isExrateFromPartner == "true")
  1045. {
  1046. _dbRes = _st.SendTransactionIRHNew(trn);
  1047. }
  1048. else
  1049. {
  1050. _dbRes = _st.SendTransactionIRH(trn);
  1051. }
  1052. if (_dbRes.ErrorCode == "0" || _dbRes.ErrorCode == "100" || _dbRes.ErrorCode == "101")
  1053. {
  1054. ApproveTransactionDao at = new ApproveTransactionDao();
  1055. string newSession = Guid.NewGuid().ToString().Replace("-", "");
  1056. var result = at.GetHoldedTxnForApprovedByAdmin(GetStatic.GetUser(), _dbRes.Extra, newSession);
  1057. if (!result.ResponseCode.Equals("0"))
  1058. {
  1059. _st.RevertTPTxns(_dbRes.Id, GetStatic.GetUser());
  1060. return new DbResult
  1061. {
  1062. ErrorCode = result.ResponseCode,
  1063. Msg = result.Msg,
  1064. Id = ""
  1065. };
  1066. }
  1067. else
  1068. {
  1069. trn.tpRefNo = result.Extra;
  1070. return _st.UpdateTPTxns(trn, _dbRes.Id, GetStatic.GetUser());
  1071. }
  1072. }
  1073. else
  1074. {
  1075. return _dbRes;
  1076. }
  1077. }
  1078. else
  1079. {
  1080. DbResult _dbRes = new DbResult();
  1081. if (_isExrateFromPartner == "true")
  1082. {
  1083. _dbRes = _st.SendTransactionIRHNew(trn);
  1084. }
  1085. else
  1086. {
  1087. _dbRes = _st.SendTransactionIRH(trn);
  1088. }
  1089. return _dbRes;
  1090. }
  1091. }
  1092. private MtradePushDetail SetPushDetails(IRHTranDetail trn, string controlNo, DataRow _tpDetails)
  1093. {
  1094. FullName _senderName = new FullName();
  1095. FullName _recName = new FullName();
  1096. _senderName = GetStatic.ParseName(_senfName);
  1097. _recName = GetStatic.ParseName(_recfName);
  1098. return new MtradePushDetail
  1099. {
  1100. collTranId = controlNo,
  1101. payoutAgentCd = _tpDetails["pAgentCode"].ToString(),
  1102. payoutAmount = String.Format("{0:0,0}", double.Parse(trn.PayoutAmt)).Replace(",", ""),
  1103. payoutCurrency = trn.PCurr,
  1104. payoutMode = (trn.DeliveryMethod.Equals("CASH PAYMENT")) ? "2" : "1",
  1105. senderFirstName = _senderName.FirstName,
  1106. senderMiddleName = _senderName.MiddleName,
  1107. senderLastName = _senderName.LastName1,
  1108. senderAddress = trn.SenAdd1,
  1109. senderNationalityCd = _tpDetails["sederNationalityCode"].ToString(),
  1110. senderIdCardTypeCd = _tpDetails["sIdTypeCode"].ToString(),
  1111. senderIdCardTypeNo = _senIdNo,
  1112. receiverFirstName = _recName.FirstName,
  1113. receiverMiddleName = _recName.MiddleName,
  1114. receiverLastName = _recName.LastName1 + " " + _recName.LastName2,
  1115. receiverAddress = _recAdd1,
  1116. senderPhoneNo = _senMobile,
  1117. receiverPhoneNo = _recMobile,
  1118. receiverNationalityCd = _tpDetails["receiverNationalityCode"].ToString(),
  1119. receiverBankCd = _tpDetails["rBankCode"].ToString(),
  1120. receiverBankBranchCd = _tpDetails["rBankBranchCode"].ToString(),
  1121. receiverBankAcNo = _recaccountNo,
  1122. receiverIdCardTypeCd = _tpDetails["rIdTypeCode"].ToString(),
  1123. receiverIdCardTypeNo = _recIdNo,
  1124. senderRelationWithReceiverCd = "",
  1125. sourceOfFundCd = _tpDetails["sourceOfFund"].ToString(),
  1126. reasonOfRemittanceCd = _tpDetails["reasonOfRemittance"].ToString(),
  1127. senderOccupationCd = _tpDetails["senderOccoupation"].ToString(),
  1128. senderBirthDate = _sendob,
  1129. reasonOfRemittanceText = _por,
  1130. sourceOfFundText = _sof,
  1131. remarks = "",
  1132. occupationText = "",
  1133. relationshipText = "",
  1134. remitType = _tpDetails["remitType"].ToString(),
  1135. countryofBusiness = "",
  1136. personName = "",
  1137. personIdCardTypeCd = "",
  1138. personIdCardTypeNo = "",
  1139. personDateofBirth = "",
  1140. personDesignation = "",
  1141. personNationalityCd = "",
  1142. };
  1143. }
  1144. private string GetVoucherDetail()
  1145. {
  1146. StringBuilder sb = new StringBuilder("<root>");
  1147. sb.AppendLine("<row");
  1148. sb.AppendLine("voucherNo=\"" + voucherNo1.Text + "\" ");
  1149. sb.AppendLine("voucherDate=\"" + voucherDate1.Text + "\" ");
  1150. sb.AppendLine("voucherAmount=\"" + voucherAmount1.Text + "\" ");
  1151. sb.AppendLine("bankId=\"" + bankList1.SelectedValue + "\" ");
  1152. sb.AppendLine("/>");
  1153. if (!string.IsNullOrEmpty(voucherNo2.Text))
  1154. {
  1155. sb.AppendLine("<row");
  1156. sb.AppendLine("voucherNo=\"" + voucherNo2.Text + "\" ");
  1157. sb.AppendLine("voucherDate=\"" + voucherDate2.Text + "\" ");
  1158. sb.AppendLine("voucherAmount=\"" + voucherAmount2.Text + "\" ");
  1159. sb.AppendLine("bankId=\"" + bankList2.SelectedValue + "\" ");
  1160. sb.AppendLine("/>");
  1161. }
  1162. sb.AppendLine("</root>");
  1163. return sb.ToString();
  1164. }
  1165. private void ManageMessage(DbResult dbResult)
  1166. {
  1167. var mes = GetStatic.ParseResultJsPrint(dbResult);
  1168. mes = mes.Replace("<center>", "");
  1169. mes = mes.Replace("</center>", "");
  1170. var invPrintMode = invoicePrintMode.Text;
  1171. var scriptName = "CallBack";
  1172. var functionName = "CallBack('" + mes + "','" + invPrintMode + "');";
  1173. GetStatic.CallBackJs1(Page, scriptName, functionName);
  1174. }
  1175. protected void btnProceed2_Click(object sender, EventArgs e)
  1176. {
  1177. Proceed();
  1178. }
  1179. protected void chkMultipleTxn_CheckedChanged(object sender, EventArgs e)
  1180. {
  1181. if (!chkCdd.Visible)
  1182. btnProceed.Enabled = chkMultipleTxn.Checked;
  1183. else
  1184. {
  1185. if (chkMultipleTxn.Checked && chkCdd.Checked)
  1186. btnProceed.Enabled = true;
  1187. else
  1188. btnProceed.Enabled = false;
  1189. }
  1190. }
  1191. protected void chkCdd_CheckedChanged(object sender, EventArgs e)
  1192. {
  1193. if (!chkMultipleTxn.Visible)
  1194. btnProceed.Enabled = chkCdd.Checked;
  1195. else
  1196. {
  1197. if (chkMultipleTxn.Checked && chkCdd.Checked)
  1198. btnProceed.Enabled = true;
  1199. else
  1200. btnProceed.Enabled = false;
  1201. }
  1202. }
  1203. protected void ShowDuplicateTxn(DataTable dt1, DataTable dt2)
  1204. {
  1205. var html = new StringBuilder();
  1206. if (dt1.Rows.Count > 0)
  1207. {
  1208. var totalAmt = 0.0;
  1209. divComplianceMultipleTxn.Visible = true;
  1210. btnProceed.Enabled = true;
  1211. chkMultipleTxn.Visible = true;
  1212. html.Append("<table class='table table-responsive table-striped table-bordered'>");
  1213. html.Append("<td colspan=\"6\" style=\"color: red; font-weight: bold; font-family: verdana;\">");
  1214. html.Append("WARNING!! Previous transaction found with same name");
  1215. html.Append("</td>");
  1216. html.Append("<tr>");
  1217. html.Append("<th>JME No.</th>");
  1218. html.Append("<th>Sender Name</th>");
  1219. html.Append("<th>Sender Id Type</th>");
  1220. html.Append("<th>Sender Id No.</th>");
  1221. html.Append("<th>Amount</th>");
  1222. html.Append("<th>Receiving Country</th>");
  1223. html.Append("</tr>");
  1224. foreach (DataRow dr in dt1.Rows)
  1225. {
  1226. html.Append("<tr style=\"background-color: #F9CCCC;\">");
  1227. html.Append("<td>" + dr["controlNo"] + "</td>");
  1228. html.Append("<td>" + dr["senderName"] + "</td>");
  1229. html.Append("<td>" + dr["sIdType"] + "</td>");
  1230. html.Append("<td>" + dr["sIdNo"] + "</td>");
  1231. html.Append("<td style=\"text-align: right;\">" + GetStatic.ShowDecimal(dr["cAmt"].ToString()) + "</td>");
  1232. html.Append("<td>" + dr["pCountry"] + "</td>");
  1233. html.Append("</tr>");
  1234. totalAmt += Convert.ToDouble(dr["cAmt"]);
  1235. }
  1236. html.Append("<tr>");
  1237. html.Append("<td>Current</td>");
  1238. html.Append("<td>" + GetStatic.GetFullName(_senfName, _senmName, _senlName, _senlName2) + "</td>");
  1239. html.Append("<td>" + _senIdType + "</td>");
  1240. html.Append("<td>" + _senIdNo + "</td>");
  1241. html.Append("<td style=\"text-align: right;\">" + GetStatic.ShowDecimal(_cAmt.ToString()) + "</td>");
  1242. html.Append("<td>" + _pCountryName + "</td>");
  1243. html.Append("</tr>");
  1244. totalAmt += Convert.ToDouble(_cAmt);
  1245. html.Append("<tr>");
  1246. html.Append("<td colspan=\"4\" style=\"text-align: right;\"><b>Total</b></td>");
  1247. html.Append("<td style=\"text-align: right;\"><b>" + GetStatic.ShowDecimal(totalAmt.ToString()) + "</b></td>");
  1248. html.Append("</tr>");
  1249. html.Append("</table>");
  1250. }
  1251. if (dt2.Rows.Count > 0)
  1252. {
  1253. var totalAmt = 0.0;
  1254. divComplianceMultipleTxn.Visible = true;
  1255. btnProceed.Enabled = true;
  1256. chkMultipleTxn.Visible = true;
  1257. html.Append("<table class='table table-responsive table-striped table-bordered'>");
  1258. html.Append("<td colspan=\"6\" style=\"color: red; font-weight: bold; font-family: verdana;\">WARNING!! Previous transaction found with same ID Detail</td>");
  1259. html.Append("<tr>");
  1260. html.Append("<th>JME No.</th>");
  1261. html.Append("<th>Sender Name</th>");
  1262. html.Append("<th>Sender Id Type</th>");
  1263. html.Append("<th>Sender Id No.</th>");
  1264. html.Append("<th>Amount</th>");
  1265. html.Append("<th>Receiving Country</th>");
  1266. html.Append("</tr>");
  1267. foreach (DataRow dr in dt1.Rows)
  1268. {
  1269. html.Append("<tr style=\"background-color: #F9CCCC;\">");
  1270. html.Append("<td>" + dr["controlNo"] + "</td>");
  1271. html.Append("<td>" + dr["senderName"] + "</td>");
  1272. html.Append("<td>" + dr["sIdType"] + "</td>");
  1273. html.Append("<td>" + dr["sIdNo"] + "</td>");
  1274. html.Append("<td style=\"text-align: right;\">" + GetStatic.ShowDecimal(dr["cAmt"].ToString()) + "</td>");
  1275. html.Append("<td>" + dr["pCountry"] + "</td>");
  1276. html.Append("</tr>");
  1277. totalAmt += Convert.ToDouble(dr["cAmt"]);
  1278. }
  1279. html.Append("<tr>");
  1280. html.Append("<td>Current</td>");
  1281. html.Append("<td>" + GetStatic.GetFullName(_senfName, _senmName, _senlName, _senlName2) + "</td>");
  1282. html.Append("<td>" + _senIdType + "</td>");
  1283. html.Append("<td>" + _senIdNo + "</td>");
  1284. html.Append("<td style=\"text-align: right;\">" + GetStatic.ShowDecimal(_cAmt.ToString()) + "</td>");
  1285. html.Append("<td>" + _pCountryName + "</td>");
  1286. html.Append("</tr>");
  1287. totalAmt += Convert.ToDouble(_cAmt);
  1288. html.Append("<tr>");
  1289. html.Append("<td colspan=\"4\" style=\"text-align: right;\"><b>Total</b></td>");
  1290. html.Append("<td style=\"text-align: right;\"><b>" + GetStatic.ShowDecimal(totalAmt.ToString()) + "</b></td>");
  1291. html.Append("</tr>");
  1292. html.Append("</table>");
  1293. }
  1294. divComplianceMultipleTxn.InnerHtml = html.ToString();
  1295. }
  1296. }
  1297. }