def updateTotal(self, ctr_list):
        qte_totale = 0.0
        tot_a_livrer = 0.0
        tot_a_payer = 0.0
        self.ui.t_ctr_total.clear()

        for ctr in ctr_list:
            qte_totale += float(format_num(ctr.qte_total))
            tot_a_livrer += float(format_num(ctr.reste_livraison))
            tot_a_payer += float(format_num(ctr.reste_paiement))

        newLine = QtGui.QTreeWidgetItem(self.ui.t_ctr_total, [""] * 3)
        self.ui.t_ctr_total.setItemWidget(
            newLine, 0, TreeWidgetItemLabel(self, str(qte_totale)))
        self.ui.t_ctr_total.setItemWidget(
            newLine, 1, TreeWidgetItemLabel(self, str(tot_a_livrer)))
        self.ui.t_ctr_total.setItemWidget(
            newLine, 2, TreeWidgetItemLabel(self, str(tot_a_payer)))

        height = self.ui.t_ctr_total.visualItemRect(newLine).height()
        width = self.ui.t_ctr_total.parent().sizeHint().width()
        self.ui.t_ctr_total.setFixedHeight(height * 2 + 1)

        self.ui.t_ctr_total.header().resizeSection(0, width / 3)
        self.ui.t_ctr_total.header().resizeSection(1, width / 3)
        self.ui.t_ctr_total.header().resizeSection(2, width / 3)
Beispiel #2
0
 def dateSelected(self, index):
     sender = self.sender()
     if index < 0:
         return
     m, y = sender.itemText(index).split('/')[-2], sender.itemText(
         index).split('/')[-1]
     self.mainWidget.ui.d_date_reelle.setDate(
         QtCore.QDate.fromString('01/' + m + '/' + y, "dd/MM/yyyy"))
     total = format_num(self.ctr.periode_livraison[y][m]["total"])
     done = format_num(self.ctr.periode_livraison[y][m]["done"])
     maximum = format_num(float(total) - float(done))
     self.mainWidget.ui.l_qte.setPlaceholderText('max: ' + maximum)
    def updateGrid(self, dlv_list):
        ordered_years = sorted(dlv_list.keys())
        for i in range(0, len(ordered_years), 1):
            y = ordered_years[i]
            for j in range(0, len(self.month_values)):
                m = self.month_values[j]
                self.tableWidget.setItem(i, j, QtGui.QTableWidgetItem())

                total = format_num(dlv_list[y][m]["total"])
                delivered = format_num(dlv_list[y][m]["done"])
                if float(total) == 0:
                    q = '$' + delivered + '$'
                    s = str(delivered)
                    p_size = 12
                else:
                    q = '$\\frac{' + delivered + '}{' + total + '}$'
                    s = str(delivered) + "/" + str(total)
                    p_size = 14
#                pixmap = mathTex_to_QPixmap(q, p_size)
#                pixmap= self.QPixTex.mathTex_to_QPixmap(q, p_size)
#                pixmap = MathTextLabel(q, p_size)

                widget = QtGui.QWidget()
                #                label = QtGui.QLabel(s)
                #                widget = MathTextLabel(q, p_size)
                layout = QtGui.QHBoxLayout()
                label = QtGui.QLabel(s)
                label.setFont(QtGui.QFont("Calibri", 12))
                label.setMaximumSize(QtCore.QSize(100, 32))
                label.setScaledContents(True)
                #                label.setPixmap(pixmap)
                layout.addWidget(label)
                layout.setAlignment(QtCore.Qt.AlignCenter)
                layout.setContentsMargins(0, 5, 0, 0)
                widget.setLayout(layout)
                self.tableWidget.setCellWidget(i, j, widget)
                if float(total) > float(delivered):
                    self.tableWidget.item(i, j).setBackground(
                        QtGui.QColor(245, 247, 170))
                elif float(total) == float(delivered):
                    self.tableWidget.item(i, j).setBackground(
                        QtGui.QColor(179, 255, 170))
                elif float(total) < float(delivered):
                    self.tableWidget.item(i, j).setBackground(
                        QtGui.QColor(255, 170, 170))
#        for i in range(0, len(itemlist), 1):
                self.tableWidget.resizeColumnToContents(j)
Beispiel #4
0
    def updateTotal(self, deliv_list):
        qte_totale = 0.0

        self.ui.t_deliv_tot.clear()
        for deliv in deliv_list:
            qte_totale += float(format_num(deliv.quantite))

        qte_a_livrer = qte_totale
        for deliv in deliv_list:
            if deliv.is_confirmed:
                qte_a_livrer -= float(format_num(deliv.quantite))

        newLine = QtGui.QTreeWidgetItem(self.ui.t_deliv_tot, [""] * 2)
        self.ui.t_deliv_tot.setItemWidget(
            newLine, 0, TreeWidgetItemLabel(self, str(qte_totale)))
        self.ui.t_deliv_tot.setItemWidget(
            newLine, 1, TreeWidgetItemLabel(self, str(qte_a_livrer)))

        height = self.ui.t_deliv_tot.visualItemRect(newLine).height()
        width = self.ui.t_deliv_tot.parent().sizeHint().width()
        self.ui.t_deliv_tot.setFixedHeight(height * 2)
        self.ui.t_deliv_tot.header().resizeSection(0, width / 3)
        self.ui.t_deliv_tot.header().resizeSection(1, width / 3)
Beispiel #5
0
 def xml(self, pkey):
     trzba = etree.Element('Trzba',
                           nsmap={None: 'http://fs.mfcr.cz/eet/schema/v3'})
     trzba.append(self.header.xml())
     data = etree.Element('Data',
                          dic_popl=str(self.dic_popl),
                          porad_cis=str(self.porad_cis),
                          id_provoz=str(self.id_provoz),
                          id_pokl=str(self.id_pokl),
                          dat_trzby=str(self.dat_trzby),
                          celk_trzba=utils.format_num(self.celk_trzba),
                          rezim="0")
     if self.dic_poverujici:
         data.set('dic_poverujiciho', self.dic_poverujici)
     trzba.append(data)
     trzba.append(self._get_pkp(pkey))
     return trzba
Beispiel #6
0
    def initWidget(self):
        self.mainWidget.ui.l_marchandise.setText(
            self.oil_market.getMarchandiseFullName(self.ctr.marchandise))
        if self.ctr.is_franco is True:
            self.mainWidget.ui.rb_franco.setChecked(True)
        else:
            self.mainWidget.ui.rb_depart.setChecked(True)

        dlv_dic = self.ctr.periode_livraison
        ordered_years = sorted(dlv_dic.keys())
        for i in range(0, len(ordered_years), 1):
            y = ordered_years[i]
            for j in range(0, 12):
                m = str(j + 1).zfill(2)
                total = format_num(dlv_dic[y][m]["total"])
                if float(total) == 0: continue
                date = m + '/' + str(y)
                self.mainWidget.ui.cb_date.addItem(date)

        if self.mainWidget.ui.cb_date.count() > 0:
            self.mainWidget.ui.cb_date.setCurrentIndex(0)
Beispiel #7
0
    def updateDelivList(self, deliv_list=None):

        curframe = inspect.currentframe()
        calframe = inspect.getouterframes(curframe, 1)
        print "updateDelivList called by ", calframe[1][3]

        self.t_deliver_list.clear()
        if deliv_list is None or isinstance(deliv_list, list) == False:
            deliv_list = self.sortDeliveryList()

        if deliv_list is None:
            return

        font = ImageFont.truetype('times.ttf', 12)
        itemlist = []
        for deliv in deliv_list:
            if deliv is None:
                itemlist = [
                    ' - ', ' - ', ' - ', ' - ', ' - ', ' - ', ' - ', ' - ',
                    ' - ', ' - ', ' - ', ' - ', ' - '
                ]
            else:

                ctr = self.cDB.getContractByNum(deliv.n_ctr)
                if ctr.is_franco: depart = "Franco"
                else: depart = "Départ"
                state = "En attente"
                if deliv.is_confirmed: state = "Confirmé"
                if deliv.is_paid: state = "Payé"
                if self.oil_market.marchandiseExist(ctr.marchandise):
                    full_marchandise = self.oil_market.getMarchandiseFullName(
                        ctr.marchandise)
                    string = ""
                    current_size = 0
                    for word in full_marchandise.split(' '):
                        current_size += font.getsize(word)[0]
                        if current_size > 80:
                            string += "<br/>"
                            current_size = 0
                        string += word + ' '
                    full_marchandise = string
                else:
                    full_marchandise = ""

                nom_client = ctr.getClientName(shortest=True).upper(
                ) + "<br/>" + "<i>" + ctr.get_uVilleAcheteur() + "</i>"
                nom_fourniss = ctr.getFournissName(shortest=True).upper(
                ) + "<br/>" + "<i>" + ctr.get_uVilleVendeur() + "</i>"

                itemlist = [
                    deliv.date_appel, nom_client, nom_fourniss, depart,
                    deliv.ville, deliv.date_charg_livr,
                    deliv.horaire_charg_livr,
                    format_num(deliv.quantite), full_marchandise, deliv.n_ctr,
                    deliv.ref_fourniss, deliv.ref_client, deliv.ref_chargement,
                    state
                ]

            blankItemlist = list(
                re.sub(r"<[^>]*>", r'', s.replace("<br/>", '\n'))
                for s in itemlist)
            newline = TreeWidgetDelivery(self.t_deliver_list, deliv,
                                         blankItemlist)

            for i in range(0, len(itemlist)):
                item = itemlist[i]
                self.t_deliver_list.setItemWidget(
                    newline, i, TreeWidgetItemLabel(self, item))

        self.t_deliver_list.header().setResizeMode(
            QtGui.QHeaderView.ResizeToContents)
        self.t_deliver_list.header().setResizeMode(
            QtGui.QHeaderView.Interactive)
        self.t_deliver_list.setAutoFillBackground(False)
        for i in range(0, len(itemlist), 1):
            self.t_deliver_list.resizeColumnToContents(i)


