/** * * @param type $idTrabajador * @param \DateTime $date * @param type $estado * @return type * @throws \Exception */ public function beginWork($idTrabajador, \DateTime $date, $status, $working = true) { try { //Evalúa el estado del trabajador $registro = $this->getWorkerStatus($idTrabajador); if ($registro) { // En caso de existir un registro modificar sus valores // adaptándolo a las nuevas variables $registro->setEntrada($date); $registro->setEstadoEntrada($status); $registro->setTrabajando($working); } else { // En caso de no existir el registro se procede a crear uno nuevo $trabajador = $this->trabajadorManager->getTrabajador($idTrabajador); $registro = new RegistroEntradaSalida(); $registro->setTrabajador($trabajador); $registro->setEntrada($date); $registro->setEstadoEntrada($status); $registro->setTrabajando($working); } $this->persist($registro); $this->flush(); } catch (NoResultException $nre) { //echo $nre->getTraceAsString(); throw new \Exception($nre->getMessage()); } }