vendor/lm/entity/src/Goods.php line 430

Open in your IDE?
  1. <?php
  2. namespace Lm\Entity;
  3. use Lm\Entity\Common\DbEntity;
  4. use Lm\Service\Db\SqlService;
  5. class Goods extends DbEntity
  6. {
  7.     /**
  8.      * @inheritDoc
  9.      */
  10.     const TABLE_NAME 'goods_table';
  11.     /**
  12.      * @inheritDoc
  13.      */
  14.     const COLUMNS = [
  15.         [
  16.             'name' => 'goods_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.                 'goods_id',
  31.             ],
  32.         ],
  33.     ];
  34.     /**
  35.      * 商品ID - 42097: カタログ請求
  36.      */
  37.     const GOODS_ID_CATALOG 42097;
  38.     /**
  39.      * 商品ステータス - 表示
  40.      */
  41.     const GOODS_STATUS_AVAIABLE 1;
  42.     /**
  43.      * 商品ステータス - 非表示
  44.      */
  45.     const GOODS_STATUS_UNAVAIABLE 0;
  46.     /**
  47.      * 社内在庫品 - はい
  48.      */
  49.     const GOODS_RECOMMEND_YES 1;
  50.     /**
  51.      * 社内在庫品 - いいえ
  52.      */
  53.     const GOODS_RECOMMEND_NO 0;
  54.     /**
  55.      * サンプル貸出可否 - 可
  56.      */
  57.     const GOODS_SAMPLE_RENTAL_AVAILABLE 1;
  58.     /**
  59.      * サンプル貸出可否 - 不可
  60.      */
  61.     const GOODS_SAMPLE_RENTAL_UNAVAILABLE 0;
  62.     /**
  63.      * 名入れ/プリント可否 - 可
  64.      */
  65.     const GOODS_NAIRE_PRINT_AVAILABLE 1;
  66.     /**
  67.      * 裾上げ可否 - 可
  68.      */
  69.     const GOODS_SUSOAGE_AVAILABLE 1;
  70.     /**
  71.      * セット品番 - はい
  72.      */
  73.     const GOODS_SET_PURCHASE_FLG_YES 1;
  74.     /**
  75.      * セット品番 - いいえ
  76.      */
  77.     const GOODS_SET_PURCHASE_FLG_NO 0;
  78.     /**
  79.      * 性別表記 - 未指定
  80.      */
  81.     const TARGET_GENDER_UNDEFINED 0;
  82.     /**
  83.      * 性別表記 - 男性用
  84.      */
  85.     const TARGET_GENDER_MEN 1;
  86.     /**
  87.      * 性別表記 - 女性用
  88.      */
  89.     const TARGET_GENDER_WOMEN 2;
  90.     /**
  91.      * 性別表記 - 男女兼用
  92.      */
  93.     const TARGET_GENDER_UNISEX 3;
  94.     /**
  95.      * 性別表記 - 子供用
  96.      */
  97.     const TARGET_GENDER_KIDS 4;
  98.     /**
  99.      * カテゴリ商品リストアイコンID: アイコンなし
  100.      */
  101.     const CATEGORY_LIST_ICON_NO_SHOW 0;
  102.     /**
  103.      * カテゴリ商品リストアイコンID: 春夏
  104.      */
  105.     const CATEGORY_LIST_ICON_SS 1;
  106.     /**
  107.      * カテゴリ商品リストアイコンID: 秋冬
  108.      */
  109.     const CATEGORY_LIST_ICON_AW 2;
  110.     /**
  111.      * カテゴリ商品リストアイコンID: 通年
  112.      */
  113.     const CATEGORY_LIST_ICON_ALL 3;
  114.     /**
  115.      * カテゴリ商品リストアイコンID: 防寒
  116.      */
  117.     const CATEGORY_LIST_ICON_BOUKAN 4;
  118.     /**
  119.      * 販売状況フラグ: 販売中
  120.      */
  121.     const VENDING_STATUS_VENDING 1;
  122.     /**
  123.      * 販売状況フラグ: 完売
  124.      */
  125.     const VENDING_STATUS_SOLD_OUT 2;
  126.     /**
  127.      * 販売状況フラグ: 廃番
  128.      */
  129.     const VENDING_STATUS_DISCONTINUED 3;
  130.     /**
  131.      * @var int
  132.      */
  133.     protected $goodsId;
  134.     /**
  135.      * @var string
  136.      */
  137.     protected $goodsCanonicalHinban;
  138.     /**
  139.      * @var string
  140.      */
  141.     protected $goodsName;
  142.     /**
  143.      * @var string
  144.      */
  145.     protected $goodsMakerNameText;
  146.     /**
  147.      * @var string
  148.      */
  149.     protected $goodsGenreText;
  150.     /**
  151.      * @var string
  152.      */
  153.     protected $goodsNewDescription;
  154.     /**
  155.      * @var string
  156.      */
  157.     protected $goodsNewName;
  158.     /**
  159.      * @var string
  160.      */
  161.     protected $goodsNewMaker;
  162.     /**
  163.      * @var string
  164.      */
  165.     protected $goodsNewMaterial;
  166.     /**
  167.      * @var string
  168.      */
  169.     protected $goodsNewSpec;
  170.     /**
  171.      * @var string
  172.      */
  173.     protected $goodsNewAnnotation;
  174.     /**
  175.      * @var string
  176.      */
  177.     protected $goodsMainKataban;
  178.     /**
  179.      * @var int
  180.      */
  181.     protected $goodsRecommend self::GOODS_RECOMMEND_NO;
  182.     /**
  183.      * @var int
  184.      */
  185.     protected $goodsShiiresaki;
  186.     /**
  187.      * @var int
  188.      */
  189.     protected $goodsStatus;
  190.     /**
  191.      * @var string
  192.      */
  193.     protected $goodsDdate;
  194.     /**
  195.      * @var int
  196.      */
  197.     protected $goodsSampleRental;
  198.     /**
  199.      * @var int
  200.      */
  201.     protected $goodsNairePrint;
  202.     /**
  203.      * @var int
  204.      */
  205.     protected $goodsSusoage;
  206.     /**
  207.      * @var int
  208.      */
  209.     protected $goodsOnetimeRepeat;
  210.     /**
  211.      * @var int
  212.      */
  213.     protected $goodsSetPurchaseFlg;
  214.     /**
  215.      * @var int
  216.      */
  217.     protected $goodsTargetGender self::TARGET_GENDER_UNDEFINED;
  218.     /**
  219.      * @var int
  220.      */
  221.     protected $goodsCategoryListIconId self::CATEGORY_LIST_ICON_NO_SHOW;
  222.     /**
  223.      * @var int
  224.      */
  225.     protected $goodsVendingStatus self::VENDING_STATUS_VENDING;
  226.     /**
  227.      * @var Shiiresaki
  228.      */
  229.     protected $shiiresaki;
  230.     /**
  231.      * @var GoodsPrice[]
  232.      */
  233.     protected $goodsPriceList;
  234.     /**
  235.      * @var GoodsColor[]
  236.      */
  237.     protected $goodsColorList;
  238.     /**
  239.      * @return array|null
  240.      */
  241.     public function findShiiresaki()
  242.     {
  243.         //
  244.         $shiiresakiId $this->getGoodsShiiresaki();
  245.         //
  246.         $result = (new SqlService())
  247.             ->Table(Shiiresaki::TABLE_NAME)
  248.             ->Set('shiiresaki_id'$shiiresakiId)
  249.             ->Find()
  250.         ;
  251.         //
  252.         return $result;
  253.     }
  254.     /**
  255.      * @return int
  256.      */
  257.     public function getGoodsId()
  258.     {
  259.         return self::intNullable($this->goodsId);
  260.     }
  261.     /**
  262.      * @return string
  263.      */
  264.     public function getgoodsCanonicalHinban()
  265.     {
  266.         return $this->goodsCanonicalHinban;
  267.     }
  268.     /**
  269.      * @return string
  270.      */
  271.     public function getGoodsName()
  272.     {
  273.         return $this->goodsName;
  274.     }
  275.     /**
  276.      * @return string
  277.      */
  278.     public function getGoodsMakerNameText()
  279.     {
  280.         return $this->goodsMakerNameText;
  281.     }
  282.     /**
  283.      * @return string
  284.      */
  285.     public function getGoodsGenreText()
  286.     {
  287.         return $this->goodsGenreText;
  288.     }
  289.     /**
  290.      * @return string
  291.      */
  292.     public function getGoodsNewDescription()
  293.     {
  294.         return $this->goodsNewDescription;
  295.     }
  296.     /**
  297.      * @return string
  298.      */
  299.     public function getGoodsNewName()
  300.     {
  301.         return $this->goodsNewName;
  302.     }
  303.     /**
  304.      * @return string
  305.      */
  306.     public function getGoodsNewMaker()
  307.     {
  308.         return $this->goodsNewMaker;
  309.     }
  310.     /**
  311.      * @return string
  312.      */
  313.     public function getGoodsNewMaterial()
  314.     {
  315.         return $this->goodsNewMaterial;
  316.     }
  317.     /**
  318.      * @return string
  319.      */
  320.     public function getGoodsNewSpec()
  321.     {
  322.         return $this->goodsNewSpec;
  323.     }
  324.     /**
  325.      * @return string
  326.      */
  327.     public function getGoodsNewAnnotation()
  328.     {
  329.         return $this->goodsNewAnnotation;
  330.     }
  331.     /**
  332.      * @return string
  333.      */
  334.     public function getGoodsMainKataban()
  335.     {
  336.         return $this->goodsMainKataban;
  337.     }
  338.     /**
  339.      * @return int
  340.      */
  341.     public function getGoodsRecommend()
  342.     {
  343.         return $this->goodsRecommend;
  344.     }
  345.     /**
  346.      * @return int
  347.      */
  348.     public function getGoodsShiiresaki()
  349.     {
  350.         return self::intNullable($this->goodsShiiresaki);
  351.     }
  352.     /**
  353.      * @return int
  354.      */
  355.     public function getGoodsStatus()
  356.     {
  357.         return self::intNullable($this->goodsStatus);
  358.     }
  359.     /**
  360.      * @return string
  361.      */
  362.     public function getGoodsDdate()
  363.     {
  364.         return $this->goodsDdate;
  365.     }
  366.     /**
  367.      * @return int
  368.      */
  369.     public function getGoodsSampleRental()
  370.     {
  371.         return (int)$this->goodsSampleRental;
  372.     }
  373.     /**
  374.      * @return int
  375.      */
  376.     public function getGoodsNairePrint()
  377.     {
  378.         return (int)$this->goodsNairePrint;
  379.     }
  380.     /**
  381.      * @return int
  382.      */
  383.     public function getGoodsSusoage()
  384.     {
  385.         return (int)$this->goodsSusoage;
  386.     }
  387.     /**
  388.      * @return int
  389.      */
  390.     public function getGoodsOnetimeRepeat()
  391.     {
  392.         return (int)$this->goodsOnetimeRepeat;
  393.     }
  394.     /**
  395.      * @return int
  396.      */
  397.     public function getGoodsSetPurchaseFlg()
  398.     {
  399.         return (int)$this->goodsSetPurchaseFlg;
  400.     }
  401.     /**
  402.      * @return int
  403.      */
  404.     public function getGoodsTargetGender()
  405.     {
  406.         return (int)$this->goodsTargetGender;
  407.     }
  408.     /**
  409.      * @return int
  410.      */
  411.     public function getGoodsCategoryListIconId()
  412.     {
  413.         return (int)$this->goodsCategoryListIconId;
  414.     }
  415.     /**
  416.      * @return int
  417.      */
  418.     public function getGoodsVendingStatus()
  419.     {
  420.         return (int)$this->goodsVendingStatus;
  421.     }
  422.     /**
  423.      * @return Shiiresaki
  424.      * @throws \Exception
  425.      */
  426.     public function getShiiresaki()
  427.     {
  428.         //
  429.         if (empty($this->shiiresaki)) {
  430.             //
  431.             $shiiresaki $this->findShiiresaki();
  432.             //
  433.             $this->shiiresaki = new Shiiresaki($shiiresaki);
  434.         }
  435.         return $this->shiiresaki;
  436.     }
  437.     /**
  438.      * @return GoodsPrice[]
  439.      * @throws \Exception
  440.      */
  441.     public function getGoodsPriceList()
  442.     {
  443.         return self::compute($this->goodsPriceList, function () {
  444.             return GoodsPrice::findByGoodsId($this->getGoodsId());
  445.         });
  446.     }
  447.     /**
  448.      * @return GoodsColor[]
  449.      * @throws \Exception
  450.      */
  451.     public function getGoodsColorList()
  452.     {
  453.         return self::compute($this->goodsColorList, function () {
  454.             return GoodsColor::findByGoodsId($this->getGoodsId());
  455.         });
  456.     }
  457. }