Beispiel #1
0
    def __init__(self, parent=0, *args, **kwargs):
        QtGui.QWidget.__init__(self, parent, *args, **kwargs)

        self.setWindowTitle(_(u"Choice of type and period"))

        #Title widget
        title = QtGui.QLabel()
        title.setText(_(u"Choose a account and a period"))
        title.setAlignment(QtCore.Qt.AlignHCenter)
        title_hbox = QtGui.QHBoxLayout()
        title_hbox.addWidget(title)

        #Combobox widget
        self.box_account = QtGui.QComboBox()
        self.box_period = QtGui.QComboBox()
        self.box_type = QtGui.QComboBox()

        # Data
        self.all_active_periods = all_active_periods(session.query(Period).\
                           order_by(desc(Period.start_on)).all())

        self.data_account = session.query(Account).all()

        self.box_account.addItem(_(u"All Accounts"))
        for index in xrange(0, len(self.data_account)):
            account = self.data_account[index]
            self.box_account.addItem(_(u'%(number)s %(name)s') %\
                        {'number': account.number, 'name': account.name})

        sel_index = 0
        for index in xrange(0, len(self.all_active_periods)):
            ped = self.all_active_periods[index]
            if ped == current_period():
                sel_index = index
            self.box_period.addItem(_(u'%(display_name)s') %\
                                {'display_name': ped.display_name()})
        self.box_period.setCurrentIndex(sel_index)

        #Ok and cancel hbox
        button_hbox = QtGui.QHBoxLayout()

        #Ok Button widget.
        operation_but = QtGui.QPushButton(_("list of operations per account"))
        button_hbox.addWidget(operation_but)
        operation_but.clicked.connect(self.Operation_pdf)

        #Cancel Button widget.
        balance_but = QtGui.QPushButton(_("Balances (All accounts)"))
        button_hbox.addWidget(balance_but)
        balance_but.clicked.connect(self.balance_pdf)

        combo_hbox = QtGui.QHBoxLayout()
        combo_hbox.addWidget(self.box_account)
        combo_hbox.addWidget(self.box_period)

        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(title_hbox)
        vbox.addLayout(combo_hbox)
        vbox.addLayout(button_hbox)
        self.setLayout(vbox)
Beispiel #2
0
 def set_data_for(self, period=current_period()):
     self.data = [(operation.order_number, operation.invoice_number,\
                   operation.invoice_date.strftime(u'%d-%m-%Y'),\
                   operation.provider, operation.amount, operation) \
                   for operation in session.query(Operation).\
                   filter_by(account=self.account, period=period).\
                   order_by(desc(Operation.invoice_date)).all()]
Beispiel #3
0
    def __init__(self, parent, account, *args, **kwargs):
        QtGui.QDialog.__init__(self, parent, *args, **kwargs)

        self.data = session.query(Operation).\
                    filter_by(account=self.account, period=current_period()).\
                    order_by(desc(Operation.invoice_date)).all()

        self.account = account
        title = QtGui.QLabel()
        self.setWindowTitle(_(u"Delete an operation"))
        if self.data == []:
            title.setText(_(u"There is no operation removed for this account"))
            ok_butt = QtGui.QPushButton(_(u"OK"))
            ok_butt.clicked.connect(self.close)

            vbox = QtGui.QVBoxLayout()
            vbox.addWidget(title)
            vbox.addWidget(ok_butt)
            self.setLayout(vbox)
        else:
            title.setText(_(u"Select an operation to delete"))
            title.setAlignment(QtCore.Qt.AlignHCenter)
            title_hbox = QtGui.QHBoxLayout()
            title_hbox.addWidget(title)

            #Combobox widget
            self.box = QtGui.QComboBox()
            for index in xrange(0, len(self.data)):
                op = self.data[index]
                sentence = _(u"%(date)s - %(amount)s to " \
                             u"%(provider)s/%(invoice_num)s " \
                             u"(Order #%(order_num)s)") \
                             % {'order_num': op.order_number, \
                                'invoice_num': op.invoice_number, \
                                'provider': op.provider, \
                                'amount': formatted_number(op.amount), \
                                'date': op.invoice_date.strftime('%x')}
                self.box.addItem(sentence, QtCore.QVariant(op.id))

            combo_hbox = QtGui.QHBoxLayout()
            combo_hbox.addWidget(self.box)

            #delete and cancel hbox
            button_hbox = QtGui.QHBoxLayout()

            #Delete Button widget.
            delete_but = QtGui.QPushButton(_(u"Delete operation"))
            button_hbox.addWidget(delete_but)
            delete_but.clicked.connect(self.delete)
            #Cancel Button widget.
            cancel_but = QtGui.QPushButton(_(u"Cancel"))
            button_hbox.addWidget(cancel_but)
            cancel_but.clicked.connect(self.cancel)

            #Create the QVBoxLayout contenaire.
            vbox = QtGui.QVBoxLayout()
            vbox.addLayout(title_hbox)
            vbox.addLayout(combo_hbox)
            vbox.addLayout(button_hbox)
            self.setLayout(vbox)
