Exemple #1
0
    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
Exemple #2
0
    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