This commit is contained in:
2026-04-25 15:00:05 -05:00
parent 93db2f237f
commit 6638030e2e
2 changed files with 49 additions and 13 deletions

View File

@@ -20,7 +20,11 @@ function ensureModalElement() {
document.body.appendChild(modal);
}
}
function getEmailModalTitle(invoice, isOverdue) {
if (isOverdue) return `⏰ Send Reminder for Invoice #${invoice.invoice_number || invoice.id}`;
if (invoice.email_status === 'sent') return `🔁 Resend Invoice #${invoice.invoice_number || invoice.id}`;
return `📤 Send Invoice #${invoice.invoice_number || invoice.id}`;
}
function renderModalContent() {
const modal = document.getElementById('email-modal');
if (!modal) return;
@@ -28,7 +32,18 @@ function renderModalContent() {
const defaultEmail = currentInvoice.email || '';
const existingStripeUrl = currentInvoice.stripe_payment_link_url || '';
const stripeStatus = currentInvoice.stripe_payment_status || '';
// Detect overdue: unpaid + older than 30 days
const invoiceDateParsed = currentInvoice.invoice_date
? new Date(currentInvoice.invoice_date.split('T')[0])
: null;
const daysSinceInvoice = invoiceDateParsed
? Math.floor((new Date() - invoiceDateParsed) / 86400000)
: 0;
const isOverdue = !currentInvoice.paid_date && daysSinceInvoice > 30;
const modalTitle = getEmailModalTitle(currentInvoice, isOverdue);
// Status indicator for existing link
let stripeBadgeHtml = '';
if (existingStripeUrl && stripeStatus === 'paid') {
@@ -137,15 +152,6 @@ function renderModalContent() {
paymentText = 'Our terms are Net 30.';
}
// Detect overdue: unpaid + older than 30 days
const invoiceDateParsed = currentInvoice.invoice_date
? new Date(currentInvoice.invoice_date.split('T')[0])
: null;
const daysSinceInvoice = invoiceDateParsed
? Math.floor((new Date() - invoiceDateParsed) / 86400000)
: 0;
const isOverdue = !currentInvoice.paid_date && daysSinceInvoice > 30;
let defaultHtml = '';
if (isOverdue) {