<?php

namespace OfficeBrain\Bundle\OrderBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
 * OrderShippingDetail
 *
 * @ORM\Table(name="tbl_order_shipping_detail", options={"type"="InnoDB","charset"="utf8","collate"="utf8_unicode_ci"})
 * @ORM\Entity(repositoryClass="OfficeBrain\Bundle\OrderBundle\Entity\OrderShippingDetailRepository")
 */
class OrderShippingDetail
{
   /**
     * @var integer
     *
     * @ORM\Column(name="id",type="bigint", length=20 , options={"unsigned"=true})
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

     /**
     * @ORM\OneToOne(targetEntity="OrderProduct", inversedBy="orderShippingDetail")
     * @ORM\JoinColumn(name="order_product_id", referencedColumnName="id")
     */
    private $orderProductId;

    /**
     * @var integer
     *
     * @ORM\Column(name="tracking_id", type="string", length=255, nullable=true)
     */
    private $trackingId;

    /**
     * @var string
     *
     * @ORM\Column(name="shipping_type_admin", type="string", length=255, nullable=true)
     */
    private $shippingTypeAdmin;
    
    /**
     * @var integer
     *
     * @ORM\Column(name="status_id", type="integer", length=1, nullable=true)
     */
    private $statusId=0;
    
    /**
     * @var string
     *
     * @ORM\Column(name="status_code", type="string", length=255, nullable=true)
     */
    private $statusCode='pending';
    
    /**
     * @var string
     *
     * @ORM\Column(name="shipping_type", type="string", length=255, nullable=true)
     */
    private $shippingType;
    
    /**
     * @var string
     *
     * @ORM\Column(name="shipper_account", type="string", length=255, nullable=true)
     */
    private $shipperAccount;
	
    /**
     * @var string
     *
     * @ORM\Column(name="carrier_type", type="string", length=255, nullable=true)
     */
    private $carrierType;
    
    /**
     * @var string
     *
     * @ORM\Column(name="service_type", type="string", length=255, nullable=true)
     */
    private $serviceType;

