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)
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())
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)
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())
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)