<?php
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
use App\Repository\SeguridadRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
use ApiPlatform\Core\Annotation\ApiFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\BooleanFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\OrderFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\RangeFilter;
use Doctrine\ORM\Event\LifecycleEventArgs;
use ApiPlatform\Core\Serializer\Filter\PropertyFilter;
/**
* @ApiResource(
* normalizationContext={"groups"={"seguridad"}},
* denormalizationContext={"groups"={"write"}},
* )
* @ApiFilter(SearchFilter::class, properties={
* "aprobacion": "exact",
* "unidadFuncional.ruta.proyecto": "exact",
* "segmento.tramo":"exact",
* "unidadFuncional": "exact",
* "tipoElementoDesc":"exact",
* "tramo" : "exact",
* "segmento":"exact",
* "estado": "exact",
* "abInicio": "exact",
* "margen": "exact",
* "status": "exact",
* "tipoElemento":"exact"
* })
* @ApiFilter(BooleanFilter::class, properties={"status"})
*
* @ApiFilter(OrderFilter::class, properties={
* "id",
* "abInicio",
* "margen",
* "estado",
* "updatedAt",
* "status",
* "tipoElementoDesc",
* "updatedAt",
* "smartCode"
* })
* @ApiFilter(RangeFilter::class, properties={"segmento.abInicio", "segmento.abFin"})
* @ORM\HasLifecycleCallbacks
* @ORM\Entity(repositoryClass=SeguridadRepository::class)
* @ApiFilter(PropertyFilter::class)
*/
class Seguridad extends BaseEntity
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\OneToOne(targetEntity=Proveedor::class, cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
* @Groups({"seguridad", "write"})
*/
private $proveedor;
/**
* @ORM\OneToOne(targetEntity=Segmento::class, cascade={"persist",})
* @ORM\JoinColumn(nullable=true)
* @Groups({"seguridad", "write"})
*/
public $segmento;
/**
* @ORM\OneToOne(targetEntity=Tramo::class, cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
* @Groups({"seguridad", "write"})
*/
private $tramo;
/**
* @ORM\OneToOne(targetEntity=UnidadFuncional::class, cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
* @Groups({"seguridad", "write"})
*/
private $unidadFuncional;
/**
* @ORM\OneToOne(targetEntity=TipoElemento::class, cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
* @Groups({"seguridad", "write"})
*/
public $tipoElemento;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
* @Groups({"seguridad", "write"})
*/
private $tramos;
/**
* @ORM\Column(type="string", length=100)
* @Groups({"seguridad", "write"})
*/
private $material;
/**
* @ORM\Column(type="string", length=100)
* @Groups({"seguridad", "write"})
*/
private $mot_remplazo;
/**
* @ORM\Column(type="string", length=100, nullable=true)
* @Groups({"seguridad", "write"})
*/
private $perfil;
/**
* @ORM\Column(type="string", length=100)
* @Groups({"seguridad", "write"})
*/
private $observaciones;
/**
* @ORM\Column(type="string", length=250)
* @Groups({"seguridad", "write"})
*/
private $elementoReemplazo_id;
/**
* @ORM\Column(type="string", length=250, nullable=true)
* @Groups({"seguridad", "write"})
*/
private $motivoReemplazo;
/**
* @ORM\Column(type="string", length=200)
* @Groups({"seguridad", "write"})
*/
private $estado;
/**
* @ORM\Column(type="string", length=20)
* @Groups({"seguridad", "write"})
*/
private $condicion_elemento;
/**
* @ORM\Column(type="string", length=20)
* @Groups({"seguridad", "write"})
*/
private $margen;
/**
* @ORM\Column(type="string", length=20, nullable=true)
* @Groups({"seguridad", "write"})
*/
private $tope;
/**
* @ORM\Column(type="string", length=20)
* @Groups({"seguridad", "write"})
*/
private $defensa;
/**
* @ORM\Column(type="string", length=200, nullable=true)
* @Groups({"seguridad", "write"})
*/
private $seccion;
/**
* @ORM\Column(type="boolean")
* @Groups({"seguridad", "write"})
*/
private $mantenimiento = false;
/**
* @ORM\Column(type="decimal", precision=10, scale=4)
* @Groups({"seguridad", "write"})
*/
private $abInicio;
/**
* @ORM\Column(type="date")
* @Groups({"seguridad", "write"})
*/
private $fechaInstalacion;
/**
* @ORM\Column(type="decimal", precision=10, scale=2)
* @Groups({"seguridad", "write"})
*/
private $cant_alt;
/**
* @ORM\Column(type="integer", nullable=true)
* @Groups({"seguridad", "write"})
*/
private $topes;
/**
* @ORM\Column(type="decimal", precision=10, scale=1)
* @Groups({"seguridad", "write"})
*/
private $altura;
/**
* @ORM\Column(type="string", length=10)
* @Groups({"seguridad", "write"})
*/
private $posteMetalico;
/**
* @ORM\Column(type="decimal", precision=10, scale=1, nullable=true)
* @Groups({"seguridad", "write"})
*/
private $diametro;
/**
* @ORM\Column(type="decimal", precision=10, scale=1)
* @Groups({"seguridad", "write"})
*/
private $cant_ancho;
/**
* @ORM\Column(type="integer")
* @Groups({"seguridad", "write"})
*/
private $postes;
/**
* @ORM\Column(type="integer")
* @Groups({"seguridad", "write"})
*/
private $terminales;
/**
* @ORM\Column(type="integer")
* @Groups({"seguridad", "write"})
*/
private $cant_capta;
/**
* @ORM\Column(type="integer")
* @Groups({"seguridad", "write"})
*/
private $garantia;
/**
* @ORM\Column(type="decimal", precision=10, scale=6)
* @Groups({"seguridad", "write"})
*/
private $cant_elem;
/**
* @ORM\Column(type="decimal", precision=10, scale=6)
* @Groups({"seguridad", "write"})
*/
private $cant_largo;
/**
* @ORM\Column(type="decimal", precision=10, scale=2)
* @Groups({"seguridad", "write"})
*/
private $largo;
/**
* @ORM\Column(type="integer")
* @Groups({"seguridad", "write"})
*/
private $tornillos;
/**
* @ORM\Column(type="integer")
* @Groups({"seguridad", "write"})
*/
private $unidades;
/**
* @ORM\Column(type="integer")
* @Groups({"seguridad", "write"})
*/
private $captafaros;
/**
* @ORM\Column(type="integer")
* @Groups({"seguridad", "write"})
*/
private $codigo;
/**
* @ORM\Column(type="float")
* @Groups({"seguridad", "write"})
*/
private $ca_largo;
/**
* @ORM\Column(type="float")
* @Groups({"seguridad", "write"})
*/
private $ca_ancho;
/**
* @ORM\Column(type="float", nullable=true)
* @Groups({"seguridad", "write"})
*/
private $ca_altura;
/**
* @ORM\Column(type="float")
* @Groups({"seguridad", "write"})
*/
private $calibre_mm;
/**
* @ORM\Column(type="boolean", nullable=true)
* @Groups({"seguridad", "write"})
*/
private $status = 1;
/**
* @ORM\OneToMany(targetEntity=UbicacionSeguridad::class, mappedBy="elemento", orphanRemoval=false, cascade={"persist", "remove"})
* @Groups({"seguridad", "write"})
*/
private $ubicaciones;
/**
* @ORM\Column(type="string", length=100, nullable=true)
* @Groups({"seguridad", "write"})
*/
private $smartCode;
/**
* @ORM\Column(type="string", length=100)
* @Groups({"seguridad", "write"})
*/
private $tipoElementoDesc;
/**
* @Groups({"seguridad", "write"})
* @ORM\OneToMany(targetEntity="App\Entity\ImageSeguridadVial", mappedBy="recurso", cascade={"persist", "remove"})
*/
public $images;
/**
* @Groups({ "write", "seguridad" })
* @ORM\Column(type="string", nullable=true)
*/
private $createdIn;
/**
* @Groups({"write", "seguridad"})
* @ORM\Column(type="string", nullable=true)
*/
private $updatedIn;
/**
* @Groups({"write", "seguridad"})
* @ORM\Column(type="string", length=50, nullable=true)
*/
private $aprobacion;
/**
* @ORM\Column(type="string", length=255, nullable=true)
* @Groups({"seguridad", "write"})
*/
private $sentido;
/**
* @ORM\Column(type="decimal", precision=10, scale=4, nullable=true)
* @Groups({"seguridad", "write"})
*/
private $pInicio;
/**
* @ORM\Column(type="decimal", precision=10, scale=4, nullable=true)
* @Groups({"seguridad", "write"})
*/
private $pFin;
/**
* @ORM\Column(type="decimal", precision=10, scale=4, nullable=true)
* @Groups({"seguridad", "write"})
*/
private $abFin;
/**
* @param Images[] $Images
*/
public function setImages(array $images): void
{
$this->images = $images;
if( !is_null( $this->images ) ){
foreach( $this->images as $image ){
$image -> recurso = $this;
}
}
}
public function __construct()
{
$this->ubicaciones = new ArrayCollection();
$this->images = new ArrayCollection();
}
/**
* @ORM\PreRemove
*/
public function preRemove(LifecycleEventArgs $args): void {
$tableOrigin = "seguridad";
$oldData = "";
$idDelete = $args->getObject()->getId();
$smartCodeDelete = $args->getObject()->getSmartCode();
$tipoElementoDelete = $args->getObject()->getTipoElemento()->getId();
$manager = $args->getEntityManager();
$conn = $manager->getConnection();
$queryColumansTables = "SELECT * FROM ${tableOrigin} e WHERE e.id = ${idDelete};";
$stmt = $conn->query($queryColumansTables);
$columnsTables = $stmt->fetch();
foreach ($columnsTables as $key => $value) {
$oldData .= "${key} ${value}^";
}
$audit = new Audit();
$audit->setType("Eliminación");
$audit->setTableOrigin($tableOrigin);
$audit->setOld($oldData);
$audit->setNew("");
$audit->setIdElement($idDelete);
$audit->setModule("Inventario");
$audit->setFunctionality("Sistemas de contención vehicular");
$audit->setSmartCode($smartCodeDelete);
$audit->setSubElement($tipoElementoDelete);
$audit->setTableMaster(1);
$manager->persist($audit);
$manager->flush();
}
public function getId(): ?int
{
return $this->id;
}
public function getProveedor(): ?Proveedor
{
return $this->proveedor;
}
public function setProveedor(Proveedor $proveedor): self
{
$this->proveedor = $proveedor;
return $this;
}
public function getSegmento(): ?Segmento
{
return $this->segmento;
}
public function setSegmento(Segmento $segmento): self
{
$this->segmento = $segmento;
return $this;
}
public function getTramo(): ?Tramo
{
return $this->tramo;
}
public function setTramo(Tramo $tramo): self
{
$this->tramo = $tramo;
return $this;
}
public function getUnidadFuncional(): ?UnidadFuncional
{
return $this->unidadFuncional;
}
public function setUnidadFuncional(UnidadFuncional $unidadFuncional): self
{
$this->unidadFuncional = $unidadFuncional;
return $this;
}
public function getTipoElemento(): ?TipoElemento
{
return $this->tipoElemento;
}
public function setTipoElemento(TipoElemento $tipoElemento): self
{
$this->tipoElemento = $tipoElemento;
return $this;
}
public function getTramos(): ?string
{
return $this->tramos;
}
public function setTramos($tramos): self
{
$this->tramos = $tramos;
return $this;
}
public function getMaterial(): ?string
{
return $this->material;
}
public function setMaterial(string $material): self
{
$this->material = $material;
return $this;
}
public function getMotRemplazo(): ?string
{
return $this->mot_remplazo;
}
public function setMotRemplazo(string $mot_remplazo): self
{
$this->mot_remplazo = $mot_remplazo;
return $this;
}
public function getPerfil(): ?string
{
return $this->perfil;
}
public function setPerfil($perfil): self
{
$this->perfil = $perfil;
return $this;
}
public function getObservaciones(): ?string
{
return $this->observaciones;
}
public function setObservaciones(string $observaciones): self
{
$this->observaciones = $observaciones;
return $this;
}
public function getElementoReemplazoId(): ?string
{
return $this->elementoReemplazo_id;
}
/**
* @Groups({"seguridad"})
*/
public function getElementoReemplazo_id(): ?string
{
return $this->elementoReemplazo_id;
}
public function setElementoReemplazoId($elementoReemplazo_id): self
{
$this->elementoReemplazo_id = $elementoReemplazo_id;
return $this;
}
/**
* @Groups({"write"})
*/
public function setElementoReemplazo_id($elementoReemplazo_id): self
{
$this->elementoReemplazo_id = $elementoReemplazo_id;
return $this;
}
public function getMotivoReemplazo(): ?string
{
return $this->motivoReemplazo;
}
public function setMotivoReemplazo(?string $motivoReemplazo): self
{
$this->motivoReemplazo = $motivoReemplazo;
return $this;
}
public function getEstado(): ?string
{
return $this->estado;
}
public function setEstado(string $estado): self
{
$this->estado = $estado;
return $this;
}
/**
* @Groups({"seguridad"})
*/
public function getCondicionElemento(): ?string
{
return $this->condicion_elemento;
}
/**
* @Groups({"write"})
*/
public function setCondicionElemento(string $condicion_elemento): self
{
$this->condicion_elemento = $condicion_elemento;
return $this;
}
public function getMargen(): ?string
{
return $this->margen;
}
public function setMargen(string $margen): self
{
$this->margen = $margen;
return $this;
}
public function getTope(): ?string
{
return $this->tope;
}
public function setTope($tope): self
{
$this->tope = $tope;
return $this;
}
public function getDefensa(): ?string
{
return $this->defensa;
}
public function setDefensa($defensa): self
{
$this->defensa = $defensa;
return $this;
}
public function getSeccion(): ?string
{
return $this->seccion;
}
public function setSeccion($seccion): self
{
$this->seccion = $seccion;
return $this;
}
public function getMantenimiento(): ?bool
{
return $this->mantenimiento;
}
public function setMantenimiento($mantenimiento): self
{
$this->mantenimiento = $mantenimiento;
return $this;
}
public function getAbInicio(): ?string
{
return $this->abInicio;
}
public function setAbInicio(string $abInicio): self
{
$this->abInicio = $abInicio;
return $this;
}
public function getFechaInstalacion(): ?\DateTimeInterface
{
return $this->fechaInstalacion;
}
public function setFechaInstalacion(\DateTimeInterface $fechaInstalacion): self
{
$this->fechaInstalacion = $fechaInstalacion;
return $this;
}
public function getCantAlt(): ?string
{
return $this->cant_alt;
}
public function setCantAlt(string $cant_alt): self
{
$this->cant_alt = $cant_alt;
return $this;
}
public function getTopes(): ?int
{
return $this->topes;
}
public function setTopes($topes): self
{
$this->topes = $topes;
return $this;
}
/**
* @Groups({"seguridad"})
*/
public function getAltura(): ?string
{
return $this->altura;
}
/**
* @Groups({"write"})
*/
public function setAltura($altura): self
{
$this->altura = $altura;
return $this;
}
/**
* @Groups({"seguridad"})
*/
public function getPosteMetalico(): ?string
{
return $this->posteMetalico;
}
/**
* @Groups({"write"})
*/
public function setPosteMetalico($posteMetalico): self
{
$this->posteMetalico = $posteMetalico;
return $this;
}
public function getDiametro(): ?string
{
return $this->diametro;
}
public function setDiametro($diametro): self
{
$this->diametro = $diametro;
return $this;
}
public function getCantAncho(): ?string
{
return $this->cant_ancho;
}
/**
* @Groups({"seguridad"})
*/
public function getCant_ancho(): ?string
{
return $this->cant_ancho;
}
public function setCantAncho($cant_ancho): self
{
$this->cant_ancho = $cant_ancho;
return $this;
}
/**
* @Groups({"write"})
*/
public function setCant_ancho($cant_ancho): self
{
$this->cant_ancho = $cant_ancho;
return $this;
}
public function getPostes(): ?int
{
return $this->postes;
}
public function setPostes($postes): self
{
$this->postes = $postes;
return $this;
}
public function getTerminales(): ?int
{
return $this->terminales;
}
public function setTerminales($terminales): self
{
$this->terminales = $terminales;
return $this;
}
public function getCantCapta(): ?int
{
return $this->cant_capta;
}
/**
* @Groups({"seguridad"})
*/
public function getCant_capta(): ?int
{
return $this->cant_capta;
}
public function setCantCapta($cant_capta): self
{
$this->cant_capta = $cant_capta;
return $this;
}
/**
* @Groups({"write"})
*/
public function setCant_capta($cant_capta): self
{
$this->cant_capta = $cant_capta;
return $this;
}
public function getGarantia(): ?int
{
return $this->garantia;
}
public function setGarantia(int $garantia): self
{
$this->garantia = $garantia;
return $this;
}
public function getCantElem(): ?string
{
return $this->cant_elem;
}
/**
* @Groups({"seguridad"})
*/
public function getCant_elem(): ?string
{
return $this->cant_elem;
}
public function setCantElem($cant_elem): self
{
$this->cant_elem = $cant_elem;
return $this;
}
/**
* @Groups({"write"})
*/
public function setCant_elem($cant_elem): self
{
$this->cant_elem = $cant_elem;
return $this;
}
public function getCantLargo(): ?string
{
return $this->cant_largo;
}
/**
* @groups({"seguridad"})
*/
public function getCant_largo(): ?string
{
return $this->cant_largo;
}
public function setCantLargo($cant_largo): self
{
$this->cant_largo = $cant_largo;
return $this;
}
/**
* @groups({"write"})
*/
public function setCant_largo($cant_largo): self
{
$this->cant_largo = $cant_largo;
return $this;
}
public function getLargo(): ?string
{
return $this->largo;
}
public function setLargo($largo): self
{
$this->largo = $largo;
return $this;
}
public function getTornillos(): ?int
{
return $this->tornillos;
}
public function setTornillos($tornillos): self
{
$this->tornillos = $tornillos;
return $this;
}
public function getUnidades(): ?int
{
return $this->unidades;
}
public function setUnidades($unidades): self
{
$this->unidades = $unidades;
return $this;
}
public function getCaptafaros(): ?int
{
return $this->captafaros;
}
public function setCaptafaros($captafaros): self
{
$this->captafaros = $captafaros;
return $this;
}
public function getCodigo(): ?int
{
return $this->codigo;
}
public function setCodigo(int $codigo): self
{
$this->codigo = $codigo;
return $this;
}
public function getCaLargo(): ?float
{
return $this->ca_largo;
}
/**
* @Groups({"seguridad"})
*/
public function getCa_largo(): ?float
{
return $this->ca_largo;
}
public function setCaLargo($ca_largo): self
{
$this->ca_largo = $ca_largo;
return $this;
}
/**
* @Groups({"write"})
*/
public function setCa_largo($ca_largo): self
{
$this->ca_largo = $ca_largo;
return $this;
}
public function getCaAncho(): ?float
{
return $this->ca_ancho;
}
public function setCaAncho($ca_ancho): self
{
$this->ca_ancho = $ca_ancho;
return $this;
}
/**
* @Groups({"seguridad"})
*/
public function getCa_ancho(): ?float
{
return $this->ca_ancho;
}
/**
* @Groups({"write"})
*/
public function setCa_ancho($ca_ancho): self
{
$this->ca_ancho = $ca_ancho;
return $this;
}
public function getCaAltura(): ?float
{
return $this->ca_altura;
}
public function setCaAltura($ca_altura): self
{
$this->ca_altura = $ca_altura;
return $this;
}
/**
* @Groups({"seguridad"}) */
public function getCa_altura(): ?float
{
return $this->ca_altura;
}
/**
* @Groups({"write"})
*/
public function setCa_altura($ca_altura): self
{
$this->ca_altura = $ca_altura;
return $this;
}
public function getCalibreMm(): ?float
{
return $this->calibre_mm;
}
public function setCalibreMm($calibre_mm): self
{
$this->calibre_mm = $calibre_mm;
return $this;
}
/**
* @Groups({"seguridad"})
*/
public function getCalibre_mm(): ?float
{
return $this->calibre_mm;
}
public function setCalibre_mm($calibre_mm): self
{
$this->calibre_mm = $calibre_mm;
return $this;
}
/**
* @Groups({"write"})
*/
public function getStatus(): ?bool
{
return $this->status;
}
public function setStatus($status): self
{
$this->status = $status;
return $this;
}
/**
* @return Collection|UbicacionSeguridad[]
*/
public function getUbicaciones(): Collection
{
return $this->ubicaciones;
}
public function addUbicacione(UbicacionSeguridad $ubicacione): self
{
if (!$this->ubicaciones->contains($ubicacione)) {
$this->ubicaciones[] = $ubicacione;
$ubicacione->setElemento($this);
}
return $this;
}
public function removeUbicacione(UbicacionSeguridad $ubicacione): self
{
if ($this->ubicaciones->contains($ubicacione)) {
$this->ubicaciones->removeElement($ubicacione);
// set the owning side to null (unless already changed)
if ($ubicacione->getElemento() === $this) {
$ubicacione->setElemento(null);
}
}
return $this;
}
public function getSmartCode(): ?string
{
return $this->smartCode;
}
public function setSmartCode($smartCode): self
{
$this->smartCode = $smartCode;
return $this;
}
public function getTipoElementoDesc(): ?string
{
return $this->tipoElementoDesc;
}
public function setTipoElementoDesc(string $tipoElementoDesc): self
{
$this->tipoElementoDesc = $tipoElementoDesc;
return $this;
}
/**
* @return string
* @Groups({"seguridad"})
*/
public function getLatitudInicial(){
if(!is_null($this->ubicaciones[1]))
{
return $this->ubicaciones[0]->lat;
}
}
/**
* @return string
* @Groups({"seguridad"})
*/
public function getLongitudInicial()
{
if(!is_null($this->ubicaciones[1]))
{
return $this->ubicaciones[0]->lng;
}
}
/**
* @return string
* @Groups({"seguridad"})
*/
public function getLatitudFinal()
{
if(!is_null($this->ubicaciones[1]))
{
return $this->ubicaciones[1]->lat;
}
}
/**
* @return string
* @Groups({"seguridad"})
*/
public function getLongitudFinal(){
if(!is_null($this->ubicaciones[1]))
{
return $this->ubicaciones[1]->lng;
}
}
/**
*
* @ORM\PrePersist
*/
public function prePersist(LifecycleEventArgs $args){
if($this->condicion_elemento == "Reemplazo") {
$query = $args->getEntityManager()->createQuery("UPDATE ".get_class($this)." seg SET seg.status = 0, seg.estado = 'Inactivo' WHERE seg.id = ?1");
$query->setParameter(1, $this->idFormatter("toID", $this->elementoReemplazo_id));
$query->execute();
}
$query = $args->getEntityManager()->createQuery('SELECT MAX(e.codigo)+1 FROM '.get_class($this).' e WHERE e.segmento = ?1 AND e.tipoElemento = ?2');
$query->setParameter(1, $this->segmento);
$query->setParameter(2, $this->tipoElemento);
$this->codigo = $query->getSingleScalarResult();
if( is_null( $this->codigo ) ){
$this->codigo = 1;
}
$this->setSmartCode($this->getFullCodigoConsecutivo());
}
/**
*
* @ORM\PreUpdate
*/
public function preUpdate(LifecycleEventArgs $args){
if($this->condicion_elemento == "Reemplazo" && $args->hasChangedField("elementoReemplazo_id")) {
$reemplazoActual = $args->getOldValue('elementoReemplazo_id');
$query = $args->getEntityManager()->createQuery("UPDATE ".get_class($this)." seg SET seg.status = 1, seg.estado = 'Activo' WHERE seg.id = ?1");
$query->setParameter(1, $this->idFormatter("toID", $this->reemplazoActual));
$query->execute();
$query = $args->getEntityManager()->createQuery("UPDATE ".get_class($this)." seg SET seg.status = 0, seg.estado = 'Inactivo' WHERE seg.id = ?1");
$query->setParameter(1, $this->idFormatter("toID", $this->elementoReemplazo_id));
$query->execute();
}
$this->setSmartCode($this->getFullCodigoConsecutivo());
}
/**
* @return string
*
* @Groups({"seguridad"})
*/
public function getFullCodigo(){
$id = $this->id;
if($id < 10){
return ($this->segmento ? $this->segmento->tramo->unidadFuncional->getfullCodigos() : '') .'::'. 'SEG' .'::' . $this->segmento->tramo->codigo . '::'. $this->segmento->codigo . '::' . $this->tipoElemento->getId() . '::' . ("00" . $id);
}
if($id >= 10){
return ($this->segmento ? $this->segmento->tramo->unidadFuncional->getfullCodigos() : '') .'::'. 'SEG'. '::' . $this->segmento->tramo->codigo . '::'. $this->segmento->codigo . '::' . $this->tipoElemento->getId() . '::' .("0" . $id);
}
if($id > 99){
return ($this->segmento ? $this->segmento->tramo->unidadFuncional->getfullCodigos() : '') .'::'. 'SEG'. '::' . $this->segmento->tramo->codigo . '::'. $this->segmento->codigo . '::' . $this->tipoElemento->getId() . '::' .($id);
}
// return $this->id;
}
/**
* @return string
*
* @Groups({"seguridad", "read"})
*/
public function getFullCodigoConsecutivo(){
$id = $this->codigo;
if($id < 10){
return ($this->segmento ? $this->segmento->tramo->unidadFuncional->getfullCodigos() : '') .'::'. 'SEG' .'::' . $this->segmento->tramo->codigo . '::'. $this->segmento->codigo . '::' . $this->tipoElemento->getId() . '::' . ("00" . $id);
}
if($id >= 10){
return ($this->segmento ? $this->segmento->tramo->unidadFuncional->getfullCodigos() : '') .'::'. 'SEG'. '::' . $this->segmento->tramo->codigo . '::'. $this->segmento->codigo . '::' . $this->tipoElemento->getId() . '::' .("0" . $id);
}
if($id > 99){
return ($this->segmento ? $this->segmento->tramo->unidadFuncional->getfullCodigos() : '') .'::'. 'SEG'. '::' . $this->segmento->tramo->codigo . '::'. $this->segmento->codigo . '::' . $this->tipoElemento->getId() . '::' .($id);
}
// return $this->id;
}
/**
* @return int
* @Groups({"seguridad"})
*/
public function getFullResta(){
$resta = $this->abFin - $this->abInicio;
$resta2 =number_format($resta, 3, '.', ' ');
return $resta2;
}
/**
* @return string
*
* @Groups({"seguridad"})
*/
public function getcaptafaro(){
$captafaros=$this->captafaros;
$vacio= NULL;
$cant_capta=$this->cant_capta;
if($captafaros == $vacio){
return $cant_capta;
}elseif($cant_capta == $vacio){
return $captafaros;
}
}
/**
* $option -> 1) toID, 2) toIRI
* $value -> valor a formatear
*/
public function idFormatter ($option, $value) {
$return = "";
$explode = explode("/", $value);
switch ($option) {
case "toID":
if(count($explode) == 1) {
$return = $value;
} else {
$return = $explode[2];
}
break;
case "toIRI":
if(count($explode) == 3) {
$return = $value;
} else {
$return = "{$value}";
}
break;
}
return $return;
}
/**
* @return array
* @Groups({"seguridad"})
*/
public function getUbicaciones1(){
return $this->ubicaciones;
}
public function getCreatedIn(): ?string
{
if ($this->createdIn === "movil") {
$this->createdIn = "Aplicación móvil";
} else if ($this->createdIn === "api") {
$this->createdIn = "Aplicación web";
}
return $this->createdIn;
}
public function setCreatedIn(?string $createdIn): self
{
if ($createdIn === "Aplicación móvil") {
$this->createdIn = "movil";
} else if ($createdIn === "Aplicación web") {
$this->createdIn = "api";
}else{
$this->createdIn = $createdIn;
}
return $this;
}
public function getUpdatedIn(): ?string
{
if($this->updatedIn === "movil"){
$this->updatedIn = "Aplicación móvil";
} else if ($this->updatedIn === "api") {
$this->updatedIn = "Aplicación web";
}
return $this->updatedIn;
}
public function setUpdatedIn(?string $updatedIn): self
{
if ($updatedIn === "Aplicación móvil") {
$this->updatedIn = "movil";
} else if ($updatedIn === "Aplicación web") {
$this->updatedIn = "api";
}else{
$this->updatedIn = $updatedIn;
}
return $this;
}
public function getAprobacion(): ?string
{
return $this->aprobacion;
}
public function setAprobacion(?string $aprobacion): self
{
$this->aprobacion = $aprobacion;
return $this;
}
public function getSentido(): ?string
{
return $this->sentido;
}
public function setSentido(?string $sentido): self
{
$this->sentido = $sentido;
return $this;
}
public function getPInicio(): ?string
{
return $this->pInicio;
}
public function setPInicio(?string $pInicio): self
{
$this->pInicio = $pInicio;
return $this;
}
public function getPFin(): ?string
{
return $this->pFin;
}
public function setPFin(?string $pFin): self
{
$this->pFin = $pFin;
return $this;
}
public function getAbFin(): ?string
{
return $this->abFin;
}
public function setAbFin(?string $abFin): self
{
$this->abFin = $abFin;
return $this;
}
}