app/Plugin/ProductOption42/Entity/OrderItemOption.php line 55

Open in your IDE?
  1. <?php
  2. /*
  3.  * Plugin Name : ProductOption
  4.  *
  5.  * Copyright (C) BraTech Co., Ltd. All Rights Reserved.
  6.  * http://www.bratech.co.jp/
  7.  *
  8.  * For the full copyright and license information, please view the LICENSE
  9.  * file that was distributed with this source code.
  10.  */
  11. namespace Plugin\ProductOption42\Entity;
  12. use Doctrine\ORM\Mapping as ORM;
  13. use Plugin\ProductOption42\Entity\OptionCategory;
  14. /**
  15.  * OrderItemOption
  16.  *
  17.  * @ORM\Table(name="plg_productoption_dtb_order_item_option")
  18.  * @ORM\InheritanceType("SINGLE_TABLE")
  19.  * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255)
  20.  * @ORM\HasLifecycleCallbacks()
  21.  * @ORM\Entity(repositoryClass="Plugin\ProductOption42\Repository\OrderItemOptionRepository")
  22.  */
  23. class OrderItemOption extends \Eccube\Entity\AbstractEntity
  24. {
  25.     private $_calc false;
  26.     private $option_price 0;
  27.     private $option_tax 0;
  28.     private $delivery_free_flg false;
  29.     private $option_DeliveryDays 0//発送日数
  30.     private $arrOrderItemOptionCategory = [];
  31.     public function _calc()
  32.     {
  33.         if (!$this->_calc) {
  34.             foreach ($this->getOrderItemOptionCategories() as $OrderItemOptionCategory) {
  35.                 $price $OrderItemOptionCategory->getPrice();
  36.                 $tax $OrderItemOptionCategory->getTax();
  37.                 if(is_numeric($price)){
  38.                     $this->option_price += $price;
  39.                     $this->option_tax += $tax;
  40.                 }
  41.                 if(!$this->delivery_free_flg){
  42.                     $flg $OrderItemOptionCategory->getDeliveryFreeFlg();
  43.                     if($flg == OptionCategory::ON){
  44.                         $this->delivery_free_flg true;
  45.                     }
  46.                 }
  47.                 //発送日数
  48.                 
  49.                 $DeliveryDays $OrderItemOptionCategory->getDeliveryDays();
  50.                 dump($OrderItemOptionCategory);
  51.                 dump($DeliveryDays);
  52.                 if(is_numeric($DeliveryDays)){
  53.                     $this->option_DeliveryDays += $DeliveryDays;
  54.                 }
  55.                 $this->arrOrderItemOptionCategory[$this->option_id] = $OrderItemOptionCategory->getValue();
  56.             }
  57.             $this->_calc true;
  58.         }
  59.     }
  60.     public function getOptionPrice()
  61.     {
  62.         $this->_calc();
  63.         return $this->option_price;
  64.     }
  65.     public function getOptionTax()
  66.     {
  67.         $this->_calc();
  68.         return $this->option_tax;
  69.     }
  70.     public function getDeliveryFreeFlg()
  71.     {
  72.         $this->_calc();
  73.         return $this->delivery_free_flg;
  74.     }
  75.     public function getArrOrderItemOptionCategory()
  76.     {
  77.         $this->_calc();
  78.         return $this->arrOrderItemOptionCategory;
  79.     }
  80.     //発送日数
  81.     public function getOptionDeliveryDays()
  82.     {
  83.         $this->_calc();
  84.         return $this->option_DeliveryDays;
  85.     }
  86.     /**
  87.      * @var int
  88.      *
  89.      * @ORM\Column(name="id", type="integer", options={"unsigned":true})
  90.      * @ORM\Id
  91.      * @ORM\GeneratedValue(strategy="IDENTITY")
  92.      */
  93.     private $id;
  94.     /**
  95.      * @var string|null
  96.      *
  97.      * @ORM\Column(name="label", type="string", length=4000, nullable=true)
  98.      */
  99.     private $label;
  100.     /**
  101.      * @var int
  102.      *
  103.      * @ORM\Column(name="sort_no", type="integer")
  104.      */
  105.     private $sort_no;
  106.     /**
  107.      * @var int
  108.      *
  109.      * @ORM\Column(name="option_id", type="integer")
  110.      */
  111.     private $option_id;
  112.     /**
  113.      * @var \Eccube\Entity\OrderItem
  114.      *
  115.      * @ORM\ManyToOne(targetEntity="Eccube\Entity\OrderItem", inversedBy="OrderItemOptions")
  116.      * @ORM\JoinColumns({
  117.      *   @ORM\JoinColumn(name="order_item_id", referencedColumnName="id")
  118.      * })
  119.      */
  120.     private $OrderItem;
  121.     /**
  122.      * @var \Doctrine\Common\Collections\Collection
  123.      *
  124.      * @ORM\OneToMany(targetEntity="Plugin\ProductOption42\Entity\OrderItemOptionCategory", mappedBy="OrderItemOption", cascade={"persist","remove"})
  125.      * @ORM\OrderBy({
  126.      *     "sort_no"="ASC"
  127.      * })
  128.      */
  129.     private $OrderItemOptionCategories;
  130.     public function __construct()
  131.     {
  132.         $this->OrderItemOptionCategories = new \Doctrine\Common\Collections\ArrayCollection();
  133.     }
  134.     public function getId()
  135.     {
  136.         return $this->id;
  137.     }
  138.     public function setLabel($label)
  139.     {
  140.         $this->label $label;
  141.         return $this;
  142.     }
  143.     public function getLabel()
  144.     {
  145.         return $this->label;
  146.     }
  147.     public function setSortNo($sortNo)
  148.     {
  149.         $this->sort_no $sortNo;
  150.         return $this;
  151.     }
  152.     public function getSortNo()
  153.     {
  154.         return $this->sort_no;
  155.     }
  156.     public function setOptionId($optionId)
  157.     {
  158.         $this->option_id $optionId;
  159.         return $this;
  160.     }
  161.     public function getOptionId()
  162.     {
  163.         return $this->option_id;
  164.     }
  165.     public function setOrderItem($orderItem)
  166.     {
  167.         $this->OrderItem $orderItem;
  168.         return $this;
  169.     }
  170.     public function getOrderItem()
  171.     {
  172.         return $this->OrderItem;
  173.     }
  174.     public function addOrderItemOptionCategory(\Plugin\ProductOption42\Entity\OrderItemOptionCategory $orderItemOptionCategory)
  175.     {
  176.         $this->OrderItemOptionCategories[] = $orderItemOptionCategory;
  177.         return $this;
  178.     }
  179.     public function removeOrderItemOptionCategory(\Plugin\ProductOption42\Entity\OrderItemOptionCategory $orderItemOptionCategory)
  180.     {
  181.         $this->OrderItemOptionCategories->removeElement($orderItemOptionCategory);
  182.     }
  183.     public function getOrderItemOptionCategories()
  184.     {
  185.         return $this->OrderItemOptionCategories;
  186.     }
  187. }