Merge pull request 'louie_branch' (#48) from louie_branch into main

Reviewed-on: #48
This commit is contained in:
MarkHipe 2024-03-26 16:40:16 +08:00
commit ae80b26726
2 changed files with 268 additions and 151 deletions

View File

@ -1980,3 +1980,4 @@ function updatePayout($token, $payoutId)
return $response;
}

View File

@ -3,24 +3,41 @@ include "functions.php";
if ($_SESSION["userId"] <> "") {
$_SESSION["isLoggedIn"] = true;
// $customer_data = getCustomerbyLoginId($_SESSION["userId"]);
$vendorLoginId = searchVendorbyLoginId($_SESSION["userId"]);
$vendorLoginIdjson = json_decode($vendorLoginId, true);
if (isset($vendorLoginIdjson['results'][0])) {
$vendorData = $vendorLoginIdjson['results'][0];
$vendorId = $vendorData['_id'];
$_SESSION["LoggedInVendorId"] = $vendorId;
}
// $vendor= getVendorbyId($vendorLoginIdjson['results'][0]['_id']);
// // var_dump($vendor);
// $array = json_decode($vendor,true);
// var_dump($array);
$response = getAllPayout($_SESSION['token']);
$vendorPayoutData = json_decode($response, true);
} else {
$_SESSION["isLoggedIn"] = false;
header("location: login.php");
}
// $customer_data = getCustomerbyLoginId($_SESSION["userId"]);
$vendorLoginId = searchVendorbyLoginId($_SESSION["userId"]);
$vendorLoginIdjson = json_decode($vendorLoginId, true);
if (isset($vendorLoginIdjson['results'][0])) {
$vendorData = $vendorLoginIdjson['results'][0];
$vendorId = $vendorData['_id'];
$_SESSION["LoggedInVendorId"] = $vendorId;
}
$token = $_SESSION["token"];
$token_parts = explode(".", $token);
$token_payload = base64_decode($token_parts[1]);
$token_data = json_decode($token_payload);
$expiration_time = $token_data->exp;
$issued_at_time = $token_data->iat;
$renewal_time = $issued_at_time + 3300;
if (time() >= $renewal_time) {
$token = loginRenew($_SESSION["email"], $_SESSION["password"], $token);
$_SESSION["token"] = $token;
}
$authToken = $_SESSION['token'];
$response = getAllPayout($authToken);
$vendorPayoutData = json_decode($response, true);
?>
<!DOCTYPE html>
<html lang="en">
@ -55,12 +72,32 @@ if ($_SESSION["userId"] <> "") {
<link rel="stylesheet" href="assets/css/style.css" />
<link rel="stylesheet" href="assets/css/style2.css" />
<link rel="stylesheet" href="assets/css/responsive.css" />
<link href="https://cdn.datatables.net/v/bs5/dt-2.0.3/r-3.0.0/sp-2.3.0/datatables.min.css" rel="stylesheet">
<!-- Background css -->
<link rel="stylesheet" id="bg-switcher-css" href="assets/css/backgrounds/bg-4.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2@latest/dist/css/select2.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@latest/dist/js/select2.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<style>
#pagination {
display: flex;
list-style: none;
padding: 0;
margin: 0;
justify-content: center;
}
#pagination a {
color: #333;
text-decoration: none;
padding: 5px 10px;
border: 1px solid #ccc;
border-radius: 4px;
}
</style>
</head>
<body class="shop_page">
@ -150,19 +187,42 @@ if ($_SESSION["userId"] <> "") {
<div class="row">
<h4 style="color: #444;">
<div class="d-flex align-items-center">
<?php
$response = getOrderbyVendorId($vendorId);
$upcomingPayout = json_decode($response, true);
$payoutSum = 0;
foreach ($upcomingPayout as $x => $val) {
$paymentStatus = strtolower($val['payment']['status']);
$orderStatus = $val['status'];
$payoutStatus = empty($val['payout_status']);
if(( $paymentStatus == "paid") && ( $orderStatus == "COMPLETED") && ($payoutStatus == true)){
$orderAmount = $val['total_amount'];
$payoutSum += $orderAmount;
}
}
$finalPayoutSum = number_format($payoutSum, 2, '.', ',');
?>
<strong>
0.00
<?php echo $finalPayoutSum ?>
</strong>
</div>
</h4>
<div class="text-sm mt-3">
<!-- <div class="text-sm mt-3">
Payout Generation: Tue, Mar 19, 2024
</div>
<div class="text-sm">
Receive Payout on or before: Wed, Mar 20, 2024
</div>
</div> -->
<div class="text-sm">
Receipient: Philippine National Bank (PNB) Account ending in 6685
<?php
$vendorResponse = getVendorbyId($vendorId);
$vendorInformation = json_decode($vendorResponse, true);
$bankAccountNumber = $vendorInformation['bank_acount_details'][0]['bank_account_number'];
$bankNumEnding = substr($bankAccountNumber, -3);
?>
Receipient: Philippine National Bank (PNB) Account ending in <?php echo $bankNumEnding?>
</div>
</div>
</div>
@ -216,16 +276,16 @@ if ($_SESSION["userId"] <> "") {
Receive Payout on or before: Wed, Mar 26, 2024
</div>
<div class="text-sm">
Receipient: Philippine National Bank (PNB) Account ending in 6685
Receipient: Philippine National Bank (PNB) Account ending in <?php echo $bankNumEnding?>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12 mt-3">
<h5><strong>Payout History</strong></h5>
<div class="table-responsive">
<table id="example" class="table ec-table">
<h5 class='m-0'><strong>Payout History</strong></h5>
<div class="table-responsive px-4">
<table id='payoutsTableContent' class="table ec-table">
<thead>
<tr>
<th scope="col">Amount</th>
@ -237,54 +297,46 @@ if ($_SESSION["userId"] <> "") {
</tr>
</thead>
<tbody>
<tbody class='table-group-divider'>
<?php
foreach ($vendorPayoutData as $x => $val) {
$vendorIdCheck = $val['vendor_details'][0]['vendor_id'];
if ((empty($vendorIdCheck) == false) && ($vendorIdCheck == $vendorId) && ($val['status'] == "DEPOSITED")) {
echo "<tr>";
echo "<td>" . "" . $val['net_amount'] . "</td>";
if (empty($val['bank_information'][0]['bank_name']) == false) {
echo "<td>" . $val['bank_information'][0]['bank_name'] . "</td>";
// echo "<td>" . $val['bank_information'][0]['account_number'] . "</td>";
} else {
echo '<td>N/A</td>';
}
if (empty($val['bank_information'][0]['bank_account_number']) == false) {
$accNum = $val['bank_information'][0]['bank_account_number'];
// Replace characters with asterisks for all characters except the last three segments
$maskedAccNum = substr_replace($accNum, str_repeat('*', strlen($accNum) - 3), 0, -3);
echo "<td>" . $maskedAccNum . "</td>";
// echo "<td>" . $val['bank_information'][0]['bank_account_number'] . "</td>";
} else {
echo '<td>N/A</td>';
};
echo "<td>December 08, 2024</td>";
echo "<td>" . $val['status'] . "</td>";
echo "<td>" .
"<button type='button' class='btn btn-primary btn-sm' data-bs-toggle='modal' data-bs-target='#payoutModal'>
Details
</button>" .
"</td>";
echo "</tr>";
$status = ucfirst(strtolower($val['status']));
$payoutDate = date("F d, Y", strtotime($val['createdAt']));
$payoutId = $val['_id'];
if ((empty($vendorIdCheck) == false) && ($vendorIdCheck == $vendorId) && ($status == "Deposited")) { ?>
<tr>
<td> <?php echo "" . $val['net_amount'] ?> </td>
<?php if (empty($val['bank_information'][0]['bank_name']) == false) {
?>
<td> <?php echo $val['bank_information'][0]['bank_name'] ?> </td>
<?php } else { ?>
<td> N/A </td>
<?php }
if (empty($val['bank_information'][0]['bank_account_number']) == false) {
$accNum = $val['bank_information'][0]['bank_account_number'];
// Replace characters with asterisks for all characters except the last three segments
$maskedAccNum = substr_replace($accNum, str_repeat('*', strlen($accNum) - 3), 0, -3); ?>
<td> <?php echo $maskedAccNum ?> </td>
<?php } else { ?>
<td> N/A </td>
<?php } ?>
<td> <?php echo $payoutDate ?> </td>
<td> <?php echo $status ?> </td>
<td>
<button type="button" class="btn btn-primary showSinglePayoutBtn" data-order-id="<?php echo $payoutId; ?>" data-bs-toggle="modal" data-bs-target="#payoutsModal">View</button>
<!-- <button type="button" class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#payoutModal">
Details
</button> -->
</td>
</tr>
<?php
}
}
?>
<!-- <tr>
<td> 1,165.65 </td>
<td> EastWest Bank </td>
<td> ****6618 </td>
<td> December 08, 2023 </td>
<td> Deposited </td>
<td>
<button type="button" class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#payoutModal">
Details
</button>
</td>
</tr> -->
} ?>
</tbody>
</table>
</div>
<div id='pagination'></div>
</div>
</div>
</div>
@ -293,105 +345,27 @@ if ($_SESSION["userId"] <> "") {
</div>
</div>
</section>
<div class="modal fade" id="payoutModal" tabindex="-1" aria-labelledby="payoutModalLabel" aria-hidden="true">
<!-- Modal Box for the breakdown of payouts from the payouts data table - JOHN LOUIE C. SUEPERALIS MARCH 22, 2024 -->
<div class="modal fade" id="payoutsModal" tabindex="-1" aria-labelledby="payoutsModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl" style="min-width: 90%;">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title fs-5" id="payoutModalLabel">Payout ID: po123034923482934</h5>
<h5 class="modal-title fs-5" id="payoutsModalLabel">Payment ID: <span id="payoutIdSpan"></span></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="container-fluid">
<div class="row">
<div class="col-md-7 mb-4">
<div class="d-flex flex-column">
<div class="d-flex justify-content-between p-2">
<div>
<h6><strong>Payout Information</strong></h6>
</div>
<!-- <php
if ($_SESSION['status'] == "DEPOSITED")
$className = "fw-bold border border-success border-2 rounded-pill btn-outline-success btn-sm";
else if ($_SESSION['statis'] == "PENDING")
$className = "fw-bold border border-warning border-2 rounded-pill btn-outline-warning btn-sm";
?> -->
<button class="fw-bold border border-success border-2 btn-outline-success btn-sm" disabled>DEPOSITED</button>
</div>
<div class="d-flex justify-content-between p-2">
<div class="fw-bold">Gross Amount</div>
<div> 1,150.00</div>
</div>
<div class="d-flex justify-content-between p-2" style="border-bottom: 1px solid #000;">
<div class="fw-bold"> Fees, Deductions, Adjustments
<!-- <span data-bs-toggle="tooltip" data-bs-placement="top" data-bs-custom-class="custom-tooltip" data-bs-title="Insert fee information here">
<i class="fi fi-rr-info"></i>
</span> -->
</div>
<div>- 35.00</div>
</div>
<div class="d-flex justify-content-between p-2">
<div class="fw-bold"> Net Amount</div>
<div>- 1125.00</div>
</div>
</div>
</div>
<div class="col-md-5 mb-4">
<div class="d-flex flex-column" style="border-bottom: 1px solid #000;">
<div class="d-flex justify-content-between p-2">
<h6><strong>Bank Information</strong></h6>
</div>
<div class="d-flex justify-content-between p-2">
<div class="fw-bold">Bank</div>
<div>EastWest Bank</div>
</div>
<div class="d-flex justify-content-between p-2">
<div class="fw-bold">Account Name</div>
<div>Juan De La Cruz</div>
</div>
<div class="d-flex justify-content-between p-2">
<div class="fw-bold">Account Number</div>
<div>Ending in 6618</div>
</div>
</div>
</div>
<div class="col-12">
<div class="mt-5">
<h6><strong>Transaction Logs</strong></h6>
<div class="table-responsive">
<table id="example" class="table ec-table">
<thead>
<tr>
<th>Type</th>
<th>Transaction Date</th>
<th>Gross Amount</th>
<th>Fee</th>
<th>Net Amount</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<td> Payment </td>
<td> December 1, 2020, 10:00 PM </td>
<td> 150.OO </td>
<td> - 5.00 </td>
<td> 145.00 </td>
<td> FOURFORTY - 175 </td>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="container-fluid" id="payoutDetailsContainer">
<!-- Dynamic content will be inserted here -->
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-bs-dismiss="modal">Confirm</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- End Vendor setting section -->
<!-- Footer Start -->
@ -625,15 +599,157 @@ if ($_SESSION["userId"] <> "") {
<script src="assets/js/vendor/jquery.magnific-popup.min.js"></script>
<script src="assets/js/plugins/jquery.sticky-sidebar.js"></script>
<script src="assets/js/plugins/nouislider.js"></script>
<script>
<script src="https://cdn.datatables.net/v/bs5/dt-2.0.3/r-3.0.0/sp-2.3.0/datatables.min.js"></script>
<!-- <script>
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
</script>
</script> -->
<!-- Main Js -->
<script src="assets/js/vendor/index.js"></script>
<script src="assets/js/main.js"></script>
<!-- JS CRIPT FOR DYNAMIC MODAL BOX USING AJAX - JOHN LOUIE C. SUPERALIS MARCH 22, 2024 -->
<script>
$(document).ready(function() {
$('.showSinglePayoutBtn').click(function() {
var payoutId = $(this).data('order-id');
var token = "<?php echo $authToken; ?>";
$('#payoutIdSpan').text(payoutId);
$.ajax({
url: 'https://api.obanana.shop/api/v1/payouts/' + payoutId,
type: 'GET',
headers: {
'Authorization': 'Bearer ' + token
},
success: function(response) {
// Handle successful response
console.log(response);
var grossAmount = response.gross_amount;
var totalFees = response.fees_deduction_adjustment;
var netAmount = response.net_amount;
var payoutStatus = response.status;
payoutStatus = payoutStatus.charAt(0).toUpperCase() + payoutStatus.slice(1).toLowerCase();
var bankName = response.bank_information[0].bank_name;
var bankNum = response.bank_information[0].bank_account_number;
var bankNumEnding = bankNum.slice(-3); // Extract last three characters of bankNum
var maskedBankNum = "Ending in " + bankNumEnding; // Create message
var bankAccName = response.bank_information[0].bank_account_name;
// var paymentType = response.transaction_logs[0].Type;
// // var transDate = response.transaction_logs[0].Transaction + " " + date;
// // var transGrossAmt = response.transaction_logs[0].Gross + " " + amount;
// var transFee = response.transaction_logs[0].Fee;
// // var transNetAmt = response.transaction_logs[0].Net + " " + amount;
// var transDesc = response.transaction_logs[0].Description;
var transactionLogsHtml = ''; // Initialize empty string to store HTML for transaction logs
// Inside the success callback function
var transactionLogsHtml = ''; // Initialize empty string to store HTML for transaction logs
response.transaction_logs.forEach(function(log) {
var paymentType = log.Type; // Assuming Transaction field holds the date
var grossAmount = log.Gross; // Assuming Gross field holds the gross amount
var transFee = log.Fee;
var netAmount = log.Net;
var transDesc = log.Description;
// Append HTML for current transaction log to the transactionLogsHtml string
transactionLogsHtml += `
<tr>
<td>${paymentType}</td>
<td>Wala Muna</td>
<td> Wala muna</td>
<td>- ${transFee}</td>
<td> Wala Muna</td>
<td>${transDesc}</td>
</tr>`;
});
// Populate data dynamically using the response
var payoutDetailsHtml = `
<div class="row">
<div class="col-md-7 mb-4">
<div class="d-flex flex-column">
<div class="d-flex justify-content-between p-2">
<div>
<h6><strong>Payout Information</strong></h6>
</div>
<button class="fw-bold border border-success border-2 btn-outline-success btn-sm" disabled>${payoutStatus}</button>
</div>
<div class="d-flex justify-content-between p-2">
<div class="fw-bold">Gross Amount</div>
<div> ${grossAmount}</div>
</div>
<div class="d-flex justify-content-between p-2" style="border-bottom: 1px solid #000;">
<div class="fw-bold"> Fees, Deductions, Adjustments
</div>
<div> - ${totalFees}</div>
</div>
<div class="d-flex justify-content-between p-2">
<div class="fw-bold"> Net Amount</div>
<div> ${netAmount}</div>
</div>
</div>
</div>
<div class="col-md-5 mb-4">
<div class="d-flex flex-column" style="border-bottom: 1px solid #000;">
<div class="d-flex justify-content-between p-2">
<h6><strong>Bank Information</strong></h6>
</div>
<div class="d-flex justify-content-between p-2">
<div class="fw-bold">Bank</div>
<div>${bankName}</div>
</div>
<div class="d-flex justify-content-between p-2">
<div class="fw-bold">Account Name</div>
<div>${bankAccName}</div>
</div>
<div class="d-flex justify-content-between p-2">
<div class="fw-bold">Account Number</div>
<div>${maskedBankNum}</div>
</div>
</div>
</div>
<div class="col-12">
<div class="mt-5">
<h6><strong>Transaction Logs</strong></h6>
<div class="table-responsive">
<table id="example" class="table ec-table">
<thead>
<tr>
<th>Type</th>
<th>Transaction Date</th>
<th>Gross Amount</th>
<th>Fee</th>
<th>Net Amount</th>
<th>Description</th>
</tr>
</thead>
<tbody>
${transactionLogsHtml} <!-- Insert transaction logs HTML here -->
</tbody>
</table>
</div>
</div>
</div>
</div>`;
$('#payoutDetailsContainer').html(payoutDetailsHtml);
},
})
});
});
</script>
<script>
$(document).ready( function () {
$('#payoutsTableContent').DataTable();
} );
</script>
</body>