Browse Source

Merge branch 'feature/19315_Customer-Registration-new' of http://202.166.220.79:3000/IME-LONDON/CustomerPortal into feature/19315_Customer-Registration-new

feature/19315_Customer-Registration-new
shakun 11 months ago
parent
commit
81154fecd5
  1. 1
      CustomerOnlineV2/CustomerOnlineV2.Business/Business/TransactionBusiness/ITransactionBusiness.cs
  2. 6
      CustomerOnlineV2/CustomerOnlineV2.Business/Business/TransactionBusiness/TransactionBusiness.cs
  3. 17
      CustomerOnlineV2/CustomerOnlineV2.Common/Models/HomeModel/HomeModel.cs
  4. 1
      CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/TransactionRepository/ITransactionRepository.cs
  5. 63
      CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/TransactionRepository/TransactionRepository.cs
  6. 34
      CustomerOnlineV2/CustomerOnlineV2/Controllers/TransactionReportController.cs
  7. 2
      CustomerOnlineV2/CustomerOnlineV2/Views/Home/Index.cshtml
  8. 291
      CustomerOnlineV2/CustomerOnlineV2/Views/TransactionReport/TranReport.cshtml

1
CustomerOnlineV2/CustomerOnlineV2.Business/Business/TransactionBusiness/ITransactionBusiness.cs

@ -14,5 +14,6 @@ namespace CustomerOnlineV2.Business.Business.TransactionBusiness
Task<SendMoneySuccessModel> SaveTranData(TrustPaymentRequest tranData, LoginResponse loginDetails);
Task<SendMoneySuccessModel> UpdateTranData(TrustPaymentRequest tranData, LoginResponse loginDetails);
Task<CustomerTransactionList> GetTranData(LoginResponse loginDetails);
Task<CustomerTransactionList> GetTransactionReportList(LoginResponse loginDetails, CustomerTransaction model);
}
}

6
CustomerOnlineV2/CustomerOnlineV2.Business/Business/TransactionBusiness/TransactionBusiness.cs

@ -340,5 +340,11 @@ namespace CustomerOnlineV2.Business.Business.TransactionBusiness
{
return await _transactionRepo.GetTranData(loginDetails);
}
public async Task<CustomerTransactionList> GetTransactionReportList(LoginResponse loginDetails , CustomerTransaction model)
{
return await _transactionRepo.GetTransactionReportList(loginDetails, model);
}
}
}

17
CustomerOnlineV2/CustomerOnlineV2.Common/Models/HomeModel/HomeModel.cs

@ -1,4 +1,6 @@
namespace CustomerOnlineV2.Common.Models.HomeModel
using System.ComponentModel;
namespace CustomerOnlineV2.Common.Models.HomeModel
{
public class HomeModel
{
@ -38,6 +40,17 @@
public class CustomerTransaction
{
public string? Id { get; set; }
public string? TranId { get; set; }
public string? ControlNo { get; set; }
public string? CollAmt { get; set; }
public string? PayoutAmt { get; set; }
public string? PCurr { get; set; }
public string? CollCurr { get; set; }
public string? PayStatus { get; set; }
public string? PayoutMode { get; set; }
public string? SendDate { get; set; }
public string? PaidDate { get; set; }
public string? DisplayActions { get; set; }
public string? TransactionMonth { get; set; }
public string? TransactionDay { get; set; }
public string? TransactionYear { get; set; }
@ -53,6 +66,8 @@
public string? receiverName { get; set;}
public string? Rate { get; set; }
public string? recAccountNum { get; set;}
public string? FromDate { get; set; }
public string? ToDate { get; set; }
}
public class CommonDropDownModel

1
CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/TransactionRepository/ITransactionRepository.cs

@ -12,5 +12,6 @@ namespace CustomerOnlineV2.Repository.Repository.TransactionRepository
Task<SendMoneySuccessModel> SaveTranData(TrustPaymentRequest tranData, LoginResponse loginDetails);
Task<SendMoneySuccessModel> UpdateTranData(TrustPaymentRequest tranData, LoginResponse loginDetails);
Task<CustomerTransactionList> GetTranData(LoginResponse loginDetails);
Task<CustomerTransactionList> GetTransactionReportList(LoginResponse loginDetails, CustomerTransaction model);
}
}

63
CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/TransactionRepository/TransactionRepository.cs

