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.
116 lines
3.6 KiB
116 lines
3.6 KiB
<!DOCTYPE html>
|
|
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
|
|
<head th:replace="~{fragments/head :: head}">
|
|
<style>
|
|
@media print {
|
|
|
|
/* Hide buttons when printing */
|
|
.button-container {
|
|
display: none !important;
|
|
}
|
|
|
|
.nav-display {
|
|
display: none !important;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div th:replace="~{fragments/Details :: div}"></div>
|
|
<script th:replace="~{fragments/script :: script}"></script>
|
|
<script>
|
|
function printTables(bookingId) {
|
|
$.ajax({
|
|
type: "GET",
|
|
url: '/victoriahallbooking/user/acknowledgement',
|
|
data: {ref_id: bookingId},
|
|
success: function (bodyMessage) {
|
|
exportLicToPDF(bodyMessage, bookingId);
|
|
// console.log(bodyMessage);
|
|
},
|
|
error: function (xhr, status, error) {
|
|
console.error("Failed to fetch booking details:", error);
|
|
alert("Error fetching booking details. Please try again.");
|
|
}
|
|
});
|
|
}
|
|
function exportLicToPDF(details, bookingId, format = 'a4', orientation = 'portrait') {
|
|
var parser = new DOMParser();
|
|
var doc = parser.parseFromString(details, 'text/html');
|
|
// Select the entire container element
|
|
var element = document.querySelector('#pcoded');
|
|
// Hide unwanted elements
|
|
document.querySelector('.button-container').style.display = 'none'; // Hide the button container
|
|
// Generate PDF
|
|
html2pdf().from(element).set({
|
|
margin: [0.1, 0.1, 0.1, 0.1], // Adjust margins to fit content better
|
|
filename: `BookingAck-${bookingId}.pdf`, // Construct the filename with bookingId
|
|
html2canvas: {
|
|
scale: 1, // Set scale to 1 to ensure content fits on a single page
|
|
useCORS: true, // Allow cross-origin images to load
|
|
scrollX: 0,
|
|
scrollY: 0,
|
|
windowWidth: element.scrollWidth,
|
|
windowHeight: element.scrollHeight
|
|
},
|
|
jsPDF: {
|
|
unit: 'in',
|
|
format: format, // Set format to A4
|
|
orientation: orientation,
|
|
compress: true // Enable compression to reduce file size
|
|
}
|
|
}).toPdf().get('pdf').then(function (pdf) {
|
|
// Check if content fits on one page; scale down if needed
|
|
let totalHeight = element.offsetHeight;
|
|
let pageHeight = pdf.internal.pageSize.height;
|
|
if (totalHeight > pageHeight) {
|
|
pdf.internal.pageSize.height = totalHeight;
|
|
}
|
|
}).save().then(() => {
|
|
// Restore the visibility of hidden elements
|
|
document.querySelector('.button-container').style.display = 'flex'; // Show the button container again
|
|
});
|
|
}
|
|
function formatDateTime(date) {
|
|
// Format date and time
|
|
const options = {
|
|
year: 'numeric',
|
|
month: '2-digit',
|
|
day: '2-digit',
|
|
hour: '2-digit',
|
|
minute: '2-digit',
|
|
second: '2-digit',
|
|
hour12: false, // 24-hour time
|
|
timeZone: 'auto' // Use the user's local time zone
|
|
};
|
|
|
|
try {
|
|
return new Intl.DateTimeFormat('en-GB', options).format(date);
|
|
} catch (error) {
|
|
console.error('Error formatting date:', error);
|
|
return date.toString(); // Fallback
|
|
}
|
|
}
|
|
|
|
function updateGeneratedDate() {
|
|
const dateElement = document.getElementById('generatedDate');
|
|
if (dateElement) {
|
|
const now = new Date();
|
|
const formattedDate = formatDateTime(now);
|
|
// console.log('Formatted Date:', formattedDate); // Debug log
|
|
dateElement.textContent = formattedDate;
|
|
} else {
|
|
console.error('Date element not found');
|
|
}
|
|
}
|
|
window.onload = updateGeneratedDate;
|
|
function redirect(bookingtype) {
|
|
if (bookingtype === 'OFFLINE') {
|
|
window.location.href = "/victoriahallbooking/counter/counterbooking";
|
|
} else {
|
|
window.location.href = "/victoriahallbooking/user/dashboard";
|
|
}
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|