Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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()
Exemple #4
0
    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()
Exemple #7
0
    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)
Exemple #8
0
    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)
Exemple #10
0
    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()
Exemple #11
0
    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()
Exemple #14
0
    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)
Exemple #15
0
    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)
Exemple #16
0
    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()
Exemple #20
0
    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)