1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
// Il faut une clé de parcours
// regarde si au moins un enreg
HPremier(Facture, idfacture)
SI HTrouve(Facture) ALORS
// trace
SI EnModeTest() ALORS
Trace("-------------------------------------------------------------------")
Trace("Lecture du fichier Facture")
Trace("-------------------------------------------------------------------")
FIN
// amorce le parcours
HLitPremier(Facture, idfacture)
TANTQUE HTrouve(Facture)
// trace
SI EnModeTest() ALORS Trace(" Lecture facture ID = "+facture.idfacture)
//
// Test de l'adresse de facturation déjà enregistrée
// On lit le dossier correspondant dans le fichier dossier
HRecherche(Dossier,IDDossier,Facture.IDDossier, hBlocageNon)
SI HTrouve(Dossier) ALORS
// amorce le parcours et monte l'enreg
HLitRecherche(Dossier,IDDossier,Facture.IDDossier, hBlocageNon)
// comparaison
SI SansEspace(Dossier.FactureAdresseDestinataire) = "" ET SansEspace(Dossier.FactureAdresseRue) = "" ALORS
// L'adresse est écrite dans la fiche client uniquement
HRecherche(Clients, IDClient, Dossier.IDClient, hBlocageNon)
SI HTrouve(Clients) ALORS
// monte enreg
HLitRecherche(Clients, IDClient, Dossier.IDClient, hBlocageNon)
//
// trace
SI EnModeTest() ALORS Trace(" On prend l'adresse du client pour la facture")
//
// On ajoute l'adresse du Clients
// Affecte les variables
F_Adresses.FactureAdresseDestinataire = Clients.LibClient
F_Adresses.FactureAdresseRue = Clients.Adresse
F_Adresses.FactureAdresseCP = Clients.CodePostal
F_Adresses.FactureAdresseVille = Clients.Ville
// on ajoute avec un contrôle
SI PAS HAjoute(F_Adresses) ALORS
// gestion des erreurs
Info("Erreur Ajout F_Adresse")
FIN
SINON
// pas trouvé le client, donc,
// pas d'adresse de facturation
SI EnModeTest() ALORS
Trace(" Pas de client trouvé pour cette facture")
Trace(" Impossible de déterminer l'adresse de facturation")
Trace(" Erreur possible")
FIN
FIN
SINON
// info utilisateur
SI EnModeTest() ALORS Trace (" On prend l'adresse du dossier")
// L'adresse est écrite dans le fichier dossier
F_Adresses.FactureAdresseDestinataire = Dossier.FactureAdresseDestinataire
F_Adresses.FactureAdresseRue = Dossier.FactureAdresseRue
F_Adresses.FactureAdresseCP = Dossier.FactureAdresseCP
F_Adresses.FactureAdresseVille = Dossier.FactureAdresseVille
// on ajoute avec un contrôle
SI PAS HAjoute(F_Adresses) ALORS
// gestion des erreurs
Info("erreru Modif adresse")
FIN
FIN
// on passe l'id de f_dresse dans Facture
Facture.IDF_Adresses = F_Adresses.IDF_Adresses
// on modifie facture
SI PAS HModifie(Facture) ALORS
// gestion des erreurs
Info("Erreur Modif Facture")
FIN
SINON
// pas de dossier pour cette facture
SI EnModeTest() ALORS
Trace(" Pas de dossier pour cette facture")
FIN
// fin de si htoruve dossier
FIN
// lecture enreg suivant de facture
HLitSuivant(Facture)
// fin du tant que htrouve(facture)
FIN
SINON
// meme pas une facture dans le fichier facture
// fin du si htrouve
Info("Pas de facture dans le fichier,","Il est vide!!!!!")
FIN |
Partager