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

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; }
}
}
}