From 57c74e25ae6b7c74b6fed80e3730bfbee85d09ed Mon Sep 17 00:00:00 2001 From: Sam Lown Date: Thu, 9 May 2024 19:40:31 +0000 Subject: [PATCH 1/3] Support multi-currency and PL translation --- components/bill/invoice/invoice.templ | 13 + components/bill/invoice/invoice_templ.go | 6 +- components/bill/invoice/lines.templ | 9 + components/bill/invoice/lines_templ.go | 118 ++-- components/bill/invoice/totals.templ | 21 + components/bill/invoice/totals_templ.go | 33 + components/t/i18n.templ | 10 +- components/t/i18n_templ.go | 41 +- examples/invoice-es-usd.json | 166 +++++ examples/out/credit-note-es-es-tbai.html | 13 + examples/out/full-invoice.html | 13 + examples/out/invoice-es-simplified.html | 13 + examples/out/invoice-es-ticketbai.html | 13 + examples/out/invoice-es-usd.html | 716 ++++++++++++++++++++++ examples/out/invoice-limited-company.html | 13 + examples/out/invoice-mx.html | 13 + examples/out/invoice-tax-included.html | 13 + examples/out/invoice.env.html | 13 + examples/out/mx-food-voucher.html | 13 + examples/out/mx-fuel-balance.html | 13 + examples/out/us-invoice.html | 13 + go.mod | 2 +- locales/de/app.yml | 1 + locales/en/app.yml | 1 + locales/es/app.yml | 1 + locales/fr/app.yml | 1 + locales/it/app.yml | 1 + locales/pl/app.yml | 138 +++++ locales/pl/countries.yml | 250 ++++++++ locales/pl/currencies.yml | 154 +++++ 30 files changed, 1774 insertions(+), 51 deletions(-) create mode 100644 examples/invoice-es-usd.json create mode 100644 examples/out/invoice-es-usd.html create mode 100644 locales/pl/app.yml create mode 100644 locales/pl/countries.yml create mode 100644 locales/pl/currencies.yml diff --git a/components/bill/invoice/invoice.templ b/components/bill/invoice/invoice.templ index d6a9a16..19a9e70 100644 --- a/components/bill/invoice/invoice.templ +++ b/components/bill/invoice/invoice.templ @@ -141,6 +141,16 @@ templ Invoice(env *gobl.Envelope, inv *bill.Invoice) { section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -184,6 +194,9 @@ templ Invoice(env *gobl.Envelope, inv *bill.Invoice) { section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/components/bill/invoice/invoice_templ.go b/components/bill/invoice/invoice_templ.go index aef21de..1b38db2 100644 --- a/components/bill/invoice/invoice_templ.go +++ b/components/bill/invoice/invoice_templ.go @@ -38,7 +38,7 @@ func Invoice(env *gobl.Envelope, inv *bill.Invoice) templ.Component { templ_7745c5c3_Var1 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -177,7 +177,7 @@ func title(inv *bill.Invoice) templ.Component { var templ_7745c5c3_Var3 string templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(supplierAlias(inv)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/invoice.templ`, Line: 320, Col: 25} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/invoice.templ`, Line: 333, Col: 25} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) if templ_7745c5c3_Err != nil { @@ -203,7 +203,7 @@ func title(inv *bill.Invoice) templ.Component { var templ_7745c5c3_Var4 string templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(code(inv.Series, inv.Code)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/invoice.templ`, Line: 328, Col: 31} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/invoice.templ`, Line: 341, Col: 31} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) if templ_7745c5c3_Err != nil { diff --git a/components/bill/invoice/lines.templ b/components/bill/invoice/lines.templ index 950d3d3..99b43e6 100644 --- a/components/bill/invoice/lines.templ +++ b/components/bill/invoice/lines.templ @@ -115,6 +115,7 @@ templ line(_ *bill.Invoice, l *bill.Line, ls *lineSupport) { } @t.LM(l.Item.Price) + @lineItemAltPrices(l) for _, cat := range ls.categories { @@ -145,6 +146,14 @@ templ line(_ *bill.Invoice, l *bill.Line, ls *lineSupport) { } +templ lineItemAltPrices(l *bill.Line) { + for _, a := range l.Item.AltPrices { + + @t.LCD(a.Value, a.Currency) + + } +} + templ lineGroupDiscounts(l *bill.Line) { for _, d := range l.Discounts { if d.Percent != nil { diff --git a/components/bill/invoice/lines_templ.go b/components/bill/invoice/lines_templ.go index 13616d2..d138230 100644 --- a/components/bill/invoice/lines_templ.go +++ b/components/bill/invoice/lines_templ.go @@ -408,6 +408,10 @@ func line(_ *bill.Invoice, l *bill.Line, ls *lineSupport) templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } + templ_7745c5c3_Err = lineItemAltPrices(l).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err @@ -487,7 +491,7 @@ func line(_ *bill.Invoice, l *bill.Line, ls *lineSupport) templ.Component { }) } -func lineGroupDiscounts(l *bill.Line) templ.Component { +func lineItemAltPrices(l *bill.Line) templ.Component { return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) if !templ_7745c5c3_IsBuffer { @@ -500,6 +504,40 @@ func lineGroupDiscounts(l *bill.Line) templ.Component { templ_7745c5c3_Var12 = templ.NopComponent } ctx = templ.ClearChildren(ctx) + for _, a := range l.Item.AltPrices { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = t.LCD(a.Value, a.Currency).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func lineGroupDiscounts(l *bill.Line) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var13 := templ.GetChildren(ctx) + if templ_7745c5c3_Var13 == nil { + templ_7745c5c3_Var13 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) for _, d := range l.Discounts { if d.Percent != nil { templ_7745c5c3_Err = t.L(*d.Percent).Render(ctx, templ_7745c5c3_Buffer) @@ -528,9 +566,9 @@ func lineGroupCharges(l *bill.Line) templ.Component { defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) } ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var13 := templ.GetChildren(ctx) - if templ_7745c5c3_Var13 == nil { - templ_7745c5c3_Var13 = templ.NopComponent + templ_7745c5c3_Var14 := templ.GetChildren(ctx) + if templ_7745c5c3_Var14 == nil { + templ_7745c5c3_Var14 = templ.NopComponent } ctx = templ.ClearChildren(ctx) for _, c := range l.Charges { @@ -561,9 +599,9 @@ func discountsBody(inv *bill.Invoice, ls *lineSupport) templ.Component { defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) } ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var14 := templ.GetChildren(ctx) - if templ_7745c5c3_Var14 == nil { - templ_7745c5c3_Var14 = templ.NopComponent + templ_7745c5c3_Var15 := templ.GetChildren(ctx) + if templ_7745c5c3_Var15 == nil { + templ_7745c5c3_Var15 = templ.NopComponent } ctx = templ.ClearChildren(ctx) if len(inv.Discounts) > 0 { @@ -597,21 +635,21 @@ func discountRow(row *bill.Discount, ls *lineSupport) templ.Component { defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) } ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var15 := templ.GetChildren(ctx) - if templ_7745c5c3_Var15 == nil { - templ_7745c5c3_Var15 = templ.NopComponent + templ_7745c5c3_Var16 := templ.GetChildren(ctx) + if templ_7745c5c3_Var16 == nil { + templ_7745c5c3_Var16 = templ.NopComponent } ctx = templ.ClearChildren(ctx) _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - var templ_7745c5c3_Var16 string - templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(fmt.Sprintf("D%d", row.Index)) + var templ_7745c5c3_Var17 string + templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(fmt.Sprintf("D%d", row.Index)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 180, Col: 34} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 189, Col: 34} } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16)) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -625,12 +663,12 @@ func discountRow(row *bill.Discount, ls *lineSupport) templ.Component { return templ_7745c5c3_Err } if row.Ref != "" { - var templ_7745c5c3_Var17 string - templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(row.Ref) + var templ_7745c5c3_Var18 string + templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(row.Ref) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 185, Col: 14} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 194, Col: 14} } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17)) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -649,12 +687,12 @@ func discountRow(row *bill.Discount, ls *lineSupport) templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - var templ_7745c5c3_Var18 string - templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(row.Reason) + var templ_7745c5c3_Var19 string + templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(row.Reason) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 192, Col: 15} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 201, Col: 15} } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18)) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -747,9 +785,9 @@ func chargesBody(inv *bill.Invoice, ls *lineSupport) templ.Component { defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) } ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var19 := templ.GetChildren(ctx) - if templ_7745c5c3_Var19 == nil { - templ_7745c5c3_Var19 = templ.NopComponent + templ_7745c5c3_Var20 := templ.GetChildren(ctx) + if templ_7745c5c3_Var20 == nil { + templ_7745c5c3_Var20 = templ.NopComponent } ctx = templ.ClearChildren(ctx) if len(inv.Charges) > 0 { @@ -783,21 +821,21 @@ func chargeRow(row *bill.Charge, ls *lineSupport) templ.Component { defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) } ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var20 := templ.GetChildren(ctx) - if templ_7745c5c3_Var20 == nil { - templ_7745c5c3_Var20 = templ.NopComponent + templ_7745c5c3_Var21 := templ.GetChildren(ctx) + if templ_7745c5c3_Var21 == nil { + templ_7745c5c3_Var21 = templ.NopComponent } ctx = templ.ClearChildren(ctx) _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - var templ_7745c5c3_Var21 string - templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(fmt.Sprintf("C%d", row.Index)) + var templ_7745c5c3_Var22 string + templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinStringErrs(fmt.Sprintf("C%d", row.Index)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 247, Col: 34} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 256, Col: 34} } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21)) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -811,12 +849,12 @@ func chargeRow(row *bill.Charge, ls *lineSupport) templ.Component { return templ_7745c5c3_Err } if row.Ref != "" { - var templ_7745c5c3_Var22 string - templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinStringErrs(row.Ref) + var templ_7745c5c3_Var23 string + templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(row.Ref) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 252, Col: 14} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 261, Col: 14} } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22)) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -835,12 +873,12 @@ func chargeRow(row *bill.Charge, ls *lineSupport) templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - var templ_7745c5c3_Var23 string - templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(row.Reason) + var templ_7745c5c3_Var24 string + templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(row.Reason) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 259, Col: 15} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/lines.templ`, Line: 268, Col: 15} } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23)) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/components/bill/invoice/totals.templ b/components/bill/invoice/totals.templ index fb44365..1091e58 100644 --- a/components/bill/invoice/totals.templ +++ b/components/bill/invoice/totals.templ @@ -4,6 +4,7 @@ import ( "fmt" "github.com/invopop/gobl/bill" + "github.com/invopop/gobl/currency" "github.com/invopop/gobl.html/components/t" "github.com/invopop/ctxi18n/i18n" "github.com/invopop/gobl/pay" @@ -124,6 +125,16 @@ templ totalsPayableRows(inv *bill.Invoice, totals *bill.Totals) { @t.LM(totals.Payable) + for _, er := range totalExchangeRates(inv) { + + + @t.T(".exchange_rate", i18n.M{"to": er.To, "amount": t.Localize(ctx, er.Amount)}) + + + @t.LCD(er.Convert(totals.Payable), er.To) + + + } } templ totalsDueRows(inv *bill.Invoice, totals *bill.Totals) { @@ -159,6 +170,16 @@ templ totalsDueRows(inv *bill.Invoice, totals *bill.Totals) { } } +func totalExchangeRates(inv *bill.Invoice) []*currency.ExchangeRate { + list := make([]*currency.ExchangeRate, 0, len(inv.ExchangeRates)) + for _, er := range inv.ExchangeRates { + if er.From == inv.Currency { + list = append(list, er) + } + } + return list +} + func advanceMap(adv *pay.Advance) i18n.M { txt := adv.Description if adv.Ref != "" { diff --git a/components/bill/invoice/totals_templ.go b/components/bill/invoice/totals_templ.go index 05f14ac..4313669 100644 --- a/components/bill/invoice/totals_templ.go +++ b/components/bill/invoice/totals_templ.go @@ -16,6 +16,7 @@ import ( "github.com/invopop/ctxi18n/i18n" "github.com/invopop/gobl.html/components/t" "github.com/invopop/gobl/bill" + "github.com/invopop/gobl/currency" "github.com/invopop/gobl/pay" ) @@ -330,6 +331,28 @@ func totalsPayableRows(inv *bill.Invoice, totals *bill.Totals) templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } + for _, er := range totalExchangeRates(inv) { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = t.T(".exchange_rate", i18n.M{"to": er.To, "amount": t.Localize(ctx, er.Amount)}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = t.LCD(er.Convert(totals.Payable), er.To).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } if !templ_7745c5c3_IsBuffer { _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) } @@ -427,6 +450,16 @@ func totalsDueRows(inv *bill.Invoice, totals *bill.Totals) templ.Component { }) } +func totalExchangeRates(inv *bill.Invoice) []*currency.ExchangeRate { + list := make([]*currency.ExchangeRate, 0, len(inv.ExchangeRates)) + for _, er := range inv.ExchangeRates { + if er.From == inv.Currency { + list = append(list, er) + } + } + return list +} + func advanceMap(adv *pay.Advance) i18n.M { txt := adv.Description if adv.Ref != "" { diff --git a/components/t/i18n.templ b/components/t/i18n.templ index 21bbaa0..30b9cab 100644 --- a/components/t/i18n.templ +++ b/components/t/i18n.templ @@ -37,6 +37,12 @@ templ LC(a num.Amount, cur currency.Code) { { localizeCurrency(ctx, a, cur) } } +// LCD localizes and amount using the formatting defined by the specified currency, +// and uses the disembiguate symbol. +templ LCD(a num.Amount, cur currency.Code) { + { localizeCurrency(ctx, a, cur, currency.WithDisambiguateSymbol()) } +} + // Scope helps set a scope around the context templ Scope(key string) { if ctx = i18n.WithScope(ctx, key); true { @@ -76,7 +82,7 @@ func localizeMoney(ctx context.Context, a num.Amount) string { return f.Amount(a) } -func localizeCurrency(_ context.Context, a num.Amount, cur currency.Code) string { - f := cur.Def().Formatter() +func localizeCurrency(_ context.Context, a num.Amount, cur currency.Code, opts ...currency.FormatOption) string { + f := cur.Def().Formatter(opts...) return f.Amount(a) } diff --git a/components/t/i18n_templ.go b/components/t/i18n_templ.go index e1b6972..31d862f 100644 --- a/components/t/i18n_templ.go +++ b/components/t/i18n_templ.go @@ -172,8 +172,9 @@ func LC(a num.Amount, cur currency.Code) templ.Component { }) } -// Scope helps set a scope around the context -func Scope(key string) templ.Component { +// LCD localizes and amount using the formatting defined by the specified currency, +// and uses the disembiguate symbol. +func LCD(a num.Amount, cur currency.Code) templ.Component { return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) if !templ_7745c5c3_IsBuffer { @@ -186,8 +187,38 @@ func Scope(key string) templ.Component { templ_7745c5c3_Var11 = templ.NopComponent } ctx = templ.ClearChildren(ctx) + var templ_7745c5c3_Var12 string + templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(localizeCurrency(ctx, a, cur, currency.WithDisambiguateSymbol())) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/t/i18n.templ`, Line: 42, Col: 67} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +// Scope helps set a scope around the context +func Scope(key string) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var13 := templ.GetChildren(ctx) + if templ_7745c5c3_Var13 == nil { + templ_7745c5c3_Var13 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) if ctx = i18n.WithScope(ctx, key); true { - templ_7745c5c3_Err = templ_7745c5c3_Var11.Render(ctx, templ_7745c5c3_Buffer) + templ_7745c5c3_Err = templ_7745c5c3_Var13.Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -231,7 +262,7 @@ func localizeMoney(ctx context.Context, a num.Amount) string { return f.Amount(a) } -func localizeCurrency(_ context.Context, a num.Amount, cur currency.Code) string { - f := cur.Def().Formatter() +func localizeCurrency(_ context.Context, a num.Amount, cur currency.Code, opts ...currency.FormatOption) string { + f := cur.Def().Formatter(opts...) return f.Amount(a) } diff --git a/examples/invoice-es-usd.json b/examples/invoice-es-usd.json new file mode 100644 index 0000000..4489556 --- /dev/null +++ b/examples/invoice-es-usd.json @@ -0,0 +1,166 @@ +{ + "$schema": "https://gobl.org/draft-0/envelope", + "head": { + "uuid": "8a51fd30-2a27-11ee-be56-0242ac120002", + "dig": { + "alg": "sha256", + "val": "b4e373834c0deb0f03739ff40a38e029bc6f915fde62c44f2f739ebbdfd013ab" + }, + "draft": true + }, + "doc": { + "$schema": "https://gobl.org/draft-0/bill/invoice", + "uuid": "3aea7b56-59d8-4beb-90bd-f8f280d852a0", + "type": "standard", + "series": "EXPORT", + "code": "001", + "issue_date": "2024-05-09", + "currency": "USD", + "exchange_rates": [ + { + "from": "USD", + "to": "EUR", + "amount": "0.875967" + }, + { + "from": "MXN", + "to": "USD", + "amount": "0.059197" + } + ], + "supplier": { + "name": "Provide One S.L.", + "tax_id": { + "country": "ES", + "code": "B98602642" + }, + "addresses": [ + { + "num": "42", + "street": "Calle Pradillo", + "locality": "Madrid", + "region": "Madrid", + "code": "28002", + "country": "ES" + } + ], + "emails": [ + { + "addr": "billing@example.com" + } + ] + }, + "customer": { + "name": "Sample Consumer Inc.", + "tax_id": { + "country": "US" + } + }, + "lines": [ + { + "i": 1, + "quantity": "20", + "item": { + "name": "Development services from Spain", + "currency": "USD", + "price": "100.00", + "alt_prices": [ + { + "currency": "EUR", + "value": "90.00" + } + ], + "unit": "h" + }, + "sum": "2000.00", + "discounts": [ + { + "percent": "10%", + "amount": "200.00", + "reason": "Special discount" + } + ], + "taxes": [ + { + "cat": "VAT", + "rate": "standard", + "percent": "21.0%" + } + ], + "total": "1800.00" + }, + { + "i": 2, + "quantity": "10", + "item": { + "name": "Development services from Mexico", + "currency": "USD", + "price": "88.80", + "alt_prices": [ + { + "currency": "MXN", + "value": "1500.00" + } + ], + "unit": "h" + }, + "sum": "888.00", + "taxes": [ + { + "cat": "VAT", + "rate": "standard", + "percent": "21.0%" + } + ], + "total": "888.00" + }, + { + "i": 3, + "quantity": "1", + "item": { + "name": "Financial service", + "price": "10.00" + }, + "sum": "10.00", + "taxes": [ + { + "cat": "VAT", + "rate": "zero", + "percent": "0.0%" + } + ], + "total": "10.00" + } + ], + "totals": { + "sum": "2698.00", + "total": "2698.00", + "taxes": { + "categories": [ + { + "code": "VAT", + "rates": [ + { + "key": "standard", + "base": "2688.00", + "percent": "21.0%", + "amount": "564.48" + }, + { + "key": "zero", + "base": "10.00", + "percent": "0.0%", + "amount": "0.00" + } + ], + "amount": "564.48" + } + ], + "sum": "564.48" + }, + "tax": "564.48", + "total_with_tax": "3262.48", + "payable": "3262.48" + } + } +} \ No newline at end of file diff --git a/examples/out/credit-note-es-es-tbai.html b/examples/out/credit-note-es-es-tbai.html index c809955..53d475c 100644 --- a/examples/out/credit-note-es-es-tbai.html +++ b/examples/out/credit-note-es-es-tbai.html @@ -259,6 +259,16 @@ section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -302,6 +312,9 @@ section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/examples/out/full-invoice.html b/examples/out/full-invoice.html index fcafc9f..9a8de5b 100644 --- a/examples/out/full-invoice.html +++ b/examples/out/full-invoice.html @@ -259,6 +259,16 @@ section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -302,6 +312,9 @@ section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/examples/out/invoice-es-simplified.html b/examples/out/invoice-es-simplified.html index a864b6a..f6aa1b9 100644 --- a/examples/out/invoice-es-simplified.html +++ b/examples/out/invoice-es-simplified.html @@ -259,6 +259,16 @@ section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -302,6 +312,9 @@ section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/examples/out/invoice-es-ticketbai.html b/examples/out/invoice-es-ticketbai.html index 8150622..47de7b5 100644 --- a/examples/out/invoice-es-ticketbai.html +++ b/examples/out/invoice-es-ticketbai.html @@ -259,6 +259,16 @@ section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -302,6 +312,9 @@ section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/examples/out/invoice-es-usd.html b/examples/out/invoice-es-usd.html new file mode 100644 index 0000000..567b998 --- /dev/null +++ b/examples/out/invoice-es-usd.html @@ -0,0 +1,716 @@ + + + + GOBL HTML Generator + + + + + + + + + +
+ +
+ + Page + + 1 + + of + + 1 + + + +
+ +
+
+
+
+
+
+ Provide One S.L. +
+
+

