|
|
|
@ -29,31 +29,46 @@ int rechTravaux(char *travauxName, Offre *tabTravaux)
|
|
|
|
|
void minTravaux(Offre *tabTravaux[])
|
|
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
|
ListeDevis l, minl;
|
|
|
|
|
for (i=0; i<TMAXTRAV; i++)
|
|
|
|
|
MaillonDevis *minDev, *md, *s;
|
|
|
|
|
for(i=0; i<TMAXTRAV; i++)
|
|
|
|
|
{
|
|
|
|
|
l=tabTravaux[i]->ldevis;
|
|
|
|
|
minl=l;
|
|
|
|
|
while(l)
|
|
|
|
|
md = tabTravaux[i]->ldevis;
|
|
|
|
|
minDev=md;
|
|
|
|
|
while(minDev->suiv != NULL)
|
|
|
|
|
{
|
|
|
|
|
if(l->dev.prix < minl->dev.prix)
|
|
|
|
|
md=md->suiv;
|
|
|
|
|
if ((md->dev).prix < (minDev->dev).prix)
|
|
|
|
|
{
|
|
|
|
|
l=delete(minl);
|
|
|
|
|
minl=l;
|
|
|
|
|
s=minDev;
|
|
|
|
|
minDev=md;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
l=delete(l);
|
|
|
|
|
l=l->suiv;
|
|
|
|
|
else if ((md->dev).prix > (minDev->dev).prix)
|
|
|
|
|
{
|
|
|
|
|
s=md;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if ((md->dev).capital < (minDev->dev).capital)
|
|
|
|
|
{
|
|
|
|
|
s=minDev;
|
|
|
|
|
minDev=md;
|
|
|
|
|
}
|
|
|
|
|
else // On met else et pas else if car on ne peut pas garder 2 égaux, il faut qd même en supprimer un
|
|
|
|
|
s=md;
|
|
|
|
|
}
|
|
|
|
|
delete(s);
|
|
|
|
|
}
|
|
|
|
|
displayOffre(tabTravaux[i]);
|
|
|
|
|
if (lenListeDevis(tabTravaux[i]->ldevis) > 1)
|
|
|
|
|
{
|
|
|
|
|
printf("\033[0;31mErreur: \033[0mPlus d'un devis sélectionné pour la tâche %s\n", tabTravaux[i]->travaux);
|
|
|
|
|
}
|
|
|
|
|
displayListeDevis(minDev);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*---------------tri------------------*/
|
|
|
|
|
|
|
|
|
|
//on la met dans struct.c ?
|
|
|
|
|
|
|
|
|
|
// Libère la mémoire d'une liste de devis
|
|
|
|
|
void freeListeDevis(ListeDevis *ldevis)
|
|
|
|
|
{
|
|
|
|
|