minimum des devis

master
Louis GERMAIN 1 year ago
parent fc8eff0bdd
commit a36da60c1b

@ -89,4 +89,4 @@ RéussiteFinale
18, Rue de la Réussite 63300 Thiers
120000
25
15000
15000

@ -7,4 +7,3 @@ Plomberie Sols
Murs Peinture
Peinture Finitions
Sols Finitions

@ -108,8 +108,6 @@ Offre *loadOffre(void)
return (tabTravaux);
}
//---------------------------------------------------------------------------
/*-----------------precedences----------------------*/
// Chargement des tâches depuis un fichier pour chaque offre

@ -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)
{

Loading…
Cancel
Save