src/Entity/OfferteCart.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use App\Controller\AppBundle\Interact\Compare\Cart;
  5. /**
  6.  * Offer cart, to convert back to a cast when needed.
  7.  */
  8. #[ORM\Table(name'offerte_cart')]
  9. #[ORM\Entity(repositoryClass'App\Repository\OfferteCartRepository')]
  10. class OfferteCart
  11. {
  12.     /**
  13.      * @var int
  14.      */
  15.     #[ORM\Column(name'id'type'integer')]
  16.     #[ORM\Id]
  17.     #[ORM\GeneratedValue(strategy'AUTO')]
  18.     public $id;
  19.     /**
  20.      * @var string
  21.      */
  22.     #[ORM\Column(name'cart'type'text')]
  23.     private $cart;
  24.     /**
  25.      * @var array
  26.      */
  27.     #[ORM\OneToMany(targetEntity'App\Entity\OfferteCartRow'mappedBy'cart'cascade: ['persist''remove'])]
  28.     public $processes;
  29.     /**
  30.      * @var string
  31.      */
  32.     #[ORM\Column(name'anva_key'type'text')]
  33.     public $anvaKey;
  34.     public function __construct($cart$processes = []) {
  35.         /** @var Cart $cart */
  36.         $this->setCart($cart);
  37.         $this->processes $processes;
  38.     }
  39.     public function setProcesses($processes) {
  40.         $this->processes $processes;
  41.     }
  42.     public function addProcess($process) {
  43.         $this->processes[] = $process;
  44.     }
  45.     public function setCart($cart) {
  46.         $this->cart serialize($cart);
  47.     }
  48.     /**
  49.      * @return Cart
  50.      */
  51.     public function getCart() {
  52.         return unserialize($this->cart);
  53.     }
  54.     public function processContainer($datasource) {
  55.         $processes = [];
  56.         $loop $this->processes;
  57.         foreach ($loop as $processContainer) {
  58.             $processes[] = $processContainer->getProcess();
  59.         }
  60.         return $this->getCart()->processCartDB($processes$datasource);
  61.     }
  62.     public function expireDate()
  63.     {
  64.         $expireDate null;
  65.         foreach ($this->processes as $row) {
  66.             $process $row->getProcess();
  67.             if (!$expireDate || $process->expireDate() < $expireDate) {
  68.                 $expireDate $process->expireDate();
  69.             }
  70.         }
  71.         return $expireDate;
  72.     }
  73. }