Quote largely working

This commit is contained in:
Finley Ghosh 2026-01-21 18:43:55 +11:00
parent 846fd36c9f
commit 9becb1c5c9
5 changed files with 61 additions and 91 deletions

View file

@ -108,18 +108,27 @@ func (g *HTMLDocumentGenerator) BuildInvoiceHTML(data *InvoicePDFData, totalPage
} }
// Parse and execute template // Parse and execute template
// Try multiple possible paths to find the template // Try multiple possible path sets to find the invoice and shared header templates together
possiblePaths := []string{ possiblePathSets := [][]string{
filepath.Join("internal", "cmc", "pdf", "templates", "invoice.html"), {
filepath.Join("go", "internal", "cmc", "pdf", "templates", "invoice.html"), filepath.Join("internal", "cmc", "pdf", "templates", "invoice.html"),
"/app/go/internal/cmc/pdf/templates/invoice.html", filepath.Join("internal", "cmc", "pdf", "templates", "header.html"),
},
{
filepath.Join("go", "internal", "cmc", "pdf", "templates", "invoice.html"),
filepath.Join("go", "internal", "cmc", "pdf", "templates", "header.html"),
},
{
"/app/go/internal/cmc/pdf/templates/invoice.html",
"/app/go/internal/cmc/pdf/templates/header.html",
},
} }
var tmpl *template.Template var tmpl *template.Template
var err error var err error
for _, tmplPath := range possiblePaths { for _, pathSet := range possiblePathSets {
tmpl, err = template.New("invoice.html").Funcs(funcMap).ParseFiles(tmplPath) tmpl, err = template.New("invoice.html").Funcs(funcMap).ParseFiles(pathSet...)
if err == nil { if err == nil {
break break
} }

View file

@ -158,18 +158,27 @@ func (g *HTMLDocumentGenerator) BuildQuoteHTML(data *QuotePDFData, totalPages in
} }
// Parse and execute template // Parse and execute template
// Try multiple possible paths to find the template // Try multiple possible path sets to find the quote and shared header templates together
possiblePaths := []string{ possiblePathSets := [][]string{
filepath.Join("internal", "cmc", "pdf", "templates", "quote.html"), {
filepath.Join("go", "internal", "cmc", "pdf", "templates", "quote.html"), filepath.Join("internal", "cmc", "pdf", "templates", "quote.html"),
"/app/go/internal/cmc/pdf/templates/quote.html", filepath.Join("internal", "cmc", "pdf", "templates", "header.html"),
},
{
filepath.Join("go", "internal", "cmc", "pdf", "templates", "quote.html"),
filepath.Join("go", "internal", "cmc", "pdf", "templates", "header.html"),
},
{
"/app/go/internal/cmc/pdf/templates/quote.html",
"/app/go/internal/cmc/pdf/templates/header.html",
},
} }
var tmpl *template.Template var tmpl *template.Template
var err error var err error
for _, tmplPath := range possiblePaths { for _, pathSet := range possiblePathSets {
tmpl, err = template.New("quote.html").Funcs(funcMap).ParseFiles(tmplPath) tmpl, err = template.New("quote.html").Funcs(funcMap).ParseFiles(pathSet...)
if err == nil { if err == nil {
break break
} }

View file

@ -0,0 +1,26 @@
{{define "CompanyHeader"}}
<!-- Company Header with Logo and Centered Title -->
<div style="display: flex; align-items: flex-start; gap: 2mm; margin-bottom: 0;">
<img src="{{.LogoDataURI}}" class="logo" alt="CMC Logo" style="width: 40mm; height: auto; display: block; padding-right: 5mm;">
<div style="flex: 1;">
<div style="border-bottom: 2px solid #000; padding-bottom: 0mm; text-align: center;">
<h1 style="font-size: 32pt; color: #003399; margin: 0 0 -1mm 0;">CMC TECHNOLOGIES</h1>
<p style="margin: 0mm 0 1mm 0; font-size: 10pt;">PTY LIMITED ACN: 085 991 224&nbsp;&nbsp;ABN: 47 085 991 224</p>
</div>
<!-- Contact Details Below Line -->
<div style="display: flex; justify-content: space-between; margin: 2mm 2mm 2mm 2mm; font-size: 10pt;">
<div>
<strong>Phone:</strong> +61 2 9669 4000<br>
<strong>Fax:</strong> +61 2 9669 4111<br>
<strong>Email:</strong> <a href="mailto:sales@cmctechnologies.com.au" style="color: #0000FF; text-decoration: underline;">sales@cmctechnologies.com.au</a><br>
<strong>Web Site:</strong> <a href="http://www.cmctechnologies.net.au" style="color: #0000FF; text-decoration: underline;">www.cmctechnologies.net.au</a>
</div>
<div style="text-align: right;">
Unit 19, 77 Bourke Rd<br>
Alexandria NSW 2015<br>
AUSTRALIA
</div>
</div>
</div>
</div>
{{end}}

View file

@ -308,30 +308,7 @@
</style> </style>
</head> </head>
<body> <body>
<!-- Company Header with Logo and Centered Title --> {{template "CompanyHeader" .}}
<div style="display: flex; align-items: flex-start; gap: 2mm; margin-bottom: 0;">
<img src="{{.LogoDataURI}}" class="logo" alt="CMC Logo" style="width: 40mm; height: auto; display: block; padding-right: 5mm;">
<div style="flex: 1;">
<div style="border-bottom: 2px solid #000; padding-bottom: 0mm; text-align: center;">
<h1 style="font-size: 32pt; color: #003399; margin: 0 0 -1mm 0;">CMC TECHNOLOGIES</h1>
<p style="margin: 0mm 0 1mm 0; font-size: 10pt;">PTY LIMITED ACN: 085 991 224&nbsp;&nbsp;ABN: 47 085 991 224</p>
</div>
<!-- Contact Details Below Line -->
<div style="display: flex; justify-content: space-between; margin: 2mm 2mm 2mm 2mm; font-size: 10pt;">
<div>
<strong>Phone:</strong> +61 2 9669 4000<br>
<strong>Fax:</strong> +61 2 9669 4111<br>
<strong>Email:</strong> <a href="mailto:sales@cmctechnologies.com.au" style="color: #0000FF; text-decoration: underline;">sales@cmctechnologies.com.au</a><br>
<strong>Web Site:</strong> <a href="http://www.cmctechnologies.net.au" style="color: #0000FF; text-decoration: underline;">www.cmctechnologies.net.au</a>
</div>
<div style="text-align: right;">
Unit 19, 77 Bourke Rd<br>
Alexandria NSW 2015<br>
AUSTRALIA
</div>
</div>
</div>
</div>
<!-- TAX INVOICE Section with Invoice Number and Date --> <!-- TAX INVOICE Section with Invoice Number and Date -->
<div style="display: flex; justify-content: space-between; align-items: center; margin: 2mm 0 3mm 0;"> <div style="display: flex; justify-content: space-between; align-items: center; margin: 2mm 0 3mm 0;">

View file

@ -8,29 +8,7 @@
size: A4; size: A4;
margin: 15mm; margin: 15mm;
} }
body {
font-family: Helvetica, Arial, sans-serif;
font-size: 9pt;
line-height: 1.4;
margin: 0;
padding: 0;
color: #000;
}
a {
color: #0000FF;
text-decoration: underline;
}
.company-info {
display: flex;
align-items: flex-start;
gap: 10mm;
margin-bottom: 0;
padding-bottom: 0;
}
.logo { .logo {
width: 40mm; width: 40mm;
height: auto; height: auto;
@ -328,36 +306,7 @@
</style> </style>
</head> </head>
<body> <body>
<!-- Company Header --> {{template "CompanyHeader" .}}
<div class="company-info">
{{if .LogoDataURI}}
<img src="{{.LogoDataURI}}" class="logo" alt="CMC Technologies Logo">
{{end}}
<div class="company-header">
<h1>CMC TECHNOLOGIES</h1>
<p>PTY LIMITED ACN: 085 991 224&nbsp;&nbsp;&nbsp;&nbsp;ABN: 47 085 991 224</p>
</div>
</div>
<div class="header-separator"></div>
<!-- Contact Details Section -->
<div class="contact-section">
<div class="engineering-col">
<div>Engineering &</div>
<div>Industrial</div>
<div>Instrumentation</div>
</div>
<div class="contact-col">
<div><strong>Phone:</strong> +61 2 9669 4000</div>
<div><strong>Fax:</strong> +61 2 9669 4111</div>
<div><strong>Email:</strong> sales@cmctechnologies.com.au</div>
<div><strong>Web Site:</strong> www.cmctechnologies.net.au</div>
<div style="margin-top: 3mm;">Unit 19, 77 Bourke Rd</div>
<div>Alexandria NSW 2015</div>
<div>AUSTRALIA</div>
</div>
</div>
<!-- Quote Details Box --> <!-- Quote Details Box -->
<table class="details-box"> <table class="details-box">