|
|
|
@ -102,6 +102,22 @@ int lenListeDevis(ListeDevis l)
|
|
|
|
|
return len;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int lenMaxNomEntreprise(ListeDevis ldevis)
|
|
|
|
|
{
|
|
|
|
|
int maxLen;
|
|
|
|
|
int len;
|
|
|
|
|
|
|
|
|
|
maxLen = 0;
|
|
|
|
|
while (ldevis)
|
|
|
|
|
{
|
|
|
|
|
len = strlen(ldevis->dev.nomE);
|
|
|
|
|
if (len > maxLen)
|
|
|
|
|
maxLen = len;
|
|
|
|
|
ldevis = ldevis->suiv;
|
|
|
|
|
}
|
|
|
|
|
return maxLen;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Calcule le nombre de precedences pour un travail donne
|
|
|
|
|
int nombrePred(char travaux[], Precedence prec[], int tlog)
|
|
|
|
|
{
|
|
|
|
@ -151,6 +167,49 @@ void displayListeDevis(ListeDevis l)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Fonction pour afficher le devis d'une entreprise donnée pour un type de travaux donné
|
|
|
|
|
void afficherDevisEntreprise(Offre *tabTravaux)
|
|
|
|
|
{
|
|
|
|
|
int indiceTravaux;
|
|
|
|
|
int maxlen;
|
|
|
|
|
char typeTravaux[30];
|
|
|
|
|
char *nomEntreprise;
|
|
|
|
|
|
|
|
|
|
printf("Saisir le type de travaux : ");
|
|
|
|
|
fgets(typeTravaux, sizeof(typeTravaux), stdin);
|
|
|
|
|
typeTravaux[strlen(typeTravaux) - 1] = '\0';
|
|
|
|
|
|
|
|
|
|
printf("%s\n", typeTravaux);
|
|
|
|
|
|
|
|
|
|
indiceTravaux = rechTravaux(typeTravaux, tabTravaux);
|
|
|
|
|
|
|
|
|
|
if (indiceTravaux == -1)
|
|
|
|
|
{
|
|
|
|
|
printf("Type de travaux non trouvé.\n");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
maxlen = lenMaxNomEntreprise(tabTravaux[indiceTravaux].ldevis);
|
|
|
|
|
nomEntreprise = malloc(maxlen * sizeof(char) + 1);
|
|
|
|
|
printf("Saisir le nom de l'entreprise : ");
|
|
|
|
|
fgets(nomEntreprise, maxlen + 1, stdin);
|
|
|
|
|
|
|
|
|
|
ListeDevis listeDevis = tabTravaux[indiceTravaux].ldevis;
|
|
|
|
|
while (listeDevis)
|
|
|
|
|
{
|
|
|
|
|
if (strcmp(listeDevis->dev.nomE, nomEntreprise) == 0)
|
|
|
|
|
{
|
|
|
|
|
printf("Devis pour %s de l'entreprise %s :\n", typeTravaux, nomEntreprise);
|
|
|
|
|
displayDevis(listeDevis->dev);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
listeDevis = listeDevis->suiv;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printf("Devis non trouvé pour l'entreprise %s dans le type de travaux %s.\n", nomEntreprise, typeTravaux);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Partie 4 (à trier)
|
|
|
|
|
|
|
|
|
|