def add_statement(self):
        ''' add statement '''
        types = {0: "balance", 1: "added", 2: "cut", 3: "recovery"}
        commit = False
        for data in self.list_data:
            date_op = data[0].text()
            time_op = data[1].text()
            type_op = types[data[2].currentIndex()]
            value_op = data[3].text()

            day, month, year = date_op.split('/')
            hour, minute = time_op.split(':')
            datetime_ = datetime(int(year), int(month), int(day), int(hour),
                                 int(minute))
            flag = False
            last_b = last_balance()
            if value_op:
                flag = True
            if type_op == "recovery" or type_op == "cut":
                flag = True
            if flag:
                if type_op == "added":
                    if last_b == None:
                        balance = int(value_op)
                    else:
                        balance = int(last_b) + int(value_op)
                if type_op == "balance":
                    balance = unicode(value_op)
                if type_op == "recovery" or type_op == "cut":
                    balance = unicode(last_b)

                try:
                    operation = Operation.create(date_op=datetime_,
                                                 type_=unicode(type_op),
                                                 value=unicode(value_op),
                                                 balance=balance)
                    raise_success(_(u"Confirmation"),
                                  _(u"Registered opération"))
                except:
                    raise
                    raise_error(_(u"Confirmation"),
                                _(u"There is no valid operation"))
        self.change_main_context(DashbordViewWidget)
    def add_statement(self):
        """ add statement """
        types = {0: "balance", 1: "added", 2: "cut", 3: "recovery"}
        commit = False
        for data in self.list_data:
            date_op = data[0].text()
            time_op = data[1].text()
            type_op = types[data[2].currentIndex()]
            value_op = data[3].text()

            day, month, year = date_op.split("/")
            hour, minute = time_op.split(":")
            datetime_ = datetime(int(year), int(month), int(day), int(hour), int(minute))
            flag = False
            last_b = last_balance()
            if value_op:
                flag = True
            if type_op == "recovery" or type_op == "cut":
                flag = True
            if flag:
                if type_op == "added":
                    if last_b == None:
                        balance = int(value_op)
                    else:
                        balance = int(last_b) + int(value_op)
                if type_op == "balance":
                    balance = unicode(value_op)
                if type_op == "recovery" or type_op == "cut":
                    balance = unicode(last_b)

                try:
                    operation = Operation.create(
                        date_op=datetime_, type_=unicode(type_op), value=unicode(value_op), balance=balance
                    )
                    raise_success(_(u"Confirmation"), _(u"Registered opération"))
                except:
                    raise
                    raise_error(_(u"Confirmation"), _(u"There is no valid operation"))
        self.change_main_context(DashbordViewWidget)
Exemple #3
0
    def __init__(self, parent=0, *args, **kwargs):
        super(DashbordViewWidget, self).__init__(parent=parent,
                                                 *args,
                                                 **kwargs)

        vbox = QtGui.QVBoxLayout()
        hbox = QtGui.QHBoxLayout()
        box_left = QtGui.QHBoxLayout()
        box_rigth = QtGui.QHBoxLayout()
        hbox_alert = QtGui.QVBoxLayout()

        box = QtGui.QListWidget()
        consuption = max_consumption()
        duration_cut = duration()
        avg_conso = average_consumption()
        num_days = estimated_duration()

        #All alerts
        if consuption:
            box.addItem(_(u"The increased consumption is %(conso)s"
                          u" cfa (%(date)s).")\
                          % {'conso': formatted_number(consuption[0]),
                          'date': consuption[1].strftime(u'%x')})
        if duration_cut:
            box.addItem(_(u"The biggest break is %(duration)s (%(date)s).")\
                                % {'duration': duration_cut[0],
                                   'date': duration_cut[1].strftime(u"%x")})
        if avg_conso:
            box.addItem(
                _(u"The average consumption is %(avg)s FCFA.") %
                {'avg': formatted_number(avg_conso)})
        if num_days:
            box.addItem(
                _(u"The end balance is estimated at %(num)s days.") %
                {'num': num_days})

        tablebox_balance = QtGui.QVBoxLayout()
        tablebox_consumption = QtGui.QVBoxLayout()

        # On recupere la derniere balance
        msg = _("Balance:  {} FCFA")
        balance = last_balance()
        balance = msg.format(0 if not balance else formatted_number(balance))

        self.title = PowerPageTitle(balance)
        self.title_alert = PowerPageTitle(_(u"Statistics"))
        self.title_box_balance = PowerBoxTitle(_(u"Table balances"))
        self.title_box_consumption = PowerBoxTitle(_(u"Table consumptions"))

        self.table_balance = BalanceTableWidget(parent=self)
        self.table_consumption = ConsumptionTableWidget(parent=self)

        # GRAPH
        jinja = Environment(loader=PackageLoader('power_m', 'templates'))
        template = jinja.get_template('chart.html')
        graph1 = template.render(base_url=BASE_URL,
                                 type="balance",
                                 data=balance_graph()[1],
                                 date=balance_graph()[0])
        graph2 = template.render(base_url=BASE_URL,
                                 type="consuption",
                                 data=consumption_graph()[1],
                                 date=consumption_graph()[0])

        label_b = QWebView()
        label_b.setHtml(graph1)
        box_left.addWidget(label_b)
        label_cons = QWebView()
        label_cons.setHtml(graph2)
        box_rigth.addWidget(label_cons)

        hbox_alert.addWidget(self.title_alert)
        hbox_alert.addWidget(box)

        #Combobox widget
        list_type = [_(u"Week"), _(u"Month")]
        self.box_type = QtGui.QComboBox()
        for index in list_type:
            self.box_type.addItem((u"%(type)s") % {"type": index})

        box_combo = QtGui.QHBoxLayout()
        box_combo.addWidget(self.box_type)
        box_combo.addSpacing(930)

        vbox.addWidget(self.title)
        vbox.addLayout(box_combo)
        tablebox_balance.addWidget(self.title_box_balance)
        tablebox_balance.addWidget(self.table_balance)
        tablebox_consumption.addWidget(self.title_box_consumption)
        tablebox_consumption.addWidget(self.table_consumption)
        tab_widget1 = tabbox(box_left, tablebox_balance)
        tab_widget2 = tabbox(box_rigth, tablebox_consumption)

        hbox.addWidget(tab_widget1)
        hbox.addWidget(tab_widget2)
        vbox.addLayout(hbox)
        vbox.addLayout(hbox_alert)

        self.setLayout(vbox)
