public static function addTariffPublic($em, $parameters) { $em->getConnection()->beginTransaction(); try { $tariff = new Tariff(); $tariff->setName($parameters->name); $tariff->setActive(TRUE); $tariff->setDiscount($parameters->discount); $tariff->setPayment(0); $tariff->setSquaring(1); $tariff->setCreated(new \DateTime()); $tariff->setActivated(new \DateTime()); $tariff->setPage($parameters->page); $em->persist($tariff); $em->flush(); $tariff->createTariffServices($em, $parameters); $tariff->createTariffPrices($em, $parameters); $em->getConnection()->commit(); return $tariff; } catch (Exception $e) { $em->getConnection()->rollback(); throw $e; } }