Example #1
0
 /**
  * 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;
 }