def __init__(self, *args, **kwds): # begin wxGlade: GestionCategories.__init__ kwds["style"] = wx.TAB_TRAVERSAL wx.Panel.__init__(self, *args, **kwds) self.sizer_navigation_staticbox = wx.StaticBox( self, -1, u"Gestion des catégories") self.button_ajout_categorie = wx.Button( self, -1, u"Ajouter une nouvelle catégorie") self.liste_categories = ObjectListView( self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.liste_categories.SetColumns([ ColumnDefn("ID", "right", valueGetter="get_id", fixedWidth=70), ColumnDefn("Nom", "left", -1, "nom"), ColumnDefn("Nombre de produits", "left", 100, "nombre_produits", stringConverter="%s produit(s)", isSpaceFilling=True) ]) self.__set_properties() self.__do_layout() self.__remplissage_liste() self.Bind(wx.EVT_BUTTON, self.OnAjoutCategorie, self.button_ajout_categorie) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnModifCategorie, self.liste_categories)
def __init__(self, *args, **kwds): # begin wxGlade: GestionTvas.__init__ kwds["style"] = wx.TAB_TRAVERSAL wx.Panel.__init__(self, *args, **kwds) self.sizer_navigation_staticbox = wx.StaticBox(self, -1, u"Gestion des taux de TVA") self.button_ajout_tva = wx.Button(self, -1, u"Ajouter un nouveau taux de TVA") self.liste_tvas = ObjectListView(self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.liste_tvas.SetColumns([ ColumnDefn("Taux", "center", -1, "taux", stringConverter="%s %%", fixedWidth=70), ColumnDefn("Nombre de produits avec ce taux", "left", 100, "nombre_produits", stringConverter="%s produit(s)", isSpaceFilling=True) ]) self.__set_properties() self.__do_layout() self.__remplissage_liste() self.Bind(wx.EVT_BUTTON, self.OnAjoutTVA, self.button_ajout_tva) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnModifTVA, self.liste_tvas)
def __init__(self, fournisseur): wx.Dialog.__init__(self, None, -1, title=u"Ajouter un référent", pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE) self.fournisseur = fournisseur """ Attention, ici le référent est un objet Adherent""" self.liste_referents = ObjectListView( self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.liste_referents.SetColumns([ ColumnDefn("Nom", "left", -1, "nom", minimumWidth=100), ColumnDefn(u"Prénom", "left", -1, "prenom", minimumWidth=100, isSpaceFilling=True) ]) self.liste_referents.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnClickReferent) self.__set_properties() self.__remplissage_liste() self.__do_layout()
def __init__(self, parent): wx.Panel.__init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, style=wx.TAB_TRAVERSAL) description = u"Les exercices correspondent aux exercices comptables de l'association.\nIls permettent d'avoir un aperçu, sur une période définie, des mouvements de trésorerie." self.sizer_details_exercice_staticbox = wx.StaticBox( self, -1, u"Détails de l'exercice sélectionné") self.sizer_navigation_staticbox = wx.StaticBox( self, -1, "Gestion des exercices") self.label_description = wx.StaticText(self, -1, description) self.static_line_1 = wx.StaticLine(self, -1) self.bouton_ajout_exercice = wx.Button(self, -1, "Ajouter un nouvel exercice") self.liste_exercices = ObjectListView( self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.details_exercice = DetailsExercice(self, -1) self.liste_exercices.SetColumns([ ColumnDefn("Nom", "left", -1, "nom", minimumWidth=100), ColumnDefn(u"Date début", "left", -1, "date_debut", stringConverter="%d-%m-%Y", minimumWidth=100), ColumnDefn(u"Date fin", "left", 100, "date_fin", stringConverter="%d-%m-%Y", isSpaceFilling=True) ]) def rowFormatterLE(listItem, exercice): if exercice.date_debut < date.today( ) and exercice.date_fin > date.today(): listItem.SetTextColour(wx.BLACK) else: listItem.SetTextColour("#616161") self.liste_exercices.rowFormatter = rowFormatterLE self.liste_exercices.SortBy(1, False) self.liste_exercices.SetEmptyListMsg( u"Il n'y a aucun exercice pour l'instant") self.__set_properties() self.__remplissage_liste() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.OnAjoutExercice, self.bouton_ajout_exercice) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnEditionExercice, self.liste_exercices) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnExerciceSelectionne, self.liste_exercices)
def __init__(self, parent, adherent): wx.Panel.__init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, style=wx.TAB_TRAVERSAL) self.adherent = adherent self.label_description = wx.StaticText( self, -1, u"Liste des cotisations réglées par l'adhérent.") self.staticline = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) self.bouton_ajout_adhesion = wx.BitmapButton( self, -1, wx.Bitmap("../icons/16x16/ajouter.ico")) self.bouton_supprime_adhesion = wx.BitmapButton( self, -1, wx.Bitmap("../icons/16x16/enlever.ico")) self.liste_adhesions = ObjectListView( self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.liste_adhesions.SetColumns([ ColumnDefn(u"Adhésion", "left", -1, "adhesion_type.nom", minimumWidth=100), ColumnDefn("Date", "left", -1, "date", stringConverter="%d-%m-%Y", minimumWidth=100), ColumnDefn("Montant", "left", 100, "montant", stringConverter=u"%.2f ¤", isSpaceFilling=True) ]) self.__set_properties() self.__do_layout() self.__remplissage_liste() self.Bind(wx.EVT_BUTTON, self.OnAjoutAdhesion, self.bouton_ajout_adhesion) self.Bind(wx.EVT_BUTTON, self.OnSupprimeAdhesion, self.bouton_supprime_adhesion) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnEditionAdhesion, self.liste_adhesions) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSelectionAdhesion, self.liste_adhesions) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnSelectionAdhesion, self.liste_adhesions)
def __set_lignes_commandes_colonnes(self): if self.commande: if self.commande.statut >= 2: def rowFormatter(listItem, lc): if lc.is_verifiee: if lc.quantite_livree != lc.quantite_commandee: listItem.SetBackgroundColour("#FFD3D3") else: listItem.SetBackgroundColour("#E3FFCB") self.liste_lignes_commande.rowFormatter = rowFormatter self.liste_lignes_commande.SetColumns([ ColumnDefn("Ref Fournisseur", "left", -1, "produit.ref_fournisseur", minimumWidth=120), ColumnDefn("Nom", "left", -1, "produit.nom", minimumWidth=200), ColumnDefn(u"Quantité commandée", "left", -1, "quantite_commandee_conditionnement", minimumWidth=200), ColumnDefn(u"Quantité livrée", "left", -1, "quantite_livree_conditionnement", minimumWidth=200, isSpaceFilling=True), ]) self.liste_lignes_commande.AutoSizeColumns() else: self.liste_lignes_commande.SetColumns([ ColumnDefn("Ref Fournisseur", "left", -1, "produit.ref_fournisseur", minimumWidth=120), ColumnDefn("Nom", "left", -1, "produit.nom", minimumWidth=200), ColumnDefn(u"Quantité commandée", "left", -1, "quantite_commandee_conditionnement", minimumWidth=150), ColumnDefn("Total TTC", "right", -1, "prix_total_commande_ttc", stringConverter=u"%s ¤", isSpaceFilling=True, minimumWidth=100) ]) self.liste_lignes_commande.AutoSizeColumns()
def __init__(self, *args, **kwds): # begin wxGlade: GestionProduits.__init__ kwds["style"] = wx.TAB_TRAVERSAL wx.Panel.__init__(self, *args, **kwds) self.sizer_navigation_staticbox = wx.StaticBox(self, -1, "Gestion des produits") self.label_Fournisseur = wx.StaticText(self, -1, "Fournisseur :") self.combo_box_Fournisseur = wx.ComboBox(self, -1, choices=[], style=wx.CB_DROPDOWN|wx.CB_READONLY) self.label_RechercheNom = wx.StaticText(self, -1, "Recherche sur le nom :") self.text_ctrl_RechercheNom = wx.TextCtrl(self, -1, "") self.button_AjoutProduit = wx.Button(self, -1, "Ajouter un nouveau produit") self.button_ImpressionEtiquettes = wx.Button(self, -1, u"Imprimer les étiquettes des produits cochés") self.liste_produits = ObjectListView(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL) self.liste_produits.SetColumns([ ColumnDefn("Ref GASE", "left", -1, "ref_GASE", checkStateGetter="a_etiquetter", fixedWidth=90), ColumnDefn("Nom", "left", -1, "nom"), ColumnDefn("Fournisseur", "left", -1, "fournisseur.nom", minimumWidth=100), ColumnDefn("Prix de vente", "left", -1, "prix_vente_format", minimumWidth=120), ColumnDefn("Stock", "left", 100, "stock_format", stringConverter="%s", isSpaceFilling=True, minimumWidth=100) ]) def RFListeProduits(listItem, produit): if produit.retrait: listItem.SetTextColour("#AAAAAA") else: listItem.SetTextColour("#000000") self.liste_produits.rowFormatter = RFListeProduits self.__set_properties() self.__do_layout() self.__remplissage_liste() self.liste_produits.SetSortColumn(0, True) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnEditionProduit, self.liste_produits) self.Bind(wx.EVT_COMBOBOX, self.OnFilter, self.combo_box_Fournisseur) self.Bind(wx.EVT_TEXT, self.OnFilter, self.text_ctrl_RechercheNom) self.Bind(wx.EVT_BUTTON, self.OnAjoutProduit, self.button_AjoutProduit) self.Bind(wx.EVT_BUTTON, self.OnImpressionEtiquettes, self.button_ImpressionEtiquettes)
def __init__(self, parent, fournisseur): wx.Panel.__init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, style=wx.TAB_TRAVERSAL) self.fournisseur = fournisseur """ Attention, ici le référent est un objet Adherent""" self.label_description = wx.StaticText( self, -1, u"Liste des référents du fournisseur.") self.staticline = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) self.bouton_ajout_referent = wx.BitmapButton( self, -1, wx.Bitmap("../icons/16x16/ajouter.ico")) self.bouton_supprime_referent = wx.BitmapButton( self, -1, wx.Bitmap("../icons/16x16/enlever.ico")) self.liste_referents = ObjectListView( self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.liste_referents.SetColumns([ ColumnDefn("Nom", "left", -1, "nom", minimumWidth=100), ColumnDefn(u"Prénom", "left", -1, "prenom", minimumWidth=100, isSpaceFilling=True) ]) self.__set_properties() self.__do_layout() self.__remplissage_liste() self.Bind(wx.EVT_BUTTON, self.OnAjoutReferent, self.bouton_ajout_referent) self.Bind(wx.EVT_BUTTON, self.OnSupprimeReferent, self.bouton_supprime_referent) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSelectionReferent, self.liste_referents) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnSelectionReferent, self.liste_referents)
def __init__(self, parent): wx.Panel.__init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, style=wx.TAB_TRAVERSAL) self.bouton_ajout_adhesion_type = wx.BitmapButton( self, -1, wx.Bitmap("../icons/16x16/ajouter.ico")) self.bouton_supprime_adhesion_type = wx.BitmapButton( self, -1, wx.Bitmap("../icons/16x16/enlever.ico")) self.liste_adhesion_types = ObjectListView( self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.liste_adhesion_types.SetColumns([ ColumnDefn("Nom", "left", -1, "nom", minimumWidth=100), ColumnDefn(u"Prix", "left", 50, "prix", stringConverter=u"%s ¤", isSpaceFilling=True) ]) self.liste_adhesion_types.SetEmptyListMsg( u"Il n'y a aucun type d'adhésion pour l'instant") self.__set_properties() self.__remplissage_liste() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.OnAjoutTypeAdhesion, self.bouton_ajout_adhesion_type) self.Bind(wx.EVT_BUTTON, self.OnSupprimeTypeAdhesion, self.bouton_supprime_adhesion_type) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnEditionTypeAdhesion, self.liste_adhesion_types) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSelectionTypeAdhesion, self.liste_adhesion_types) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnDeselectionTypeAdhesion, self.liste_adhesion_types)
def __init__(self, inventaire): wx.Dialog.__init__(self, None, -1, title=u"Ajouter un produit", pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE) self.inventaire = inventaire self.search_nom = wx.SearchCtrl(self, -1, "") self.liste_produits = ObjectListView(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL) self.liste_produits.SetColumns([ ColumnDefn("Ref GASE", "left", -1, "ref_GASE", fixedWidth=90), ColumnDefn("Nom", "left", -1, "nom"), ColumnDefn("Fournisseur", "left", -1, "fournisseur.nom", minimumWidth=100) ]) self.search_nom.Bind(wx.EVT_TEXT, self.OnFilter) self.liste_produits.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnClickProduit) self.__set_properties() self.__remplissage_liste() self.__do_layout()
def __init__(self, *args, **kwds): # begin wxGlade: GestionFournisseurs.__init__ kwds["style"] = wx.TAB_TRAVERSAL wx.Panel.__init__(self, *args, **kwds) self.sizer_navigation_staticbox = wx.StaticBox( self, -1, "Gestion des fournisseurs") self.button_ajout_fournisseur = wx.Button( self, -1, "Ajouter un nouveau fournisseur") self.button_tableau_fournisseur = wx.Button( self, -1, u"Générer la liste des fournisseurs") self.liste_fournisseurs = ObjectListView( self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.liste_fournisseurs.SetColumns([ ColumnDefn("Nom", "left", -1, "nom", imageGetter=self.IconeCouleurDef), ColumnDefn("Code postal", "center", -1, "code_postal", fixedWidth=90), ColumnDefn("Ville", "left", -1, "ville"), ColumnDefn(u"Tel fixe", "left", -1, "telephone_fixe", minimumWidth=100), ColumnDefn(u"Tel portable", "left", -1, "telephone_portable", minimumWidth=100), ColumnDefn(u"Nb référents", "right", 100, "referents.count", isSpaceFilling=True, minimumWidth=100) ]) self.__set_properties() self.__do_layout() self.__remplissage_liste() self.Bind(wx.EVT_BUTTON, self.OnAjoutFournisseur, self.button_ajout_fournisseur) self.Bind(wx.EVT_BUTTON, self.OnGenereTableauFournisseur, self.button_tableau_fournisseur) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnModifFournisseur, self.liste_fournisseurs)
def __init__(self, parent, adherent): wx.Panel.__init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, style=wx.TAB_TRAVERSAL) self.adherent = adherent self.label_description = wx.StaticText( self, -1, u"Liste des fournisseurs dont l'adhérent est référent.") self.staticline = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) self.bouton_ajout_fournisseur = wx.BitmapButton( self, -1, wx.Bitmap("../icons/16x16/ajouter.ico")) self.bouton_supprime_fournisseur = wx.BitmapButton( self, -1, wx.Bitmap("../icons/16x16/enlever.ico")) self.liste_fournisseurs = ObjectListView( self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.liste_fournisseurs.SetColumns([ ColumnDefn(u"Fournisseur", "left", -1, "nom", minimumWidth=100, isSpaceFilling=True) ]) self.__set_properties() self.__do_layout() self.__remplissage_liste() self.Bind(wx.EVT_BUTTON, self.OnAjoutFournisseur, self.bouton_ajout_fournisseur) self.Bind(wx.EVT_BUTTON, self.OnSupprimeFournisseur, self.bouton_supprime_fournisseur) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSelectionFournisseur, self.liste_fournisseurs) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnSelectionFournisseur, self.liste_fournisseurs)
def __init__(self, adherent): wx.Dialog.__init__(self, None, -1, title=u"Ajouter un fournisseur", pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE) self.adherent = adherent self.liste_fournisseurs = ObjectListView( self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.liste_fournisseurs.SetColumns( [ColumnDefn("Fournisseur", "left", -1, "nom", minimumWidth=100)]) self.liste_fournisseurs.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnClickFournisseur) self.__set_properties() self.__remplissage_liste() self.__do_layout()
def __init__(self, parent, inventaire=None): wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL) if inventaire: self.inventaire = inventaire else: inventaire = Inventaire.create() inventaire.initialisation() self.inventaire = inventaire self.sizer_inventaire_staticbox = wx.StaticBox(self, -1, "Liste des produits") self.label_titre_inventaire = wx.StaticText(self, -1, "Inventaire du ") self.label_fournisseur = wx.StaticText(self, -1, "Fournisseur :") self.combo_box_fournisseur = wx.ComboBox(self, -1, choices=[], style=wx.CB_DROPDOWN|wx.CB_READONLY) self.search_nom = wx.SearchCtrl(self, -1, "") self.label_commentaire = wx.StaticText(self, -1, "Commentaires :") self.text_commentaire = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE) #self.bouton_ajout_produit = buttons.GenBitmapTextButton(self, -1, wx.Bitmap("../icons/16x16/ajouter.ico"), u" Ajouter un produit non listé", style=wx.BORDER_NONE) self.bouton_ajout_produit = wx.Button(self, -1, u"Ajouter un produit non listé") self.liste_lignes_inventaire = ObjectListView(self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) def update_stock_reel(li, valeur): if valeur<0: valeur = 0 if li.produit.vrac: li.stock_reel = valeur * 1000 else: li.stock_reel = valeur li.save() if self.inventaire.pret_a_valider(): self.bouton_valider.Enable() def editor_stock_reel(olv, rowIndex, subItemIndex): if olv.GetObjectAt(rowIndex).produit.vrac: return StockFloatEditor(olv, subItemIndex, validator=CellEditor.NumericValidator("0123456789.,")) else: return StockIntEditor(olv, subItemIndex, validator=CellEditor.NumericValidator("0123456789")) self.liste_lignes_inventaire.SetColumns([ ColumnDefn("Ref GASE", "left", -1, "produit.ref_GASE", fixedWidth=90), ColumnDefn("Nom", "left", -1, "produit.nom", minimumWidth=100), ColumnDefn("Fournisseur", "left", -1, "produit.fournisseur.nom", minimumWidth=100), ColumnDefn(u"Stock théorique", "left", -1, "stock_theorique_format", stringConverter="%s", minimumWidth=80), ColumnDefn(u"Stock réel", "left", -1, "stock_reel_format", isEditable=True, cellEditorCreator = editor_stock_reel, valueSetter=update_stock_reel, minimumWidth=80), ColumnDefn(u"Différence", "u_", -1, "stock_difference", minimumWidth=80) ]) def RFLignesInventaire(listItem, ligne_inventaire): if ligne_inventaire.stock_reel: listItem.SetBackgroundColour("#E3FFCB") else: listItem.SetBackgroundColour("#FFD3D3") #self.liste_lignes_inventaire.rowFormatter = RFLignesInventaire self.bouton_enregistrer = wx.Button(self, wx.ID_SAVE, "Enregistrer") self.bouton_valider = wx.Button(self, wx.ID_OK, u"Valider l'inventaire") self.__set_properties() self.__set_valeurs() self.__remplissage_liste() self.__do_layout() self.combo_box_fournisseur.Bind(wx.EVT_COMBOBOX, self.OnFilter) self.search_nom.Bind(wx.EVT_TEXT, self.OnFilter) self.bouton_ajout_produit.Bind(wx.EVT_BUTTON, self.OnAjoutProduit) self.liste_lignes_inventaire.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnModifStock) self.bouton_enregistrer.Bind(wx.EVT_BUTTON, self.OnEnregistrer) self.bouton_valider.Bind(wx.EVT_BUTTON, self.OnValider) self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy)
def __init__(self, parent, achat=None, adherent=None): wx.Dialog.__init__(self, parent, style=wx.DEFAULT_DIALOG_STYLE) if achat == None: if adherent == None: #TODO : à modifier quand le système d'identification sera en place adherent = Adherent.select().where(Adherent.id == 1).get() achat = Achat.create(adherent=adherent) self.achat = achat self.sizer_infos_staticbox = wx.StaticBox(self, -1, "Informations") self.label_credit_restant = wx.StaticText(self, -1, u"Crédit restant") self.label_cotisation = wx.StaticText(self, -1, u"Cotisation du mois") self.label_cotisation_payee = wx.StaticText(self, -1, u"- Payée le xx-xx-xx") self.label_total_achats = wx.StaticText(self, -1, "Total des achats") self.label_solde = wx.StaticText(self, -1, u"Solde après achat") self.label_credit_restant_valeur = wx.StaticText(self, -1, u"0.00 ¤") self.label_cotisation_valeur = wx.StaticText(self, -1, u"0.00 ¤") self.label_total_achats_valeur = wx.StaticText(self, -1, u"0.00 ¤", style=wx.ALIGN_RIGHT) self.label_cout_supplementaire = wx.StaticText( self, -1, u"Coût supplémentaire") self.text_cout_supplementaire = wx.TextCtrl( self, -1, validator=GenericTextValidator(VALIDATE_FLOAT, obligatoire=False)) self.text_cout_supplementaire_commentaire = TextCtrlDescriptive( self, -1, style=wx.TE_MULTILINE) self.label_solde_valeur = wx.StaticText(self, -1, u"0.00 ¤") self.sizer_liste_produits_staticbox = wx.StaticBox( self, -1, "Liste des produits") self.label_titre_achat = wx.StaticText(self, -1, "Achat pour ") self.search_nom = wx.SearchCtrl(self, -1, "") self.liste_produits = ObjectListView(self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER) self.liste_produits.SetColumns([ ColumnDefn("Ref GASE", "left", -1, "ref_GASE", minimumWidth=70), ColumnDefn("Nom", "left", -1, "nom", minimumWidth=100), ColumnDefn("Prix", "right", -1, "prix_vente_format", minimumWidth=100, isSpaceFilling=True) ]) self.liste_produits.SetEmptyListMsg("Aucun produits") self.liste_produits.AutoSizeColumns() self.sizer_achat_staticbox = wx.StaticBox(self, -1, "Achat") self.liste_lignes_achat = ObjectListView(self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER) self.liste_lignes_achat.SetColumns([ ColumnDefn("Ref GASE", "left", -1, "produit.ref_GASE", minimumWidth=70), ColumnDefn("Nom", "left", -1, "produit.nom", minimumWidth=100), ColumnDefn("Prix", "left", -1, "produit.prix_vente_format", minimumWidth=100), ColumnDefn(u"Quantité", "left", -1, "quantite_format", minimumWidth=70), ColumnDefn("Total TTC", "right", -1, "prix_total", stringConverter=u"%.2f ¤", minimumWidth=70, isSpaceFilling=True) ]) self.liste_lignes_achat.AutoSizeColumns() self.liste_lignes_achat.SetEmptyListMsg(u"Produits achetés") self.bouton_sauvegarder = wx.Button(self, wx.ID_SAVE) self.bouton_annuler = wx.Button(self, wx.ID_CANCEL) self.__set_properties() self.__set_tooltips() self.__set_values() self.__do_layout() self.bouton_sauvegarder.Bind(wx.EVT_BUTTON, self.OnSauvegarder) self.bouton_annuler.Bind(wx.EVT_BUTTON, self.OnClose) self.text_cout_supplementaire.Bind(wx.EVT_TEXT, self.OnChangeCoutSupp) self.search_nom.Bind(wx.EVT_TEXT, self.OnFilter) self.liste_produits.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnAjoutProduit) self.liste_lignes_achat.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnModifProduit) self.Bind(wx.EVT_CLOSE, self.OnClose)
def __init__(self, parent): wx.Panel.__init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, style=wx.TAB_TRAVERSAL) self.sizer_communication_staticbox = wx.StaticBox(self, -1, "Communication") self.sizer_autre_staticbox = wx.StaticBox(self, -1, "Autre") self.sizer_critere_utilisateur_staticbox = wx.StaticBox(self, -1, "Utilisateurs") self.checkbox_gase = wx.CheckBox(self, -1, "GASE") self.checkbox_paniers = wx.CheckBox(self, -1, "Paniers") self.radio_box_etat_adhesion = wx.RadioBox(self, -1, u"Etat de l'adhésion", choices=["Tous", u"Adhésion à jour", u"Adhésion à renouveler"], majorDimension=1, style=wx.RA_SPECIFY_COLS) self.checkbox_sans_email = wx.CheckBox(self, -1, "Sans email") self.checkbox_sans_telephone = wx.CheckBox(self, -1, u"Sans téléphone") self.checkbox_ancien_adherents = wx.CheckBox(self, -1, u"Anciens adhérents") self.bouton_ajout_adhesion = wx.BitmapButton(self, -1, wx.Bitmap("../icons/32x32/nouvelle_adhesion.ico", wx.BITMAP_TYPE_ANY)) self.bouton_ajout_credit = wx.BitmapButton(self, -1, wx.Bitmap("../icons/32x32/ajout_credit.png", wx.BITMAP_TYPE_ANY)) self.static_line_1 = wx.StaticLine(self, -1, style=wx.LI_VERTICAL) self.label_recherche = wx.StaticText(self, -1, "Recherche sur le nom") self.text_ctrl_recherche = wx.TextCtrl(self, -1, "") self.static_line_2 = wx.StaticLine(self, -1, style=wx.LI_VERTICAL) self.bouton_ajout_adherent = wx.BitmapButton(self, -1, wx.Bitmap("../icons/32x32/nouvel_adherent.ico", wx.BITMAP_TYPE_ANY)) self.liste_adherents = ObjectListView(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL) def AJour(value): if value: return "A jour" else: return u"Pas à jour" self.liste_adherents.SetColumns([ ColumnDefn("Nom", "left", -1, "nom", minimumWidth=100, useInitialLetterForGroupKey=True), ColumnDefn(u"Prénom", "left", -1, "prenom", minimumWidth=100), ColumnDefn("Ville", "left", -1, "ville", minimumWidth=100), ColumnDefn(u"Téléphone", "left", -1, "telephone", minimumWidth=100), ColumnDefn(u"Cotisation", "left", -1, "cotisation_type.nom", minimumWidth=100), ColumnDefn(u"Adhésion", "left", 100, "is_adhesion_a_jour", stringConverter=AJour, isSpaceFilling=True, minimumWidth=100) ]) def RFListeAdherents(listItem, adherent): if adherent.is_adhesion_a_jour: listItem.SetBackgroundColour("#E3FFCB") else: listItem.SetBackgroundColour("#FFD3D3") self.liste_adherents.rowFormatter = RFListeAdherents self.__set_properties() self.__do_layout() self.__remplissage_liste() self.liste_adherents.SetSortColumn(0, True) self.filtres = {} self.Bind(wx.EVT_BUTTON, self.OnAjoutAdhesion, self.bouton_ajout_adhesion) self.Bind(wx.EVT_BUTTON, self.OnAjoutCredit, self.bouton_ajout_credit) self.Bind(wx.EVT_BUTTON, self.OnAjoutAdherent, self.bouton_ajout_adherent) self.Bind(wx.EVT_RADIOBOX, self.OnFilterAdhesion, self.radio_box_etat_adhesion) self.Bind(wx.EVT_CHECKBOX, self.OnFilterSansEmail, self.checkbox_sans_email) self.Bind(wx.EVT_CHECKBOX, self.OnFilterSansTelephone, self.checkbox_sans_telephone) self.Bind(wx.EVT_CHECKBOX, self.OnFilterUtilisateursPaniers, self.checkbox_paniers) self.Bind(wx.EVT_CHECKBOX, self.OnFilterAnciensAdherents, self.checkbox_ancien_adherents) self.Bind(wx.EVT_TEXT, self.OnFilterNom, self.text_ctrl_recherche) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnEditionAdherent, self.liste_adherents) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSelectionAdherent, self.liste_adherents) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnDeselectionAdherent, self.liste_adherents) self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.OnClickDroitListe, self.liste_adherents)
def __init__(self, *args, **kwds): # begin wxGlade: SuiviCommandes.__init__ kwds["style"] = wx.TAB_TRAVERSAL wx.Panel.__init__(self, *args, **kwds) #self.sizer_navigation_staticbox = wx.StaticBox(self, -1, u"Suivi des commandes") self.commande = None self.sizer_navigation_staticbox = wx.StaticBox(self, -1, "Gestion des commandes") #self.sizer_liste_commandes_staticbox = wx.StaticBox(self, -1, "Liste des commandes") self.sizer_commande_staticbox = wx.StaticBox(self, -1, u"Détails de la Commande") self.button_Modifier = wx.Button(self, -1, "Modifier") self.button_nouvelle_commande = wx.Button(self, -1, "Faire une nouvelle commande") self.button_Supprimer = wx.Button(self, -1, "Supprimer") self.button_Imprimer = wx.Button(self, -1, "Imprimer le bon de commande") self.button_PDF = wx.Button(self, -1, u"Générer le bon de commande") self.button_Email = wx.Button(self, -1, u"Envoyer le bon de commande") self.button_Commandee = wx.Button(self, -1, u"Commandée") self.button_Livree = wx.Button(self, -1, u"Livrée") self.button_Verifiee = wx.Button(self, -1, u"Vérifiée") self.label_nom_fournisseur = wx.StaticText(self, -1, "Fournisseur :") self.label_montant_commande = wx.StaticText(self, -1, "Montant :") self.label_nom_fournisseur_valeur = wx.StaticText(self, -1, "") self.label_montant_commande_valeur = wx.StaticText(self, -1, "") self.label_date_commande = wx.StaticText(self, -1, "Date de commande :") self.label_date_livraison = wx.StaticText(self, -1, u"Date de réception :") self.label_date_commande_valeur = wx.StaticText(self, -1, "") self.label_date_livraison_valeur = wx.StaticText(self, -1, "") #self.label_suivi_commandes = wx.StaticText(self, -1, u"Suivi des commandes") #self.label_suivi_commandes_description = wx.StaticText(self, -1, u"C'est là qu'on gère les commandes") self.liste_commandes = ObjectListView(self, -1, style=wx.LC_REPORT| wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL) self.liste_commandes.SetColumns([ ColumnDefn("Fournisseur", "left", -1, "fournisseur.nom", minimumWidth=100), ColumnDefn("Date commande", "left", -1, "date_commande", stringConverter=u"%d/%m/%y", minimumWidth=130), ColumnDefn("Total TTC", "left", -1, "total_TTC", stringConverter=u"%.2f ¤", minimumWidth=100), ColumnDefn("statut", "left", -1, "statut_nom", isSpaceFilling=True, minimumWidth=100) ]) def rowFormatterLC(listItem, commande): if commande.statut == 0: #C5CBFF listItem.SetBackgroundColour("#D8DDFF") elif commande.statut == 1: #FFA3A2 listItem.SetBackgroundColour("#FFD3D3") elif commande.statut == 2: #E8E9A0 listItem.SetBackgroundColour("#FBFCC8") elif commande.statut == 3: #B7D69E listItem.SetBackgroundColour("#E3FFCB") self.liste_commandes.rowFormatter = rowFormatterLC self.liste_commandes.AutoSizeColumns() self.liste_commandes.SortBy(1, False) self.liste_commandes.SetEmptyListMsg("Il n'y a aucune commande") self.liste_lignes_commande = ObjectListView(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER| wx.LC_SINGLE_SEL) self.__set_lignes_commandes_colonnes() self.liste_lignes_commande.SetEmptyListMsg("La commande ne contient aucun produit") self.__set_properties() self.__do_layout() self.__remplissage_liste() self.__affichage_boutons(-1, 0) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSelectionCommande, self.liste_commandes) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnVerifLigne, self.liste_lignes_commande) self.Bind(wx.EVT_BUTTON, self.OnNouvelleCommande, self.button_nouvelle_commande) self.Bind(wx.EVT_BUTTON, self.OnModifier, self.button_Modifier) self.Bind(wx.EVT_BUTTON, self.OnSupprimer, self.button_Supprimer) self.Bind(wx.EVT_BUTTON, self.OnImprimer, self.button_Imprimer) self.Bind(wx.EVT_BUTTON, self.OnPDF, self.button_PDF) self.Bind(wx.EVT_BUTTON, self.OnEmail, self.button_Email) self.Bind(wx.EVT_BUTTON, self.OnCommandee, self.button_Commandee) self.Bind(wx.EVT_BUTTON, self.OnLivree, self.button_Livree) self.Bind(wx.EVT_BUTTON, self.OnVerifiee, self.button_Verifiee)
def __init__(self, parent): wx.Panel.__init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, style=wx.TAB_TRAVERSAL) self.sizer_navigation_staticbox = wx.StaticBox( self, -1, "Gestion des inventaires") self.bouton_ajout_inventaire = wx.BitmapButton( self, -1, wx.Bitmap("../icons/16x16/ajouter.ico")) self.bouton_suppression_inventaire = wx.BitmapButton( self, -1, wx.Bitmap("../icons/16x16/enlever.ico")) self.liste_inventaires = ObjectListView( self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) def is_valide(value): if value: return u"Validé" else: return "En cours de validation" self.liste_inventaires.SetColumns([ ColumnDefn("Date", "left", 200, "date", stringConverter="Inventaire du %d-%m-%Y", minimumWidth=200), ColumnDefn("Statut", "left", -1, "is_valide", stringConverter=is_valide), ColumnDefn(u"Valeur du stock théorique", "left", 100, "valeur_stock_theorique", stringConverter=u"%.2f ¤"), ColumnDefn(u"Valeur du stock réel", "left", 100, "valeur_stock_reel", stringConverter=u"%.2f ¤", isSpaceFilling=True) ]) def rowFormatterLI(listItem, commande): if commande.is_valide == 0: #C5CBFF listItem.SetBackgroundColour("#FBFCC8") elif commande.is_valide == 1: #FFA3A2 listItem.SetBackgroundColour("#E3FFCB") self.liste_inventaires.rowFormatter = rowFormatterLI self.__set_properties() self.__do_layout() self.__remplissage_liste() self.Bind(wx.EVT_BUTTON, self.OnAjoutInventaire, self.bouton_ajout_inventaire) self.Bind(wx.EVT_BUTTON, self.OnSuppressionInventaire, self.bouton_suppression_inventaire) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnEditionInventaire, self.liste_inventaires) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSelectionInventaire, self.liste_inventaires) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnSelectionInventaire, self.liste_inventaires)
def __init__(self, parent, adherent=None): wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL) if adherent: self.adherent = adherent else: self.adherent = Adherent.select().where(Adherent.id == 1).get() self.label_total_achats = wx.StaticText( self, -1, "Total des achats du mois en cours :") self.label_total_achats_v = wx.StaticText(self, -1, u"XX.XX €") self.label_solde = wx.StaticText(self, -1, u"Solde :") self.label_solde_v = wx.StaticText(self, -1, u"XX.XX €") self.static_line = wx.StaticLine(self, -1) self.bouton_ajout_achat = wx.Button(self, -1, "Nouvel achat") self.bouton_ajout_credit = wx.Button(self, -1, "Nouveau paiement") self.label_info = wx.StaticText( self, -1, u"Note : Le dernier achat et le dernier paiement sont modifiable le jour même." ) self.notebook_achats = wx.Notebook(self, -1, style=0) #Page "Dernieres produits achetés" self.panel_page_achat_mois = wx.Panel(self.notebook_achats, -1) self.label_mois_recherche = wx.StaticText(self.panel_page_achat_mois, -1, u"Achats du mois de ") self.combobox_choix_mois = wx.ComboBox(self.panel_page_achat_mois, -1) self.label_total_mois = wx.StaticText( self.panel_page_achat_mois, -1, u"Total des achats du mois : XX.XX €") self.liste_achats_mois = ObjectListView( self.panel_page_achat_mois, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) """def date_achat(ligne_achat): return ligne_achat.achat.date.strftime("%d-%m-%y") def ref_GASE_nom(ligne_achat): return "%s - %s" % (ligne_achat.produit.ref_GASE, ligne_achat.produit.nom) self.liste_achats_mois.SetColumns([ ColumnDefn("Ref GASE - Nom", "left", -1, ref_GASE_nom, minimumWidth=250, groupKeyGetter=date_achat), ColumnDefn("Prix", "left", -1, "produit.prix_vente_format", minimumWidth=100), ColumnDefn(u"Quantité", "left", -1, "quantite_format", minimumWidth=70), ColumnDefn(u"Total", "right", -1, "prix_total", stringConverter=u"%.2f €", minimumWidth=70, isSpaceFilling=True) ])""" self.liste_achats_mois.SetColumns([ ColumnDefn("Date", "center", -1, "achat.date", stringConverter="%d-%m-%y", minimumWidth=70), ColumnDefn("Ref GASE", "center", -1, "produit.ref_GASE", minimumWidth=70), ColumnDefn("Nom", "left", -1, "produit.nom", minimumWidth=100), ColumnDefn("Prix", "left", -1, "produit.prix_vente_format", minimumWidth=100), ColumnDefn(u"Quantité", "left", -1, "quantite_format", minimumWidth=70), ColumnDefn(u"Total", "right", -1, "prix_total", stringConverter=u"%.2f €", minimumWidth=70, isSpaceFilling=True) ]) self.liste_achats_mois.SetEmptyListMsg("Aucuns achat pour ce mois") self.liste_achats_mois.AutoSizeColumns() self.notebook_achats.AddPage(self.panel_page_achat_mois, u"Achats du mois") #Page "Achats" self.panel_page_achats = wx.Panel(self.notebook_achats, -1) self.liste_achats = ObjectListView( self.panel_page_achats, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL, sortable=False) self.liste_achats.SetColumns([ ColumnDefn("Date", "left", -1, "date", stringConverter="Achat du %d-%m-%y", minimumWidth=100), ColumnDefn(u"Total", "right", -1, "total", stringConverter=u"%.2f €", minimumWidth=100, isSpaceFilling=True) ]) def rowFormatterAchats(listItem, achat): if achat.is_achat_du_jour() and ( achat == self.liste_achats.GetObjectAt(0)): listItem.SetBackgroundColour("#CCFFCC") self.liste_achats.rowFormatter = rowFormatterAchats self.liste_achats.AutoSizeColumns() self.liste_lignes_achat = ObjectListView( self.panel_page_achats, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.liste_lignes_achat.SetColumns([ ColumnDefn("Ref GASE", "left", -1, "produit.ref_GASE", minimumWidth=70), ColumnDefn("Nom", "left", -1, "produit.nom", minimumWidth=100), ColumnDefn("Prix", "left", -1, "produit.prix_vente_format", minimumWidth=100), ColumnDefn(u"Quantité", "left", -1, "quantite_format", minimumWidth=70), ColumnDefn(u"Total", "right", -1, "prix_total", stringConverter=u"%.2f €", minimumWidth=70, isSpaceFilling=True) ]) self.liste_lignes_achat.AutoSizeColumns() self.liste_lignes_achat.SortBy(1) self.notebook_achats.AddPage(self.panel_page_achats, "Achats") #Page "Cotisations" self.panel_page_cotisations = wx.Panel(self.notebook_achats, -1) self.liste_cotisations = ObjectListView( self.panel_page_cotisations, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) def cotisation_mois_annee(cotisation): mois = [ 'Janvier', u'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', u'Août', 'Septembre', 'Octobre', 'Novembre', u'Décembre' ] return "%s %i" % (mois[cotisation.date.month - 1], cotisation.date.year) self.liste_cotisations.SetColumns([ ColumnDefn("Cotisation de", "left", -1, cotisation_mois_annee, minimumWidth=100), ColumnDefn(u"Réglée le", "left", -1, "date", minimumWidth=100), ColumnDefn(u"Montant", "left", -1, "montant", stringConverter=u"%.2f €", minimumWidth=70, isSpaceFilling=True) ]) self.notebook_achats.AddPage(self.panel_page_cotisations, "Cotisations") #Page "Paiements" self.panel_page_credits = wx.Panel(self.notebook_achats, -1) self.liste_credits = wx.ListCtrl(self.panel_page_credits, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER) self.notebook_achats.AddPage(self.panel_page_credits, "Paiements") self.__set_properties() self.__set_valeurs() self.__do_layout() self.combobox_choix_mois.Bind(wx.EVT_COMBOBOX, self.OnChoixMois) self.bouton_ajout_achat.Bind(wx.EVT_BUTTON, self.OnAjoutAchat) self.liste_achats.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnDetailsAchat) self.liste_achats.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnModifAchat) #self.liste_achats_mois.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnDetailsAchat) self.liste_achats_mois.Disable()
def __init__(self, parent, commande=None): wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL) if commande == None: commande = Commande.create() self.commande = commande self.sizer_commande_staticbox = wx.StaticBox(self, -1, "Commande") self.sizer_fournisseur_produits_staticbox = wx.StaticBox( self, -1, "Liste des produits") self.label_titre_commande = wx.StaticText(self, -1, "Commande pour ") self.bouton_infos_fournisseur = wx.Button( self, -1, "Afficher les infos du fournisseur") self.label_date_commande = wx.StaticText(self, -1, "Date de la commande :") self.datepicker_date_commande = wx.DatePickerCtrl(self, -1) self.label_FiltreRecherche = wx.StaticText(self, -1, "Recherche sur le nom :") self.text_ctrl_FiltreRecherche = wx.TextCtrl(self, -1, "") self.liste_produits = ObjectListView(self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER) self.label_total = wx.StaticText(self, -1, "Total de la commande :") self.label_total_valeur = wx.StaticText(self, -1, u"0.00 ¤", style=wx.ALIGN_RIGHT) self.liste_lignes_commande = ObjectListView(self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER) self.bouton_Sauvegarder = wx.Button(self, -1, "Enregistrer la commande") self.liste_produits.SetColumns([ ColumnDefn("Ref GASE", "left", -1, "ref_GASE", minimumWidth=100), ColumnDefn("Nom", "left", -1, "nom", minimumWidth=100), ColumnDefn("Prix TTC", "right", -1, "prix_achat_TTC", stringConverter=u"%.2f ¤", minimumWidth=100), ColumnDefn("Conditionnement", "left", -1, "conditionnement_format", isSpaceFilling=True, minimumWidth=200) ]) self.liste_produits.SetEmptyListMsg("Ce fournisseur n'a aucun produit") self.liste_produits.AutoSizeColumns() self.liste_lignes_commande.SetColumns([ ColumnDefn("Ref Fournisseur", "left", -1, "produit.ref_fournisseur", minimumWidth=120), ColumnDefn("Nom", "left", -1, "produit.nom", minimumWidth=100), ColumnDefn(u"Quantité", "left", -1, "quantite_commandee_conditionnement", minimumWidth=150), ColumnDefn("Total TTC", "right", -1, "prix_total_commande_ttc", stringConverter=u"%s ¤", isSpaceFilling=True, minimumWidth=100) ]) self.liste_lignes_commande.AutoSizeColumns() self.liste_lignes_commande.SetEmptyListMsg( "La commande ne contient aucun produit") self.__set_properties() self.__set_values() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.OnInfosFournisseur, self.bouton_infos_fournisseur) self.Bind(wx.EVT_BUTTON, self.OnSauvegarder, self.bouton_Sauvegarder) self.Bind(wx.EVT_TEXT, self.OnFilter, self.text_ctrl_FiltreRecherche) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnAjoutProduit, self.liste_produits) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnModifProduit, self.liste_lignes_commande) self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy, self)