/** * Set the per diem entity * * @param \Opit\OpitHrm\TravelBundle\Entity\TEPerDiem $perDiem * @param array $data value of per diem * @return int|boolean */ protected function setPerDiem($perDiem, $data) { $em = $this->getDoctrine()->getManager(); $result = array(); $result['status'] = 200; $config = $this->container->getParameter('currency_config'); $currencyCode = $config['default_currency']; //If it is a new per diem create, else modify it. if (false === $perDiem) { // Create a new per diem and save it. $perDiem = new TEPerDiem(); } if (isset($data['currency'])) { $currencyCode = $data['currency']; } $currency = $em->getRepository('OpitOpitHrmCurrencyRateBundle:Currency')->findOneByCode($currencyCode); $perDiem->setHours($data['hours']); $perDiem->setAmount($data['amount']); $perDiem->setCurrency($currency); $validator = $this->get('validator'); $errors = $validator->validate($perDiem); // If the validation failed if (count($errors) > 0) { $result['status'] = 500; $result['response'] = 'error'; // Get the error messages. foreach ($errors as $e) { $result['errorMessage'][] = $e->getMessage(); } } else { $em->persist($perDiem); $em->flush(); } return $result; }