2025-01-01 17:03:09 -05:00

42 lines
1.6 KiB
JavaScript

"use strict";
const getElement = selector => document.querySelector(selector);
const displayInvoice = () => {
const companyName = getElement("#company").value;
const amountDue = parseFloat(getElement("#amount_due").value);
const invoiceDate = new Date(getElement("#invoice_date").value);
// display user entries
let output = "Invoice Information\n";
output += "Company name: " + companyName + "\n";
output += "Amount due: $" + amountDue.toFixed(2) + "\n";
output += "Invoice Date: " + invoiceDate.toDateString() + "\n";
// calculate due date and display
const dueDate = new Date(invoiceDate); // make a copy of invoice date
dueDate.setDate(invoiceDate.getDate() + 90); // set the due date to 90 days in the future
output += "Due Date: " + dueDate.toDateString() + "\n";
// calculate days until due and display
const today = new Date();
output += "Today: " + today.toDateString() + "\n";
const msUntilDue = dueDate.getTime() - today.getTime();
const msPerDay = 24 * 60 * 60 * 1000;
const daysToDue = Math.ceil(msUntilDue / msPerDay);
if (daysToDue == 0) {
output += "Due TODAY\n";
} else if (daysToDue < 0) {
output += Math.abs(daysToDue) + " days OVERDUE\n";
} else {
output += "Due in " + daysToDue + " days\n";
}
alert(output);
}
document.addEventListener("DOMContentLoaded", () => {
getElement("#display_invoice").addEventListener("click", displayInvoice);
getElement("#company").focus();
});