Beispiel #4
0
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.resize(900, 650)
        self.setWindowTitle(_(u"AN Budgets Manager"))
        self.setWindowIcon(QtGui.QIcon("images/icon32.png"))

        self._account = None

        self.menubar = MenuBar(self)
        self.setMenuBar(self.menubar)

        if not period_has_budgets(current_period()):
            from balanceupdateview import BalanceUpdateWidget

            create_empty_budgets(current_period())
            self.change_context(BalanceUpdateWidget, force_current=True)
        else:
            self.change_context(BalanceViewWidget)
Beispiel #5
0
    def __init__(self, parent=0, force_current=False, *args, **kwargs):

        super(BalanceUpdateWidget, self).__init__(parent=parent, \
                                                  *args, **kwargs)
        self.title = ANMPageTitle(_(u"Update Budgets for next Quarter."))

        # periods
        self.period1 = current_period()

        # need to change data for current period since it does not exist.
        if force_current:
            self.period2 = current_period()
            self.title = ANMPageTitle(_(u"You must enter bugets for current period before you can continue."))
        else:
            self.period2 = self.period1.next()
        self.table = NextBalanceUpdateTableWidget(parent=self, \
                                                  period1=self.period1, \
                                                  period2=self.period2)

        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(self.title)
        vbox.addWidget(self.table)

        self.setLayout(vbox)
Beispiel #6
0
    def __init__(self, parent=0, *args, **kwargs):

        super(BalanceViewWidget, self).__init__(parent=parent, *args, **kwargs)
        ANMPeriodHolder.__init__(self, *args, **kwargs)

        self.title = ANMPageTitle(_(u"Account's Summary."))

        self.table = BalanceTableWidget(parent=self, period=self.main_period)

        # periods
        period = current_period()

        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(self.title)
        vbox.addWidget(self.periods_bar)
        vbox.addWidget(self.table)

        self.setLayout(vbox)
Beispiel #7
0
 def set_data_for(self, period=current_period()):
     self.data = [account_summary(account, period)
             for account in session.query(Account).all()]
Beispiel #8
0
    def set_data_from(self, period=current_period()):
        self.main_period = period

        self.periods = [self.main_period.previous(), \
                        self.main_period, \
                        self.main_period.next()]
Beispiel #9
0
    def __init__(self, period=current_period(), *args, **kwargs):

        self.main_period = period
        self.periods_bar = self.gen_bar_for(self.main_period)
Beispiel #10
0
    def __init__(self, account, period=current_period(), \
                 parent=0, *args, **kwargs):
        super(OperationWidget, self).__init__(parent=parent, *args, **kwargs)
        ANMPeriodHolder.__init__(self, period, *args, **kwargs)

        # set global account
        self.account = account
        self.main_period = period
        self.balance = account_balance(self.account, period)

        self.table = OperationTableWidget(parent=self, period=self.main_period)

        self.title = ANMPageTitle(_(u"Transactions List for Account " \
                                    u"%(number)s: %(name)s.") \
                                    % {'name': self.account.name, \
                                       'number': self.account.number})

        self.balance_title = ANMPageTitle(_(u"Balance: " u"%(balance)s FCFA") \
                                    % {'balance': \
                                              formatted_number(account_balance(self.account, period))})
        hbox = QtGui.QHBoxLayout()
        hbox.addWidget(self.table)

        formbox = QtGui.QFormLayout()
        self.order_number = QtGui.QLineEdit()
        self.invoice_number = QtGui.QLineEdit()
        self.invoice_date = QtGui.QDateTimeEdit(QtCore.QDate.currentDate())
        self.invoice_date.setDisplayFormat("yyyy-MM-dd")
        # change date if appropriate
        self.adjust_date_field()
        self.provider = QtGui.QLineEdit()
        self.amount = QtGui.QLineEdit()
        self.amount.setValidator(QtGui.QIntValidator())
        butt = QtGui.QPushButton(_(u"Add"))
        butt.clicked.connect(self.add_operation)

        formbox1 = QtGui.QHBoxLayout()
        formbox1.addWidget(QtGui.QLabel(_(u'Order number')))
        formbox1.addWidget(QtGui.QLabel(_(u'Invoice number')))
        formbox1.addWidget(QtGui.QLabel(_(u'Invoice date')))
        formbox1.addWidget(QtGui.QLabel(_(u'Provider')))
        formbox1.addWidget(QtGui.QLabel(_(u'Amount')))
        formbox1.addSpacing(90)

        formbox = QtGui.QHBoxLayout()
        formbox.addWidget(self.order_number)
        formbox.addWidget(self.invoice_number)
        formbox.addWidget(self.invoice_date)
        formbox.addWidget(self.provider)
        formbox.addWidget(self.amount)
        formbox.addWidget(butt)

        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(self.title)
        vbox.addWidget(self.balance_title)
        vbox.addWidget(self.periods_bar)
        vbox.addLayout(formbox1)
        vbox.addLayout(formbox)
        vbox.addLayout(hbox)

        self.setLayout(vbox)