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.
227 lines
9.5 KiB
227 lines
9.5 KiB
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using Swift.API.Common;
|
|
using Swift.API.Common.Cancel;
|
|
using Swift.API.ThirdPartyApiServices;
|
|
using Swift.DAL.BL.Remit.Transaction;
|
|
using Swift.DAL.Remittance.APIPartner;
|
|
using Swift.DAL.SwiftDAL;
|
|
using Swift.web.Library;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Data;
|
|
|
|
namespace Swift.web.Remit.Administration.ChangeReferral
|
|
{
|
|
public partial class CancelTxn : System.Web.UI.Page
|
|
{
|
|
private string ViewFunctionId = "20202800";
|
|
private readonly RemittanceLibrary _sl = new RemittanceLibrary();
|
|
private readonly APIPartnerDao _dao = new APIPartnerDao();
|
|
private readonly StaticDataDdl _sdd = new StaticDataDdl();
|
|
private ApproveTransactionDao at = new ApproveTransactionDao();
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
_sl.CheckAuthentication(ViewFunctionId);
|
|
_sl.CheckSession();
|
|
var MethodName = Request.Form["MethodName"];
|
|
if (MethodName == "SearchTransaction")
|
|
SearchTransactionDetails();
|
|
|
|
if (MethodName == "CancelTxn")
|
|
CancelTransaction();
|
|
|
|
if (MethodName == "CancelTxnJME")
|
|
CancelTransactionJME();
|
|
|
|
if (!IsPostBack)
|
|
{
|
|
cancelDate.Text = DateTime.Now.ToString("yyyy-MM-dd");
|
|
PopulateDDL();
|
|
}
|
|
}
|
|
|
|
private void CancelTransactionJME()
|
|
{
|
|
string controlNo = Request.Form["ControlNo"];
|
|
string cancelDate = Request.Form["CancelDate"];
|
|
string cancelReasonText = Request.Form["CancelReasonText"];
|
|
|
|
var _dbRes = _dao.CancelTxn(GetStatic.GetUser(), controlNo, cancelDate, cancelReasonText);
|
|
GetStatic.JsonResponse(_dbRes, this);
|
|
}
|
|
|
|
private void PopulateDDL()
|
|
{
|
|
string sql = "SELECT CANCEL_REASON_CODE, CANCEL_REASON_TITLE FROM TBL_PARTNER_CANCEL_REASON (NOLOCK) WHERE PARTNER_ID = 394130 AND IS_ACTIVE = 1";
|
|
_sdd.SetDDL(ref ddlRemarks, sql, "CANCEL_REASON_CODE", "CANCEL_REASON_TITLE", "", "Select Reason");
|
|
}
|
|
|
|
private void CancelTransaction()
|
|
{
|
|
string controlNo = Request.Form["ControlNo"];
|
|
string cancelDate = Request.Form["CancelDate"];
|
|
string cancelReasonText = Request.Form["CancelReasonText"];
|
|
string cancelReasonId = Request.Form["CancelReasonId"];
|
|
|
|
DbResult _dbRes = at.GetTxnApproveDataForCancel(GetStatic.GetUser(), controlNo, cancelReasonText);
|
|
|
|
if (_dbRes.ErrorCode == "0")
|
|
{
|
|
string ProcessId = Guid.NewGuid().ToString().Replace("-", "") + ":" + _dbRes.Extra2 + ":statusSync";
|
|
|
|
CancelRequestServices crs = new CancelRequestServices();
|
|
JsonResponse _resp = crs.CancelTransaction(new CancelTxnPartner()
|
|
{
|
|
ProviderId = _dbRes.Msg,
|
|
PartnerPinNo = _dbRes.Id,
|
|
CancelReason = cancelReasonId,
|
|
ProcessId = ProcessId.Substring(ProcessId.Length - 40, 40)
|
|
});
|
|
|
|
if (_resp.ResponseCode == "0")
|
|
{
|
|
_dbRes = at.TxnCancelRequest(GetStatic.GetUser(), controlNo, cancelReasonText);
|
|
}
|
|
else
|
|
{
|
|
_dbRes.ErrorCode = _resp.ResponseCode;
|
|
_dbRes.Msg = _resp.Msg;
|
|
}
|
|
}
|
|
GetStatic.JsonResponse(_dbRes, this);
|
|
|
|
|
|
|
|
//_dbRes = _dao.CancelTxn(GetStatic.GetUser(), controlNo, cancelDate, cancelReasonText);
|
|
|
|
}
|
|
|
|
private void SearchTransactionDetails()
|
|
{
|
|
var controlNo = Request.Form["ControlNo"];
|
|
var includePartnerSearch = Request.Form["IncludePartnerSearch"];
|
|
DataRow dr = _dao.GetTransactionDetails(GetStatic.GetUser(), controlNo);
|
|
|
|
TxnResponse _resp = new TxnResponse();
|
|
if (dr == null)
|
|
{
|
|
_resp.ErrorCode = "1";
|
|
_resp.Msg = "Internal error occured!";
|
|
}
|
|
else
|
|
{
|
|
_resp.ErrorCode = dr["ErrorCode"].ToString();
|
|
_resp.Msg = dr["Msg"].ToString();
|
|
if (dr["ErrorCode"].ToString().Trim() == "0")
|
|
{
|
|
_resp.ControlNo = controlNo;
|
|
_resp.TranId = dr["ID"].ToString();
|
|
_resp.SenderName = dr["SENDERNAME"].ToString();
|
|
_resp.ReceiverName = dr["RECEIVERNAME"].ToString();
|
|
_resp.ReferralName = dr["REFERRAL_NAME"].ToString();
|
|
_resp.ReferralCode = dr["REFERRAL_CODE"].ToString();
|
|
_resp.CollectAmount = dr["CAMT"].ToString();
|
|
_resp.TransferAmount = dr["TAMT"].ToString();
|
|
_resp.PayoutAmount = dr["PAMT"].ToString();
|
|
_resp.PayoutCountry = dr["PCOUNTRY"].ToString();
|
|
_resp.CollMode = dr["COLLMODE"].ToString();
|
|
_resp.PayoutCurr = dr["PAYOUTCURR"].ToString();
|
|
_resp.Provider = dr["PSUPERAGENT"].ToString();
|
|
_resp.Status = dr["Status"].ToString();
|
|
_resp.cancelRequest = dr["cancelRequest"].ToString();
|
|
}
|
|
else if (dr["ErrorCode"].ToString().Trim() == "1")
|
|
{
|
|
var dbresult = _sl.ManageInvalidControlNoAttemptAjax(Page, GetStatic.GetUser(), "N");
|
|
_resp.ErrorCode = dbresult.ErrorCode;
|
|
_resp.Msg = dbresult.Msg;
|
|
GetStatic.JsonResponse(_resp, this);
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (_resp.ErrorCode == "0")
|
|
{
|
|
if (includePartnerSearch == "y")
|
|
{
|
|
|
|
ExchangeRateAPIService _service = new ExchangeRateAPIService();
|
|
string ProcessId = Guid.NewGuid().ToString().Replace("-", "") + ":" + _resp.Provider + ":cancelStatusCheck";
|
|
var _requestData = new
|
|
{
|
|
ProcessId = ProcessId.Substring(ProcessId.Length - 40, 40),
|
|
UserName = GetStatic.GetUser(),
|
|
ProviderId = _resp.Provider,
|
|
SessionId = _resp.ControlNo,
|
|
ControlNo = _resp.ControlNo,
|
|
PartnerPinNo = _resp.ControlNo
|
|
};
|
|
|
|
JsonResponse _syncStatusResponse = _service.GetTxnStatus(_requestData);
|
|
|
|
if (_syncStatusResponse.ResponseCode == "0")
|
|
{
|
|
_resp.ResponseXML = JsonConvert.SerializeObject(_syncStatusResponse);
|
|
var jsonData = JObject.Parse(_resp.ResponseXML);
|
|
_resp.StatusName = jsonData["Data"]["StatusName"].ToString();
|
|
if (_resp.StatusName.ToLower() == "cancel")
|
|
{
|
|
_resp.CancelReason = jsonData["Data"]["CancellationReason"].ToString();
|
|
}
|
|
|
|
_resp.InvoiceTxnStatus = JsonConvert.DeserializeObject<List<TxnStatusChangeList>>(jsonData["Data"]["TransactionInfo"]["InvoiceStatusTimeStamps"].ToString());
|
|
_resp.LatestStatus = _resp.InvoiceTxnStatus[_resp.InvoiceTxnStatus.Count - 1].FlagName;
|
|
_resp.LatestStatusId = _resp.InvoiceTxnStatus[_resp.InvoiceTxnStatus.Count - 1].FlagId;
|
|
_resp.LatestDate = GetStatic.ToDate(_resp.InvoiceTxnStatus[_resp.InvoiceTxnStatus.Count - 1].ChangeStatusDate);
|
|
}
|
|
else
|
|
{
|
|
_resp.ErrorCode = _syncStatusResponse.ResponseCode;
|
|
_resp.Msg = _syncStatusResponse.Msg;
|
|
}
|
|
}
|
|
}
|
|
|
|
GetStatic.JsonResponse(_resp, this);
|
|
}
|
|
protected string GetUrlRoot()
|
|
{
|
|
return GetStatic.GetUrlRoot();
|
|
}
|
|
|
|
public class TxnResponse : DbResult
|
|
{
|
|
public string ControlNo { get; set; }
|
|
public string TranId { get; set; }
|
|
public string SenderName { get; set; }
|
|
public string ReceiverName { get; set; }
|
|
public string ReferralName { get; set; }
|
|
public string ReferralCode { get; set; }
|
|
public string CollectAmount { get; set; }
|
|
public string TransferAmount { get; set; }
|
|
public string PayoutAmount { get; set; }
|
|
public string PayoutCountry { get; set; }
|
|
public string CollMode { get; set; }
|
|
public string PayoutCurr { get; set; }
|
|
public string Provider { get; set; }
|
|
public string StatusName { get; set; }
|
|
public string LatestStatus { get; set; }
|
|
public string LatestStatusId { get; set; }
|
|
public string LatestDate { get; set; }
|
|
public string CancelReason { get; set; }
|
|
public string ResponseXML { get; set; }
|
|
public string cancelRequest { get; set; }
|
|
public string Status { get; set; }
|
|
public List<TxnStatusChangeList> InvoiceTxnStatus { get; set; }
|
|
}
|
|
|
|
public class TxnStatusChangeList
|
|
{
|
|
public string FlagId { get; set; }
|
|
public string FlagName { get; set; }
|
|
public string ChangeStatusDate { get; set; }
|
|
}
|
|
}
|
|
}
|