42 lines
1.6 KiB
JavaScript
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();
|
|
}); |