def est_coherent(self, clients): """ vérifie que les données du fichier importé sont cohérentes :param clients: clients importés :return: 1 s'il y a une erreur, 0 sinon """ if self.verifie_coherence == 1: print(self.libelle + ": cohérence déjà vérifiée") return 0 msg = "" ligne = 1 donnees_dict = {} ids = [] del self.donnees[0] for donnee in self.donnees: if donnee['id_plateforme'] == "": msg += "l'id plateforme " + str(ligne) + " ne peut être vide\n" elif donnee['id_plateforme'] not in clients.obtenir_codes(): msg += "l'id plateforme de la ligne " + str( ligne) + " n'existe pas dans les clients \n" elif donnee['id_plateforme'] not in ids: ids.append(donnee['id_plateforme']) else: msg += "l'id plateforme de la ligne " + str( ligne) + " n'est pas unique \n" donnee['code_p'], info = Outils.est_un_alphanumerique( donnee['code_p'], "le code P", ligne) msg += info donnee['centre'], info = Outils.est_un_alphanumerique( donnee['centre'], "le centre financier", ligne) msg += info donnee['fonds'], info = Outils.est_un_alphanumerique( donnee['fonds'], "les fonds à créditer", ligne) msg += info donnee['intitule'], info = Outils.est_un_texte( donnee['intitule'], "l'intitulé", ligne) msg += info donnee['grille'], info = Outils.est_un_document( donnee['grille'], "la grille tarifaire", ligne, True) msg += info donnees_dict[donnee['id_plateforme']] = donnee ligne += 1 self.donnees = donnees_dict self.verifie_coherence = 1 if msg != "": msg = self.libelle + "\n" + msg Outils.affiche_message(msg) return 1 return 0
def est_coherent(self, generaux, clients): """ vérifie que les données du fichier importé sont cohérentes :param generaux: paramètres généraux :param clients: clients importés :return: 1 s'il y a une erreur, 0 sinon """ if self.verifie_coherence == 1: print(self.libelle + ": cohérence déjà vérifiée") return 0 msg = "" ligne = 1 donnees_list = [] for donnee in self.donnees: donnee['nom'], err = Outils.est_un_document( donnee['nom'], "le nom") msg += err if donnee['position'] == "": msg += "la position de la ligne " + str( ligne) + " ne peut être vide\n" donnee['position'], info = Outils.est_un_entier(donnee['position'], "la position", ligne, min=0) msg += info if donnee['Annexe-pièces'] == "": msg += "le annexe P.J. de la ligne " + str( ligne) + " ne peut être vide\n" if not (donnee['Annexe-pièces'] == "OUI" or donnee['Annexe-pièces'] == "NON"): msg += "le annexe P.J. de la ligne " + str( ligne) + " doit être 'OUI' ou 'NON'\n" if donnee['Annexe-interne'] == "": msg += "le annexe Int de la ligne " + str( ligne) + " ne peut être vide\n" if not (donnee['Annexe-interne'] == "OUI" or donnee['Annexe-interne'] == "NON"): msg += "le annexe Int de la ligne " + str( ligne) + " doit être 'OUI' ou 'NON'\n" if donnee['nature'] != "" and donnee[ 'nature'] not in generaux.obtenir_code_n(): msg += "la nature '" + donnee['nature'] + "' de la ligne " + str(ligne) +\ " n'existe pas dans les types N\n" if donnee['code'] != "" and donnee[ 'code'] not in clients.obtenir_codes(): msg += "le code client '" + donnee[ 'code'] + "' de la ligne " + str( ligne) + " n'est pas référencé\n" donnee['chemin'] = Outils.chemin( [self._chemin, donnee['nom'] + ".pdf"]) if not Outils.existe(donnee['chemin']): msg += "le fichier PDF '" + donnee[ 'nom'] + "' de la ligne " + str(ligne) + " n'existe pas\n" donnees_list.append(donnee) ligne += 1 self.donnees = donnees_list self.verifie_coherence = 1 if msg != "": msg = self.libelle + "\n" + msg Outils.affiche_message(msg) return 1 return 0