fix go names according to linter
This commit is contained in:
parent
1c89fd7af3
commit
58b0759c78
|
|
@ -1,5 +1,5 @@
|
|||
mkinvoice
|
||||
makefont
|
||||
makefont/makefont
|
||||
temp/*
|
||||
qr-images/*
|
||||
output/*
|
||||
|
|
|
|||
175
mkinvoice.go
175
mkinvoice.go
|
|
@ -2,68 +2,73 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/jung-kurt/gofpdf"
|
||||
"gopkg.in/yaml.v2"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/jung-kurt/gofpdf"
|
||||
"gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
// Metadata type
|
||||
type Metadata struct {
|
||||
Invoice_nr string
|
||||
Invoice_info string
|
||||
Invoice_date string
|
||||
InvoiceNr string
|
||||
InvoiceInfo string
|
||||
InvoiceDdate string
|
||||
Vat float64
|
||||
Account string
|
||||
Due_date string
|
||||
DueDate string
|
||||
}
|
||||
|
||||
// Address type
|
||||
type Address struct {
|
||||
Name string
|
||||
Street string
|
||||
Zip string
|
||||
City string
|
||||
Tel_no string
|
||||
TelNo string
|
||||
Email string
|
||||
}
|
||||
|
||||
// InvoiceItem type
|
||||
type InvoiceItem struct {
|
||||
Text string
|
||||
Quantity float64
|
||||
Pice_per_unit float64
|
||||
Text string
|
||||
Quantity float64
|
||||
PicePerUnit float64
|
||||
}
|
||||
|
||||
// InvoiceData type
|
||||
type InvoiceData struct {
|
||||
Metadata Metadata
|
||||
Sender_address Address
|
||||
Billing_address Address
|
||||
Item []InvoiceItem
|
||||
Metadata Metadata
|
||||
SenderAddress Address
|
||||
BillingAddress Address
|
||||
Item []InvoiceItem
|
||||
}
|
||||
|
||||
/* global variable declaration */
|
||||
var pdf *gofpdf.Fpdf
|
||||
var y_pos float64
|
||||
var invoice_data InvoiceData
|
||||
var prog_dir string
|
||||
var yPos float64
|
||||
var invoiceData InvoiceData
|
||||
var progDir string
|
||||
|
||||
const margin_top = 7
|
||||
const logo_top = 6
|
||||
const logo_height = 20
|
||||
const line_spacing = 5
|
||||
const address_top = 50
|
||||
const line1_top = 100
|
||||
const tabstop_left = 20
|
||||
const tabstop_left_2 = 32
|
||||
const tabstop_address = 120
|
||||
const tabstop_count = 10
|
||||
const tabstop_price = 10
|
||||
const tabstop_total = 170
|
||||
const tabstop_logo = 155
|
||||
const tabstop_right = 200
|
||||
const marginTop = 7
|
||||
const logoTop = 6
|
||||
const logoHeight = 20
|
||||
const lineSpacing = 5
|
||||
const addressTop = 50
|
||||
const line1Top = 100
|
||||
const tabstopLeft = 20
|
||||
const tabstopLeftAlt = 32
|
||||
const tabstopAddress = 120
|
||||
const tabstopCount = 10
|
||||
const tabstopPrice = 10
|
||||
const tabstopTotal = 170
|
||||
const tabstopLogo = 155
|
||||
const tabstopRight = 200
|
||||
|
||||
func ReadInvoiceData(filename string) {
|
||||
func readInvoiceData(filename string) {
|
||||
data, err := ioutil.ReadFile(filename)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
|
|
@ -71,16 +76,16 @@ func ReadInvoiceData(filename string) {
|
|||
|
||||
//fmt.Printf("File contents: %s", data)
|
||||
|
||||
err = yaml.Unmarshal([]byte(data), &invoice_data)
|
||||
err = yaml.Unmarshal([]byte(data), &invoiceData)
|
||||
if err != nil {
|
||||
log.Fatalf("error: %v", err)
|
||||
}
|
||||
|
||||
fmt.Printf("--- t:\n%v\n\n", invoice_data)
|
||||
fmt.Printf("%s\n", invoice_data.Billing_address.Name)
|
||||
fmt.Printf("--- t:\n%v\n\n", invoiceData)
|
||||
fmt.Printf("%s\n", invoiceData.BillingAddress.Name)
|
||||
}
|
||||
|
||||
func WriteText(x float64, y float64, text string, alignStr ...string) {
|
||||
func writeText(x float64, y float64, text string, alignStr ...string) {
|
||||
tr := pdf.UnicodeTranslatorFromDescriptor("")
|
||||
align := "LT"
|
||||
if len(alignStr) > 0 {
|
||||
|
|
@ -90,7 +95,7 @@ func WriteText(x float64, y float64, text string, alignStr ...string) {
|
|||
pdf.CellFormat(0, 11, tr(text), "", 0, align, false, 0, "")
|
||||
}
|
||||
|
||||
func SetupInvoice() {
|
||||
func setupInvoice() {
|
||||
pdf = gofpdf.New("P", "mm", "A4", "")
|
||||
pdf.SetMargins(0, 0, 0)
|
||||
pdf.SetFontLocation("fonts")
|
||||
|
|
@ -99,64 +104,64 @@ func SetupInvoice() {
|
|||
pdf.SetFont("Dejavusans", "", 10)
|
||||
}
|
||||
|
||||
func PrintPageHeader(firstPage bool) {
|
||||
func printPageHeader(firstPage bool) {
|
||||
var opt gofpdf.ImageOptions
|
||||
|
||||
pdf.AddPage()
|
||||
y_pos = margin_top
|
||||
yPos = marginTop
|
||||
pdf.SetFont("Dejavusans-Bold", "", 10)
|
||||
WriteText(tabstop_left, y_pos, "nbit Informatik GmbH")
|
||||
writeText(tabstopLeft, yPos, "nbit Informatik GmbH")
|
||||
pdf.SetFont("Dejavusans", "", 10)
|
||||
y_pos = y_pos + line_spacing
|
||||
WriteText(tabstop_left, y_pos, "Kirchweg 2")
|
||||
y_pos = y_pos + line_spacing
|
||||
WriteText(tabstop_left, y_pos, "3510 Konolfingen")
|
||||
y_pos = y_pos + line_spacing
|
||||
y_pos = y_pos + line_spacing
|
||||
WriteText(tabstop_left, y_pos, "Tel.")
|
||||
WriteText(tabstop_left_2, y_pos, "+41 31 792 00 40")
|
||||
y_pos = y_pos + line_spacing
|
||||
WriteText(tabstop_left, y_pos, "EMail")
|
||||
WriteText(tabstop_left_2, y_pos, "joerg.lehmann@nbit.ch")
|
||||
y_pos = y_pos + line_spacing
|
||||
yPos = yPos + lineSpacing
|
||||
writeText(tabstopLeft, yPos, "Kirchweg 2")
|
||||
yPos = yPos + lineSpacing
|
||||
writeText(tabstopLeft, yPos, "3510 Konolfingen")
|
||||
yPos = yPos + lineSpacing
|
||||
yPos = yPos + lineSpacing
|
||||
writeText(tabstopLeft, yPos, "Tel.")
|
||||
writeText(tabstopLeftAlt, yPos, "+41 31 792 00 40")
|
||||
yPos = yPos + lineSpacing
|
||||
writeText(tabstopLeft, yPos, "EMail")
|
||||
writeText(tabstopLeftAlt, yPos, "joerg.lehmann@nbit.ch")
|
||||
yPos = yPos + lineSpacing
|
||||
|
||||
opt.ImageType = "png"
|
||||
opt.ReadDpi = true
|
||||
pdf.ImageOptions("logos/nbit-logo.png", tabstop_logo, logo_top, 0, logo_height, false, opt, 0, "")
|
||||
pdf.ImageOptions("logos/nbit-logo.png", tabstopLogo, logoTop, 0, logoHeight, false, opt, 0, "")
|
||||
}
|
||||
|
||||
func PrintAddress() {
|
||||
fmt.Printf("Blabla: %s\n", invoice_data.Billing_address.Name)
|
||||
y_pos = address_top
|
||||
WriteText(tabstop_address, y_pos, invoice_data.Billing_address.Name)
|
||||
y_pos = y_pos + line_spacing
|
||||
WriteText(tabstop_address, y_pos, invoice_data.Billing_address.Street)
|
||||
y_pos = y_pos + line_spacing
|
||||
WriteText(tabstop_address, y_pos, invoice_data.Billing_address.Zip+" "+invoice_data.Billing_address.City)
|
||||
y_pos = y_pos + line_spacing
|
||||
func printAddress() {
|
||||
fmt.Printf("Blabla: %s\n", invoiceData.BillingAddress.Name)
|
||||
yPos = addressTop
|
||||
writeText(tabstopAddress, yPos, invoiceData.BillingAddress.Name)
|
||||
yPos = yPos + lineSpacing
|
||||
writeText(tabstopAddress, yPos, invoiceData.BillingAddress.Street)
|
||||
yPos = yPos + lineSpacing
|
||||
writeText(tabstopAddress, yPos, invoiceData.BillingAddress.Zip+" "+invoiceData.BillingAddress.City)
|
||||
yPos = yPos + lineSpacing
|
||||
|
||||
pdf.Line(tabstop_left, line1_top, tabstop_right, line1_top)
|
||||
pdf.Line(tabstopLeft, line1Top, tabstopRight, line1Top)
|
||||
}
|
||||
|
||||
func PrintQR() {
|
||||
func printQR() {
|
||||
var opt gofpdf.ImageOptions
|
||||
|
||||
cmd := exec.Command(filepath.Join(prog_dir, "qrbill.sh"),
|
||||
"--account", invoice_data.Metadata.Account,
|
||||
cmd := exec.Command(filepath.Join(progDir, "qrbill.sh"),
|
||||
"--account", invoiceData.Metadata.Account,
|
||||
"--amount", "123.00",
|
||||
"--creditor-name", invoice_data.Sender_address.Name,
|
||||
"--creditor-street", invoice_data.Sender_address.Street,
|
||||
"--creditor-postalcode", invoice_data.Sender_address.Zip,
|
||||
"--creditor-city", invoice_data.Sender_address.City,
|
||||
"--extra-infos", invoice_data.Metadata.Invoice_info,
|
||||
"--debtor-name", invoice_data.Billing_address.Name,
|
||||
"--debtor-street", invoice_data.Billing_address.Street,
|
||||
"--debtor-postalcode", invoice_data.Billing_address.Zip,
|
||||
"--debtor-city", invoice_data.Billing_address.City,
|
||||
"--due-date", invoice_data.Metadata.Due_date,
|
||||
"--creditor-name", invoiceData.SenderAddress.Name,
|
||||
"--creditor-street", invoiceData.SenderAddress.Street,
|
||||
"--creditor-postalcode", invoiceData.SenderAddress.Zip,
|
||||
"--creditor-city", invoiceData.SenderAddress.City,
|
||||
"--extra-infos", invoiceData.Metadata.InvoiceInfo,
|
||||
"--debtor-name", invoiceData.BillingAddress.Name,
|
||||
"--debtor-street", invoiceData.BillingAddress.Street,
|
||||
"--debtor-postalcode", invoiceData.BillingAddress.Zip,
|
||||
"--debtor-city", invoiceData.BillingAddress.City,
|
||||
"--due-date", invoiceData.Metadata.DueDate,
|
||||
"--language", "de")
|
||||
cmd.Env = append(os.Environ(),
|
||||
"INVNO="+invoice_data.Metadata.Invoice_nr,
|
||||
"INVNO="+invoiceData.Metadata.InvoiceNr,
|
||||
)
|
||||
stdoutStderr, err := cmd.CombinedOutput()
|
||||
fmt.Printf("%s\n", stdoutStderr)
|
||||
|
|
@ -167,7 +172,7 @@ func PrintQR() {
|
|||
|
||||
opt.ImageType = "jpeg"
|
||||
opt.ReadDpi = true
|
||||
pdf.ImageOptions("qr-images/"+invoice_data.Metadata.Invoice_nr+".jpg", 0, 200, 0, 0, false, opt, 0, "")
|
||||
pdf.ImageOptions("qr-images/"+invoiceData.Metadata.InvoiceNr+".jpg", 0, 200, 0, 0, false, opt, 0, "")
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
|
@ -175,20 +180,20 @@ func main() {
|
|||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
prog_dir = dir
|
||||
progDir = dir
|
||||
|
||||
if len(os.Args) != 2 {
|
||||
fmt.Printf("usage: mkinvoice <yaml-file>\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
ReadInvoiceData(os.Args[1])
|
||||
SetupInvoice()
|
||||
PrintPageHeader(true)
|
||||
PrintAddress()
|
||||
PrintQR()
|
||||
readInvoiceData(os.Args[1])
|
||||
setupInvoice()
|
||||
printPageHeader(true)
|
||||
printAddress()
|
||||
printQR()
|
||||
|
||||
err = pdf.OutputFileAndClose(filepath.Join(prog_dir, "output", invoice_data.Metadata.Invoice_nr+".pdf"))
|
||||
err = pdf.OutputFileAndClose(filepath.Join(progDir, "output", invoiceData.Metadata.InvoiceNr+".pdf"))
|
||||
if err == nil {
|
||||
fmt.Printf("Successfully created invoice\n")
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue