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)
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)
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)
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
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)
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)