Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-04-18 16:45:35 +00:00
co-authored by renee-png
parent 46070b958d
commit 85f1ce98ef
3 changed files with 316 additions and 18 deletions
+18 -18
View File
@@ -135,11 +135,11 @@ export function EstoppelForm() {
doc.text(`c/o ${firm.company_name}`, margin, y);
y += 12;
}
doc.setFont("helvetica", "bold");
doc.setFont(font, "bold");
doc.text(fmtDateLong(date), pageW - margin - doc.getTextWidth(fmtDateLong(date)), 60);
y += 16;
doc.setFont("helvetica", "normal");
doc.setFont(font, "normal");
const recipientLines = [
`TO: ${recipientName}`,
...recipientAddress.split("\n").filter(Boolean),
@@ -158,24 +158,24 @@ export function EstoppelForm() {
];
meta.forEach(([k, v]) => {
if (!v) return;
doc.setFont("helvetica", "bold");
doc.setFont(font, "bold");
doc.text(k, margin, y);
doc.setFont("helvetica", "normal");
doc.setFont(font, "normal");
doc.text(v, margin + 110, y);
y += 13;
});
if (legalDescription) {
doc.setFont("helvetica", "bold");
doc.setFont(font, "bold");
doc.text("Legal Description:", margin, y);
y += 13;
doc.setFont("helvetica", "normal");
doc.setFont(font, "normal");
const ll = doc.splitTextToSize(legalDescription, pageW - margin * 2);
doc.text(ll, margin, y);
y += ll.length * 13;
}
y += 10;
doc.setFont("helvetica", "bold");
doc.setFont(font, "bold");
doc.setFontSize(11);
doc.text("FINANCIAL SUMMARY", margin, y);
y += 16;
@@ -187,7 +187,7 @@ export function EstoppelForm() {
["Delinquency Fee", parseFloat(delinquencyFee) || 0],
["Estoppel Certificate Fee", parseFloat(estoppelFee) || 0],
];
doc.setFont("helvetica", "normal");
doc.setFont(font, "normal");
finRows.forEach(([d, a]) => {
doc.text(d, margin, y);
const t = `$${fmtCurrency(a)}`;
@@ -197,17 +197,17 @@ export function EstoppelForm() {
y += 4;
doc.line(margin, y, pageW - margin, y);
y += 16;
doc.setFont("helvetica", "bold");
doc.setFont(font, "bold");
doc.text("GRAND TOTAL DUE AT CLOSING", margin, y);
const gt = `$${fmtCurrency(grandTotal)}`;
doc.text(gt, pageW - margin - doc.getTextWidth(gt), y);
y += 26;
// Q10 payoff
doc.setFont("helvetica", "bold");
doc.setFont(font, "bold");
doc.text("CURRENT PAYOFF (delinquency)", margin, y);
y += 16;
doc.setFont("helvetica", "normal");
doc.setFont(font, "normal");
const payoffRows: [string, number][] = [
["Unpaid Assessments", parseFloat(q10Unpaid) || 0],
["Interest", parseFloat(q10Interest) || 0],
@@ -224,17 +224,17 @@ export function EstoppelForm() {
y += 4;
doc.line(margin, y, pageW - margin, y);
y += 16;
doc.setFont("helvetica", "bold");
doc.setFont(font, "bold");
doc.text("PAYOFF SUBTOTAL", margin, y);
const ps = `$${fmtCurrency(q10Sub)}`;
doc.text(ps, pageW - margin - doc.getTextWidth(ps), y);
y += 26;
// Questionnaire
doc.setFont("helvetica", "bold");
doc.setFont(font, "bold");
doc.text("QUESTIONNAIRE", margin, y);
y += 16;
doc.setFont("helvetica", "normal");
doc.setFont(font, "normal");
const qa: [string, string][] = [
["Account in collections?", q1],
["Capital contribution due?", q4],
@@ -250,18 +250,18 @@ export function EstoppelForm() {
y = 60;
}
doc.text(q, margin, y);
doc.setFont("helvetica", "bold");
doc.setFont(font, "bold");
doc.text(a.toUpperCase(), pageW - margin - 30, y);
doc.setFont("helvetica", "normal");
doc.setFont(font, "normal");
y += 14;
});
if (additionalInfo) {
y += 10;
doc.setFont("helvetica", "bold");
doc.setFont(font, "bold");
doc.text("Additional Information:", margin, y);
y += 14;
doc.setFont("helvetica", "normal");
doc.setFont(font, "normal");
const al = doc.splitTextToSize(additionalInfo, pageW - margin * 2);
doc.text(al, margin, y);
}