def __init__(self, background): self.main_window_background = background self.bank_names_count = 0 self.owner_id = -1 self.builder = helpers.get_builder('bankaccounts') self.builder.connect_signals(self) self.bankaccounts_class = class_bankaccounts.BankAccountsClass() combo = self.builder.get_object('bank_names_combo') model = Gtk.ListStore(str) combo.set_model(model) cell = Gtk.CellRendererText() combo.pack_start(cell, True) combo.add_attribute(cell, 'text', 0) for item in self.bankaccounts_class.get_bank_names(): iter = model.append() model.set(iter, 0, item.Name) self.bank_names_count += 1 combo = self.builder.get_object('account_types_combo') model = Gtk.ListStore(str) combo.set_model(model) cell = Gtk.CellRendererText() combo.pack_start(cell, True) combo.add_attribute(cell, 'text', 0) for item in (_("Current Account"), _("Savings Account")): iter = model.append() model.set(iter, 0, item) treeview = self.builder.get_object('treeview') model = Gtk.ListStore(str, str, str, str, str, str) treeview.set_model(model) column = Gtk.TreeViewColumn(_('Id'), Gtk.CellRendererText(), text=0) treeview.append_column(column) column = Gtk.TreeViewColumn(_('Account Name'), Gtk.CellRendererText(), text=1) treeview.append_column(column) column = Gtk.TreeViewColumn(_('Number'), Gtk.CellRendererText(), text=2) treeview.append_column(column) column = Gtk.TreeViewColumn(_('Owner'), Gtk.CellRendererText(), text=3) treeview.append_column(column) column = Gtk.TreeViewColumn(_('Type'), Gtk.CellRendererText(), text=4) treeview.append_column(column) column = Gtk.TreeViewColumn(_('Bank Name'), Gtk.CellRendererText(), text=5) treeview.append_column(column)
def passShode(self, sender): msgbox = Gtk.MessageDialog( self.window, Gtk.DialogFlags.MODAL, Gtk.MessageType.WARNING, Gtk.ButtonsType.OK_CANCEL, _("Are you sure to get this cheque passed?")) msgbox.set_title(_("Are you sure?")) result = msgbox.run() if result == Gtk.ResponseType.CANCEL: msgbox.destroy() return self.getSelection() document = class_document.Document() result = config.db.session.query(Cheque).filter( Cheque.chqId == self.code).first() status = result.chqStatus if status == 3 or status == 10: sub = subjects.Subjects(parent_id=[1, 14]) sub.connect('subject-selected', self.casheCheque) if status == 1: result.chqStatus = 2 if status == 1: # pass ba = class_bankaccounts.BankAccountsClass() accName = ba.get_account(result.chqAccount).accName banksub = config.db.session.query(Subject).filter( Subject.parent_id == (dbconf.get_int('bank'))).filter( Subject.name == accName).first().id document.add_notebook( banksub, result.chqAmount, _("Cheque with serial No.") + result.chqSerial + _('Passed')) document.add_notebook( dbconf.get_int('our_cheque'), _("Cheque with serial No.") + result.chqSerial + -result.chqAmount, _('Passed')) ch_history = ChequeHistory(result.chqId, result.chqAmount, result.chqWrtDate, result.chqDueDate, result.chqSerial, result.chqStatus, result.chqCust, result.chqAccount, result.chqTransId, result.chqDesc, self.current_time) config.db.session.add(ch_history) document.save() config.db.session.commit() share.mainwin.silent_daialog( _("The operation was completed successfully.")) self.searchFilter() msgbox.destroy()
def __init__(self, transId=0, sellFlag=1, spendCheque=False): #temp for vackground self.bank_names_count = 0 self.sellFlag = sellFlag self.chequesList = [] self.lastChqID = 0 #self.background = Gtk.Fixed() #self.background.put(Gtk.Image.new_from_file(os.path.join(config.data_path, "media", "background.png")), 0, 0) # not working ! #self.background.show_all() GObject.GObject.__init__(self) self.session = config.db.session self.builder = get_builder("cheque") self.window = self.builder.get_object("showPymnts") self.addPymntDlg = self.builder.get_object("addPaymentDlg") #self.spendCheque = spendCheque if spendCheque: # if is from automatic accounting-> spend cheque self.builder.get_object("addpaymentBtn").set_sensitive(False) self.builder.get_object("editPaymentBtn").set_sensitive(False) self.builder.get_object("selectPayBtn").set_sensitive(True) if transId: # if is from adding/editing factors self.builder.get_object("selectPayBtn").set_sensitive(True) self.totalAmount = 0 self.numrecpts = 0 self.numcheqs = 0 self.transId = transId self.payer = None self.pymntAmntEntry = decimalentry.DecimalEntry() self.builder.get_object("pymntAmntBox").add(self.pymntAmntEntry) self.pymntAmntEntry.show() self.dueDateEntry = dateentry.DateEntry() self.builder.get_object("pymntDueDateBox").add(self.dueDateEntry) self.dueDateEntry.show() self.writeDateEntry = dateentry.DateEntry() self.builder.get_object("pymntWritingDateBox").add(self.writeDateEntry) self.writeDateEntry.show() self.chequeStatusLbl = self.builder.get_object("chequeStatusLbl") self.isCheque = self.builder.get_object("chequeRadioButton") self.pymntDescEntry = self.builder.get_object("pymntDescEntry") self.bankEntry = self.builder.get_object("bankEntry") if not self.sellFlag: self.builder.get_object("chooseBankBtn").set_sensitive(False) # add for bankcombo 23/11/92 self.bankaccounts_class = class_bankaccounts.BankAccountsClass() self.bankCombo = self.builder.get_object('bank_names_combo') model = Gtk.ListStore(str) self.bankCombo.set_model(model) cell = Gtk.CellRendererText() self.bankCombo.pack_start(cell, True) # self.bankCombo.add_attribute(cell, 'text', 0) self.serialNoEntry = self.builder.get_object("serialNoEntry") self.payerEntry = self.builder.get_object("payerNameEntry") self.customerNameLbl = self.builder.get_object("customerNameLbl") self.cheqTreeView = self.builder.get_object("chequeTreeView") self.cheqListStore = Gtk.ListStore(str, str, str, str, str, str, str, str, str, str) self.cheqListStore.clear() self.cheqTreeView.set_model(self.cheqListStore) payByTo = _("Payid by") if sellFlag else _("Payid to") cheqHeaders = (_("ID"), _("No."), payByTo, _("Amount"), _("Writing date"), _("Due Date"), _("Bank"), _("Serial No."), _("Status"), _("Description")) txt = 0 for header in cheqHeaders: column = Gtk.TreeViewColumn(header, Gtk.CellRendererText(), text=txt) column.set_spacing(5) column.set_resizable(True) self.cheqTreeView.append_column(column) txt += 1 self.chqSltWindow = self.builder.get_object("selectCheque") self.freeChequesTreeview = self.builder.get_object( "freeChequesTreeview") self.sltCheqListStore = Gtk.ListStore(str, str, str, str, str, str, str, str, str, str) self.sltCheqListStore.clear() self.freeChequesTreeview.set_model(self.sltCheqListStore) payByTo = "Customer" cheqHeaders = (_("ID"), _("No."), payByTo, _("Amount"), _("Writing date"), _("Due Date"), _("Bank"), _("Serial No."), _("Status"), _("Description")) txt = 0 for header in cheqHeaders: column = Gtk.TreeViewColumn(header, Gtk.CellRendererText(), text=txt) column.set_spacing(5) column.set_resizable(True) self.freeChequesTreeview.append_column(column) txt += 1 self.builder.connect_signals(self)
def __init__(self, non_cash_label=None, spend_label=None): ## A list contains information about new cheques # # to remove all cheques for reseting form cheques_ui_obj.new_cheques = [] self.cheque_class = class_cheque.ClassCheque() self.new_cheques = [] #self.is_edit is a var that check the form called by add function or edit function ## a list contains informations about selected cheques for spending #self.spend_cheques only keep serial of cheque and values self.spend_cheques = [] self.is_edit = 0 self.non_cash_payment_label = non_cash_label self.spend_label = spend_label self.mode = 'our' self.bank_accounts = class_bankaccounts.BankAccountsClass() # User Interface self.builder = helpers.get_builder('cheque') self.builder.connect_signals(self) self.amount_entry = decimalentry.DecimalEntry() self.write_date = dateentry.DateEntry() self.due_date = dateentry.DateEntry() add_table = self.builder.get_object('add_table') add_table.attach(self.amount_entry, 1, 2, 1, 2, gtk.EXPAND | gtk.FILL, gtk.SHRINK) add_table.attach(self.write_date, 1, 2, 3, 4, gtk.EXPAND | gtk.FILL, gtk.SHRINK) add_table.attach(self.due_date, 1, 2, 4, 5, gtk.EXPAND | gtk.FILL, gtk.SHRINK) self.builder.get_object('list_cheque_window').resize(400, 1) self.builder.get_object('desc_frame').set_size_request(0, 100) model = gtk.ListStore(str, str, str, str, str, str, str) treeview = self.builder.get_object('list_cheque_treeview') treeview.set_model(model) column = gtk.TreeViewColumn(_("Customer"), gtk.CellRendererText(), text=0) treeview.append_column(column) column = gtk.TreeViewColumn(_("Bank Account"), gtk.CellRendererText(), text=1) treeview.append_column(column) column = gtk.TreeViewColumn(_("Bank/Branch"), gtk.CellRendererText(), text=2) treeview.append_column(column) column = gtk.TreeViewColumn(_("Serial"), gtk.CellRendererText(), text=3) treeview.append_column(column) column = gtk.TreeViewColumn(_("Amount"), gtk.CellRendererText(), text=4) treeview.append_column(column) self.new_cheques = [] column = gtk.TreeViewColumn(_("Due Date"), gtk.CellRendererText(), text=5) treeview.append_column(column) model = gtk.ListStore(str, str, str) combo = self.builder.get_object('bank_accounts') combo.set_model(model) cell = gtk.CellRendererText() cell.set_visible(False) combo.pack_start(cell, True) combo.add_attribute(cell, 'text', 0) cell = gtk.CellRendererText() combo.pack_start(cell, True) combo.add_attribute(cell, 'text', 1) cell = gtk.CellRendererText() combo.pack_start(cell, True) combo.add_attribute(cell, 'text', 2)
def __init__(self, transId=0, billId=0, transCode=0): #temp for vackground self.bank_names_count = 0 self.background = gtk.Fixed() self.background.put( gtk.image_new_from_file( os.path.join(config.data_path, "media", "background.png")), 0, 0) self.background.show_all() gobject.GObject.__init__(self) self.session = config.db.session self.builder = get_builder("SellingForm") self.window = self.builder.get_object("showPymnts") self.totalAmount = 0 self.numrecpts = 0 self.numcheqs = 0 self.transId = transId self.billId = billId self.transCode = transCode self.payer = None self.pymntAmntEntry = decimalentry.DecimalEntry() self.builder.get_object("pymntAmntBox").add(self.pymntAmntEntry) self.pymntAmntEntry.show() self.dueDateEntry = dateentry.DateEntry() self.builder.get_object("pymntDueDateBox").add(self.dueDateEntry) self.dueDateEntry.show() self.writeDateEntry = dateentry.DateEntry() self.builder.get_object("pymntWritingDateBox").add(self.writeDateEntry) self.writeDateEntry.show() self.cheqStatusList = self.builder.get_object("cheqStatusComboBox") comboInsertItems(self.cheqStatusList, self.chequeStatus) self.cheqStatusList.set_active(0) self.isCheque = self.builder.get_object("chequeRadioButton") self.isRecpt = self.builder.get_object("recieptRadioButton") self.pymntDescEntry = self.builder.get_object("pymntDescEntry") self.bankEntry = self.builder.get_object("bankEntry") # add for bankcombo 23/11/92 self.bankaccounts_class = class_bankaccounts.BankAccountsClass() self.bankCombo = self.builder.get_object('bank_names_combo') model = gtk.ListStore(str) self.bankCombo.set_model(model) cell = gtk.CellRendererText() self.bankCombo.pack_start(cell) self.bankCombo.add_attribute(cell, 'text', 0) for item in self.bankaccounts_class.get_bank_names(): iter = model.append() model.set(iter, 0, item.Name) self.bank_names_count += 1 self.serialNoEntry = self.builder.get_object("serialNoEntry") self.payerEntry = self.builder.get_object("payerNameEntry") self.payerEntry.set_sensitive(False) self.builder.get_object("choose Payer").set_sensitive(False) self.trackingCodeEntry = self.builder.get_object("trackingCodeEntry") self.bankAccountEntry = self.builder.get_object("bankAccountEntry") self.paysTreeView = self.builder.get_object("receiptTreeView") self.paysListStore = gtk.ListStore(str, str, str, str, str, str, str, str, str) self.paysListStore.clear() self.paysTreeView.set_model(self.paysListStore) self.cheqTreeView = self.builder.get_object("chequeTreeView") self.cheqListStore = gtk.ListStore(str, str, str, str, str, str, str, str, str) self.cheqListStore.clear() self.cheqTreeView.set_model(self.cheqListStore) payHeaders = (_("No."), _("Paid by"), _("Amount"), _("Writing date"), _("Due Date"), _("Bank"), _("Serial No."), _("Track Code"), _("Description")) txt = 0 for header in payHeaders: column = gtk.TreeViewColumn(header, gtk.CellRendererText(), text=txt) column.set_spacing(5) column.set_resizable(True) self.paysTreeView.append_column(column) txt += 1 cheqHeaders = (_("No."), _("Paid by"), _("Amount"), _("Writing date"), _("Due Date"), _("Bank"), _("Serial No."), _("Status"), _("Description")) txt = 0 for header in cheqHeaders: column = gtk.TreeViewColumn(header, gtk.CellRendererText(), text=txt) column.set_spacing(5) column.set_resizable(True) self.cheqTreeView.append_column(column) txt += 1 self.builder.connect_signals(self)
def showResult(self, chequeId=None, chqSerial=None, amountFrom=None, amountTo=None, dateFrom=None, dateTo=None, wDateTo=None, wDateFrom=None): self.treestoreIncoming.clear() self.treestoreOutgoing.clear() self.treestoreNotPassed.clear() self.treestoreNotCashed.clear() self.treestoreDeleted.clear() self.treestorePassed.clear() self.treestoreCashed.clear() self.treestoreSpent.clear() self.treestoreBounced.clear() self.treestoreBouncedP.clear() self.treestoreReturnedT.clear() self.treestoreReturnedF.clear() result = config.db.session.query( Cheque, Customers.custName).select_from( outerjoin(Cheque, Customers, Customers.custId == Cheque.chqCust)) # Apply filters delimiter = config.datedelims[config.datedelim] if chequeId: result = result.filter(Cheque.chqId == chequeId) if chqSerial: result = result.filter(Cheque.chqSerial.like(chqSerial + "%")) if amountFrom: result = result.filter(Cheque.chqAmount >= amountFrom) if amountTo: result = result.filter(Cheque.chqAmount <= amountTo) if dateTo: dateTo = dateentry.stringToDate(dateTo) if dateFrom: dateFrom = dateentry.stringToDate(dateFrom) if wDateTo: wDateTo = dateentry.stringToDate(wDateTo) if wDateFrom: wDateFrom = dateentry.stringToDate(wDateFrom) if dateTo: result = result.filter(Cheque.chqDueDate <= dateTo) if wDateTo: result = result.filter(Cheque.chqWrtDate <= wDateTo) if dateFrom: #dateFrom -= timedelta(days=1) result = result.filter(Cheque.chqDueDate >= dateFrom) if wDateFrom: #wDateFrom -= timedelta(days=1) result = result.filter(Cheque.chqWrtDate >= wDateFrom) totalIn = totalGo = totalnotcash = totalnotpass = totalPass = totalCash = totalSpent = totalBouncedp = totalBounced = totalRetT = totalRetF = totalFloat = 0 # Show for cheque, cust in result.all(): chqWrtDate = dateentry.dateToString(cheque.chqWrtDate) chqDueDate = dateentry.dateToString(cheque.chqDueDate) # if (cheque.chqStatus == 2) or (cheque.chqStatus == 4): # clear = _('Cleared') # else: # clear = _('Not Cleared' ) chqBill = config.db.session.query(Notebook.bill_id).filter( Notebook.chqId == cheque.chqId).first() if chqBill: chqBill = chqBill.bill_id else: chqBill = 0 self.bankaccounts_class = class_bankaccounts.BankAccountsClass() isSpended = False stat = cheque.chqStatus if stat == 6: history = config.db.session.query(ChequeHistory).filter( ChequeHistory.ChequeId == cheque.chqId).order_by( ChequeHistory.Id.desc()).limit(2).all() if len(history): history = history[1] isSpended = True if history.Status == 5 else False if stat in [1, 2, 6, 8] and not isSpended: chqAccount = self.bankaccounts_class.get_account( cheque.chqAccount).accName else: chqAccount = self.bankaccounts_class.get_bank_name( cheque.chqAccount) addingRow = (str(cheque.chqId), str(cheque.chqAmount), str(chqWrtDate), str(chqDueDate), str(cheque.chqSerial), str(cust), str(chqAccount), str(cheque.chqDesc), str(chqBill), str(unicode(self.chequeStatus[cheque.chqStatus]))) if cheque.chqDelete == False: if stat in [3, 4, 7, 9]: self.treestoreIncoming.append(None, addingRow) totalIn += cheque.chqAmount else: self.treestoreOutgoing.append(None, addingRow) totalGo += cheque.chqAmount if stat == 1: self.treestoreNotPassed.append(None, addingRow) totalPass += cheque.chqAmount elif (stat == 2): self.treestorePassed.append(None, addingRow) totalnotpass += cheque.chqAmount elif stat == 3: self.treestoreNotCashed.append(None, addingRow) totalnotcash += cheque.chqAmount elif stat == 4: self.treestoreCashed.append(None, addingRow) totalCash += cheque.chqAmount elif stat == 5: self.treestoreSpent.append(None, addingRow) totalSpent += cheque.chqAmount elif stat == 6: self.treestoreReturnedF.append(None, addingRow) totalRetF += cheque.chqAmount elif stat == 7: self.treestoreReturnedT.append(None, addingRow) totalRetT += cheque.chqAmount elif stat == 8: self.treestoreBouncedP.append(None, addingRow) totalBouncedp += cheque.chqAmount elif stat == 9: self.treestoreBounced.append(None, addingRow) totalBounced += cheque.chqAmount elif stat == 10: self.treestoreFloat.append(None, addingRow) totalFloat += cheque.chqAmount else: self.treestoreDeleted.append(None, addingRow) self.totals = (totalIn, totalGo, totalnotpass, totalnotcash, totalPass, totalCash, totalSpent, totalBounced, totalBouncedp, totalRetT, totalRetF, totalFloat, "") self.builder.get_object("totalLbl").set_text(str(totalIn)) self.currentTreeview = 0