diff --git a/services/templater.go b/services/templater.go index 4f3cf38..a461b9f 100644 --- a/services/templater.go +++ b/services/templater.go @@ -35,6 +35,28 @@ func idToEan13(id string, prefix string) (string, error) { return id, nil } +func (t *DefaultTemplater) GenerateEPC(iban string, bic string, name string, title string, amount int, currency string) (string, error) { + var err error + + code := fmt.Sprintf(` +BCD +002 +1 +SCT +%s +%s +%s +%s%.2f + +%s +`, bic, name, iban, currency, float64(amount)/100, title, + ) + + buf, err := t.BarcodeService.GenerateBarcode("qr", code, 500, 500, 0) + + return base64.StdEncoding.EncodeToString(buf.Bytes()), err +} + func (t *DefaultTemplater) GenerateBarcode(code string, format string, prefix string) (string, error) { var err error @@ -88,6 +110,7 @@ func (t *DefaultTemplater) StringToTemplate(templateString string) (*template.Te "sponsorLogo": t.SelectSponsorImage, "formatUnit": t.FormatUnit, "loadImage": t.LoadImage, + "epcCode": t.GenerateEPC, }).Parse(templateString) }