2025-07-13 05:50:47 -07:00
|
|
|
{{define "content"}}
|
2025-07-14 06:26:26 -07:00
|
|
|
<h1 class="text-3xl font-bold mb-4 text-gray-800">Quotes Expiring</h1>
|
|
|
|
|
<div class="pl-4">
|
|
|
|
|
<!-- Expiring Soon Section -->
|
|
|
|
|
<h2 class="text-xl font-semibold mt-6 mb-2">Expiring Soon</h2>
|
|
|
|
|
<table class="min-w-full border text-center align-middle mt-1 ml-4">
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Quote</th>
|
|
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Enquiry</th>
|
2025-07-17 06:35:30 -07:00
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Issued By</th>
|
|
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Issued At</th>
|
|
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Expires</th>
|
2025-07-14 06:26:26 -07:00
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Reminder</th>
|
2025-07-17 06:35:30 -07:00
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Reminder Sent</th>
|
2025-07-14 06:26:26 -07:00
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody>
|
|
|
|
|
{{range .ExpiringSoonQuotes}}
|
|
|
|
|
<tr class="hover:bg-slate-50 transition">
|
|
|
|
|
<td class="px-4 py-2 border align-middle"><a href="/documents/view/{{.ID}}" class="text-blue-600 underline">{{.ID}}</a></td>
|
2025-07-17 06:35:30 -07:00
|
|
|
<td class="px-4 py-2 border align-middle"><a href="/enquiries/view/{{.EnquiryID}}" class="text-blue-600 underline">{{.EnquiryRef}}</a></td>
|
2025-07-14 06:26:26 -07:00
|
|
|
<td class="px-4 py-2 border align-middle">{{.Username}}</td>
|
|
|
|
|
<td class="px-4 py-2 border align-middle">{{.DateIssued}}</td>
|
|
|
|
|
<td class="px-4 py-2 border align-middle">{{.ValidUntil}} <span class="text-gray-500">({{.ValidUntilRelative}})</span></td>
|
2025-07-17 06:35:30 -07:00
|
|
|
<td class="px-4 py-2 border align-middle">
|
|
|
|
|
{{if .LatestReminderType}}
|
|
|
|
|
{{if or (eq .LatestReminderType "First Reminder") (eq .LatestReminderType "First Reminder Sent")}}
|
|
|
|
|
<span class="inline-block px-3 py-1 rounded-full text-xs font-semibold bg-blue-100 text-blue-700 border border-blue-200">{{.LatestReminderType}}</span>
|
|
|
|
|
{{else if or (eq .LatestReminderType "Second Reminder") (eq .LatestReminderType "Second Reminder Sent")}}
|
|
|
|
|
<span class="inline-block px-3 py-1 rounded-full text-xs font-semibold bg-yellow-100 text-yellow-700 border border-yellow-200">{{.LatestReminderType}}</span>
|
|
|
|
|
{{else if or (eq .LatestReminderType "Final Reminder") (eq .LatestReminderType "Final Reminder Sent")}}
|
|
|
|
|
<span class="inline-block px-3 py-1 rounded-full text-xs font-semibold bg-red-100 text-red-700 border border-red-200">{{.LatestReminderType}}</span>
|
|
|
|
|
{{else}}
|
|
|
|
|
<span class="inline-block px-3 py-1 rounded-full text-xs font-semibold bg-gray-200 text-gray-700 border border-gray-300">{{.LatestReminderType}}</span>
|
|
|
|
|
{{end}}
|
|
|
|
|
{{else}}
|
|
|
|
|
<span class="inline-block px-3 py-1 rounded-full text-xs font-semibold bg-gray-200 text-gray-700 border border-gray-300">No Reminder Sent</span>
|
|
|
|
|
{{end}}
|
|
|
|
|
</td>
|
|
|
|
|
<td class="px-4 py-2 border align-middle">
|
|
|
|
|
{{if .LatestReminderSent}}{{.LatestReminderSent}}{{else}}-{{end}}
|
|
|
|
|
</td>
|
2025-07-14 06:26:26 -07:00
|
|
|
</tr>
|
|
|
|
|
{{else}}
|
2025-07-17 06:35:30 -07:00
|
|
|
<tr><td colspan="7" class="px-4 py-2 border text-center align-middle">No quotes expiring soon.</td></tr>
|
2025-07-14 06:26:26 -07:00
|
|
|
{{end}}
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
<!-- Recently Expired Quotes Section -->
|
|
|
|
|
<h2 class="text-xl font-semibold mt-6 mb-2">Recently Expired</h2>
|
|
|
|
|
<table class="min-w-full border mb-6 text-center align-middle mt-1 ml-4">
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Quote</th>
|
|
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Enquiry</th>
|
2025-07-17 06:35:30 -07:00
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Issued By</th>
|
|
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Issued At</th>
|
|
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Expires</th>
|
2025-07-14 06:26:26 -07:00
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Reminder</th>
|
2025-07-17 06:35:30 -07:00
|
|
|
<th class="px-4 py-3 border font-semibold text-gray-700 align-middle">Reminder Sent</th>
|
2025-07-14 06:26:26 -07:00
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody>
|
|
|
|
|
{{range .RecentlyExpiredQuotes}}
|
|
|
|
|
<tr class="hover:bg-slate-50 transition">
|
|
|
|
|
<td class="px-4 py-2 border align-middle"><a href="/documents/view/{{.ID}}" class="text-blue-600 underline">{{.ID}}</a></td>
|
2025-07-17 06:35:30 -07:00
|
|
|
<td class="px-4 py-2 border align-middle"><a href="/enquiries/view/{{.EnquiryID}}" class="text-blue-600 underline">{{.EnquiryRef}}</a></td>
|
2025-07-14 06:26:26 -07:00
|
|
|
<td class="px-4 py-2 border align-middle">{{.Username}}</td>
|
|
|
|
|
<td class="px-4 py-2 border align-middle">{{.DateIssued}}</td>
|
|
|
|
|
<td class="px-4 py-2 border align-middle">{{.ValidUntil}} <span class="text-gray-500">({{.ValidUntilRelative}})</span></td>
|
2025-07-17 06:35:30 -07:00
|
|
|
<td class="px-4 py-2 border align-middle">
|
|
|
|
|
{{if .LatestReminderType}}
|
|
|
|
|
{{if or (eq .LatestReminderType "First Reminder Sent") (eq .LatestReminderType "First Reminder")}}
|
|
|
|
|
<span class="inline-block px-3 py-1 rounded-full text-xs font-semibold bg-blue-100 text-blue-700 border border-blue-200">{{.LatestReminderType}}</span>
|
|
|
|
|
{{else if or (eq .LatestReminderType "Second Reminder Sent") (eq .LatestReminderType "Second Reminder")}}
|
|
|
|
|
<span class="inline-block px-3 py-1 rounded-full text-xs font-semibold bg-yellow-100 text-yellow-700 border border-yellow-200">{{.LatestReminderType}}</span>
|
|
|
|
|
{{else if or (eq .LatestReminderType "Final Reminder Sent") (eq .LatestReminderType "Final Reminder")}}
|
|
|
|
|
<span class="inline-block px-3 py-1 rounded-full text-xs font-semibold bg-red-100 text-red-700 border border-red-200">{{.LatestReminderType}}</span>
|
|
|
|
|
{{else}}
|
|
|
|
|
<span class="inline-block px-3 py-1 rounded-full text-xs font-semibold bg-gray-200 text-gray-700 border border-gray-300">{{.LatestReminderType}}</span>
|
|
|
|
|
{{end}}
|
|
|
|
|
{{else}}
|
|
|
|
|
<span class="inline-block px-3 py-1 rounded-full text-xs font-semibold bg-gray-200 text-gray-700 border border-gray-300">No Reminder Sent</span>
|
|
|
|
|
{{end}}
|
|
|
|
|
</td>
|
|
|
|
|
<td class="px-4 py-2 border align-middle">
|
|
|
|
|
{{if .LatestReminderSent}}{{.LatestReminderSent}}{{else}}-{{end}}
|
|
|
|
|
</td>
|
2025-07-14 06:26:26 -07:00
|
|
|
</tr>
|
|
|
|
|
{{else}}
|
2025-07-17 06:35:30 -07:00
|
|
|
<tr><td colspan="7" class="px-4 py-2 border text-center align-middle">No recently expired quotes.</td></tr>
|
2025-07-14 06:26:26 -07:00
|
|
|
{{end}}
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
2025-07-13 05:50:47 -07:00
|
|
|
{{end}}
|