UNPKG

parking-calculator-library

Version:

A library to calculate parking fees based on duration, with discounts for early bird, weekend, and loyalty members.

49 lines (38 loc) 1.87 kB
import { ParkingFeeCalculator } from "./ParkingFeeCalculator.js"; document.getElementById("parkingForm").addEventListener("submit", function (e) { e.preventDefault(); const calculator = new ParkingFeeCalculator(); const entryTimeInput = document.getElementById("entryTime").value; const exitTimeInput = document.getElementById("exitTime").value; const entryTime = new Date(entryTimeInput); const exitTime = new Date(exitTimeInput); const resultSection = document.getElementById("resultSection"); const parkingDuration = document.getElementById("parkingDuration"); const baseFee = document.getElementById("baseFee"); const discountsApplied = document.getElementById("discountsApplied"); const totalFee = document.getElementById("totalFee"); try { const duration = calculator.calculateParkingDuration(entryTime, exitTime); const baseParkingFee = calculator.calculateParkingFee(entryTime, exitTime); const discountOptions = { entryTime: entryTime, earlyBird: document.getElementById("earlyBirdDiscount").checked, weekendDiscount: document.getElementById("weekendDiscount").checked, loyaltyMember: document.getElementById("loyaltyDiscount").checked, }; const { fee: finalFee, discounts } = calculator.applyDiscounts( baseParkingFee, discountOptions ); // Ensure 'UGX' is used as part of the string parkingDuration.textContent = `${duration.toFixed(2)} hours`; baseFee.textContent = `${baseParkingFee.toFixed(2)}`; discountsApplied.textContent = discounts.length > 0 ? discounts.join(", ") : "No discounts applied"; totalFee.textContent = `${finalFee.toFixed(2)}`; resultSection.style.display = "block"; } catch (error) { alert(error.message); resultSection.style.display = "none"; } });