Files
Phraseanet/lib/Alchemy/Phrasea/Model/Entities/BasketElement.php
Benoît Burnichon 1e18b3e69f This is a combination of 33 commits.
- Squashed Pull request #1730
- Squashed Pull request #1741
- Squashed Pull request #1742
- Squash merge branch 4.0
- Squashed Pull request #1744
- Squashed Pull request #1746
- Squashed merge branch 4.0
- Squashed merge branch 4.0
- Squashed merge branch 4.0
- Squashed merge branch 4.0
- Squashed Pull request #1758
- Avoid using imagine/imagine alias as it is causing install issues
- Squashed merge branch 4.0
- Squashed Pull request #1763
- Squashed merge branch 4.0
- Squash of 6 commits
- Squashed merge branch 4.0
- This is a combination of 2 commits.
- Squashed Pull request #1775
- Squashed Pull request #1777
- Squashed Pull request #1779
- Squashed Pull request #1780
- Squashed Pull request #1782
- Adds a Pull request template
- Squased Pull request #1783
- Squash Pull request #1786
- Squashed Pull request #1796
- Squashed merge branch 4.0
- Squash Pull request #1791
- Squashed merge branch 4.0
- Squashed Pull request #1808
- Squashed Pull request #1811
- Squashed Pull request #1809
2016-04-20 16:22:14 +02:00

286 lines
5.4 KiB
PHP

<?php
/*
* This file is part of Phraseanet
*
* (c) 2005-2014 Alchemy
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Alchemy\Phrasea\Model\Entities;
use Alchemy\Phrasea\Application;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Table(name="BasketElements", uniqueConstraints={@ORM\UniqueConstraint(name="unique_recordcle", columns={"basket_id","sbas_id","record_id"})})
* @ORM\Entity(repositoryClass="Alchemy\Phrasea\Model\Repositories\BasketElementRepository")
*/
class BasketElement
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
private $record_id;
/**
* @ORM\Column(type="integer")
*/
private $sbas_id;
/**
* @ORM\Column(type="integer")
*/
private $ord;
/**
* @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime")
*/
private $created;
/**
* @Gedmo\Timestampable(on="update")
* @ORM\Column(type="datetime")
*/
private $updated;
/**
* @ORM\OneToMany(targetEntity="ValidationData", mappedBy="basket_element", cascade={"all"})
*/
private $validation_datas;
/**
* @ORM\ManyToOne(targetEntity="Basket", inversedBy="elements", cascade={"persist"})
* @ORM\JoinColumn(name="basket_id", referencedColumnName="id")
*/
private $basket;
/**
* Constructor
*/
public function __construct()
{
$this->validation_datas = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set record_id
*
* @param integer $recordId
* @return BasketElement
*/
public function setRecordId($recordId)
{
$this->record_id = $recordId;
return $this;
}
/**
* Get record_id
*
* @return integer
*/
public function getRecordId()
{
return $this->record_id;
}
/**
* Set sbas_id
*
* @param integer $sbasId
* @return BasketElement
*/
public function setSbasId($sbasId)
{
$this->sbas_id = $sbasId;
return $this;
}
/**
* Get sbas_id
*
* @return integer
*/
public function getSbasId()
{
return $this->sbas_id;
}
public function getRecord(Application $app)
{
return new \record_adapter($app, $this->getSbasId(), $this->getRecordId(), $this->getOrd());
}
public function setRecord(\record_adapter $record)
{
$this->setRecordId($record->getRecordId());
$this->setSbasId($record->getDataboxId());
}
/**
* Set ord
*
* @param integer $ord
* @return BasketElement
*/
public function setOrd($ord)
{
$this->ord = $ord;
return $this;
}
/**
* Get ord
*
* @return integer
*/
public function getOrd()
{
return $this->ord;
}
/**
* Set created
*
* @param \DateTime $created
* @return BasketElement
*/
public function setCreated(\DateTime $created)
{
$this->created = $created;
return $this;
}
/**
* Get created
*
* @return \DateTime
*/
public function getCreated()
{
return $this->created;
}
/**
* Set updated
*
* @param \DateTime $updated
* @return BasketElement
*/
public function setUpdated(\DateTime $updated)
{
$this->updated = $updated;
return $this;
}
/**
* Get updated
*
* @return \DateTime
*/
public function getUpdated()
{
return $this->updated;
}
/**
* Add validation_datas
*
* @param ValidationData $validationDatas
* @return BasketElement
*/
public function addValidationData(ValidationData $validationDatas)
{
$this->validation_datas[] = $validationDatas;
return $this;
}
/**
* Remove validation_datas
*
* @param ValidationData $validationDatas
*/
public function removeValidationData(ValidationData $validationDatas)
{
$this->validation_datas->removeElement($validationDatas);
}
/**
* Get validation_datas
*
* @return Collection|ValidationData[]
*/
public function getValidationDatas()
{
return $this->validation_datas;
}
/**
* Set basket
*
* @param Basket $basket
* @return BasketElement
*/
public function setBasket(Basket $basket = null)
{
$this->basket = $basket;
return $this;
}
/**
* Get basket
*
* @return Basket
*/
public function getBasket()
{
return $this->basket;
}
/**
* @param User $user
* @return ValidationData
* @throws \Exception
*/
public function getUserValidationDatas(User $user)
{
foreach ($this->validation_datas as $validationData) {
if ($validationData->getParticipant()->getUser()->getId() == $user->getId()) {
return $validationData;
}
}
throw new \Exception('There is no such participant ' . $user->getEmail());
}
}