+ Invoice +

+

+ EXPORT-001 +

+
+
+

+ Summary +

+
    +
  • + + Issue Date + + + 2024-05-09 + +
  • +
  • + + Currency + + + United States Dollar (USD) + +
  • +
+
+
+
+
+

+ Supplier +

+
+
+ Provide One S.L. +
+
+ + Calle Pradillo 42, Madrid, Madrid, 28002 (Spain) + +
+
+ Email: billing@example.com +
+
+ NIF: (ES) B98602642 +
+
+
+
+

+ Customer +

+
+
+ Sample Consumer Inc. +
+
+
+
+
+
+

+ Lines +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ # + + Description + + Qty. + + Unit + + Price + + VAT + + Disc. + + Total +
+ 1 + + + Development services from Spain + + + 20 + + h + + $100.00 + + €90,00 + + + 21.0% + + 10% + + $1,800.00 +
+ 2 + + + Development services from Mexico + + + 10 + + h + + $88.80 + + MEX$1,500.00 + + + 21.0% + + $888.00 +
+ 3 + + + Financial service + + + 1 + + + + $10.00 + + 0.0% + + $10.00 +
+
+
+
+

+ Totals +

+ + + + + + + + + + + + + + + + + + + +
+ Sum + + $2,698.00 +
+ Tax + + $564.48 +
+ Total to pay + + $3,262.48 +
+ Exchange to EUR (0.875967) + + €2.857,82 +
+
+
+

+ Taxes +

