private function addOrUpdate($type, $data) { if ($type == "update") { $sm = $this; } else { $sm = new self(); } $sm->setBaseRate($data['baseRate']); $sm->setRateType($data['rateType']); $sm->setPerItemRate($data['perItemRate']); $sm->setPerWeightRate($data['perWeightRate']); $sm->setMinimumAmount($data['minimumAmount']); $sm->setMaximumAmount($data['maximumAmount']); $sm->setMinimumWeight($data['minimumWeight']); $sm->setMaximumWeight($data['maximumWeight']); $sm->setCountries($data['countries']); if ($data['countriesSelected']) { $countriesSelected = implode(',', $data['countriesSelected']); } $sm->setCountriesSelected($countriesSelected); $em = Database::get()->getEntityManager(); $em->persist($sm); $em->flush(); return $sm; }