示例#1
0
    def __init__(self, dossier_source):
        """
        initialisation et importation des données

        :param dossier_source: Une instance de la classe dossier.DossierSource
        """
        donnees_csv = []
        try:
            for ligne in dossier_source.reader(self.nom_fichier):
                donnees_csv.append(ligne)
        except IOError as e:
            Outils.fatal(
                e,
                "impossible d'ouvrir le fichier : " + SubEdition.nom_fichier)

        num = 5
        if len(donnees_csv) != num:
            Outils.fatal(
                ErreurConsistance(),
                SubEdition.libelle + ": nombre de lignes incorrect : " +
                str(len(donnees_csv)) + ", attendu : " + str(num))
        if len(donnees_csv[0]) != 3 or len(donnees_csv[1]) != 3 or len(
                donnees_csv[2]) != 3 or len(donnees_csv[3]) != 3:
            Outils.fatal(ErreurConsistance(),
                         SubEdition.libelle + ": nombre de colonnes incorrect")
        try:
            self.annee_debut_bonus = int(donnees_csv[0][1])
            self.mois_debut_bonus = int(donnees_csv[0][2])
            self.annee_fin_bonus = int(donnees_csv[1][1])
            self.mois_fin_bonus = int(donnees_csv[1][2])

            self.annee_debut_subs = int(donnees_csv[2][1])
            self.mois_debut_subs = int(donnees_csv[2][2])
            self.annee_fin_subs = int(donnees_csv[3][1])
            self.mois_fin_subs = int(donnees_csv[3][2])
        except ValueError as e:
            Outils.fatal(
                e, SubEdition.libelle +
                "\nles mois et les années doivent être des nombres entiers")

        if Outils.comparaison_date(self.annee_debut_bonus,
                                   self.mois_debut_bonus, self.annee_fin_bonus,
                                   self.mois_fin_bonus) > 0:
            Outils.fatal(
                ErreurConsistance(), SubEdition.libelle +
                ": la fin du bonus ne peut être avant le début")
        if Outils.comparaison_date(self.annee_debut_subs, self.mois_debut_subs,
                                   self.annee_fin_subs,
                                   self.mois_fin_subs) > 0:
            Outils.fatal(
                ErreurConsistance(), SubEdition.libelle +
                ": la fin des subsides ne peut être avant le début")

        if Outils.comparaison_date(
                self.annee_debut_bonus, self.mois_debut_bonus,
                self.annee_debut_subs, self.mois_debut_subs) < 0:
            self.annee_debut_general = self.annee_debut_bonus
            self.mois_debut_general = self.mois_debut_bonus
        else:
            self.annee_debut_general = self.annee_debut_subs
            self.mois_debut_general = self.mois_debut_subs

        if Outils.comparaison_date(self.annee_fin_bonus, self.mois_fin_bonus,
                                   self.annee_fin_subs,
                                   self.mois_fin_subs) > 0:
            self.annee_fin_general = self.annee_fin_bonus
            self.mois_fin_general = self.mois_fin_bonus
        else:
            self.annee_fin_general = self.annee_fin_subs
            self.mois_fin_general = self.mois_fin_subs

        self.filigrane = donnees_csv[4][1]