def voidentry(self, *args): index = self.cbgrid.GetGridCursorRow() if index < 0: return d = wx.MessageDialog(self, "Really void this transaction?", "Really void?", wx.YES_NO) if d.ShowModal() == wx.ID_YES: self.edited = 1 transaction = self.cur_transaction[index] today = Date() transaction.amount = 0 transaction.payee = "VOID: " + transaction.payee transaction.memo = "voided %s" % today.formatUS() self.redraw_all(index) # redraw only [index:] return
class Transaction: def __init__(self): self.date = Date() self.number = None self.payee = None self.cleared = 0 self.comment = None self.memo = None self.amount = None def __str__(self): lines = [] lines.append("%10s " % self.date.formatUS()) if self.number: lines.append("%5d " % self.number) else: lines.append(" ") lines.append("%-20s " % string_limit(self.payee, 20)) if self.cleared: lines.append("x ") else: lines.append(" ") if self.comment: lines.append("%-10s " % string_limit(self.comment, 10)) else: lines.append(" ") if self.memo: lines.append("%-10s " % string_limit(self.memo, 10)) else: lines.append(" ") lines.append("%8.2f " % self.amount) return ''.join(lines) def __cmp__(self, other): return cmp(self.date, other.date) def qif_repr(self): lines = [] lines.append("D%s" % self.date.formatUS()) lines.append("T%.2f" % self.amount) if self.cleared: lines.append("Cx") else: lines.append("C*") if self.number: lines.append("N%d" % self.number) lines.append("P%s" % self.payee) if self.comment: lines.append("L%s" % self.comment) if self.memo: lines.append("M%s" % self.memo) lines.append("^") return '\n'.join(lines) def setamount(self, rest): self.amount = float(rest.strip().replace(',', '')) def setdate(self, rest): self.date = Date(rest) def setpayee(self, rest): self.payee = rest def setcomment(self, rest): self.comment = rest def setmemo(self, rest): self.memo = rest def setnumber(self, rest): val = rest.strip() if val: self.number = int(val) else: self.number = None return def setcleared(self, rest): if rest[0] == "x": self.cleared = 1 else: self.cleared = 0 return def getpayee(self): return self.payee def getamount(self): return self.amount