public void faireOffre(Offre acheteur) throws InvalidArgumentException {

		if (null == acheteur)
			throw new InvalidArgumentException("L'acheteur ne peut être null.");

		if (enchereFinie())
			throw new InvalidArgumentException("L'enchère est deja terminée.");

		if (etatEnchere != EtatEnchere.PUBLIEE)
			throw new InvalidArgumentException(
					"Enchère non disponible (non publiée).");

		if (vendeur.equals(acheteur.getPersonne()))
			throw new InvalidArgumentException(
					"Le vendeur ne peut pas enchérir sur son enchère.");

		if (acheteur.getPrix() < prixMinimum)
			throw new InvalidArgumentException(
					"Prix inférieur au minimum demandé.");

		// première offre on l'enregistre
		if (null == meilleurOffre) {
			meilleurOffre = acheteur;
			acheteurs.add(acheteur.getPersonne());
		}
		// une meilleur offre est proposée
		else if (meilleurOffre.getPrix() < acheteur.getPrix()) {
			meilleurOffre = acheteur;
			acheteurs.add(acheteur.getPersonne());
			alerteTous("L'utilisateur "+acheteur.getPersonne().getLogin()+" vient de faire une offre sur l'enchère "+this.objet.getNom()+" nouveau prix : "+acheteur.getPrix());
			if(acheteur.getPrix()>prixDeReserve || acheteur.getPrix()>prixMinimum){
				alerteTous("Le prix minimal de l'enchère "+objet.getNom() + " vient d'être atteint.");
				alerteUser("Le prix minimal sur votre enchère "+objet.getNom() + " vient d'être atteint.", vendeur);
			}
			
		} else
			throw new InvalidArgumentException(
					"Prix inférieur à la meilleur proposition.");

		
		return;
	}