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.
 
 
 
 
 

408 lines
17 KiB

using Swift.API.Common;
using Swift.DAL.Remittance.Transaction;
using Swift.web.Library;
using Swift.DAL.SwiftDAL;
using Swift.API.ThirdPartyApiServices;
using System;
using System.Data;
using System.Linq;
using System.Text;
using System.Web.Helpers;
namespace Swift.web.Remit.Transaction.ApproveTxn
{
public partial class ApproveInwardRemitance : System.Web.UI.Page
{
private ApproveInwardTransactionDao at = new ApproveInwardTransactionDao();
private const string ViewFunctionId = "90500000";
private const string ApproveSingleFunctionId = "90500001";
private const string RejectFuntionId = "90500002";
private readonly StaticDataDdl _sdd = new StaticDataDdl();
private readonly RemittanceLibrary _sl = new RemittanceLibrary();
protected void Page_Load(object sender, EventArgs e)
{
Authenticate();
GetStatic.AttachConfirmMsg(ref btnApprove, "Are you sure to APPROVE this transaction?");
GetStatic.AttachConfirmMsg(ref btnApproveAll, "Are you sure to APPROVE ALL this transaction?");
if (!IsPostBack)
{
antiForgery.InnerHtml = AntiForgery.GetHtml().ToString();
LoadDdl();
LoadSendingAgent();
LoadApproveGrid("");
MakeNumericTextBox();
// _sl.SetPayStatusDdl(ref status, "", "All");
if (!string.IsNullOrEmpty(GetCountry()))
LoadApproveGrid(GetCountry());
LoadHoldSummary();
}
GetStatic.ResizeFrame(Page);
}
private void MakeNumericTextBox()
{
Misc.MakeNumericTextbox(ref amt);
}
private void Authenticate()
{
_sdd.CheckAuthentication(ViewFunctionId);
}
private string GetCountry()
{
return GetStatic.ReadQueryString("country", "");
}
private void LoadDdl()
{
// _sdd.SetDDL3(ref country, "EXEC proc_dropDownListsInboundApi @flag = 'a-countrySend'", "countryId", "countryName", "", "All");
_sdd.SetDDL(ref country, "EXEC proc_dropDownListsInboundApi @flag='a-countrySend'", "countryId", "countryName", "", "All");
var sql = "EXEC proc_dropDownLists @flag = 'a-countryPay'";
_sdd.SetDDL(ref rCountry, sql, "countryName", "countryName", "", "Select");
}
protected void country_SelectedIndexChanged(object sender, EventArgs e)
{
LoadSendingAgent();
// Your event handling code here
}
protected void agent_SelectedIndexChanged(object sender, EventArgs e)
{
// Your event handling code here
if (!string.IsNullOrEmpty(agent.Text))
{
var sql = "EXEC proc_dropDownListsInboundApi @flag = 'branch', @agentId=" + _sdd.FilterString(agent.Text) + " , @user=" + _sdd.FilterString(GetStatic.GetUser());
_sdd.SetDDL(ref branch, sql, "agentId", "agentName", "", "All");
}
else
{
branch.Items.Clear();
}
}
private void LoadSendingAgent()
{
if (!string.IsNullOrEmpty(country.Text))
_sdd.SetDDL(ref agent, "EXEC proc_dropDownListsInboundApi @flag = 'agentSend',@param=" + _sdd.FilterString(country.Text) + "", "agentId", "agentName", "", "All");
}
private void LoadApproveGrid(string sCountry)
{
bool allowApprove = _sdd.HasRight(ApproveSingleFunctionId);
bool allowMultiple = false/* _sdd.HasRight(ApproveMultipleFunctionId)*/;
bool allowReject = _sdd.HasRight(RejectFuntionId);
if (!string.IsNullOrEmpty(sCountry))
{
if (sCountry.ToLower() == "All")
{
// Clear the selection and load data for all countries
country.ClearSelection();
}
else
{
// Set the selected country
country.SelectedItem.Text = sCountry;
}
// LoadSendingAgent();
}
//if (country.SelectedItem.Text == "" || country.SelectedItem.Text == "Select")
//{
// //country.SelectedItem.Text = country.SelectedItem.Text;
// country.SelectedItem.Text = "All";
//}
var ds = at.GetHoldedTXNListAdmin(GetStatic.GetUser(), branch.Text, tranNo.Text, rCountry.Text, sender.Text, receiver.Text
, amt.Text, GetStatic.GetBranch(), GetStatic.GetUserType()
, "s-admin", txnDate.Text, user.Text, ControlNo.Text, ControlNo1.Text, "I", country.SelectedItem.Text, agent.Text, branch.Text);
var dt = ds.Tables[0];
var sb = new StringBuilder();
var sbHead = new StringBuilder();
var colspanCount = 0;
int cols = dt.Columns.Count;
int cnt = 0;
sbHead.Append("<table class = 'table table-responsive table-striped table-bordered' >");
if (dt.Rows.Count > 0)
{
sb.Append("<tr>");
if (allowMultiple)
{
colspanCount++;
sb.Append("<th>");
if (dt.Rows.Count > 0)
sb.Append("<input type = 'checkbox' id = 'tgcb' onclick = 'ToggleCheckboxes(this,false);' />");
sb.Append("</th>");
}
sb.Append("<th>Tran Id</th>");
sb.Append("<th>PIN No.</th>");
sb.Append("<th>Partner Id</th>");
sb.Append("<th>Sending Branch</th>");
//sb.Append("<th>Txn Channel</th>");
sb.Append("<th>Country</th>");
sb.Append("<th>Sender</th>");
sb.Append("<th>Receiver</th>");
sb.Append("<th>Payout Amt</th>");
sb.Append("<th>Coll Amt</th>");
sb.Append("<th>S Charge</th>");
sb.Append("<th>Payment Method</th>");
//sb.Append("<th>Payment Option</th>");
//sb.Append("<th>Voucher No</th>");
sb.Append("<th nowrap='nowrap'>Tran Date</th>");
sb.Append("<th>User</th>");
if (allowApprove)
{
colspanCount++;
sb.Append("<th></th>");
sb.Append("<th></th>");
}
if (allowApprove)
{
colspanCount++;
sb.Append("<th></th>");
}
sb.Append("</tr>");
foreach (DataRow dr in dt.Rows)
{
cnt = cnt + 1;
sb.AppendLine(cnt % 2 == 1
? "<tr class=\"oddbg\" onMouseOver=\"this.className='GridOddRowOver'\" onMouseOut=\"this.className='oddbg'\" >"
: "<tr class=\"evenbg\" onMouseOver=\"this.className='GridEvenRowOver'\" onMouseOut=\"this.className='evenbg'\">");
if (allowMultiple)
sb.Append("<td><input onclick = 'CallBackGrid(this,false);' type='checkbox' name='rowId' value=\"" + dr["id"].ToString() + "\"></td>");
sb.Append("<td>" + dr["id"].ToString() + "</td>");
sb.Append("<td>" + dr["controlNo"].ToString() + "</td>");
sb.Append("<td>" + dr["controlNo2"].ToString() + "</td>");
sb.Append("<td>" + dr["BranchName"].ToString() + "</td>");
//sb.Append("<td>" + dr["tranType"].ToString() + "</td>");
sb.Append("<td>" + dr["country"].ToString() + "</td>");
sb.Append("<td>" + dr["sender"].ToString() + "</td>");
sb.Append("<td>" + dr["receiver"].ToString() + "</td>");
sb.Append("<td style=\"font-weight: bold; font-style: italic; text-align: right;\">");
sb.Append(GetStatic.FormatData(dr["pAmt"].ToString(), "M"));
sb.Append("<td style=\"font-weight: bold; font-style: italic; text-align: right;\">");
sb.Append(GetStatic.FormatData(dr["amt"].ToString(), "M"));
sb.Append("<td style=\"font-weight: bold; font-style: italic; text-align: right;\">");
sb.Append(GetStatic.FormatData(dr["serviceCharge"].ToString(), "M"));
//sb.Append(GetStatic.FormatData(dr["serviceCharge"].ToString(), "M"));
sb.Append("<td>" + dr["collMode"].ToString() + "</td>");
//sb.Append("<td>" + dr["depositType"].ToString() + "</td>");
//sb.Append("<td>" + dr["voucherNo"].ToString() + "</td>");
sb.Append("<td>" + GetStatic.FormatData(dr["txnDate"].ToString(), "D") + "</td>");
sb.Append("<td>" + dr["txncreatedBy"].ToString() + "</td>");
//if (allowApprove)
// 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>");
//if (allowApprove && dr["collMode"].ToString() == "Bank Deposit")
// 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>");
//else
// sb.Append("<td>&nbsp;</td>");
//if (allowModify)
// 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>");
if (allowApprove || allowReject)
{
sb.Append("<td nowrap = \"nowrap\">");
//var tb = Misc.MakeNumericTextbox("amt_" + dr["id"].ToString(), "amt_" + dr["id"].ToString(), "", "style='width:60px ! important'", "CheckAmount(" + dr["id"].ToString() + ", " + dr["amt"].ToString() + ");");
//sb.Append(tb);
if (allowApprove)
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() + "' />");
if (allowReject)
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() + "' />");
sb.Append("</td>");
}
sb.Append("</tr>");
}
btnApproveAll.Visible = allowMultiple;
}
else
{
btnApproveAll.Visible = false;
}
sbHead.Append("<tr><td colspan='" + cols + "' id='appCnt' nowrap='nowrap'>");
sbHead.Append("<b>" + dt.Rows.Count.ToString() + " Transaction(s) found : <b>Approve Transaction List</b> </b></td>");
sbHead.Append("</tr>");
sbHead.Append(sb.ToString());
sbHead.Append("</table>");
rptGrid.InnerHtml = sbHead.ToString();
approveList.Visible = true;
selfTxn.Visible = false;
if (dt.Rows.Count == 0)
{
_sl.ManageInvalidControlNoAttempt(Page, GetStatic.GetUser(), "N");
return;
}
GetStatic.ResizeFrame(Page);
}
protected void btnSearch_Click(object sender, EventArgs e)
{
LoadApproveGrid("");
}
protected void btnApproveAll_Click(object sender, EventArgs e)
{
var dr = ApproveAllTxn();
GetStatic.PrintMessage(Page, dr);
if (dr.ErrorCode.Equals("0"))
{
LoadApproveGrid("");
LoadHoldSummary();
}
}
private DbResult ApproveAllTxn()
{
var idList1 = GetStatic.ReadFormData("rowId", "");
if (string.IsNullOrWhiteSpace(idList1))
{
var dr = new DbResult();
dr.SetError("1", "Please select one or more transaction approve", "");
return dr;
}
return at.ApproveAllHoldedTXN(GetStatic.GetUser(), idList1);
}
private void LoadHoldSummary()
{
var ds = at.GetHoldAdminTransactionSummary(GetStatic.GetUser(), GetStatic.GetBranch(), GetStatic.GetUserType());
if (ds == null || ds.Tables.Count == 0)
return;
var dt = ds.Tables[0];
var sbHead = new StringBuilder();
int count = 0;
if (dt.Rows.Count > 0)
{
sbHead.Append("<table class = 'table table-responsive table-bordered table-striped'>");
sbHead.Append("<tr>");
sbHead.Append("<th colspan='3'>HOLD Transaction Summary</th>");
sbHead.Append("</tr>");
sbHead.Append("<tr>");
sbHead.Append("<th>S.N.</th>");
sbHead.Append("<th>Sending Country</th>");
sbHead.Append("<th>Count</th>");
sbHead.Append("</tr>");
foreach (DataRow dr in dt.Rows)
{
sbHead.Append("<tr>");
sbHead.Append("<td>" + dr["sn"] + "</td>");
sbHead.Append("<td><a href='ApproveInwardRemitance.aspx?country=" + dr["country"] + "'>" + dr["country"] + "</a></td>");
sbHead.Append("<td align=\"center\">" + dr["txnCount"] + "</td>");
sbHead.Append("</tr>");
count = count + int.Parse(dr["txnCount"].ToString());
}
sbHead.Append("<tr><td colspan='2'><b>Total</b></td>");
sbHead.Append("<td align=\"center\"><b>" + count.ToString() + "</b></td>");
sbHead.Append("</tr>");
sbHead.Append("</table>");
txnSummary.InnerHtml = sbHead.ToString();
}
}
protected void btnApprove_Click(object sender, EventArgs e)
{
ApproveTxn();
}
private void ApproveTxn()
{
AntiForgery.Validate();
//ApproveTxnMain();
DbResult _dbRes = at.GetTxnApproveDataIMEPay(GetStatic.GetUser(), hddTranNo.Value);
if (_dbRes.ErrorCode != "0")
{
GetStatic.PrintMessage(Page, _dbRes);
return;
}
//else if (_dbRes.Extra == "True")//is realtime
if (_dbRes.Extra2 == "True")//is realtime
{
SendTransactionServices _tpSend = new SendTransactionServices();
string ProcessId = Guid.NewGuid().ToString().Replace("-", "") + ":" + _dbRes.Extra1 + ":releaseTxn";
var result = _tpSend.ReleaseTransaction(new TFReleaseTxnRequest()
{
TfPin = _dbRes.Id,
TxnId = _dbRes.Extra,
RequestBy = GetStatic.GetUser(),
ProviderId = _dbRes.Extra1,
ProcessId = ProcessId.Substring(ProcessId.Length - 40, 40)
});
_dbRes.ErrorCode = result.ResponseCode;
_dbRes.Msg = result.Msg;
_dbRes.Id = "";
if (_dbRes.ErrorCode != "0")
{
GetStatic.PrintMessage(Page, _dbRes);
return;
}
else
{
ApproveTxnMain();
}
}
else
{
ApproveTxnMain();
}
}
protected void ApproveTxnMain()
{
DbResult dbResult = at.ApproveHoldedTXN(GetStatic.GetUser(), hddTranNo.Value);
if (dbResult.ErrorCode == "0")
{
LoadApproveGrid("");
LoadHoldSummary();
GetStatic.PrintMessage(Page, dbResult);
return;
}
else if (dbResult.ErrorCode == "11")
{
string url = "../NewReceiptIRH.aspx?printType=&controlNo=" + dbResult.Id;
Response.Redirect(url);
}
else
{
GetStatic.PrintMessage(Page, dbResult);
return;
}
}
protected void btnReject_Click(object sender, EventArgs e)
{
RejectTxn();
}
private void RejectTxn()
{
var dr = at.RejectHoldedTXN(GetStatic.GetUser(), hddTranNo.Value);
GetStatic.PrintMessage(Page, dr);
if (dr.ErrorCode.Equals("0"))
{
LoadApproveGrid("");
LoadHoldSummary();
}
}
}
}