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.
255 lines
11 KiB
255 lines
11 KiB
using Swift.DAL.net.inficare.kumari;
|
|
using Swift.DAL.SwiftDAL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace Swift.DAL.BL.Helper.ThirdParty.KumariBank
|
|
{
|
|
public class KumariBankDao : RemittanceDao
|
|
{
|
|
private readonly KumariBankApi kumariApi = new KumariBankApi();
|
|
public DbResult SelectByPinNo(string user, string branchId, string refNo, string subPartnerId, string flag = "")
|
|
{
|
|
var dr = new DbResult();
|
|
var drApi = kumariApi.SelectByPinNo(user, branchId, refNo, subPartnerId);
|
|
if (!string.IsNullOrEmpty(flag))
|
|
{
|
|
dr.SetError(drApi.CODE, drApi.MESSAGE, null);
|
|
dr.Extra = drApi.PAY_TOKEN_ID;
|
|
return dr;
|
|
}
|
|
else if (drApi.CODE != "0")
|
|
{
|
|
dr.SetError(drApi.CODE, drApi.MESSAGE, "");
|
|
dr.Extra = "0";
|
|
return dr;
|
|
}
|
|
dr = Save(user, branchId, subPartnerId, drApi);
|
|
dr.Extra = "2";
|
|
|
|
return dr;
|
|
}
|
|
|
|
public Return_TXNStatus GetStatus(string user, string refNo, string status)
|
|
{
|
|
var _result = new Return_TXNStatus();
|
|
var _unlock = new Return_TXNUnLock();
|
|
DbResult _db = SelectByPinNo(user, "", refNo, status);
|
|
string payTokenId = _db.Extra;
|
|
if (!string.IsNullOrEmpty(payTokenId))
|
|
{
|
|
_result = kumariApi.GetStatus(user, refNo, payTokenId);
|
|
//_unlock = TXNUnLock(user, refNo, payTokenId);
|
|
}
|
|
else
|
|
{
|
|
_result.CODE = _db.ErrorCode; //set the code of response as 1 to identify that there is error while getting PAY_TOKEN_ID
|
|
_result.MESSAGE = _db.Msg;
|
|
}
|
|
return _result;
|
|
}
|
|
|
|
public Return_TXNUnLock TXNUnLock(string user, string refNo, string payTokenId, string subPartnerId)
|
|
{
|
|
return kumariApi.TXNUnLock(user, refNo, payTokenId, subPartnerId);
|
|
}
|
|
|
|
public DbResult PayConfirm(
|
|
string user, string rowId, string refNo, string payTokenId, string sCountry, string pBranch
|
|
, string rIdType, string rIdNumber, string rIdPlaceOfIssue, string rContactNo, string relationType,
|
|
string relativeName, bool isCETxn, string customerId, string membershipId,
|
|
string rBankName, string rBankBranch, string rCheque, string rAccountNo, string topupMobileNo, string dob, string relationship,
|
|
string purposeOfRemittance, string idIssueDate, string idExpiryDate, string branchMapCode, string pAmount, string subPartnerId
|
|
)
|
|
{
|
|
|
|
var sql = "EXEC proc_kumariBankPayHistory";
|
|
sql += " @flag = 'readyToPay'";
|
|
sql += ",@user= " + FilterString(user);
|
|
sql += ",@rowId= " + FilterString(rowId);
|
|
sql += ",@pBranch = " + FilterString(pBranch);
|
|
sql += ",@rIdType = " + FilterString(rIdType);
|
|
sql += ",@rIdNumber = " + FilterString(rIdNumber);
|
|
sql += ",@rIdPlaceOfIssue = " + FilterString(rIdPlaceOfIssue);
|
|
sql += ",@rContactNo = " + FilterString(rContactNo);
|
|
sql += ",@relationType = " + FilterString(relationType);
|
|
sql += ",@relativeName = " + FilterString(relativeName);
|
|
sql += ",@customerId = " + FilterString(customerId);
|
|
sql += ",@membershipId = " + FilterString(membershipId);
|
|
sql += ",@rBankName = " + FilterString(rBankName);
|
|
sql += ",@rBankBranch = " + FilterString(rBankBranch);
|
|
sql += ",@rCheque = " + FilterString(rCheque);
|
|
sql += ",@rAccountNo = " + FilterString(rAccountNo);
|
|
sql += ",@topupMobileNo = " + FilterString(topupMobileNo);
|
|
|
|
sql += ",@rDob = " + FilterString(dob);
|
|
sql += ",@relationship = " + FilterString(relationship);
|
|
sql += ",@purpose = " + FilterString(purposeOfRemittance);
|
|
sql += ",@rIssuedDate = " + FilterString(idIssueDate);
|
|
sql += ",@rValidDate = " + FilterString(idExpiryDate);
|
|
|
|
var dr = ParseDbResult(sql);
|
|
if (dr.ErrorCode != "0")
|
|
{
|
|
return dr;
|
|
}
|
|
else
|
|
{
|
|
dr = kumariApi.PayConfirm(pBranch, payTokenId, refNo, rIdType, rIdNumber, rContactNo, rIdPlaceOfIssue, rBankName, rBankBranch, pAmount, subPartnerId);
|
|
}
|
|
if (dr.ErrorCode != "0")
|
|
{
|
|
sql = " EXEC proc_kumariBankPayHistory";
|
|
sql += " @flag = 'payError'";
|
|
sql += ", @user= " + FilterString(user);
|
|
sql += ", @rowId= " + FilterString(rowId);
|
|
sql += ", @payResponseCode = " + FilterString(dr.Extra);
|
|
sql += ", @payResponseMsg = " + FilterString(dr.Msg);
|
|
ParseDbResult(sql);
|
|
return dr;
|
|
}
|
|
|
|
sql = " EXEC proc_kumariBankPayHistory";
|
|
sql += " @flag = 'pay'";
|
|
sql += ", @user= " + FilterString(user);
|
|
sql += ", @rowId= " + FilterString(rowId);
|
|
sql += ", @sCountry= " + FilterString(sCountry);
|
|
sql += ", @payResponseCode = " + FilterString(dr.ErrorCode);
|
|
sql += ", @payResponseMsg = " + FilterString(dr.Msg);
|
|
sql += ", @payConfirmationNo = " + FilterString(dr.Extra);
|
|
sql += ", @pCommission = " + FilterString(dr.Extra2);
|
|
sql += ", @sBranchMapCOdeInt=" + FilterString(branchMapCode);
|
|
|
|
return ParseDbResult(sql);
|
|
}
|
|
|
|
private DbResult Save(string user, string branchId, string subPartnerId, Return_PAYCHECKDetail drApi)
|
|
{
|
|
var sql = "EXEC proc_kumariBankPayHistory";
|
|
sql += " @flag = 'i'";
|
|
sql += ",@user = " + FilterString(user);
|
|
sql += ",@subPartnerId = " + FilterString(subPartnerId);
|
|
sql += ",@pBranch = " + FilterString(branchId);
|
|
sql += ",@payTokenId =" + FilterString(drApi.PAY_TOKEN_ID);
|
|
sql += ",@refNo =" + FilterString(drApi.REFNO);
|
|
sql += ",@BenefName =" + FilterString(drApi.RECEIVER_NAME);
|
|
sql += ",@BenefMobile =" + FilterString(drApi.RECEIVER_MOBILE);
|
|
sql += ",@BenefAddress=" + FilterString(drApi.RECEIVER_ADDRESS);
|
|
sql += ",@benefIdType =" + FilterString(drApi.RECEIVER_ID_TYPE);
|
|
sql += ",@benefIdNo =" + FilterString(drApi.RECEIVER_ID_NUMBER);
|
|
sql += ",@benefCity =" + FilterString(drApi.RECEIVER_CITY);
|
|
sql += ",@benefCountry =" + FilterString(drApi.RECEIVER_COUNTRY);
|
|
sql += ",@senderName =" + FilterString(drApi.SENDER_NAME);
|
|
sql += ",@SenderAddress =" + FilterString(drApi.SENDER_ADDRESS);
|
|
sql += ",@SenderMobile =" + FilterString(drApi.SENDER_MOBILE);
|
|
sql += ",@senderCountry =" + FilterString(drApi.SENDER_COUNTRY);
|
|
sql += ",@senderCity =" + FilterString(drApi.SENDER_CITY);
|
|
sql += ",@remittanceEntryDt =" + FilterString(drApi.TXN_DATE);
|
|
sql += ",@Remarks =" + FilterString(drApi.MESSAGE);
|
|
sql += ",@PCurrency =" + FilterString(drApi.PAYOUT_CURRENCY);
|
|
sql += ",@payemntType=" + FilterString(drApi.PAYMENT_TYPE);
|
|
sql += ",@tranMode=" + FilterString(drApi.TRAN_MODE);
|
|
sql += ",@tranNo=" + FilterString(drApi.TRAN_NO);
|
|
sql += ",@bankName=" + FilterString(drApi.BANKNAME);
|
|
sql += ",@bankBranch=" + FilterString(drApi.BANKBRANCH);
|
|
sql += ",@bankAccNo=" + FilterString(drApi.BANKACCOUNTNO);
|
|
//sql += ",@RemittanceAuthorizedDt =" + FilterString(response.RemittanceAuthorizedDt);
|
|
//sql += ",@RemitType =" + FilterString(drApi.typ);
|
|
sql += ",@amount =" + FilterString(drApi.PAYOUT_AMT);
|
|
//sql += ",@LocalAmount =" + FilterString("0");
|
|
//sql += ",@DollarRate =" + FilterString("0");
|
|
//sql += ",@TPAgentID=" + FilterString(response.TPAgentID);
|
|
//sql += ",@TPAgentName =" + FilterString(response.TPAgentName);
|
|
|
|
return ParseDbResult(sql);
|
|
}
|
|
|
|
|
|
public ReportResult GetReconcileReport(string user, string fromDate, string toDate, string reportType)
|
|
{
|
|
var dtBody = new DataTable();
|
|
var dr = kumariApi.ReconcileReport(user, fromDate, toDate, reportType);
|
|
if (dr != null)
|
|
{
|
|
dtBody.Columns.Add("BRN No");
|
|
dtBody.Columns.Add("Status");
|
|
dtBody.Columns.Add("SendOn");
|
|
dtBody.Columns.Add("Sender");
|
|
dtBody.Columns.Add("Receiver");
|
|
dtBody.Columns.Add("Amount");
|
|
dtBody.Columns.Add("PaidOn");
|
|
|
|
|
|
int count = dr.Length;
|
|
if (count > 0)
|
|
{
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
var row = dtBody.NewRow();
|
|
row[0] = dr[i].PINNO;
|
|
row[1] = dr[i].STATUS;
|
|
row[2] = dr[i].TRANSACTION_DATE;
|
|
row[3] = dr[i].SENDER_NAME;
|
|
row[4] = dr[i].RECEIVER_NAME;
|
|
row[5] = dr[i].PAYOUT_AMT;
|
|
row[6] = dr[i].PAID_DATE;
|
|
dtBody.Rows.Add(row);
|
|
}
|
|
}
|
|
//int colCount = dr.GetLength(0);
|
|
//string rowCount = (!string.IsNullOrEmpty(dr.GetLength(1).ToString())) ? dr.GetLength(1).ToString() : "0";
|
|
|
|
//for (int i = 0; i < colCount; i++)
|
|
//{
|
|
|
|
//}
|
|
}
|
|
|
|
var dtResult = new DataTable();
|
|
dtResult.Columns.Add("ErrorCode");
|
|
dtResult.Columns.Add("Msg");
|
|
dtResult.Columns.Add("Id");
|
|
var row1 = dtResult.NewRow();
|
|
//row1[0] = dr[0].CODE;
|
|
row1[0] = "0";
|
|
row1[1] = dr[0].MESSAGE;
|
|
row1[2] = dr[0].CODE;
|
|
dtResult.Rows.Add(row1);
|
|
|
|
|
|
|
|
var dtFilter = new DataTable();
|
|
dtFilter.Columns.Add("Head");
|
|
dtFilter.Columns.Add("Value");
|
|
row1 = dtFilter.NewRow();
|
|
row1[0] = "From Date";
|
|
row1[1] = fromDate;
|
|
dtFilter.Rows.Add(row1);
|
|
row1 = dtFilter.NewRow();
|
|
row1[0] = "To Date";
|
|
row1[1] = toDate;
|
|
dtFilter.Rows.Add(row1);
|
|
row1 = dtFilter.NewRow();
|
|
row1[0] = "Report Type";
|
|
row1[1] = reportType;
|
|
dtFilter.Rows.Add(row1);
|
|
|
|
var dtTitle = new DataTable();
|
|
dtTitle.Columns.Add("Title");
|
|
row1 = dtTitle.NewRow();
|
|
row1[0] = "Reconcile Report Kumari Bank";
|
|
dtTitle.Rows.Add(row1);
|
|
|
|
var ds = new DataSet();
|
|
ds.Tables.Add(dtBody);
|
|
ds.Tables.Add(dtResult);
|
|
ds.Tables.Add(dtFilter);
|
|
ds.Tables.Add(dtTitle);
|
|
|
|
return ParseReportResult(ds);
|
|
}
|
|
}
|
|
}
|