Esempio n. 1
0
 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
Esempio n. 2
0
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