def Modifier(self, event=None): item = self.GetSelection() dataItem = self.GetItemPyData(item) if dataItem == None or dataItem["type"] != "forfait" : dlg = wx.MessageDialog(self, _(u"Vous n'avez sélectionné aucun forfait à modifier dans la liste !"), _(u"Erreur de saisie"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return donnees = dataItem["donnees"] IDprestation = donnees["IDprestation"] # Vérifie si le forfait est déjà facturé if donnees["IDfacture"] != None : dlg = wx.MessageDialog(self, _(u"Ce forfait apparaît déjà sur une facture. Il n'est pas possible de le modifier !"), _(u"Attention"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return # Périodes de gestion if self.gestion.IsPeriodeinPeriodes("consommations", donnees["forfait_date_debut"], donnees["forfait_date_fin"]) == False: return False if self.gestion.Verification("prestations", donnees["date"]) == False: return False from Dlg import DLG_Saisie_forfait_credit dlg = DLG_Saisie_forfait_credit.Dialog(self, grille=self.grille, listeFamilles=self.grille.GetFamillesAffichees()) dlg.SetFamille(donnees["IDfamille"]) dlg.SetDateDebut(donnees["forfait_date_debut"]) dlg.SetDateFin(donnees["forfait_date_fin"]) dlg.SetForfait(donnees["IDindividu"], donnees["IDtarif"]) dlg.SetLabel(donnees["label"]) dlg.SetDatePrestation(donnees["date"]) dlg.SetMontant(donnees["montant_initial"]) dlg.ctrl_famille.Enable(False) ## dlg.ctrl_forfaits.Activation(False) if dlg.ShowModal() == wx.ID_OK: date_debut = dlg.GetDateDebut() date_fin = dlg.GetDateFin() dictTarif = dlg.GetForfait() label = dlg.GetLabel() datePrestation = dlg.GetDatePrestation() montant = dlg.GetMontant() IDindividu = dictTarif["resultat"]["IDindividu"] # Création de la prestation self.grille.dictPrestations[IDprestation]["label"] = label self.grille.dictPrestations[IDprestation]["date"] = datePrestation self.grille.dictPrestations[IDprestation]["montant_initial"] = montant self.grille.dictPrestations[IDprestation]["montant"] = montant self.grille.dictPrestations[IDprestation]["forfait_date_debut"] = date_debut self.grille.dictPrestations[IDprestation]["forfait_date_fin"] = date_fin self.grille.listePrestationsModifiees.append(IDprestation) # Affichage de la prestation if IDindividu == None : IDindividu = 0 try : self.grille.GetGrandParent().panel_facturation.ModifiePrestation(datePrestation, IDindividu, IDprestation, self.grille.dictPrestations[IDprestation]["montantVentilation"], nouveauMontant=montant, nouveauLabel=label) except : pass # Affichage dans la liste des forfaits dictTemp = self.grille.dictPrestations[IDprestation].copy() dictTemp["forfait_date_debut"] = date_debut dictTemp["forfait_date_fin"] = date_fin dictTemp["couleur"] = self.grille.dictForfaits[IDprestation]["couleur"] self.grille.dictForfaits[IDprestation] = dictTemp # MAJ du contrôle Forfaits self.MAJ(self.grille.dictForfaits, self.grille.listeSelectionIndividus) # Propose éventuellement un recalcul des conso déjà présentes nbreConso = 0 for IDindividuTemp, dictIndividu in self.grille.dictConsoIndividus.items() : for dateDD, dictDate in dictIndividu.items() : for IDunite, listeConso in dictDate.items() : for conso in listeConso : case = conso.case if case != None and case.date >= date_debut and case.date <= date_fin : if case != None and case.IDindividu == IDindividu or IDindividu == None or IDindividu == 0 : nbreConso += 1
def Ajouter(self, event=None, date_debut=None, IDfamille=None): from Dlg import DLG_Saisie_forfait_credit dlg = DLG_Saisie_forfait_credit.Dialog(self, grille=self.grille, listeFamilles=self.grille.GetFamillesAffichees()) if date_debut != None : dlg.SetDateDebut(date_debut) if IDfamille != None : dlg.SetFamille(IDfamille) if dlg.ShowModal() == wx.ID_OK: IDfamille = dlg.GetFamille() IDcompte_payeur = dlg.GetComptePayeur() date_debut = dlg.GetDateDebut() date_fin = dlg.GetDateFin() dictTarif = dlg.GetForfait() label = dlg.GetLabel() datePrestation = dlg.GetDatePrestation() montant = dlg.GetMontant() IDindividu = dictTarif["resultat"]["IDindividu"] # Création de la prestation IDprestation = self.grille.MemorisePrestation(IDcompte_payeur, datePrestation, dictTarif["IDactivite"], dictTarif["IDtarif"], label, montant, dictTarif["resultat"]["montant_tarif"], IDfamille, IDindividu, listeDeductions=[], temps_facture=dictTarif["resultat"]["temps_facture"], IDcategorie_tarif=dictTarif["resultat"]["IDcategorie_tarif"], forfait_date_debut=date_debut, forfait_date_fin=date_fin, dictTarif=dictTarif) # Affichage de la prestation try : listeNouvellesPrestations = [IDprestation,] listeAnciennesPrestations = [] self.grille.GetGrandParent().panel_facturation.SaisiePrestation( self.grille.dictPrestations, self.grille.dictDeductions, listeNouvellesPrestations, listeAnciennesPrestations, self.grille.listeSelectionIndividus, self.grille.listeActivites, self.grille.listePeriodes, ) except : pass # Affichage dans la liste des forfaits dictTemp = self.grille.dictPrestations[IDprestation].copy() dictTemp["forfait_date_debut"] = date_debut dictTemp["forfait_date_fin"] = date_fin dictTemp["couleur"] = self.grille.CreationCouleurForfait(index=len(self.grille.dictForfaits)) self.grille.dictForfaits[IDprestation] = dictTemp # MAJ du contrôle Forfaits self.MAJ(self.grille.dictForfaits, self.grille.listeSelectionIndividus) # Propose éventuellement un recalcul des conso déjà présentes nbreConso = 0 for IDindividuTemp, dictIndividu in self.grille.dictConsoIndividus.items() : for dateDD, dictDate in dictIndividu.items() : for IDunite, listeConso in dictDate.items() : for conso in listeConso : case = conso.case if case != None and case.date >= date_debut and case.date <= date_fin : if case.IDindividu == IDindividu or IDindividu == None or IDindividu == 0 : nbreConso += 1