public function executeAprobarCarrera(sfWebRequest $request) { date_default_timezone_set("America/Guayaquil"); $this->forward404Unless($solicitud_carrera = Doctrine_Core::getTable('solicitud_carrera')->find(array($request->getParameter('id'))), sprintf('Los datos solicitados no existen (%s).', $request->getParameter('id'))); $numero = $request->getParameter('vehiculo'); $veh = Doctrine_Query::create()->from('vehiculo v')->where('v.numero = ?', $numero); $vehiculo = $veh->fetchOne(); if ($vehiculo) { $carreras = Doctrine_Core::getTable('carrera')->createQuery('c')->where('c.estado=?', 'espera')->execute(); $vehiculoActivo = false; foreach ($carreras as $carrera) { if ($carrera->getVehiculo()->getId() == $vehiculo->getId()) { $vehiculoActivo = true; break; } } if (!$vehiculoActivo) { $tiempo = $request->getParameter('tiempo'); if (Operaciones::is_Entero($tiempo)) { $solicitud_carrera->setTiempo($tiempo); $solicitud_carrera->setEstado('aprobada'); $solicitud_carrera->save(); $carrera = new Carrera(); $carrera->setCalidad(-1); $carrera->setSfGuardUser($this->getUser()->getGuardUser()); $carrera->setCodigo($solicitud_carrera->getCodigo()); $carrera->setVehiculo($vehiculo); $carrera->setTiempo($tiempo); $carrera->setTiempoAtencion('-1'); $carrera->setDetalle($solicitud_carrera->getDetalle()); date_default_timezone_set("America/Guayaquil"); $carrera->setFecha(date("Y-m-d")); $carrera->setHora(date("H:i:s")); $carrera->setEstado("espera"); $carrera->save(); } else { $this->getUser()->setFlash('error', 'El tiempo de espera se debe especificar con un número entero positivo.', true); } } else { $this->getUser()->setFlash('error', 'El vehiculo : ["' . $vehiculo . '"] se encuentra ocupado.', true); } } else { $this->getUser()->setFlash('error', 'El vehiculo : ["' . $numero . '"] al que hace referencia no existe.', true); } $this->redirect('carrera/gestion'); }