public static function getInstance()
 {
     if (self::$objInstance == null) {
         self::$objInstance = new RepoFolhaPrevio();
     }
     return self::$objInstance;
 }
 public function getIdLivroCadastrar()
 {
     $arrObjParametro = NegParametro::getInstance()->consultar(null);
     $arrObjParametro = $arrObjParametro["objects"];
     $parametro = new Parametro();
     $parametro = $arrObjParametro[0];
     $intQuantidadeFolhasLivro = (int) $parametro->getTotFolhaLivro();
     $intQuantidadeLinhasFolha = (int) $parametro->getTotLinhaFolha();
     //verificar se existe livro cadastrado, se não tiver cria um novo, se ja tiver segue a regra
     $arrRetornoLivro = RepoLivroPrevio::getInstance()->consultar(null);
     if ($arrRetornoLivro == "") {
         $objLivroAdd = new LivroPrevio();
         $objLivroAdd->setNumero("1");
         $arrConsultaUsuario["USU_ID"] = $_SESSION["USUARIO_ID"];
         $arrObjUsu = NegUsuario::getInstance()->consultar($arrConsultaUsuario);
         $arrObjUsu = $arrObjUsu["objects"];
         $objLivroAdd->setUsuarioCadastro($arrObjUsu[0]);
         $objLivroAdd->setDataHoraCadastro(date("Y-m-d H:i:s"));
         RepoLivroPrevio::getInstance()->salvar($objLivroAdd);
         return db::getInstance()->getLastId();
     } else {
         //se existir um livro ou mais, pegar o primeiro item do retorno, pois será  o ultimo livro cadastrado
         //echo 'se existir um livro ou mais, pegar o primeiro item do retorno, pois será  o ultimo livro cadastrado';
         $arrStrFiltrosFolha["LIP_ID"] = $arrRetornoLivro[0]["LIP_ID"];
         $arrTotalFolhas = RepoFolhaPrevio::getInstance()->consultar($arrStrFiltrosFolha);
         if ($arrTotalFolhas != "") {
             //tem folhas cadastradas
             //verifica se a quantidade de linhas pra folha foi atingida
             //se não for ja retorna o id do livro se não continua os testes
             $consultaLinha["FPR_ID"] = $arrTotalFolhas[0]["FPR_ID"];
             $arrTotLinha = RepoLinhaPrevio::getInstance()->consultar($consultaLinha);
             if (count($arrTotLinha) == $intQuantidadeLinhasFolha) {
                 //se o total de linhas para folha ja foi atingido
                 //testa a quantidade de folhas da pagina
                 //conta a quantidade se for igual ao que é permitido cadastra um novo livro
                 if (count($arrTotalFolhas) == $intQuantidadeFolhasLivro) {
                     //se a quantidade de folhas encontradas for igual a quantidade de folhas permitidas
                     // cria um novo livro
                     $objLivroAdd = new LivroPrevio();
                     $objLivroAdd->setNumero($arrRetornoLivro[0]["LIP_NumeroLivro"] + 1);
                     $arrConsultaUsuario["USU_ID"] = $_SESSION["USUARIO_ID"];
                     $arrObjUsu = NegUsuario::getInstance()->consultar($arrConsultaUsuario);
                     $arrObjUsu = $arrObjUsu["objects"];
                     $objLivroAdd->setUsuarioCadastro($arrObjUsu[0]);
                     $objLivroAdd->setDataHoraCadastro(date("Y-m-d H:i:s"));
                     RepoLivroPrevio::getInstance()->salvar($objLivroAdd);
                     //retorna o novo id gerado..
                     return db::getInstance()->getLastId();
                 } else {
                     //se não retorna o id do livro
                     return $arrRetornoLivro[0]["LIP_ID"];
                 }
             } else {
                 //se não for atingida a quantidae de linhas ja retorna o id do livro
                 return $arrRetornoLivro[0]["LIP_ID"];
             }
         } else {
             //não tem folha então pode retorna o id
             return $arrRetornoLivro[0]["LIP_ID"];
         }
     }
     /*
             
                 //verifica se tem livro no ano atual        
                 $arrStrFiltrosLivro["ANO"] = date("Y");
                 $arrRetornoLivro =  RepoLivroPrevio::getInstance()->consultar($arrStrFiltrosLivro);
                 
                 
                 // se não tiver o livro cadastra e retorna o id gerado
                 if($arrRetornoLivro == NULL){
                     //echo 'se não tiver o livro cadastra e retorna o id gerado';
                     
                     
                     $objLivroAdd = new LivroPrevio();
                     $objLivroAdd->setNumero("1");
                     
                     $arrConsultaUsuario["USU_ID"] = $_SESSION["USUARIO_ID"];
                     $arrObjUsu = NegUsuario::getInstance()->consultar($arrConsultaUsuario);
                     $arrObjUsu = $arrObjUsu["objects"];
                     
                     $objLivroAdd->setUsuarioCadastro($arrObjUsu[0]);
                     $objLivroAdd->setDataHoraCadastro(date("Y-m-d H:i:s"));
                     
                     RepoLivroPrevio::getInstance()->salvar($objLivroAdd);
                     
                     return db::getInstance()->getLastId();
                 }else{                
                     
                 }*/
 }
 /**
  * Metodo buscarIdFolhaCadastrarLinha()
  * @access public
  * @return um array com id do livro e da folha para cadastrar a linha
  */
 public function getIdFolhaCadastrar()
 {
     //pega o id do livro
     $arrStrFiltrosFolha["LIP_ID"] = NegLivroPrevio::getInstance()->getIdLivroCadastrar();
     $intFolhaId = 0;
     $arrObjParametro = NegParametro::getInstance()->consultar(null);
     $arrObjParametro = $arrObjParametro["objects"];
     $parametro = new Parametro();
     $parametro = $arrObjParametro[0];
     //pega a quantidae de linhas permitidas por folha
     $intQuantidadeLinhasFolha = (int) $parametro->getTotLinhaFolha();
     //com o id do livro pega a quantidade de folhas
     $arrFolha = RepoFolhaPrevio::getInstance()->consultar($arrStrFiltrosFolha);
     //die();
     if ($arrFolha == "") {
         //cadastra uma nov folha
         $objFolha = new FolhaPrevio();
         $objFolha->setNumero(1);
         $arrConsultaUsuario["USU_ID"] = $_SESSION["USUARIO_ID"];
         $arrObjUsu = NegUsuario::getInstance()->consultar($arrConsultaUsuario);
         $arrObjUsu = $arrObjUsu["objects"];
         $arrConsultaLivro["LIP_ID"] = $arrStrFiltrosFolha["LIP_ID"];
         $arrObjLivro = NegLivroPrevio::getInstance()->consultar($arrConsultaLivro);
         $arrObjLivro = $arrObjLivro["objects"];
         $objFolha->setUsuarioCadastro($arrObjUsu[0]);
         $objFolha->setLivroPrevio($arrObjLivro[0]);
         $objFolha->setData(date("d/m/Y"));
         $objFolha->setDataHoraCadastro(date("Y-m-d H:i:s"));
         RepoFolhaPrevio::getInstance()->salvar($objFolha);
         //retorna o novo id gerado..
         $intFolhaId = db::getInstance()->getLastId();
     } else {
         //se a quantidade de folha for maior ou igua ao permitido cadastra uma nova folha
         //ver aqui .. contar as linhas pra testar
         $arrConsultaLinha["FPR_ID"] = $arrFolha[0]["FPR_ID"];
         $arrLinha = RepoLinhaPrevio::getInstance()->consultar($arrConsultaLinha);
         if ($arrLinha != "") {
             //conta a quantidade de linha se for igual ao que é permitido cadastra uma novo folha
             if (count($arrLinha) == $intQuantidadeLinhasFolha) {
                 //cadastra uma novo folha
                 //incrementa o numero da folha
                 $numFolha = $arrFolha[0]["FPR_NumeroFolha"] + 1;
                 $objFolha = new FolhaPrevio();
                 $objFolha->setNumero($numFolha);
                 $arrConsultaUsuario["USU_ID"] = $_SESSION["USUARIO_ID"];
                 $arrObjUsu = NegUsuario::getInstance()->consultar($arrConsultaUsuario);
                 $arrObjUsu = $arrObjUsu["objects"];
                 $arrConsultaLivro["LIP_ID"] = $arrStrFiltrosFolha["LIP_ID"];
                 $arrObjLivro = NegLivroPrevio::getInstance()->consultar($arrConsultaLivro);
                 $arrObjLivro = $arrObjLivro["objects"];
                 $objFolha->setUsuarioCadastro($arrObjUsu[0]);
                 $objFolha->setLivroPrevio($arrObjLivro[0]);
                 $objFolha->setData(date("d/m/Y"));
                 $objFolha->setDataHoraCadastro(date("Y-m-d H:i:s"));
                 RepoFolhaPrevio::getInstance()->salvar($objFolha);
                 //retorna o novo id gerado..
                 $intFolhaId = db::getInstance()->getLastId();
             } else {
                 //ainda não tem a quantidade então retorna o id da folha
                 $intFolhaId = $arrFolha[0]["FPR_ID"];
             }
         } else {
             //não tem nenhuma linha em tõ retorna a folha
             $intFolhaId = $arrFolha[0]["FPR_ID"];
         }
         /*$arrRetorno["folhaId"] = $intFolhaId;
           $arrRetorno["livroId"] = $arrStrFiltrosFolha["LIA_ID"];*/
         return $intFolhaId;
     }
 }