<?php
declare(strict_types=1);
namespace App\Infrastructure\Doctrine\Entity;
use App\Domain\Common\Entity\Cart;
use App\Domain\Common\Entity\IzOrderClient;
use App\Domain\Common\Entity\IzOrderClientContact;
use App\Domain\Common\Entity\IzOrderPriceParameter;
use App\Domain\Common\Entity\IzOrderRepresentative;
use App\Domain\Common\Entity\UserAgent;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Infrastructure\Doctrine\Repository\DoctrineIzOrderClientRepository")
*/
class DoctrineIzOrderClient extends DoctrineBaseUser implements IzOrderClient
{
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $raisonSociale = null;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $raisonSociale2 = null;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $adresse1 = null;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $adresse2 = null;
/**
* @ORM\Column(type="string", length=16, nullable=true)
*/
private ?string $codePostal = null;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $ville = null;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $pays = null;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $telephone1 = null;
/**
* @ORM\ManyToOne(targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineIzOrderPriceParameter")
* @ORM\JoinColumn(name="code_tarif", referencedColumnName="code_tpm")
*/
private ?IzOrderPriceParameter $codeTarif = null;
/**
* @ORM\ManyToOne(targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineIzOrderRepresentative")
* @ORM\JoinColumn(name="code_representant", referencedColumnName="code_representant")
*/
private ?IzOrderRepresentative $codeRepresentant = null;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $representantAdv = null;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $franco = null;
/**
* @ORM\Column(type="float", nullable=true)
*/
private ?float $tauxDeRemise;
/**
* @ORM\Column(type="float", nullable=true)
*/
private ?float $tauxDeRemiseLigne;
/**
* @ORM\ManyToOne(targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineIzOrderClientContact", inversedBy="clients")
* @ORM\JoinColumn(name="code_contact", referencedColumnName="code_contact")
*/
private ?IzOrderClientContact $contact = null;
/**
* @ORM\Column(type="string", length=16, nullable=true)
*/
private ?string $codeFiliere = null;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $champLibre1 = null;
/**
* @ORM\Column(type="string", length=16, nullable=true)
*/
private ?string $codeGroupement = null;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $minimumDeCommande = null;
/**
* @ORM\OneToOne(
* targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineCart",
* mappedBy="client",
* cascade={"persist", "remove"},
* orphanRemoval=true,
* )
*/
private ?Cart $cart = null;
/**
* @ORM\ManyToOne(targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineUserAgent", inversedBy="clients", fetch="EAGER")
* @ORM\JoinColumn(referencedColumnName="code_client", onDelete="SET NULL")
*/
private ?UserAgent $agent = null;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $remisePiedDePage = null;
/**
* @ORM\Column(type="string", length=191, nullable=true)
*/
private ?string $canal = null;
public function __toString(): string
{
return $this->getCodeClient().' - '.$this->getRaisonSociale();
}
public function getRaisonSociale(): ?string
{
return $this->raisonSociale;
}
public function setRaisonSociale(?string $raisonSociale): void
{
$this->raisonSociale = $raisonSociale;
}
public function getRaisonSociale2(): ?string
{
return $this->raisonSociale2;
}
public function setRaisonSociale2(?string $raisonSociale2): void
{
$this->raisonSociale2 = $raisonSociale2;
}
public function getAdresse1(): ?string
{
return $this->adresse1;
}
public function setAdresse1(?string $adresse1): void
{
$this->adresse1 = $adresse1;
}
public function getAdresse2(): ?string
{
return $this->adresse2;
}
public function setAdresse2(?string $adresse2): void
{
$this->adresse2 = $adresse2;
}
public function getCodePostal(): ?string
{
return $this->codePostal;
}
public function setCodePostal(?string $codePostal): void
{
$this->codePostal = $codePostal;
}
public function getVille(): ?string
{
return $this->ville;
}
public function setVille(?string $ville): void
{
$this->ville = $ville;
}
public function getPays(): ?string
{
return $this->pays;
}
public function setPays(?string $pays): void
{
$this->pays = $pays;
}
public function getTelephone1(): ?string
{
return $this->telephone1;
}
public function setTelephone1(?string $telephone1): void
{
$this->telephone1 = $telephone1;
}
public function getCodeTarif(): ?IzOrderPriceParameter
{
return $this->codeTarif;
}
public function setCodeTarif(?IzOrderPriceParameter $codeTarif): void
{
$this->codeTarif = $codeTarif;
}
public function getCodeRepresentant(): ?IzOrderRepresentative
{
return $this->codeRepresentant;
}
public function setCodeRepresentant(?IzOrderRepresentative $codeRepresentant): void
{
$this->codeRepresentant = $codeRepresentant;
}
public function getRepresentantAdv(): ?string
{
return $this->representantAdv;
}
public function setRepresentantAdv(?string $representantAdv): void
{
$this->representantAdv = $representantAdv;
}
public function getFranco(): ?int
{
return $this->franco;
}
public function setFranco(?int $franco): void
{
$this->franco = $franco;
}
public function getTauxDeRemise(): ?float
{
return $this->tauxDeRemise;
}
public function setTauxDeRemise($tauxDeRemise): void
{
if (null !== $tauxDeRemise) {
$tauxDeRemise = (float) $tauxDeRemise;
}
if ($tauxDeRemise <= 0) {
$tauxDeRemise = null;
}
$this->tauxDeRemise = $tauxDeRemise;
}
public function getTauxDeRemiseLigne(): ?float
{
return $this->tauxDeRemiseLigne;
}
public function setTauxDeRemiseLigne($tauxDeRemiseLigne): void
{
if (null !== $tauxDeRemiseLigne) {
$tauxDeRemiseLigne = (float) $tauxDeRemiseLigne;
}
if ($tauxDeRemiseLigne <= 0) {
$tauxDeRemiseLigne = null;
}
$this->tauxDeRemiseLigne = $tauxDeRemiseLigne;
}
public function getContact(): ?IzOrderClientContact
{
return $this->contact;
}
public function setContact(?IzOrderClientContact $contact): void
{
$this->contact = $contact;
}
public function getCodeFiliere(): ?string
{
return $this->codeFiliere;
}
public function setCodeFiliere(?string $codeFiliere): void
{
$this->codeFiliere = $codeFiliere;
}
public function getChampLibre1(): ?string
{
return $this->champLibre1;
}
public function setChampLibre1(?string $champLibre1): void
{
$this->champLibre1 = $champLibre1;
}
public function getCodeGroupement(): ?string
{
return $this->codeGroupement;
}
public function setCodeGroupement(?string $codeGroupement): void
{
$this->codeGroupement = $codeGroupement;
}
public function getMinimumDeCommande(): ?int
{
return $this->minimumDeCommande;
}
public function setMinimumDeCommande(?int $minimumDeCommande): void
{
$this->minimumDeCommande = $minimumDeCommande;
}
public function getCart(): Cart
{
if (null === $this->cart) {
$this->cart = new DoctrineCart();
$this->cart->setClient($this);
}
return $this->cart;
}
public function setCart(Cart $cart): void
{
// set the owning side of the relation if necessary
if ($cart->getClient() !== $this) {
$cart->setClient($this);
}
$this->cart = $cart;
}
public function getAgent(): ?UserAgent
{
return $this->agent;
}
public function setAgent(?UserAgent $agent): void
{
$this->agent = $agent;
}
public function getRemisePiedDePage(): ?int
{
return $this->remisePiedDePage;
}
public function setRemisePiedDePage(?int $remisePiedDePage): void
{
$this->remisePiedDePage = $remisePiedDePage;
}
public function getCanal(): ?string
{
return $this->canal;
}
public function setCanal(?string $canal): void
{
$this->canal = $canal;
}
public function getRoles(): array
{
return ['ROLE_USER'];
}
}