- // ... and all the accounts involved
- for tsc := range data.Trn[tc].Spl {
- aid := data.Trn[tc].Spl[tsc].AccountId
- if check_trn(&data.Trn[tc],accnt,aid) == false {
- ac := accnt[aid].num
- fmt.Println("P:",data.Accnt[ac].Name,"at",data.Trn[tc].Date)
+ // check balance ...
+ check_balance(&data.Trn[tc],accnt,sel_date)
+ }
+
+ // tax report
+ fmt.Println("Umsatzsteuervoranmeldung (19% | 7%):")
+ fmt.Println("------------------------------------")
+ fmt.Println("Aufwendungen:",tax_report.Expenses[0],
+ tax_report.Expenses[1]);
+ fmt.Println("ohne Ausn. :",tax_report.Expenses[0]-
+ tax_report.ExpExc[0],
+ tax_report.Expenses[1]-
+ tax_report.ExpExc[1]);
+ fmt.Println("gesch. Vst. :",int((tax_report.Expenses[0]*19)/100.0),
+ int((tax_report.Expenses[1]*7)/100.0))
+ fmt.Println("ohne Ausn. :",int(((tax_report.Expenses[0]-
+ tax_report.ExpExc[0])*19)/100.0),
+ int(((tax_report.Expenses[1]-
+ tax_report.ExpExc[1])*7)/100.0))
+ fmt.Println("Vorsteuer :",tax_report.InputTax[0],
+ tax_report.InputTax[1],
+ "->",tax_report.InputTax[0]+tax_report.InputTax[1]);
+ fmt.Println("------------------------------------")
+ fmt.Println("Einnahmen :",-tax_report.Receipts[0],
+ -tax_report.Receipts[1]);
+ fmt.Println("gesch. Ust. :",int((-tax_report.Receipts[0]*19)/100.0),
+ int((-tax_report.Receipts[1]*7)/100.0));
+ fmt.Println("Umsatzsteuer:",-tax_report.SalesTax[0],
+ -tax_report.SalesTax[1]);
+ fmt.Println("------------------------------------")
+
+}
+
+func check_balance(ta *Transaction,accnt map[string]amap,sel_date string) bool {
+
+ // check date
+ tdate := strings.Fields(ta.Date)[0]
+ if !strings.Contains(tdate,sel_date) {
+ return true
+ } else {
+ }
+
+ // [taxval: 19=0 7=1][tax: no=0 yes=1][buy: no=0 yes=1]
+ var sum [2][2][2]int