Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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