public static function addTariffPrivate($em, \Renovate\MainBundle\Entity\User $user, $parameters)
 {
     $em->getConnection()->beginTransaction();
     try {
         $tariffParent = $em->getRepository("RenovateMainBundle:Tariff")->find($parameters->id);
         $tariff = new Tariff();
         $tariff->setParentid($tariffParent->getId());
         $tariff->setUserid($user->getId());
         $tariff->setUser($user);
         $name = $parameters->edited == true ? $tariffParent->getName() . '+' : $tariffParent->getName();
         $tariff->setName($name);
         $tariff->setActive(FALSE);
         $tariff->setDiscount($tariffParent->getDiscount());
         $tariff->setSquaring($parameters->squaring);
         $tariff->setPayment(0);
         $tariff->setCreated(new \DateTime());
         $em->persist($tariff);
         $em->flush();
         $role = $em->getRepository("RenovateMainBundle:Role")->find($parameters->clientRole->id);
         $price = $tariff->calculatePrice($em, $role, $parameters->services);
         $tariffPrice = new TariffPrice();
         $tariffPrice->setTariffid($tariff->getId());
         $tariffPrice->setTariff($tariff);
         $tariffPrice->setRoleid($role->getId());
         $tariffPrice->setRole($role);
         $tariffPrice->setValue($price);
         $em->persist($tariffPrice);
         $em->flush();
         $tariff->setPayment($price * $tariff->getSquaring());
         $em->persist($tariff);
         $em->flush();
         $tariff->createTariffServices($em, $parameters);
         $em->getConnection()->commit();
         return $tariff;
     } catch (Exception $e) {
         $em->getConnection()->rollback();
         throw $e;
     }
 }