<?php
namespace App\Daikin\BaseBundle\Entity\EmergencyStock;
use App\Daikin\BaseBundle\Entity\AbstractBaseEntity;
use App\Daikin\BaseBundle\Entity\AddressTrait;
use App\Daikin\BaseBundle\Entity\GeoCoordinateInterface;
use App\Daikin\BaseBundle\Entity\GeoCoordinateTrait;
use App\Daikin\BaseBundle\Entity\SparePartsPart;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="warehouse")
* @ORM\Entity(repositoryClass="App\Daikin\BaseBundle\Repository\EmergencyStock\WarehouseRepository")
*/
class Warehouse extends AbstractBaseEntity implements GeoCoordinateInterface
{
use AddressTrait, GeoCoordinateTrait;
/**
* @var DateTime|null
* @ORM\Column(name="start_time", type="datetime", nullable=true)
*/
protected $startTime;
/**
* @var DateTime|null
* @ORM\Column(name="end_time", type="datetime", nullable=true)
*/
protected $endTime;
/**
* @var string
*
* @ORM\Column(name="locationName", type="string")
*/
private $locationName;
/**
* @var string
*
* @ORM\Column(type="string", nullable=true)
*/
private $company;
/**
* @var string
*
* @ORM\Column(type="string", nullable=true)
*/
private $email;
/**
* @var string
*
* @ORM\Column(type="string", nullable=true)
*/
private $phone;
/**
* @var string
*
* @ORM\Column(name="contactPerson", type="string", nullable=true)
*/
private $contactPerson;
/**
* @var string
*
* @ORM\Column(type="string", unique=true)
*/
private $account;
/**
* @var string
*
* @ORM\Column(type="string", unique=true)
*/
private $customer;
/**
* @var string
*
* @ORM\Column(type="string")
*/
private $password;
/**
* @var string
*
* @ORM\Column(name="sessionId", type="string")
*/
private $sessionId;
public function __construct()
{
parent::__construct();
}
/**
* @return DateTime|null
*/
public function getStartTime(): ?DateTime
{
return $this->startTime;
}
/**
* @param DateTime|null $startTime
* @return Warehouse
*/
public function setStartTime(?DateTime $startTime): Warehouse
{
$this->startTime = $startTime;
return $this;
}
/**
* @return DateTime|null
*/
public function getEndTime(): ?DateTime
{
return $this->endTime;
}
/**
* @param DateTime|null $endTime
* @return Warehouse
*/
public function setEndTime(?DateTime $endTime): Warehouse
{
$this->endTime = $endTime;
return $this;
}
public function isActiveForShipping(): bool
{
if ($this->isDeleted()) {
return false;
}
$now = new DateTime();
if ($this->getEndTime() && $this->getEndTime() < $now) {
return false;
}
if ($this->getStartTime() && $this->getStartTime() > $now) {
return false;
}
return true;
}
/**
* @return string
*/
public function getLocationName()
{
return $this->locationName;
}
/**
* @param string $locationName
* @return Warehouse
*/
public function setLocationName($locationName)
{
$this->locationName = $locationName;
return $this;
}
/**
* @return string
*/
public function getEmail()
{
return $this->email;
}
/**
* @param string $email
* @return Warehouse
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* @return string
*/
public function getPhone()
{
return $this->phone;
}
/**
* @param string $phone
* @return Warehouse
*/
public function setPhone($phone)
{
$this->phone = $phone;
return $this;
}
/**
* @return string
*/
public function getContactPerson()
{
return $this->contactPerson;
}
/**
* @param string $contactPerson
* @return Warehouse
*/
public function setContactPerson($contactPerson)
{
$this->contactPerson = $contactPerson;
return $this;
}
/**
* @return string
*/
public function getAccount()
{
return $this->account;
}
/**
* @param string $account
* @return Warehouse
*/
public function setAccount($account)
{
$this->account = $account;
return $this;
}
/**
* @return string
*/
public function getCustomer()
{
return $this->customer;
}
/**
* @param string $customer
* @return Warehouse
*/
public function setCustomer($customer)
{
$this->customer = $customer;
return $this;
}
/**
* @return string
*/
public function getCompany()
{
return $this->company;
}
/**
* @param string $company
* @return Warehouse
*/
public function setCompany($company)
{
$this->company = $company;
return $this;
}
/**
* @return string
*/
public function getPassword()
{
return $this->password;
}
/**
* @param string $password
*/
public function setPassword($password)
{
$this->password = $password;
}
/**
* @return string
*/
public function getSessionId()
{
return $this->sessionId;
}
/**
* @param string $sessionId
* @return Warehouse
*/
public function setSessionId($sessionId)
{
$this->sessionId = $sessionId;
return $this;
}
}