public static function getById($id)
 {
     $sql = 'select * from donante where id = :id';
     $query = self::nuevaDb()->prepare($sql);
     $query->execute(array(":id" => $id));
     $arreglo = $query->fetchAll(PDO::FETCH_ASSOC);
     $result = Donante::inicializar($arreglo[0]);
     return $result;
 }
 public function alta()
 {
     Session::tienePermiso('alta');
     if (isset($_POST['params'])) {
         $this->check_csrf('post');
         $this->actualizar_csrf();
         $alimentos = Alimento::obtenerTodos();
         $donantes = Donante::obtenerTodos();
         $params = $_POST['params'];
         $detalle = Detalle::nuevo($params['donacion']);
         $this->validar($detalle);
         if (count($detalle->getErrores()) == 0) {
             if (!$detalle->guardar()) {
                 $this->view->setError("no puedo guardarse el detalle.");
             } else {
                 $detalle_id = Model::lastInsertId();
                 $params['donacion']['detalle_id'] = $detalle_id;
                 $donacion = Donacion::nuevo($params['donacion']);
                 if (!$donacion->guardar()) {
                     $this->view->setError("se guardo el detalle pero no la relacion con quien hizo la donación.");
                 } else {
                     $this->view->setMensaje("Toso se guardo correctamente.");
                 }
             }
         } else {
             $this->view->setMensaje("Modifique los campos indicados.");
         }
         if ($this->view->getError() != null) {
             if (isset($donacion)) {
                 $this->view->renderizar("formulario", array("alimentos" => $alimentos, "donantes" => $donantes, "detalle" => $detalle, "donacion" => $donacion, "accion" => "alta", "token" => $this->token, "token_id" => $this->token_id));
             } else {
                 $this->view->renderizar("formulario", array("alimentos" => $alimentos, "donantes" => $donantes, "detalle" => $params['donacion'], "accion" => "alta", "token" => $this->token, "token_id" => $this->token_id));
             }
         } else {
             $this->redireccionar('donacion/alta');
         }
     } else {
         $alimentos = Alimento::obtenerTodos();
         $donantes = Donante::obtenerTodos();
         $this->view->setEncabezado("Nueva donacion");
         $this->view->renderizar("formulario", array("accion" => "alta", "alimentos" => $alimentos, "donantes" => $donantes, "token" => $this->token, "token_id" => $this->token_id));
     }
 }
 public function detalle($id)
 {
     Session::tienePermiso('detalle');
     $donante = Donante::getById($id);
     if ($donante->getId() != null) {
         $this->view->renderizar("detalle", array("donante" => $donante));
     } else {
         header('Location: /?uri=donante/listado/notFound');
     }
 }