vendor/lm/entity/src/Jancode.php line 319

Open in your IDE?
  1. <?php
  2. namespace Lm\Entity;
  3. use Lm\Entity\Common\DbEntity;
  4. use Lm\Service\Db\SqlService;
  5. class Jancode extends DbEntity
  6. {
  7.     /**
  8.      * @inheritDoc
  9.      */
  10.     const TABLE_NAME 'jancode_table';
  11.     /**
  12.      * @inheritDoc
  13.      */
  14.     const COLUMNS = [
  15.         [
  16.             'name' => 'jan_id',
  17.             'type' => DbEntity::COLUMN_TYPE_INT,    // { required: true }
  18.             'nullable' => false,        // { required: false, default: true }
  19.             'default' => null,            // { required: false, default: null }
  20.             'required' => true,            // { required: false, default: true }
  21.         ],
  22.     ];
  23.     /**
  24.      * @inheritDoc
  25.      */
  26.     const CONSTRAINTS = [
  27.         [
  28.             'type' => self::CONSTRAINT_TYPE_PRIMARY_KEY,
  29.             'columns' => [
  30.                 'jan_id',
  31.             ],
  32.         ],
  33.     ];
  34.     const STOCK_TYPE_BASE_STOCK 'jan_stock';
  35.     const STOCK_TYPE_LM_BICHIKU_STOCK 'jan_stock3';
  36.     const STOCK_TYPE_KEEP_STOCK 'jan_stock4';
  37.     const STOCK_TYPE_SECRET_STOCK 'jan_stock5';
  38.     const STOCK_TYPE_CHITOSE_LM_STOCK 'jan_stock6';
  39.     const STOCK_TYPE_CHITOSE_KAITORI_STOCK 'jan_stock7';
  40.     const STOCK_TYPE_CHITOSE_LM_BICHIKU_STOCK 'jan_stock8';
  41.     const STOCK_TYPE_CHITOSE_EXTERNAL_STOCK 'jan_stock9';
  42.     /**
  43.      * 返品不可フラグ - 返品不可でない
  44.      */
  45.     const IS_RETURN_UNAVAILABLE_NO 0;
  46.     /**
  47.      * 返品不可フラグ - 返品不可
  48.      */
  49.     const IS_RETURN_UNAVAILABLE_YES 1;
  50.     const STOCK_TYPE_LIST = [
  51.         [
  52.             'field' => self::STOCK_TYPE_LM_BICHIKU_STOCK,
  53.             'alias' => 'lm_stock',
  54.             'is_actual_stock' => true,
  55.             'is_base_stock' => false,
  56.         ],
  57.         [
  58.             'field' => self::STOCK_TYPE_KEEP_STOCK,
  59.             'alias' => 'keep_stock',
  60.             'is_actual_stock' => false,
  61.             'is_base_stock' => false,
  62.         ],
  63.         [
  64.             'field' => self::STOCK_TYPE_CHITOSE_LM_BICHIKU_STOCK,
  65.             'alias' => 'secret_stock4',
  66.             'is_actual_stock' => true,
  67.             'is_base_stock' => false,
  68.         ],
  69.         [
  70.             'field' => self::STOCK_TYPE_CHITOSE_LM_STOCK,
  71.             'alias' => 'secret_stock2',
  72.             'is_actual_stock' => true,
  73.             'is_base_stock' => false,
  74.         ],
  75.         [
  76.             'field' => self::STOCK_TYPE_CHITOSE_KAITORI_STOCK,
  77.             'alias' => 'secret_stock3',
  78.             'is_actual_stock' => true,
  79.             'is_base_stock' => false,
  80.         ],
  81.         [
  82.             'field' => self::STOCK_TYPE_BASE_STOCK,
  83.             'alias' => 'base_stock',
  84.             'is_actual_stock' => true,
  85.             'is_base_stock' => true,
  86.         ],
  87.         [
  88.             'field' => self::STOCK_TYPE_SECRET_STOCK,
  89.             'alias' => 'secret_stock',
  90.             'is_actual_stock' => false,
  91.             'is_base_stock' => false,
  92.         ],
  93.         [
  94.             'field' => self::STOCK_TYPE_CHITOSE_EXTERNAL_STOCK,
  95.             'alias' => 'secret_stock5',
  96.             'is_actual_stock' => false,
  97.             'is_base_stock' => false,
  98.         ],
  99.     ];
  100.     /**
  101.      * @var int
  102.      */
  103.     protected $janId;
  104.     /**
  105.      * @var string
  106.      */
  107.     protected $janJancode;
  108.     /**
  109.      * @var string
  110.      */
  111.     protected $janJancode2;
  112.     /**
  113.      * @var string
  114.      */
  115.     protected $janJancode3;
  116.     /**
  117.      * @var string
  118.      */
  119.     protected $janGoods;
  120.     /**
  121.      * @var string
  122.      */
  123.     protected $janColor;
  124.     /**
  125.      * @var string
  126.      */
  127.     protected $janPrice;
  128.     /**
  129.      * @var string
  130.      */
  131.     protected $janDdate;
  132.     /**
  133.      * @var string
  134.      */
  135.     protected $janShiireNo;
  136.     /**
  137.      * @var int
  138.      */
  139.     protected $janStock;
  140.     /**
  141.      * @var int
  142.      */
  143.     protected $janStock2;
  144.     /**
  145.      * @var int
  146.      */
  147.     protected $janStock3;
  148.     /**
  149.      * @var int
  150.      */
  151.     protected $janStock4;
  152.     /**
  153.      * @var int
  154.      */
  155.     protected $janStock5;
  156.     /**
  157.      * @var int
  158.      */
  159.     protected $janStock6;
  160.     /**
  161.      * @var int
  162.      */
  163.     protected $janStock7;
  164.     /**
  165.      * @var int
  166.      */
  167.     protected $janStock8;
  168.     /**
  169.      * @var int
  170.      */
  171.     protected $janStock9;
  172.     /**
  173.      * @var string
  174.      */
  175.     protected $janUdate;
  176.     /**
  177.      * @var int
  178.      */
  179.     protected $janSpecialPrice;
  180.     /**
  181.      * @var string
  182.      */
  183.     protected $janShiireColor;
  184.     /**
  185.      * @var string
  186.      */
  187.     protected $janUniform1ColorNumber;
  188.     /**
  189.      * @var int
  190.      */
  191.     protected $janNodisplay;
  192.     /**
  193.      * @var string
  194.      */
  195.     protected $janShinmen;
  196.     /**
  197.      * @var string
  198.      */
  199.     protected $janShiireSize;
  200.     /**
  201.      * @var string
  202.      */
  203.     protected $janStock3NyukaDate;
  204.     /**
  205.      * @var int
  206.      */
  207.     protected $janStock3NyukaSouko;
  208.     /**
  209.      * @var int
  210.      */
  211.     protected $janReplicationFlg;
  212.     /**
  213.      * @var string
  214.      */
  215.     protected $janReplicationSynchronizedAt;
  216.     /**
  217.      * @var int
  218.      */
  219.     protected $janReturnUnavailableFlg;
  220.     /**
  221.      * @var Goods
  222.      */
  223.     protected $goods;
  224.     /**
  225.      * @var GoodsColor
  226.      */
  227.     protected $goodsColor;
  228.     /**
  229.      * @var GoodsPrice
  230.      */
  231.     protected $goodsPrice;
  232.     /**
  233.      * @return int
  234.      */
  235.     public function getJanId()
  236.     {
  237.         return self::intNullable($this->janId);
  238.     }
  239.     /**
  240.      * @return string
  241.      */
  242.     public function getJanJancode()
  243.     {
  244.         return $this->janJancode;
  245.     }
  246.     /**
  247.      * @return string
  248.      */
  249.     public function getJanJancode2()
  250.     {
  251.         return $this->janJancode2;
  252.     }
  253.     /**
  254.      * @return string
  255.      */
  256.     public function getJanJancode3()
  257.     {
  258.         return $this->janJancode3;
  259.     }
  260.     /**
  261.      * @return int
  262.      */
  263.     public function getJanGoods()
  264.     {
  265.         return self::intNullable($this->janGoods);
  266.     }
  267.     /**
  268.      * @return int
  269.      */
  270.     public function getJanColor()
  271.     {
  272.         return self::intNullable($this->janColor);
  273.     }
  274.     /**
  275.      * @return int
  276.      */
  277.     public function getJanPrice()
  278.     {
  279.         return self::intNullable($this->janPrice);
  280.     }
  281.     /**
  282.      * @return string
  283.      */
  284.     public function getJanDdate()
  285.     {
  286.         return $this->janDdate;
  287.     }
  288.     /**
  289.      * @return string
  290.      */
  291.     public function getJanShiireNo()
  292.     {
  293.         return $this->janShiireNo;
  294.     }
  295.     /**
  296.      * @return int
  297.      */
  298.     public function getJanStock()
  299.     {
  300.         return self::intNullable($this->janStock);
  301.     }
  302.     /**
  303.      * @param int jJanStock $
  304.      * @return $this
  305.      */
  306.     public function decrementJanStock($janStock)
  307.     {
  308.         //
  309.         if ($this->janStock === null) {
  310.             // no operation.
  311.         } else if ($this->janStock >= $janStock) {
  312.             $this->janStock -= $janStock;
  313.         } else {
  314.             $this->janStock 0;
  315.         }
  316.         //
  317.         return $this;
  318.     }
  319.     /**
  320.      * @return int
  321.      */
  322.     public function getJanStock2()
  323.     {
  324.         return self::intNullable($this->janStock2);
  325.     }
  326.     /**
  327.      * @param int $janStock2
  328.      * @return $this
  329.      */
  330.     public function decrementJanStock2($janStock2)
  331.     {
  332.         //
  333.         if ($this->janStock2 === null) {
  334.             // no operation.
  335.         } else if ($this->janStock2 >= $janStock2) {
  336.             $this->janStock2 -= $janStock2;
  337.         } else {
  338.             $this->janStock2 null;
  339.         }
  340.         //
  341.         return $this;
  342.     }
  343.     /**
  344.      * @return int
  345.      */
  346.     public function getJanStock3()
  347.     {
  348.         return self::intNullable($this->janStock3);
  349.     }
  350.     /**
  351.      * @param int $janStock3
  352.      * @return $this
  353.      */
  354.     public function decrementJanStock3($janStock3)
  355.     {
  356.         //
  357.         if ($this->janStock3 === null) {
  358.             // no operation.
  359.         } else if ($this->janStock3 >= $janStock3) {
  360.             $this->janStock3 -= $janStock3;
  361.         } else {
  362.             $this->janStock3 null;
  363.         }
  364.         //
  365.         return $this;
  366.     }
  367.     /**
  368.      * @return int
  369.      */
  370.     public function getJanStock4()
  371.     {
  372.         return self::intNullable($this->janStock4);
  373.     }
  374.     /**
  375.      * @param int $janStock4
  376.      * @return $this
  377.      */
  378.     public function decrementJanStock4($janStock4)
  379.     {
  380.         //
  381.         if ($this->janStock4 === null) {
  382.             // no operation.
  383.         } else if ($this->janStock4 >= $janStock4) {
  384.             $this->janStock4 -= $janStock4;
  385.         } else {
  386.             $this->janStock4 null;
  387.         }
  388.         //
  389.         return $this;
  390.     }
  391.     /**
  392.      * @return int
  393.      */
  394.     public function getJanStock5()
  395.     {
  396.         return self::intNullable($this->janStock5);
  397.     }
  398.     /**
  399.      * @param int $janStock5
  400.      * @return $this
  401.      */
  402.     public function decrementJanStock5($janStock5)
  403.     {
  404.         //
  405.         if ($this->janStock5 === null) {
  406.             // no operation.
  407.         } else if ($this->janStock5 >= $janStock5) {
  408.             $this->janStock5 -= $janStock5;
  409.         } else {
  410.             $this->janStock5 null;
  411.         }
  412.         //
  413.         return $this;
  414.     }
  415.     /**
  416.      * @return int
  417.      */
  418.     public function getJanStock6()
  419.     {
  420.         return self::intNullable($this->janStock6);
  421.     }
  422.     /**
  423.      * @param int $janStock6
  424.      * @return $this
  425.      */
  426.     public function decrementJanStock6($janStock6)
  427.     {
  428.         //
  429.         if ($this->janStock6 === null) {
  430.             // no operation.
  431.         } else if ($this->janStock6 >= $janStock6) {
  432.             $this->janStock6 -= $janStock6;
  433.         } else {
  434.             $this->janStock6 null;
  435.         }
  436.         //
  437.         return $this;
  438.     }
  439.     /**
  440.      * @return int
  441.      */
  442.     public function getJanStock7()
  443.     {
  444.         return self::intNullable($this->janStock7);
  445.     }
  446.     /**
  447.      * @param int $janStock7
  448.      * @return $this
  449.      */
  450.     public function decrementJanStock7($janStock7)
  451.     {
  452.         //
  453.         if ($this->janStock7 === null) {
  454.             // no operation.
  455.         } else if ($this->janStock7 >= $janStock7) {
  456.             $this->janStock7 -= $janStock7;
  457.         } else {
  458.             $this->janStock7 null;
  459.         }
  460.         //
  461.         return $this;
  462.     }
  463.     /**
  464.      * @return int
  465.      */
  466.     public function getJanStock8()
  467.     {
  468.         return self::intNullable($this->janStock8);
  469.     }
  470.     /**
  471.      * @param int $janStock8
  472.      * @return $this
  473.      */
  474.     public function decrementJanStock8($janStock8)
  475.     {
  476.         //
  477.         if ($this->janStock8 === null) {
  478.             // no operation.
  479.         } else if ($this->janStock8 >= $janStock8) {
  480.             $this->janStock8 -= $janStock8;
  481.         } else {
  482.             $this->janStock8 null;
  483.         }
  484.         //
  485.         return $this;
  486.     }
  487.     /**
  488.      * @return int
  489.      */
  490.     public function getJanStock9()
  491.     {
  492.         return self::intNullable($this->janStock9);
  493.     }
  494.     /**
  495.      * @param int $janStock9
  496.      * @return $this
  497.      */
  498.     public function decrementJanStock9($janStock9)
  499.     {
  500.         //
  501.         if ($this->janStock9 === null) {
  502.             // no operation.
  503.         } else if ($this->janStock9 >= $janStock9) {
  504.             $this->janStock9 -= $janStock9;
  505.         } else {
  506.             $this->janStock9 null;
  507.         }
  508.         //
  509.         return $this;
  510.     }
  511.     /**
  512.      * @return string
  513.      */
  514.     public function getJanUdate()
  515.     {
  516.         return $this->janUdate;
  517.     }
  518.     /**
  519.      * @return int
  520.      */
  521.     public function getJanSpecialPrice()
  522.     {
  523.         return self::intNullable($this->janSpecialPrice);
  524.     }
  525.     /**
  526.      * @return string
  527.      */
  528.     public function getJanShiireColor()
  529.     {
  530.         return $this->janShiireColor;
  531.     }
  532.     /**
  533.      * @return string
  534.      */
  535.     public function getJanUniform1ColorNumber()
  536.     {
  537.         return $this->janUniform1ColorNumber;
  538.     }
  539.     /**
  540.      * @return int
  541.      */
  542.     public function getJanNodisplay()
  543.     {
  544.         return self::intNullable($this->janNodisplay);
  545.     }
  546.     /**
  547.      * @return string
  548.      */
  549.     public function getJanShinmen()
  550.     {
  551.         return $this->janShinmen;
  552.     }
  553.     /**
  554.      * @return string
  555.      */
  556.     public function getJanShiireSize()
  557.     {
  558.         return $this->janShiireSize;
  559.     }
  560.     /**
  561.      * @return string
  562.      */
  563.     public function getJanStock3NyukaDate()
  564.     {
  565.         return $this->janStock3NyukaDate;
  566.     }
  567.     /**
  568.      * @return int
  569.      */
  570.     public function getJanStock3NyukaSouko()
  571.     {
  572.         return self::intNullable($this->janStock3NyukaSouko);
  573.     }
  574.     /**
  575.      * @return int
  576.      */
  577.     public function getJanReplicationFlg()
  578.     {
  579.         return self::intNullable($this->janReplicationFlg);
  580.     }
  581.     /**
  582.      * @return string
  583.      */
  584.     public function getJanReplicationSynchronizedAt()
  585.     {
  586.         return $this->janReplicationSynchronizedAt;
  587.     }
  588.     /**
  589.      * @return int
  590.      */
  591.     public function getJanReturnUnavailableFlg()
  592.     {
  593.         return self::intNullable($this->janReturnUnavailableFlg);
  594.     }
  595.     /**
  596.      * @param int $janReturnUnavailableFlg
  597.      * @return $this
  598.      */
  599.     public function setJanReturnUnavailableFlg($janReturnUnavailableFlg)
  600.     {
  601.         $this->janReturnUnavailableFlg $janReturnUnavailableFlg;
  602.         return $this;
  603.     }
  604.     /**
  605.      * @return bool
  606.      */
  607.     public function isReturnUnavailable()
  608.     {
  609.         return $this->getJanReturnUnavailableFlg() == Jancode::IS_RETURN_UNAVAILABLE_YES;
  610.     }
  611.     /**
  612.      * @param int $goodsId
  613.      * @return Jancode[]
  614.      */
  615.     public static function findByGoodsId($goodsId)
  616.     {
  617.         $result = (new SqlService())
  618.             ->Table(self::TABLE_NAME)
  619.             ->Set('jan_goods'$goodsId)
  620.             ->Finds();
  621.         $jancodes = [];
  622.         foreach ($result as $data) {
  623.             $jancodes[] = new Jancode($data);
  624.         }
  625.         return $jancodes;
  626.     }
  627.     /**
  628.      * @return Goods
  629.      */
  630.     public function getGoods()
  631.     {
  632.         return self::compute($this->goods, function () {
  633.             return new Goods($this->getJanGoods());
  634.         });
  635.     }
  636.     /**
  637.      * @return GoodsColor
  638.      */
  639.     public function getGoodsColor()
  640.     {
  641.         return self::compute($this->goodsColor, function () {
  642.             return new GoodsColor($this->getJanColor());
  643.         });
  644.     }
  645.     /**
  646.      * @return GoodsPrice
  647.      */
  648.     public function getGoodsPrice()
  649.     {
  650.         return self::compute($this->goodsPrice, function () {
  651.             return new GoodsPrice($this->getJanPrice());
  652.         });
  653.     }
  654.     protected function update()
  655.     {
  656.         // FIXME: Set actually data.
  657.         $values = [
  658.             'jan_stock' => $this->getJanStock(),
  659.             'jan_stock2' => $this->getJanStock2(),
  660.             'jan_stock3' => $this->getJanStock3(),
  661.             'jan_stock4' => $this->getJanStock4(),
  662.             'jan_stock5' => $this->getJanStock5(),
  663.             'jan_stock6' => $this->getJanStock6(),
  664.             'jan_stock7' => $this->getJanStock7(),
  665.             'jan_stock8' => $this->getJanStock8(),
  666.             'jan_stock9' => $this->getJanStock9(),
  667.             'jan_return_unavailable_flg' => $this->getJanReturnUnavailableFlg(),
  668.         ];
  669.         //
  670.         (new SqlService())
  671.             ->Table(self::TABLE_NAME)
  672.             ->Set('jan_id'$this->getJanId())
  673.             ->Update(false$values);
  674.     }
  675.     /**
  676.      * @param $goodsId
  677.      * @param $gclId
  678.      * @param $gpId
  679.      * @return Jancode|null
  680.      * @throws \Exception
  681.      */
  682.     public static function getByIdentifiers($goodsId$gclId$gpId)
  683.     {
  684.         if (empty($goodsId) || empty($gclId) || empty($gpId)) {
  685.             return null;
  686.         }
  687.         $janCode = (new SqlService())
  688.             ->Table(Jancode::TABLE_NAME)
  689.             ->Set('jan_goods'$goodsId)
  690.             ->Set('jan_color'$gclId)
  691.             ->Set('jan_price'$gpId)
  692.             ->Find();
  693.         return new Jancode($janCode);
  694.     }
  695. }