<?php
declare(strict_types=1);
namespace App\Infrastructure\Doctrine\Entity;
use App\Domain\Common\Entity\IzOrderOrder;
use App\Domain\Common\Entity\IzOrderOrderLine;
use App\Domain\Common\Entity\IzOrderProduct;
use App\Infrastructure\Doctrine\Entity\Traits\IdableTrait;
use App\Infrastructure\Formatter\ProductFormatter;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Infrastructure\Doctrine\Repository\DoctrineIzOrderOrderLineRepository")
*/
class DoctrineIzOrderOrderLine implements IzOrderOrderLine
{
use IdableTrait;
/**
* @ORM\Column(type="string", length=191)
*/
private string $codeArticle = '';
/**
* @ORM\Column(type="string", length=191)
*/
private string $codeBarre = '';
/**
* @ORM\Column(type="string", length=3)
*/
private string $codeTva = '';
/**
* @ORM\Column(type="float")
*/
private float $prixTarif = 0.0;
/**
* @ORM\Column(type="float")
*/
private float $prixFranc = 0.0;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $colisage = null;
/**
* @ORM\Column(type="integer")
*/
private int $quantite = 0;
/**
* @ORM\Column(type="string", length=3)
*/
private string $divisionProduit = '';
/**
* @ORM\Column(type="string", length=3)
*/
private string $codeTarif = '';
/**
* @ORM\Column(type="boolean")
*/
private bool $estSolde = false;
/**
* @ORM\Column(type="string", length=191)
*/
private string $nomProduit;
/**
* @ORM\Column(type="string", length=191)
*/
private string $couleurProduit;
/**
* @ORM\Column(type="string", length=191)
*/
private string $dimensionsProduit;
/**
* @ORM\ManyToOne(targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineIzOrderProduct")
* @ORM\JoinColumn(name="code_article1", referencedColumnName="code_article1", onDelete="SET NULL")
*/
private ?IzOrderProduct $produit = null;
/**
* @ORM\ManyToOne(targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineIzOrderOrder", inversedBy="lines")
* @ORM\JoinColumn(name="numero_de_commande", referencedColumnName="numero_de_commande")
*/
private ?IzOrderOrder $order = null;
public function getCodeArticle(): string
{
return $this->codeArticle;
}
public function setCodeArticle(string $codeArticle): void
{
$this->codeArticle = $codeArticle;
}
public function getCodeBarre(): string
{
return $this->codeBarre;
}
public function setCodeBarre(string $codeBarre): void
{
$this->codeBarre = $codeBarre;
}
public function getCodeTva(): string
{
return $this->codeTva;
}
public function setCodeTva(string $codeTva): void
{
$this->codeTva = $codeTva;
}
public function getPrixTarif(): float
{
return $this->prixTarif;
}
public function setPrixTarif(float $prixTarif): void
{
$this->prixTarif = $prixTarif;
}
public function getPrixFranc(): float
{
return $this->prixFranc;
}
public function setPrixFranc(float $prixFranc): void
{
$this->prixFranc = $prixFranc;
}
public function getColisage(): ?int
{
return $this->colisage;
}
public function setColisage(?int $colisage): void
{
$this->colisage = $colisage;
}
public function getQuantite(): int
{
return $this->quantite;
}
public function setQuantite(int $quantite): void
{
$this->quantite = $quantite;
}
public function getDivisionProduit(): string
{
return $this->divisionProduit;
}
public function setDivisionProduit(string $divisionProduit): void
{
$this->divisionProduit = $divisionProduit;
}
public function getCodeTarif(): string
{
return $this->codeTarif;
}
public function setCodeTarif(string $codeTarif): void
{
$this->codeTarif = $codeTarif;
}
public function estSolde(): bool
{
return $this->estSolde;
}
public function setEstSolde(bool $estSolde): void
{
$this->estSolde = $estSolde;
}
public function getNomProduit(): string
{
return $this->nomProduit;
}
public function setNomProduit(string $nomProduit): void
{
$this->nomProduit = $nomProduit;
}
public function getCouleurProduit(): string
{
return $this->couleurProduit;
}
public function setCouleurProduit(string $couleurProduit): void
{
$this->couleurProduit = $couleurProduit;
}
public function getDimensionsProduit(): string
{
return $this->dimensionsProduit;
}
public function setDimensionsProduit(string $dimensionsProduit): void
{
$this->dimensionsProduit = $dimensionsProduit;
}
public function getProduit(): ?IzOrderProduct
{
return $this->produit;
}
public function setProduit(?IzOrderProduct $produit): void
{
$this->produit = $produit;
if ($produit) {
$this->setCodeArticle($produit->getCodeArticle1());
$this->setCodeBarre($produit->getCodeBarre() ?? '');
$this->setCodeTva((string) $produit->getCodeTva());
$this->setDivisionProduit((string) $produit->getDivisionProduit());
$this->setColisage($produit->getColisage() ?? 0);
$this->setNomProduit($produit->getDesignation() ?? '');
$this->setCouleurProduit((string) $produit->getCodeCouleur());
$this->setDimensionsProduit(ProductFormatter::formatSize($produit) ?? '');
}
}
public function getOrder(): ?IzOrderOrder
{
return $this->order;
}
public function setOrder(?IzOrderOrder $order): void
{
$this->order = $order;
}
}