diff options
Diffstat (limited to 'texify.go')
| -rw-r--r-- | texify.go | 101 |
1 files changed, 100 insertions, 1 deletions
@@ -1,6 +1,7 @@ package main import ( + "fmt" "os" "text/template" ) @@ -8,29 +9,40 @@ import ( type FeeItem struct{ Task string Timeframe string - Hours int + Hours float64 Price float64 } +type Filenames struct{ + Data string + Invoice string + Main string +} + type Data struct { InvDate string WorkDate string InvNo string ProjName string + CustComp string CustName string CustStr string CustZip string CustCity string + CustCountry string + TaxID string MyName string MyStr string MyZip string MyCity string + MyCountry string MyTel string MyMob string MyMail string MyUrl string + BankNum string BankLZ string BankName string @@ -38,6 +50,91 @@ type Data struct { Bic string } +func billTemplate(billdata bill, cust customer) (Filenames) { + billid := billdata.id + custr,cuzip,cucity,cucou := "","","","" + addr := string2StringArray(cust.address,";") + for i,a := range addr { + switch i { + case 0: + custr=a + case 1: + cuzip=a + case 2: + cucity=a + case 3: + cucou=a + default: + break + } + } + dat := Data{billdata.date.UTC().Format("2006-01-02"), + billdata.timerange, + billdata.identity, + billdata.projectname, + + cust.company, + cust.name, + custr, + cuzip, + cucity, + cucou, + + config.Taxid, + config.Name, + config.Street, + config.Zip, + config.City, + config.Country, + config.Telefon, + config.Mobile, + config.Mail, + config.Url, + + config.Bankacc, + config.Banklz, + config.Bankname, + config.Iban, + config.Bic, + } + + inv := billdata.items + + filenamedata := fmt.Sprintf("%v_data",billid) + filenameinv := fmt.Sprintf("%v_invoice",billid) + filenamemain := fmt.Sprintf("outtex/%v_main.tex",billid) + fnames := Filenames{filenamedata,filenameinv,filenamemain} + + //Parse Templates + tmpl, err := template.New("invoice").Delims("[[","]]").ParseGlob("templates/*.tex") + checkErr(err) + filenamedata = fmt.Sprintf("outtex/%v_data.tex",billid) + filenameinv = fmt.Sprintf("outtex/%v_invoice.tex",billid) + filenamemain = fmt.Sprintf("outtex/%v_main.tex",billid) + + //Open File + datf, err := os.Create(filenamedata) + checkErr(err) + invf, err := os.Create(filenameinv) + checkErr(err) + maif, err := os.Create(filenamemain) + checkErr(err) + defer datf.Close() + defer invf.Close() + defer maif.Close() + + //Execute Template + //err = tmpl.ExecuteTemplate(os.Stdout, "invoice.tex", td) + err = tmpl.ExecuteTemplate(datf, "_data.tex", dat) + checkErr(err) + err = tmpl.ExecuteTemplate(invf, "_invoice.tex", inv) + checkErr(err) + err = tmpl.ExecuteTemplate(maif, "_main.tex", fnames) + checkErr(err) + + return fnames +} + func tmpltest() { //Sampledata @@ -50,11 +147,13 @@ func tmpltest() { "Fakestreet 123", "6996", "Busenhausen", + "Tittania", "6575-6544", "Meinam Sauluschtig", "Saubastrasse 86", "1111", "Nicetown", + "Niceland", "+43 (1) 655 555 23", "+43 (0) 650 555 32", "Meinam@sauluscht.ig", |
