Exemple #1
0
    def query_input(self, qtype='category'):
        fromdate = self.fromdate.GetValue()
        fromyear = fromdate.GetYear()
        frommonth = fromdate.GetMonth() + 1
        fromday = fromdate.GetDay()

        todate = self.todate.GetValue()
        toyear = todate.GetYear()
        tomonth = todate.GetMonth() + 1
        today = todate.GetDay()

        type = self.type.GetValue()
        cate = self.category.GetValue()

        frame = self.parent.parent

        if type == _('Payout'):
            mytype = 0
        elif type == _('Income'):
            mytype = 1
        else:
            mytype = -1

        if frommonth > tomonth:
            maxmonth = frommonth
            minmonth = tomonth
        else:
            maxmonth = tomonth
            minmonth = frommonth

        dbx = datamodel.CapitalData(frame.db)
        return dbx.stat(qtype, mytype, cate, fromdate, fromyear, frommonth,
                        fromday, todate, toyear, tomonth, today, minmonth,
                        maxmonth)
Exemple #2
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, -1, style=0)
        self.parent = parent
        self.frame = self.parent.parent
        self.db = self.parent.parent.db
        self.dbx = datamodel.CapitalData(self.db)

        box = wx.BoxSizer(wx.HORIZONTAL)
        tday = datetime.date.today()
        items = [str(x) for x in range(2009, 2020)]
        self.year = wx.ComboBox(self, 500, str(tday.year), (60, 50), (80, -1),
                                items, wx.CB_DROPDOWN | wx.CB_READONLY)
        items = [str(x) for x in range(1, 13)]
        self.month = wx.ComboBox(self, 500, str(tday.month), (60, 50),
                                 (60, -1), items,
                                 wx.CB_DROPDOWN | wx.CB_READONLY)
        box.Add(wx.StaticText(self, -1, _(' Date: '), (8, 10)), 0,
                wx.ALIGN_CENTER)
        box.Add(self.year, 0, wx.EXPAND)
        box.Add(wx.StaticText(self, -1, _(" Year: "), (8, 10)), 0,
                wx.ALIGN_CENTER)
        box.Add(self.month, 0, wx.EXPAND)
        box.Add(wx.StaticText(self, -1, _(" Month:"), (8, 10)), 0,
                wx.ALIGN_CENTER)
        box.Add(wx.StaticText(self, -1, _("  Sum: "), (8, 10)), 0,
                wx.ALIGN_CENTER)
        #self.total = wx.TextCtrl(self, -1, size=(100,-1), style=wx.TE_READONLY)
        self.total = wx.StaticText(self, -1, "", (8, 10), (60, -1))
        box.Add(self.total, 0, wx.ALIGN_CENTER)

        box.Add(wx.StaticText(self, -1, _("  Surplus: "), (8, 10)), 0,
                wx.ALIGN_CENTER)
        self.surplus = wx.StaticText(self, -1, "", (8, 10), (60, -1))
        box.Add(self.surplus, 0, wx.ALIGN_CENTER)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(box, 0, wx.EXPAND | wx.ALL, border=2)
        self.list = wx.ListCtrl(self, -1, style=wx.LC_REPORT)
        sizer.Add(self.list, 1, wx.EXPAND | wx.ALL)

        self.SetSizer(sizer)
        self.SetAutoLayout(True)

        self.currentItem = None
        self.Bind(wx.EVT_COMBOBOX, self.OnChooseYear, self.year)
        self.Bind(wx.EVT_COMBOBOX, self.OnChooseMonth, self.month)
        self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated, self.list)
        self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self.list)
        self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick, self.list)
        self.Bind(wx.EVT_CONTEXT_MENU, self.OnPopupMenu)
        #self.init()
        self.itemDataMap = {}
        self.load()

        listmix.ColumnSorterMixin.__init__(self, self.list.GetColumnCount())
Exemple #3
0
    def load(self):
        catedbx = datamodel.CategoryData(self.db)
        capidbx = datamodel.CapitalData(self.db)

        tday = datetime.date.today()
        cates= catedbx.getall('parent')
        recs = capidbx.get_month(tday.year, tday.month)
   
        self.category = datamodel.Category(cates, recs)
        datamodel.category = self.category
        self.SetStatusText(_('Database file: ') + self.conf['lastdb'], 0)
Exemple #4
0
    def payout_dialog(self, ready):
        dlg = dialogs.PayoutDialog(self, ready)
        dlg.CenterOnScreen()

        dbx = datamodel.CapitalData(self.db)
        while dlg.ShowModal() == wx.ID_OK:
            data = dlg.values()
            logfile.info('payout dialog:', data)
            
            if data['mode'] == 'insert':
                try:
                    dbx.insert_payout(data)
                except Exception, e:
                    wx.MessageBox(_('Add payout failture:') + str(e), _('Add payout information'), wx.OK|wx.ICON_INFORMATION)
                    logfile.info('insert payout error:', traceback.format_exc())
                else:
                    self.reload()
                    dlg.ClearForReinput()
            elif data['mode'] == 'update':
                try:
                    dbx.update_payout(data)
                except Exception, e:
                    wx.MessageBox(_('Change payout failture:') + str(e), _('Change payout information'), wx.OK|wx.ICON_INFORMATION)
                    logfile.info('update error:', traceback.format_exc())
Exemple #5
0
 def __init__(self, db, charset='utf-8'):
     self.db = db
     self.charset = charset
     self.catedbx = datamodel.CategoryData(self.db)
     self.capidbx = datamodel.CapitalData(self.db)