document parsing: embed Cert into [Debit|Credit]Cert
[epoint] / logic / logic.go
index 2099463..602f458 100644 (file)
@@ -244,6 +244,10 @@ func NewDebitCert(draftid string, draft *document.Draft) (*document.DebitCert, e
                }
                // TODO: this is a hack
                oldcert, err := document.ToCert(iv)
+               if err != nil {
+                       // internal error
+                       return nil, err
+               }
                // TODO: sanity checks? oldcert.Holder == draft.Drawer
                cert.Serial = oldcert.Serial + 1
                cert.Balance = oldcert.Balance + cert.Difference
@@ -255,7 +259,7 @@ func NewDebitCert(draftid string, draft *document.Draft) (*document.DebitCert, e
                }
                cert.LastDebitSerial = oldcert.LastDebitSerial
                cert.LastCreditSerial = oldcert.LastCreditSerial
-               if oldcert.IsDebit {
+               if _,ok := iv.(*document.DebitCert); ok {
                        cert.LastDebitSerial = oldcert.Serial
                } else {
                        cert.LastCreditSerial = oldcert.Serial
@@ -311,7 +315,7 @@ func NewCreditCert(draftid string, draft *document.Draft, dcertid string, dcert
                }
                cert.LastDebitSerial = oldcert.LastDebitSerial
                cert.LastCreditSerial = oldcert.LastCreditSerial
-               if oldcert.IsDebit {
+               if _,ok := iv.(*document.DebitCert); ok {
                        cert.LastDebitSerial = oldcert.Serial
                } else {
                        cert.LastCreditSerial = oldcert.Serial