<?php
namespace App\Entity\Slave;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="eposm_s_ticket_suspension")
* @ORM\Entity(repositoryClass="App\Repository\Slave\TicketSuspensionRepository")
*/
class TicketSuspension
{
public function displaySuspensionTable(){
$html = '<table class="table table-sm m_b_none responsive_font_size"><tr><th class="td_w_50p"></th><th class="txt_a_c">Data</th><th class="td_w_150p">Ora</th></tr><tr><th class="txt_a_r">Dal</th><td class="txt_a_c">'.$this->getDatetimeFrom()->format('d-m-Y').'</td><td>'.$this->getDatetimeFrom()->format('H:i').'</td></tr><tr><th class="txt_a_r">Al</th><td class="txt_a_c">';
if($this->getDatetimeTo() != null)
$html.= $this->getDatetimeTo()->format('d-m-Y').'</td><td>'.$this->getDatetimeTo()->format('H:i');
else
$html.= '---</td><td>---';
$html.= '</td></tr></table>';
return $html;
}
public function unlock($unlockCausal, $unlockDatetime, $em){
if($unlockDatetime == null)
$unlockDatetime = new \DateTime();
// NON POSSO SBLOCCARE PRIMA DELLA DATA DI INIZIO SOSPENSIONE
if($unlockDatetime->format("YmdHis") < $this->datetimeFrom->format("YmdHis"))
$unlockDatetime = $this->datetimeFrom;
$this->datetimeTo = $unlockDatetime;
$settingUnlockSameTech = $em->getRepository('App\Entity\Slave\Setting')->findOneBy(array('slug' => 'ticket_suspension_unlock_same_technician'));
$statusAssigned = $em->getRepository('App\Entity\Slave\TicketStatus')->findOneBySlug('assigned');
$statusToAssign = $em->getRepository('App\Entity\Slave\TicketStatus')->findOneBySlug('to_assign');
// SE IMPOSTAZIONE SBLOCCA SU STESSO TECNICO ATTIVA, ESISTE UN TECNICO, E' ATTIVO L'ACCOUNT E NON E' IN FERIE -> STATO ASSEGNATO
// ALTRIMENTI -> STATO DA ASSEGNARE E TOLGO TECNICO DA TICKET
if($settingUnlockSameTech->getValue() && $this->getTicket()->getTechnician() != null && $this->getTicket()->getTechnician()->isCompanyActive() && $this->getTicket()->getTechnician()->getActualHoliday() == false)
$this->getTicket()->setStatus($statusAssigned);
else{
$this->getTicket()->setStatus($statusToAssign);
$this->getTicket()->setTechnician(null);
}
$this->setUnlockCausal($unlockCausal);
$this->setUnlocked(1);
}
/**
* @ORM\Column(name="id", type="bigint")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="datetime_from", type="datetime")
*/
protected $datetimeFrom;
/**
* @ORM\Column(name="datetime_to", type="datetime", nullable=true)
*/
protected $datetimeTo;
/**
* @ORM\Column(name="is_approved", type="boolean", nullable=true)
*/
protected $approved;
/**
* @ORM\Column(name="is_managed", type="boolean")
*/
protected $managed = false;
/**
* @ORM\Column(name="is_unlocked", type="boolean")
*/
protected $unlocked = false;
/**
* @ORM\Column(name="unlock_causal", type="text", nullable=true)
*/
protected $unlockCausal;
/**
* @ORM\Column(name="refuse_motivation", type="text", nullable=true)
*/
protected $refuseMotivation;
// OneToOne
/**
* @ORM\OneToOne(targetEntity="App\Entity\Slave\Intervention", inversedBy="suspension")
* @ORM\JoinColumn(name="intervention_id", referencedColumnName="id")
*/
private $intervention;
//
// ManyToOne
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Slave\Ticket", inversedBy="suspensions")
* @ORM\JoinColumn(name="ticket_id", referencedColumnName="id")
*/
private $ticket;
//
public function getId(): ?string
{
return $this->id;
}
public function getDatetimeFrom(): ?\DateTimeInterface
{
return $this->datetimeFrom;
}
public function setDatetimeFrom(\DateTimeInterface $datetimeFrom): static
{
$this->datetimeFrom = $datetimeFrom;
return $this;
}
public function getDatetimeTo(): ?\DateTimeInterface
{
return $this->datetimeTo;
}
public function setDatetimeTo(?\DateTimeInterface $datetimeTo): static
{
$this->datetimeTo = $datetimeTo;
return $this;
}
public function isApproved(): ?bool
{
return $this->approved;
}
public function setApproved(?bool $approved): static
{
$this->approved = $approved;
return $this;
}
public function isManaged(): ?bool
{
return $this->managed;
}
public function setManaged(bool $managed): static
{
$this->managed = $managed;
return $this;
}
public function getUnlockCausal(): ?string
{
return $this->unlockCausal;
}
public function setUnlockCausal(?string $unlockCausal): static
{
$this->unlockCausal = $unlockCausal;
return $this;
}
public function getRefuseMotivation(): ?string
{
return $this->refuseMotivation;
}
public function setRefuseMotivation(?string $refuseMotivation): static
{
$this->refuseMotivation = $refuseMotivation;
return $this;
}
public function getIntervention(): ?Intervention
{
return $this->intervention;
}
public function setIntervention(?Intervention $intervention): static
{
$this->intervention = $intervention;
return $this;
}
public function getTicket(): ?Ticket
{
return $this->ticket;
}
public function setTicket(?Ticket $ticket): static
{
$this->ticket = $ticket;
return $this;
}
public function isUnlocked(): ?bool
{
return $this->unlocked;
}
public function setUnlocked(bool $unlocked): static
{
$this->unlocked = $unlocked;
return $this;
}
}