@ -6,6 +6,7 @@ using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using CustomerOnlineV2.Common.Models.HomeModel;
using System.Data;
using CustomerOnlineV2.Common.Helper;
namespace CustomerOnlineV2.Repository.Repository.TransactionRepository
{
@ -321,6 +322,68 @@ namespace CustomerOnlineV2.Repository.Repository.TransactionRepository
}
return await Task.FromResult(_response);
}
public async Task<CustomerTransactionList> GetTransactionReportList(LoginResponse loginDetails,CustomerTransaction model)
{
CustomerTransactionList _response = new CustomerTransactionList();
try
{
var sql = "Exec mobile_proc_TranHistory @flag='tran-history'";
sql += ", @customerId=" + _connHelper.FilterString(loginDetails.UserId);
sql += ", @fromDate=" + _connHelper.FilterString(model.FromDate);
sql += ", @toDate=" + _connHelper.FilterString(model.ToDate);
_logger.LogDebug("TRANSACTIONREPOSITORY | GETTRANSACTIONREPORTLIST | SQL | " + sql);
var dt = _connHelper.ExecuteDataTable(sql);
if (dt == null || dt.Rows.Count <= 0)
{
_response.ResponseCode = ResponseHelper.NORECORD;
_response.ResponseMessage = "No Transaction History Found!";
_logger.LogError("TRANSACTIONREPOSITORY | GETTRANSACTIONREPORTLIST | DB RESPONSE | " + JsonConvert.SerializeObject(_response));
}
else
{
_response.ResponseCode = Convert.ToInt16(dt.Rows[0]["errorCode"]);
//_response.ResponseMessage = Convert.ToString(dt.Rows[0]["msg"]);
List<CustomerTransaction> obj = new List<CustomerTransaction>();
foreach (DataRow item in dt.Rows)
{
obj.Add(new CustomerTransaction
{
Id = Convert.ToString(item["userId"]),
//User = Convert.ToString(item["userId"]),
TranId = Convert.ToString(item["tranId"]),
ControlNo = Convert.ToString(item["controlNo"]),
CollAmt = Convert.ToString(item["collAmount"]),
PayoutAmt = Utilities.ShowDecimal(Convert.ToString(item["payoutAmt"])),
PCurr = Convert.ToString(item["pCurr"]),
CollCurr = Convert.ToString(item["collCurr"]),
PayStatus = Convert.ToString(item["payStatus"]),
PayoutMode = Convert.ToString(item["payoutMode"]),
SendDate = Convert.ToString(item["sendDate"]),
PaidDate = Convert.ToString(item["paidDate"]),
DisplayActions = item["DisplayActions"].ToString()
});
}
_response.CustomerTransaction = obj;
}
}
catch (Exception ex)
{
_response.ResponseCode = ResponseHelper.EXCEPTION;
_response.ResponseMessage = "Exception occured: " + ex.Message;
_logger.LogError("TRANSACTIONREPOSITORY | GETTRANSACTIONREPORTLIST | EXCEPTION | " + JsonConvert.SerializeObject(_response));
}
return await Task.FromResult(_response);
}
}
}

34
CustomerOnlineV2/CustomerOnlineV2/Controllers/TransactionReportController.cs

@ -0,0 +1,34 @@
using CustomerOnlineV2.Authorization;
using CustomerOnlineV2.Business.Business.TransactionBusiness;
using CustomerOnlineV2.Common.Models.HomeModel;
using Microsoft.AspNetCore.Mvc;
using CustomerOnlineV2.Common.Helper;
namespace CustomerOnlineV2.Controllers
{
public class TransactionReportController : Controller
{
private readonly ILogger<TransactionController> _logger;
private readonly ITransactionBusiness _transactionBusiness;
public TransactionReportController(ILogger<TransactionController> logger, ITransactionBusiness transactionBusiness)
{
_logger = logger;
_transactionBusiness = transactionBusiness;
}
public IActionResult TranReport()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
[Authorization("GetTransactionReportList")]
public async Task<CustomerTransactionList> GetTransactionReportList(CustomerTransaction model)
{
var loginDetails = HttpContext.GetLoginDetails();
return await _transactionBusiness.GetTransactionReportList(loginDetails, model);
}
}
}

2
CustomerOnlineV2/CustomerOnlineV2/Views/Home/Index.cshtml

@ -81,7 +81,7 @@
*@
<div class="col-sm-6 col-md-3">
<div class="border rounded text-center">
<a href="#">
<a href="/TransactionReport/TranReport">
<span class="d-block text-10 text-light mt-1 mb-1"><img src="images/menu8.jpg" height="80"></span>
<p class="text-2 text-strong">View Reports</p>
</a>

