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.
328 lines
15 KiB
328 lines
15 KiB
using JMETxnPushScheduler.API;
|
|
using JMETxnPushScheduler.Common;
|
|
using System;
|
|
using System.Data;
|
|
|
|
namespace JMETxnPushScheduler.DAO
|
|
{
|
|
public class TxnPushDAO : SwiftDao
|
|
{
|
|
public DataTable GetTxnDataForApprove()
|
|
{
|
|
string sql = "EXEC PROC_TP_TXN_PUSH @FLAG = 'GET-LIST'";
|
|
|
|
return ExecuteDataTable(sql);
|
|
}
|
|
public DataTable GetTxnDataForRelease()
|
|
{
|
|
string sql = "EXEC PROC_TP_TXN_PUSH @FLAG = 'GET-RELEASE-LIST'";
|
|
|
|
return ExecuteDataTable(sql);
|
|
}
|
|
|
|
public void UpdateTxnPost(string id, string pCurrCostRate = null, string controlNo2 = null )
|
|
{
|
|
string sql = "EXEC PROC_TP_TXN_PUSH @FLAG = 'UPDATE-POST'";
|
|
sql += ", @TRAN_ID = " + FilterString(id);
|
|
sql += ", @control2 = " + FilterString(controlNo2);
|
|
sql += ", @pCurrCostRate = " + FilterString(pCurrCostRate);
|
|
|
|
ExecuteDataTable(sql);
|
|
}
|
|
|
|
public void UpdateTxnPostRelease(string id,string controlNo2 = null)
|
|
{
|
|
string sql = "EXEC PROC_TP_TXN_PUSH @FLAG = 'UPDATE-POST_RELEASE'";
|
|
sql += ", @TRAN_ID = " + FilterString(id);
|
|
ExecuteDataTable(sql);
|
|
}
|
|
//sql += ", @@control2 = " + FilterString(controlNo2);
|
|
ExecuteDataTable(sql);
|
|
}
|
|
public void UpdateTxnInstantPaid(string id)
|
|
{
|
|
string sql = "EXEC PROC_TP_TXN_PUSH @FLAG = 'INSTANT-PAID'";
|
|
sql += ", @TRAN_ID = " + FilterString(id);
|
|
|
|
ExecuteDataTable(sql);
|
|
}
|
|
|
|
public CommonResponse GetTxnApproveData(string user, string id)
|
|
{
|
|
var sql = "EXEC proc_ApproveHoldedTXN @flag = 'get-info-for-compliance'";
|
|
sql += ", @user = " + FilterString(user);
|
|
sql += ", @id = " + FilterString(id);
|
|
|
|
return ParseDbResultWithSql(sql);
|
|
}
|
|
|
|
public TxnDetails GetTxnDetails(string tranId)
|
|
{
|
|
var sql = "EXEC GetUserInfo @flag='txn-details' ";
|
|
sql += ", @tranId = " + FilterString(tranId);
|
|
var row = ExecuteDataRow(sql);
|
|
|
|
TxnDetails userDetails = new TxnDetails();
|
|
if (row != null)
|
|
{
|
|
userDetails.senderName = row["senderName"].ToString();
|
|
userDetails.PayoutCountry = row["pcountry"].ToString();
|
|
userDetails.controlNo = row["controlNo"].ToString();
|
|
userDetails.BeneficiaryName = row["receiverName"].ToString();
|
|
userDetails.paymentMethod = row["paymentMethod"].ToString();
|
|
userDetails.BankName = row["pBankName"].ToString();
|
|
userDetails.BankBranch = row["pBankBranchName"].ToString();
|
|
userDetails.email = row["email"].ToString();
|
|
userDetails.AccountNo = row["accountNo"].ToString();
|
|
userDetails.PayoutAmount = row["pAmt"].ToString();
|
|
userDetails.TransferAmount = row["tamt"].ToString();
|
|
userDetails.TotalAmount = row["camt"].ToString();
|
|
userDetails.serviceCharge = row["serviceCharge"].ToString();
|
|
// userDetails.rewardPoints = row["rewardPoints"].ToString();
|
|
userDetails.TranDate = row["createdDate"].ToString();
|
|
userDetails.payStatus = row["payStatus"].ToString();
|
|
}
|
|
|
|
return userDetails;
|
|
}
|
|
|
|
private T ParseDbResult<T>(string sql)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public void SyncTxnAsComment(string provider, string tranId, string ControlNo, string status, string msg)
|
|
{
|
|
string sql = "EXEC PROC_TP_TXN_PUSH @flag='add-api-comment'";
|
|
sql += ",@PROVIDER = " + FilterString(provider);
|
|
sql += ",@TRAN_ID = " + FilterString(tranId);
|
|
sql += ",@message = " + FilterString(msg);
|
|
sql += ",@status = " + FilterString(status);
|
|
sql += ",@user = " + FilterString("TxnPushJob");
|
|
ExecuteDataTable(sql);
|
|
}
|
|
|
|
public JsonResponse GetHoldedTxnForApprovedByAdmin(string user, string id, string sessionId, string callFro = null)
|
|
{
|
|
var sql = "EXEC proc_GetHoldedTxnForApprovedByAdminCompliance";
|
|
sql += " @user = " + FilterString(user);
|
|
sql += ", @tranId = " + FilterString(id);
|
|
sql += ", @callFro = " + FilterString(callFro);
|
|
|
|
var drDb = ExecuteDataRow(sql);
|
|
if (drDb.Table.Columns.Contains("ErrorCode"))
|
|
{
|
|
return new JsonResponse()
|
|
{
|
|
ResponseCode = Convert.ToString(drDb["ErrorCode"]),
|
|
Msg = Convert.ToString(drDb["msg"])
|
|
};
|
|
}
|
|
string ProcessId = Guid.NewGuid().ToString().Replace("-", "") + ":" + Convert.ToString(drDb["processId"]) + ":sendTxn";
|
|
|
|
SendTransactionRequest sendTxnRequest = new SendTransactionRequest();
|
|
if (drDb.Table.Columns.Contains("exRateConfirmId"))
|
|
{
|
|
sendTxnRequest.ExRateConfirmId = drDb["exRateConfirmId"].ToString();
|
|
}
|
|
|
|
sendTxnRequest.RequestedBy = "scheduler";
|
|
sendTxnRequest.UserName = user;
|
|
sendTxnRequest.ProcessId = ProcessId.Substring(ProcessId.Length - 40, 40);
|
|
sendTxnRequest.ProviderId = Convert.ToString(drDb["partnerId"]);
|
|
sendTxnRequest.TranId = Convert.ToInt32(drDb["tranId"]);
|
|
if (drDb.Table.Columns.Contains("IsRealtime"))
|
|
{
|
|
sendTxnRequest.IsRealtime = (drDb["IsRealtime"].ToString() == "Y" ? true : false);
|
|
}
|
|
else
|
|
{
|
|
sendTxnRequest.IsRealtime = false;
|
|
}
|
|
|
|
#region senderInformation
|
|
|
|
TxnSender txnSender = new TxnSender();
|
|
txnSender.CustomerId = Convert.ToInt32(drDb["customerId"]);
|
|
txnSender.SFirstName = Convert.ToString(drDb["sfirstName"]);
|
|
txnSender.SMiddleName = Convert.ToString(drDb["smiddleName"]);
|
|
txnSender.SLastName1 = Convert.ToString(drDb["slastName1"]);
|
|
txnSender.SLastName2 = Convert.ToString(drDb["slastName2"]);
|
|
txnSender.SFullName = Convert.ToString(drDb["sfullName"]);
|
|
txnSender.SIdIssueDate = Convert.ToString(drDb["sissuedDate"]);
|
|
txnSender.SIdExpiryDate = Convert.ToString(drDb["svalidDate"]);
|
|
txnSender.SOccuptionId = Convert.ToInt32(drDb["occupationId"]);
|
|
txnSender.SOccuptionName = Convert.ToString(drDb["occupationName"]);
|
|
txnSender.SBirthDate = Convert.ToString(drDb["sdob"]);
|
|
txnSender.SEmail = Convert.ToString(drDb["semail"]);
|
|
txnSender.SCityId = Convert.ToString(drDb["scity"]);
|
|
if (drDb.Table.Columns.Contains("sstate"))
|
|
{
|
|
txnSender.SState = Convert.ToString(drDb["sstate"]);
|
|
}
|
|
if (drDb.Table.Columns.Contains("formOfPaymentId"))
|
|
{
|
|
txnSender.FormOfPaymentId = Convert.ToString(drDb["formOfPaymentId"]);
|
|
}
|
|
txnSender.SZipCode = Convert.ToString(drDb["szipCode"]);
|
|
txnSender.SNativeCountry = Convert.ToString(drDb["snativeCountry"]);
|
|
txnSender.SIdType = Convert.ToString(drDb["sidType"]);
|
|
txnSender.SIdNo = Convert.ToString(drDb["sidNumber"]);
|
|
txnSender.SMobile = Convert.ToString(drDb["smobile"]);
|
|
txnSender.SAddress = Convert.ToString(drDb["saddress"]);
|
|
txnSender.SIpAddress = Convert.ToString(drDb["ipAddress"]);
|
|
txnSender.SCountryId = Convert.ToInt32(drDb["countryId"]);
|
|
txnSender.SCountryName = Convert.ToString(drDb["sCountry"]);
|
|
if (drDb.Table.Columns.Contains("IsIndividual"))
|
|
{
|
|
txnSender.IsIndividual = Convert.ToBoolean(drDb["IsIndividual"]);
|
|
}
|
|
txnSender.SourceOfFund = Convert.ToString(drDb["sourceOfFund"]);
|
|
|
|
sendTxnRequest.Sender = txnSender;
|
|
|
|
#endregion senderInformation
|
|
|
|
#region receiverInformation
|
|
|
|
TxnReceiver txnReceiver = new TxnReceiver();
|
|
txnReceiver.ReceiverId = Convert.ToString(drDb["receiverId"]);
|
|
txnReceiver.RFullName = Convert.ToString(drDb["rfullName"]);
|
|
txnReceiver.RFirstName = Convert.ToString(drDb["rfirstName"]);
|
|
txnReceiver.RMiddleName = Convert.ToString(drDb["rmiddleName"]);
|
|
txnReceiver.RLastName = Convert.ToString(drDb["rlastName1"]);
|
|
txnReceiver.RIdType = Convert.ToString(drDb["ridType"]);
|
|
txnReceiver.RIdNo = Convert.ToString(drDb["ridNumber"]);
|
|
txnReceiver.RIdValidDate = Convert.ToString(drDb["rvalidDate"]);
|
|
txnReceiver.RDob = Convert.ToString(drDb["rdob"]);
|
|
txnReceiver.RTel = Convert.ToString(drDb["rhomePhone"]);
|
|
txnReceiver.RMobile = Convert.ToString(drDb["rmobile"]);
|
|
txnReceiver.RNativeCountry = Convert.ToString(drDb["rnativeCountry"]);
|
|
txnReceiver.RCity = Convert.ToString(drDb["rcity"]);
|
|
txnReceiver.RAdd1 = Convert.ToString(drDb["raddress"]);
|
|
txnReceiver.REmail = Convert.ToString(drDb["remail"]);
|
|
txnReceiver.RAccountNo = Convert.ToString(drDb["raccountNo"]);
|
|
txnReceiver.RCountry = Convert.ToString(drDb["rcountry"]);
|
|
txnReceiver.RCityCode = Convert.ToString(drDb["rcityCode"]);
|
|
txnReceiver.RelWithSenderName = Convert.ToString(drDb["relationName"]);
|
|
txnReceiver.RStateId = Convert.ToString(drDb["rstate"]);
|
|
txnReceiver.RLocation = Convert.ToString(drDb["pBankLocation"]);
|
|
txnReceiver.UnitaryBankAccountNo = Convert.ToString(drDb["bankAccountNo"]);
|
|
txnReceiver.RelWithSenderName = drDb["relationName"].ToString();
|
|
if (drDb.Table.Columns.Contains("rTownCode"))
|
|
{
|
|
txnReceiver.RLocation = Convert.ToString(drDb["rTownCode"]);
|
|
}
|
|
if (drDb.Table.Columns.Contains("payerId"))
|
|
{
|
|
txnReceiver.RLocationName = Convert.ToString(drDb["payerId"]);
|
|
}
|
|
|
|
|
|
sendTxnRequest.Receiver = txnReceiver;
|
|
|
|
#endregion receiverInformation
|
|
|
|
#region txnTransaction
|
|
|
|
TxnTransaction transaction = new TxnTransaction();
|
|
|
|
transaction.PCurr = Convert.ToString(drDb["payoutCurr"]);
|
|
transaction.CollCurr = Convert.ToString(drDb["collCurr"]);
|
|
transaction.CAmt = Convert.ToDecimal(drDb["cAmt"]);
|
|
transaction.PAmt = Convert.ToDecimal(drDb["pAmt"]);
|
|
transaction.TAmt = Convert.ToDecimal(drDb["tAmt"]);
|
|
transaction.ServiceCharge = Convert.ToDecimal(drDb["serviceCharge"]);
|
|
transaction.PComm = Convert.ToString(drDb["pAgentComm"]);
|
|
transaction.PaymentType = Convert.ToString(drDb["paymentMethod"]);
|
|
transaction.JMEControlNo = Convert.ToString(drDb["controlNo"]);
|
|
transaction.PurposeOfRemittanceName = Convert.ToString(drDb["purposeOfRemit"]);
|
|
|
|
if (drDb.Table.Columns.Contains("txnDate"))
|
|
{
|
|
transaction.TxnDate = Convert.ToString(drDb["txnDate"]);
|
|
}
|
|
if (drDb.Table.Columns.Contains("ssnno"))
|
|
{
|
|
transaction.TpRefNo = Convert.ToString(drDb["ssnno"]);
|
|
}
|
|
if (drDb.Table.Columns.Contains("exRate"))
|
|
{
|
|
transaction.ExRate = Convert.ToDecimal(drDb["exRate"]);
|
|
}
|
|
if (drDb.Table.Columns.Contains("Rate"))
|
|
{
|
|
transaction.Rate = Convert.ToDecimal(drDb["Rate"]);
|
|
}
|
|
if (drDb.Table.Columns.Contains("SettlementDollarRate"))
|
|
{
|
|
transaction.SettlementDollarRate = Convert.ToDecimal(drDb["SettlementDollarRate"]);
|
|
}
|
|
transaction.PayoutMsg = Convert.ToString(drDb["remarks"]);
|
|
|
|
sendTxnRequest.Transaction = transaction;
|
|
|
|
#endregion txnTransaction
|
|
|
|
#region agentInformation
|
|
|
|
TxnAgent txnAgent = new TxnAgent();
|
|
txnAgent.PBranchId = Convert.ToString(drDb["branchId"]);
|
|
txnAgent.PBranchName = Convert.ToString(drDb["branchName"]);
|
|
txnAgent.PBranchCity = Convert.ToString(drDb["city"]);
|
|
txnAgent.PAgentId = Convert.ToInt32(drDb["pAgent"] == "" ? null : drDb["pAgent"]);
|
|
txnAgent.PAgentName = Convert.ToString(drDb["pAgentName"]);
|
|
txnAgent.PBankType = Convert.ToString(drDb["pBankType"]);
|
|
txnAgent.PBankId = Convert.ToString(drDb["pBank"]);
|
|
txnAgent.PBankName = Convert.ToString(drDb["pBankName"]);
|
|
txnAgent.SAgentId = Convert.ToInt32(drDb["sAgent"]);
|
|
txnAgent.SAgentName = Convert.ToString(drDb["sAgentName"]);
|
|
txnAgent.SSuperAgentId = Convert.ToInt32(drDb["sSuperAgent"]);
|
|
if (drDb.Table.Columns.Contains("pBankBranchId"))
|
|
{
|
|
txnAgent.PBankBranchId = Convert.ToString(drDb["pBankBranchId"]);
|
|
}
|
|
txnAgent.SBranchId = Convert.ToInt32(drDb["sBranch"]);
|
|
if (drDb.Table.Columns.Contains("pBankBranchName"))
|
|
{
|
|
txnAgent.PBankBranchName = Convert.ToString(drDb["pBankBranchName"]);
|
|
}
|
|
|
|
sendTxnRequest.Agent = txnAgent;
|
|
|
|
#endregion agentInformation
|
|
if (drDb.Table.Columns.Contains("isFirstTran"))
|
|
{
|
|
sendTxnRequest.isTxnAlreadyCreated = Convert.ToString(drDb["isFirstTran"]) == "Y" ? true : false;
|
|
}
|
|
else
|
|
{
|
|
sendTxnRequest.isTxnAlreadyCreated = true;
|
|
}
|
|
|
|
sendTxnRequest.IsRealtime = Convert.ToBoolean(drDb["IsRealtime"]);
|
|
sendTxnRequest.SessionId = Convert.ToString(Guid.NewGuid()).Replace("-", "");
|
|
if (string.IsNullOrEmpty(sendTxnRequest.SessionId) || string.IsNullOrWhiteSpace(sendTxnRequest.SessionId))
|
|
sendTxnRequest.SessionId = sessionId;
|
|
|
|
if (drDb.Table.Columns.Contains("IsAccValSupported") && drDb["IsAccValSupported"] != null)
|
|
{
|
|
sendTxnRequest.IsAccValSupported = drDb["IsAccValSupported"].ToString().Equals("1") ? true : false;
|
|
}
|
|
else
|
|
sendTxnRequest.IsAccValSupported = false;
|
|
|
|
|
|
SendTransactionServices _tpSend = new SendTransactionServices();
|
|
var result = _tpSend.SendTransaction(sendTxnRequest);
|
|
sql = "";
|
|
sql = "EXEC proc_tran_api_call_history ";
|
|
sql += " @TRAN_ID =" + FilterString(sendTxnRequest.TranId.ToString());
|
|
sql += ", @REQUESTED_BY =" + FilterString(user);
|
|
sql += ", @RESPONSE_CODE =" + FilterString(result.ResponseCode);
|
|
sql += ", @RESPONSE_MSG =" + FilterString(result.Msg);
|
|
GetSingleResult(sql);
|
|
return result;
|
|
}
|
|
}
|
|
}
|