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.

464 lines
20 KiB

  1. using Swift.DAL.BL.AgentPanel.Utilities;
  2. using Swift.DAL.BL.Remit.Transaction.Domestic;
  3. using Swift.DAL.SwiftDAL;
  4. using Swift.web.Library;
  5. using System;
  6. using System.Data;
  7. using System.IO;
  8. using System.Text;
  9. namespace Swift.web.AgentPanel.Send.SendRegional
  10. {
  11. public partial class FormLoader : System.Web.UI.Page
  12. {
  13. private SendTransactionDao send = new SendTransactionDao();
  14. private const string ViewFunctionId = "40102700";
  15. private const string AddEditFunctionId = "40102710";
  16. private readonly SwiftLibrary sl = new SwiftLibrary();
  17. private string _sBranch = GetStatic.ReadQueryString("sBranch", "");
  18. private string _pDistrict = GetStatic.ReadQueryString("pDistrict", "");
  19. private string _pLocation = GetStatic.ReadQueryString("pLocation", "");
  20. private string _ta = GetStatic.ReadQueryString("ta", "0");
  21. private string _tc = GetStatic.ReadQueryString("tc", "0");
  22. private string _sc = GetStatic.ReadQueryString("sc", "0");
  23. private string _dm = GetStatic.ReadQueryString("dm", "");
  24. private readonly string _senderId = GetStatic.ReadQueryString("senderId", "");
  25. private readonly string _sMemId = GetStatic.ReadQueryString("sMemId", "");
  26. private readonly string _sFirstName = GetStatic.ReadQueryString("sFirstName", "");
  27. private readonly string _sMiddleName = GetStatic.ReadQueryString("sMiddleName", "");
  28. private readonly string _sLastName1 = GetStatic.ReadQueryString("sLastName1", "");
  29. private readonly string _sLastName2 = GetStatic.ReadQueryString("sLastName2", "");
  30. private readonly string _sAddress = GetStatic.ReadQueryString("sAddress", "");
  31. private readonly string _sContactNo = GetStatic.ReadQueryString("sContactNo", "");
  32. private readonly string _sIdType = GetStatic.ReadQueryString("sIdType", "");
  33. private readonly string _sIdNo = GetStatic.ReadQueryString("sIdNo", "");
  34. private readonly string _sEmail = GetStatic.ReadQueryString("sEmail", "");
  35. private readonly string _receiverId = GetStatic.ReadQueryString("receiverId", "");
  36. private readonly string _rMemId = GetStatic.ReadQueryString("rMemId", "");
  37. private readonly string _rFirstName = GetStatic.ReadQueryString("rFirstName", "");
  38. private readonly string _rMiddleName = GetStatic.ReadQueryString("rMiddleName", "");
  39. private readonly string _rLastName1 = GetStatic.ReadQueryString("rLastName1", "");
  40. private readonly string _rLastName2 = GetStatic.ReadQueryString("rLastName2", "");
  41. private readonly string _rAddress = GetStatic.ReadQueryString("rAddress", "");
  42. private readonly string _rContactNo = GetStatic.ReadQueryString("rContactNo", "");
  43. private readonly string _rIdType = GetStatic.ReadQueryString("rIdType", "");
  44. private readonly string _rIdNo = GetStatic.ReadQueryString("rIdNo", "");
  45. private readonly string _rel = GetStatic.ReadQueryString("rel", "");
  46. private readonly string _payMsg = GetStatic.ReadQueryString("payMsg", "");
  47. private readonly string _sof = GetStatic.ReadQueryString("sof", "");
  48. private readonly string _por = GetStatic.ReadQueryString("por", "");
  49. private readonly string _occupation = GetStatic.ReadQueryString("occupation", "");
  50. private readonly string _agentRefId = GetStatic.ReadQueryString("agentRefId", "");
  51. private readonly string _complianceAction = GetStatic.ReadQueryString("complianceAction", "");
  52. private readonly string _compApproveRemark = GetStatic.ReadQueryString("compApproveRemark", "");
  53. private readonly string _txnBatchId = GetStatic.ReadQueryString("txnBatchId", "");
  54. private string _amount = GetStatic.ReadQueryString("amount", "0");
  55. private string _bankId = GetStatic.ReadQueryString("bankId", "");
  56. private string _pBankBranch = GetStatic.ReadQueryString("pBankBranch", "");
  57. private readonly string _accountNo = GetStatic.ReadQueryString("accountNo", "");
  58. private readonly string _sIdIssuedPlace = GetStatic.ReadQueryString("sIdIssuedPlace", "");
  59. private readonly string _sIdIssuedDate = GetStatic.ReadQueryString("sIdIssuedDate", "");
  60. private readonly string _sDOB = GetStatic.ReadQueryString("sDOB", "");
  61. private readonly string _sIdValidDate = GetStatic.ReadQueryString("sIdValidDate", "");
  62. private readonly string _sIdIssuedDateBs = GetStatic.ReadQueryString("sIdIssuedDateBs", "");
  63. private readonly string _sDOBBs = GetStatic.ReadQueryString("sDOBBs", "");
  64. private readonly string _sIdValidDateBs = GetStatic.ReadQueryString("sIdValidDateBs", "");
  65. private readonly string _sGender = GetStatic.ReadQueryString("gender", "");
  66. private readonly string _sMotherFatherName = GetStatic.ReadQueryString("motherFatherName", "");
  67. private readonly string _CustCardId = GetStatic.ReadQueryString("CustCardId", "");
  68. protected void Page_Load(object sender, EventArgs e)
  69. {
  70. Authenticate();
  71. ReturnValue();
  72. }
  73. private void Authenticate()
  74. {
  75. sl.CheckAuthentication(ViewFunctionId + "," + AddEditFunctionId);
  76. }
  77. private string GetQueryType()
  78. {
  79. return GetStatic.ReadQueryString("type", "");
  80. }
  81. private string GetMemId()
  82. {
  83. return GetStatic.ReadQueryString("memId", "");
  84. }
  85. private void ReturnValue()
  86. {
  87. switch (GetQueryType())
  88. {
  89. case "s":
  90. LoadSender();
  91. break;
  92. case "r":
  93. LoadReceiver();
  94. break;
  95. case "a":
  96. Calculate();
  97. break;
  98. case "ac":
  99. LoadAvailableAccountBalance();
  100. break;
  101. case "bb":
  102. PopulateBranchName();
  103. break;
  104. case "sct":
  105. LoadServiceChargeTable();
  106. break;
  107. case "dl":
  108. PopulateDistrict();
  109. break;
  110. case "ll":
  111. PopulateLocation();
  112. break;
  113. case "st":
  114. SendTran();
  115. break;
  116. case "rPay":
  117. LoadReceiverPay();
  118. break;
  119. }
  120. }
  121. private void LoadReceiverPay()
  122. {
  123. DataSet ds = send.GetMemberFromPay(GetStatic.GetUser(), GetMemId());
  124. if (ds.Tables.Count > 1)
  125. {
  126. var dbResult = send.ParseDbResult(ds.Tables[0]);
  127. if (dbResult.ErrorCode != "0")
  128. {
  129. Response.Write(dbResult.ErrorCode + "|" + dbResult.Msg + "|" + dbResult.Id);
  130. return;
  131. }
  132. if (ds.Tables[1].Rows.Count == 0)
  133. return;
  134. var dr = ds.Tables[1].Rows[0];
  135. Response.Write("0" + "|" +
  136. GetMemId() + "|" +
  137. dr["idType"] + "|" +
  138. dr["idNumber"] + "|" +
  139. dr["district"] + "|" +
  140. dr["mobile"] + "|" +
  141. dr["customerId"] + "|" +
  142. dr["fullName"] + "|" +
  143. dr["relationType"] + "|" +
  144. dr["relativeName"]);
  145. }
  146. }
  147. private void PopulateDistrict()
  148. {
  149. var dao = new RemittanceDao();
  150. var sql = "EXEC proc_zoneDistrictMap @flag = 'd', @apiDistrictCode = " + dao.FilterString(_pLocation);
  151. var dt = dao.ExecuteDataset(sql).Tables[0];
  152. if (dt == null || dt.Rows.Count == 0)
  153. {
  154. Response.Write("<select id=\"district\" class=\"form-control\" onchange=\"PopulateLocation();\"></select>");
  155. return;
  156. }
  157. var html =
  158. new StringBuilder("<select id=\"district\" class=\"form-control\" onchange=\"PopulateLocation();\">");
  159. if (string.IsNullOrEmpty(_pLocation))
  160. html.Append("<option value = \"\">Select</option>");
  161. foreach (DataRow dr in dt.Rows)
  162. {
  163. if (!string.IsNullOrEmpty(_pLocation))
  164. html.Append("<option value = \"" + dr["districtId"] + "\" selected=\"selected\">" + dr["districtName"] + "</option>");
  165. else
  166. html.Append("<option value = \"" + dr["districtId"] + "\">" + dr["districtName"] + "</option>");
  167. }
  168. html.Append("</select>");
  169. Response.Write(html.ToString());
  170. }
  171. private void PopulateLocation()
  172. {
  173. var dao = new RemittanceDao();
  174. var sql = "EXEC proc_zoneDistrictMap @flag = 'll', @districtId = " + dao.FilterString(_pDistrict);
  175. var dt = dao.ExecuteDataset(sql).Tables[0];
  176. if (dt == null || dt.Rows.Count == 0)
  177. {
  178. Response.Write("<select id=\"location\" class=\"form-control\" onchange=\"PopulateDistrict();\"></select>");
  179. return;
  180. }
  181. var html =
  182. new StringBuilder("<select id=\"location\" class=\"form-control\" onchange=\"PopulateDistrict();\">");
  183. html.Append("<option value = \"\">Select</option>");
  184. foreach (DataRow dr in dt.Rows)
  185. {
  186. html.Append("<option value = \"" + dr["locationId"] + "\">" + dr["locationName"] + "</option>");
  187. }
  188. html.Append("</select>");
  189. Response.Write(html.ToString());
  190. }
  191. private void LoadServiceChargeTable()
  192. {
  193. DataTable dt = send.HoLoadDomesticServiceChargeTable(_pLocation, _amount, _dm, GetStatic.GetUser(), _sBranch, _pBankBranch);
  194. if (dt == null || dt.Rows.Count == 0)
  195. {
  196. Response.Write("Not Available");
  197. return;
  198. }
  199. var html = new StringBuilder();
  200. html.AppendLine(
  201. "<table width=\"100%\" class=\"table table-bordered\" border=\"0\" class=\"TBL\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">");
  202. html.AppendLine("<tr>");
  203. html.AppendLine("<th>Amount From</th>");
  204. html.AppendLine("<th>Amount To</th>");
  205. html.AppendLine("<th>Percent</th>");
  206. html.AppendLine("<th>Min</th>");
  207. html.AppendLine("<th>Max</th>");
  208. html.AppendLine("</tr>");
  209. foreach (DataRow dr in dt.Rows)
  210. {
  211. html.AppendLine("<tr>");
  212. html.AppendLine("<td align=\"right\">" + GetStatic.FormatData(dr["fromAmt"].ToString(), "M") + "</td>");
  213. html.AppendLine("<td align=\"right\">" + GetStatic.FormatData(dr["toAmt"].ToString(), "M") + "</td>");
  214. html.AppendLine("<td align=\"right\">" + GetStatic.FormatData(dr["pcnt"].ToString(), "M") + "</td>");
  215. html.AppendLine("<td align=\"right\">" + GetStatic.FormatData(dr["minAmt"].ToString(), "M") + "</td>");
  216. html.AppendLine("<td align=\"right\">" + GetStatic.FormatData(dr["maxAmt"].ToString(), "M") + "</td>");
  217. html.AppendLine("</tr>");
  218. }
  219. html.AppendLine("</table>");
  220. Response.Write(html.ToString());
  221. }
  222. private void PopulateBranchName()
  223. {
  224. var dao = new RemittanceDao();
  225. var sql = "EXEC proc_agentMaster @flag = 'bbl', @parentId=" + dao.FilterString(_bankId);
  226. var dt = dao.ExecuteDataset(sql).Tables[0];
  227. if (dt == null || dt.Rows.Count == 0)
  228. {
  229. Response.Write("<select id=\"bankBranch\" style=\"width: 230px;\"></select>");
  230. return;
  231. }
  232. var html = new StringBuilder("<select id=\"bankBranch\" style=\"width: 230px;\" >");
  233. html.Append("<option value = \"\">Select</option>");
  234. foreach (DataRow dr in dt.Rows)
  235. {
  236. html.Append("<option value = \"" + dr["agentId"] + "\">" + dr["agentName"] + "</option>");
  237. }
  238. html.Append("</select>");
  239. Response.Write(html.ToString());
  240. }
  241. private void LoadAvailableAccountBalance()
  242. {
  243. DataRow dr = send.HoGetAcDetail(GetStatic.GetUser(), _sBranch);
  244. if (dr == null)
  245. {
  246. Response.Write("1|N/A");
  247. return;
  248. }
  249. Response.Write("0|" + GetStatic.FormatData(dr["availableBal"].ToString(), "M"));
  250. }
  251. private void LoadSender()
  252. {
  253. DataSet ds = send.GetMember(GetStatic.GetUser(), GetMemId());
  254. if (ds.Tables.Count > 1)
  255. {
  256. var dbResult = send.ParseDbResult(ds.Tables[0]);
  257. if (dbResult.ErrorCode != "0")
  258. {
  259. Response.Write(dbResult.ErrorCode + "|" + dbResult.Msg + "|" + dbResult.Id);
  260. return;
  261. }
  262. if (ds.Tables[1].Rows.Count == 0)
  263. return;
  264. var dr = ds.Tables[1].Rows[0];
  265. Response.Write("0" + "|" +
  266. GetMemId() + "|" +
  267. dr["firstName"] + "|" +
  268. dr["middleName"] + "|" +
  269. dr["lastName1"] + "|" +
  270. dr["lastName2"] + "|" +
  271. dr["address"] + "|" +
  272. dr["mobile"] + "|" +
  273. dr["idType"] + "|" +
  274. dr["idNumber"] + "|" +
  275. dr["customerId"]);
  276. }
  277. }
  278. private void LoadReceiver()
  279. {
  280. DataSet ds = send.GetMember(GetStatic.GetUser(), GetMemId());
  281. if (ds.Tables.Count > 1)
  282. {
  283. var dbResult = send.ParseDbResult(ds.Tables[0]);
  284. if (dbResult.ErrorCode != "0")
  285. {
  286. Response.Write(dbResult.ErrorCode + "|" + dbResult.Msg + "|" + dbResult.Id);
  287. return;
  288. }
  289. if (ds.Tables[1].Rows.Count == 0)
  290. return;
  291. var dr = ds.Tables[1].Rows[0];
  292. Response.Write("0" + "|" +
  293. GetMemId() + "|" +
  294. dr["firstName"] + "|" +
  295. dr["middleName"] + "|" +
  296. dr["lastName1"] + "|" +
  297. dr["lastName2"] + "|" +
  298. dr["address"] + "|" +
  299. dr["mobile"] + "|" +
  300. dr["idType"] + "|" +
  301. dr["idNumber"] + "|" +
  302. dr["customerId"] + "|" +
  303. dr["email"]);
  304. }
  305. }
  306. protected void Calculate()
  307. {
  308. double _transferAmount = GetStatic.ParseDouble(_amount);
  309. double _serviceCharge = 0.0;
  310. double _totalFees = 0.0;
  311. if (_transferAmount > 0)
  312. {
  313. _serviceCharge = GetServiceCharge(_pLocation, _transferAmount.ToString(), "ta");
  314. if (_serviceCharge < 0)
  315. {
  316. Response.Write("1" + "|" + "Service Charge not defined" + "|" + "");
  317. return;
  318. }
  319. _totalFees = _transferAmount + _serviceCharge;
  320. Response.Write("0" + "|" + GetStatic.FormatData(_serviceCharge.ToString(), "M") + "|" + GetStatic.FormatData(_totalFees.ToString(), "M"));
  321. }
  322. else
  323. {
  324. Response.Write("0||");
  325. }
  326. }
  327. private Double GetServiceCharge(string pLocation, string amount, string mode)
  328. {
  329. try
  330. {
  331. double _sc = Convert.ToDouble(send.HoGetDomesticServiceCharge(pLocation, amount, _dm, GetStatic.GetUser(), _sBranch, _pBankBranch));
  332. return _sc;
  333. }
  334. catch
  335. {
  336. GetStatic.CallBackJs1(Page, "Error", "alert('Something went wrong');");
  337. return -1;
  338. }
  339. }
  340. protected bool VerifyCollectionAmt()
  341. {
  342. return true;
  343. }
  344. private void ManageMessage(DbResult dbResult)
  345. {
  346. Response.Write(dbResult.ErrorCode + "|" + dbResult.Msg + "|" + dbResult.Id);
  347. }
  348. private void SendTran()
  349. {
  350. SaveLocalTran();
  351. }
  352. private void SaveLocalTran()
  353. {
  354. var st = new SendTransactionDao();
  355. var user = GetStatic.GetUser();
  356. var randObj = new Random();
  357. string txnId = randObj.Next(1000000000, 1999999999).ToString();
  358. var AgentRefId = (_agentRefId == "") ? txnId : _agentRefId;
  359. var txnDocFolder = GetTxnDocFolder();
  360. try
  361. {
  362. // If exists, move txn related documents to related folder from temp folder.
  363. MoveTxnDocument();
  364. }
  365. catch (Exception ex)
  366. { }
  367. var dbResult = st.HoSendTransaction(user, _sBranch, _pDistrict, _pLocation, _ta, _sc, _tc, _ta,
  368. _dm, "", _pBankBranch, _accountNo, _senderId, _sMemId, _sFirstName, _sMiddleName, _sLastName1,
  369. _sLastName2, _sAddress, _sContactNo,
  370. _sIdType, _sIdNo, _sEmail, _receiverId, _rMemId, _rFirstName,
  371. _rMiddleName, _rLastName1, _rLastName2,
  372. _rAddress, _rContactNo, _rel, _rIdType, _rIdNo, _payMsg, GetStatic.GetDcInfo(), GetStatic.GetIp(), _sof, _por, _occupation,
  373. AgentRefId, _complianceAction, _compApproveRemark, _sDOB, _sIdIssuedPlace, _sIdValidDate, _sIdIssuedDate, _sDOBBs, _sIdValidDateBs, _sIdIssuedDateBs,
  374. _txnBatchId, txnDocFolder, _CustCardId, _sGender, _sMotherFatherName);
  375. if (dbResult.ErrorCode != "0")
  376. {
  377. Response.Write(dbResult.ErrorCode + "|" + dbResult.Msg + "|" + dbResult.Id);
  378. return;
  379. }
  380. ManageMessage(dbResult);
  381. }
  382. private string GetTxnDocFolder()
  383. {
  384. return DateTime.Now.ToString("ddMMyyyy");
  385. }
  386. public bool MoveTxnDocument()
  387. {
  388. TxnDocUploadDao obj = new TxnDocUploadDao();
  389. try
  390. {
  391. var dt = obj.GetTxnTempDoc(GetStatic.GetUser(), _txnBatchId);
  392. if (dt.Rows.Count > 0)
  393. {
  394. for (int i = 0; i < dt.Rows.Count; i++)
  395. {
  396. var root = GetStatic.GetFilePath();
  397. string locationToMove = root + "\\TxnDocUpload\\" + GetTxnDocFolder();
  398. string fileToCreate = locationToMove + "\\" + dt.Rows[i]["fileName"].ToString();
  399. var tmpFileLocation = root + "\\TxnDocUploadTmp\\" + dt.Rows[i]["fileName"].ToString();
  400. if (File.Exists(fileToCreate))
  401. File.Delete(fileToCreate);
  402. if (!Directory.Exists(locationToMove))
  403. Directory.CreateDirectory(locationToMove);
  404. File.Move(tmpFileLocation, fileToCreate);
  405. }
  406. }
  407. return true;
  408. }
  409. catch (Exception ex)
  410. {
  411. return false;
  412. }
  413. }
  414. }
  415. }