<?php
namespace App\Entity\GestionComerciale;
use App\Entity\Clients\Client;
use App\Entity\Export\Export;
use App\Entity\FO\CompteBancaire;
use App\Entity\Fournisseurs\Fournisseur;
use App\Entity\Utilisateur\Utilisateur;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\ExecutionContextInterface;
use App\Annotations\SecuredEntity;
/**
* MouvementCaisse
*
* @ORM\Table("commerciale__mouvement_caisse")
* @ORM\Entity(repositoryClass="App\Repository\GestionComerciale\MouvementCaisseRepository")
* @Gedmo\SoftDeleteable(fieldName="dateSuppression",timeAware=false)
* @SecuredEntity(name="Mouvement de Caisse", group="COMPTABILITE")
*/
class MouvementCaisse
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(name="libelle", type="string", length=255)
*/
private $libelle;
/**
* @ORM\Column(name="montant", type="float")
*/
private $montant;
/**
* @ORM\Column(name="EntreeSortie", type="boolean")
*/
private $entreeSortie;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Utilisateur\Utilisateur", inversedBy="mouvementsCaisse")
* @ORM\JoinColumn(nullable=true)
*/
private $utilisateur;
/**
* @ORM\Column(name="date", type="datetime", nullable=true)
*/
private $date;
/**
* @ORM\Column(name="dateSuppression", type="datetime", nullable=true)
*/
private $dateSuppression;
/**
* @ORM\Column(name="dateMaj", type="datetime", nullable=true)
* @Gedmo\Timestampable(on="update")
*/
private $dateMaj;
/**
* @ORM\Column(name="transfert_compta", type="boolean")
*/
private $transfertCompta;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\GestionComerciale\TypeMouvementCaisse", inversedBy="mouvementsCaisse")
*/
private $typeMouvementCaisse;
/**
* @ORM\Column(name="montant_caisse", type="float")
*/
private $montantCaisse;
/**
* @ORM\OneToOne(targetEntity="App\Entity\GestionComerciale\Acompte", inversedBy="mouvementCaisse")
* @ORM\JoinColumn(nullable=true)
*/
private $reglement;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\FO\CompteBancaire", inversedBy="mouvementsCaisse")
* @ORM\JoinColumn(nullable=true)
*/
private $compteBancaire;
/**
* @ORM\Column(name="date_transfert_compta", type="datetime", nullable=true)
*/
private $dateTransfertCompta;
/**
* @ORM\Column(name="compta", type="string", length=255, nullable=true)
*/
private $compta;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Fournisseurs\Fournisseur", inversedBy="mouvementsCaisse")
* @ORM\JoinColumn(nullable=true)
* @Assert\Valid
*/
private $fournisseur;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Clients\Client", inversedBy="mouvementsCaisse")
* @ORM\JoinColumn(nullable=true)
*/
private $client;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Export\Export")
* @ORM\JoinColumn(nullable=true)
*/
private $exportCompta;
public function __construct()
{
$this->date = new Datetime();
$this->entreeSortie = true;
$this->transfertCompta = false;
$this->montantCaisse = 0;
$this->montant = 0;
}
public function getId(): int
{
return $this->id;
}
public function setLibelle(string $libelle): MouvementCaisse
{
$this->libelle = $libelle;
return $this;
}
public function getLibelle(): string
{
return $this->libelle;
}
public function setMontant(float $montant): MouvementCaisse
{
$this->montant = $montant;
return $this;
}
public function getMontant(): float
{
return $this->montant;
}
public function setEntreeSortie(bool $entreeSortie): MouvementCaisse
{
$this->entreeSortie = $entreeSortie;
return $this;
}
public function getEntreeSortie(): bool
{
return $this->entreeSortie;
}
public function setDate(?DateTime $date): MouvementCaisse
{
$this->date = $date;
return $this;
}
public function getDate(): ?DateTime
{
return $this->date;
}
public function setDateSuppression(?DateTime $dateSuppression): MouvementCaisse
{
$this->dateSuppression = $dateSuppression;
return $this;
}
public function getDateSuppression(): ?DateTime
{
return $this->dateSuppression;
}
public function setDateMaj(?DateTime $dateMaj): MouvementCaisse
{
$this->dateMaj = $dateMaj;
return $this;
}
public function getDateMaj(): ?DateTime
{
return $this->dateMaj;
}
public function setTransfertCompta(bool $transfertCompta): MouvementCaisse
{
$this->transfertCompta = $transfertCompta;
return $this;
}
public function getTransfertCompta(): bool
{
return $this->transfertCompta;
}
public function setUtilisateur(?Utilisateur $utilisateur): MouvementCaisse
{
$this->utilisateur = $utilisateur;
return $this;
}
public function getUtilisateur(): ?Utilisateur
{
return $this->utilisateur;
}
public function setTypeMouvementCaisse(?TypeMouvementCaisse $typeMouvementCaisse): MouvementCaisse
{
$this->typeMouvementCaisse = $typeMouvementCaisse;
return $this;
}
public function getTypeMouvementCaisse(): ?TypeMouvementCaisse
{
return $this->typeMouvementCaisse;
}
public function setMontantCaisse(float $montantCaisse): MouvementCaisse
{
$this->montantCaisse = $montantCaisse;
return $this;
}
public function getMontantCaisse(): float
{
return $this->montantCaisse;
}
public function setReglement(?Acompte $reglement): MouvementCaisse
{
$this->reglement = $reglement;
return $this;
}
public function getReglement(): ?Acompte
{
return $this->reglement;
}
public function setCompteBancaire(?CompteBancaire $compteBancaire): MouvementCaisse
{
$this->compteBancaire = $compteBancaire;
return $this;
}
public function getCompteBancaire(): ?CompteBancaire
{
return $this->compteBancaire;
}
public function setDateTransfertCompta(?DateTime $dateTransfertCompta): MouvementCaisse
{
$this->dateTransfertCompta = $dateTransfertCompta;
return $this;
}
public function getDateTransfertCompta(): ?DateTime
{
return $this->dateTransfertCompta;
}
public function setCompta(?string $compta): MouvementCaisse
{
$this->compta = $compta;
return $this;
}
public function getCompta(): ?string
{
return $this->compta;
}
public function setFournisseur(?Fournisseur $fournisseur): MouvementCaisse
{
$this->fournisseur = $fournisseur;
return $this;
}
public function getFournisseur(): ?Fournisseur
{
return $this->fournisseur;
}
public function setClient(?Client $client): MouvementCaisse
{
$this->client = $client;
return $this;
}
public function getClient(): ?Client
{
return $this->client;
}
public function setExportCompta(?Export $exportCompta): MouvementCaisse
{
$this->exportCompta = $exportCompta;
return $this;
}
public function getExportCompta(): ?Export
{
return $this->exportCompta;
}
}