summaryrefslogtreecommitdiff
path: root/texify.go
diff options
context:
space:
mode:
Diffstat (limited to 'texify.go')
-rw-r--r--texify.go101
1 files changed, 100 insertions, 1 deletions
diff --git a/texify.go b/texify.go
index 01ccd8f..71a9988 100644
--- a/texify.go
+++ b/texify.go
@@ -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",