public function create(Product $product, $price, $duration = null)
 {
     $ps = new PriceSolution();
     $ps->setPrice($price);
     $ps->setProduct($product);
     $ps->setMonthDuration($duration);
     $this->om->persist($ps);
     $this->om->flush();
     return $ps;
 }
 private function createSupportCreditsProducts()
 {
     $this->log('Creating support credits products...');
     $pack20 = $this->productRepo->findOneByCode('SUPPORT_CREDITS_PACK_20');
     if (is_null($pack20)) {
         $pack20 = new Product();
         $pack20->setCode('SUPPORT_CREDITS_PACK_20');
         $pack20->setType('SUPPORT_CREDITS');
         $details = array('name' => 'Pack 20', 'nb_credits' => 20, 'nb_hours' => 4, 'saving' => 0);
         $pack20->setDetails($details);
         $pack20->setIsActivated(true);
         $priceSolution = new PriceSolution();
         $priceSolution->setPrice(250);
         $priceSolution->setProduct($pack20);
         $this->om->persist($priceSolution);
         $pack20->addPriceSolution($priceSolution);
         $this->om->persist($pack20);
     }
     $pack50 = $this->productRepo->findOneByCode('SUPPORT_CREDITS_PACK_50');
     if (is_null($pack50)) {
         $pack50 = new Product();
         $pack50->setCode('SUPPORT_CREDITS_PACK_50');
         $pack50->setType('SUPPORT_CREDITS');
         $details = array('name' => 'Pack 50', 'nb_credits' => 50, 'nb_hours' => 10, 'saving' => 50);
         $pack50->setDetails($details);
         $pack50->setIsActivated(true);
         $priceSolution = new PriceSolution();
         $priceSolution->setPrice(575);
         $priceSolution->setProduct($pack50);
         $this->om->persist($priceSolution);
         $pack50->addPriceSolution($priceSolution);
         $this->om->persist($pack50);
     }
     $pack100 = $this->productRepo->findOneByCode('SUPPORT_CREDITS_PACK_100');
     if (is_null($pack100)) {
         $pack100 = new Product();
         $pack100->setCode('SUPPORT_CREDITS_PACK_100');
         $pack100->setType('SUPPORT_CREDITS');
         $details = array('name' => 'Pack 100', 'nb_credits' => 100, 'nb_hours' => 20, 'saving' => 250);
         $pack100->setDetails($details);
         $pack100->setIsActivated(true);
         $priceSolution = new PriceSolution();
         $priceSolution->setPrice(1000);
         $priceSolution->setProduct($pack100);
         $this->om->persist($priceSolution);
         $pack50->addPriceSolution($priceSolution);
         $this->om->persist($pack100);
     }
 }
 /**
  * {@inheritDoc}
  */
 public function load(ObjectManager $manager)
 {
     $data = array(array('code' => 'SUPPORT_CREDITS_PACK_20', 'type' => 'SUPPORT_CREDITS', 'details' => array('name' => 'Pack 20', 'nb_credits' => 20, 'nb_hours' => 4, 'saving' => 0), 'pricing' => 250), array('code' => 'SUPPORT_CREDITS_PACK_50', 'type' => 'SUPPORT_CREDITS', 'details' => array('name' => 'Pack 50', 'nb_credits' => 50, 'nb_hours' => 10, 'saving' => 50), 'pricing' => 575), array('code' => 'SUPPORT_CREDITS_PACK_100', 'type' => 'SUPPORT_CREDITS', 'details' => array('name' => 'Pack 100', 'nb_credits' => 100, 'nb_hours' => 20, 'saving' => 250), 'pricing' => 1000));
     foreach ($data as $info) {
         $product = new Product();
         $product->setCode($info['code']);
         $product->setType($info['type']);
         $product->setDetails($info['details']);
         $product->setIsActivated(true);
         $priceSolution = new PriceSolution();
         $priceSolution->setPrice($info['pricing']);
         $priceSolution->setProduct($product);
         $manager->persist($priceSolution);
         $product->addPriceSolution($priceSolution);
         $manager->persist($product);
     }
     $manager->flush();
 }