<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
/**
* @ORM\Entity(repositoryClass="App\Repository\TransfertEnvoieRepository")
*/
class TransfertEnvoie
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Agent", inversedBy="transfertEnvoies")
*/
private $agent;
/**
* @ORM\Column(type="string", length=255)
*/
private $expediteur;
/**
* @ORM\Column(type="string", length=255)
*/
private $destinateur;
/**
* @ORM\Column(type="string", length=5)
*/
private $ville;
/**
* @ORM\Column(type="string", length=255)
*/
private $code;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $phraseSecret;
/**
* @ORM\Column(type="float")
*/
private $pourcentage;
/**
* @ORM\Column(type="decimal", scale=3, precision=11)
*/
private $Montant;
/**
* @ORM\Column(type="date")
*/
private $dateOperation;
/**
* @ORM\Column(type="boolean")
*/
private $etat;
private $montantPourcentage;
private $montantPourcentageBanque;
private $montantPourcentageNous;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $numeroTel;
/**
* @ORM\Column(type="boolean")
*/
private $isDelivered;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $deliveredAt;
/**
* @ORM\Column(type="integer")
*/
private $periodDelivered;
/**
* @ORM\ManyToOne(targetEntity=Utilisateur::class, inversedBy="transfertEnvoies")
*/
private $userValidated;
private $alert;
/**
* @ORM\Column(type="string", length=17, nullable=true)
*/
private $contactExpediteur;
public function __construct()
{
$this->dateOperation = new \DateTime();
$this->deliveredAt = null;
$this->etat = false;
$this->isDelivered = false;
$this->userValidated = null;
}
public function getId(): ?int
{
return $this->id;
}
public function getAgent(): ?agent
{
return $this->agent;
}
public function setAgent(?agent $agent): self
{
$this->agent = $agent;
return $this;
}
public function getExpediteur(): ?string
{
return $this->expediteur;
}
public function setExpediteur(string $expediteur): self
{
$this->expediteur = $expediteur;
return $this;
}
public function getDestinateur(): ?string
{
return $this->destinateur;
}
public function setDestinateur(string $destinateur): self
{
$this->destinateur = $destinateur;
return $this;
}
public function getVille(): ?string
{
return $this->ville;
}
public function setVille(string $ville): self
{
$this->ville = $ville;
return $this;
}
public function getCode(): ?string
{
return $this->code;
}
public function setCode(string $code): self
{
$this->code = $code;
return $this;
}
public function getPhraseSecret(): ?string
{
return $this->phraseSecret;
}
public function setPhraseSecret(?string $phraseSecret): self
{
$this->phraseSecret = $phraseSecret;
return $this;
}
public function getPourcentage(): ?float
{
return $this->pourcentage;
}
public function setPourcentage(float $pourcentage): self
{
$this->pourcentage = $pourcentage;
return $this;
}
public function getMontant(): ?float
{
return $this->Montant;
}
public function setMontant(float $Montant): self
{
$this->Montant = $Montant;
return $this;
}
public function getDateOperation(): ?\DateTimeInterface
{
return $this->dateOperation;
}
public function setDateOperation(\DateTimeInterface $dateOperation): self
{
$this->dateOperation = $dateOperation;
return $this;
}
public function getEtat(): ?bool
{
return $this->etat;
}
public function setEtat(bool $etat): self
{
$this->etat = $etat;
return $this;
}
/**
* @return mixed
*/
public function getMontantPourcentage()
{
$this->montantPourcentage = ($this->getMontant() / 100) * $this->getPourcentage();
return $this->montantPourcentage;
}
/**
* @return mixed
*/
public function getMontantPourcentageBanque()
{
$this->montantPourcentageBanque = ($this->getMontant() / 100) * 1.5;
return $this->montantPourcentageBanque;
}
/**
* @return mixed
*/
public function getMontantPourcentageNous()
{
$pourcBq = $this->getPourcentage() - 1.5;
$this->montantPourcentageNous = ($this->getMontant() / 100) * $pourcBq;
return $this->montantPourcentageNous;
}
public function getNumeroTel(): ?string
{
return $this->numeroTel;
}
public function setNumeroTel(?string $numeroTel): self
{
$this->numeroTel = $numeroTel;
return $this;
}
public function isIsDelivered(): ?bool
{
return $this->isDelivered;
}
public function setIsDelivered(bool $isDelivered): self
{
$this->isDelivered = $isDelivered;
return $this;
}
public function getDeliveredAt(): ?\DateTimeInterface
{
return $this->deliveredAt;
}
public function setDeliveredAt(?\DateTimeInterface $deliveredAt): self
{
$this->deliveredAt = $deliveredAt;
return $this;
}
public function getPeriodDelivered(): ?int
{
return $this->periodDelivered;
}
public function setPeriodDelivered(int $periodDelivered): self
{
$this->periodDelivered = $periodDelivered;
return $this;
}
public function getUserValidated(): ?Utilisateur
{
return $this->userValidated;
}
public function setUserValidated(?Utilisateur $userValidated): self
{
$this->userValidated = $userValidated;
return $this;
}
public function getAlert()
{
$create = $this->getDateOperation();
$later = new \DateTime(date('Y-m-d'));
$this->alert = $later->diff($create)->format("%a");
return $this->alert;
}
public function getContactExpediteur(): ?string
{
return $this->contactExpediteur;
}
public function setContactExpediteur(?string $contactExpediteur): self
{
$this->contactExpediteur = $contactExpediteur;
return $this;
}
}