diff --git a/src/chargement.c b/src/chargement.c index 15a0e7d..749fe48 100644 --- a/src/chargement.c +++ b/src/chargement.c @@ -63,4 +63,50 @@ void lireDevis(FILE *flot, Devis *devis, char *typeTravaux) fscanf(flot, "%d", &devis->capital); fscanf(flot, "%d", &devis->duree); fscanf(flot, "%d", &devis->cout); -} \ No newline at end of file +} + +/** + * @brief Sauvegarde tout les devis d'une Offre + * @param offre L'offre à sauvegarder + * @param tLog Le nombre de devis à sauvegarder + * @param fichier Le fichier dans lequel sauvegarder + * @return void + * @see ecrireDevis() +*/ +void sauvegarde(Offre offre, int tLog, char fichier[]) +{ + FILE *flot; + flot = fopen(fichier, "w"); + if(flot==NULL) + { + printf("[ERREUR] - Problème dans l'ouverture de %s en écriture !\n"); + return; + } + + fprintf(flot, "%d\n", tLog); + for(int i = 0; i < tLog; i++) + { + ecrireDevis(flot, offre.travaux, offre.ldevis->devis); + offre.ldevis = offre.ldevis->suiv; + } + + fclose(flot); +} + +/** + * @brief Ecrit un seul devis dans un fichier + * @param flot Le fichier dans lequel écrire + * @param typeTravaux Le type de travaux + * @param devis Le devis à écrire + * @return void +*/ +void ecrireDevis(FILE *flot, char typeTravaux[], Devis devis) +{ + fprintf(flot, "%s\n", typeTravaux); + fprintf(flot, "%s\n", devis.entreprise); + fprintf(flot, "%d, %s - %d - %s\n", devis.adresse.numero, devis.adresse.rue, devis.adresse.codePostal, devis.adresse.ville); + fprintf(flot, "%d\n", devis.capital); + fprintf(flot, "%d\n", devis.duree); + fprintf(flot, "%d\n", devis.cout); +} +