Skip to content

Commit

Permalink
recherche ventes prix, quantite
Browse files Browse the repository at this point in the history
  • Loading branch information
harenome committed Apr 29, 2014
1 parent 019532e commit 40d086f
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 1 deletion.
48 changes: 48 additions & 0 deletions include/condition_vente.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,4 +154,52 @@ struct condition_vente_couleur : virtual condition_vente
}
};

/**
* \brief Tester si le nombre d'articles vendus correspond.
*/
struct condition_vente_quantite : virtual condition_vente
{
unsigned int _quantite; /**<- Couleur recherchée. */

/**
* \brief Constructeur.
* \param couleur Couleur recherchée.
*/
condition_vente_quantite (unsigned int quantite)
{
_quantite = quantite;
}

bool operator() (const vente & v) const
{
return v.quantite_articles_vendus () == _quantite;
}
};

/**
* \brief Tester si la vente est comprise dans une fourchette.
*/
struct condition_vente_prix_total : virtual condition_vente
{
double _minimum; /**<- Borne inférieure. */
double _maximum; /**<- Borne supérieure. */

/**
* \brief Constructeur.
* \param minimum Minimum.
* \param maximum Maximum.
*/
condition_vente_prix_total (double minimum, double maximum)
{
_minimum = _minimum;
_maximum = _maximum;
}

bool operator() (const vente & v) const
{
double prix_total = v.total ();
return _minimum <= prix_total && prix_total <= _maximum;
}
};

#endif /* __CONDITION_VENTE_HPP__ */
15 changes: 15 additions & 0 deletions include/magasin.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,21 @@ class magasin
*/
std::vector<vente> ventes_par_couleur (unsigned int couleur) const;

/**
* \brief Obtenir les ventes contenant un article qui correspond.
* \param quantite Quantité d'articles vendus.
* \return Ventes qui correspondent.
*/
std::vector<vente> ventes_par_quantite (unsigned int quantite) const;

/**
* \brief Obtenir les ventes dont le prix total correspond.
* \param minimum Minimum.
* \param maximum Maximum.
* \return Ventes qui correspondent.
*/
std::vector<vente> ventes_par_prix_total (double minimum, double maximum) const;

/**
* \brief Ajouter un article.
* \param a Article.
Expand Down
1 change: 0 additions & 1 deletion src/article_affichage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ article_affichage::~article_affichage (void)
{
}


////////////////////////////////////////////////////////////////////////////////
// Sélecteurs.
////////////////////////////////////////////////////////////////////////////////
Expand Down
12 changes: 12 additions & 0 deletions src/magasin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,18 @@ std::vector<vente> magasin::ventes_par_couleur (unsigned int couleur) const
return _ventes_par_condition (condition);
}

std::vector<vente> magasin::ventes_par_quantite (unsigned int quantite) const
{
condition_vente_quantite condition (quantite);
return _ventes_par_condition (condition);
}

std::vector<vente> magasin::ventes_par_prix_total (double minimum, double maximum) const
{
condition_vente_prix_total condition (minimum, maximum);
return _ventes_par_condition (condition);
}

////////////////////////////////////////////////////////////////////////////////
// Modificateurs.
////////////////////////////////////////////////////////////////////////////////
Expand Down

0 comments on commit 40d086f

Please sign in to comment.