Exemple #4
0
    def __init__(self, parent=0, *args, **kwargs):
        super(DashbordViewWidget, self).__init__(parent=parent, *args, **kwargs)

        vbox = QtGui.QVBoxLayout()
        hbox = QtGui.QHBoxLayout()
        box_left = QtGui.QHBoxLayout()
        box_rigth = QtGui.QHBoxLayout()
        hbox_alert = QtGui.QVBoxLayout()

        box = QtGui.QListWidget()
        consuption = max_consumption()
        duration_cut = duration()
        avg_conso = average_consumption()
        num_days = estimated_duration()

        #All alerts
        if consuption:
            box.addItem(_(u"The increased consumption is %(conso)s"
                          u" cfa (%(date)s).")\
                          % {'conso': formatted_number(consuption[0]),
                          'date': consuption[1].strftime(u'%x')})
        if duration_cut:
            box.addItem(_(u"The biggest break is %(duration)s (%(date)s).")\
                                % {'duration': duration_cut[0],
                                   'date': duration_cut[1].strftime(u"%x")})
        if avg_conso:
            box.addItem(_(u"The average consumption is %(avg)s FCFA.")
                                % {'avg': formatted_number(avg_conso)})
        if num_days:
            box.addItem(_(u"The end balance is estimated at %(num)s days.")
                                % {'num': num_days})

        tablebox_balance = QtGui.QVBoxLayout()
        tablebox_consumption = QtGui.QVBoxLayout()

        # On recupere la derniere balance
        msg = _("Balance:  {} FCFA")
        balance = last_balance()
        balance = msg.format(0 if not balance else formatted_number(balance))

        self.title = PowerPageTitle(balance)
        self.title_alert = PowerPageTitle(_(u"Statistics"))
        self.title_box_balance = PowerBoxTitle(_(u"Table balances"))
        self.title_box_consumption = PowerBoxTitle(_(u"Table consumptions"))

        self.table_balance = BalanceTableWidget(parent=self)
        self.table_consumption = ConsumptionTableWidget(parent=self)

        # GRAPH
        jinja = Environment(loader=PackageLoader('power_m', 'templates'))
        template = jinja.get_template('chart.html')
        graph1 = template.render(base_url=BASE_URL, type="balance", data=balance_graph()[1],
                                 date=balance_graph()[0])
        graph2 = template.render(base_url=BASE_URL,  type="consuption", data=consumption_graph()[1],
                                 date=consumption_graph()[0])

        label_b = QWebView()
        label_b.setHtml(graph1)
        box_left.addWidget(label_b)
        label_cons = QWebView()
        label_cons.setHtml(graph2)
        box_rigth.addWidget(label_cons)

        hbox_alert.addWidget(self.title_alert)
        hbox_alert.addWidget(box)

        #Combobox widget
        list_type = [_(u"Week"), _(u"Month")]
        self.box_type = QtGui.QComboBox()
        for index in list_type:
            self.box_type.addItem((u"%(type)s") % {"type": index})

        box_combo = QtGui.QHBoxLayout()
        box_combo.addWidget(self.box_type)
        box_combo.addSpacing(930)

        vbox.addWidget(self.title)
        vbox.addLayout(box_combo)
        tablebox_balance.addWidget(self.title_box_balance)
        tablebox_balance.addWidget(self.table_balance)
        tablebox_consumption.addWidget(self.title_box_consumption)
        tablebox_consumption.addWidget(self.table_consumption)
        tab_widget1 = tabbox(box_left, tablebox_balance)
        tab_widget2 = tabbox(box_rigth, tablebox_consumption)

        hbox.addWidget(tab_widget1)
        hbox.addWidget(tab_widget2)
        vbox.addLayout(hbox)
        vbox.addLayout(hbox_alert)

        self.setLayout(vbox)