src/Entity/OrderItem.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\OrderService;
  4. use App\Entity\Product\Product;
  5. use DateTime;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use JMS\Serializer\Annotation\ExclusionPolicy;
  9. use JMS\Serializer\Annotation\Expose;
  10. /**
  11.  * Class Order Item
  12.  *
  13.  * @ORM\Entity(repositoryClass="App\Repository\OrderItemRepository")
  14.  * @ORM\Table(name="malys_order_item")
  15.  * @ORM\HasLifecycleCallbacks()
  16.  * @ExclusionPolicy("all")
  17.  */
  18. class OrderItem
  19. {
  20.     /**
  21.      * @var integer
  22.      *
  23.      * @ORM\Column(name="id", type="integer")
  24.      * @ORM\Id
  25.      * @ORM\GeneratedValue(strategy="AUTO")
  26.      * @Expose
  27.      */
  28.     protected $id;
  29.     /**
  30.      * @var Order
  31.      *
  32.      * @ORM\ManyToOne(targetEntity="Order", inversedBy="items")
  33.      * @ORM\JoinColumn(name="order_id", referencedColumnName="id")
  34.      */
  35.     protected $order;
  36.     /**
  37.      * @var ArrayCollection
  38.      *
  39.      * @ORM\OneToMany(targetEntity="OrderItemService", mappedBy="orderItem", cascade={"persist", "remove"})
  40.      */
  41.     protected $services;
  42.     /**
  43.      * @var integer
  44.      *
  45.      * @ORM\Column(name="quantity", type="integer", nullable=false)
  46.      * @Expose
  47.      */
  48.     protected $quantity 1;
  49.     /**
  50.      * @var float
  51.      *
  52.      * @ORM\Column(name="unit_price_excluding_tax", type="float", nullable=true)
  53.      */
  54.     protected $unitPriceExcludingTax;
  55.     /**
  56.      * @var float
  57.      *
  58.      * @ORM\Column(name="promotion", type="float", nullable=true)
  59.      */
  60.     protected $promotion;
  61.     /**
  62.      * @var string
  63.      *
  64.      * @ORM\Column(name="promotion_type", type="string", nullable=true)
  65.      */
  66.     protected $promotionType;
  67.     /**
  68.      * @var string
  69.      * @ORM\Column(name="promotion_label", type="string", nullable=true)
  70.      */
  71.     protected $promotionLabel;
  72.     /**
  73.      * @var float
  74.      *
  75.      * @ORM\Column(name="total_price_excluding_tax", type="float", nullable=false)
  76.      * @Expose
  77.      */
  78.     protected $totalPriceExcludingTax;
  79.     /**
  80.      * @var float
  81.      *
  82.      * @ORM\Column(name="total_saving_excluding_tax", type="float", nullable=true)
  83.      * @Expose
  84.      */
  85.     protected $totalSavingExcludingTax;
  86.     /**
  87.      * @var Product
  88.      *
  89.      * @ORM\ManyToOne(targetEntity="App\Entity\Product\Product")
  90.      * @ORM\JoinColumn(name="product_id", referencedColumnName="id", onDelete="SET NULL")
  91.      */
  92.     protected $product;
  93.     /**
  94.      * @var string
  95.      *
  96.      * @ORM\Column(name="product_id_copy", type="integer", nullable=true)
  97.      */
  98.     protected $productIdCopy;
  99.     /**
  100.      * @var string
  101.      *
  102.      * @ORM\Column(name="product_type", type="string", nullable=true)
  103.      */
  104.     protected $productType;
  105.     /**
  106.      * @var string
  107.      *
  108.      * @ORM\Column(name="product_code", type="string", length=255, nullable=true)
  109.      * @Expose
  110.      */
  111.     protected $productCode;
  112.     /**
  113.      * @var string
  114.      *
  115.      * @ORM\Column(name="product_name", type="string", length=255, nullable=false)
  116.      * @Expose
  117.      */
  118.     protected $productName;
  119.     /**
  120.      * @var string
  121.      *
  122.      * @ORM\Column(name="product_category_label", type="string", length=255, nullable=true)
  123.      */
  124.     protected $productCategoryLabel;
  125.     /**
  126.      * @var string
  127.      *
  128.      * @ORM\Column(name="product_sales_unit", type="string", length=255, nullable=true)
  129.      */
  130.     protected $productSalesUnit;
  131.     /**
  132.      * @var string
  133.      *
  134.      * @ORM\Column(name="product_weight", type="string", nullable=true)
  135.      */
  136.     protected $productWeight;
  137.     /**
  138.      * @var string
  139.      *
  140.      * @ORM\Column(name="product_packaging", type="string", nullable=true)
  141.      */
  142.     protected $productPackaging;
  143.     /**
  144.      * @var string
  145.      *
  146.      * @ORM\Column(name="product_size", type="string", nullable=true)
  147.      */
  148.     protected $productSize;
  149.     /**
  150.      * @var string
  151.      *
  152.      * @ORM\Column(name="product_picture", type="string", nullable=true)
  153.      */
  154.     protected $productPicture;
  155.     /**
  156.      * @var string
  157.      *
  158.      * @ORM\Column(name="product_fsa", type="string", length=255, nullable=true)
  159.      */
  160.     protected $productFsa;
  161.     /**
  162.      * @var boolean
  163.      *
  164.      * @ORM\Column(name="product_bio", type="boolean", options={"default" : false}, nullable=true)
  165.      */
  166.     protected $productBio false;
  167.     /**
  168.      * @var boolean
  169.      *
  170.      * @ORM\Column(name="product_locavore", type="boolean", options={"default" : false}, nullable=true)
  171.      */
  172.     protected $productLocavore false;
  173.     /**
  174.      * @var DateTime
  175.      *
  176.      * @ORM\Column(name="product_dluo", type="integer", nullable=true)
  177.      */
  178.     protected $productDluo;
  179.     /**
  180.      * @var string
  181.      *
  182.      * @ORM\Column(name="product_preparation", type="text", nullable=true)
  183.      */
  184.     protected $productPreparation;
  185.     /**
  186.      * @var string
  187.      *
  188.      * @ORM\Column(name="product_description", type="text", nullable=true)
  189.      */
  190.     protected $productDescription;
  191.     /**
  192.      * @var string
  193.      *
  194.      * @ORM\Column(name="product_label", type="string", nullable=true)
  195.      */
  196.     protected $productLabel;
  197.     /**
  198.      * @var string
  199.      *
  200.      * @ORM\Column(name="product_grower", type="string", nullable=true)
  201.      */
  202.     protected $productGrower;
  203.     /**
  204.      * @var string
  205.      *
  206.      * @ORM\Column(name="product_origin", type="string", nullable=true)
  207.      */
  208.     protected $productOrigin;
  209.     /**
  210.      * @var string
  211.      *
  212.      * @ORM\Column(name="more_products", type="string", nullable=true)
  213.      */
  214.     protected $moreProducts;
  215.     /**
  216.      * @var string
  217.      *
  218.      * @ORM\Column(name="product_brand", type="string", nullable=true)
  219.      */
  220.     protected $productBrand;
  221.     /**
  222.      * @var DateTime
  223.      *
  224.      * @ORM\Column(name="created_at", type="datetime", nullable=false)
  225.      */
  226.     protected $createdAt;
  227.     /**
  228.      * @var DateTime
  229.      *
  230.      * @ORM\Column(name="updated_at", type="datetime", nullable=true)
  231.      */
  232.     protected $updatedAt;
  233.     /**
  234.      * @var float $bundling
  235.      * @ORM\Column(name="bundling", type="float", nullable=true)
  236.      */
  237.     protected $bundling;
  238.     /**
  239.      * @var string
  240.      * @ORM\Column(name="product_promotion_type", type="string", nullable=true)
  241.      */
  242.     protected $productPromotionType;
  243.     /**
  244.      * @var string
  245.      * @ORM\Column(name="product_order_unit_singular_label", type="string", nullable=true)
  246.      */
  247.     protected $productOrderUnitSingularLabel;
  248.     /**
  249.      * @var string
  250.      * @ORM\Column(name="product_order_unit_plural_label", type="string", nullable=true)
  251.      */
  252.     protected $productOrderUnitPluralLabel;
  253.     /*** PRODUCT VARIATION FIELD ***/
  254.     /**
  255.      *
  256.      * @ORM\ManyToOne(targetEntity="ProductVariation")
  257.      * @ORM\JoinColumn(name="product_variation_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
  258.      */
  259.     protected $productVariation;
  260.     /**
  261.      *
  262.      * @ORM\Column(name="product_variation_id_copy",  type="integer", nullable=true)
  263.      */
  264.     protected $productVariationIdCopy;
  265.     /**
  266.      * @ORM\Column(name="product_variation_invoice_unit_count",  type="float", nullable=true)
  267.      */
  268.     protected $productVariationInvoiceUnitCount;
  269.     /**
  270.      * @ORM\Column(name="product_variation_label",  type="string", nullable=true)
  271.      * @Expose
  272.      */
  273.     protected $productVariationLabel;
  274.     /**
  275.      *
  276.      * @ORM\ManyToOne(targetEntity="Unit")
  277.      * @ORM\JoinColumn(name="product_variation_order_unit", referencedColumnName="id", nullable=true)
  278.      */
  279.     protected $productVariationOrderUnit;
  280.     /**
  281.      * @ORM\Column(name="product_variation_order_unit_singular",  type="string", nullable=true)
  282.      */
  283.     protected $productVariationOrderUnitSingular;
  284.     /**
  285.      * @ORM\Column(name="product_variation_order_unit_plural",  type="string", nullable=true)
  286.      */
  287.     protected $productVariationOrderUnitPlural;
  288.     /**
  289.      * @ORM\Column(name="product_tags_ids", type="array", nullable=true)
  290.      */
  291.     protected $productTagsIds;
  292.     /**
  293.      * @ORM\Column(name="product_tags_names", type="array", nullable=true)
  294.      */
  295.     protected $productTagsNames;
  296.     /**
  297.      * @ORM\Column(name="product_featurings_ids", type="array", nullable=true)
  298.      */
  299.     protected $productFeaturingsIds;
  300.     /**
  301.      * @ORM\Column(name="product_featurings_tiles", type="array", nullable=true)
  302.      */
  303.     protected $productFeaturingsTitles;
  304.     /**
  305.      * @ORM\Column(name="bought_by_customer_occurence", type="integer", nullable=true)
  306.      */
  307.     protected $boughtByCustomerOccurence;
  308.     // For ES extra field
  309.     protected $topCategoryId;
  310.     /**
  311.      * OrderItem constructor.
  312.      */
  313.     public function __construct()
  314.     {
  315.         $this->services = new ArrayCollection();
  316.     }
  317.     /**
  318.      * @return int
  319.      */
  320.     public function getId()
  321.     {
  322.         return $this->id;
  323.     }
  324.     /**
  325.      * @param int $id
  326.      */
  327.     public function setId($id)
  328.     {
  329.         $this->id $id;
  330.     }
  331.     /**
  332.      * @return Order
  333.      */
  334.     public function getOrder()
  335.     {
  336.         return $this->order;
  337.     }
  338.     /**
  339.      * @param Order $order
  340.      */
  341.     public function setOrder($order)
  342.     {
  343.         $this->order $order;
  344.     }
  345.     /**
  346.      * @param Product $product
  347.      */
  348.     public function setProduct($product)
  349.     {
  350.         $this->product $product;
  351.     }
  352.     /**
  353.      * @return int
  354.      */
  355.     public function getQuantity()
  356.     {
  357.         return $this->quantity;
  358.     }
  359.     /**
  360.      * @param int $quantity
  361.      */
  362.     public function setQuantity($quantity)
  363.     {
  364.         $this->quantity $quantity;
  365.     }
  366.     /**
  367.      * @return float
  368.      */
  369.     public function getUnitPriceExcludingTax()
  370.     {
  371.         return $this->unitPriceExcludingTax;
  372.     }
  373.     /**
  374.      * @param float $unitPriceExcludingTax
  375.      */
  376.     public function setUnitPriceExcludingTax($unitPriceExcludingTax)
  377.     {
  378.         $this->unitPriceExcludingTax $unitPriceExcludingTax;
  379.     }
  380.     /**
  381.      * @return float
  382.      */
  383.     public function getPromotion()
  384.     {
  385.         return $this->promotion;
  386.     }
  387.     /**
  388.      * @param float $promotion
  389.      */
  390.     public function setPromotion($promotion)
  391.     {
  392.         $this->promotion $promotion;
  393.     }
  394.     /**
  395.      * @return string
  396.      */
  397.     public function getPromotionType()
  398.     {
  399.         return $this->promotionType;
  400.     }
  401.     /**
  402.      * @param string $promotionType
  403.      */
  404.     public function setPromotionType($promotionType)
  405.     {
  406.         $this->promotionType $promotionType;
  407.     }
  408.     /**
  409.      * @return float
  410.      */
  411.     public function getTotalPriceExcludingTax()
  412.     {
  413.         return $this->totalPriceExcludingTax;
  414.     }
  415.     /**
  416.      * @param float $totalPriceExcludingTax
  417.      */
  418.     public function setTotalPriceExcludingTax($totalPriceExcludingTax)
  419.     {
  420.         $this->totalPriceExcludingTax $totalPriceExcludingTax;
  421.     }
  422.     /**
  423.      * @return Product
  424.      */
  425.     public function getProduct()
  426.     {
  427.         return $this->product;
  428.     }
  429.     /**
  430.      * @return string
  431.      */
  432.     public function getProductCode()
  433.     {
  434.         return $this->productCode;
  435.     }
  436.     /**
  437.      * @param string $productCode
  438.      */
  439.     public function setProductCode($productCode)
  440.     {
  441.         $this->productCode $productCode;
  442.     }
  443.     /**
  444.      * @return string
  445.      */
  446.     public function getProductName()
  447.     {
  448.         return $this->productName;
  449.     }
  450.     /**
  451.      * @param string $productName
  452.      */
  453.     public function setProductName($productName)
  454.     {
  455.         $this->productName $productName;
  456.     }
  457.     /**
  458.      * @return string
  459.      */
  460.     public function getProductCategoryLabel()
  461.     {
  462.         return $this->productCategoryLabel;
  463.     }
  464.     /**
  465.      * @param string $productCategoryLabel
  466.      */
  467.     public function setProductCategoryLabel($productCategoryLabel)
  468.     {
  469.         $this->productCategoryLabel $productCategoryLabel;
  470.     }
  471.     /**
  472.      * @return string
  473.      */
  474.     public function getProductSalesUnit()
  475.     {
  476.         return $this->productSalesUnit;
  477.     }
  478.     /**
  479.      * @param string $productSalesUnit
  480.      */
  481.     public function setProductSalesUnit($productSalesUnit)
  482.     {
  483.         $this->productSalesUnit $productSalesUnit;
  484.     }
  485.     /**
  486.      * @return string
  487.      */
  488.     public function getProductWeight()
  489.     {
  490.         return $this->productWeight;
  491.     }
  492.     /**
  493.      * @param string $productWeight
  494.      */
  495.     public function setProductWeight($productWeight)
  496.     {
  497.         $this->productWeight $productWeight;
  498.     }
  499.     /**
  500.      * @return string
  501.      */
  502.     public function getProductPackaging()
  503.     {
  504.         return $this->productPackaging;
  505.     }
  506.     /**
  507.      * @param string $productPackaging
  508.      */
  509.     public function setProductPackaging($productPackaging)
  510.     {
  511.         $this->productPackaging $productPackaging;
  512.     }
  513.     /**
  514.      * @return string
  515.      */
  516.     public function getProductSize()
  517.     {
  518.         return $this->productSize;
  519.     }
  520.     /**
  521.      * @param string $productSize
  522.      */
  523.     public function setProductSize($productSize)
  524.     {
  525.         $this->productSize $productSize;
  526.     }
  527.     /**
  528.      * @return string
  529.      */
  530.     public function getProductPicture()
  531.     {
  532.         return $this->productPicture;
  533.     }
  534.     /**
  535.      * @param string $productPicture
  536.      */
  537.     public function setProductPicture($productPicture)
  538.     {
  539.         $this->productPicture $productPicture;
  540.     }
  541.     /**
  542.      * @return string
  543.      */
  544.     public function getProductFsa()
  545.     {
  546.         return $this->productFsa;
  547.     }
  548.     /**
  549.      * @param string $productFsa
  550.      */
  551.     public function setProductFsa($productFsa)
  552.     {
  553.         $this->productFsa $productFsa;
  554.     }
  555.     /**
  556.      * @return bool
  557.      */
  558.     public function isProductBio()
  559.     {
  560.         return $this->productBio;
  561.     }
  562.     /**
  563.      * @param bool $productBio
  564.      */
  565.     public function setProductBio($productBio)
  566.     {
  567.         $this->productBio $productBio;
  568.     }
  569.     /**
  570.      * @return bool
  571.      */
  572.     public function isProductLocavore()
  573.     {
  574.         return $this->productLocavore;
  575.     }
  576.     /**
  577.      * @param bool $productLocavore
  578.      */
  579.     public function setProductLocavore($productLocavore)
  580.     {
  581.         $this->productLocavore $productLocavore;
  582.     }
  583.     /**
  584.      * @return DateTime
  585.      */
  586.     public function getProductDluo()
  587.     {
  588.         return $this->productDluo;
  589.     }
  590.     /**
  591.      * @param DateTime $productDluo
  592.      */
  593.     public function setProductDluo($productDluo)
  594.     {
  595.         $this->productDluo $productDluo;
  596.     }
  597.     /**
  598.      * @return string
  599.      */
  600.     public function getProductDescription()
  601.     {
  602.         return $this->productDescription;
  603.     }
  604.     /**
  605.      * @param string $productDescription
  606.      */
  607.     public function setProductDescription($productDescription)
  608.     {
  609.         $this->productDescription $productDescription;
  610.     }
  611.     /**
  612.      * @return string
  613.      */
  614.     public function getProductLabel()
  615.     {
  616.         return $this->productLabel;
  617.     }
  618.     /**
  619.      * @param string $productLabel
  620.      */
  621.     public function setProductLabel($productLabel)
  622.     {
  623.         $this->productLabel $productLabel;
  624.     }
  625.     /**
  626.      * @return string
  627.      */
  628.     public function getProductGrower()
  629.     {
  630.         return $this->productGrower;
  631.     }
  632.     /**
  633.      * @param string $productGrower
  634.      */
  635.     public function setProductGrower($productGrower)
  636.     {
  637.         $this->productGrower $productGrower;
  638.     }
  639.     /**
  640.      * @return string
  641.      */
  642.     public function getProductOrigin()
  643.     {
  644.         return $this->productOrigin;
  645.     }
  646.     /**
  647.      * @param string $productOrigin
  648.      */
  649.     public function setProductOrigin($productOrigin)
  650.     {
  651.         $this->productOrigin $productOrigin;
  652.     }
  653.     /**
  654.      * @return string
  655.      */
  656.     public function getMoreProducts()
  657.     {
  658.         return $this->moreProducts;
  659.     }
  660.     /**
  661.      * @param string $moreProducts
  662.      */
  663.     public function setMoreProducts($moreProducts)
  664.     {
  665.         $this->moreProducts $moreProducts;
  666.     }
  667.     /**
  668.      * @return string
  669.      */
  670.     public function getProductBrand()
  671.     {
  672.         return $this->productBrand;
  673.     }
  674.     /**
  675.      * @param string $productBrand
  676.      */
  677.     public function setProductBrand($productBrand)
  678.     {
  679.         $this->productBrand $productBrand;
  680.     }
  681.     /**
  682.      * @return DateTime
  683.      */
  684.     public function getCreatedAt()
  685.     {
  686.         return $this->createdAt;
  687.     }
  688.     /**
  689.      * Set createdAt
  690.      *
  691.      * @return OrderItem
  692.      * @ORM\PrePersist
  693.      */
  694.     public function setCreatedAt()
  695.     {
  696.         $this->createdAt = new DateTime();
  697.         $this->updatedAt = new DateTime();
  698.         return $this;
  699.     }
  700.     /**
  701.      * @return DateTime
  702.      */
  703.     public function getUpdatedAt()
  704.     {
  705.         return $this->updatedAt;
  706.     }
  707.     /**
  708.      * Set updatedAt
  709.      *
  710.      * @return OrderItem
  711.      * @ORM\PreUpdate
  712.      */
  713.     public function setUpdatedAt()
  714.     {
  715.         $this->updatedAt = new DateTime();
  716.         return $this;
  717.     }
  718.     /**
  719.      * @return float
  720.      */
  721.     public function getBundling()
  722.     {
  723.         return $this->bundling;
  724.     }
  725.     /**
  726.      * @param float $bundling
  727.      */
  728.     public function setBundling($bundling)
  729.     {
  730.         $this->bundling $bundling;
  731.     }
  732.     /**
  733.      * @return string
  734.      */
  735.     public function getProductPromotionType()
  736.     {
  737.         return $this->productPromotionType;
  738.     }
  739.     /**
  740.      * @param string $productPromotionType
  741.      */
  742.     public function setProductPromotionType($productPromotionType)
  743.     {
  744.         $this->productPromotionType $productPromotionType;
  745.     }
  746.     /**
  747.      * @return string
  748.      */
  749.     public function getPromotionLabel()
  750.     {
  751.         return $this->promotionLabel;
  752.     }
  753.     /**
  754.      * @param string $promotionLabel
  755.      */
  756.     public function setPromotionLabel($promotionLabel)
  757.     {
  758.         $this->promotionLabel $promotionLabel;
  759.     }
  760.     /**
  761.      * @return string
  762.      */
  763.     public function getProductOrderUnitSingularLabel()
  764.     {
  765.         return $this->productOrderUnitSingularLabel;
  766.     }
  767.     /**
  768.      * @param string $productOrderUnitSingularLabel
  769.      */
  770.     public function setProductOrderUnitSingularLabel($productOrderUnitSingularLabel)
  771.     {
  772.         $this->productOrderUnitSingularLabel $productOrderUnitSingularLabel;
  773.     }
  774.     /**
  775.      * @return string
  776.      */
  777.     public function getProductOrderUnitPluralLabel()
  778.     {
  779.         return $this->productOrderUnitPluralLabel;
  780.     }
  781.     /**
  782.      * @param string $productOrderUnitPluralLabel
  783.      */
  784.     public function setProductOrderUnitPluralLabel($productOrderUnitPluralLabel)
  785.     {
  786.         $this->productOrderUnitPluralLabel $productOrderUnitPluralLabel;
  787.     }
  788.     /**
  789.      * @return mixed
  790.      */
  791.     public function getProductVariation()
  792.     {
  793.         return $this->productVariation;
  794.     }
  795.     /**
  796.      * @param mixed $productVariation
  797.      */
  798.     public function setProductVariation($productVariation)
  799.     {
  800.         $this->productVariation $productVariation;
  801.     }
  802.     /**
  803.      * @return mixed
  804.      */
  805.     public function getProductVariationInvoiceUnitCount()
  806.     {
  807.         return $this->productVariationInvoiceUnitCount;
  808.     }
  809.     /**
  810.      * @param mixed $productVariationInvoiceUnitCount
  811.      */
  812.     public function setProductVariationInvoiceUnitCount($productVariationInvoiceUnitCount)
  813.     {
  814.         $this->productVariationInvoiceUnitCount $productVariationInvoiceUnitCount;
  815.     }
  816.     /**
  817.      * @return mixed
  818.      */
  819.     public function getProductVariationLabel()
  820.     {
  821.         return $this->productVariationLabel;
  822.     }
  823.     /**
  824.      * @param mixed $productVariationLabel
  825.      */
  826.     public function setProductVariationLabel($productVariationLabel)
  827.     {
  828.         $this->productVariationLabel $productVariationLabel;
  829.     }
  830.     /**
  831.      * @return mixed
  832.      */
  833.     public function getProductVariationOrderUnit()
  834.     {
  835.         return $this->productVariationOrderUnit;
  836.     }
  837.     /**
  838.      * @param mixed $productVariationOrderUnit
  839.      */
  840.     public function setProductVariationOrderUnit($productVariationOrderUnit)
  841.     {
  842.         $this->productVariationOrderUnit $productVariationOrderUnit;
  843.     }
  844.     /**
  845.      * @return mixed
  846.      */
  847.     public function getProductVariationOrderUnitSingular()
  848.     {
  849.         return $this->productVariationOrderUnitSingular;
  850.     }
  851.     /**
  852.      * @param mixed $productVariationOrderUnitSingular
  853.      */
  854.     public function setProductVariationOrderUnitSingular($productVariationOrderUnitSingular)
  855.     {
  856.         $this->productVariationOrderUnitSingular $productVariationOrderUnitSingular;
  857.     }
  858.     /**
  859.      * @return mixed
  860.      */
  861.     public function getProductVariationOrderUnitPlural()
  862.     {
  863.         return $this->productVariationOrderUnitPlural;
  864.     }
  865.     /**
  866.      * @param mixed $productVariationOrderUnitPlural
  867.      */
  868.     public function setProductVariationOrderUnitPlural($productVariationOrderUnitPlural)
  869.     {
  870.         $this->productVariationOrderUnitPlural $productVariationOrderUnitPlural;
  871.     }
  872.     /**
  873.      * @return string
  874.      */
  875.     public function getProductIdCopy()
  876.     {
  877.         return $this->productIdCopy;
  878.     }
  879.     /**
  880.      * @param string $productIdCopy
  881.      */
  882.     public function setProductIdCopy($productIdCopy)
  883.     {
  884.         $this->productIdCopy $productIdCopy;
  885.     }
  886.     /**
  887.      * @return mixed
  888.      */
  889.     public function getProductVariationIdCopy()
  890.     {
  891.         return $this->productVariationIdCopy;
  892.     }
  893.     /**
  894.      * @param mixed $productVariationIdCopy
  895.      */
  896.     public function setProductVariationIdCopy($productVariationIdCopy)
  897.     {
  898.         $this->productVariationIdCopy $productVariationIdCopy;
  899.     }
  900.     /**
  901.      * @return ArrayCollection
  902.      */
  903.     public function getServices()
  904.     {
  905.         return $this->services;
  906.     }
  907.     /**
  908.      * @param ArrayCollection $services
  909.      */
  910.     public function setServices($services)
  911.     {
  912.         $this->services $services;
  913.     }
  914.     public function addService($service)
  915.     {
  916.         $service->setOrderItem($this);
  917.         $this->services->add($service);
  918.     }
  919.     /**
  920.      * @param OrderService $service
  921.      */
  922.     public function removeService($service)
  923.     {
  924.         if ($this->services->contains($service)) {
  925.             $this->services->removeElement($service);
  926.         }
  927.     }
  928.     /**
  929.      * @return float
  930.      */
  931.     public function getTotalSavingExcludingTax()
  932.     {
  933.         return $this->totalSavingExcludingTax;
  934.     }
  935.     /**
  936.      * @param float $totalSavingExcludingTax
  937.      */
  938.     public function setTotalSavingExcludingTax($totalSavingExcludingTax)
  939.     {
  940.         $this->totalSavingExcludingTax $totalSavingExcludingTax;
  941.     }
  942.     /**
  943.      * @return mixed
  944.      */
  945.     public function getTopCategoryId()
  946.     {
  947.         return $this->topCategoryId;
  948.     }
  949.     /**
  950.      * @param mixed $topCategoryId
  951.      */
  952.     public function setTopCategoryId($topCategoryId)
  953.     {
  954.         $this->topCategoryId $topCategoryId;
  955.     }
  956.     /**
  957.      * @return string
  958.      */
  959.     public function getProductPreparation(): string
  960.     {
  961.         return $this->productPreparation;
  962.     }
  963.     /**
  964.      * @param string $productPreparation
  965.      */
  966.     public function setProductPreparation($productPreparation)
  967.     {
  968.         $this->productPreparation $productPreparation;
  969.     }
  970.     /**
  971.      * @return mixed
  972.      */
  973.     public function getProductTagsIds()
  974.     {
  975.         return $this->productTagsIds;
  976.     }
  977.     /**
  978.      * @param mixed $productTagsIds
  979.      */
  980.     public function setProductTagsIds($productTagsIds)
  981.     {
  982.         $this->productTagsIds $productTagsIds;
  983.     }
  984.     /**
  985.      * @return mixed
  986.      */
  987.     public function getProductFeaturingsIds()
  988.     {
  989.         return $this->productFeaturingsIds;
  990.     }
  991.     /**
  992.      * @param mixed $productFeaturingsIds
  993.      */
  994.     public function setProductFeaturingsIds($productFeaturingsIds)
  995.     {
  996.         $this->productFeaturingsIds $productFeaturingsIds;
  997.     }
  998.     /**
  999.      * @return mixed
  1000.      */
  1001.     public function getProductTagsNames()
  1002.     {
  1003.         return $this->productTagsNames;
  1004.     }
  1005.     /**
  1006.      * @param mixed $productTagsNames
  1007.      */
  1008.     public function setProductTagsNames($productTagsNames)
  1009.     {
  1010.         $this->productTagsNames $productTagsNames;
  1011.     }
  1012.     /**
  1013.      * @return mixed
  1014.      */
  1015.     public function getProductFeaturingsTitles()
  1016.     {
  1017.         return $this->productFeaturingsTitles;
  1018.     }
  1019.     /**
  1020.      * @param mixed $productFeaturingsTitles
  1021.      */
  1022.     public function setProductFeaturingsTitles($productFeaturingsTitles)
  1023.     {
  1024.         $this->productFeaturingsTitles $productFeaturingsTitles;
  1025.     }
  1026.     /**
  1027.      * @return mixed
  1028.      */
  1029.     public function getBoughtByCustomerOccurence()
  1030.     {
  1031.         return $this->boughtByCustomerOccurence;
  1032.     }
  1033.     /**
  1034.      * @param mixed $boughtByCustomerOccurence
  1035.      */
  1036.     public function setBoughtByCustomerOccurence($boughtByCustomerOccurence)
  1037.     {
  1038.         $this->boughtByCustomerOccurence $boughtByCustomerOccurence;
  1039.     }
  1040.     /**
  1041.      * @return string
  1042.      */
  1043.     public function getProductType(): string
  1044.     {
  1045.         return $this->productType;
  1046.     }
  1047.     /**
  1048.      * @param string $productType
  1049.      */
  1050.     public function setProductType(string $productType): void
  1051.     {
  1052.         $this->productType $productType;
  1053.     }
  1054. }