blob: 9c411dace7976981c5c17d1fc2a15f19674bf735 [file] [log] [blame]
Sergiusz Bazanski3976e3c2019-05-01 15:27:49 +02001package main
2
3import (
4 "time"
5
Sergiusz Bazanski1446e982019-07-21 16:04:23 +02006 pb "code.hackerspace.pl/hscloud/bgpwtf/invoice/proto"
Sergiusz Bazanski3976e3c2019-05-01 15:27:49 +02007)
8
9func calculateInvoiceData(p *pb.Invoice) {
10 p.Unit = p.Data.Unit
11 if p.Unit == "" {
12 p.Unit = "€"
13 }
14
15 p.TotalNet = 0
16 p.Total = 0
17 for _, i := range p.Data.Item {
18 rowTotalNet := uint64(i.UnitPrice * i.Count)
19 rowTotal := uint64(float64(rowTotalNet) * (float64(1) + float64(i.Vat)/100000))
20
21 p.TotalNet += rowTotalNet
22 p.Total += rowTotal
23 i.TotalNet = rowTotalNet
24 i.Total = rowTotal
25 }
26
27 due := int64(time.Hour*24) * p.Data.DaysDue
28 p.DueDate = time.Unix(0, p.Date).Add(time.Duration(due)).UnixNano()
29}