Helicopter Ticket Booking
Helicopter Ticket Booking

IRCTC Heliyatra Ticket
Status: ${status} Number of Passengers: ${passengerCount} Booking Type: GENERAL
Reporting Time: ${formattedReportingTime}
${route.split(' to ')[0]}
${formattedJourneyDate}
9:00 AM-12:00 PM
Thumby Helipad
Thumby Helipad, Jamu
Shri Kedarnath
${formattedJourneyDate}
Shri Kedarnath
Kedarnath
Shri Kedarnath
${formattedJourneyDate} (Same day)
Timing Will Be Informed At ${route.split(' to ')[0]}
Shri Kedarnath
Kedarnath
${route.split(' to ')[0]}
${formattedReturnDate}
Thumby Helipad
Thumby Helipad, Jamu
Passenger Details:
S No. Name Gender Age Yatra Reg. No. Status
${passengerRows}
GST Details:
Booker Name. : - Booker GST No. : -
For Helicopter Fare For Convenience Charges
Helicopter Service Operator : THUMBY AVIATION PVT LTD Service Provider Name : IRCTC
GST No. : 05AADCT1439J1ZE GST No. : 07AAACI7074F1ZM
Place of Supply : Uttarakhand State Code : Delhi
Booker State : Chhattisgarh
Description Total (Including GST)
Helicopter Fare ${helicopterFare}
Dynamic Fare 0.00
IRCTC-Conv. Fee ${convFee}
Total ${totalAmount}
Invoice Total
(after rounding off)
â¹${totalAmount}
Rupees ${numberToWords(parseInt(totalAmount))} only
SCAN TO VERIFY
THIS TICKET
Booking ID: ${bookingId} Booking Date & Time: ${getCurrentDateTime()}
Onward
Return
`;
// Display ticket preview
document.getElementById('ticketPreview').innerHTML = ticketHtml;
document.getElementById('ticketPreview').style.display = 'block';
// Scroll to ticket preview
document.getElementById('ticketPreview').scrollIntoView({ behavior: 'smooth' });
}
function formatDate(dateString) {
const date = new Date(dateString);
const day = String(date.getDate()).padStart(2, '0');
const month = String(date.getMonth() + 1).padStart(2, '0');
const year = date.getFullYear();
return `${day}-${month}-${year}`;
}
function getCurrentDateTime() {
const now = new Date();
const day = String(now.getDate()).padStart(2, '0');
const month = String(now.getMonth() + 1).padStart(2, '0');
const year = now.getFullYear();
const hours = String(now.getHours()).padStart(2, '0');
const minutes = String(now.getMinutes()).padStart(2, '0');
return `${day}-${month}-${year} ${hours}:${minutes} ${hours >= 12 ? 'PM' : 'AM'}`;
}
function numberToWords(num) {
const ones = ['', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Eleven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen', 'Seventeen', 'Eighteen', 'Nineteen'];
const tens = ['', '', 'Twenty', 'Thirty', 'Forty', 'Fifty', 'Sixty', 'Seventy', 'Eighty', 'Ninety'];
if (num === 0) return 'Zero';
function convertLessThanOneThousand(num) {
if (num === 0) return '';
if (num < 20) return ones[num];
const digit = num % 10;
if (num < 100) return tens[Math.floor(num / 10)] + (digit ? ' ' + ones[digit] : '');
return ones[Math.floor(num / 100)] + ' Hundred' + (num % 100 ? ' and ' + convertLessThanOneThousand(num % 100) : '');
}
let result = '';
const scales = ['', 'Thousand', 'Million', 'Billion', 'Trillion'];
let scaleIndex = 0;
while (num > 0) {
const chunk = num % 1000;
if (chunk !== 0) {
result = convertLessThanOneThousand(chunk) + ' ' + scales[scaleIndex] + ' ' + result;
}
num = Math.floor(num / 1000);
scaleIndex++;
}
return result.trim();
}
});