src/Admin/Modules/Voucher/Entity/VoucherPackageVoucher.php line 23
<?phpnamespace App\Admin\Modules\Voucher\Entity;use App\Modules\VoucherCart\Entity\VoucherOrderVoucher;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;use Gedmo\Mapping\Annotation as Gedmo;use App\Modules\User\Entity\User;use App\Admin\Modules\Store\Entity\StoreOrder;use App\Modules\TicketCart\Entity\TicketOrderTicket;use App\Admin\Modules\Contract\Entity\Contract;use App\Admin\Modules\Contract\Entity\ContractLead;use App\Admin\Modules\MeetingScheduler\Entity\Meeting;use App\Modules\RecommendationVoucherForm\Entity\RecommendationVoucherForm;/*** @ORM\Table(name="voucher_package_voucher", uniqueConstraints={@ORM\UniqueConstraint(columns={"id_voucher_package", "number"})}, indexes={@ORM\Index(columns={"kind"}), @ORM\Index(columns={"type"}), @ORM\Index(columns={"email"}), @ORM\Index(columns={"sent_to_email"}), @ORM\Index(columns={"physically_handed_over_to"}), @ORM\Index(columns={"status"}), @ORM\Index(columns={"used_at"}), @ORM\Index(columns={"registered_at"}), @ORM\Index(columns={"added_at"})})* @ORM\Entity(repositoryClass="App\Admin\Modules\Voucher\Repository\VoucherPackageVoucherRepository")*/class VoucherPackageVoucher{const KIND_VOUCHER = 1;const KIND_TICKET = 2;const TYPE_PACKAGE_VOUCHER = 1;const TYPE_INDIVIDUAL = 2;const STATUS_UNREGISTERED = 1;const STATUS_REGISTERED = 2;const STATUS_USED = 3;/*** @var int** @ORM\Id* @ORM\Column(type="bigint", options={"unsigned"=true}))* @ORM\GeneratedValue(strategy="AUTO")*/protected $id;/*** @var \App\Admin\Modules\Voucher\Entity\VoucherPackage** @ORM\ManyToOne(targetEntity="App\Admin\Modules\Voucher\Entity\VoucherPackage", inversedBy="vouchers")* @ORM\JoinColumns({* @ORM\JoinColumn(name="id_voucher_package", referencedColumnName="id", nullable=false, onDelete="CASCADE")* })*/private $package;/*** @var string** @ORM\Column(name="number", type="string", length=255, nullable=false)*/protected $number;/*** @var int** @ORM\Column(name="am_value", type="integer", nullable=true)*/private $amValue;/*** @var int** @ORM\Column(name="kind", type="smallint", nullable=false)*/private $kind;/*** @var int** @ORM\Column(name="type", type="smallint", nullable=false)*/private $type;/*** @var string** @ORM\Column(name="event_name", type="string", length=255, nullable=true)*/protected $eventName;/*** @var string** @ORM\Column(name="email", type="string", length=255, nullable=true)*/protected $email;/*** @var string** @ORM\Column(name="first_name", type="string", length=255, nullable=true)*/protected $firstName;/*** @var string** @ORM\Column(name="last_name", type="string", length=255, nullable=true)*/protected $lastName;/*** @var string** @ORM\Column(name="sent_to_email", type="string", length=255, nullable=true)*/protected $sentToEmail;/*** @var string** @ORM\Column(name="physically_handed_over_to", type="string", length=255, nullable=true)*/protected $physicallyHandedOverTo;/*** @var int** @ORM\Column(name="usage_count", type="integer", nullable=true)*/private $usageCount;/*** @var int** @ORM\Column(name="reusable_voucher_redeem_admin_notify_date", type="datetime", nullable=true)*/private $reusableVoucherRedeemAdminNotifyDate;/*** @var int** @ORM\Column(name="status", type="smallint", nullable=false)*/private $status;/*** @var \App\Modules\User\Entity\User** @ORM\OneToOne(targetEntity="App\Modules\User\Entity\User", inversedBy="voucher")* @ORM\JoinColumns({* @ORM\JoinColumn(name="id_user", referencedColumnName="id", nullable=true, onDelete="CASCADE")* })*/private $user;/*** @var \DateTime** @ORM\Column(name="used_at", type="datetime", nullable=true)*/private $usedAt;/*** @var \DateTime** @ORM\Column(name="registered_at", type="datetime", nullable=true)*/private $registeredAt;/*** @var \DateTime** @ORM\Column(name="added_at", type="datetime", nullable=false)* @Gedmo\Timestampable(on="create")*/private $addedAt;/*** @var \App\Admin\Modules\Voucher\Entity\VoucherPackageVoucherNote** @ORM\OneToMany(targetEntity="App\Admin\Modules\Voucher\Entity\VoucherPackageVoucherNote", mappedBy="voucher", cascade={"persist"}, orphanRemoval=true)* @ORM\OrderBy({"addedAt"="DESC"})*/private $notes;/*** @var \App\Modules\VoucherCart\Entity\VoucherOrderVoucher** @ORM\ManyToMany(targetEntity="App\Modules\VoucherCart\Entity\VoucherOrderVoucher", mappedBy="packageVouchers")*/private $orderVoucher;/*** @var \App\Admin\Modules\Store\Entity\StoreOrder** @ORM\OneToMany(targetEntity="App\Admin\Modules\Store\Entity\StoreOrder", mappedBy="voucher")**/private $storeOrder;/*** @var \App\Modules\TicketCart\Entity\TicketOrderTicket** @ORM\ManyToMany(targetEntity="App\Modules\TicketCart\Entity\TicketOrderTicket", mappedBy="vouchers")**/private $ticket;/*** @var \App\Admin\Modules\Contract\Entity\Contract** @ORM\OneToMany(targetEntity="App\Admin\Modules\Contract\Entity\Contract", mappedBy="voucher")*/private $contract;/*** @var \App\Admin\Modules\Contract\Entity\ContractLead** @ORM\OneToMany(targetEntity="App\Admin\Modules\Contract\Entity\ContractLead", mappedBy="voucher")*/private $contractLead;/*** @var \App\Admin\Modules\MeetingScheduler\Entity\Meeting** @ORM\OneToMany(targetEntity="App\Admin\Modules\MeetingScheduler\Entity\Meeting", mappedBy="voucher")*/private $meeting;/*** @var \App\Modules\RecommendationVoucherForm\Entity\RecommendationVoucherForm** @ORM\OneToMany(targetEntity="App\Modules\RecommendationVoucherForm\Entity\RecommendationVoucherForm", mappedBy="voucher")*/private $recommendationVoucherForm;public function __construct(){$this->kind = self::KIND_VOUCHER;$this->type = self::TYPE_PACKAGE_VOUCHER;$this->status = self::STATUS_UNREGISTERED;$this->notes = new ArrayCollection();$this->orderVoucher = new ArrayCollection();$this->storeOrder = new ArrayCollection();$this->ticket = new ArrayCollection();$this->contract = new ArrayCollection();$this->contractLead = new ArrayCollection();$this->meeting = new ArrayCollection();$this->recommendationVoucherForm = new ArrayCollection();}private function _oneToOneGetFromCollection($propertyName){if ($this->$propertyName && count($this->$propertyName))return $this->$propertyName->first();elsereturn null;}private function _oneToOneAddToCollection($propertyName, $value){if (!$this->$propertyName)$this->$propertyName = new ArrayCollection();elseif (count($this->$propertyName))$this->$propertyName->removeElement($this->$propertyName->first());$value->setVoucher($this);$this->$propertyName[] = $value;return $this;}public function getId(): ?string{return $this->id;}public function setStoreOrder(?StoreOrder $storeOrder): self{return $this->_oneToOneAddToCollection('storeOrder', $storeOrder);}public function getStoreOrder(): ?StoreOrder{return $this->_oneToOneGetFromCollection('storeOrder');}public function setTicket(?TicketOrderTicket $ticket): self{return $this->_oneToOneAddToCollection('ticket', $ticket);}public function getTicket(): ?TicketOrderTicket{return $this->_oneToOneGetFromCollection('ticket');}public function setContract(?Contract $contract): self{return $this->_oneToOneAddToCollection('contract', $contract);}public function getContract(): ?Contract{return $this->_oneToOneGetFromCollection('contract');}public function setContractLead(?ContractLead $contractLead): self{return $this->_oneToOneAddToCollection('contractLead', $contractLead);}public function getContractLead(): ?ContractLead{return $this->_oneToOneGetFromCollection('contractLead');}public function setMeeting(?Meeting $meeting): self{return $this->_oneToOneAddToCollection('meeting', $meeting);}public function getMeeting(): ?Meeting{return $this->_oneToOneGetFromCollection('meeting');}public function setRecommendationVoucherForm(?RecommendationVoucherForm $recommendationVoucherForm): self{return $this->_oneToOneAddToCollection('recommendationVoucherForm', $recommendationVoucherForm);}public function getRecommendationVoucherForm(): ?RecommendationVoucherForm{return $this->_oneToOneGetFromCollection('recommendationVoucherForm');}public function getFullNumber(){return mb_strtoupper($this->package->getPrefixCode() . '-' . $this->number, 'UTF-8');}public function getVoucherValue(){return $this->amValue;}public function getNumber(): ?string{return $this->number;}public function setNumber(string $number): self{$this->number = $number;return $this;}public function getStatus(): ?int{return $this->status;}public function setStatus(int $status): self{$this->status = $status;return $this;}public function getPackage(): ?VoucherPackage{return $this->package;}public function setPackage(?VoucherPackage $package): self{$this->package = $package;return $this;}public function getUser(): ?User{return $this->user;}public function setUser(?User $user, bool $setUserVoucher = true): self{if ($user && $setUserVoucher)$user->setVoucher($this, false);$this->user = $user;return $this;}public function getRegisteredAt(): ?\DateTimeInterface{return $this->registeredAt;}public function setRegisteredAt(?\DateTimeInterface $registeredAt): self{$this->registeredAt = $registeredAt;return $this;}public function getAddedAt(): ?\DateTimeInterface{return $this->addedAt;}public function setAddedAt(\DateTimeInterface $addedAt): self{$this->addedAt = $addedAt;return $this;}public function getAmValue(): ?int{if ($this->amValue !== null)return $this->amValue;elsereturn $this->package ? $this->package->getAmValue() : null;}public function setAmValue(?int $amValue): self{$this->amValue = $amValue;return $this;}public function getType(): ?int{return $this->type;}public function setType(int $type): self{$this->type = $type;return $this;}public function getUsedAt(): ?\DateTimeInterface{return $this->usedAt;}public function setUsedAt(?\DateTimeInterface $usedAt): self{$this->usedAt = $usedAt;return $this;}/*** @return Collection<int, VoucherPackageVoucherNote>*/public function getNotes(): Collection{return $this->notes;}public function addNote(VoucherPackageVoucherNote $note): self{if (!$this->notes->contains($note)) {$this->notes->add($note);$note->setVoucher($this);}return $this;}public function removeNote(VoucherPackageVoucherNote $note): self{if ($this->notes->removeElement($note)) {// set the owning side to null (unless already changed)if ($note->getVoucher() === $this) {$note->setVoucher(null);}}return $this;}/*** @return Collection<int, VoucherOrderVoucher>*/public function getOrderVoucher(): Collection{return $this->orderVoucher;}public function addOrderVoucher(VoucherOrderVoucher $orderVoucher): self{if (!$this->orderVoucher->contains($orderVoucher)) {$this->orderVoucher->add($orderVoucher);$orderVoucher->addPackageVoucher($this);}return $this;}public function removeOrderVoucher(VoucherOrderVoucher $orderVoucher): self{if ($this->orderVoucher->removeElement($orderVoucher)) {$orderVoucher->removePackageVoucher($this);}return $this;}public function getKind(): ?int{return $this->kind;}public function setKind(int $kind): self{$this->kind = $kind;return $this;}public function getFirstName(): ?string{return $this->firstName;}public function setFirstName(?string $firstName): self{$this->firstName = $firstName;return $this;}public function getLastName(): ?string{return $this->lastName;}public function setLastName(?string $lastName): self{$this->lastName = $lastName;return $this;}public function getEventName(): ?string{return $this->eventName;}public function setEventName(?string $eventName): self{$this->eventName = $eventName;return $this;}public function getUsageCount(): ?int{return $this->usageCount;}public function setUsageCount(?int $usageCount): self{$this->usageCount = $usageCount;return $this;}public function getReusableVoucherRedeemAdminNotifyDate(): ?\DateTimeInterface{return $this->reusableVoucherRedeemAdminNotifyDate;}public function setReusableVoucherRedeemAdminNotifyDate(?\DateTimeInterface $reusableVoucherRedeemAdminNotifyDate): self{$this->reusableVoucherRedeemAdminNotifyDate = $reusableVoucherRedeemAdminNotifyDate;return $this;}public function getEmail(): ?string{return $this->email;}public function setEmail(?string $email): self{$this->email = $email;return $this;}public function getSentToEmail(): ?string{return $this->sentToEmail;}public function setSentToEmail(?string $sentToEmail): self{$this->sentToEmail = $sentToEmail;return $this;}public function getPhysicallyHandedOverTo(): ?string{return $this->physicallyHandedOverTo;}public function setPhysicallyHandedOverTo(?string $physicallyHandedOverTo): self{$this->physicallyHandedOverTo = $physicallyHandedOverTo;return $this;}}