louie_branch #92

Merged
MarkHipe merged 4 commits from louie_branch into main 2024-06-05 15:53:37 +08:00
9 changed files with 950 additions and 695 deletions
Showing only changes of commit bdc6f313e6 - Show all commits

177
assets/js/user-history.js Normal file
View File

@ -0,0 +1,177 @@
async function postProductRating(product_id, formData,endpointData,sessionToken) {
const endpoint = `https://${endpointData}/api/v1/products/${product_id}/ratings`;
// const sessionToken = 'your-session-token-here'; // Replace with your actual session token logic
try {
const response = await fetch(endpoint, {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + sessionToken,
},
body: formData
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return await response.json();
} catch (error) {
console.error('Error:', error);
throw error;
}
}
async function updateOrderRating(product_id,endpointData,sessionToken) {
const endpoint = `https://${endpointData}/api/v1/orders/${product_id}`;
// const sessionToken = 'your-session-token-here'; // Replace with your actual session token logic
try {
const response = await fetch(endpoint, {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + sessionToken,
},
body: JSON.stringify({
"isRate": true
})
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return await response.json();
} catch (error) {
console.error('Error:', error);
throw error;
}
}
async function uploadImageRating(formData,endpointData,sessionToken) {
const endpoint = `https://${endpointData}/api/v1/upload_image`;
// const sessionToken = 'your-session-token-here'; // Replace with your actual session token logic
try {
const response = await fetch(endpoint, {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + sessionToken,
},
body: formData
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return await response.json();
} catch (error) {
console.error('Error:', error);
throw error;
}
}
async function sendFeedback(variation, rating,
comments, images, videos, customer_id,
order_id,
vendor_id, files, productId,
endpoint, sessionToken
) {
const formData = new FormData();
const currentDate = new Date();
const formattedDate = currentDate
.toISOString().replace(/[-T:]/g, "")
.slice(0, -5);
formData.append('variation', variation);
formData.append('rating', rating);
formData.append('comments', comments);
formData.append('customer_id',
customer_id);
formData.append('order_id', order_id);
formData.append('vendor_id', vendor_id);
images?.forEach((image, index) => {
formData.append(
`images`,
image);
});
// Append videos to FormData
videos?.forEach((video, index) => {
formData.append(
`videos`,
video);
});
postProductRating(
productId,
formData,
endpoint, sessionToken
)
.then(response => {
console.log('Success:',
response);
if (!response) {
throw new Error(
'Failed to send text message'
);
} else {
updateOrderRating(
order_id,
endpoint,
sessionToken
)
.then(
response1 => {
console.log(
'Success:',
response1
);
if (
!
response1
) {
throw new Error(
`
update order failed `
);
} else {
sendButton1
[
order_id
]
.textContent =
"Submitted";
sendButton1
[
order_id
]
.disabled =
true
}
})
.catch(error => {
console
.error(
'Error:',
error
);
});
}
})
.catch(error => {
console.error('Error:',
error);
});
}

View File

@ -92,24 +92,34 @@ if (isset($_GET['id'])) {
<link rel="stylesheet" id="bg-switcher-css" href="assets/css/backgrounds/bg-4.css">
<script>
function updateCartItemCount() {
$.get("cartitems.php?id=<?php echo $_SESSION['customerId']; ?>", function(data, status) {
if (data != "") {
console.log("Data: " + data + "\nStatus: " + status);
document.getElementById("cartItemCount").innerHTML = data;
document.getElementById("cartNewItemCount").innerHTML = data;
var xhr = new XMLHttpRequest();
xhr.open("GET", "cartitems.php?id=<?php echo $_SESSION['customerId']; ?>", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var data = xhr.responseText;
if (data !== "") {
console.log("Data: " + data);
document.getElementById("cartItemCount").innerHTML = data;
document.getElementById("cartNewItemCount").innerHTML = data;
}
}
});
};
xhr.send();
}
function updateWishItemCount() {
$.get("wishlistitems.php?id=<?php echo $_SESSION['customerId']; ?>", function(data) {
if (data != "") {
document.getElementById("wishItemCount").innerHTML = data;
document.getElementById("wishNewItemCount").innerHTML = data;
var xhr = new XMLHttpRequest();
xhr.open("GET", "wishlistitems.php?id=<?php echo $_SESSION['customerId']; ?>", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var data = xhr.responseText;
if (data !== "") {
document.getElementById("wishItemCount").innerHTML = data;
document.getElementById("wishNewItemCount").innerHTML = data;
}
}
});
};
xhr.send();
}
</script>
@ -1628,7 +1638,7 @@ if (isset($_GET['id'])) {
alt="" /> -->
<div id="ec-spt-nav-review" class="tab-pane fade">
</div>
</div>
<style>
.rating_con {

View File

@ -483,9 +483,9 @@ $filteredProducts = [];
});
} else {
document.querySelector(".vendor-list").innerHTML = `
<h6>No vendors available</h6>
`;
<h6>No vendors available</h6>
`;
}
}

View File

@ -1030,7 +1030,7 @@ if ($_SESSION["isVendor"] == true) {
if ($order['return_order']['status'] === 'To Approve') {
echo '<a class="btn btn-lg btn-primary" style="margin:10px; white-space:nowrap" disabled>Refund Requested</a>';
} elseif ($order['return_order']['status'] === 'To Ship') {
echo '<a class="btn btn-lg btn-primary" style="margin:10px;" disabled>For Refund</a>';
echo '<a class="btn btn-lg btn-primary" style="margin:10px; white-space:nowrap" disabled>For Refund</a>';
} else {
$orderDate = strtotime($order['updatedAt']);
$sevenDaysAfterOrder = strtotime('+7 days', $orderDate); // Seven days after the order date
@ -1038,7 +1038,7 @@ if ($_SESSION["isVendor"] == true) {
if ($currentDate >= $sevenDaysAfterOrder || $order['isRate']=== true ) {
echo '<span class="tbl-btn" disabled></span>';
} else {
echo '<a class="btn btn-lg btn-primary" style="margin:10px;"
echo '<a class="btn btn-lg btn-primary" style="margin:10px; white-space:nowrap"
data-bs-toggle="modal"
data-bs-target="#modal-refund-' . $order['_id'] . '">Return/Refund</a>';
}
@ -1206,192 +1206,70 @@ if ($_SESSION["isVendor"] == true) {
.addEventListener('click', () => {
sendReview();
});
async function sendFeedback(variation, rating,
comments, images, videos, customer_id,
order_id,
vendor_id, files
) {
var sessionToken =
`<?php echo isset($_SESSION["token"]) ? $_SESSION["token"] : ""; ?>`;
const formData = new FormData();
const currentDate = new Date();
const formattedDate = currentDate
.toISOString().replace(/[-T:]/g, "")
.slice(0, -5);
// async function uploadMediaFeed(file,
// mediaType) {
// const formData = new FormData();
// console.log(file)
// const currentDate = new Date();
// const formattedDate =
// currentDate
// .toISOString().replace(
// /[-T:]/g, "")
// .slice(0, -5);
// const fileName =
// `
// $ {
// formattedDate
// } - $ {
// file.name
// }
// `;
// formData.append('image_id',
// '<?php echo $order['items'][0]['product']['product_id'] ?>'
// );
// formData.append('category',
// 'product');
// formData.append('image', file);
// uploadImageRating(formData,
// '<?php echo $_SESSION["data_endpoint"]; ?>',
// sessionToken)
// .then(response => {
// console.log('Success:',
// response);
// if (!response.ok) {
// throw new Error(
// `
// Failed to upload $ {
// mediaType
// }
// `
// );
// } else {
// const responseData =
// await response
// .json();
formData.append('variation', variation);
formData.append('rating', rating);
formData.append('comments', comments);
formData.append('customer_id',
customer_id);
formData.append('order_id', order_id);
formData.append('vendor_id', vendor_id);
images?.forEach((image, index) => {
formData.append(
`images`,
image);
});
// Append videos to FormData
videos?.forEach((video, index) => {
formData.append(
`videos`,
video);
});
// console.log("file")
// const formData = new FormData();
// formData.append('data', JSON.stringify({
// variation: variation,
// rating: String(rating),
// comments: comments,
// customer_id: customer_id,
// order_id: order_id,
// vendor_id: vendor_id,
// }));
// // Assuming images and videos are arrays of File objects
// images?.forEach((image, index) => {
// formData.append(
// `images[${index}]`,
// image);
// });
// videos?.forEach((video, index) => {
// formData.append(
// `videos[${index}]`,
// video);
// });
console.log(files)
const response = await fetch(
`https://<?php echo $_SESSION["data_endpoint"]; ?>/api/v1/products/<?php echo $order['items'][0]['product']['product_id'];?>/ratings`, {
method: 'POST',
headers: {
'Authorization': 'Bearer ' +
sessionToken,
},
body: formData
});
// JSON.stringify({
// variation: variation,
// rating: String(
// rating
// ),
// comments: comments,
// images: images,
// videos: videos,
// customer_id: customer_id,
// order_id: order_id,
// vendor_id: vendor_id,
// })
if (!response.ok) {
throw new Error(
'Failed to send text message'
);
} else {
// fileInput.value = '';
// messageInput.value = '';
// send_btn.textContent = "Send";
// send_btn.disabled = false
// JSON.stringify({
// ratings: [{
// variation: variation,
// rating: String(
// rating
// ),
// comments: comments,
// images: images,
// videos: videos,
// customer_id: customer_id,
// order_id: order_id,
// vendor_id: vendor_id,
// }]
// })
const response1 = await fetch(
`https://<?php echo $_SESSION["data_endpoint"]; ?>/api/v1/orders/<?php echo $order['_id'];?>`, {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' +
sessionToken,
},
body: JSON.stringify({
"isRate": true
})
});
if (!response1.ok) {
throw new Error(
`
update order failed `
);
} else {
sendButton1[
'<?php echo $order['_id']; ?>'
].textContent =
"Submitted";
sendButton1[
'<?php echo $order['_id']; ?>'
].disabled = true
}
}
const messageData = await response
.json();
}
async function uploadMediaFeed(file,
mediaType, ) {
const formData = new FormData();
console.log(file)
const currentDate = new Date();
const formattedDate =
currentDate
.toISOString().replace(
/[-T:]/g, "")
.slice(0, -5);
const fileName =
`
$ {
formattedDate
} - $ {
file.name
}
`;
formData.append('image_id',
'<?php echo $order['items'][0]['product']['product_id'] ?>'
);
formData.append('category',
'product');
formData.append('image', file);
// return responseData
// .filename;
// }
// })
// .catch(error => {
// console.error('Error:',
// error);
// });
const response = await fetch(
'<?php echo $_SESSION["data_endpoint"]; ?>/api/v1/upload_image', {
method: 'POST',
body: formData
});
if (!response.ok) {
throw new Error(
`
Failed to upload $ {
mediaType
}
`
);
} else {
const responseData =
await response
.json();
// // const response = await fetch(
// // '<?php echo $_SESSION["data_endpoint"]; ?>/api/v1/upload_image', {
// // method: 'POST',
// // body: formData
// // });
return responseData
.filename;
}
// const responseData = await response.json();
}
// // const responseData = await response.json();
// }
async function sendReview() {
@ -1427,6 +1305,7 @@ if ($_SESSION["isVendor"] == true) {
sendButton1[
'<?php echo $order['_id']; ?>'
].disabled = true
let files = []
try {
// Send text message
await sendFeedback(
@ -1437,7 +1316,11 @@ if ($_SESSION["isVendor"] == true) {
videos,
customer_id,
order_id,
vendor_id
vendor_id,
files,
'<?php echo $order['items'][0]['product']['product_id'];?>',
'<?php echo $_SESSION["data_endpoint"]; ?>',
'<?php echo $_SESSION["token"]; ?>'
);
} catch (error) {
console.error(
@ -1541,7 +1424,10 @@ if ($_SESSION["isVendor"] == true) {
videos,
customer_id,
order_id,
vendor_id, files
vendor_id, files,
'<?php echo $order['items'][0]['product']['product_id'];?>',
'<?php echo $_SESSION["data_endpoint"]; ?>',
'<?php echo $_SESSION["token"]; ?>'
)
} catch (error) {
@ -2675,6 +2561,8 @@ if ($_SESSION["isVendor"] == true) {
<!-- Main Js -->
<script src="assets/js/vendor/index.js"></script>
<script src="assets/js/main.js"></script>
<script src="assets/js/user-history.js"></script>
</body>

View File

@ -219,7 +219,7 @@ if ($_SESSION["isVendor"] == true) {
class="ec-vendor-detail-block ec-vendor-block-contact space-bottom-30">
<h6>Contact number</h6>
<ul>
<li><strong><?php echo $customer_data['phone_number'] ?></li>
<li><strong><?php echo $customer_data[0]['phone_number'] ?></li>
</ul>
</div>
</div>
@ -544,8 +544,11 @@ if ($_SESSION["isVendor"] == true) {
</div>
<div class="form-group">
<label for="addressBuilding" class="text-dark font-weight-medium pt-3 mb-2">House/Unit/Flr #, Bldg Name, Blk or Lot #</label>
<input type="text" class="form-control" id="addressBuilding2" value="<?php echo $address['address_1']; ?>">
<label for="addressBuilding"
class="text-dark font-weight-medium pt-3 mb-2">House/Unit/Flr #, Bldg Name, Blk or
Lot #</label>
<input type="text" class="form-control" id="addressBuilding2"
value="<?php echo $address['address_1']; ?>">
<!-- <label for="addressBuilding" class="text-dark font-weight-medium pt-3 mb-2"> Building,Number </label>
<input type="text" class="form-control" id="addressBuilding"> -->
@ -875,7 +878,7 @@ if ($_SESSION["isVendor"] == true) {
if (selectedCityCode) {
fetch(
`https://psgc.gitlab.io/api/cities-municipalities/${selectedCityCode}/barangays/`
)
)
.then(response => {
if (response.ok) {
return response.json();
@ -1009,7 +1012,7 @@ if ($_SESSION["isVendor"] == true) {
if (selectedCityCode) {
fetch(
`https://psgc.gitlab.io/api/cities-municipalities/${selectedCityCode}/barangays/`
)
)
.then(response => {
if (response.ok) {
return response.json();

File diff suppressed because it is too large Load Diff

View File

@ -64,7 +64,7 @@ if ($_SESSION["isCustomer"] == true) {
<meta name="msapplication-TileImage" content="assets/images/favicon/favicon.png" />
<!-- css Icon Font -->
<link rel="stylesheet" href="assets/css/vendor/ecicons.min.css" />
<link rel="stylesheet" href="assets/css/vendor/ecicons.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A=="
crossorigin="anonymous" referrerpolicy="no-referrer" />

View File

@ -56,7 +56,7 @@ if ($_SESSION["isCustomer"] == true) {
<meta name="msapplication-TileImage" content="assets/images/favicon/favicon.png" />
<!-- css Icon Font -->
<link rel="stylesheet" href="assets/css/vendor/ecicons.min.css" />
<link rel="stylesheet" href="assets/css/vendor/ecicons.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A=="
crossorigin="anonymous" referrerpolicy="no-referrer" />
@ -103,6 +103,22 @@ if ($_SESSION["isCustomer"] == true) {
border: 1px solid #ccc;
border-radius: 4px;
}
.roww {
width: 100%;
display: flex;
/* justify-content: center;
align-items: center; */
flex-wrap: nowrap !important;
flex-direction: row !important;
}
@media(max-width:992px) {
.roww {
flex-wrap: wrap !important;
}
}
</style>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
@ -144,7 +160,7 @@ if ($_SESSION["isCustomer"] == true) {
<div class="container">
<div class="row">
<div class="col-12">
<div class="row ec_breadcrumb_inner">
<div class="row ec_breadcrumb_inner roww">
<div class="col-md-6 col-sm-12">
<h2 class="ec-breadcrumb-title">User History</h2>
</div>
@ -164,9 +180,9 @@ if ($_SESSION["isCustomer"] == true) {
<!-- Ec breadcrumb end -->
<section class="ec-page-content ec-vendor-uploads ec-user-account section-space-p">
<div class="container">
<div class="row">
<div class="row roww">
<!-- Sidebar Area Start -->
<div class="ec-shop-leftside ec-vendor-sidebar col-lg-3 col-md-12">
<div class="ec-shop-leftside ec-vendor-sidebar col-lg-3 col-md-12 ">
<div class="ec-sidebar-wrap ec-border-box">
<!-- Sidebar Category Block -->
<div class="ec-sidebar-block">

View File

@ -51,7 +51,8 @@ $vendorPayoutData = json_decode($response, true);
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<title>oBanana B2B - Elevate Your Business</title>
<meta name="keywords" content="apparel, catalog, clean, ecommerce, ecommerce HTML, electronics, fashion, html eCommerce, html store, minimal, multipurpose, multipurpose ecommerce, online store, responsive ecommerce template, shops" />
<meta name="keywords"
content="apparel, catalog, clean, ecommerce, ecommerce HTML, electronics, fashion, html eCommerce, html store, minimal, multipurpose, multipurpose ecommerce, online store, responsive ecommerce template, shops" />
<meta name="description" content="Best ecommerce html template for single and multi vendor store.">
<meta name="author" content="ashishmaraviya">
@ -61,7 +62,7 @@ $vendorPayoutData = json_decode($response, true);
<meta name="msapplication-TileImage" content="assets/images/favicon/favicon.png" />
<!-- css Icon Font -->
<link rel="stylesheet" href="assets/css/vendor/ecicons.min.css" />
<link rel="stylesheet" href="assets/css/vendor/ecicons.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A=="
crossorigin="anonymous" referrerpolicy="no-referrer" />
@ -87,27 +88,46 @@ $vendorPayoutData = json_decode($response, true);
<!-- 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" />
<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>
<script src="https://cdn.jsdelivr.net/npm/select2@latest/dist/js/select2.min.js" crossorigin="anonymous"
referrerpolicy="no-referrer"></script>
<script>
function renewToken() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "vendor-payoutsTokenRN.php", true);
xhr.send();
}
function renewToken() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "vendor-payoutsTokenRN.php", true);
xhr.send();
}
setInterval(function() {
var currentTime = <?php echo time(); ?>;
var renewalTime = <?php echo $renewal_time; ?>;
var expirationTime = <?php echo $expiration_time; ?>;
setInterval(function() {
var currentTime = <?php echo time(); ?>;
var renewalTime = <?php echo $renewal_time; ?>;
var expirationTime = <?php echo $expiration_time; ?>;
if (currentTime >= renewalTime || currentTime >= expirationTime) {
renewToken();
}
}, 60000);
if (currentTime >= renewalTime || currentTime >= expirationTime) {
renewToken();
}
}, 60000);
</script>
</head>
<style>
.roww {
width: 100%;
display: flex;
/* justify-content: center;
align-items: center; */
flex-wrap: nowrap !important;
flex-direction: row !important;
}
@media(max-width:992px) {
.roww {
flex-wrap: wrap !important;
}
}
</style>
<body class="shop_page">
<div id="ec-overlay">
@ -135,7 +155,7 @@ $vendorPayoutData = json_decode($response, true);
<div class="container">
<div class="row">
<div class="col-12">
<div class="row ec_breadcrumb_inner">
<div class="row ec_breadcrumb_inner roww">
<div class="col-md-6 col-sm-12">
<h2 class="ec-breadcrumb-title">Vendor Payouts</h2>
</div>
@ -157,7 +177,7 @@ $vendorPayoutData = json_decode($response, true);
<!-- Vendor setting section -->
<section class="ec-page-content ec-vendor-uploads section-space-p">
<div class="container">
<div class="row">
<div class="row roww">
<!-- Sidebar Area Start -->
<div class="ec-shop-leftside ec-vendor-sidebar col-lg-3 col-md-12">
<div class="ec-sidebar-wrap ec-border-box">
@ -167,9 +187,13 @@ $vendorPayoutData = json_decode($response, true);
<!-- 03-12-2024 Stacy added placeholder for vendor banner -->
<?php
if (!empty($vendorData['vendor_banner'])) { ?>
<div class="ec-vendor-block-bg" style="background-image: url(<?php echo $vendorData['vendor_banner'] ?>) !important;"></div>
<?php } else { ?>
<div class="ec-vendor-block-bg" style="background-color: orange; background-image: url(<?php echo $vendorData['vendor_banner'] ?>) !important;"></div>
<div class="ec-vendor-block-bg"
style="background-image: url(<?php echo $vendorData['vendor_banner'] ?>) !important;">
</div>
<?php } else { ?>
<div class="ec-vendor-block-bg"
style="background-color: orange; background-image: url(<?php echo $vendorData['vendor_banner'] ?>) !important;">
</div>
<?php } ?>
<!-- <div class="ec-vendor-block-bg" style="background-image: url(<?php #echo $vendorData['vendor_banner'] ?>) !important;"></div> -->
<div class="ec-vendor-block-detail">
@ -177,9 +201,12 @@ $vendorPayoutData = json_decode($response, true);
<!-- 03-12-2024 Stacy added placeholder for vendor profile -->
<?php
if (!empty($vendorData['vendor_image'])) { ?>
<img loading="lazy" class="v-img" src=<?php echo $vendorData['vendor_image'] ?> alt="vendor image">
<img loading="lazy" class="v-img" src=<?php echo $vendorData['vendor_image'] ?>
alt="vendor image">
<?php } else { ?>
<img loading="lazy" class="v-img" src="https://yourteachingmentor.com/wp-content/uploads/2020/12/istockphoto-1223671392-612x612-1.jpg" alt="vendor image">
<img loading="lazy" class="v-img"
src="https://yourteachingmentor.com/wp-content/uploads/2020/12/istockphoto-1223671392-612x612-1.jpg"
alt="vendor image">
<?php } ?>
<h5 class="name"><?php echo $vendorData['user_login'] ?></h5>
</div>
@ -249,7 +276,8 @@ $vendorPayoutData = json_decode($response, true);
}
$bankNumEnding = substr($bankAccountNumber, -3);
?>
Receipient: <?php echo $bankName; ?> Account ending in <?php echo $bankNumEnding?>
Receipient: <?php echo $bankName; ?> Account ending in
<?php echo $bankNumEnding?>
</div>
</div>
</div>
@ -317,18 +345,10 @@ $vendorPayoutData = json_decode($response, true);
</div>
<div class="ec-vendor-card-body">
<div class="ec-vendor-card-table">
<table class="table ec-table"
id="payout-table" style="overflow-x: auto;"
data-role="table"
data-pagination="true"
data-searching="true"
data-filtering="true"
data-sorting="true"
data-show-rows-steps="5,10,20,-1"
data-horizontal-scroll="true"
data-rownum="true"
data-table-info-title="Display from $1 to $2 of $3 payment(s)"
>
<table class="table ec-table" id="payout-table" style="overflow-x: auto;"
data-role="table" data-pagination="true" data-searching="true" data-filtering="true"
data-sorting="true" data-show-rows-steps="5,10,20,-1" data-horizontal-scroll="true"
data-rownum="true" data-table-info-title="Display from $1 to $2 of $3 payment(s)">
<thead>
<tr>
<th data-sortable="true" scope="col">Amount</th>
@ -348,35 +368,37 @@ $vendorPayoutData = json_decode($response, true);
$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) {
<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 }
<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 btn-sm showSinglePayoutBtn" data-order-id="<?php echo $payoutId; ?>" data-bs-toggle="modal" data-bs-target="#payoutsModal">View</button>
</td>
</tr>
<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 btn-sm showSinglePayoutBtn"
data-order-id="<?php echo $payoutId; ?>" data-bs-toggle="modal"
data-bs-target="#payoutsModal">View</button>
</td>
</tr>
<?php
}
} ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
@ -437,7 +459,7 @@ $vendorPayoutData = json_decode($response, true);
</div>
<!-- Cart Floating Button end -->
<!-- Feature tools -->
<div class="ec-tools-sidebar-overlay"></div>
@ -525,7 +547,7 @@ $vendorPayoutData = json_decode($response, true);
<script src="assets/js/plugins/nouislider.js"></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 src="https://cdn.metroui.org.ua/current/metro.js"></script> -->
<!-- <script>
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
@ -537,52 +559,56 @@ $vendorPayoutData = json_decode($response, true);
<!-- 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,
url: 'https://<?php echo $_SESSION["data_endpoint"]; ?>/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 feeBreakdown = response.breakdown[0].transfer_fee;
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 transactionLogsHtml = ''; // Initialize empty string to store HTML for transaction logs
response.transaction_logs.forEach(function(log)
{
var paymentType = log.Type;
var transDate = new Date(log?.Transaction_date).toLocaleString('en-US', {
year: 'numeric',
month: '2-digit',
$(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,
url: 'https://<?php echo $_SESSION["data_endpoint"]; ?>/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 feeBreakdown = response.breakdown[0].transfer_fee;
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 transactionLogsHtml =
''; // Initialize empty string to store HTML for transaction logs
response.transaction_logs.forEach(function(log) {
var paymentType = log.Type;
var transDate = new Date(log?.Transaction_date)
.toLocaleString('en-US', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: 'numeric',
minute: '2-digit',
hour12: true
});
var transGrossAmount = log?.Gross_Amount;
var transFee = log.Fee;
var transNetAmount = log?.Net_Amount;
var transDesc = log.Description;
// Append HTML for current transaction log to the transactionLogsHtml string
transactionLogsHtml += `
var transGrossAmount = log?.Gross_Amount;
var transFee = log.Fee;
var transNetAmount = log?.Net_Amount;
var transDesc = log.Description;
// Append HTML for current transaction log to the transactionLogsHtml string
transactionLogsHtml += `
<tr>
<td>${paymentType}</td>
<td>${transDate}</td>
@ -591,11 +617,11 @@ $vendorPayoutData = json_decode($response, true);
<td> ${transNetAmount}</td>
<td>${transDesc}</td>
</tr>`;
});
});
// Populate data dynamically using the response
var payoutDetailsHtml = `
// Populate data dynamically using the response
var payoutDetailsHtml = `
<div class="row">
<div class="col-md-7 mb-4">
<div class="d-flex flex-column">
@ -667,13 +693,13 @@ $vendorPayoutData = json_decode($response, true);
</div>
</div>
</div>`;
$('#payoutDetailsContainer').html(payoutDetailsHtml);
$('#payoutDetailsContainer').html(payoutDetailsHtml);
},
})
},
})
});
});
});
</script>
</body>