+ + + + + + + + + + + + + + + + + + + + + + +
+ Tax + + Base + + Rate + + Amount +
+ VAT + + $2,688.00 + + 21.0% + + $564.48 +
+ $10.00 + + 0.0% + + $0.00 +
+
+
+
+
+ +
+ + \ No newline at end of file diff --git a/examples/out/invoice-limited-company.html b/examples/out/invoice-limited-company.html index f46076d..cfd077d 100644 --- a/examples/out/invoice-limited-company.html +++ b/examples/out/invoice-limited-company.html @@ -259,6 +259,16 @@ section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -302,6 +312,9 @@ section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/examples/out/invoice-mx.html b/examples/out/invoice-mx.html index 220efe6..69fcb47 100644 --- a/examples/out/invoice-mx.html +++ b/examples/out/invoice-mx.html @@ -259,6 +259,16 @@ section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -302,6 +312,9 @@ section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/examples/out/invoice-tax-included.html b/examples/out/invoice-tax-included.html index 651d9d1..dfec11d 100644 --- a/examples/out/invoice-tax-included.html +++ b/examples/out/invoice-tax-included.html @@ -259,6 +259,16 @@ section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -302,6 +312,9 @@ section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/examples/out/invoice.env.html b/examples/out/invoice.env.html index f0901e1..07f8a4f 100644 --- a/examples/out/invoice.env.html +++ b/examples/out/invoice.env.html @@ -259,6 +259,16 @@ section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -302,6 +312,9 @@ section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/examples/out/mx-food-voucher.html b/examples/out/mx-food-voucher.html index a8f34b1..03b7275 100644 --- a/examples/out/mx-food-voucher.html +++ b/examples/out/mx-food-voucher.html @@ -259,6 +259,16 @@ section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -302,6 +312,9 @@ section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/examples/out/mx-fuel-balance.html b/examples/out/mx-fuel-balance.html index 3982692..e028111 100644 --- a/examples/out/mx-fuel-balance.html +++ b/examples/out/mx-fuel-balance.html @@ -259,6 +259,16 @@ section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -302,6 +312,9 @@ section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/examples/out/us-invoice.html b/examples/out/us-invoice.html index 35b6f9e..bfc217d 100644 --- a/examples/out/us-invoice.html +++ b/examples/out/us-invoice.html @@ -259,6 +259,16 @@ section.lines .description .extensions .label { font-weight: 500; } + section.lines .alt-price { + display: block; + font-style: italic; + } + section.lines .alt-price:before { + content: '('; + } + section.lines .alt-price:after { + content: ')'; + } div.totals { order: 8; display: flex; @@ -302,6 +312,9 @@ section.totals tr.strong td { font-weight: 600; } + section.totals .exchange-rate { + font-style: italic; + } section.taxes { order: 1; flex: 1; diff --git a/go.mod b/go.mod index 4619102..268e2ac 100644 --- a/go.mod +++ b/go.mod @@ -49,4 +49,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -// replace github.com/invopop/gobl => ../gobl +replace github.com/invopop/gobl => ../gobl diff --git a/locales/de/app.yml b/locales/de/app.yml index 661947f..d639838 100644 --- a/locales/de/app.yml +++ b/locales/de/app.yml @@ -56,6 +56,7 @@ de: advance: "Vorauszahlung: %{date} %{txt}" advance_sum: "Summe der Vorauszahlungen" due_sum: "Gesamtbetrag fällig" + exchange_rate: "Umtausch in %{to} (%{amount})" taxes: title: "Steuern" diff --git a/locales/en/app.yml b/locales/en/app.yml index 1f0bcb0..ec1a79e 100644 --- a/locales/en/app.yml +++ b/locales/en/app.yml @@ -58,6 +58,7 @@ en: advance: "Advance: %{date} %{txt}" advance_sum: "Sum advances" due_sum: "Total due" + exchange_rate: "Exchange to %{to} (%{amount})" taxes: title: "Taxes" diff --git a/locales/es/app.yml b/locales/es/app.yml index 7257430..a8942a3 100644 --- a/locales/es/app.yml +++ b/locales/es/app.yml @@ -58,6 +58,7 @@ es: advance: "Anticipo: %{date} %{txt}" advance_sum: "Suma Anticipos" due_sum: "Total adeudado" + exchange_rate: "Cambio a %{to} (%{amount})" taxes: title: "Impuestos" diff --git a/locales/fr/app.yml b/locales/fr/app.yml index cc637fa..87b6577 100644 --- a/locales/fr/app.yml +++ b/locales/fr/app.yml @@ -50,6 +50,7 @@ fr: advance: "Avance: %{date} %{txt}" advance_sum: "Somme des avances" due_sum: "Total dû" + exchange_rate: "Échange en %{to} (%{amount})" taxes: title: "Taxes" category: "Taxe" diff --git a/locales/it/app.yml b/locales/it/app.yml index 0dbe1d0..8206f8f 100644 --- a/locales/it/app.yml +++ b/locales/it/app.yml @@ -50,6 +50,7 @@ it: advance: "Anticipo: %{date} %{txt}" advance_sum: "Somma anticipi" due_sum: "Totale dovuto" + exchange_rate: "Cambio in %{to} (%{amount})" taxes: title: "Tasse" category: "Tassa" diff --git a/locales/pl/app.yml b/locales/pl/app.yml new file mode 100644 index 0000000..6dee679 --- /dev/null +++ b/locales/pl/app.yml @@ -0,0 +1,138 @@ +pl: + page: "Strona %{page} z %{count}" + + billing: + invoice: + title: + standard: "Faktura" + standard-simplified: "Uproszczona faktura" + proforma: "Faktura proforma" + corrective: "Faktura korygująca" + credit-note: "Nota kredytowa" + debit-note: "Nota debetowa" + + summary: + title: "Podsumowanie" + issue_date: "Data wystawienia" + value_date: "Data wartości" + operation_date: "Data operacji" + currency: "Waluta" + currency_value: "%{desc} (%{code})" + preceding_invoice: "Poprzednia faktura" + order: "Zamówienie" + order_period: "Okres" + order_period_label: "%{label}" + order_period_range: "%{start} do %{end}" + + supplier: + title: "Dostawca" + + customer: + title: "Klient" + + lines: + title: "Linie" + i: "#" + ref: "Ref." + description: "Opis" + quantity: "Ilość" + unit: "Jednostka" + price: "Cena" + discount: "Rabat" + charges: "Opłaty" + total: "Suma" + + totals: + sum: "Suma" + discount: "Rabat" + charge: "Opłata" + title: "Sumy" + prices_include_tax: "Podatek wliczony" + total: "Suma" + taxes: "Podatek" + total_with_tax: "Suma z podatkiem" + total_to_pay: "Suma do zapłaty" + outlay: "Wydatek %{i}: %{txt}" + advance: "Zaliczka: %{date} %{txt}" + advance_sum: "Suma zaliczek" + due_sum: "Suma należności" + exchange_rate: "Kurs wymiany na %{to} (%{amount})" + + taxes: + title: "Podatki" + category: "Podatek" + base: "Podstawa" + rate: "Stawka" + amount: "Kwota" + + payment: + title: "Płatność" + instructions: + method: "Metoda płatności" + ref: "Referencja" + bank_data: "Instrukcje przelewu bankowego" + card: "Płatność kartą" + card_detail: "Płatność dokonana kartą kończącą się na %{last4} należącą do %{holder}" + observations: "Uwagi dotyczące płatności" + bank_name: "Bank: %{name}" + iban: "IBAN: %{iban}" + account_number: "Numer konta: %{num}" + bic: "BIC: %{bic}" + methods: + card: "Karta bankowa" + credit_transfer: "Przelew bankowy" + cash: "Gotówka" + direct_debit: "Polecenie zapłaty" + online: "Online" + terms: + key: "Warunki płatności" + notes: "Uwagi dotyczące warunków płatności" + due_dates: "Terminy płatności" + keys: + na: "Nieokreślone" + end_of_month: "Koniec miesiąca" + due_date: "W dniu płatności" + deferred: "Po terminie płatności" + proximo: "Następny miesiąc" + instant: "Przy dostarczeniu faktury" + elective: "Wybrane przez klienta" + pending: "Do ustalenia przez dostawcę" + advanced: "Opłacone" + delivery: "Przy dostawie" + + notes: + title: "Uwagi" + reg: + book: "Księga %{id}" + volume: "Tom %{id}" + sheet: "Arkusz %{id}" + section: "Sekcja %{id}" + page: "Strona %{id}" + entry: "Wpis %{id}" + inscription: "Zapisane w:" + + regimes: + co: + cufe: "CUFE: %{cufe}" + cude: "CUDE: %{cude}" + preceding_cufe: "Poprzedni CUFE faktury: %{cufe}" + + organizing: + party: + tax_id: "%{label}: (%{country}) %{code}" + tel: "Tel: %{num}" + tel_label: "Tel: %{num} (%{label})" + email: + one: "Email: %{addr}" + other: "Emaile: %{addr}" + email_label: "%{addr} (%{label})" + identity: "%{label}: %{code}" + identity_code: "Kod tożsamości" + po_box: "Skrzynka pocztowa %{po_box}" + labels: + default: "Kod podatkowy" + ext: "%{label}: %{value}" + + address: + label: "%{label}:" + country: "(%{country})" diff --git a/locales/pl/countries.yml b/locales/pl/countries.yml new file mode 100644 index 0000000..b802f93 --- /dev/null +++ b/locales/pl/countries.yml @@ -0,0 +1,250 @@ +pl: + country_names: + AD: Andora + AE: Zjednoczone Emiraty Arabskie + AF: Afganistan + AG: Antigua i Barbuda + AI: Anguilla + AL: Albania + AM: Armenia + AO: Angola + AQ: Antarktyka + AR: Argentyna + AS: Samoa Amerykańskie + AT: Austria + AU: Australia + AW: Aruba + AX: Wyspy Alandzkie + AZ: Azerbejdżan + BA: Bośnia i Hercegowina + BB: Barbados + BD: Bangladesz + BE: Belgia + BF: Burkina Faso + BG: Bułgaria + BH: Bahrajn + BI: Burundi + BJ: Benin + BL: Saint-Barthélemy + BM: Bermudy + BN: Brunei Darussalam + BO: Boliwia + BQ: Niderlandy Karaibskie + BR: Brazylia + BS: Bahamy + BT: Bhutan + BV: Wyspa Bouveta + BW: Botswana + BY: Białoruś + BZ: Belize + CA: Kanada + CC: Wyspy Kokosowe + CD: Demokratyczna Republika Konga + CF: Republika Środkowoafrykańska + CG: Kongo + CH: Szwajcaria + CI: Côte d’Ivoire + CK: Wyspy Cooka + CL: Chile + CM: Kamerun + CN: Chiny + CO: Kolumbia + CR: Kostaryka + CU: Kuba + CV: Republika Zielonego Przylądka + CW: Curaçao + CX: Wyspa Bożego Narodzenia + CY: Cypr + CZ: Czechy + DE: Niemcy + DJ: Dżibuti + DK: Dania + DM: Dominika + DO: Dominikana + DZ: Algieria + EC: Ekwador + EE: Estonia + EG: Egipt + EH: Sahara Zachodnia + ER: Erytrea + ES: Hiszpania + ET: Etiopia + FI: Finlandia + FJ: Fidżi + FK: Falklandy + FM: Mikronezja + FO: Wyspy Owcze + FR: Francja + GA: Gabon + GB: Wielka Brytania + GD: Grenada + GE: Gruzja + GF: Gujana Francuska + GG: Wyspa Guernsey + GH: Ghana + GI: Gibraltar + GL: Grenlandia + GM: Gambia + GN: Gwinea + GP: Gwadelupa + GQ: Gwinea Równikowa + GR: Grecja + GS: Georgia Południowa i Sandwich Południowy + GT: Gwatemala + GU: Guam + GW: Gwinea Bissau + GY: Gujana + HK: Hongkong + HM: Wyspy Heard i McDonalda + HN: Honduras + HR: Chorwacja + HT: Haiti + HU: Węgry + ID: Indonezja + IE: Irlandia + IL: Izrael + IM: Wyspa Man + IN: Indie + IO: Brytyjskie Terytorium Oceanu Indyjskiego + IQ: Irak + IR: Iran + IS: Islandia + IT: Włochy + JE: Wyspa Jersey + JM: Jamajka + JO: Jordania + JP: Japonia + KE: Kenia + KG: Kirgistan + KH: Kambodża + KI: Kiribati + KM: Komory + KN: Saint Kitts i Nevis + KP: Korea Północna + KR: Korea Południowa + KW: Kuwejt + KZ: Kazachstan + LA: Laos + LB: Liban + LC: Saint Lucia + LI: Liechtenstein + LK: Sri Lanka + LR: Liberia + LS: Lesotho + LT: Litwa + LU: Luksemburg + LV: Łotwa + LY: Libia + MA: Maroko + MC: Monako + MD: Mołdawia + ME: Czarnogóra + MF: Saint-Martin + MG: Madagaskar + MH: Wyspy Marshalla + MK: Macedonia + ML: Mali + MM: Mjanma (Birma) + MN: Mongolia + MO: SRA Makau (Chiny) + MP: Mariany Północne + MQ: Martynika + MR: Mauretania + MS: Montserrat + MT: Malta + MU: Mauritius + MV: Malediwy + MW: Malawi + MX: Meksyk + MY: Malezja + MZ: Mozambik + NA: Namibia + NC: Nowa Kaledonia + NE: Niger + NF: Norfolk + NG: Nigeria + NI: Nikaragua + NL: Holandia + NO: Norwegia + NP: Nepal + NR: Nauru + NU: Niue + NZ: Nowa Zelandia + OM: Oman + PA: Panama + PE: Peru + PF: Polinezja Francuska + PG: Papua-Nowa Gwinea + PH: Filipiny + PK: Pakistan + PL: Polska + PM: Saint-Pierre i Miquelon + PN: Pitcairn + PR: Portoryko + PS: Terytoria Palestyńskie + PT: Portugalia + PW: Palau + PY: Paragwaj + QA: Katar + RE: Reunion + RO: Rumunia + RS: Serbia + RU: Rosja + RW: Rwanda + SA: Arabia Saudyjska + SB: Wyspy Salomona + SC: Seszele + SD: Sudan + SE: Szwecja + SG: Singapur + SH: Wyspa Świętej Heleny + SI: Słowenia + SJ: Svalbard i Jan Mayen + SK: Słowacja + SL: Sierra Leone + SM: San Marino + SN: Senegal + SO: Somalia + SR: Surinam + SS: Sudan Południowy + ST: Wyspy Świętego Tomasza i Książęca + SV: Salwador + SX: Sint Maarten + SY: Syria + SZ: Suazi + TC: Turks i Caicos + TD: Czad + TF: Francuskie Terytoria Południowe + TG: Togo + TH: Tajlandia + TJ: Tadżykistan + TK: Tokelau + TL: Timor Wschodni + TM: Turkmenistan + TN: Tunezja + TO: Tonga + TR: Turcja + TT: Trynidad i Tobago + TV: Tuvalu + TW: Tajwan + TZ: Tanzania + UA: Ukraina + UG: Uganda + UM: Dalekie Wyspy Mniejsze Stanów Zjednoczonych + US: Stany Zjednoczone + UY: Urugwaj + UZ: Uzbekistan + VA: Watykan + VC: Saint Vincent i Grenadyny + VE: Wenezuela + VG: Brytyjskie Wyspy Dziewicze + VI: Wyspy Dziewicze Stanów Zjednoczonych + VN: Wietnam + VU: Vanuatu + WF: Wallis i Futuna + WS: Samoa + YE: Jemen + YT: Majotta + ZA: Republika Południowej Afryki + ZM: Zambia + ZW: Zimbabwe diff --git a/locales/pl/currencies.yml b/locales/pl/currencies.yml new file mode 100644 index 0000000..2fe7325 --- /dev/null +++ b/locales/pl/currencies.yml @@ -0,0 +1,154 @@ +pl: + currencies: + AED: Dirham Zjednoczonych Emiratów Arabskich + AFN: Afgani + ALL: Lek albański + AMD: Dram armeński + ANG: Gulden Antyli Holenderskich + AOA: Kwanza + ARS: Peso argentyńskie + AUD: Dolar australijski + AWG: Gulden arubański + AZN: Manat azerski + BAM: Marka zamienna + BBD: Dolar Barbadosu + BDT: Taka + BGN: Lew bułgarski + BHD: Dinar bahrański + BIF: Frank burundyjski + BMD: Dolar Bermudzki + BND: Dolar Brunei + BOB: Boliviano + BOV: Mvdol + BRL: Real brazylijski + BSD: Dolar Bahamów + BTN: Ngultrum + BWP: Pula + BYN: Rubel białoruski + BZD: Dolar belizeński + CAD: Dolar kanadyjski + CDF: Frank kongijski + CHE: Euro WIR + CHF: Frank szwajcarski + CHW: Frank WIR + CLF: Jednostka Rozrachunku Chilijczyków + CLP: Peso chilijskie + CNY: Juan chiński + COP: Peso kolumbijskie + COU: Unidad de Valor Real kolumbijska + CRC: Colon kostarykański + CUC: Peso kubańskie wymienialne + CUP: Peso kubańskie + CVE: Escudo Zielonego Przylądka + CZK: Korona czeska + DJF: Frank Dżibuti + DKK: Korona duńska + DOP: Peso dominikańskie + DZD: Dinar algierski + EGP: Funt egipski + ERN: Nakfa erytrejska + ETB: Birr etiopski + EUR: Euro + FJD: Dolar Fidżi + FKP: Funt Falklandzki + GBP: Funt szterling + GEL: Lari gruziński + GHS: Cedi ghański + GIP: Funt gibraltarski + GMD: Dalasi + GNF: Frank gwinejski + GTQ: Quetzal + GYD: Dolar gujański + HKD: Dolar hongkoński + HNL: Lempira + HRK: Kuna chorwacka + HTG: Gourde haitańskie + HUF: Forint węgierski + IDR: Rupia indonezyjska + ILS: Szekel izraelski + INR: Rupia indyjska + IQD: Dinar iracki + IRR: Rial irański + ISK: Korona islandzka + JMD: Dolar jamajski + JOD: Dinar jordański + JPY: Jen japoński + KES: Szyling kenijski + KGS: Som kirgiski + KHR: Riel kambodżański + KMF: Frank Komorów + KPW: Won północnokoreański + KRW: Won południowokoreański + KWD: Dinar kuwejcki + KYD: Dolar kajmański + KZT: Tenge kazachskie + LAK: Kip laotański + LBP: Funt libański + LKR: Rupia lankijska + LRD: Dolar liberyjski + LSL: Loti Lesoto + LYD: Dinar libijski + MAD: Dirham marokański + MDL: Lej mołdawski + MGA: Ariary madagaskarski + MKD: Denar macedoński + MMK: Kyat birmański + MNT: Tugrik mongolski + MOP: Pataca Makau + MRU: Ouguiya mauretańska + MUR: Rupia Mauritiusa + MVR: Rufiyaa Malediwów + MWK: Kwacha malawijska + MXN: Peso meksykańskie + MXV: Unidad de Inversion (UDI) + MYR: Ringgit malezyjski + MZN: Metical mozambicki + NAD: Dolar namibijski + NGN: Naira nigeryjska + NIO: Córdoba nikaraguańska + NOK: Korona norweska + NPR: Rupia nepalska + NZD: Dolar nowozelandzki + OMR: Rial omański + PAB: Balboa + PEN: Sol peruwiański + PGK: Kina papuaska + PHP: Peso filipińskie + PKR: Rupia pakistańska + PLN: Złoty polski + PYG: Guarani paragwajskie + QAR: Rial katarski + RON: Lej rumuński + RSD: Dinar serbski + RUB: Rubel rosyjski + RWF: Frank rwandyjski + SAR: Rial saudyjski + SBD: Dolar Wysp Salomona + SCR: Rupia seszelska + SDG: Funt sudański + SEK: Korona szwedzka + SGD: Dolar singapurski + SHP: Funt Świętej Heleny + SLL: Leone Sierra Leone + SOS: Szyling somalijski + SRD: Dolar surinamski + SSP: Funt Sudanu Południowego + STN: Dobra Wysp Świętego Tomasza i Książęcej + SVC: Colon salwadorski + SYP: Funt syryjski + SZL: Lilangeni Suazi + THB: Baht tajski + TJS: Somoni tadżyckie + TMT: Manat turkmeński + TND: Dinar tunezyjski + TOP: Pa'anga tongańskie + TRY: Lira turecka + TTD: Dolar Trynidadu i Tobago + TWD: Nowy dolar tajwański + TZS: Szyling tanzański + UAH: Hrywna ukraińska + UGX: Szyling ugandyjski + USD: Dolar amerykański + USN: Dolar amerykański (następny dzień) + UYI: Peso urugwajskie (jednostki indeksowane) + UYU: Peso urugwajskie \ No newline at end of file From 5269e1210fbb7d4205f1f58eed5ca96e4a673e1e Mon Sep 17 00:00:00 2001 From: Sam Lown Date: Mon, 13 May 2024 10:38:00 +0000 Subject: [PATCH 2/3] Embed CSS only if needed, GR partial translation --- .air.toml | 51 +++ README.md | 24 +- assets/assets.go | 9 + assets/styles/envelope.css | 98 ++++++ assets/styles/invoice.css | 276 +++++++++++++++ cmd/gobl.html/serve.go | 11 +- components/bill/invoice/invoice.templ | 278 ---------------- components/bill/invoice/invoice_templ.go | 6 +- components/envelope.templ | 108 +++--- components/envelope_templ.go | 97 +++++- components/footer.templ | 55 --- components/footer_templ.go | 2 +- examples/out/credit-note-es-es-tbai.html | 386 +-------------------- examples/out/full-invoice.html | 388 +--------------------- examples/out/invoice-es-simplified.html | 386 +-------------------- examples/out/invoice-es-ticketbai.html | 386 +-------------------- examples/out/invoice-es-usd.html | 386 +-------------------- examples/out/invoice-limited-company.html | 386 +-------------------- examples/out/invoice-mx.html | 386 +-------------------- examples/out/invoice-tax-included.html | 386 +-------------------- examples/out/invoice.env.html | 386 +-------------------- examples/out/mx-food-voucher.html | 386 +-------------------- examples/out/mx-fuel-balance.html | 386 +-------------------- examples/out/us-invoice.html | 386 +-------------------- go.mod | 4 +- go.sum | 2 + goblhtml.go | 8 + internal/options.go | 4 + locales/en/app.yml | 2 +- locales/gr/app.yml | 144 ++++++++ locales/gr/countries.yml | 251 ++++++++++++++ pkg/pdf/pdf.go | 34 ++ pkg/pdf/prince.go | 6 + tmp/main | Bin 0 -> 709400 bytes 34 files changed, 1099 insertions(+), 5005 deletions(-) create mode 100644 .air.toml create mode 100644 assets/assets.go create mode 100644 assets/styles/envelope.css create mode 100644 assets/styles/invoice.css create mode 100644 locales/gr/app.yml create mode 100644 locales/gr/countries.yml create mode 100755 tmp/main diff --git a/.air.toml b/.air.toml new file mode 100644 index 0000000..9453af6 --- /dev/null +++ b/.air.toml @@ -0,0 +1,51 @@ +root = "." +testdata_dir = "testdata" +tmp_dir = "tmp" + +[build] +args_bin = ["serve", "-p", "3001", "--pdf", "prince"] +bin = "./gobl.html" +cmd = "templ generate && go build ./cmd/gobl.html" +delay = 1000 +exclude_dir = ["tmp", "vendor", "testdata"] +exclude_file = ["gobl.html"] +exclude_regex = ["_test.go", "_templ.go"] +exclude_unchanged = false +follow_symlink = false +full_bin = "" +include_dir = [] +include_ext = ["go", "tpl", "templ", "css", "tmpl", "html"] +include_file = [] +kill_delay = "0s" +log = "build-errors.log" +poll = false +poll_interval = 0 +post_cmd = [] +pre_cmd = [] +rerun = false +rerun_delay = 500 +send_interrupt = false +stop_on_error = false + +[color] +app = "" +build = "yellow" +main = "magenta" +runner = "green" +watcher = "cyan" + +[log] +main_only = false +time = false + +[misc] +clean_on_exit = false + +[proxy] +enabled = true +app_port = 3001 +proxy_port = 3000 + +[screen] +clear_on_rebuild = false +keep_scroll = true diff --git a/README.md b/README.md index 9a73d2c..5959c05 100644 --- a/README.md +++ b/README.md @@ -14,12 +14,34 @@ GOBL HTML uses [templ](https://templ.guide/) to define a set of components in Go templ generate ``` -During development, it can help massive to have hot reload to be able to make changes and see them quickly. You can do this using the following example command: +During development, it can help massive to have hot reload to be able to make changes and see them quickly. There are two mechanisms we're currently using: + +#### Air + +Air is a great tool to auto reload potentially any project, but works great with Go. Install with: + +```bash +go install github.com/cosmtrek/air@latest +``` + +The `.toml` is already configured and ready in this repository, so simply run: + +```bash +air +``` + +Air is a bit more reliable at detecting file changes, especially for stylesheets. It's configured to offer a proxy with auto-reload, but of course that will only work at the moment when viewing HTML documents, not PDFs. You'll always need to wait a few seconds before page reloads to give the system chance to recompile. + +#### Templ Watcher + +Templ comes with a watch flag that can also be useful. It has the disadvantage however that it uses `.txt` files for comparisons and the generated code should not be uploaded to git directly. Start the process with: ```bash templ generate --watch --cmd="go run ./cmd/gobl.html serve --pdf prince" ``` +Before uploading changes to git, be sure to re-run the regular `templ generate` command, as the live version makes temporary modifications to files that need to be replaced. + ### Testing Tests are currently pretty limited. To ensure the basics are covered, the contents of the `examples` directory are converted to HTML, pretty printed, and output to the `examples/out` directory. The tests will ensure the output is as expected. To update the output test data run: diff --git a/assets/assets.go b/assets/assets.go new file mode 100644 index 0000000..293b662 --- /dev/null +++ b/assets/assets.go @@ -0,0 +1,9 @@ +// Package assets contains the static resources for things like styles. +package assets + +import "embed" + +//go:embed styles + +// Content stores all the asset contents. +var Content embed.FS diff --git a/assets/styles/envelope.css b/assets/styles/envelope.css new file mode 100644 index 0000000..5d2fc97 --- /dev/null +++ b/assets/styles/envelope.css @@ -0,0 +1,98 @@ +@page { + font-family: "Inter", sans-serif; + size: A4 portrait; + margin: 10mm; + margin-bottom: 20mm; + counter-increment: page; + font-size: 9pt; + line-height: 1.5em; + color: #4B5563; +} +body { + font-family: "Inter", sans-serif; + font-size: 9pt; + line-height: 1.5em; + margin: 0; + margin-bottom: 0mm; + /* color: #030712; */ + /* color: #6B7280; */ + color: #4B5563; +} +@media screen { + body { + margin: 10mm; + } + footer.screen { + display: block; + } + footer.print { + display: none; + } +} +article.envelope { + min-height: 100%; +} +article, section, header, div, h1, h2, h3, h4, table, th, td, p { + font-size: 1em; + margin: 0; +} +h1, h2, h3, h4 { + font-weight: 500; + /* color: #030712; */ +} +a { + color: #4B5563; +} +table { + border-spacing: 0; + border-collapse: collapse; +} +th, td { + text-align: left; +} +section.footer span.page-number:before { + content: counter(page); +} +@media print { + footer.screen { + display: none; + } + footer.print { + display: block; + } +} +@page { + @bottom { + content: element(footer); + } +} +footer { + height: 12mm; + text-align: right; + padding: 4mm 0mm; +} +footer.print { + position: running(footer); +} +footer.screen { + padding: 2mm 0mm; +} +footer .page-number { + content: counter(page); +} +footer .pages-number { + content: counter(pages); +} +footer .gobl-logo { + float: left; +} +footer.print .notes:after { + content: " · "; +} +footer .gobl-logo img { + width: 8mm; + height: 8mm; +} +footer.print .gobl-logo { + margin-top: -7mm; +} \ No newline at end of file diff --git a/assets/styles/invoice.css b/assets/styles/invoice.css new file mode 100644 index 0000000..a2fbe46 --- /dev/null +++ b/assets/styles/invoice.css @@ -0,0 +1,276 @@ +header { + width: 100%; + display: flex; + flex-flow: row wrap; + border-bottom: 0.5px solid #E5E7EB; +} +header div.details { + flex: 1; + border-right: 0.5px solid #E5E7EB; +} +header div.contacts { + flex: 1; + /*display: flex; + flex-flow: column wrap;*/ +} +section { + padding: 0mm; + /* width: 100%; */ + flex: 100%; +} +section.title { + padding-top: 0mm; + padding-bottom: 6mm; +} +section.title .hero { + margin-bottom: 6mm; +} +section.title .alias { + font-size: 16pt; + font-weight: bold; + color: #030712; +} +section.title .hero img { + max-width: 100%; + /* max-height: 10mm; */ +} +section.title h2.code { + font-size: 12pt; + color: #030712; + font-weight: 600; +} +section.summary { + padding-right: 6mm; + padding-top: 0mm; + padding-bottom: 0mm; +} +section.summary h2.title { + display: none; +} +section.summary ul { + list-style-type: none; + margin: 0; + padding: 0; + display: flex; + flex-flow: row wrap; +} +section.summary li { + margin-bottom: 6mm; + flex: 50%; +} +section.summary span.label { + display: block; + font-weight: 500; +} +section.summary span.value { + display: block; + color: #030712; +} +section.supplier { + padding: 6mm; + padding-top: 0mm; +} +section.customer { + padding: 6mm; + border-top: 0.5px solid #E5E7EB; +} +section.lines { + order: 5; + padding-top: 6mm; + padding-bottom: 0mm; +} +section.lines h2 { + display: none; +} +section.lines table { + width: 100%; +} +section.lines th, section.lines td { + text-align: left; + border-bottom: 0.5px solid #E5E7EB; + padding: 1.5mm 2mm; + margin: 0px; +} +section.lines th { + font-weight: 600; + background-color: #F3F4F6; +} +section.lines .i, +section.lines .ref { + width: fit-content; +} +section.lines .price, +section.lines .quantity, +section.lines .tax, +section.lines .discount, +section.lines .charge, +section.lines .total { + text-align: right; + width: fit-content; + white-space: nowrap; +} +section.lines .description, +section.lines .reason { + white-space: wrap; +} +section.lines .label { + font-weight: 500; +} +section.lines .description .extensions { + display: block; +} +section.lines .description .extensions .label { + font-weight: 500; +} +section.lines .alt-price { + display: block; + font-style: italic; +} +section.lines .alt-price:before { + content: '('; +} +section.lines .alt-price:after { + content: ')'; +} +div.totals { + order: 8; + display: flex; + flex-wrap: row; + width: 100%; + padding-top: 6mm; + border-bottom: 0.5px solid #E5E7EB; + padding-bottom: 4mm; +} +div.totals td, div.totals th { + padding: 1.5mm 2mm; +} +section.totals { + order: 2; + flex: 1; +} +section.totals h2 { + display: none; +} +section.totals table { + padding-right: 1cm; + padding-left: 1cm; + width: auto; + margin-right: 0; + margin-left: auto; +} +section.totals th { + text-align: right; + border-bottom: 0.5px solid #E5E7EB; + font-weight: normal; +} +section.totals td { + text-align: right; + border-bottom: 0.5px solid #E5E7EB; +} +section.totals tr:last-child th, +section.totals tr:last-child td { + border-bottom: 0; +} +section.totals tr.strong th, +section.totals tr.strong td { + font-weight: 600; +} +section.totals .exchange-rate { + font-style: italic; +} +section.taxes { + order: 1; + flex: 1; +} +section.taxes h2 { + display: none; +} +section.taxes table { + padding-right: 1cm; + padding-left: 1cm; + margin-left: 0; + width: 90%; +} +section.taxes th, section.taxes td { + text-align: right; + padding: 1.5mm 2mm; +} +section.taxes th { + background-color: #F3F4F6; + font-weight: 600; +} +section.taxes td { + border-bottom: 0.5px solid #E5E7EB; +} +section.taxes tr:last-child td { + border-bottom: 0; +} +section.taxes th.category, +section.taxes td.category { + text-align: left; +} +section.payment { + border-bottom: 0.5px solid #E5E7EB; + padding: 6mm 0mm; + order: 10; + display: flex; + flex-flow: row; + break-inside: avoid; +} +section.payment h2.title { + display: none; +} +section.payment ul { + list-style-type: none; + margin: 0; + padding: 0; +} +section.payment ul.instructions { + margin-right: 6mm; +} +section.payment li { + margin-bottom: 3mm; +} +section.payment li:last-child { + margin-bottom: 0; +} +section.payment span.label { + display: block; + font-weight: 500; +} +section.payment span.value { + display: block; +} +section.payment table td { + padding-right: 3mm; +} +section.payment .due-dates span.percent:before { + content: "(" +} +section.payment .due-dates span.percent:after { + content: ")" +} +section.notes { + padding-top: 6mm; + padding-bottom: 3mm; + border-bottom: 0.5px solid #E5E7EB; + break-inside: avoid; +} +section.notes .note { + margin-bottom: 3mm; +} +.extensions section { + break-inside: avoid; + padding-top: 6mm; + padding-bottom: 6mm; + border-bottom: 0.5px solid #E5E7EB; +} +.extensions:empty { + display: none; +} +.org-party .name { + font-weight: 600; + font-size: 12pt; + line-height: 20pt; + color: #030712; +} \ No newline at end of file diff --git a/cmd/gobl.html/serve.go b/cmd/gobl.html/serve.go index c18eda6..94b6dc9 100644 --- a/cmd/gobl.html/serve.go +++ b/cmd/gobl.html/serve.go @@ -14,6 +14,7 @@ import ( "github.com/invopop/ctxi18n/i18n" "github.com/invopop/gobl" goblhtml "github.com/invopop/gobl.html" + "github.com/invopop/gobl.html/assets" "github.com/invopop/gobl.html/pkg/pdf" "github.com/invopop/gobl/org" "github.com/labstack/echo/v4" @@ -63,6 +64,7 @@ func (s *serveOpts) runE(cmd *cobra.Command, _ []string) error { e := echo.New() + e.StaticFS("/styles", echo.MustSubFS(assets.Content, "styles")) e.GET("/:filename", s.generate) var startErr error @@ -84,12 +86,11 @@ func (s *serveOpts) runE(cmd *cobra.Command, _ []string) error { return startErr } -func (s *serveOpts) render(c echo.Context, req *options, env *gobl.Envelope) ([]byte, error) { +func (s *serveOpts) render(c echo.Context, req *options, env *gobl.Envelope, opts []goblhtml.Option) ([]byte, error) { ctx := c.Request().Context() var err error // Prepare the request options - opts := make([]goblhtml.Option, 0) if req.DateFormat != "" { opts = append(opts, goblhtml.WithCalFormatter(req.DateFormat, "", time.UTC)) } @@ -143,7 +144,11 @@ func (s *serveOpts) generate(c echo.Context) error { return fmt.Errorf("unmarshalling file: %w", err) } - data, err := s.render(c, req, env) + opts := make([]goblhtml.Option, 0) + if ext == ".pdf" { + opts = append(opts, goblhtml.WithEmbeddedStylesheets()) + } + data, err := s.render(c, req, env, opts) if err != nil { return err } diff --git a/components/bill/invoice/invoice.templ b/components/bill/invoice/invoice.templ index 19a9e70..9e265fb 100644 --- a/components/bill/invoice/invoice.templ +++ b/components/bill/invoice/invoice.templ @@ -16,284 +16,6 @@ import ( // Invoice renders a complete GOBL bill.Invoice object. templ Invoice(env *gobl.Envelope, inv *bill.Invoice) { - // Footer needs to be at the top to show on all pages
diff --git a/components/bill/invoice/invoice_templ.go b/components/bill/invoice/invoice_templ.go index 1b38db2..b344280 100644 --- a/components/bill/invoice/invoice_templ.go +++ b/components/bill/invoice/invoice_templ.go @@ -38,7 +38,7 @@ func Invoice(env *gobl.Envelope, inv *bill.Invoice) templ.Component { templ_7745c5c3_Var1 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -177,7 +177,7 @@ func title(inv *bill.Invoice) templ.Component { var templ_7745c5c3_Var3 string templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(supplierAlias(inv)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/invoice.templ`, Line: 333, Col: 25} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/invoice.templ`, Line: 55, Col: 25} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) if templ_7745c5c3_Err != nil { @@ -203,7 +203,7 @@ func title(inv *bill.Invoice) templ.Component { var templ_7745c5c3_Var4 string templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(code(inv.Series, inv.Code)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/invoice.templ`, Line: 341, Col: 31} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/bill/invoice/invoice.templ`, Line: 63, Col: 31} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) if templ_7745c5c3_Err != nil { diff --git a/components/envelope.templ b/components/envelope.templ index 27ab13a..e15a988 100644 --- a/components/envelope.templ +++ b/components/envelope.templ @@ -1,11 +1,17 @@ package components import ( + "fmt" + "io/fs" + "path/filepath" + "github.com/invopop/gobl" "github.com/invopop/gobl/bill" "github.com/invopop/gobl/note" "github.com/invopop/gobl.html/components/bill/invoice" "github.com/invopop/gobl.html/components/notes" + "github.com/invopop/gobl.html/assets" + "github.com/invopop/gobl.html/internal" ) templ Envelope(env *gobl.Envelope) { @@ -17,57 +23,7 @@ templ Envelope(env *gobl.Envelope) { - + @stylesheets()
@@ -86,3 +42,53 @@ templ Envelope(env *gobl.Envelope) { } + +templ stylesheets() { + if opts := internal.Options(ctx); opts != nil { + if opts.EmbedStylesheets { + for _, data := range stylesheetData() { + @templ.Raw(``) + } + } else { + for _, ss := range stylesheetFilenames() { + + } + } + } +} + +// stylesheetFilenames just provides the filenames of all the styles +func stylesheetFilenames() []string { + list := []string{} + err := fs.WalkDir(assets.Content, "styles", func(path string, _ fs.DirEntry, _ error) error { + if filepath.Ext(path) != ".css" { + return nil + } + list = append(list, path) + return nil + }) + if err != nil { + panic(err) + } + return list +} + +// stylesheetData provides a list of data objects of all the stylesheets +func stylesheetData() []string { + list := make([]string, 0) + err := fs.WalkDir(assets.Content, "styles", func(path string, _ fs.DirEntry, _ error) error { + if filepath.Ext(path) != ".css" { + return nil + } + data, err := fs.ReadFile(assets.Content, path) + if err != nil { + return fmt.Errorf("reading file: %w", err) + } + list = append(list, string(data)) + return nil + }) + if err != nil { + panic(err) + } + return list +} diff --git a/components/envelope_templ.go b/components/envelope_templ.go index ddad77e..d0e868d 100644 --- a/components/envelope_templ.go +++ b/components/envelope_templ.go @@ -11,9 +11,15 @@ import "io" import "bytes" import ( + "fmt" + "io/fs" + "path/filepath" + "github.com/invopop/gobl" + "github.com/invopop/gobl.html/assets" "github.com/invopop/gobl.html/components/bill/invoice" "github.com/invopop/gobl.html/components/notes" + "github.com/invopop/gobl.html/internal" "github.com/invopop/gobl/bill" "github.com/invopop/gobl/note" ) @@ -31,7 +37,15 @@ func Envelope(env *gobl.Envelope) templ.Component { templ_7745c5c3_Var1 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("GOBL HTML Generator
") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("GOBL HTML Generator") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = stylesheets().Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -70,3 +84,84 @@ func Envelope(env *gobl.Envelope) templ.Component { return templ_7745c5c3_Err }) } + +func stylesheets() templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var2 := templ.GetChildren(ctx) + if templ_7745c5c3_Var2 == nil { + templ_7745c5c3_Var2 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + if opts := internal.Options(ctx); opts != nil { + if opts.EmbedStylesheets { + for _, data := range stylesheetData() { + templ_7745c5c3_Err = templ.Raw(``).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + } else { + for _, ss := range stylesheetFilenames() { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + } + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +// stylesheetFilenames just provides the filenames of all the styles +func stylesheetFilenames() []string { + list := []string{} + err := fs.WalkDir(assets.Content, "styles", func(path string, _ fs.DirEntry, _ error) error { + if filepath.Ext(path) != ".css" { + return nil + } + list = append(list, path) + return nil + }) + if err != nil { + panic(err) + } + return list +} + +// stylesheetData provides a list of data objects of all the stylesheets +func stylesheetData() []string { + list := make([]string, 0) + err := fs.WalkDir(assets.Content, "styles", func(path string, _ fs.DirEntry, _ error) error { + if filepath.Ext(path) != ".css" { + return nil + } + data, err := fs.ReadFile(assets.Content, path) + if err != nil { + return fmt.Errorf("reading file: %w", err) + } + list = append(list, string(data)) + return nil + }) + if err != nil { + panic(err) + } + return list +} diff --git a/components/footer.templ b/components/footer.templ index 729ad73..d87c76e 100644 --- a/components/footer.templ +++ b/components/footer.templ @@ -8,61 +8,6 @@ import ( ) templ footerPrint(env *gobl.Envelope) { -
@footerNotes(env) @footerPage() diff --git a/components/footer_templ.go b/components/footer_templ.go index f4e49b9..f3fb94d 100644 --- a/components/footer_templ.go +++ b/components/footer_templ.go @@ -30,7 +30,7 @@ func footerPrint(env *gobl.Envelope) templ.Component { templ_7745c5c3_Var1 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/examples/out/credit-note-es-es-tbai.html b/examples/out/credit-note-es-es-tbai.html index 53d475c..da34a90 100644 --- a/examples/out/credit-note-es-es-tbai.html +++ b/examples/out/credit-note-es-es-tbai.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
diff --git a/examples/out/full-invoice.html b/examples/out/full-invoice.html index 9a8de5b..2ee94d2 100644 --- a/examples/out/full-invoice.html +++ b/examples/out/full-invoice.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
@@ -490,7 +108,7 @@

LEI: 1010101010

- Identitiy code: ABC1234 + Identity code: ABC1234
diff --git a/examples/out/invoice-es-simplified.html b/examples/out/invoice-es-simplified.html index f6aa1b9..e54b7c3 100644 --- a/examples/out/invoice-es-simplified.html +++ b/examples/out/invoice-es-simplified.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
diff --git a/examples/out/invoice-es-ticketbai.html b/examples/out/invoice-es-ticketbai.html index 47de7b5..20125e4 100644 --- a/examples/out/invoice-es-ticketbai.html +++ b/examples/out/invoice-es-ticketbai.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
diff --git a/examples/out/invoice-es-usd.html b/examples/out/invoice-es-usd.html index 567b998..613591a 100644 --- a/examples/out/invoice-es-usd.html +++ b/examples/out/invoice-es-usd.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
diff --git a/examples/out/invoice-limited-company.html b/examples/out/invoice-limited-company.html index cfd077d..e30b84e 100644 --- a/examples/out/invoice-limited-company.html +++ b/examples/out/invoice-limited-company.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
diff --git a/examples/out/invoice-mx.html b/examples/out/invoice-mx.html index 69fcb47..4b278c6 100644 --- a/examples/out/invoice-mx.html +++ b/examples/out/invoice-mx.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
diff --git a/examples/out/invoice-tax-included.html b/examples/out/invoice-tax-included.html index dfec11d..5b4eae6 100644 --- a/examples/out/invoice-tax-included.html +++ b/examples/out/invoice-tax-included.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
diff --git a/examples/out/invoice.env.html b/examples/out/invoice.env.html index 07f8a4f..137793e 100644 --- a/examples/out/invoice.env.html +++ b/examples/out/invoice.env.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
diff --git a/examples/out/mx-food-voucher.html b/examples/out/mx-food-voucher.html index 03b7275..d31ac44 100644 --- a/examples/out/mx-food-voucher.html +++ b/examples/out/mx-food-voucher.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
diff --git a/examples/out/mx-fuel-balance.html b/examples/out/mx-fuel-balance.html index e028111..f56cee7 100644 --- a/examples/out/mx-fuel-balance.html +++ b/examples/out/mx-fuel-balance.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
diff --git a/examples/out/us-invoice.html b/examples/out/us-invoice.html index bfc217d..7b4409a 100644 --- a/examples/out/us-invoice.html +++ b/examples/out/us-invoice.html @@ -8,115 +8,11 @@ - + +
-
Page @@ -134,284 +30,6 @@
-
diff --git a/go.mod b/go.mod index 268e2ac..d9027e9 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/a-h/templ v0.2.598 github.com/go-resty/resty/v2 v2.12.0 github.com/invopop/ctxi18n v0.6.0 - github.com/invopop/gobl v0.75.0 + github.com/invopop/gobl v0.76.0 github.com/invopop/princepdf v0.0.0-20240408123340-585be3cab91a github.com/labstack/echo/v4 v4.11.4 github.com/piglig/go-qr v0.2.4 @@ -49,4 +49,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -replace github.com/invopop/gobl => ../gobl +// replace github.com/invopop/gobl => ../gobl diff --git a/go.sum b/go.sum index 8279c45..541e25b 100644 --- a/go.sum +++ b/go.sum @@ -28,6 +28,8 @@ github.com/invopop/ctxi18n v0.6.0 h1:Qm3ZL/kK4EKvmLI3U2ETN2rWrtSTaxXrcA6ZUY9aVGE github.com/invopop/ctxi18n v0.6.0/go.mod h1:1Osw+JGYA+anHt0Z4reF36r5FtGHYjGQ+m1X7keIhPc= github.com/invopop/gobl v0.75.0 h1:QQpFTkraauZoGEGQlYqfHpJmBNayamtjT1+Onw8zVEA= github.com/invopop/gobl v0.75.0/go.mod h1:3ixShxX1jlOKo5Rw22HVQh3jXnK9AZa7Twcw7L92qn0= +github.com/invopop/gobl v0.76.0 h1:WHGJGe+sqljGkcifQMjxaiiYe8kne2bm3Yv4HUlSqOQ= +github.com/invopop/gobl v0.76.0/go.mod h1:3ixShxX1jlOKo5Rw22HVQh3jXnK9AZa7Twcw7L92qn0= github.com/invopop/jsonschema v0.12.0 h1:6ovsNSuvn9wEQVOyc72aycBMVQFKz7cPdMJn10CvzRI= github.com/invopop/jsonschema v0.12.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0= github.com/invopop/princepdf v0.0.0-20240408123340-585be3cab91a h1:xt18LlIfizLkFgLi+vK/m2SWOsAbQwVwQgbkzxKY0eU= diff --git a/goblhtml.go b/goblhtml.go index 58d70e5..9f5f03b 100644 --- a/goblhtml.go +++ b/goblhtml.go @@ -84,6 +84,14 @@ func WithNumFormatter(nf num.Formatter) Option { } } +// WithEmbeddedStylesheets indicates that the stylesheets should be embedded +// inside the HTML document as opposed to links. +func WithEmbeddedStylesheets() Option { + return func(o *internal.Opts) { + o.EmbedStylesheets = true + } +} + // Render takes the GOBL envelope and attempts to render an HTML document // from it. func Render(ctx context.Context, env *gobl.Envelope, opts ...Option) ([]byte, error) { diff --git a/internal/options.go b/internal/options.go index 6fbc382..9ff6844 100644 --- a/internal/options.go +++ b/internal/options.go @@ -32,6 +32,10 @@ type Opts struct { NumFormatter *num.Formatter // CalFormatter is used to format calendar dates and times. CalFormatter *CalFormatter + // EmbedStylesheets when try ensures that all the stylesheet files + // are contained inside the HTML output. This is useful for PDF + // output or to avoid additional requests. + EmbedStylesheets bool } // WithOptions prepares the context with the options to use. diff --git a/locales/en/app.yml b/locales/en/app.yml index ec1a79e..5248ee7 100644 --- a/locales/en/app.yml +++ b/locales/en/app.yml @@ -129,7 +129,7 @@ en: other: "Emails: %{addr}" email_label: "%{addr} (%{label})" identity: "%{label}: %{code}" - identity_code: "Identitiy code" + identity_code: "Identity code" po_box: "P.O. Box %{po_box}" labels: default: "Tax Code" diff --git a/locales/gr/app.yml b/locales/gr/app.yml new file mode 100644 index 0000000..c88fadc --- /dev/null +++ b/locales/gr/app.yml @@ -0,0 +1,144 @@ +gr: + page: "Σελίδα %{page} από %{count}" + + billing: + invoice: + title: + standard: "Τιμολόγιο" + standard-simplified: "Απλοποιημένο Τιμολόγιο" + proforma: "Προτιμολόγιο" + corrective: "Διορθωτικό Τιμολόγιο" + credit-note: "Πιστωτικό Σημείωμα" + debit-note: "Χρεωστικό Σημείωμα" + + summary: + title: "Περίληψη" + issue_date: "Ημερομηνία Έκδοσης" + value_date: "Ημερομηνία Αξίας" + operation_date: "Ημερομηνία Ενέργειας" + currency: "Νόμισμα" + currency_value: "%{desc} (%{code})" + preceding_invoice: "Προηγούμενο Τιμολόγιο" + order: "Παραγγελία" + order_period: "Περίοδος" + order_period_label: "%{label}" + order_period_range: "%{start} έως %{end}" + ext_map: + mx-cfdi-issue-place: "Τόπος Έκδοσης" + + supplier: + title: "Προμηθευτής" + + customer: + title: "Πελάτης" + + lines: + title: "Γραμμές" + i: "#" + ref: "Αναφ." + description: "Περιγραφή" + quantity: "Ποσ." + unit: "Μονάδα" + price: "Τιμή" + discount: "Έκπτωση" + charges: "Χρεώσεις" + total: "Σύνολο" + + totals: + sum: "Άθροισμα" + discount: "Έκπτωση" + charge: "Χρέωση" + title: "Σύνολα" + prices_include_tax: "Συμπεριλαμβάνεται φόρος" + total: "Σύνολο" + taxes: "Φόρος" + total_with_tax: "Σύνολο με φόρο" + total_to_pay: "Σύνολο προς πληρωμή" + outlay: "Έξοδος %{i}: %{txt}" + advance: "Προκαταβολή: %{date} %{txt}" + advance_sum: "Άθροισμα προκαταβολών" + due_sum: "Σύνολο οφειλόμενου" + exchange_rate: "Ισοτιμία προς %{to} (%{amount})" + + taxes: + title: "Φόροι" + category: "Φόρος" + base: "Βάση" + rate: "Ποσοστό" + amount: "Ποσό" + + payment: + title: "Πληρωμή" + instructions: + method: "Μέθοδος πληρωμής" + ref: "Αναφορά" + bank_data: "Οδηγίες τραπεζικής μεταφοράς" + card: "Πληρωμή με κάρτα" + card_detail: "Πληρωμή προς κάρτα με τελευταία 4 ψηφία %{last4} που ανήκει σε %{holder}" + observations: "Σημειώσεις πληρωμής" + bank_name: "Τράπεζα: %{name}" + iban: "IBAN: %{iban}" + account_number: "Αριθμός λογαριασμού: %{num}" + bic: "BIC: %{bic}" + methods: + card: "Κάρτα τραπέζης" + credit_transfer: "Τραπεζική μεταφορά" + cash: "Μετρητά" + direct_debit: "Άμεση πίστωση" + online: "Διαδικτυακά" + terms: + key: "Όροι πληρωμής" + notes: "Σημειώσεις όρων πληρωμής" + due_dates: "Ημερομηνίες πληρωμής" + keys: + na: "Δεν έχει καθοριστεί" + end_of_month: "Τέλος μήνα" + due_date: "Στην ημερομηνία πληρωμής" + deferred: "Μετά την ημερομηνία πληρωμής" + proximo: "Επόμενος μήνας" + instant: "Κατά την παράδοση του τιμολογίου" + elective: "Επιλεγμένος από τον πελάτη" + pending: "Να καθοριστεί από τον προμηθευτή" + advanced: "Πληρωμένο" + delivery: "Κατά την παράδοση" + + notes: + title: "Σημειώσεις" + reg: + book: "Βιβλίο %{id}" + volume: "Τόμος %{id}" + sheet: "Φύλλο %{id}" + section: "Ενότητα %{id}" + page: "Σελίδα %{id}" + entry: "Καταχώρηση %{id}" + inscription: "Εγγεγραμμένο σε:" + + regimes: + co: + cufe: "CUFE: %{cufe}" + cude: "CUDE: %{cude}" + preceding_cufe: "CUFE Προηγούμενου τιμολογίου: %{cufe}" + + organizing: + party: + tax_id: "%{label}: (%{country}) %{code}" + tel: "Τηλ: %{num}" + tel_label: "Τηλ: %{num} (%{label})" + email: + one: "Email: %{addr}" + other: "Emails: %{addr}" + email_label: "%{addr} (%{label})" + identity: "%{label}: %{code}" + identity_code: "Κωδικός Ταυτότητας" + po_box: "Τ.Θ. %{po_box}" + labels: + default: "Φορολογικός Κωδικός" + ext: "%{label}: %{value}" + ext_map: + co-dian-municipality: "Δήμος" + mx-cfdi-fiscal-regime: "Φορολογικό Καθεστώς" + mx-cfdi-post-code: "Τοποθεσία" + mx-cfdi-use: "Χρήση CFDI" + address: + label: "%{label}:" + country: "(%{country})" diff --git a/locales/gr/countries.yml b/locales/gr/countries.yml new file mode 100644 index 0000000..0a1f020 --- /dev/null +++ b/locales/gr/countries.yml @@ -0,0 +1,251 @@ +gr: + country_names: + AF: "Αφγανιστάν" + AX: "Νήσοι Ώλαντ" + AL: "Αλβανία" + DZ: "Αλγερία" + AS: "Αμερικανική Σαμόα" + AD: "Ανδόρα" + AO: "Ανγκόλα" + AI: "Ανγκουίλα" + AQ: "Ανταρκτική" + AG: "Αντίγκουα και Μπαρμπούντα" + AR: "Αργεντινή" + AM: "Αρμενία" + AW: "Αρούμπα" + AU: "Αυστραλία" + AT: "Αυστρία" + AZ: "Αζερμπαϊτζάν" + BS: "Μπαχάμες" + BH: "Μπαχρέιν" + BD: "Μπανγκλαντές" + BB: "Μπαρμπάντος" + BY: "Λευκορωσία" + BE: "Βέλγιο" + BZ: "Μπελίζ" + BJ: "Μπενίν" + BM: "Βερμούδες" + BT: "Μπουτάν" + BO: "Βολιβία, Πολυεθνική Κράτος" + BQ: "Μπονέρ, Σιντ Ευστάτιους και Σάμπα" + BA: "Βοσνία και Ερζεγοβίνη" + BW: "Μποτσουάνα" + BV: "Νήσος Μπουβέ" + BR: "Βραζιλία" + IO: "Βρετανική Ινδική Ωκεανία" + BN: "Μπρουνέι Δαρουσαλάμ" + BG: "Βουλγαρία" + BF: "Μπουρκίνα Φάσο" + BI: "Μπουρούντι" + CV: "Πράσινο Ακρωτήριο" + KH: "Καμπότζη" + CM: "Καμερούν" + CA: "Καναδάς" + KY: "Νήσοι Κέιμαν" + CF: "Κεντροαφρικανική Δημοκρατία" + TD: "Τσαντ" + CL: "Χιλή" + CN: "Κίνα" + CX: "Νήσος των Χριστουγέννων" + CC: "Νήσοι Κόκος (Κίλινγκ)" + CO: "Κολομβία" + KM: "Κομόρες" + CG: "Κονγκό" + CD: "Κονγκό, Δημοκρατία του Λαϊκής Δημοκρατίας" + CK: "Νήσοι Κουκ" + CR: "Κόστα Ρίκα" + CI: "Ακτή Ελεφαντοστού" + HR: "Κροατία" + CU: "Κούβα" + CW: "Κουρασάο" + CY: "Κύπρος" + CZ: "Τσεχία" + DK: "Δανία" + DJ: "Τζιμπουτί" + DM: "Δομίνικα" + DO: "Δομινικανή Δημοκρατία" + EC: "Εκουαδόρ" + EG: "Αίγυπτος" + SV: "Ελ Σαλβαδόρ" + GQ: "Ισημερινή Γουινέα" + ER: "Ερυθραία" + EE: "Εσθονία" + SZ: "Εσουατίνι" + ET: "Αιθιοπία" + FK: "Νήσοι Φώκλαντ" + FO: "Νήσοι Φερόες" + FJ: "Φίτζι" + FI: "Φινλανδία" + FR: "Γαλλία" + GF: "Γαλλική Γουιάνα" + PF: "Γαλλική Πολυνησία" + TF: "Γαλλικά Νότια Εδάφη" + GA: "Γκαμπόν" + GM: "Γκάμπια" + GE: "Γεωργία" + DE: "Γερμανία" + GH: "Γκάνα" + GI: "Γιβραλτάρ" + GR: "Ελλάδα" + GL: "Γροιλανδία" + GD: "Γρενάδα" + GP: "Γουαδελούπη" + GU: "Γκουάμ" + GT: "Γουατεμάλα" + GG: "Γκέρνσεϊ" + GN: "Γουινέα" + GW: "Γουινέα-Μπισάου" + GY: "Γουιάνα" + HT: "Αϊτή" + HM: "Νήσοι Χερντ και Μακντόναλντ" + VA: "Αγία Έδρα" + HN: "Ονδούρα" + HK: "Χονγκ Κονγκ" + HU: "Ουγγαρία" + IS: "Ισλανδία" + IN: "Ινδία" + ID: "Ινδονησία" + IR: "Ιράν, Ισλαμική Δημοκρατία του" + IQ: "Ιράκ" + IE: "Ιρλανδία" + IM: "Νήσος του Μαν" + IL: "Ισραήλ" + IT: "Ιταλία" + JM: "Τζαμάικα" + JP: "Ιαπωνία" + JE: "Τζέρσεϊ" + JO: "Ιορδανία" + KZ: "Καζακστάν" + KE: "Κένυα" + KI: "Κιριμπάτι" + KP: "Κορέα, Δημοκρατία του Λαϊκής Δημοκρατίας" + KR: "Κορέα, Δημοκρατία της" + KW: "Κουβέιτ" + KG: "Κιργιστάν" + LA: "Λαϊκή Δημοκρατία του Λάος" + LV: "Λετονία" + LB: "Λίβανος" + LS: "Λεσόθο" + LR: "Λιβερία" + LY: "Λιβύη" + LI: "Λιχτενστάιν" + LT: "Λιθουανία" + LU: "Λουξεμβούργο" + MO: "Μακάο" + MK: "Βόρεια Μακεδονία" + MG: "Μαδαγασκάρη" + MW: "Μαλάουι" + MY: "Μαλαισία" + MV: "Μαλδίβες" + ML: "Μάλι" + MT: "Μάλτα" + MH: "Νήσοι Μάρσαλ" + MQ: "Μαρτινίκα" + MR: "Μαυριτανία" + MU: "Μαυρίκιος" + YT: "Μαγιότ" + MX: "Μεξικό" + FM: "Μικρονησία, Ομόσπονδες Πολιτείες της" + MD: "Μολδαβία, Δημοκρατία της" + MC: "Μονακό" + MN: "Μογγολία" + ME: "Μαυροβούνιο" + MS: "Μονσεράτ" + MA: "Μαρόκο" + MZ: "Μοζαμβίκη" + MM: "Μιανμάρ" + NA: "Ναμίμπια" + NR: "Ναουρού" + NP: "Νεπάλ" + NL: "Ολλανδία" + NC: "Νέα Καληδονία" + NZ: "Νέα Ζηλανδία" + NI: "Νικαράγουα" + NE: "Νίγηρας" + NG: "Νιγηρία" + NU: "Νιούε" + NF: "Νήσος Νόρφολκ" + MP: "Νήσοι Βόρειες Μαριάνες" + NO: "Νορβηγία" + OM: "Ομάν" + PK: "Πακιστάν" + PW: "Παλάου" + PS: "Παλαιστίνη, Κράτος της" + PA: "Παναμάς" + PG: "Παπούα Νέα Γουινέα" + PY: "Παραγουάη" + PE: "Περού" + PH: "Φιλιππίνες" + PN: "Πίτκερν" + PL: "Πολωνία" + PT: "Πορτογαλία" + PR: "Πουέρτο Ρίκο" + QA: "Κατάρ" + RE: "Ρεϋνιόν" + RO: "Ρουμανία" + RU: "Ρωσική Ομοσπονδία" + RW: "Ρουάντα" + BL: "Άγιος Βαρθολομαίος" + SH: "Αγία Ελένη, Αναβασία και Τριστάν ντα Κούνια" + KN: "Άγιος Χριστόφορος και Νέβις" + LC: "Αγία Λουκία" + MF: "Άγιος Μαρτίνος (γαλλικό τμήμα)" + PM: "Άγιος Πέτρος και Μικελόν" + VC: "Άγιος Βικέντιος και Γρεναδίνες" + WS: "Σαμόα" + SM: "Άγιος Μαρίνος" + ST: "Σάο Τομέ και Πρίνσιπε" + SA: "Σαουδική Αραβία" + SN: "Σενεγάλη" + RS: "Σερβία" + SC: "Σεϋχέλλες" + SL: "Σιέρα Λεόνε" + SG: "Σιγκαπούρη" + SX: "Άγιος Μαρτίνος (ολλανδικό τμήμα)" + SK: "Σλοβακία" + SI: "Σλοβενία" + SB: "Νήσοι Σολομώντος" + SO: "Σομαλία" + ZA: "Νότια Αφρική" + GS: "Νότια Γεωργία και Νότιες Νήσοι Σάντουιτς" + SS: "Νότιο Σουδάν" + ES: "Ισπανία" + LK: "Σρι Λάνκα" + SD: "Σουδάν" + SR: "Σουρινάμ" + SJ: "Σβάλμπαρντ και Γιαν Μαγιέν" + SE: "Σουηδία" + CH: "Ελβετία" + SY: "Συριακή Αραβική Δημοκρατία" + TW: "Ταϊβάν (Επαρχία της Κίνας)" + TJ: "Τατζικιστάν" + TZ: "Τανζανία, Ηνωμένη Δημοκρατία της" + TH: "Ταϊλάνδη" + TL: "Τιμόρ-Λέστε" + TG: "Τόγκο" + TK: "Τοκελάου" + TO: "Τόνγκα" + TT: "Τρινιντάντ και Τομπάγκο" + TN: "Τυνησία" + TR: "Τουρκία" + TM: "Τουρκμενιστάν" + TC: "Νήσοι Τερκς και Κάικος" + TV: "Τουβαλού" + UG: "Ουγκάντα" + UA: "Ουκρανία" + AE: "Ηνωμένα Αραβικά Εμιράτα" + GB: "Ηνωμένο Βασίλειο" + US: "Ηνωμένες Πολιτείες Αμερικής" + UM: "Απομακρυσμένες Νησίδες Ηνωμένων Πολιτειών" + UY: "Ουρουγουάη" + UZ: "Ουζμπεκιστάν" + VU: "Βανουάτου" + VE: "Βενεζουέλα, Μπολιβαριανή Δημοκρατία της" + VN: "Βιετνάμ" + VG: "Βρετανικές Παρθένοι Νήσοι" + VI: "Αμερικανικές Παρθένοι Νήσοι" + WF: "Ουαλίς και Φουτουνά" + EH: "Δυτική Σαχάρα" + YE: "Υεμένη" + ZM: "Ζάμπια" + ZW: "Ζιμπάμπουε" diff --git a/pkg/pdf/pdf.go b/pkg/pdf/pdf.go index 6e75ea6..0d8e866 100644 --- a/pkg/pdf/pdf.go +++ b/pkg/pdf/pdf.go @@ -4,6 +4,9 @@ package pdf import ( "context" + "fmt" + "io/fs" + "path/filepath" ) // Config defines options used to configure the PDF convertor. @@ -19,6 +22,7 @@ type Option func(*options) type options struct { metadata *Metadata + styles []*Stylesheet attachments []*Attachment } @@ -31,6 +35,12 @@ type Metadata struct { Creator string } +// Stylesheet descriptions a document to upload with the HTML for styles. +type Stylesheet struct { + Data []byte + Filename string +} + // Attachment is used to embed files inside the PDF when supported by // the implementation. type Attachment struct { @@ -56,6 +66,30 @@ func WithAuthToken(token string) Config { } } +// WithStylesheet prepares the filesheet to be included in the PDF generation +// request. +func WithStylesheets(src fs.FS) Option { + return func(o *options) { + err := fs.WalkDir(src, "styles", func(path string, _ fs.DirEntry, _ error) error { + if filepath.Ext(path) != ".css" { + return nil + } + data, err := fs.ReadFile(src, path) + if err != nil { + return fmt.Errorf("reading file: %w", err) + } + o.styles = append(o.styles, &Stylesheet{ + Filename: path, + Data: data, + }) + return nil + }) + if err != nil { + panic(err) + } + } +} + // WithMetadata adds the provided metadata to include in the conversion request. func WithMetadata(md *Metadata) Option { return func(o *options) { diff --git a/pkg/pdf/prince.go b/pkg/pdf/prince.go index 27adba9..61f0887 100644 --- a/pkg/pdf/prince.go +++ b/pkg/pdf/prince.go @@ -32,6 +32,12 @@ func (pc *princeConvertor) HTML(_ context.Context, data []byte, opts ...Option) "data.html": data, } + if len(o.styles) > 0 { + for _, ss := range o.styles { + j.Input.Styles = append(j.Input.Styles, ss.Filename) + j.Files[ss.Filename] = ss.Data + } + } if len(o.attachments) > 0 { for _, a := range o.attachments { j.Files[a.Filename] = a.Data diff --git a/tmp/main b/tmp/main new file mode 100755 index 0000000000000000000000000000000000000000..e80a6d29e29ebc216117ce59222abbaa72a9a85b GIT binary patch literal 709400 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%0DO(fYOn6ecLbWDs`IPZ?oyMl+&GOjd;HAndB2 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

=OpxeksE2{;U1Mp#2Vmd{Fxh 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 x7p(?-e@!BaP;7R6K@X$7H|WP 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 Date: Mon, 13 May 2024 10:52:01 +0000 Subject: [PATCH 3/3] Fixing linting --- pkg/pdf/pdf.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/pdf/pdf.go b/pkg/pdf/pdf.go index 0d8e866..6e0f81f 100644 --- a/pkg/pdf/pdf.go +++ b/pkg/pdf/pdf.go @@ -66,7 +66,7 @@ func WithAuthToken(token string) Config { } } -// WithStylesheet prepares the filesheet to be included in the PDF generation +// WithStylesheets prepares the stylesheets to be included in the PDF generation // request. func WithStylesheets(src fs.FS) Option { return func(o *options) {