    /**
     * @var string
     *
     * @ORM\Column(name="shipping_charge", type="string", length=255, nullable=true)
     */
    private $shippingCharge;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=255, nullable=true)
     */
    private $name;

    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=255, nullable=true)
     */
    private $email;

    /**
     * @var string
     *
     * @ORM\Column(name="street1", type="string", length=255, nullable=true)
     */
    private $street1;

    /**
     * @var string
     *
     * @ORM\Column(name="street2", type="string", length=255, nullable=true)
     */
    private $street2;

    /**
     * @var integer
     *
     * @ORM\Column(name="country_name", type="string", length=255, nullable=true)
     */
    private $countryName;

    /**
     * @var integer
     *
     * @ORM\Column(name="state_name", type="string", length=255, nullable=true)
     */
    private $stateName;

    /**
     * @var integer
     *
     * @ORM\Column(name="city_name", type="string", length=255, nullable=true)
     */
    private $cityName;

    /**
     * @var integer
     *
     * @ORM\Column(name="country_id", type="bigint",length=20, options={"unsigned"=true})
     */
    private $countryId;

    /**
     * @var integer
     *
     * @ORM\Column(name="state_id", type="bigint",length=20, options={"unsigned"=true})
     */
    private $stateId;

    /**
     * @var integer
     *
     * @ORM\Column(name="city_id", type="bigint",length=20, options={"unsigned"=true})
     */
    private $cityId;

    /**
     * @var string
     *
     * @ORM\Column(name="zip_code", type="string", length=255, nullable=true)
     */
    private $zipCode;

    /**
     * @var string
     *
     * @ORM\Column(name="extension", type="string", length=255, nullable=true)
     */
    private $extension;

    /**
     * @var string
     *
     * @ORM\Column(name="phone", type="string", length=255, nullable=true)
     */
    private $phone;


    /**
     * @var string
     *
     * @ORM\Column(name="mobile", type="string", length=255, nullable=true)
     */
    private $mobile;


    /**
     * @var string
     *
     * @ORM\Column(name="fax", type="string", length=255, nullable=true)
     */
    private $fax;

    /**
     * @var string
     *
     * @ORM\Column(name="website", type="string", length=255, nullable=true)
     */
    private $website;

    /**
     * @var string
     *
     * @ORM\Column(name="company_name", type="string", length=255, nullable=true)
     */
    private $companyName;

    /**
     * @var string
     *
     * @ORM\Column(name="company_number", type="string", length=255, nullable=true)
     */
    private $companyNumber;

    /**
     * @var string
     *
     * @ORM\Column(name="tax", type="decimal",precision=11, scale=2, options={"default" = 0.00})
     */
    private $tax = '0.00';
    
    /**
     * @var integer
     *
     * @ORM\Column(name="upated_uid", type="bigint", length=20, options={"unsigned"=true}, nullable=true)
     */
    private $upatedUid;
    
    /**
     * @var \DateTime
     * @Gedmo\Timestampable(on="update")
     * @ORM\Column(name="updated_at", type="datetime", nullable=true)
     */
    private $updatedAt;
    
    /**
     * @var integer
     *
     * @ORM\Column(name="selected_address_id", type="integer", nullable=true)
     */
    private $selectedAddressId;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="on_hand_date", type="datetime", nullable=true)
     */
    private $onHandDate;
    
    /**
     * @var \DateTime
     *
     * @ORM\Column(name="ship_date", type="datetime", nullable=true)
     */
    private $shipDate;


    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set trackingId
     *
     * @param string $trackingId
     *
     * @return OrderShippingDetail
     */
    public function setTrackingId($trackingId)
    {
        $this->trackingId = $trackingId;

        return $this;
    }

    /**
     * Get trackingId
     *
     * @return string
     */
    public function getTrackingId()
    {
        return $this->trackingId;
    }

    /**
     * Set shippingTypeAdmin
     *
     * @param string $shippingTypeAdmin
     *
     * @return OrderShippingDetail
     */
    public function setShippingTypeAdmin($shippingTypeAdmin)
    {
        $this->shippingTypeAdmin = $shippingTypeAdmin;

        return $this;
    }

    /**
     * Get shippingTypeAdmin
     *
     * @return string
     */
    public function getShippingTypeAdmin()
    {
        return $this->shippingTypeAdmin;
    }

    /**
     * Set statusId
     *
     * @param integer $statusId
     *
     * @return OrderShippingDetail
     */
    public function setStatusId($statusId)
    {
        $this->statusId = $statusId;

        return $this;
    }

    /**
     * Get statusId
     *
     * @return integer
     */
    public function getStatusId()
    {
        return $this->statusId;
    }

    /**
     * Set statusCode
     *
     * @param string $statusCode
     *
     * @return OrderShippingDetail
     */
    public function setStatusCode($statusCode)
    {
        $this->statusCode = $statusCode;

        return $this;
    }

    /**
     * Get statusCode
     *
     * @return string
     */
    public function getStatusCode()
    {
        return $this->statusCode;
    }

    /**
     * Set shippingType
     *
     * @param string $shippingType
     *
     * @return OrderShippingDetail
     */
    public function setShippingType($shippingType)
    {
        $this->shippingType = $shippingType;

        return $this;
    }

    /**
     * Get shippingType
     *
     * @return string
     */
    public function getShippingType()
    {
        return $this->shippingType;
    }

    /**
     * Set serviceType
     *
     * @param string $serviceType
     *
     * @return OrderShippingDetail
     */
    public function setServiceType($serviceType)
    {
        $this->serviceType = $serviceType;

        return $this;
    }

    /**
     * Get serviceType
     *
     * @return string
     */
    public function getServiceType()
    {
        return $this->serviceType;
    }

    /**
     * Set shippingCharge
     *
     * @param string $shippingCharge
     *
     * @return OrderShippingDetail
     */
    public function setShippingCharge($shippingCharge)
    {
        $this->shippingCharge = $shippingCharge;

        return $this;
    }

    /**
     * Get shippingCharge
     *
     * @return string
     */
    public function getShippingCharge()
    {
        return $this->shippingCharge;
    }

    /**
     * Set name
     *
     * @param string $name
     *
     * @return OrderShippingDetail
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * Get name
     *
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Set email
     *
     * @param string $email
     *
     * @return OrderShippingDetail
     */
    public function setEmail($email)
    {
        $this->email = $email;

        return $this;
    }

    /**
     * Get email
     *
     * @return string
     */
    public function getEmail()
    {
        return $this->email;
    }

    /**
     * Set street1
     *
     * @param string $street1
     *
     * @return OrderShippingDetail
     */
    public function setStreet1($street1)
    {
        $this->street1 = $street1;

        return $this;
    }

    /**
     * Get street1
     *
     * @return string
     */
    public function getStreet1()
    {
        return $this->street1;
    }

    /**
     * Set street2
     *
     * @param string $street2
     *
     * @return OrderShippingDetail
     */
    public function setStreet2($street2)
    {
        $this->street2 = $street2;

        return $this;
    }

    /**
     * Get street2
     *
     * @return string
     */
    public function getStreet2()
    {
        return $this->street2;
    }

    /**
     * Set countryName
     *
     * @param string $countryName
     *
     * @return OrderShippingDetail
     */
    public function setCountryName($countryName)
    {
        $this->countryName = $countryName;

        return $this;
    }

    /**
     * Get countryName
     *
     * @return string
     */
    public function getCountryName()
    {
        return $this->countryName;
    }

    /**
     * Set stateName
     *
     * @param string $stateName
     *
     * @return OrderShippingDetail
     */
    public function setStateName($stateName)
    {
        $this->stateName = $stateName;

        return $this;
    }

    /**
     * Get stateName
     *
     * @return string
     */
    public function getStateName()
    {
        return $this->stateName;
    }

    /**
     * Set cityName
     *
     * @param string $cityName
     *
     * @return OrderShippingDetail
     */
    public function setCityName($cityName)
    {
        $this->cityName = $cityName;

        return $this;
    }

    /**
     * Get cityName
     *
     * @return string
     */
    public function getCityName()
    {
        return $this->cityName;
    }

    /**
     * Set zipCode
     *
     * @param string $zipCode
     *
     * @return OrderShippingDetail
     */
    public function setZipCode($zipCode)
    {
        $this->zipCode = $zipCode;

        return $this;
    }

    /**
     * Get zipCode
     *
     * @return string
     */
    public function getZipCode()
    {
        return $this->zipCode;
    }

    /**
     * Set extension
     *
     * @param string $extension
     *
     * @return OrderShippingDetail
     */
    public function setExtension($extension)
    {
        $this->extension = $extension;

        return $this;
    }

    /**
     * Get extension
     *
     * @return string
     */
    public function getExtension()
    {
        return $this->extension;
    }

    /**
     * Set phone
     *
     * @param string $phone
     *
     * @return OrderShippingDetail
     */
    public function setPhone($phone)
    {
        $this->phone = $phone;

        return $this;
    }

    /**
     * Get phone
     *
     * @return string
     */
    public function getPhone()
    {
        return $this->phone;
    }

    /**
     * Set mobile
     *
     * @param string $mobile
     *
     * @return OrderShippingDetail
     */
    public function setMobile($mobile)
    {
        $this->mobile = $mobile;
    
        return $this;
    }
    
    /**
     * Get mobile
     *
     * @return string
     */
    public function getMobile()
    {
        return $this->mobile;
    }


    /**
     * Set fax
     *
     * @param string $fax
     *
     * @return OrderShippingDetail
     */
    public function setFax($fax)
    {
        $this->fax = $fax;

        return $this;
    }

    /**
     * Get fax
     *
     * @return string
     */
    public function getFax()
    {
        return $this->fax;
    }

    /**
     * Set website
     *
     * @param string $website
     *
     * @return OrderShippingDetail
     */
    public function setWebsite($website)
    {
        $this->website = $website;

        return $this;
    }

    /**
     * Get website
     *
     * @return string
     */
    public function getWebsite()
    {
        return $this->website;
    }

    /**
     * Set companyName
     *
     * @param string $companyName
     *
     * @return OrderShippingDetail
     */
    public function setCompanyName($companyName)
    {
        $this->companyName = $companyName;

        return $this;
    }

    /**
     * Get companyName
     *
     * @return string
     */
    public function getCompanyName()
    {
        return $this->companyName;
    }

    /**
     * Set companyNumber
     *
     * @param string $companyNumber
     *
     * @return OrderShippingDetail
     */
    public function setCompanyNumber($companyNumber)
    {
        $this->companyNumber = $companyNumber;

        return $this;
    }

    /**
     * Get companyNumber
     *
     * @return string
     */
    public function getCompanyNumber()
    {
        return $this->companyNumber;
    }

    /**
     * Set upatedUid
     *
     * @param integer $upatedUid
     *
     * @return OrderShippingDetail
     */
    public function setUpatedUid($upatedUid)
    {
        $this->upatedUid = $upatedUid;

        return $this;
    }

    /**
     * Get upatedUid
     *
     * @return integer
     */
    public function getUpatedUid()
    {
        return $this->upatedUid;
    }

    /**
     * Set updatedAt
     *
     * @param \DateTime $updatedAt
     *
     * @return OrderShippingDetail
     */
    public function setUpdatedAt($updatedAt)
    {
        $this->updatedAt = $updatedAt;

        return $this;
    }

    /**
     * Get updatedAt
     *
     * @return \DateTime
     */
    public function getUpdatedAt()
    {
        return $this->updatedAt;
    }

    /**
     * Set orderProductId
     *
     * @param \OfficeBrain\Bundle\OrderBundle\Entity\OrderProduct $orderProductId
     *
     * @return OrderShippingDetail
     */
    public function setOrderProductId(\OfficeBrain\Bundle\OrderBundle\Entity\OrderProduct $orderProductId = null)
    {
        $this->orderProductId = $orderProductId;

        return $this;
    }

    /**
     * Get orderProductId
     *
     * @return \OfficeBrain\Bundle\OrderBundle\Entity\OrderProduct
     */
    public function getOrderProductId()
    {
        return $this->orderProductId;
    }

    /**
     * Set carrierType
     *
     * @param string $carrierType
     *
     * @return OrderShippingDetail
     */
    public function setCarrierType($carrierType)
    {
        $this->carrierType = $carrierType;

        return $this;
    }

    /**
     * Get carrierType
     *
     * @return string
     */
    public function getCarrierType()
    {
        return $this->carrierType;
    }

    /**
     * Set shipperAccount
     *
     * @param string $shipperAccount
     *
     * @return OrderShippingDetail
     */
    public function setShipperAccount($shipperAccount)
    {
        $this->shipperAccount = $shipperAccount;

        return $this;
    }

    /**
     * Get shipperAccount
     *
     * @return string
     */
    public function getShipperAccount()
    {
        return $this->shipperAccount;
    }

    /**
     * Set tax
     *
     * @param string $tax
     *
     * @return OrderShippingDetail
     */
    public function setTax($tax)
    {
        $this->tax = $tax;

        return $this;
    }

    /**
     * Get tax
     *
     * @return string
     */
    public function getTax()
    {
        return $this->tax;
    }

    /**
     * Set selectedAddressId
     *
     * @param boolean $selectedAddressId
     *
     * @return QuoteShippingDetail
     */
    public function setSelectedAddressId($selectedAddressId)
    {
    	$this->selectedAddressId = $selectedAddressId;
    
    	return $this;
    }
    
    /**
     * Get selectedAddressId
     *
     * @return boolean
     */
    public function getSelectedAddressId()
    {
    	return $this->selectedAddressId;
    }

    /**
     * Set countryId
     *
     * @param integer $countryId
     *
     * @return OrderShippingDetail
     */
    public function setCountryId($countryId)
    {
        $this->countryId = $countryId;

        return $this;
    }

    /**
     * Get countryId
     *
     * @return integer
     */
    public function getCountryId()
    {
        return $this->countryId;
    }

    /**
     * Set stateId
     *
     * @param integer $stateId
     *
     * @return OrderShippingDetail
     */
    public function setStateId($stateId)
    {
        $this->stateId = $stateId;

        return $this;
    }

    /**
     * Get stateId
     *
     * @return integer
     */
    public function getStateId()
    {
        return $this->stateId;
    }

    /**
     * Set cityId
     *
     * @param integer $cityId
     *
     * @return OrderShippingDetail
     */
    public function setCityId($cityId)
    {
        $this->cityId = $cityId;

        return $this;
    }

    /**
     * Get cityId
     *
     * @return integer
     */
    public function getCityId()
    {
        return $this->cityId;
    }

    /**
     * Set onHandDate
     *
     * @param \DateTime $onHandDate
     * @return RequestQuoteMaster
     */
    public function setOnHandDate(\DateTime $onHandDate)
    {   
        $this->onHandDate = $onHandDate;
    
        return $this;
    }
    
    /**
     * Get onHandDate
     *
     * @return \DateTime
     */
    public function getOnHandDate()
    {
        return $this->onHandDate;
    }
    
    /**
     * Set ShipDate
     *
     * @param \DateTime $ShipDate
     * @return OrderShippingDetail
     */
    public function setShipDate(\DateTime $shipDate)
    {   
        $this->shipDate = $shipDate;
    
        return $this;
    }
    
    /**
     * Get ShipDate
     *
     * @return \DateTime
     */
    public function getShipDate()
    {
        return $this->shipDate;
    }
}
