app/Plugin/GmoPs42/Entity/OrderPayment.php line 16

Open in your IDE?
  1. <?php
  2. namespace Plugin\GmoPs42\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Eccube\Entity\AbstractEntity;
  5. use Eccube\Entity\Order;
  6. /**
  7.  * OrderPayment
  8.  *
  9.  * @ORM\Table(name="plg_gmops_order_payment")
  10.  * @ORM\HasLifecycleCallbacks()
  11.  * @ORM\Entity(repositoryClass="Plugin\GmoPs42\Repository\OrderPaymentRepository")
  12.  */
  13. class OrderPayment extends AbstractEntity
  14. {
  15.     const PD_COMPANY_CODES = [
  16.         '00' => 'その他',
  17.         '11' => '佐川急便',
  18.         '12' => 'ヤマト運輸・クロネコメール便',
  19.         '14' => '西濃運輸',
  20.         '15' => '郵便書留・特定記録郵便',
  21.         '16' => 'ゆうぱっく・エクスパック・ポスパケット',
  22.         '18' => '福山通運',
  23.         '27' => 'エコ配',
  24.         '28' => '翌朝10時便・レターパック・新特急郵便',
  25.     ];
  26.     const PD_COMPANY_SAGAWA '11';
  27.     const PD_COMPANY_YAMATO '12';
  28.     const PD_COMPANY_JAPANPOST '16';
  29.     const AUTHOR_RESULTS = [
  30.         'OK' => '審査OK',
  31.         '審査中' => '審査中',
  32.         '保留'  => '保留',
  33.         'NG' => '審査NG',
  34.         '出荷報告済' => '出荷報告済',
  35.         'キャンセル' => 'キャンセル済み',
  36.     ];
  37.     const AUTHOR_RESULT_OK 'OK';
  38.     const AUTHOR_RESULT_AUTHOR '審査中';
  39.     const AUTHOR_RESULT_PENDING '保留';
  40.     const AUTHOR_RESULT_NG 'NG';
  41.     const AUTHOR_RESULT_PD '出荷報告済';
  42.     const AUTHOR_RESULT_CANCEL 'キャンセル';
  43.     /**
  44.      * @var integer
  45.      *
  46.      * @ORM\Column(name="id", type="integer", options={"unsigned":true})
  47.      * @ORM\Id
  48.      * @ORM\GeneratedValue(strategy="IDENTITY")
  49.      */
  50.     private $id;
  51.     /**
  52.      * @var string|null
  53.      *
  54.      * @ORM\Column(name="author_result", type="string", length=10, nullable=true)
  55.      */
  56.     private $authorResult;
  57.     /**
  58.      * @var string|null
  59.      *
  60.      * @ORM\Column(name="auto_author_result", type="string", length=10, nullable=true)
  61.      */
  62.     private $autoAuthorResult;
  63.     /**
  64.      * @var string|null
  65.      *
  66.      * @ORM\Column(name="maul_author_result", type="string", length=10, nullable=true)
  67.      */
  68.     private $maulAuthorResult;
  69.     /**
  70.      * @var array|null
  71.      *
  72.      * @ORM\Column(name="reasons", type="array", nullable=true)
  73.      */
  74.     private $reasons;
  75.     /**
  76.      * @var integer|null
  77.      *
  78.      * @ORM\Column(name="billed_amount", type="integer", nullable=true)
  79.      */
  80.     private $billedAmount;
  81.     /**
  82.      * @var string|null
  83.      *
  84.      * @ORM\Column(name="shop_transaction_id", type="string", length=50, nullable=true)
  85.      */
  86.     private $shopTransactionId;
  87.     /**
  88.      * @var string|null
  89.      *
  90.      * @ORM\Column(name="gmo_transaction_id", type="string", length=11, nullable=true)
  91.      */
  92.     private $gmoTransactionId;
  93.     /**
  94.      * @var string|null
  95.      *
  96.      * @ORM\Column(name="pd_company_code", type="string", length=2, nullable=true)
  97.      */
  98.     private $pdCompanyCode;
  99.     /**
  100.      * @var string|null
  101.      *
  102.      * @ORM\Column(name="slip_no", type="string", length=20, nullable=true)
  103.      */
  104.     private $slipNo;
  105.     /**
  106.      * @var \DateTime|null
  107.      *
  108.      * @ORM\Column(name="pd_date", type="datetimetz", nullable=true)
  109.      */
  110.     private $pdDate;
  111.     /**
  112.      * @var \DateTime|null
  113.      *
  114.      * @ORM\Column(name="cancel_date", type="datetimetz", nullable=true)
  115.      */
  116.     private $cancelDate;
  117.     /**
  118.      * @var \DateTime
  119.      *
  120.      * @ORM\Column(name="create_date", type="datetimetz")
  121.      */
  122.     private $createDate;
  123.     /**
  124.      * @var \DateTime
  125.      *
  126.      * @ORM\Column(name="update_date", type="datetimetz")
  127.      */
  128.     private $updateDate;
  129.     /**
  130.      * @var Order
  131.      *
  132.      * @ORM\ManyToOne(targetEntity="Eccube\Entity\Order", inversedBy="orderPayments")
  133.      * @ORM\JoinColumns({
  134.      *   @ORM\JoinColumn(name="order_id", referencedColumnName="id")
  135.      * })
  136.      */
  137.     private $order;
  138.     /**
  139.      * Get id
  140.      *
  141.      * @return integer
  142.      */
  143.     public function getId()
  144.     {
  145.         return $this->id;
  146.     }
  147.     /**
  148.      * Set authorResult
  149.      *
  150.      * @param string $authorResult
  151.      * @return OrderPayment
  152.      */
  153.     public function setAuthorResult($authorResult)
  154.     {
  155.         $this->authorResult $authorResult;
  156.         return $this;
  157.     }
  158.     /**
  159.      * Get authorResult
  160.      *
  161.      * @return string
  162.      */
  163.     public function getAuthorResult()
  164.     {
  165.         return $this->authorResult;
  166.     }
  167.     /**
  168.      * Set autoAuthorResult
  169.      *
  170.      * @param string $autoAuthorResult
  171.      * @return OrderPayment
  172.      */
  173.     public function setAutoAuthorResult($autoAuthorResult)
  174.     {
  175.         $this->autoAuthorResult $autoAuthorResult;
  176.         return $this;
  177.     }
  178.     /**
  179.      * Get autoAuthorResult
  180.      *
  181.      * @return string
  182.      */
  183.     public function getAutoAuthorResult()
  184.     {
  185.         return $this->autoAuthorResult;
  186.     }
  187.     /**
  188.      * Set maulAuthorResult
  189.      *
  190.      * @param string $maulAuthorResult
  191.      * @return OrderPayment
  192.      */
  193.     public function setMaulAuthorResult($maulAuthorResult)
  194.     {
  195.         $this->maulAuthorResult $maulAuthorResult;
  196.         return $this;
  197.     }
  198.     /**
  199.      * Get maulAuthorResult
  200.      *
  201.      * @return string
  202.      */
  203.     public function getMaulAuthorResult()
  204.     {
  205.         return $this->maulAuthorResult;
  206.     }
  207.     /**
  208.      * Set reason
  209.      *
  210.      * @param array|null $reasons
  211.      * @return OrderPayment
  212.      */
  213.     public function setReasons($reasons)
  214.     {
  215.         $this->reasons $reasons;
  216.         return $this;
  217.     }
  218.     /**
  219.      * Get reason
  220.      *
  221.      * @return array|null
  222.      */
  223.     public function getReasons()
  224.     {
  225.         return $this->reasons;
  226.     }
  227.     /**
  228.      * Set billedAmount
  229.      *
  230.      * @param integer $billedAmount
  231.      * @return OrderPayment
  232.      */
  233.     public function setBilledAmount($billedAmount)
  234.     {
  235.         $this->billedAmount $billedAmount;
  236.         return $this;
  237.     }
  238.     /**
  239.      * Get billedAmount
  240.      *
  241.      * @return integer
  242.      */
  243.     public function getBilledAmount()
  244.     {
  245.         return $this->billedAmount;
  246.     }
  247.     /**
  248.      * Set shopTransactionId
  249.      *
  250.      * @param string $shopTransactionId
  251.      * @return OrderPayment
  252.      */
  253.     public function setShopTransactionId($shopTransactionId)
  254.     {
  255.         $this->shopTransactionId $shopTransactionId;
  256.         return $this;
  257.     }
  258.     /**
  259.      * Get shopTransactionId
  260.      *
  261.      * @return string
  262.      */
  263.     public function getShopTransactionId()
  264.     {
  265.         return $this->shopTransactionId;
  266.     }
  267.     /**
  268.      * Set gmoTransactionId
  269.      *
  270.      * @param string $gmoTransactionId
  271.      * @return OrderPayment
  272.      */
  273.     public function setGmoTransactionId($gmoTransactionId)
  274.     {
  275.         $this->gmoTransactionId $gmoTransactionId;
  276.         return $this;
  277.     }
  278.     /**
  279.      * Set pdCompanyCode
  280.      *
  281.      * @param string $pdCompanyCode
  282.      * @return OrderPayment
  283.      */
  284.     public function setPdCompanyCode($pdCompanyCode)
  285.     {
  286.         $this->pdCompanyCode $pdCompanyCode;
  287.         return $this;
  288.     }
  289.     /**
  290.      * Get pdCompanyCode
  291.      *
  292.      * @return string
  293.      */
  294.     public function getPdCompanyCode()
  295.     {
  296.         return $this->pdCompanyCode;
  297.     }
  298.     /**
  299.      * Set slipNo
  300.      *
  301.      * @param string $slipNo
  302.      * @return OrderPayment
  303.      */
  304.     public function setSlipNo($slipNo)
  305.     {
  306.         $this->slipNo $slipNo;
  307.         return $this;
  308.     }
  309.     /**
  310.      * Get slipNo
  311.      *
  312.      * @return string
  313.      */
  314.     public function getSlipNo()
  315.     {
  316.         return $this->slipNo;
  317.     }
  318.     /**
  319.      * Get gmoTransactionId
  320.      *
  321.      * @return string
  322.      */
  323.     public function getGmoTransactionId()
  324.     {
  325.         return $this->gmoTransactionId;
  326.     }
  327.     /**
  328.      * Set pdDate
  329.      *
  330.      * @param \DateTime $pdDate
  331.      * @return OrderPayment
  332.      */
  333.     public function setPdDate($pdDate)
  334.     {
  335.         $this->pdDate $pdDate;
  336.         return $this;
  337.     }
  338.     /**
  339.      * Get pdDate
  340.      *
  341.      * @return \DateTime
  342.      */
  343.     public function getPdDate()
  344.     {
  345.         return $this->pdDate;
  346.     }
  347.     /**
  348.      * Set cancelDate
  349.      *
  350.      * @param \DateTime $cancelDate
  351.      * @return OrderPayment
  352.      */
  353.     public function setCancelDate($cancelDate)
  354.     {
  355.         $this->cancelDate $cancelDate;
  356.         return $this;
  357.     }
  358.     /**
  359.      * Get cancelDate
  360.      *
  361.      * @return \DateTime
  362.      */
  363.     public function getCancelDate()
  364.     {
  365.         return $this->cancelDate;
  366.     }
  367.     /**
  368.      * Set createDate
  369.      *
  370.      * @param \DateTime $createDate
  371.      * @return OrderPayment
  372.      */
  373.     public function setCreateDate($createDate)
  374.     {
  375.         $this->createDate $createDate;
  376.         return $this;
  377.     }
  378.     /**
  379.      * Get createDate
  380.      *
  381.      * @return \DateTime
  382.      */
  383.     public function getCreateDate()
  384.     {
  385.         return $this->createDate;
  386.     }
  387.     /**
  388.      * Set updateDate
  389.      *
  390.      * @param \DateTime $updateDate
  391.      * @return OrderPayment
  392.      */
  393.     public function setUpdateDate($updateDate)
  394.     {
  395.         $this->updateDate $updateDate;
  396.         return $this;
  397.     }
  398.     /**
  399.      * Get updateDate
  400.      *
  401.      * @return \DateTime
  402.      */
  403.     public function getUpdateDate()
  404.     {
  405.         return $this->updateDate;
  406.     }
  407.     /**
  408.      * Set order
  409.      *
  410.      * @param Order $order
  411.      * @return OrderPayment
  412.      */
  413.     public function setOrder(Order $order null)
  414.     {
  415.         $this->order $order;
  416.         return $this;
  417.     }
  418.     /**
  419.      * Get order
  420.      *
  421.      * @return Order
  422.      */
  423.     public function getOrder()
  424.     {
  425.         return $this->order;
  426.     }
  427.     public function getPdCompanyName(): string
  428.     {
  429.         return array_key_exists($this->getPdCompanyCode(), static::PD_COMPANY_CODES) ? static::PD_COMPANY_CODES[$this->getPdCompanyCode()] : '';
  430.     }
  431.     public function isCancel()
  432.     {
  433.         return ($this->getCancelDate() || $this->getAuthorResult() === static::AUTHOR_RESULT_CANCEL);
  434.     }
  435.     public function isPd()
  436.     {
  437.         return ((!$this->getCancelDate() && $this->getPdDate()) || $this->getAuthorResult() === static::AUTHOR_RESULT_PD);
  438.     }
  439.     public function getAuthorResultText()
  440.     {
  441.         if ($this->isCancel()) {
  442.             return static::AUTHOR_RESULT_CANCEL;
  443.         } elseif ($this->isPd()) {
  444.             return static::AUTHOR_RESULT_PD;
  445.         } else {
  446.             return $this->getAuthorResult();
  447.         }
  448.     }
  449. }