src/AtechNet/CoreBundle/Entity/ProductCommission.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\AtechNet\CoreBundle\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\ORM\Mapping\Column;
  6. use Doctrine\ORM\Mapping\Entity;
  7. use Doctrine\ORM\Mapping\Index;
  8. use Doctrine\ORM\Mapping\JoinColumn;
  9. use Doctrine\ORM\Mapping\ManyToOne;
  10. use Doctrine\ORM\Mapping\OneToMany;
  11. use Doctrine\ORM\Mapping\OrderBy;
  12. use Doctrine\ORM\Mapping\Table as Table;
  13. /**
  14.  * ProductCommission
  15.  *
  16.  * @Table(name="products__commissions", indexes={
  17.  *     @Index(name="status", columns={"status"})
  18.  * })
  19.  * @Entity(repositoryClass="App\AtechNet\CoreBundle\Repository\ProductCommissionRepository")
  20.  */
  21. class ProductCommission extends AbstractSignedEntity
  22. {
  23.     public const Status_AtPartner = 1;
  24.     public const Status_Sold = 2;
  25.     public const Status_Returned_Not_Verified = 3;
  26.     public const Status_Returned = 4;
  27.     public static function getStatusChoices()
  28.     {
  29.         return [
  30.             self::Status_AtPartner => 'At partner',
  31.             self::Status_Sold => 'Sold',
  32.             self::Status_Returned_Not_Verified => 'Returned, not verified',
  33.             self::Status_Returned => 'Returned',
  34.         ];
  35.     }
  36.     /**
  37.      * @var Customer
  38.      *
  39.      * @ManyToOne(targetEntity="Customer", inversedBy="commissions")
  40.      * @JoinColumn(name="customer_id", referencedColumnName="id")
  41.      */
  42.     private $customer;
  43.     /**
  44.      * @var Product
  45.      *
  46.      * @ManyToOne(targetEntity="Product", inversedBy="commissions")
  47.      * @JoinColumn(name="product_id", referencedColumnName="id")
  48.      */
  49.     private $product;
  50.     /**
  51.      * @var integer
  52.      *
  53.      * @Column(name="status", type="integer")
  54.      */
  55.     private $status;
  56.     /**
  57.      * @var string
  58.      *
  59.      * @Column(name="serial_number", type="string", length=255)
  60.      */
  61.     private $serialNumber;
  62.     /**
  63.      * @var string
  64.      *
  65.      * @Column(name="aiken_code", type="string", length=32, nullable=true )
  66.      */
  67.     private $aikenCode;
  68.     /**
  69.      * @var string
  70.      *
  71.      * @Column(name="invoice_number", type="string", length=255, nullable=true)
  72.      */
  73.     private $invoiceNumber;
  74.     /**
  75.      * @var StockMovement
  76.      *
  77.      * @ManyToOne(targetEntity="StockMovement", inversedBy="commissions")
  78.      * @JoinColumn(name="stock_movement_id", referencedColumnName="id", nullable=true)
  79.      */
  80.     private $stockMovement;
  81.     /**
  82.      * @var ProductCommission
  83.      *
  84.      * @ManyToOne(targetEntity="ProductCommission", inversedBy="children")
  85.      * @JoinColumn(name="parent_id", referencedColumnName="id", nullable=true)
  86.      */
  87.     private $parent;
  88.     /**
  89.      * @var ArrayCollection
  90.      *
  91.      * @OneToMany(targetEntity="ProductCommission", mappedBy="parent", orphanRemoval=true)
  92.      * @OrderBy({"created" = "ASC"})
  93.      **/
  94.     private $children;
  95.     /**
  96.      * @var bool
  97.      *
  98.      * @Column(name="container", type="boolean")
  99.      */
  100.     private $container = false;
  101.     /**
  102.      * @var ArrayCollection
  103.      *
  104.      * @OneToMany(targetEntity="ProductCommissionAccessory", mappedBy="productCommission", orphanRemoval=true, cascade={"persist", "remove"})
  105.      */
  106.     private $accessories;
  107.     /**
  108.      * @return Customer
  109.      */
  110.     public function getCustomer()
  111.     {
  112.         return $this->customer;
  113.     }
  114.     /**
  115.      * @param Customer $customer
  116.      */
  117.     public function setCustomer($customer)
  118.     {
  119.         $this->customer = $customer;
  120.     }
  121.     /**
  122.      * @return Product
  123.      */
  124.     public function getProduct()
  125.     {
  126.         return $this->product;
  127.     }
  128.     /**
  129.      * @param Product $product
  130.      */
  131.     public function setProduct($product)
  132.     {
  133.         $this->product = $product;
  134.     }
  135.     /**
  136.      * Set status
  137.      *
  138.      * @param integer $status
  139.      * @return ProductCommission
  140.      */
  141.     public function setStatus($status)
  142.     {
  143.         $this->status = $status;
  144.         return $this;
  145.     }
  146.     /**
  147.      * Get status
  148.      *
  149.      * @return integer
  150.      */
  151.     public function getStatus()
  152.     {
  153.         return $this->status;
  154.     }
  155.     /**
  156.      * @return string
  157.      * @internal param $key
  158.      */
  159.     public function getStatusTitle()
  160.     {
  161.         return self::getStatusChoices()[$this->status];
  162.     }
  163.     /**
  164.      * @return string
  165.      */
  166.     public function getSerialNumber()
  167.     {
  168.         return $this->serialNumber;
  169.     }
  170.     /**
  171.      * @param string $serialNumber
  172.      */
  173.     public function setSerialNumber($serialNumber)
  174.     {
  175.         $this->serialNumber = $serialNumber;
  176.     }
  177.     /**
  178.      * @return string
  179.      */
  180.     public function getAikenCode()
  181.     {
  182.         return $this->aikenCode;
  183.     }
  184.     /**
  185.      * @param string $aikenCode
  186.      */
  187.     public function setAikenCode($aikenCode)
  188.     {
  189.         $this->aikenCode = $aikenCode;
  190.     }
  191.     /**
  192.      * @return string
  193.      */
  194.     public function getInvoiceNumber()
  195.     {
  196.         return $this->invoiceNumber;
  197.     }
  198.     /**
  199.      * @param string $invoiceNumber
  200.      */
  201.     public function setInvoiceNumber($invoiceNumber)
  202.     {
  203.         $this->invoiceNumber = $invoiceNumber;
  204.     }
  205.     /**
  206.      * @return StockMovement
  207.      */
  208.     public function getStockMovement()
  209.     {
  210.         return $this->stockMovement;
  211.     }
  212.     /**
  213.      * @param StockMovement $stockMovement
  214.      */
  215.     public function setStockMovement($stockMovement)
  216.     {
  217.         $this->stockMovement = $stockMovement;
  218.     }
  219.     /**
  220.      * @return ProductCommission
  221.      */
  222.     public function getParent()
  223.     {
  224.         return $this->parent;
  225.     }
  226.     /**
  227.      * @param ProductCommission $parent
  228.      */
  229.     public function setParent($parent)
  230.     {
  231.         $this->parent = $parent;
  232.     }
  233.     /**
  234.      * @return ArrayCollection
  235.      */
  236.     public function getChildren()
  237.     {
  238.         return $this->children;
  239.     }
  240.     /**
  241.      * @return bool
  242.      */
  243.     public function isContainer()
  244.     {
  245.         return $this->container;
  246.     }
  247.     /**
  248.      * @param bool $container
  249.      */
  250.     public function setContainer($container)
  251.     {
  252.         $this->container = $container;
  253.     }
  254.     /**
  255.      * @return Collection
  256.      */
  257.     public function getAccessories(): Collection
  258.     {
  259.         return $this->accessories;
  260.     }
  261. }