def __init__(self, parent, *args, **kwds): CTRL.__init__(self, parent, *args, **kwds) track_tarif = Track_tarif() filtre_methodes = ("montant_unique", "qf") CTRL_Tarification_calcul.Panel.__init__(self, parent, IDactivite=None, IDtarif=None, track_tarif=track_tarif, filtre_methodes=filtre_methodes) self.SetMinSize((-1, 220)) self.MAJ()
def Ajouter(self, event): track_tarif = Track_tarif(dictDonnees={"IDactivite":self.track_evenement.IDactivite, "date_debut":self.track_evenement.date, "date_fin":self.track_evenement.date}) nom_evenement = self.GetParent().ctrl_nom.GetValue() from Dlg import DLG_Saisie_tarification dlg = DLG_Saisie_tarification.Dialog(self, IDactivite=self.track_evenement.IDactivite, IDtarif=None, nom_tarif=nom_evenement, choix_pages=["generalites", "conditions", "calcul"], cacher_dates=True, track_tarif=track_tarif) dlg.toolbook.GetPage("calcul").SetFiltreTypeTarif("JOURN") if dlg.ShowModal() == wx.ID_OK: track_tarif = dlg.GetTrackTarif() self.donnees.append(track_tarif) self.MAJ(track_tarif) dlg.Destroy()
def Ajouter(self, event): track_tarif = Track_tarif() nom_tarif = self.GetGrandParent().GetParent().ctrl_nom.GetValue() from Dlg import DLG_Saisie_tarification dlg = DLG_Saisie_tarification.Dialog( self, IDactivite=None, IDtarif=None, nom_tarif=nom_tarif, choix_pages=["generalites", "calcul"], track_tarif=track_tarif) dlg.toolbook.GetPage("calcul").SetFiltreTypeTarif("PRODUIT") dlg.toolbook.GetPage("generalites").MasqueCategories() dlg.SetMinSize((700, 450)) dlg.SetSize((700, 450)) if dlg.ShowModal() == wx.ID_OK: track_tarif = dlg.GetTrackTarif() self.donnees.append(track_tarif) self.MAJ(track_tarif) dlg.Destroy()
def InitModel(self): """ Récupération des données """ if self.dictInfosLocation["IDproduit"] == None : return liste_tarifs = [] DB = GestionDB.DB() # Importation du tarif fixe du produit req = """SELECT nom, montant FROM produits WHERE IDproduit=%d;""" % self.dictInfosLocation["IDproduit"] DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() if len(listeDonnees) > 0 : nom_produit, montant_produit = listeDonnees[0] if montant_produit != None : track = Track_tarif({"IDtarif": None}) track.label = nom_produit track.montant = montant_produit liste_tarifs.append(track) # Importation des tarifs req = """SELECT IDtarif, IDactivite, date_debut, date_fin, methode, type, categories_tarifs, groupes, etiquettes, cotisations, caisses, description, jours_scolaires, jours_vacances, observations, tva, code_compta, IDtype_quotient, label_prestation, IDproduit FROM tarifs WHERE IDproduit=%d;""" % self.dictInfosLocation["IDproduit"] DB.ExecuterReq(req) listeDonneesTarifs = DB.ResultatReq() listeIDtarif = [] for temp in listeDonneesTarifs: listeIDtarif.append(temp[0]) if len(listeIDtarif) == 0: condition = "()" elif len(listeIDtarif) == 1: condition = "(%d)" % listeIDtarif[0] else: condition = str(tuple(listeIDtarif)) # Importation des lignes de tarifs req = """SELECT %s FROM tarifs_lignes WHERE IDtarif IN %s ORDER BY num_ligne;""" % (", ".join(CHAMPS_TABLE_LIGNES), condition) DB.ExecuterReq(req) listeDonneesLignes = DB.ResultatReq() dictLignes = {} for ligne in listeDonneesLignes: index = 0 dictLigne = {} for valeur in ligne: dictLigne[CHAMPS_TABLE_LIGNES[index]] = valeur index += 1 if dictLignes.has_key(dictLigne["IDtarif"]) == False: dictLignes[dictLigne["IDtarif"]] = [] dictLignes[dictLigne["IDtarif"]].append(dictLigne) # Mémorisation des tarifs for IDtarif, IDactivite, date_debut, date_fin, methode, type, categories_tarifs, groupes, etiquettes, cotisations, caisses, description, jours_scolaires, jours_vacances, observations, tva, code_compta, IDtype_quotient, label_prestation, IDproduit in listeDonneesTarifs: # Récupération des lignes du tarif if dictLignes.has_key(IDtarif): liste_lignes = dictLignes[IDtarif] else: liste_lignes = [] dictTarif = { "IDtarif": IDtarif, "IDactivite": IDactivite, "date_debut": date_debut, "date_fin": date_fin, "methode": methode, "type": type, "categories_tarifs": categories_tarifs, "groupes": groupes, "etiquettes": etiquettes, "cotisations": cotisations, "caisses": caisses, "description": description, "jours_scolaires": jours_scolaires, "jours_vacances": jours_vacances, "observations": observations, "tva": tva, "code_compta": code_compta, "IDtype_quotient": IDtype_quotient, "label_prestation": label_prestation, "IDproduit": IDproduit, "filtres": [], "lignes": liste_lignes, } track = Track_tarif(dictTarif) # Ajustement du label de la prestation if label_prestation == "description_tarif" : track.label = description else : track.label = nom_produit # Calcul du montant track.montant = 0.0 # ------------ Recherche du montant du tarif : MONTANT UNIQUE if methode == "produit_montant_unique": track.montant = liste_lignes[0]["montant_unique"] # ------------ Recherche du montant du tarif : MONTANT PROPORTIONNEL A LA QUANTITE if methode == "produit_proportionnel_quantite": if self.dictInfosLocation.has_key("quantite") : quantite = self.dictInfosLocation["quantite"] track.montant = quantite * liste_lignes[0]["montant_unique"] # Mémorisation du tarif liste_tarifs.append(track) DB.Close() # Envoi des données au OL self.donnees = liste_tarifs
def __init__(self, parent, IDmodele=None): wx.Dialog.__init__(self, parent, -1, name="DLG_Saisie_modele_prestation", style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX) self.parent = parent self.IDmodele = IDmodele self.track_tarif = None self.listeInitialeIDlignes = [] if self.IDmodele == None: titre = _(u"Saisie d'un modèle de prestation") else: titre = _(u"Modification d'un modèle de prestation") self.SetTitle(titre) intro = _( u"Vous pouvez saisir ou modifier ici les caractéristiques d'un modèle de prestation. Un modèle permet une saisie rapide de plusieurs prestations aux caractéristiques identiques." ) self.ctrl_bandeau = CTRL_Bandeau.Bandeau( self, titre=titre, texte=intro, hauteurHtml=30, nomImage="Images/32x32/Euro.png") # Généralités self.staticbox_generalites_staticbox = wx.StaticBox( self, -1, _(u"Généralites")) self.label_categorie = wx.StaticText(self, -1, _(u"Catégorie :")) self.ctrl_categorie = Choix_categorie(self) self.label_label = wx.StaticText(self, -1, _(u"Intitulé :")) self.ctrl_label = wx.TextCtrl(self, -1, u"") self.ctrl_label.SetMinSize((200, -1)) self.label_type = wx.StaticText(self, -1, _(u"Type :")) self.radio_type_familiale = wx.RadioButton(self, -1, _(u"Prestation familiale"), style=wx.RB_GROUP) self.radio_type_individuelle = wx.RadioButton( self, -1, _(u"Prestation individuelle")) # Options self.staticbox_options_staticbox = wx.StaticBox( self, -1, _(u"Options")) self.label_activite = wx.StaticText(self, -1, _(u"Activité :")) self.ctrl_activite = Choix_activite(self) self.label_categorie_tarif = wx.StaticText(self, -1, _(u"Catégorie :")) self.ctrl_categorie_tarif = Choix_categorie_tarif(self) self.label_tarif = wx.StaticText(self, -1, _(u"Tarif :")) self.ctrl_tarif = Choix_tarif(self) # TVA self.label_tva = wx.StaticText(self, -1, _(u"Taux TVA (%) :")) self.ctrl_tva = FS.FloatSpin(self, -1, min_val=0, max_val=100, increment=0.1, agwStyle=FS.FS_RIGHT) self.ctrl_tva.SetFormat("%f") self.ctrl_tva.SetDigits(2) # Code comptable self.label_code_comptable = wx.StaticText(self, -1, _(u"Code compta :")) self.ctrl_code_comptable = wx.TextCtrl(self, -1, u"") self.ctrl_code_comptable.SetMinSize((80, -1)) # Tarification self.staticbox_tarification_staticbox = wx.StaticBox( self, -1, _(u"Tarification")) self.track_tarif = Track_tarif( dictDonnees={"lignes": self.Importation_lignes()}) filtre_methodes = ("montant_unique", "qf") self.ctrl_tarification = CTRL_Tarification_calcul.Panel( self, IDactivite=None, IDtarif=None, track_tarif=self.track_tarif, filtre_methodes=filtre_methodes) # Commandes self.bouton_aide = CTRL_Bouton_image.CTRL( self, texte=_(u"Aide"), cheminImage="Images/32x32/Aide.png") self.bouton_ok = CTRL_Bouton_image.CTRL( self, texte=_(u"Ok"), cheminImage="Images/32x32/Valider.png") self.bouton_annuler = CTRL_Bouton_image.CTRL( self, id=wx.ID_CANCEL, texte=_(u"Annuler"), cheminImage="Images/32x32/Annuler.png") self.__set_properties() self.__do_layout() self.Bind(wx.EVT_CHOICE, self.OnChoixCategorie, self.ctrl_categorie) self.Bind(wx.EVT_CHOICE, self.OnChoixActivite, self.ctrl_activite) self.Bind(wx.EVT_CHOICE, self.OnChoixCategorieTarif, self.ctrl_categorie_tarif) self.Bind(wx.EVT_CHOICE, self.OnChoixTarif, self.ctrl_tarif) self.Bind(wx.EVT_BUTTON, self.OnBoutonAide, self.bouton_aide) self.Bind(wx.EVT_BUTTON, self.OnBoutonOk, self.bouton_ok) self.ctrl_categorie_tarif.Enable(False) self.ctrl_tarif.Enable(False) # Remplissage des contrôles self.listeActivites = self.Importation_activites() self.ctrl_activite.SetListeDonnees(self.listeActivites) self.listeCategoriesTarifs = self.Importation_categories_tarifs( IDactivite=0) self.ctrl_categorie_tarif.SetListeDonnees(self.listeCategoriesTarifs) self.listeTarifs = self.Importation_tarifs(IDcategorie_tarif=0) self.ctrl_tarif.SetListeDonnees(self.listeTarifs) # Importation lors d'une modification if self.IDmodele != None: self.Importation()
def InitModel(self): """ Récupération des données """ if self.dictInfosLocation["IDproduit"] == None: return liste_tarifs = [] DB = GestionDB.DB() # Importation du tarif fixe du produit req = """SELECT nom, montant FROM produits WHERE IDproduit=%d;""" % self.dictInfosLocation["IDproduit"] DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() if len(listeDonnees) > 0: nom_produit, montant_produit = listeDonnees[0] if montant_produit != None: track = Track_tarif({"IDtarif": None}) track.label = nom_produit track.montant = montant_produit liste_tarifs.append(track) # Importation des tarifs req = """SELECT IDtarif, IDactivite, date_debut, date_fin, methode, type, categories_tarifs, groupes, etiquettes, cotisations, caisses, description, jours_scolaires, jours_vacances, observations, tva, code_compta, IDtype_quotient, label_prestation, IDproduit FROM tarifs WHERE IDproduit=%d;""" % self.dictInfosLocation["IDproduit"] DB.ExecuterReq(req) listeDonneesTarifs = DB.ResultatReq() listeIDtarif = [] for temp in listeDonneesTarifs: listeIDtarif.append(temp[0]) if len(listeIDtarif) == 0: condition = "()" elif len(listeIDtarif) == 1: condition = "(%d)" % listeIDtarif[0] else: condition = str(tuple(listeIDtarif)) # Importation des lignes de tarifs req = """SELECT %s FROM tarifs_lignes WHERE IDtarif IN %s ORDER BY num_ligne;""" % ( ", ".join(CHAMPS_TABLE_LIGNES), condition) DB.ExecuterReq(req) listeDonneesLignes = DB.ResultatReq() dictLignes = {} for ligne in listeDonneesLignes: index = 0 dictLigne = {} for valeur in ligne: dictLigne[CHAMPS_TABLE_LIGNES[index]] = valeur index += 1 if dictLignes.has_key(dictLigne["IDtarif"]) == False: dictLignes[dictLigne["IDtarif"]] = [] dictLignes[dictLigne["IDtarif"]].append(dictLigne) # Mémorisation des tarifs for IDtarif, IDactivite, date_debut, date_fin, methode, type, categories_tarifs, groupes, etiquettes, cotisations, caisses, description, jours_scolaires, jours_vacances, observations, tva, code_compta, IDtype_quotient, label_prestation, IDproduit in listeDonneesTarifs: # Récupération des lignes du tarif if dictLignes.has_key(IDtarif): liste_lignes = dictLignes[IDtarif] else: liste_lignes = [] dictTarif = { "IDtarif": IDtarif, "IDactivite": IDactivite, "date_debut": date_debut, "date_fin": date_fin, "methode": methode, "type": type, "categories_tarifs": categories_tarifs, "groupes": groupes, "etiquettes": etiquettes, "cotisations": cotisations, "caisses": caisses, "description": description, "jours_scolaires": jours_scolaires, "jours_vacances": jours_vacances, "observations": observations, "tva": tva, "code_compta": code_compta, "IDtype_quotient": IDtype_quotient, "label_prestation": label_prestation, "IDproduit": IDproduit, "filtres": [], "lignes": liste_lignes, } track = Track_tarif(dictTarif) # Ajustement du label de la prestation if label_prestation == "description_tarif": track.label = description else: track.label = nom_produit # Calcul du montant track.montant = 0.0 # ------------ Recherche du montant du tarif : MONTANT UNIQUE if methode == "produit_montant_unique": track.montant = liste_lignes[0]["montant_unique"] # ------------ Recherche du montant du tarif : MONTANT PROPORTIONNEL A LA QUANTITE if methode == "produit_proportionnel_quantite": if self.dictInfosLocation.has_key("quantite"): quantite = self.dictInfosLocation["quantite"] track.montant = quantite * liste_lignes[0]["montant_unique"] # Mémorisation du tarif liste_tarifs.append(track) DB.Close() # Envoi des données au OL self.donnees = liste_tarifs
def Suite(self): DB = GestionDB.DB() self.parent.Sauvegarde_standard(DB) IDactivite = self.parent.dict_valeurs["IDactivite"] # Unités de consommation listeIDunite = [] listeDonnees = [("IDactivite", IDactivite), ("nom", _(u"Sortie")), ("abrege", _(u"SORTIE")), ("type", "Evenement"), ("date_debut", "1977-01-01"), ("date_fin", "2999-01-01"), ("repas", 0), ("ordre", 1)] IDunite = DB.ReqInsert("unites", listeDonnees) listeIDunite.append(IDunite) # Unité de remplissage listeIDuniteRemplissage = [] listeDonnees = [ ("IDactivite", IDactivite), ("nom", _(u"Sortie")), ("abrege", _(u"SORTIE")), ("seuil_alerte", 5), ("date_debut", "1977-01-01"), ("date_fin", "2999-01-01"), ("afficher_page_accueil", 1), ("afficher_grille_conso", 1), ("ordre", 1), ] IDunite_remplissage = DB.ReqInsert("unites_remplissage", listeDonnees) listeIDuniteRemplissage.append(IDunite_remplissage) listeDonnees = [ ("IDunite_remplissage", IDunite_remplissage), ("IDunite", IDunite), ] DB.ReqInsert("unites_remplissage_unites", listeDonnees) # Nom de tarif listeDonnees = [("IDactivite", IDactivite), ("nom", _(u"Sortie"))] IDnom_tarif = DB.ReqInsert("noms_tarifs", listeDonnees) # Catégories de tarifs listeCategoriesEtTarifs = [] # Catégorie unique listeDonnees = [("IDactivite", IDactivite), ("nom", _(u"Catégorie unique"))] IDcategorie_tarif = DB.ReqInsert("categories_tarifs", listeDonnees) track_tarif = Track_tarif() listeCategoriesEtTarifs.append((IDcategorie_tarif, track_tarif)) # Tarifs listeTarifs = [] for IDcategorie_tarif, track_tarif in listeCategoriesEtTarifs: track_tarif.MAJ({ "IDactivite": IDactivite, "IDnom_tarif": IDnom_tarif, "type": "JOURN", "date_debut": "%d-01-01" % datetime.date.today().year, "categories_tarifs": str(IDcategorie_tarif), "methode": "montant_evenement", "etats": "reservation;present;absenti", "label_prestation": "nom_tarif", "combi_tarifs": [ { "type": "JOURN", "unites": [ IDunite, ] }, ], "lignes": [ Track_ligne({ "code": "montant_evenement", "num_ligne": 0, "tranche": "1" }) ], }) listeTarifs.append(track_tarif) self.parent.Sauvegarde_tarifs(DB, listeTarifs) DB.Close() # Fermeture self.parent.Quitter() return False
def Importation(self): """ Importation des données """ DB = GestionDB.DB() req = """SELECT nom, observations, image, IDcategorie, quantite, montant FROM produits WHERE IDproduit=%d;""" % self.IDproduit DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() if len(listeDonnees) == 0: DB.Close() return nom, observations, image, IDcategorie, quantite, montant = listeDonnees[ 0] # Généralités self.ctrl_nom.SetValue(nom) self.ctrl_categorie.SetID(IDcategorie) self.ctrl_observations.SetValue(observations) # Importation des tarifs liste_tarifs = [] req = """SELECT IDtarif, IDactivite, date_debut, date_fin, methode, type, categories_tarifs, groupes, etiquettes, cotisations, caisses, description, jours_scolaires, jours_vacances, observations, tva, code_compta, IDtype_quotient, label_prestation, IDproduit FROM tarifs WHERE IDproduit=%d;""" % self.IDproduit DB.ExecuterReq(req) listeDonneesTarifs = DB.ResultatReq() listeIDtarif = [] for temp in listeDonneesTarifs: listeIDtarif.append(temp[0]) self.dict_donnees_initiales["tarifs"].append(temp[0]) # Importation des filtres de questionnaire if len(listeIDtarif) == 0: condition = "()" elif len(listeIDtarif) == 1: condition = "(%d)" % listeIDtarif[0] else: condition = str(tuple(listeIDtarif)) req = """SELECT IDtarif, IDfiltre, IDquestion, categorie, choix, criteres FROM questionnaire_filtres WHERE IDtarif IN %s;""" % condition DB.ExecuterReq(req) listeDonneesFiltres = DB.ResultatReq() dictFiltres = {} for IDtarif, IDfiltre, IDquestion, categorie, choix, criteres in listeDonneesFiltres: if (IDtarif in dictFiltres) == False: dictFiltres[IDtarif] = [] dictTemp = { "IDfiltre": IDfiltre, "IDquestion": IDquestion, "categorie": categorie, "choix": choix, "criteres": criteres, "IDtarif": IDtarif } dictFiltres[IDtarif].append(dictTemp) self.dict_donnees_initiales["questionnaire_filtres"].append( IDfiltre) # Importation des lignes de tarifs req = """SELECT %s FROM tarifs_lignes WHERE IDtarif IN %s ORDER BY num_ligne;""" % ( ", ".join(CHAMPS_TABLE_LIGNES), condition) DB.ExecuterReq(req) listeDonneesLignes = DB.ResultatReq() dictLignes = {} for ligne in listeDonneesLignes: index = 0 dictLigne = {} for valeur in ligne: dictLigne[CHAMPS_TABLE_LIGNES[index]] = valeur index += 1 if (dictLigne["IDtarif"] in dictLignes) == False: dictLignes[dictLigne["IDtarif"]] = [] dictLignes[dictLigne["IDtarif"]].append(dictLigne) self.dict_donnees_initiales["tarifs_lignes"].append( dictLigne["IDligne"]) # Mémorisation des tarifs for IDtarif, IDactivite, date_debut, date_fin, methode, type, categories_tarifs, groupes, etiquettes, cotisations, caisses, description, jours_scolaires, jours_vacances, observations, tva, code_compta, IDtype_quotient, label_prestation, IDproduit in listeDonneesTarifs: # Récupération des filtres du tarif if IDtarif in dictFiltres: liste_filtres = dictFiltres[IDtarif] else: liste_filtres = [] # Récupération des lignes du tarif if IDtarif in dictLignes: liste_lignes = dictLignes[IDtarif] else: liste_lignes = [] dictTarif = { "IDtarif": IDtarif, "IDactivite": IDactivite, "date_debut": date_debut, "date_fin": date_fin, "methode": methode, "type": type, "categories_tarifs": categories_tarifs, "groupes": groupes, "etiquettes": etiquettes, "cotisations": cotisations, "caisses": caisses, "description": description, "jours_scolaires": jours_scolaires, "jours_vacances": jours_vacances, "observations": observations, "tva": tva, "code_compta": code_compta, "IDtype_quotient": IDtype_quotient, "label_prestation": label_prestation, "IDproduit": IDproduit, "filtres": liste_filtres, "lignes": liste_lignes, } liste_tarifs.append(Track_tarif(dictTarif)) DB.Close() # Paramètres dictDonnees = { "quantite": quantite, "montant": montant, "tarifs": liste_tarifs } self.ctrl_parametres.SetDonnees(dictDonnees) # Logo if image != None: self.ctrl_logo.ChargeFromBuffer(image)