#        self.t_deliver_list.header().setResizeMode(self.t_deliver_list.columnCount()-3, QtGui.QHeaderView.Stretch)
        self.updateTotal(deliv_list)
    def updateCtrList(self, ctr_list=None):
        curframe = inspect.currentframe()
        calframe = inspect.getouterframes(curframe, 2)
        print "updateCtrList called by ", calframe[1][3]

        self.t_ctr_list.clear()
        if ctr_list is None or isinstance(ctr_list, list) == False:
            ctr_list = self.sortContractList()

        font = ImageFont.truetype('times.ttf', 12)
        itemlist = []
        for ctr in ctr_list:
            if ctr is None:
                continue
                itemlist = [
                    ' - ', ' - ', ' - ', ' - ', ' - ', ' - ', ' - ', ' - ',
                    ' - ', ' - ', ' - '
                ]
            else:

                if not hasattr(ctr, "descr_livraison"):
                    setattr(ctr, "descr_livraison", "")
                    self.cDB.updateContract(ctr)

                full_marchandise = self.oil_market.getMarchandiseFullName(
                    ctr.marchandise)
                string = ""
                current_size = 0
                for word in full_marchandise.split(' '):
                    current_size += font.getsize(word)[0]
                    if current_size > 80:
                        string += "<br/>"
                        current_size = 0
                    string += word + ' '
                full_marchandise = string
                monnaie = ' ' + getFromConfig(
                    'monnaie', 'monnaies')[ctr.monnaie]['sym'].encode('utf8')

                nom_client = ctr.getClientName(shortest=True).upper(
                ) + "<br/>" + "<i>" + ctr.get_uVilleAcheteur() + "</i>"
                nom_fourniss = ctr.getFournissName(shortest=True).upper(
                ) + "<br/>" + "<i>" + ctr.get_uVilleVendeur() + "</i>"

                if ctr.is_franco:
                    modalite = "Franco <br/>"
                else:
                    modalite = "Départ <br/>"
                modalite += ctr.getVilleCible()

                itemlist = []
                itemlist.append(ctr.date_contrat)
                itemlist.append(ctr.n_contrat)
                itemlist.append(ctr.n_fourniss)
                itemlist.append(nom_client)
                itemlist.append(nom_fourniss)
                itemlist.append(modalite)
                itemlist.append(full_marchandise)
                itemlist.append(format_num(ctr.prix) + monnaie)
                itemlist.append(format_num(ctr.qte_total))
                itemlist.append("")
                itemlist.append(format_num(ctr.reste_livraison))
                itemlist.append(ctr.n_client)
                if '%' in ctr.courtage:
                    itemlist.append(format_num(ctr.courtage) + ' %')
                else:
                    itemlist.append(format_num(ctr.courtage) + ' €')
                itemlist.append(format_num(ctr.reste_paiement) + monnaie)

            blankItemlist = list(
                re.sub(r"<[^>]*>", r'', s.replace("<br/>", '\n'))
                for s in itemlist)

            newLine = TreeWidgetContract(self.t_ctr_list, ctr, blankItemlist)
            for i in range(0, len(itemlist)):
                item = itemlist[i]
                self.t_ctr_list.setItemWidget(newLine, i,
                                              TreeWidgetItemLabel(self, item))

            self.t_ctr_list.setItemWidget(newLine, 9,
                                          DeliveriesViewer(self, ctr))
#
        self.t_ctr_list.header().setResizeMode(
            QtGui.QHeaderView.ResizeToContents)
        self.t_ctr_list.header().setResizeMode(QtGui.QHeaderView.Interactive)
        for i in range(0, len(itemlist), 1):
            self.t_ctr_list.resizeColumnToContents(i)
        self.t_ctr_list.header().setResizeMode(
            self.t_ctr_list.columnCount() - 3, QtGui.QHeaderView.Stretch)
        #        self.repaint()
        self.updateTotal(ctr_list)