public static function getInstance()
 {
     if (self::$objInstance == null) {
         self::$objInstance = new RepoFolhaAuxiliar();
     }
     return self::$objInstance;
 }
 /**
  * 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["LIA_ID"] = NegLivroAuxiliar::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 = RepoFolhaAuxiliar::getInstance()->consultar($arrStrFiltrosFolha);
     //die();
     if ($arrFolha == NULL) {
         //cadastra uma nov folha
         $objFolha = new FolhaAuxiliar();
         $objFolha->setNumero(1);
         $arrConsultaUsuario["USU_ID"] = $_SESSION["USUARIO_ID"];
         $arrObjUsu = NegUsuario::getInstance()->consultar($arrConsultaUsuario);
         $arrObjUsu = $arrObjUsu["objects"];
         $arrConsultaLivro["LIA_ID"] = $arrStrFiltrosFolha["LIA_ID"];
         $arrObjLivro = NegLivroAuxiliar::getInstance()->consultar($arrConsultaLivro);
         $arrObjLivro = $arrObjLivro["objects"];
         $objFolha->setUsuarioCadastro($arrObjUsu[0]);
         $objFolha->setLivroAuxiliar($arrObjLivro[0]);
         $objFolha->setData(date("d/m/Y"));
         $objFolha->setDataHoraCadastro(date("Y-m-d H:i:s"));
         RepoFolhaAuxiliar::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["FAU_ID"] = $arrFolha[0]["FAU_ID"];
         $arrLinha = RepoLinhaAuxiliar::getInstance()->consultar($arrConsultaLinha);
         if ($arrLinha != NULL) {
             //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]["FAU_NumeroFolha"] + 1;
                 $objFolha = new FolhaAuxiliar();
                 $objFolha->setNumero($numFolha);
                 $arrConsultaUsuario["USU_ID"] = $_SESSION["USUARIO_ID"];
                 $arrObjUsu = NegUsuario::getInstance()->consultar($arrConsultaUsuario);
                 $arrObjUsu = $arrObjUsu["objects"];
                 $arrConsultaLivro["LIA_ID"] = $arrStrFiltrosFolha["LIA_ID"];
                 $arrObjLivro = NegLivroAuxiliar::getInstance()->consultar($arrConsultaLivro);
                 $arrObjLivro = $arrObjLivro["objects"];
                 $objFolha->setUsuarioCadastro($arrObjUsu[0]);
                 $objFolha->setLivroAuxiliar($arrObjLivro[0]);
                 $objFolha->setData(date("d/m/Y"));
                 $objFolha->setDataHoraCadastro(date("Y-m-d H:i:s"));
                 RepoFolhaAuxiliar::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]["FAU_ID"];
             }
         } else {
             //não tem nenhuma linha em tõ retorna a folha
             $intFolhaId = $arrFolha[0]["FAU_ID"];
         }
         /*$arrRetorno["folhaId"] = $intFolhaId;
           $arrRetorno["livroId"] = $arrStrFiltrosFolha["LIA_ID"];*/
         return $intFolhaId;
     }
 }
 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 = RepoLivroAuxiliar::getInstance()->consultar(null);
     if ($arrRetornoLivro == "") {
         $objLivroAdd = new LivroAuxiliar();
         $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"));
         RepoLivroAuxiliar::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["LIA_ID"] = $arrRetornoLivro[0]["LIA_ID"];
         $arrTotalFolhas = RepoFolhaAuxiliar::getInstance()->consultar($arrStrFiltrosFolha);
         if ($arrTotalFolhas != NULL) {
             //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["FAU_ID"] = $arrTotalFolhas[0]["FAU_ID"];
             $arrTotLinha = RepoLinhaAuxiliar::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 LivroAuxiliar();
                     $objLivroAdd->setNumero($arrRetornoLivro[0]["LIA_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"));
                     RepoLivroAuxiliar::getInstance()->salvar($objLivroAdd);
                     //retorna o novo id gerado..
                     return db::getInstance()->getLastId();
                 } else {
                     //se não retorna o id do livro
                     return $arrRetornoLivro[0]["LIA_ID"];
                 }
             } else {
                 //se não for atingida a quantidae de linhas ja retorna o id do livro
                 return $arrRetornoLivro[0]["LIA_ID"];
             }
         } else {
             //não tem folha então pode retorna o id
             return $arrRetornoLivro[0]["LIA_ID"];
         }
     }
     /*
                 // 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 LivroAuxiliar();
                     $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"));
                     
                     RepoLivroAuxiliar::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["LIA_ID"] = $arrRetornoLivro[0]["LIA_ID"];
                     $arrTotalFolhas = RepoFolhaAuxiliar::getInstance()->consultar($arrStrFiltrosFolha);
     
                     if($arrTotalFolhas != NULL){//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["FAU_ID"] = $arrTotalFolhas[0]["FAU_ID"];
                         $arrTotLinha = RepoLinhaAuxiliar::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 LivroAuxiliar();
                                 $objLivroAdd->setNumero($arrRetornoLivro[0]["LIA_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"));
     
                                 RepoLivroAuxiliar::getInstance()->salvar($objLivroAdd);
                                 //retorna o novo id gerado..
                                 return db::getInstance()->getLastId();
                             }else{                        
                                 //se não retorna o id do livro
                                 return $arrRetornoLivro[0]["LIA_ID"];
                             }
                         }else{
                             //se não for atingida a quantidae de linhas ja retorna o id do livro                        
                             return $arrRetornoLivro[0]["LIA_ID"];
                         }
                     }else{  
                         //não tem folha então pode retorna o id
                         return $arrRetornoLivro[0]["LIA_ID"] ;
                     }
                 }*/
 }