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.

407 lines
17 KiB

  1. using Swift.API.Common;
  2. using Swift.DAL.Remittance.Transaction;
  3. using Swift.web.Library;
  4. using Swift.DAL.SwiftDAL;
  5. using Swift.API.ThirdPartyApiServices;
  6. using System;
  7. using System.Data;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Web.Helpers;
  11. namespace Swift.web.Remit.Transaction.ApproveTxn
  12. {
  13. public partial class ApproveInwardRemitance : System.Web.UI.Page
  14. {
  15. private ApproveInwardTransactionDao at = new ApproveInwardTransactionDao();
  16. private const string ViewFunctionId = "90500000";
  17. private const string ApproveSingleFunctionId = "90500001";
  18. private const string RejectFuntionId = "90500002";
  19. private readonly StaticDataDdl _sdd = new StaticDataDdl();
  20. private readonly RemittanceLibrary _sl = new RemittanceLibrary();
  21. protected void Page_Load(object sender, EventArgs e)
  22. {
  23. Authenticate();
  24. GetStatic.AttachConfirmMsg(ref btnApprove, "Are you sure to APPROVE this transaction?");
  25. GetStatic.AttachConfirmMsg(ref btnApproveAll, "Are you sure to APPROVE ALL this transaction?");
  26. if (!IsPostBack)
  27. {
  28. antiForgery.InnerHtml = AntiForgery.GetHtml().ToString();
  29. LoadDdl();
  30. LoadSendingAgent();
  31. LoadApproveGrid("");
  32. MakeNumericTextBox();
  33. // _sl.SetPayStatusDdl(ref status, "", "All");
  34. if (!string.IsNullOrEmpty(GetCountry()))
  35. LoadApproveGrid(GetCountry());
  36. LoadHoldSummary();
  37. }
  38. GetStatic.ResizeFrame(Page);
  39. }
  40. private void MakeNumericTextBox()
  41. {
  42. Misc.MakeNumericTextbox(ref amt);
  43. }
  44. private void Authenticate()
  45. {
  46. _sdd.CheckAuthentication(ViewFunctionId);
  47. }
  48. private string GetCountry()
  49. {
  50. return GetStatic.ReadQueryString("country", "");
  51. }
  52. private void LoadDdl()
  53. {
  54. // _sdd.SetDDL3(ref country, "EXEC proc_dropDownListsInboundApi @flag = 'a-countrySend'", "countryId", "countryName", "", "All");
  55. _sdd.SetDDL(ref country, "EXEC proc_dropDownListsInboundApi @flag='a-countrySend'", "countryId", "countryName", "", "All");
  56. var sql = "EXEC proc_dropDownLists @flag = 'a-countryPay'";
  57. _sdd.SetDDL(ref rCountry, sql, "countryName", "countryName", "", "Select");
  58. }
  59. protected void country_SelectedIndexChanged(object sender, EventArgs e)
  60. {
  61. LoadSendingAgent();
  62. // Your event handling code here
  63. }
  64. protected void agent_SelectedIndexChanged(object sender, EventArgs e)
  65. {
  66. // Your event handling code here
  67. if (!string.IsNullOrEmpty(agent.Text))
  68. {
  69. var sql = "EXEC proc_dropDownListsInboundApi @flag = 'branch', @agentId=" + _sdd.FilterString(agent.Text) + " , @user=" + _sdd.FilterString(GetStatic.GetUser());
  70. _sdd.SetDDL(ref branch, sql, "agentId", "agentName", "", "All");
  71. }
  72. else
  73. {
  74. branch.Items.Clear();
  75. }
  76. }
  77. private void LoadSendingAgent()
  78. {
  79. if (!string.IsNullOrEmpty(country.Text))
  80. _sdd.SetDDL(ref agent, "EXEC proc_dropDownListsInboundApi @flag = 'agentSend',@param=" + _sdd.FilterString(country.Text) + "", "agentId", "agentName", "", "All");
  81. }
  82. private void LoadApproveGrid(string sCountry)
  83. {
  84. bool allowApprove = _sdd.HasRight(ApproveSingleFunctionId);
  85. bool allowMultiple = false/* _sdd.HasRight(ApproveMultipleFunctionId)*/;
  86. bool allowReject = _sdd.HasRight(RejectFuntionId);
  87. if (!string.IsNullOrEmpty(sCountry))
  88. {
  89. if (sCountry.ToLower() == "All")
  90. {
  91. // Clear the selection and load data for all countries
  92. country.ClearSelection();
  93. }
  94. else
  95. {
  96. // Set the selected country
  97. country.SelectedItem.Text = sCountry;
  98. }
  99. // LoadSendingAgent();
  100. }
  101. //if (country.SelectedItem.Text == "" || country.SelectedItem.Text == "Select")
  102. //{
  103. // //country.SelectedItem.Text = country.SelectedItem.Text;
  104. // country.SelectedItem.Text = "All";
  105. //}
  106. var ds = at.GetHoldedTXNListAdmin(GetStatic.GetUser(), branch.Text, tranNo.Text, rCountry.Text, sender.Text, receiver.Text
  107. , amt.Text, GetStatic.GetBranch(), GetStatic.GetUserType()
  108. , "s-admin", txnDate.Text, user.Text, ControlNo.Text, ControlNo1.Text, "I", country.SelectedItem.Text, agent.Text, branch.Text);
  109. var dt = ds.Tables[0];
  110. var sb = new StringBuilder();
  111. var sbHead = new StringBuilder();
  112. var colspanCount = 0;
  113. int cols = dt.Columns.Count;
  114. int cnt = 0;
  115. sbHead.Append("<table class = 'table table-responsive table-striped table-bordered' >");
  116. if (dt.Rows.Count > 0)
  117. {
  118. sb.Append("<tr>");
  119. if (allowMultiple)
  120. {
  121. colspanCount++;
  122. sb.Append("<th>");
  123. if (dt.Rows.Count > 0)
  124. sb.Append("<input type = 'checkbox' id = 'tgcb' onclick = 'ToggleCheckboxes(this,false);' />");
  125. sb.Append("</th>");
  126. }
  127. sb.Append("<th>Tran Id</th>");
  128. sb.Append("<th>PIN No.</th>");
  129. sb.Append("<th>Partner Id</th>");
  130. sb.Append("<th>Sending Branch</th>");
  131. //sb.Append("<th>Txn Channel</th>");
  132. sb.Append("<th>Country</th>");
  133. sb.Append("<th>Sender</th>");
  134. sb.Append("<th>Receiver</th>");
  135. sb.Append("<th>Payout Amt</th>");
  136. sb.Append("<th>Coll Amt</th>");
  137. sb.Append("<th>S Charge</th>");
  138. sb.Append("<th>Payment Method</th>");
  139. //sb.Append("<th>Payment Option</th>");
  140. //sb.Append("<th>Voucher No</th>");
  141. sb.Append("<th nowrap='nowrap'>Tran Date</th>");
  142. sb.Append("<th>User</th>");
  143. if (allowApprove)
  144. {
  145. colspanCount++;
  146. sb.Append("<th></th>");
  147. sb.Append("<th></th>");
  148. }
  149. if (allowApprove)
  150. {
  151. colspanCount++;
  152. sb.Append("<th></th>");
  153. }
  154. sb.Append("</tr>");
  155. foreach (DataRow dr in dt.Rows)
  156. {
  157. cnt = cnt + 1;
  158. sb.AppendLine(cnt % 2 == 1
  159. ? "<tr class=\"oddbg\" onMouseOver=\"this.className='GridOddRowOver'\" onMouseOut=\"this.className='oddbg'\" >"
  160. : "<tr class=\"evenbg\" onMouseOver=\"this.className='GridEvenRowOver'\" onMouseOut=\"this.className='evenbg'\">");
  161. if (allowMultiple)
  162. sb.Append("<td><input onclick = 'CallBackGrid(this,false);' type='checkbox' name='rowId' value=\"" + dr["id"].ToString() + "\"></td>");
  163. sb.Append("<td>" + dr["id"].ToString() + "</td>");
  164. sb.Append("<td>" + dr["controlNo"].ToString() + "</td>");
  165. sb.Append("<td>" + dr["controlNo2"].ToString() + "</td>");
  166. sb.Append("<td>" + dr["BranchName"].ToString() + "</td>");
  167. //sb.Append("<td>" + dr["tranType"].ToString() + "</td>");
  168. sb.Append("<td>" + dr["country"].ToString() + "</td>");
  169. sb.Append("<td>" + dr["sender"].ToString() + "</td>");
  170. sb.Append("<td>" + dr["receiver"].ToString() + "</td>");
  171. sb.Append("<td style=\"font-weight: bold; font-style: italic; text-align: right;\">");
  172. sb.Append(GetStatic.FormatData(dr["pAmt"].ToString(), "M"));
  173. sb.Append("<td style=\"font-weight: bold; font-style: italic; text-align: right;\">");
  174. sb.Append(GetStatic.FormatData(dr["amt"].ToString(), "M"));
  175. sb.Append("<td style=\"font-weight: bold; font-style: italic; text-align: right;\">");
  176. sb.Append(GetStatic.FormatData(dr["serviceCharge"].ToString(), "M"));
  177. //sb.Append(GetStatic.FormatData(dr["serviceCharge"].ToString(), "M"));
  178. sb.Append("<td>" + dr["collMode"].ToString() + "</td>");
  179. //sb.Append("<td>" + dr["depositType"].ToString() + "</td>");
  180. //sb.Append("<td>" + dr["voucherNo"].ToString() + "</td>");
  181. sb.Append("<td>" + GetStatic.FormatData(dr["txnDate"].ToString(), "D") + "</td>");
  182. sb.Append("<td>" + dr["txncreatedBy"].ToString() + "</td>");
  183. //if (allowApprove)
  184. // sb.Append("<td><img style='cursor:pointer' title = 'View Details' alt = 'View Details' src = '" + GetStatic.GetUrlRoot() + "/images/view-detail-icon.png' onclick = 'ViewDetails(" + dr["id"].ToString() + ");' /></td>");
  185. //if (allowApprove && dr["collMode"].ToString() == "Bank Deposit")
  186. // sb.Append("<td><img style='cursor:pointer' title = 'Approve Deposit Mapping' alt = 'View Mapping' src = '" + GetStatic.GetUrlRoot() + "/images/view-changes.jpg' onclick = 'ViewMapping(" + dr["id"].ToString() + ");' /></td>");
  187. //else
  188. // sb.Append("<td>&nbsp;</td>");
  189. //if (allowModify)
  190. // sb.Append("<td><img style='cursor:pointer' title = 'Modify Transaction' alt = 'Modify Transaction' src = '" + GetStatic.GetUrlRoot() + "/images/edit.gif' onclick = 'Modify(" + dr["id"].ToString() + ");' /></td>");
  191. if (allowApprove || allowReject)
  192. {
  193. sb.Append("<td nowrap = \"nowrap\">");
  194. //var tb = Misc.MakeNumericTextbox("amt_" + dr["id"].ToString(), "amt_" + dr["id"].ToString(), "", "style='width:60px ! important'", "CheckAmount(" + dr["id"].ToString() + ", " + dr["amt"].ToString() + ");");
  195. //sb.Append(tb);
  196. if (allowApprove)
  197. sb.Append("&nbsp;<input type = 'button' class='btn btn-primary m-t-25' onclick = \"ViewDetails(" + dr["id"].ToString() + ");\" value = 'Approve' id = 'btn_" + dr["id"].ToString() + "' />");
  198. if (allowReject)
  199. sb.Append("&nbsp;<input type = 'button' class='btn btn-primary m-t-25' onclick = \"Reject(" + dr["id"].ToString() + ");\" value = 'Reject' id = 'btn_r_" + dr["id"].ToString() + "' />");
  200. sb.Append("</td>");
  201. }
  202. sb.Append("</tr>");
  203. }
  204. btnApproveAll.Visible = allowMultiple;
  205. }
  206. else
  207. {
  208. btnApproveAll.Visible = false;
  209. }
  210. sbHead.Append("<tr><td colspan='" + cols + "' id='appCnt' nowrap='nowrap'>");
  211. sbHead.Append("<b>" + dt.Rows.Count.ToString() + " Transaction(s) found : <b>Approve Transaction List</b> </b></td>");
  212. sbHead.Append("</tr>");
  213. sbHead.Append(sb.ToString());
  214. sbHead.Append("</table>");
  215. rptGrid.InnerHtml = sbHead.ToString();
  216. approveList.Visible = true;
  217. selfTxn.Visible = false;
  218. if (dt.Rows.Count == 0)
  219. {
  220. _sl.ManageInvalidControlNoAttempt(Page, GetStatic.GetUser(), "N");
  221. return;
  222. }
  223. GetStatic.ResizeFrame(Page);
  224. }
  225. protected void btnSearch_Click(object sender, EventArgs e)
  226. {
  227. LoadApproveGrid("");
  228. }
  229. protected void btnApproveAll_Click(object sender, EventArgs e)
  230. {
  231. var dr = ApproveAllTxn();
  232. GetStatic.PrintMessage(Page, dr);
  233. if (dr.ErrorCode.Equals("0"))
  234. {
  235. LoadApproveGrid("");
  236. LoadHoldSummary();
  237. }
  238. }
  239. private DbResult ApproveAllTxn()
  240. {
  241. var idList1 = GetStatic.ReadFormData("rowId", "");
  242. if (string.IsNullOrWhiteSpace(idList1))
  243. {
  244. var dr = new DbResult();
  245. dr.SetError("1", "Please select one or more transaction approve", "");
  246. return dr;
  247. }
  248. return at.ApproveAllHoldedTXN(GetStatic.GetUser(), idList1);
  249. }
  250. private void LoadHoldSummary()
  251. {
  252. var ds = at.GetHoldAdminTransactionSummary(GetStatic.GetUser(), GetStatic.GetBranch(), GetStatic.GetUserType());
  253. if (ds == null || ds.Tables.Count == 0)
  254. return;
  255. var dt = ds.Tables[0];
  256. var sbHead = new StringBuilder();
  257. int count = 0;
  258. if (dt.Rows.Count > 0)
  259. {
  260. sbHead.Append("<table class = 'table table-responsive table-bordered table-striped'>");
  261. sbHead.Append("<tr>");
  262. sbHead.Append("<th colspan='3'>HOLD Transaction Summary</th>");
  263. sbHead.Append("</tr>");
  264. sbHead.Append("<tr>");
  265. sbHead.Append("<th>S.N.</th>");
  266. sbHead.Append("<th>Sending Country</th>");
  267. sbHead.Append("<th>Count</th>");
  268. sbHead.Append("</tr>");
  269. foreach (DataRow dr in dt.Rows)
  270. {
  271. sbHead.Append("<tr>");
  272. sbHead.Append("<td>" + dr["sn"] + "</td>");
  273. sbHead.Append("<td><a href='ApproveInwardRemitance.aspx?country=" + dr["country"] + "'>" + dr["country"] + "</a></td>");
  274. sbHead.Append("<td align=\"center\">" + dr["txnCount"] + "</td>");
  275. sbHead.Append("</tr>");
  276. count = count + int.Parse(dr["txnCount"].ToString());
  277. }
  278. sbHead.Append("<tr><td colspan='2'><b>Total</b></td>");
  279. sbHead.Append("<td align=\"center\"><b>" + count.ToString() + "</b></td>");
  280. sbHead.Append("</tr>");
  281. sbHead.Append("</table>");
  282. txnSummary.InnerHtml = sbHead.ToString();
  283. }
  284. }
  285. protected void btnApprove_Click(object sender, EventArgs e)
  286. {
  287. ApproveTxn();
  288. }
  289. private void ApproveTxn()
  290. {
  291. AntiForgery.Validate();
  292. //ApproveTxnMain();
  293. DbResult _dbRes = at.GetTxnApproveDataIMEPay(GetStatic.GetUser(), hddTranNo.Value);
  294. if (_dbRes.ErrorCode != "0")
  295. {
  296. GetStatic.PrintMessage(Page, _dbRes);
  297. return;
  298. }
  299. //else if (_dbRes.Extra == "True")//is realtime
  300. if (_dbRes.Extra2 == "True")//is realtime
  301. {
  302. SendTransactionServices _tpSend = new SendTransactionServices();
  303. string ProcessId = Guid.NewGuid().ToString().Replace("-", "") + ":" + _dbRes.Extra1 + ":releaseTxn";
  304. var result = _tpSend.ReleaseTransaction(new TFReleaseTxnRequest()
  305. {
  306. TfPin = _dbRes.Id,
  307. TxnId = _dbRes.Extra,
  308. RequestBy = GetStatic.GetUser(),
  309. ProviderId = _dbRes.Extra1,
  310. ProcessId = ProcessId.Substring(ProcessId.Length - 40, 40)
  311. });
  312. _dbRes.ErrorCode = result.ResponseCode;
  313. _dbRes.Msg = result.Msg;
  314. _dbRes.Id = "";
  315. if (_dbRes.ErrorCode != "0")
  316. {
  317. GetStatic.PrintMessage(Page, _dbRes);
  318. return;
  319. }
  320. else
  321. {
  322. ApproveTxnMain();
  323. }
  324. }
  325. else
  326. {
  327. ApproveTxnMain();
  328. }
  329. }
  330. protected void ApproveTxnMain()
  331. {
  332. DbResult dbResult = at.ApproveHoldedTXN(GetStatic.GetUser(), hddTranNo.Value);
  333. if (dbResult.ErrorCode == "0")
  334. {
  335. LoadApproveGrid("");
  336. LoadHoldSummary();
  337. GetStatic.PrintMessage(Page, dbResult);
  338. return;
  339. }
  340. else if (dbResult.ErrorCode == "11")
  341. {
  342. string url = "../NewReceiptIRH.aspx?printType=&controlNo=" + dbResult.Id;
  343. Response.Redirect(url);
  344. }
  345. else
  346. {
  347. GetStatic.PrintMessage(Page, dbResult);
  348. return;
  349. }
  350. }
  351. protected void btnReject_Click(object sender, EventArgs e)
  352. {
  353. RejectTxn();
  354. }
  355. private void RejectTxn()
  356. {
  357. var dr = at.RejectHoldedTXN(GetStatic.GetUser(), hddTranNo.Value);
  358. GetStatic.PrintMessage(Page, dr);
  359. if (dr.ErrorCode.Equals("0"))
  360. {
  361. LoadApproveGrid("");
  362. LoadHoldSummary();
  363. }
  364. }
  365. }
  366. }