<?php

namespace HVCSiteBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Fichefrais
 *
 * @ORM\Table(name="fichefrais", indexes={@ORM\Index(name="IDX_92D5AB08860506C2", columns={"idetat"}), @ORM\Index(name="IDX_92D5AB08F2C56620", columns={"compte_id"})})
 * @ORM\Entity
 * @ORM\HasLifecycleCallbacks
 */
class Fichefrais
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var integer
     *
     * @ORM\Column(name="mois", type="integer", nullable=false)
     */
    private $mois;

    /**
     * @var integer
     *
     * @ORM\Column(name="annee", type="integer", nullable=false)
     */
    private $annee;

    /**
     * @var integer
     *
     * @ORM\Column(name="nbJustificatifs", type="integer", nullable=false)
     */
    private $nbjustificatifs;

    /**
     * @var integer
     *
     * @ORM\Column(name="montantValide", type="integer", nullable=false)
     */
    private $montantvalide;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="dateMotidification", type="date", nullable=false)
     */
    private $datemotidification;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="dateCreation", type="date", nullable=false)
     */
    private $datecreation;

    /**
     * @var \Etat
     *
     * @ORM\ManyToOne(targetEntity="Etat")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="idetat", referencedColumnName="id")
     * })
     */
    private $idetat;

    /**
     * @var \Comptes
     *
     * @ORM\ManyToOne(targetEntity="Comptes")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="compte_id", referencedColumnName="id")
     * })
     */
    private $compte;

    /**
     * @ORM\OneToMany(targetEntity="HVCSiteBundle\Entity\Lignefraisforfait", mappedBy="idfichefrais", cascade={"remove", "persist"})
     */
    private $lignefraisforfait;

    /**
     * @ORM\OneToMany(targetEntity="HVCSiteBundle\Entity\Lignefraishorsfrais", mappedBy="idfichefrais", cascade={"remove", "persist"})
     */
    private $lignefraishorsfrais;

    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set mois
     *
     * @param integer $mois
     *
     * @return Fichefrais
     */
    public function setMois($mois)
    {
        $this->mois = $mois;

        return $this;
    }

    /**
     * Get mois
     *
     * @return integer
     */
    public function getMois()
    {
        return $this->mois;
    }

    /**
     * Set annee
     *
     * @param integer $annee
     *
     * @return Fichefrais
     */
    public function setAnnee($annee)
    {
        $this->annee = $annee;

        return $this;
    }

    /**
     * Get annee
     *
     * @return integer
     */
    public function getAnnee()
    {
        return $this->annee;
    }

    /**
     * Set nbjustificatifs
     *
     * @param integer $nbjustificatifs
     *
     * @return Fichefrais
     */
    public function setNbjustificatifs($nbjustificatifs)
    {
        $this->nbjustificatifs = $nbjustificatifs;

        return $this;
    }

    /**
     * Get nbjustificatifs
     *
     * @return integer
     */
    public function getNbjustificatifs()
    {
        return $this->nbjustificatifs;
    }

    /**
     * Set montantvalide
     *
     * @param integer $montantvalide
     *
     * @return Fichefrais
     */
    public function setMontantvalide($montantvalide)
    {
        $this->montantvalide = $montantvalide;

        return $this;
    }

    /**
     * Get montantvalide
     *
     * @return integer
     */
    public function getMontantvalide()
    {
        return $this->montantvalide;
    }

    /**
     * Set datemotidification
     *
     *  @ORM\PreFlush()
     *
     * @return Fichefrais
     */
    public function setDatemotidification()
    {
        $this->datemotidification =  new \DateTime();

        return $this;
    }

    /**
     * Get datemotidification
     *
     * @return \DateTime
     */
    public function getDatemotidification()
    {
        return $this->datemotidification;
    }

    /**
     * Set datecreation
     *
     *  @ORM\PrePersist
     *
     * @return Fichefrais
     */
    public function setDatecreation()
    {
        $this->datecreation = new \DateTime();

        return $this;
    }

    /**
     * Get datecreation
     *
     * @return \DateTime
     */
    public function getDatecreation()
    {
        return $this->datecreation;
    }

    /**
     * Set idetat
     *
     * @param \HVCSiteBundle\Entity\Etat $idetat
     *z
     * @return Fichefrais
     */
    public function setIdetat(\HVCSiteBundle\Entity\Etat $idetat = null)
    {
        $this->idetat = $idetat;

        return $this;
    }

    /**
     * Get idetat
     *
     * @return \HVCSiteBundle\Entity\Etat
     */
    public function getIdetat()
    {
        return $this->idetat;
    }

    /**
     * Set compte
     *
     * @param \HVCSiteBundle\Entity\Comptes $compte
     *
     * @return Fichefrais
     */
    public function setCompte(\HVCSiteBundle\Entity\Comptes $compte = null)
    {
        $this->compte = $compte;

        return $this;
    }

    /**
     * Get compte
     *
     * @return \HVCSiteBundle\Entity\Comptes
     */
    public function getCompte()
    {
        return $this->compte;
    }
    /**
     * Constructor
     */
    public function __construct()
    {
        $this->lignefraisforfait = new \Doctrine\Common\Collections\ArrayCollection();
    }

    /**
     * Add lignefraisforfait
     *
     * @param \HVCSiteBundle\Entity\Lignefraisforfait $lignefraisforfait
     *
     * @return Fichefrais
     */
    public function addLignefraisforfait(\HVCSiteBundle\Entity\Lignefraisforfait $lignefraisforfait)
    {
        $this->lignefraisforfait[] = $lignefraisforfait;

        return $this;
    }

    /**
     * Remove lignefraisforfait
     *
     * @param \HVCSiteBundle\Entity\Lignefraisforfait $lignefraisforfait
     */
    public function removeLignefraisforfait(\HVCSiteBundle\Entity\Lignefraisforfait $lignefraisforfait)
    {
        $this->lignefraisforfait->removeElement($lignefraisforfait);
    }

    /**
     * Get lignefraisforfait
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getLignefraisforfait()
    {
        return $this->lignefraisforfait;
    }

    /**
     * Add lignefraishorsfrai
     *
     * @param \HVCSiteBundle\Entity\Lignefraishorsfrais $lignefraishorsfrai
     *
     * @return Fichefrais
     */
    public function addLignefraishorsfrais(\HVCSiteBundle\Entity\Lignefraishorsfrais $lignefraishorsfrai)
    {
        $this->lignefraishorsfrais[] = $lignefraishorsfrai;

        return $this;
    }

    /**
     * Remove lignefraishorsfrai
     *
     * @param \HVCSiteBundle\Entity\Lignefraishorsfrais $lignefraishorsfrai
     */
    public function removeLignefraishorsfrais(\HVCSiteBundle\Entity\Lignefraishorsfrais $lignefraishorsfrai)
    {
        $this->lignefraishorsfrais->removeElement($lignefraishorsfrai);
    }

    /**
     * Get lignefraishorsfrais
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getLignefraishorsfrais()
    {
        return $this->lignefraishorsfrais;
    }
}