291
CustomerOnlineV2/CustomerOnlineV2/Views/TransactionReport/TranReport.cshtml

@ -0,0 +1,291 @@
@using CustomerOnlineV2.Common.Helper
@{
Layout = "_Layout2";
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, shrink-to-fit=no" />
</head>
<body>
<!-- Preloader -->
<div id="preloader">
<div data-loader="dual-ring"></div>
</div>
<!-- Preloader End -->
<!-- Document Wrapper -->
<div id="main-wrapper">
<!-- Content -->
<div id="content">
<!-- Who we are -->
<section class="section section-form-bg">
<div class="container">
<!-- My Receiver Activity
=============================== -->
<div class="bg-white rounded py-4 mb-4">
<div class="text-left">
<h3 class="text-5 fw-400 d-flex align-items-center px-4 mb-4">Transactions Report</h3>
<form >
<label for="fromDate">From Date:</label>
<input type="date" id="fromDate" name="fromDate">
<label for="toDate">To Date:</label>
<input type="date" id="toDate" name="toDate">
<button type="submit" onclick="GetTransactionList()">Search</button>
</form>
<i class="fa-regular fa-print iziToast-color-green"></i>
</div>
<br />
<!-- Title
=============================== -->
<div class="transaction-title py-2 px-4">
<div class="row fw-00">
<div class="col-1 col-sm-1">S.N</div>
<div class="col-2 col-sm-2">Transaction Date</div>
<div class="col-3 col-sm-2">Receiver Name</div>
<div class="col-4 col-sm-2">Contact No</div>
<div class="col-5 col-sm-1">Collected Amount</div>
<div class="col-6 col-sm-1">Total Sent Amount</div>
<div class="col-7 col-sm-1">Delivery Method</div>
<div class="col-10 col-sm-1 text-end">Action</div>
@* <div class="col-7 col-sm-1 text-end">Total Sent Amount</div> *@
</div>
</div>
<!-- Title End -->
<!-- My Receiver List
=============================== -->
<div class="transaction-list">
<div class="transaction-item px-4 py-2" data-bs-toggle="modal" data-bs-target="#transaction-detail">
<div class="row align-items-center flex-row">
<div class="col-1 col-sm-1" id="sn"></div>
<div class="col-2 col-sm-2" id="paidDate"></div>
<div class="col-3 col-sm-2" id="Rname"></div>
<div class="col-4 col-sm-2" id="controlNo"></div>
<div class="col-5 col-sm-1" id="collAmt"></div>
<div class="col-6 col-sm-1" id="PayoutAmt"></div>
<div class="col-7 col-sm-1" id="PayoutMode"></div>
<div class="col-8 col-sm-1"> <span class="d-block text-1" id="tranId"><a href="/transaction/receipt"><i class="fa fa-eye" style="font-size:30px"></i></a></span></div>
@* <div class="col-11 col-sm-1" id="SendDate"></div> *@
@* <div class="col-13 col-sm-1" id="recCountry"></div> *@
@* <div class="col-4 col-sm-2 text-end" id="tranType"> <span class="text-nowrap"></span></div> *@
</div>
</div>
</div>
<!-- My Receiver List End -->
</div>
</section>
<!-- Who we are end -->
</div>
<!-- Content end -->
<!-- Footer -->
<footer id="footer" class="footer-web">
<div class="container">
<div class="text-center">
<div class="row">
<div class="mx-auto">
<div class="text-center text-white">
<p class="text-center mb-3 text-1">
IME London is a product of Subhida UK Limited, Pentax House,South Hill Avenue, South Harrow, London, H2A 0D
Company Registration No. 06432399 Subhida UK Ltd is authorized and regulated by the Financial Conduct
Authority (FCA) <br> under the Payment Service Regulations 2017. FCA Registration No. 576127 HMRC Registration No. XYML000000119350
<p class="text-center my-3 text-1"></p>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 mx-auto">
<div class="text-center text-white">
<p>© IME London, 2023</p>
</div>
</div>
</div>
</div>
</div>
</footer>
<!-- Footer end -->
</div>
<!-- Document Wrapper end -->
<!-- Back to Top
============================================= -->
<a id="back-to-top" data-bs-toggle="tooltip" title="Back to Top" href="javascript:void(0)"><i class="fa fa-chevron-up"></i></a>
<!-- Video Modal
============================================= -->
<div class="modal fade" id="videoModal" tabindex="-1" role="dialog">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<div class="modal-content bg-transparent border-0">
<button type="button" class="btn-close btn-close-white ms-auto me-n3" data-bs-dismiss="modal" aria-label="Close"></button>
<div class="modal-body p-0">
<div class="ratio ratio-16x9">
<iframe id="video" src="" allow="autoplay;" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
</div>
<!-- Video Modal end -->
<!-- Script -->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="vendor/bootstrap-select/js/bootstrap-select.min.js"></script>
<script src="vendor/owl.carousel/owl.carousel.min.js"></script>
<!-- custom -->
</body>
</html>
@section scripts{
<script>
$(document).ready(function () {
GetTransactionList();
});
function GetTransactionList() {
debugger;
$.ajax(
{
type: 'POST',
url: '/TransactionReport/GetTransactionReportList',
data: {
FromDate: $("#fromDate").val(),
ToDate: $("#toDate").val(),
},
processData: true,
headers: {
"RequestVerificationToken":
$('input[name="__RequestVerificationToken"]').val()
},
async: false,
success: function (response) {
if (response.responseCode != 0) {
ShowAlertMessage(response.responseCode, response.responseMessage);
}
PopulateTransactionReportData(response);
},
error: function () {
return null;
}
});
}
function PopulateTransactionReportData(response) {
debugger;
var result = response.customerTransaction;
//console.log('Received response:', result);
if (response.responseCode == 0) {
var transactionList = $(".transaction-list");
transactionList.empty();
let i = 1;
$.each(result, function (i, d) {
var row = `
<div class="transaction-item px-4 py-2" data-bs-toggle="modal" data-bs-target="#transaction-detail">
<div class="row align-items-center flex-row">
<div class="col-1 col-sm-1" id="paidDate">${i+1}</div>
<div class="col-2 col-sm-2" id="paidDate">${d.sendDate}</div>
<div class="col-3 col-sm-2" id="Rname">${d.id}</div>
<div class="col-4 col-sm-2" id="controlNo">${d.controlNo}</div>
<div class="col-5 col-sm-1" id="collAmt">${d.collAmt}</div>
<div class="col-6 col-sm-1" id="PayoutAmt">${d.payoutAmt}</div>
<div class="col-7 col-sm-1" id="PayoutMode">${d.payoutMode}</div>
<div class="col-8 col-sm-1" id="tranId"><a href="/transaction/receipt"><i class="fa fa-eye" style="font-size:30px"></i></a></div>
</div>
</div>`;
transactionList.append(row);
});
}
}
// function PopulateTransactionReportData(response) {
// debugger;
// var result = response.customerTransaction;
// if (response.responseCode == 0) {
// let row = '';
// $.each(result, function (i, d) {
// // row += '<div class="transaction-item px-4 py-3" data-bs-toggle="modal" data-bs-target="#receiver-detail" onclick="getReceiverDetails(' + d['id'] + ')">';
// // row += '<div class="row align-items-center flex-row">';
// // row += '<div class="col-1 col-sm-4"><span class="d-block text-1">' + d['name'] + '</span> <span class="text-muted">' + d['mobile'] + '</span></div>';
// // row += '<div class="col-2 col-sm-2"><span class="d-block text-1"><a href="/Transaction/SendMoney">Send Transaction</a></span></div>';
// // row += '<div class="col-3 col-sm-2 d-none d-sm-block text-center text-1">' + d['country'] + '</div>';
// // row += '<div class="col-4 col-sm-2 text-end text-1"> <span class="text-nowrap">' + d['transactionType'] + '</span></div>';
// // row += '<div class="col-5 col-sm-2"><button class="btn btn-primary" onclick="editReceiver(' + d['id'] + ')">Edit</button></div>';
// // row += '</div>';
// // row += '</div>';
// row += '<div class="transaction-item px-4 py-3" data-bs-toggle="modal">';
// // row += '<div class="row align-items-center flex-row">';
// //row += '<div class="col-2 col-sm-4">';
// row += d['sendDate'];
// row += '</div>';
// row += d['id'];
// row += '</div>';
// row += d['controlNo'];
// row += '</div>';
// row += d['collAmt'];
// row += '</div>';
// row += d['PayoutAmt'];
// row += '</div>';
// row += d['PCurr'];
// row += '</div>';
// row += d['CollCurr'];
// row += '</div>';
// row += d['PayStatus'];
// row += '</div>';
// row += d['PayoutMode'];
// row += '</div>';
// row += d['SendDate'];
// row += '</div>';
// row += '</div>';
// row += '</div>';
// row += '</div>';
// });
// $('#GetTransactionList').html(row);
// // $('#receiverListDiv').hide();
// }
// }
</script>
}
Loading…
Cancel
Save