<?php
namespace App\Entity;
use App\Mask\MarkingCodesMask;
use Doctrine\ORM\Mapping as ORM;
/**
* DnsitTranslateCriterion
*
* @ORM\Table(name="dnsit_translate_criterion", indexes={@ORM\Index(name="translate_criterion_criterion_code_idx", columns={"criterion_code"}), @ORM\Index(name="translate_criterion_criterion_text_key_idx", columns={"criterion_text_key"})})
* @ORM\Entity(repositoryClass="App\Repository\DnsitTranslateCriterionRepository")
*/
class DnsitTranslateCriterion
{
/**
* @var int|null
*
* @ORM\Column(name="criterion_code", type="bigint", nullable=true, unique=true)
*/
private $criterionCode;
/**
* @var string|null
*
* @ORM\Column(name="criterion_text_key", type="string", length=255, nullable=true, unique=true)
*/
private $criterionTextKey;
/**
* @var string|null
*
* @ORM\Column(name="criterion_tag_key", type="string", length=255, nullable=true, unique=true)
*/
private $criterionTagKey;
/**
* @var string|null
*
* @ORM\Column(name="en_name", type="string", length=255, nullable=true)
*/
private $enName;
/**
* @var string|null
*
* @ORM\Column(name="de_name", type="string", length=255, nullable=true)
*/
private $deName;
/**
* @var string|null
*
* @ORM\Column(name="nl_name", type="string", length=255, nullable=true)
*/
private $nlName;
/**
* @var string|null
*
* @ORM\Column(name="it_name", type="string", length=255, nullable=true)
*/
private $itName;
/**
* @var string|null
*
* @ORM\Column(name="es_name", type="string", length=255, nullable=true)
*/
private $esName;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $ptName;
/**
* @var int|null
*
* @ORM\Column(name="qualitative", type="integer", nullable=true)
*/
private $qualitative;
/**
* @var int|null
*
* @ORM\Column(name="class", type="integer", nullable=true)
*/
private $class;
/**
* @var int|null
*
* @ORM\Column(name="value_type", type="integer", nullable=true)
*/
private $valueType;
/**
* @var int|null
*
* @ORM\Column(name="entity", type="bigint", nullable=true)
*/
private $entity;
/**
* @var int|null
*
* @ORM\Column(name="marking", type="smallint", nullable=true)
*/
private $marking;
/**
* @var string|null
*
* @ORM\Column(name="params", type="text", nullable=true)
*/
private $params;
/**
* @var \DateTime|null
*
* @ORM\Column(name="created_at", type="datetime", nullable=true)
*/
private $createdAt;
/**
* @var int|null
*
* @ORM\Column(name="created_by", type="bigint", nullable=true)
*/
private $createdBy;
/**
* @var \DateTime|null
*
* @ORM\Column(name="updated_at", type="datetime", nullable=true)
*/
private $updatedAt;
/**
* @var int|null
*
* @ORM\Column(name="updated_by", type="bigint", nullable=true)
*/
private $updatedBy;
/**
* @var int
*
* @ORM\Column(name="id", type="bigint")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var \App\Entity\DnsitCriterionCategory
*
* @ORM\ManyToOne(targetEntity="App\Entity\DnsitCriterionCategory", inversedBy="translateCriterions")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="criterion_category_id", referencedColumnName="id")
* })
*/
private $criterionCategory;
public function __toString(){
return $this->criterionCode . '-' . $this->enName;
}
public function getCriterionCode(): ?int
{
return $this->criterionCode;
}
public function setCriterionCode(?int $criterionCode): self
{
$this->criterionCode = $criterionCode;
return $this;
}
public function getCriterionTextKey(): ?string
{
return $this->criterionTextKey;
}
public function setCriterionTextKey(?string $criterionTextKey): self
{
$this->criterionTextKey = $criterionTextKey;
return $this;
}
public function getCriterionTagKey(): ?string
{
return $this->criterionTagKey;
}
public function setCriterionTagKey(?string $criterionTagKey): self
{
$this->criterionTagKey = $criterionTagKey;
return $this;
}
public function getEnName(): ?string
{
return $this->enName;
}
public function setEnName(?string $enName): self
{
$this->enName = $enName;
return $this;
}
public function getDeName(): ?string
{
return $this->deName;
}
public function setDeName(?string $deName): self
{
$this->deName = $deName;
return $this;
}
public function getNlName(): ?string
{
return $this->nlName;
}
public function setNlName(?string $nlName): self
{
$this->nlName = $nlName;
return $this;
}
public function getItName(): ?string
{
return $this->itName;
}
public function setItName(?string $itName): self
{
$this->itName = $itName;
return $this;
}
public function getEsName(): ?string
{
return $this->esName;
}
public function setEsName(?string $esName): self
{
$this->esName = $esName;
return $this;
}
public function getPtName(): ?string
{
return $this->ptName;
}
public function setPtName(?string $ptName): self
{
$this->ptName = $ptName;
return $this;
}
public function getQualitative(): ?int
{
return $this->qualitative;
}
public function setQualitative(?int $qualitative): self
{
$this->qualitative = $qualitative;
return $this;
}
public function getClass(): ?int
{
return $this->class;
}
public function setClass(?int $class): self
{
$this->class = $class;
return $this;
}
public function getValueType(): ?int
{
return $this->valueType;
}
public function setValueType(?int $valueType): self
{
$this->valueType = $valueType;
return $this;
}
public function getEntity(): ?int
{
return $this->entity;
}
public function setEntity(?int $entity): self
{
$this->entity = $entity;
return $this;
}
public function getMarking(): ?int
{
return $this->marking;
}
public function setMarking(?int $marking): self
{
$this->marking = $marking;
return $this;
}
public function getParams(): ?string
{
return $this->params;
}
public function setParams(?string $params): self
{
$this->params = $params;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(?\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getCreatedBy(): ?int
{
return $this->createdBy;
}
public function setCreatedBy(?int $createdBy): self
{
$this->createdBy = $createdBy;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
public function getUpdatedBy(): ?int
{
return $this->updatedBy;
}
public function setUpdatedBy(?int $updatedBy): self
{
$this->updatedBy = $updatedBy;
return $this;
}
public function getId(): ?int
{
return $this->id;
}
public function __construct() {
// Champ qualitatif mis à 0 par défaut
$this->setQualitative(0);
}
public function bindLeiData($xmlCriterion, $language) {
$this->setCriterionCode((int) $xmlCriterion->CRITERE);
$this->setQualitative((int) $xmlCriterion->CRITERE_QUALITATIF);
$this->setValueType((int) $xmlCriterion->CRITERE_TYPEVAL);
switch ($language) {
case "en":
$this->setEnName((string) $xmlCriterion->CRITERE_NOM);
break;
case "de":
$this->setDeName((string) $xmlCriterion->CRITERE_NOM);
break;
case "nl":
$this->setNlName((string) $xmlCriterion->CRITERE_NOM);
break;
case "it":
$this->setItName((string) $xmlCriterion->CRITERE_NOM);
break;
case "es":
$this->setEsName((string) $xmlCriterion->CRITERE_NOM);
break;
case "pt":
$this->setPtName((string) $xmlCriterion->CRITERE_NOM);
break;
}
$this->setMarking(MarkingCodesMask::LEI);
}
public function bindTourinsoftData($jsonCriterion, $language, $suffixe = "") {
$this->setCriterionTextKey(strtoupper($jsonCriterion->SyndicFieldID));
// $this->setCriterionCode($jsonCriterion->CRITERE);
switch ($jsonCriterion->ViewType) {
case 5:
case 6:
$this->setQualitative(-1);
break;
case 7:
case 8:
$this->setQualitative(1);
break;
// Non car les flux Tourinsoft mettent plusieurs le même critère en doub;on avec un type texte
// default:
// $this->setQualitative(0);
}
$this->setValueType($jsonCriterion->ViewType);
$name = $jsonCriterion->SyndicFieldName;
if ($suffixe != "")
$name .= " (" . $suffixe . ")";
switch ($language) {
case "en":
$this->setEnName($name);
break;
case "de":
$this->setDeName($name);
break;
case "nl":
$this->setNlName($name);
break;
case "it":
$this->setItName($name);
break;
case "es":
$this->setEsName($name);
break;
case "pt":
$this->setPtName($name);
break;
}
$this->setMarking(MarkingCodesMask::TOURINSOFT);
}
public function getCriterionCategory(): ?DnsitCriterionCategory
{
return $this->criterionCategory;
}
public function setCriterionCategory(?DnsitCriterionCategory $criterionCategory): self
{
$this->criterionCategory = $criterionCategory;
return $this;
}
}