package model.article;
import controller.GestionArticle;

/**
 * Cette classe represente un lien de nomenclature d'un article
 * Un lien de nomenclature est compose d'un article composant et de sa quantite
 * @see Article
 * @author Magic Penguins
 */
public class Nomenclature implements java.io.Serializable{


	private static final long serialVersionUID = 6563291432759688424L;
	
	/**
	 * Article
	 */
	private Article article;
	/**
	 * Quantite de l'article
	 */
	private int quantite;

	/**
	 * Constructeur d'un lien de nomenclature avec designation renseignee
	 * @param article
	 * Article composant du lien de nomenclature
	 * @param quantite
	 * Quantite du composant
	 */
	public Nomenclature(Article article, int quantite) {
		this.article = article;
		this.quantite = quantite;
	}

	/**
	 * Constructeur sans designation renseignee, elle sera retrouve grace au reference correspondant
	 * @param reference
	 * Reference du composant
	 * @param quantite
	 * Quantite du composant
	 */
	public Nomenclature(String reference, int quantite) {
		this.article = GestionArticle.getArticle(reference);
		this.quantite = quantite;
	}

	public int getQuantite() {
		return quantite;
	}

	public Article getArticle() {
		return article;
	}

	public void setArticle(Article article) {
		this.article = article;
	}

	public void setQuantite(int quantite) {
		this.quantite = quantite;
	}

	/**
	 * Renvoie une chaine de caractere contenant les informations du lien de nomenclature
	 * @return Une chaine de caractere contenant les informations du lien de nomenclature
	 */
	public String afficherNomenclature() {
		String infoNomenclature = "";
		infoNomenclature += article.getDesignation()+" ("+article.getReference()+") x"+getQuantite()+"\n";
		return infoNomenclature;
	}
	
	/**
	 * toString d'un lien de nomenclature
	 */
	public String toString(){
		return afficherNomenclature();
	}
}
