go/svc/invoice: add shitty multilanguage support
diff --git a/go/svc/invoice/model.go b/go/svc/invoice/model.go
index 701807a..51fe850 100644
--- a/go/svc/invoice/model.go
+++ b/go/svc/invoice/model.go
@@ -54,7 +54,7 @@
return err
}
-func (m *model) sealInvoice(ctx context.Context, uid string) error {
+func (m *model) sealInvoice(ctx context.Context, uid, language string, useProformaTime bool) error {
id, err := strconv.Atoi(uid)
if err != nil {
return status.Error(codes.InvalidArgument, "invalid uid")
@@ -81,6 +81,9 @@
`
sealTime := time.Now()
+ if useProformaTime {
+ sealTime = time.Unix(0, invoice.Date)
+ }
res, err := tx.Exec(q, id, sealTime.UnixNano())
if err != nil {
return err
@@ -101,11 +104,16 @@
}
invoice.State = pb.Invoice_STATE_SEALED
- invoice.FinalUid = fmt.Sprintf("FV/%s", finalUid)
+ // TODO(q3k): this should be configurable.
+ if language == "pl" {
+ invoice.FinalUid = fmt.Sprintf("FV/%s", finalUid)
+ } else {
+ invoice.FinalUid = fmt.Sprintf("%s", finalUid)
+ }
invoice.Date = sealTime.UnixNano()
calculateInvoiceData(invoice)
- pdfBlob, err := renderInvoicePDF(invoice)
+ pdfBlob, err := renderInvoicePDF(invoice, language)
if err != nil {
return err
}
@@ -142,7 +150,13 @@
?, ?
)
`
- res, err := m.db.Exec(sql, data, time.Now().UnixNano())
+
+ t := time.Now()
+ if id.Date != 0 {
+ t = time.Unix(0, id.Date)
+ }
+
+ res, err := m.db.Exec(sql, data, t.UnixNano())
if err != nil {
return "", err
}
@@ -216,7 +230,7 @@
}
if s.finalUid.Valid {
p.State = pb.Invoice_STATE_SEALED
- p.FinalUid = fmt.Sprintf("FV/%s", s.finalUid.String)
+ p.FinalUid = fmt.Sprintf("%s", s.finalUid.String)
p.Date = s.sealedTime.Int64
} else {
p.State = pb.Invoice_STATE_PROFORMA