Commit 00101e5d4d3f7503c636342eb2b8a58b1bf603ff
1 parent
e9e4b6ed
Exists in
master
Corrigido / aplicado melhorias no modulo deprecado biblioteca, adicionado /modul…
…es/Biblioteca com emprestimo reescrito.
Showing
34 changed files
with
2294 additions
and
866 deletions
Show diff stats
ieducar/intranet/educar_acervo_assunto_cad.php
| ... | ... | @@ -56,7 +56,7 @@ class indice extends clsCadastro |
| 56 | 56 | var $data_exclusao; |
| 57 | 57 | var $ativo; |
| 58 | 58 | var $ref_cod_biblioteca; |
| 59 | - | |
| 59 | + | |
| 60 | 60 | function Inicializar() |
| 61 | 61 | { |
| 62 | 62 | $retorno = "Novo"; |
| ... | ... | @@ -98,35 +98,12 @@ class indice extends clsCadastro |
| 98 | 98 | // primary keys |
| 99 | 99 | $this->campoOculto( "cod_acervo_assunto", $this->cod_acervo_assunto ); |
| 100 | 100 | |
| 101 | - // foreign keys | |
| 102 | - /*$obj_pessoa_bib = new clsPmieducarBibliotecaUsuario(); | |
| 103 | - $lst_pessoa_bib = $obj_pessoa_bib->lista(null, $this->pessoa_logada); | |
| 104 | - | |
| 105 | - $opcoes = array("" => "Selecione"); | |
| 106 | - if(is_array($lst_pessoa_bib)) | |
| 107 | - { | |
| 108 | - foreach ($lst_pessoa_bib as $bib) | |
| 109 | - { | |
| 110 | - $obj_biblioteca = new clsPmieducarBiblioteca($bib['ref_cod_biblioteca']); | |
| 111 | - $det_biblioteca = $obj_biblioteca->detalhe(); | |
| 112 | - | |
| 113 | - $opcoes[$det_biblioteca['cod_biblioteca']] = $det_biblioteca['nm_biblioteca']; | |
| 114 | - } | |
| 115 | - } | |
| 116 | - $this->campoLista("ref_cod_biblioteca", "Biblioteca", $opcoes, $this->ref_cod_biblioteca);*/ | |
| 117 | - | |
| 118 | - $get_escola = 1; | |
| 119 | - $escola_obrigatorio = false; | |
| 120 | - $get_biblioteca = 1; | |
| 121 | - $instituicao_obrigatorio = true; | |
| 122 | - $biblioteca_obrigatorio = true; | |
| 123 | - include("include/pmieducar/educar_campo_lista.php"); | |
| 101 | + //foreign keys | |
| 102 | + $this->inputsHelper()->dynamic(array('instituicao', 'escola', 'biblioteca')); | |
| 124 | 103 | |
| 125 | 104 | // text |
| 126 | 105 | $this->campoTexto( "nm_assunto", "Assunto", $this->nm_assunto, 30, 255, true ); |
| 127 | 106 | $this->campoMemo( "descricao", "Descrição", $this->descricao, 60, 5, false ); |
| 128 | - | |
| 129 | - | |
| 130 | 107 | } |
| 131 | 108 | |
| 132 | 109 | function Novo() |
| ... | ... | @@ -213,4 +190,4 @@ $miolo = new indice(); |
| 213 | 190 | $pagina->addForm( $miolo ); |
| 214 | 191 | // gera o html |
| 215 | 192 | $pagina->MakeAll(); |
| 216 | -?> | |
| 217 | 193 | \ No newline at end of file |
| 194 | +?> | ... | ... |
ieducar/intranet/educar_acervo_cad.php
| 1 | 1 | <?php |
| 2 | + | |
| 2 | 3 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
| 3 | 4 | * * |
| 4 | 5 | * @author Prefeitura Municipal de Itajaí * |
| ... | ... | @@ -24,10 +25,10 @@ |
| 24 | 25 | * 02111-1307, USA. * |
| 25 | 26 | * * |
| 26 | 27 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
| 27 | -require_once ("include/clsBase.inc.php"); | |
| 28 | -require_once ("include/clsCadastro.inc.php"); | |
| 29 | -require_once ("include/clsBanco.inc.php"); | |
| 30 | -require_once( "include/pmieducar/geral.inc.php" ); | |
| 28 | +require_once "include/clsBase.inc.php"; | |
| 29 | +require_once "include/clsCadastro.inc.php"; | |
| 30 | +require_once "include/clsBanco.inc.php"; | |
| 31 | +require_once "include/pmieducar/geral.inc.php"; | |
| 31 | 32 | |
| 32 | 33 | class clsIndexBase extends clsBase |
| 33 | 34 | { |
| ... | ... | @@ -85,6 +86,11 @@ class indice extends clsCadastro |
| 85 | 86 | var $idioma; |
| 86 | 87 | var $autor; |
| 87 | 88 | |
| 89 | + protected function setSelectionFields() | |
| 90 | + { | |
| 91 | + | |
| 92 | + } | |
| 93 | + | |
| 88 | 94 | function Inicializar() |
| 89 | 95 | { |
| 90 | 96 | $retorno = "Novo"; |
| ... | ... | @@ -159,51 +165,9 @@ class indice extends clsCadastro |
| 159 | 165 | $this->campoOculto( "idioma", "" ); |
| 160 | 166 | $this->campoOculto( "autor", "" ); |
| 161 | 167 | |
| 162 | - $get_escola = 1; | |
| 163 | - $escola_obrigatorio = false; | |
| 164 | - $get_biblioteca = 1; | |
| 165 | - $instituicao_obrigatorio = true; | |
| 166 | - $biblioteca_obrigatorio = true; | |
| 167 | - include("include/pmieducar/educar_campo_lista.php"); | |
| 168 | - | |
| 169 | - // foreign keys | |
| 170 | - /*$opcoes = array( "" => "Selecione" ); | |
| 171 | - if( class_exists( "clsPmieducarExemplarTipo" ) ) | |
| 172 | - { | |
| 173 | - $objTemp = new clsPmieducarExemplarTipo(); | |
| 174 | - $lista = $objTemp->lista(null,null); | |
| 175 | - if ( is_array( $lista ) && count( $lista ) ) | |
| 176 | - { | |
| 177 | - $tipos = "tipos = new Array();\n"; | |
| 178 | - foreach ( $lista as $registro ) | |
| 179 | - { | |
| 180 | - $tipos .= "tipos[tipos.length] = new Array( {$registro["cod_exemplar_tipo"]}, '{$registro['nm_tipo']}', {$registro['ref_cod_biblioteca']});\n"; | |
| 181 | - | |
| 182 | - } | |
| 183 | - echo "<script>{$tipos}</script>"; | |
| 184 | - } | |
| 185 | - } | |
| 186 | - else | |
| 187 | - { | |
| 188 | - echo "<!--\nErro\nClasse clsPmieducarExemplarTipo nao encontrada\n-->"; | |
| 189 | - }*/ | |
| 190 | - $opcoes = array( "NULL" => "Selecione" ); | |
| 191 | - | |
| 192 | - if( $this->ref_cod_biblioteca ) | |
| 193 | - { | |
| 194 | - $objTemp = new clsPmieducarExemplarTipo(); | |
| 195 | - $lista = $objTemp->lista(null,$this->ref_cod_biblioteca); | |
| 196 | - if ( is_array( $lista ) && count( $lista ) ) | |
| 197 | - { | |
| 198 | - foreach ( $lista as $registro ) | |
| 199 | - { | |
| 200 | - $opcoes["{$registro['cod_exemplar_tipo']}"] = "{$registro['nm_tipo']}"; | |
| 201 | - } | |
| 202 | - } | |
| 203 | - } | |
| 204 | - | |
| 205 | - $this->campoLista( "ref_cod_exemplar_tipo", "Exemplar Tipo", $opcoes, $this->ref_cod_exemplar_tipo ); | |
| 168 | + $this->inputsHelper()->dynamic(array('instituicao', 'escola', 'biblioteca', 'bibliotecaTipoExemplar')); | |
| 206 | 169 | |
| 170 | + // Obra referência | |
| 207 | 171 | $opcoes = array( "NULL" => "Selecione" ); |
| 208 | 172 | |
| 209 | 173 | if( $this->ref_cod_acervo && $this->ref_cod_acervo != "NULL") |
| ... | ... | @@ -216,9 +180,9 @@ class indice extends clsCadastro |
| 216 | 180 | } |
| 217 | 181 | } |
| 218 | 182 | |
| 219 | - //campoListaPesq( $nome, $campo, $valor, $default, $caminho="", $acao = "" , $duplo=false, $descricao="", $descricao2="", $flag=null, $pag_cadastro = null, $disabled = "", $div = false, $serializedcampos = false, $obrigatorio = false ) | |
| 220 | -// $this->campoListaPesq( "ref_cod_acervo", "Obra Referência", $opcoes, $this->ref_cod_acervo,"educar_pesquisa_acervo_lst.php?campo1=ref_cod_acervo","","","","","","","",true ); | |
| 221 | 183 | $this->campoLista("ref_cod_acervo","Obra Referência",$opcoes,$this->ref_cod_acervo,"",false,"","<img border=\"0\" onclick=\"pesquisa();\" id=\"ref_cod_acervo_lupa\" name=\"ref_cod_acervo_lupa\" src=\"imagens/lupa.png\"\/>",false,false); |
| 184 | + | |
| 185 | + // Coleção | |
| 222 | 186 | $opcoes = array( "" => "Selecione" ); |
| 223 | 187 | if( class_exists( "clsPmieducarAcervoColecao" ) ) |
| 224 | 188 | { |
| ... | ... | @@ -238,8 +202,8 @@ class indice extends clsCadastro |
| 238 | 202 | $opcoes = array( "" => "Erro na geracao" ); |
| 239 | 203 | } |
| 240 | 204 | $this->campoLista( "ref_cod_acervo_colecao", "Coleção", $opcoes, $this->ref_cod_acervo_colecao,"",false,"","<img id='img_colecao' src='imagens/banco_imagens/escreve.gif' style='cursor:hand; cursor:pointer;' border='0' onclick=\"showExpansivelImprimir(500, 200,'educar_acervo_colecao_cad_pop.php',[], 'Coleção')\" />",false,false ); |
| 241 | - //"<img id='imgLupa' src=\"imagens/lupa.png\" border=\"0\" onclick=\"pesquisa_valores_popless( 'pesquisa_funcionario_lst.php?campos=".$parametros->serializaCampos()."&importa_cpf=true&chave_campo='+/[0-9]+/.exec(this.previousSibling.previousSibling.id)[0], this.previousSibling.previousSibling.id ); \" /> | |
| 242 | 205 | |
| 206 | + // Idioma | |
| 243 | 207 | $opcoes = array( "" => "Selecione" ); |
| 244 | 208 | if( class_exists( "clsPmieducarAcervoIdioma" ) ) |
| 245 | 209 | { |
| ... | ... | @@ -363,7 +327,7 @@ class indice extends clsCadastro |
| 363 | 327 | $det_acervo_autor = $obj_acervo_autor->detalhe(); |
| 364 | 328 | $nm_autor = $det_acervo_autor["nm_autor"]; |
| 365 | 329 | $this->campoTextoInv( "ref_cod_exemplar_tipo_{$autor["ref_cod_acervo_autor_"]}", "", $nm_autor, 30, 255, false, false, true ); |
| 366 | - $this->campoCheck( "principal_{$autor["ref_cod_acervo_autor_"]}", "", $autor['principal_'], "<a href='#' onclick=\"getElementById('excluir_autor').value = '{$autor["ref_cod_acervo_autor_"]}'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>", false,false,true ); | |
| 330 | + $this->campoCheck( "principal_{$autor["ref_cod_acervo_autor_"]}", "", $autor['principal_'], "<a href='#' onclick=\"getElementById('excluir_autor').value = '{$autor["ref_cod_acervo_autor_"]}'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>", false, false, false ); | |
| 367 | 331 | $aux["ref_cod_acervo_autor_"] = $autor["ref_cod_acervo_autor_"]; |
| 368 | 332 | $aux["principal_"] = $autor['principal_']; |
| 369 | 333 | } |
| ... | ... | @@ -399,18 +363,14 @@ class indice extends clsCadastro |
| 399 | 363 | { |
| 400 | 364 | // die("1"); |
| 401 | 365 | $this->campoLista( "ref_cod_acervo_autor", "Autor", $opcoes, $this->ref_cod_acervo_autor,null,true,"","",false,true ); |
| 402 | - $this->campoCheck( "principal", " <img id='img_autor' src='imagens/banco_imagens/escreve.gif' style='cursor:hand; cursor:pointer;' border='0' onclick=\"showExpansivelImprimir(500, 250,'educar_acervo_autor_cad_pop.php',[], 'Autor')\" /> Principal", $this->principal,"<a href='#' onclick=\"getElementById('incluir_autor').value = 'S'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bot_adiciona.gif' title='Incluir' border=0></a>" ); | |
| 366 | + | |
| 367 | + $this->campoCheck( "principal", " <img id='img_autor' src='imagens/banco_imagens/escreve.gif' style='cursor:hand; cursor:pointer;' border='0' onclick=\"showExpansivelImprimir(500, 250,'educar_acervo_autor_cad_pop.php',[], 'Autor')\" />", $this->principal,"<a href='#' onclick=\"getElementById('incluir_autor').value = 'S'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bot_adiciona.gif' title='Incluir' border=0></a>" ); | |
| 403 | 368 | } |
| 404 | 369 | // não existe um autor principal, mas existe um autor |
| 405 | 370 | else if ( ($this->checked != 1) && ($qtd_autor > 0) ) |
| 406 | 371 | { |
| 407 | -// echo "principal ".$this->checked; | |
| 408 | -// echo "is_array($this->acervo_autor)"; | |
| 409 | -// print_r($this->acervo_autor); | |
| 410 | -// | |
| 411 | -// die("2"); | |
| 412 | 372 | $this->campoLista( "ref_cod_acervo_autor", "Autor", $opcoes, $this->ref_cod_acervo_autor,null,true,null, null,null,false); |
| 413 | - $this->campoCheck( "principal", " <img src='imagens/banco_imagens/escreve.gif' style='cursor:hand; cursor:pointer;' border='0' onclick=\"pesquisa_valores_popless( 'educar_acervo_autor_cad_pop.php' )\" /> Principal", $this->principal,"<a href='#' onclick=\"getElementById('incluir_autor').value = 'S'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bot_adiciona.gif' title='Incluir' border=0></a>" ); | |
| 373 | + $this->campoCheck( "principal", " <img src='imagens/banco_imagens/escreve.gif' style='cursor:hand; cursor:pointer;' border='0' onclick=\"pesquisa_valores_popless( 'educar_acervo_autor_cad_pop.php' )\" />", $this->principal,"<a href='#' onclick=\"getElementById('incluir_autor').value = 'S'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bot_adiciona.gif' title='Incluir' border=0></a>" ); | |
| 414 | 374 | } |
| 415 | 375 | // existe um autor principal |
| 416 | 376 | else |
| ... | ... | @@ -420,7 +380,6 @@ class indice extends clsCadastro |
| 420 | 380 | } |
| 421 | 381 | |
| 422 | 382 | $this->campoOculto( "incluir_autor", "" ); |
| 423 | -// $this->campoRotulo( "bt_incluir_autor", "Autor", "<a href='#' onclick=\"getElementById('incluir_autor').value = 'S'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bot_incluir2.gif' title='Incluir' border=0></a>" ); | |
| 424 | 383 | |
| 425 | 384 | $this->campoQuebra(); |
| 426 | 385 | //-----------------------FIM AUTOR------------------------// |
| ... | ... | @@ -428,13 +387,15 @@ class indice extends clsCadastro |
| 428 | 387 | // text |
| 429 | 388 | $this->campoTexto( "titulo", "Título", $this->titulo, 40, 255, true ); |
| 430 | 389 | $this->campoTexto( "sub_titulo", "Subtítulo", $this->sub_titulo, 40, 255, false ); |
| 431 | - $this->campoTexto( "cdu", "Cdu", $this->cdu, 20, 15, false ); | |
| 390 | + $this->campoTexto( "estante", "Estante", $this->estante, 20, 15, false ); | |
| 391 | + $this->campoTexto( "cdd", "CDD", $this->cdd, 20, 15, false ); | |
| 392 | + $this->campoTexto( "cdu", "CDU", $this->cdu, 20, 15, false ); | |
| 432 | 393 | $this->campoTexto( "cutter", "Cutter", $this->cutter, 20, 15, false ); |
| 433 | 394 | $this->campoNumero( "volume", "Volume", $this->volume, 20, 255, true ); |
| 434 | 395 | $this->campoNumero( "num_edicao", "Número Edicão", $this->num_edicao, 20, 255, true ); |
| 435 | 396 | $this->campoNumero( "ano", "Ano", $this->ano, 5, 4, true ); |
| 436 | 397 | $this->campoNumero( "num_paginas", "Número Páginas", $this->num_paginas, 5, 255, true ); |
| 437 | - $this->campoNumero( "isbn", "ISBN", $this->isbn, 20, 255, true ); | |
| 398 | + $this->campoNumero( "isbn", "ISBN", $this->isbn, 20, 13, true ); | |
| 438 | 399 | } |
| 439 | 400 | |
| 440 | 401 | function Novo() |
| ... | ... | @@ -448,17 +409,16 @@ class indice extends clsCadastro |
| 448 | 409 | $this->acervo_autor = unserialize( urldecode( $this->acervo_autor ) ); |
| 449 | 410 | if ($this->acervo_autor) |
| 450 | 411 | { |
| 451 | - $obj = new clsPmieducarAcervo( null, $this->ref_cod_exemplar_tipo, $this->ref_cod_acervo, null, $this->pessoa_logada, $this->ref_cod_acervo_colecao, $this->ref_cod_acervo_idioma, $this->ref_cod_acervo_editora, $this->titulo, $this->sub_titulo, $this->cdu, $this->cutter, $this->volume, $this->num_edicao, $this->ano, $this->num_paginas, $this->isbn, null, null, 1, $this->ref_cod_biblioteca ); | |
| 412 | + $obj = new clsPmieducarAcervo( null, $this->ref_cod_exemplar_tipo, $this->ref_cod_acervo, null, $this->pessoa_logada, $this->ref_cod_acervo_colecao, $this->ref_cod_acervo_idioma, $this->ref_cod_acervo_editora, $this->titulo, $this->sub_titulo, $this->cdu, $this->cutter, $this->volume, $this->num_edicao, $this->ano, $this->num_paginas, $this->isbn, null, null, 1, $this->ref_cod_biblioteca, $this->cdd, $this->estante ); | |
| 452 | 413 | $cadastrou = $obj->cadastra(); |
| 453 | 414 | if( $cadastrou ) |
| 454 | 415 | { |
| 455 | 416 | //-----------------------CADASTRA AUTOR------------------------// |
| 456 | 417 | foreach ( $this->acervo_autor AS $autor ) |
| 457 | 418 | { |
| 458 | - if ($autor["principal_"] == 'on') | |
| 459 | - $autor["principal_"] = 1; | |
| 460 | - else | |
| 461 | - $autor["principal_"] = 0; | |
| 419 | + $autorPrincipal = $_POST["principal_{$autor['ref_cod_acervo_autor_']}"]; | |
| 420 | + $autor["principal_"] = is_null($autorPrincipal) ? 0 : 1; | |
| 421 | + | |
| 462 | 422 | $obj = new clsPmieducarAcervoAcervoAutor( $autor["ref_cod_acervo_autor_"], $cadastrou, $autor["principal_"] ); |
| 463 | 423 | $cadastrou2 = $obj->cadastra(); |
| 464 | 424 | if ( !$cadastrou2 ) |
| ... | ... | @@ -495,21 +455,21 @@ class indice extends clsCadastro |
| 495 | 455 | $this->acervo_autor = unserialize( urldecode( $this->acervo_autor ) ); |
| 496 | 456 | if ($this->acervo_autor) |
| 497 | 457 | { |
| 498 | - $obj = new clsPmieducarAcervo($this->cod_acervo, $this->ref_cod_exemplar_tipo, $this->ref_cod_acervo, $this->pessoa_logada, null, $this->ref_cod_acervo_colecao, $this->ref_cod_acervo_idioma, $this->ref_cod_acervo_editora, $this->titulo, $this->sub_titulo, $this->cdu, $this->cutter, $this->volume, $this->num_edicao, $this->ano, $this->num_paginas, $this->isbn, null, null, 1, $this->ref_cod_biblioteca); | |
| 458 | + $obj = new clsPmieducarAcervo($this->cod_acervo, $this->ref_cod_exemplar_tipo, $this->ref_cod_acervo, $this->pessoa_logada, null, $this->ref_cod_acervo_colecao, $this->ref_cod_acervo_idioma, $this->ref_cod_acervo_editora, $this->titulo, $this->sub_titulo, $this->cdu, $this->cutter, $this->volume, $this->num_edicao, $this->ano, $this->num_paginas, $this->isbn, null, null, 1, $this->ref_cod_biblioteca, $this->cdd, $this->estante); | |
| 499 | 459 | $editou = $obj->edita(); |
| 500 | 460 | if( $editou ) |
| 501 | 461 | { |
| 502 | 462 | //-----------------------EDITA AUTOR------------------------// |
| 463 | + | |
| 503 | 464 | $obj = new clsPmieducarAcervoAcervoAutor( null, $this->cod_acervo ); |
| 504 | 465 | $excluiu = $obj->excluirTodos(); |
| 505 | 466 | if ( $excluiu ) |
| 506 | 467 | { |
| 507 | 468 | foreach ( $this->acervo_autor AS $autor ) |
| 508 | 469 | { |
| 509 | - if ($autor["principal_"] == 'on') | |
| 510 | - $autor["principal_"] = 1; | |
| 511 | - else | |
| 512 | - $autor["principal_"] = 0; | |
| 470 | + $autorPrincipal = $_POST["principal_{$autor['ref_cod_acervo_autor_']}"]; | |
| 471 | + $autor["principal_"] = is_null($autorPrincipal) ? 0 : 1; | |
| 472 | + | |
| 513 | 473 | $obj = new clsPmieducarAcervoAcervoAutor( $autor["ref_cod_acervo_autor_"], $this->cod_acervo, $autor["principal_"] ); |
| 514 | 474 | $cadastrou2 = $obj->cadastra(); |
| 515 | 475 | if ( !$cadastrou2 ) |
| ... | ... | @@ -572,8 +532,6 @@ $pagina->MakeAll(); |
| 572 | 532 | ?> |
| 573 | 533 | |
| 574 | 534 | <script> |
| 575 | -document.getElementById('ref_cod_exemplar_tipo').disabled = true; | |
| 576 | -document.getElementById('ref_cod_exemplar_tipo').options[0].text = 'Selecione uma biblioteca'; | |
| 577 | 535 | |
| 578 | 536 | document.getElementById('ref_cod_acervo_colecao').disabled = true; |
| 579 | 537 | document.getElementById('ref_cod_acervo_colecao').options[0].text = 'Selecione uma biblioteca'; |
| ... | ... | @@ -595,7 +553,7 @@ if(document.getElementById('ref_cod_biblioteca').value == "") |
| 595 | 553 | setVisibility(document.getElementById('img_editora'), false); |
| 596 | 554 | setVisibility(document.getElementById('img_idioma'), false); |
| 597 | 555 | setVisibility(document.getElementById('img_autor'), false); |
| 598 | - tempExemplarTipo = null; | |
| 556 | + //tempExemplarTipo = null; | |
| 599 | 557 | tempColecao = null; |
| 600 | 558 | tempIdioma = null; |
| 601 | 559 | tempEditora = null; |
| ... | ... | @@ -605,37 +563,6 @@ else |
| 605 | 563 | ajaxBiblioteca('novo'); |
| 606 | 564 | } |
| 607 | 565 | |
| 608 | -function getTipoExemplar(xml_exemplar_tipo) | |
| 609 | -{ | |
| 610 | - var campoExemplarTipo = document.getElementById('ref_cod_exemplar_tipo'); | |
| 611 | - var DOM_array = xml_exemplar_tipo.getElementsByTagName( "exemplar_tipo" ); | |
| 612 | - | |
| 613 | - if(DOM_array.length) | |
| 614 | - { | |
| 615 | - campoExemplarTipo.length = 1; | |
| 616 | - campoExemplarTipo.options[0].text = 'Selecione um tipo de exemplar'; | |
| 617 | - campoExemplarTipo.disabled = false; | |
| 618 | - | |
| 619 | - for( var i = 0; i < DOM_array.length; i++ ) | |
| 620 | - { | |
| 621 | - campoExemplarTipo.options[campoExemplarTipo.options.length] = new Option( DOM_array[i].firstChild.data, DOM_array[i].getAttribute("cod_exemplar_tipo"),false,false); | |
| 622 | - } | |
| 623 | - if(tempExemplarTipo != null) | |
| 624 | - campoExemplarTipo.value = tempExemplarTipo; | |
| 625 | - } | |
| 626 | - else | |
| 627 | - { | |
| 628 | - if(document.getElementById('ref_cod_biblioteca').value == "") | |
| 629 | - { | |
| 630 | - campoExemplarTipo.options[0].text = 'Selecione uma biblioteca'; | |
| 631 | - } | |
| 632 | - else | |
| 633 | - { | |
| 634 | - campoExemplarTipo.options[0].text = 'A biblioteca não possui tipo de exemplar'; | |
| 635 | - } | |
| 636 | - } | |
| 637 | -} | |
| 638 | - | |
| 639 | 566 | function getColecao( xml_acervo_colecao ) |
| 640 | 567 | { |
| 641 | 568 | var campoColecao = document.getElementById('ref_cod_acervo_colecao'); |
| ... | ... | @@ -646,7 +573,7 @@ function getColecao( xml_acervo_colecao ) |
| 646 | 573 | campoColecao.length = 1; |
| 647 | 574 | campoColecao.options[0].text = 'Selecione uma coleção'; |
| 648 | 575 | campoColecao.disabled = false; |
| 649 | - | |
| 576 | + | |
| 650 | 577 | for( var i=0; i<DOM_array.length; i++) |
| 651 | 578 | { |
| 652 | 579 | campoColecao.options[campoColecao.options.length] = new Option(DOM_array[i].firstChild.data, DOM_array[i].getAttribute("cod_colecao"), false, false); |
| ... | ... | @@ -680,7 +607,7 @@ function getEditora( xml_acervo_editora ) |
| 680 | 607 | campoEditora.length = 1; |
| 681 | 608 | campoEditora.options[0].text = 'Selecione uma editora'; |
| 682 | 609 | campoEditora.disabled = false; |
| 683 | - | |
| 610 | + | |
| 684 | 611 | for( var i=0; i<DOM_array.length; i++) |
| 685 | 612 | { |
| 686 | 613 | campoEditora.options[campoEditora.options.length] = new Option(DOM_array[i].firstChild.data, DOM_array[i].getAttribute("cod_editora"), false, false); |
| ... | ... | @@ -714,7 +641,7 @@ function getIdioma( xml_acervo_idioma ) |
| 714 | 641 | campoIdioma.length = 1; |
| 715 | 642 | campoIdioma.options[0].text = 'Selecione uma idioma'; |
| 716 | 643 | campoIdioma.disabled = false; |
| 717 | - | |
| 644 | + | |
| 718 | 645 | for( var i=0; i<DOM_array.length; i++) |
| 719 | 646 | { |
| 720 | 647 | campoIdioma.options[campoIdioma.options.length] = new Option(DOM_array[i].firstChild.data, DOM_array[i].getAttribute("cod_idioma"), false, false); |
| ... | ... | @@ -752,16 +679,6 @@ function ajaxBiblioteca(acao) |
| 752 | 679 | var campoBiblioteca = document.getElementById('ref_cod_biblioteca').value; |
| 753 | 680 | |
| 754 | 681 | var campoExemplarTipo = document.getElementById('ref_cod_exemplar_tipo'); |
| 755 | - if(acao == 'novo') | |
| 756 | - { | |
| 757 | - tempExemplarTipo = campoExemplarTipo.value; | |
| 758 | - } | |
| 759 | - campoExemplarTipo.length = 1; | |
| 760 | - campoExemplarTipo.disabled = true; | |
| 761 | - campoExemplarTipo.options[0].text = 'Carregando tipo de exemplar'; | |
| 762 | - | |
| 763 | - var xml_exemplar_tipo = new ajax( getTipoExemplar ); | |
| 764 | - xml_exemplar_tipo.envia( "educar_exemplar_tipo_xml.php?bib="+campoBiblioteca ); | |
| 765 | 682 | |
| 766 | 683 | var campoColecao = document.getElementById('ref_cod_acervo_colecao'); |
| 767 | 684 | if(acao == 'novo') |
| ... | ... | @@ -773,8 +690,8 @@ function ajaxBiblioteca(acao) |
| 773 | 690 | campoColecao.options[0].text = 'Carregando coleções'; |
| 774 | 691 | |
| 775 | 692 | var xml_colecao = new ajax( getColecao ); |
| 776 | - xml_colecao.envia( "educar_colecao_xml.php?bib="+campoBiblioteca ); | |
| 777 | - | |
| 693 | + xml_colecao.envia( "educar_colecao_xml.php?bib="+campoBiblioteca ); | |
| 694 | + | |
| 778 | 695 | var campoEditora = document.getElementById('ref_cod_acervo_editora'); |
| 779 | 696 | if(acao == 'novo') |
| 780 | 697 | { |
| ... | ... | @@ -785,8 +702,8 @@ function ajaxBiblioteca(acao) |
| 785 | 702 | campoEditora.options[0].text = 'Carregando editoras'; |
| 786 | 703 | |
| 787 | 704 | var xml_editora = new ajax( getEditora ); |
| 788 | - xml_editora.envia( "educar_editora_xml.php?bib="+campoBiblioteca ); | |
| 789 | - | |
| 705 | + xml_editora.envia( "educar_editora_xml.php?bib="+campoBiblioteca ); | |
| 706 | + | |
| 790 | 707 | var campoIdioma = document.getElementById('ref_cod_acervo_idioma'); |
| 791 | 708 | if(acao == 'novo') |
| 792 | 709 | { |
| ... | ... | @@ -798,7 +715,7 @@ function ajaxBiblioteca(acao) |
| 798 | 715 | |
| 799 | 716 | var xml_idioma = new ajax( getIdioma ); |
| 800 | 717 | xml_idioma.envia( "educar_idioma_xml.php?bib="+campoBiblioteca ); |
| 801 | - | |
| 718 | + | |
| 802 | 719 | } |
| 803 | 720 | |
| 804 | 721 | function pesquisa() |
| ... | ... | @@ -812,5 +729,17 @@ function pesquisa() |
| 812 | 729 | pesquisa_valores_popless('educar_pesquisa_acervo_lst.php?campo1=ref_cod_acervo&ref_cod_biblioteca=' + biblioteca , 'ref_cod_acervo') |
| 813 | 730 | } |
| 814 | 731 | |
| 815 | -//pesquisa_valores_popless('educar_pesquisa_acervo_lst.php?campo1=ref_cod_acervo', 'ref_cod_acervo') | |
| 732 | + | |
| 733 | +function fixupPrincipalCheckboxes() { | |
| 734 | + $j('#principal').hide(); | |
| 735 | + | |
| 736 | + var $checkboxes = $j("input[type='checkbox']").filter("input[id^='principal_']"); | |
| 737 | + | |
| 738 | + $checkboxes.change(function(){ | |
| 739 | + $checkboxes.not(this).removeAttr('checked'); | |
| 740 | + }); | |
| 741 | +} | |
| 742 | + | |
| 743 | +fixupPrincipalCheckboxes(); | |
| 744 | + | |
| 816 | 745 | </script> | ... | ... |
ieducar/intranet/educar_acervo_det.php
| ... | ... | @@ -280,6 +280,13 @@ class indice extends clsDetalhe |
| 280 | 280 | { |
| 281 | 281 | $this->addDetalhe( array( "Autor", "{$tabela}") ); |
| 282 | 282 | } |
| 283 | + | |
| 284 | + if($registro["estante"]) | |
| 285 | + $this->addDetalhe( array( "Estante", "{$registro["estante"]}") ); | |
| 286 | + | |
| 287 | + if($registro["cdd"]) | |
| 288 | + $this->addDetalhe( array( "Cdd", "{$registro["cdd"]}") ); | |
| 289 | + | |
| 283 | 290 | if( $registro["cdu"] ) |
| 284 | 291 | { |
| 285 | 292 | $this->addDetalhe( array( "Cdu", "{$registro["cdu"]}") ); |
| ... | ... | @@ -329,4 +336,4 @@ $miolo = new indice(); |
| 329 | 336 | $pagina->addForm( $miolo ); |
| 330 | 337 | // gera o html |
| 331 | 338 | $pagina->MakeAll(); |
| 332 | -?> | |
| 333 | 339 | \ No newline at end of file |
| 340 | +?> | ... | ... |
ieducar/intranet/educar_acervo_editora_cad.php
| ... | ... | @@ -105,30 +105,9 @@ class indice extends clsCadastro |
| 105 | 105 | // primary keys |
| 106 | 106 | $this->campoOculto( "cod_acervo_editora", $this->cod_acervo_editora ); |
| 107 | 107 | |
| 108 | - /*$obj_pessoa_bib = new clsPmieducarBibliotecaUsuario(); | |
| 109 | - $lst_pessoa_bib = $obj_pessoa_bib->lista(null, $this->pessoa_logada); | |
| 108 | + //foreign keys | |
| 109 | + $this->inputsHelper()->dynamic(array('instituicao', 'escola', 'biblioteca')); | |
| 110 | 110 | |
| 111 | - $opcoes = array("" => "Selecione"); | |
| 112 | - if(is_array($lst_pessoa_bib)) | |
| 113 | - { | |
| 114 | - foreach ($lst_pessoa_bib as $bib) | |
| 115 | - { | |
| 116 | - $obj_biblioteca = new clsPmieducarBiblioteca($bib['ref_cod_biblioteca']); | |
| 117 | - $det_biblioteca = $obj_biblioteca->detalhe(); | |
| 118 | - | |
| 119 | - $opcoes[$det_biblioteca['cod_biblioteca']] = $det_biblioteca['nm_biblioteca']; | |
| 120 | - } | |
| 121 | - } | |
| 122 | - $this->campoLista("ref_cod_biblioteca", "Biblioteca", $opcoes, $this->ref_cod_biblioteca); | |
| 123 | - */ | |
| 124 | - | |
| 125 | - $get_escola = 1; | |
| 126 | - $escola_obrigatorio = false; | |
| 127 | - $get_biblioteca = 1; | |
| 128 | - $instituicao_obrigatorio = true; | |
| 129 | - $biblioteca_obrigatorio = true; | |
| 130 | - include("include/pmieducar/educar_campo_lista.php"); | |
| 131 | - | |
| 132 | 111 | //text |
| 133 | 112 | $this->campoTexto( "nm_editora", "Editora", $this->nm_editora, 30, 255, true ); |
| 134 | 113 | |
| ... | ... | @@ -138,7 +117,7 @@ class indice extends clsCadastro |
| 138 | 117 | $this->cep = int2CEP($this->cep); |
| 139 | 118 | } |
| 140 | 119 | |
| 141 | - $this->campoCep( "cep", "CEP", $this->cep, true ); | |
| 120 | + $this->campoCep( "cep", "CEP", $this->cep, false ); | |
| 142 | 121 | |
| 143 | 122 | $opcoes = array( "" => "Selecione" ); |
| 144 | 123 | if( class_exists( "clsUf" ) ) |
| ... | ... | @@ -158,10 +137,10 @@ class indice extends clsCadastro |
| 158 | 137 | echo "<!--\nErro\nClasse clsUf nao encontrada\n-->"; |
| 159 | 138 | $opcoes = array( "" => "Erro na geracao" ); |
| 160 | 139 | } |
| 161 | - $this->campoLista( "ref_sigla_uf", "Estado", $opcoes, $this->ref_sigla_uf ); | |
| 140 | + $this->campoLista( "ref_sigla_uf", "Estado", $opcoes, $this->ref_sigla_uf, '', false, '', '', false, false ); | |
| 162 | 141 | |
| 163 | - $this->campoTexto( "cidade", "Cidade", $this->cidade, 30, 60, true ); | |
| 164 | - $this->campoTexto( "bairro", "Bairro", $this->bairro, 30, 60, true ); | |
| 142 | + $this->campoTexto( "cidade", "Cidade", $this->cidade, 30, 60, false ); | |
| 143 | + $this->campoTexto( "bairro", "Bairro", $this->bairro, 30, 60, false ); | |
| 165 | 144 | |
| 166 | 145 | $opcoes = array( "" => "Selecione" ); |
| 167 | 146 | if( class_exists( "clsTipoLogradouro" ) ) |
| ... | ... | @@ -181,9 +160,9 @@ class indice extends clsCadastro |
| 181 | 160 | echo "<!--\nErro\nClasse clsUrbanoTipoLogradouro nao encontrada\n-->"; |
| 182 | 161 | $opcoes = array( "" => "Erro na geracao" ); |
| 183 | 162 | } |
| 184 | - $this->campoLista( "ref_idtlog", "Tipo Logradouro", $opcoes, $this->ref_idtlog ); | |
| 163 | + $this->campoLista( "ref_idtlog", "Tipo Logradouro", $opcoes, $this->ref_idtlog, '', false, '', '', false, false ); | |
| 185 | 164 | |
| 186 | - $this->campoTexto( "logradouro", "Logradouro", $this->logradouro, 30, 255, true ); | |
| 165 | + $this->campoTexto( "logradouro", "Logradouro", $this->logradouro, 30, 255, false ); | |
| 187 | 166 | |
| 188 | 167 | $this->campoNumero( "numero", "Número", $this->numero, 6, 6 ); |
| 189 | 168 | |
| ... | ... | @@ -280,4 +259,4 @@ $miolo = new indice(); |
| 280 | 259 | $pagina->addForm( $miolo ); |
| 281 | 260 | // gera o html |
| 282 | 261 | $pagina->MakeAll(); |
| 283 | -?> | |
| 284 | 262 | \ No newline at end of file |
| 263 | +?> | ... | ... |
ieducar/intranet/educar_acervo_editora_cad_pop.php
| ... | ... | @@ -93,7 +93,7 @@ class indice extends clsCadastro |
| 93 | 93 | $this->cep = int2CEP($this->cep); |
| 94 | 94 | } |
| 95 | 95 | |
| 96 | - $this->campoCep( "cep", "CEP", $this->cep, true ); | |
| 96 | + $this->campoCep( "cep", "CEP", $this->cep, false ); | |
| 97 | 97 | |
| 98 | 98 | $opcoes = array( "" => "Selecione" ); |
| 99 | 99 | if( class_exists( "clsUf" ) ) |
| ... | ... | @@ -113,10 +113,10 @@ class indice extends clsCadastro |
| 113 | 113 | echo "<!--\nErro\nClasse clsUf nao encontrada\n-->"; |
| 114 | 114 | $opcoes = array( "" => "Erro na geracao" ); |
| 115 | 115 | } |
| 116 | - $this->campoLista( "ref_sigla_uf", "Estado", $opcoes, $this->ref_sigla_uf ); | |
| 116 | + $this->campoLista( "ref_sigla_uf", "Estado", $opcoes, $this->ref_sigla_uf, '', false, '', '', false, false ); | |
| 117 | 117 | |
| 118 | - $this->campoTexto( "cidade", "Cidade", $this->cidade, 30, 60, true ); | |
| 119 | - $this->campoTexto( "bairro", "Bairro", $this->bairro, 30, 60, true ); | |
| 118 | + $this->campoTexto( "cidade", "Cidade", $this->cidade, 30, 60, false ); | |
| 119 | + $this->campoTexto( "bairro", "Bairro", $this->bairro, 30, 60, false ); | |
| 120 | 120 | |
| 121 | 121 | $opcoes = array( "" => "Selecione" ); |
| 122 | 122 | if( class_exists( "clsTipoLogradouro" ) ) |
| ... | ... | @@ -136,9 +136,9 @@ class indice extends clsCadastro |
| 136 | 136 | echo "<!--\nErro\nClasse clsUrbanoTipoLogradouro nao encontrada\n-->"; |
| 137 | 137 | $opcoes = array( "" => "Erro na geracao" ); |
| 138 | 138 | } |
| 139 | - $this->campoLista( "ref_idtlog", "Tipo Logradouro", $opcoes, $this->ref_idtlog ); | |
| 139 | + $this->campoLista( "ref_idtlog", "Tipo Logradouro", $opcoes, $this->ref_idtlog, '', false, '', '', false, false ); | |
| 140 | 140 | |
| 141 | - $this->campoTexto( "logradouro", "Logradouro", $this->logradouro, 30, 255, true ); | |
| 141 | + $this->campoTexto( "logradouro", "Logradouro", $this->logradouro, 30, 255, false ); | |
| 142 | 142 | |
| 143 | 143 | $this->campoNumero( "numero", "Número", $this->numero, 6, 6 ); |
| 144 | 144 | |
| ... | ... | @@ -201,4 +201,4 @@ $pagina->MakeAll(); |
| 201 | 201 | ?> |
| 202 | 202 | <script> |
| 203 | 203 | document.getElementById('ref_cod_biblioteca').value = parent.document.getElementById('ref_cod_biblioteca').value; |
| 204 | -</script> | |
| 205 | 204 | \ No newline at end of file |
| 205 | +</script> | ... | ... |
ieducar/intranet/educar_acervo_idioma_cad.php
| ... | ... | @@ -99,36 +99,11 @@ class indice extends clsCadastro |
| 99 | 99 | // primary keys |
| 100 | 100 | $this->campoOculto( "cod_acervo_idioma", $this->cod_acervo_idioma ); |
| 101 | 101 | |
| 102 | - // foreign keys | |
| 103 | - /*$obj_pessoa_bib = new clsPmieducarBibliotecaUsuario(); | |
| 104 | - $lst_pessoa_bib = $obj_pessoa_bib->lista(null, $this->pessoa_logada); | |
| 102 | + //foreign keys | |
| 103 | + $this->inputsHelper()->dynamic(array('instituicao', 'escola', 'biblioteca')); | |
| 105 | 104 | |
| 106 | - $opcoes = array("" => "Selecione"); | |
| 107 | - if(is_array($lst_pessoa_bib)) | |
| 108 | - { | |
| 109 | - foreach ($lst_pessoa_bib as $bib) | |
| 110 | - { | |
| 111 | - $obj_biblioteca = new clsPmieducarBiblioteca($bib['ref_cod_biblioteca']); | |
| 112 | - $det_biblioteca = $obj_biblioteca->detalhe(); | |
| 113 | - | |
| 114 | - $opcoes[$det_biblioteca['cod_biblioteca']] = $det_biblioteca['nm_biblioteca']; | |
| 115 | - } | |
| 116 | - } | |
| 117 | - $this->campoLista("ref_cod_biblioteca", "Biblioteca", $opcoes, $this->ref_cod_biblioteca); | |
| 118 | - */ | |
| 119 | - $get_escola = 1; | |
| 120 | - $escola_obrigatorio = false; | |
| 121 | - $get_biblioteca = 1; | |
| 122 | - $instituicao_obrigatorio = true; | |
| 123 | - $biblioteca_obrigatorio = true; | |
| 124 | - include("include/pmieducar/educar_campo_lista.php"); | |
| 125 | - | |
| 126 | - | |
| 127 | 105 | // text |
| 128 | 106 | $this->campoTexto( "nm_idioma", "Idioma", $this->nm_idioma, 30, 255, true ); |
| 129 | - | |
| 130 | - // data | |
| 131 | - | |
| 132 | 107 | } |
| 133 | 108 | |
| 134 | 109 | function Novo() |
| ... | ... | @@ -215,4 +190,4 @@ $miolo = new indice(); |
| 215 | 190 | $pagina->addForm( $miolo ); |
| 216 | 191 | // gera o html |
| 217 | 192 | $pagina->MakeAll(); |
| 218 | -?> | |
| 219 | 193 | \ No newline at end of file |
| 194 | +?> | ... | ... |
ieducar/intranet/educar_biblioteca_dados_cad.php
| ... | ... | @@ -71,7 +71,7 @@ class indice extends clsCadastro |
| 71 | 71 | var $biblioteca_feriado; |
| 72 | 72 | var $incluir_feriado; |
| 73 | 73 | var $excluir_feriado; |
| 74 | - | |
| 74 | + | |
| 75 | 75 | var $tombo_automatico; |
| 76 | 76 | |
| 77 | 77 | function Inicializar() |
| ... | ... | @@ -148,10 +148,10 @@ class indice extends clsCadastro |
| 148 | 148 | // $this->campoLista( "requisita_senha", "Requisita Senha", $opcoes, $this->requisita_senha ); |
| 149 | 149 | $this->campoCheck( "requisita_senha", "Requisita Senha", $this->requisita_senha ); |
| 150 | 150 | $this->campoNumero( "dias_espera", "Dias Espera", $this->dias_espera, 2, 2, true ); |
| 151 | - | |
| 151 | + | |
| 152 | 152 | if ($this->tombo_automatico) |
| 153 | 153 | $this->campoBoolLista("tombo_automatico", "Biblioteca possui tombo automático", $this->tombo_automatico); |
| 154 | - else | |
| 154 | + else | |
| 155 | 155 | $this->campoBoolLista("tombo_automatico", "Biblioteca possui tombo automático", "t"); |
| 156 | 156 | |
| 157 | 157 | //-----------------------INCLUI DIA SEMANA------------------------// |
| ... | ... | @@ -300,10 +300,7 @@ class indice extends clsCadastro |
| 300 | 300 | $this->valor_maximo_multa = str_replace(".","",$this->valor_maximo_multa); |
| 301 | 301 | $this->valor_maximo_multa = str_replace(",",".",$this->valor_maximo_multa); |
| 302 | 302 | |
| 303 | - if ($this->requisita_senha == 'on') | |
| 304 | - $this->requisita_senha = 1; | |
| 305 | - else | |
| 306 | - $this->requisita_senha = 0; | |
| 303 | + $this->requisita_senha = is_null($this->requisita_senha) ? 0 : 1; | |
| 307 | 304 | |
| 308 | 305 | $obj = new clsPmieducarBiblioteca( $this->cod_biblioteca, null, null, null, $this->valor_multa, $this->max_emprestimo, $this->valor_maximo_multa, null, null, $this->requisita_senha, 1, $this->dias_espera, $this->tombo_automatico ); |
| 309 | 306 | $editou = $obj->edita(); |
| ... | ... | @@ -413,4 +410,4 @@ $miolo = new indice(); |
| 413 | 410 | $pagina->addForm( $miolo ); |
| 414 | 411 | // gera o html |
| 415 | 412 | $pagina->MakeAll(); |
| 416 | -?> | |
| 417 | 413 | \ No newline at end of file |
| 414 | +?> | ... | ... |
ieducar/intranet/educar_biblioteca_index.php
| ... | ... | @@ -44,7 +44,7 @@ class indice |
| 44 | 44 | { |
| 45 | 45 | return " |
| 46 | 46 | <table width='100%' height='100%'> |
| 47 | - <tr align=center valign='top'><td><img src='imagens/i-educar/splashscreen_bibl.jpg' style='padding-top: 50px'></td></tr> | |
| 47 | + <tr align=center valign='top'><td></td></tr> | |
| 48 | 48 | </table> |
| 49 | 49 | "; |
| 50 | 50 | } |
| ... | ... | @@ -58,4 +58,4 @@ $pagina->addForm( $miolo ); |
| 58 | 58 | |
| 59 | 59 | $pagina->MakeAll(); |
| 60 | 60 | |
| 61 | -?> | |
| 62 | 61 | \ No newline at end of file |
| 62 | +?> | ... | ... |
ieducar/intranet/educar_cliente_cad.php
| ... | ... | @@ -128,7 +128,7 @@ class indice extends clsCadastro |
| 128 | 128 | $parametros->adicionaCampoSelect('ref_idpes', 'idpes', 'nome'); |
| 129 | 129 | $parametros->setPessoa('F'); |
| 130 | 130 | $parametros->setPessoaCPF('N'); |
| 131 | - $parametros->setCodSistema(1); | |
| 131 | + $parametros->setCodSistema(null); | |
| 132 | 132 | $parametros->setPessoaNovo('S'); |
| 133 | 133 | $parametros->setPessoaTela('frame'); |
| 134 | 134 | |
| ... | ... | @@ -144,22 +144,6 @@ class indice extends clsCadastro |
| 144 | 144 | $this->campoNumero( "login", "Login", $this->login_, 9, 9, false ); |
| 145 | 145 | $this->campoSenha( "senha", "Senha", $this->senha_, false ); |
| 146 | 146 | |
| 147 | - $get_escola = 1; | |
| 148 | - $get_biblioteca = 1; | |
| 149 | - $instituicao_obrigatorio = true; | |
| 150 | - $escola_obrigatorio = false; | |
| 151 | - $biblioteca_obrigatorio = true; | |
| 152 | - include("include/pmieducar/educar_campo_lista.php"); | |
| 153 | - | |
| 154 | - //$instituicao_obrigatorio = true; | |
| 155 | - //$escola_obrigatorio = false; | |
| 156 | - //$biblioteca_obrigatorio = true; | |
| 157 | - $cliente_tipo_obrigatorio = true; | |
| 158 | - $get_instituicao = true; | |
| 159 | - $get_escola = true; | |
| 160 | - //$get_biblioteca = true; | |
| 161 | - $get_cliente_tipo = true; | |
| 162 | - | |
| 163 | 147 | if($this->cod_cliente && $this->ref_cod_biblioteca) |
| 164 | 148 | { |
| 165 | 149 | $db = new clsBanco(); |
| ... | ... | @@ -168,12 +152,13 @@ class indice extends clsCadastro |
| 168 | 152 | $this->ref_cod_biblioteca_atual = $this->ref_cod_biblioteca; |
| 169 | 153 | $this->campoOculto("ref_cod_biblioteca_atual", $this->ref_cod_biblioteca_atual); |
| 170 | 154 | |
| 171 | - $this->ref_cod_instituicao = $db->CampoUnico("SELECT ref_cod_instituicao FROM pmieducar.biblioteca, pmieducar.cliente_tipo_cliente ctc, pmieducar.cliente_tipo ct WHERE ref_cod_cliente = '$this->cod_cliente' AND ref_cod_cliente_tipo = cod_cliente_tipo AND ct.ref_cod_biblioteca = cod_biblioteca AND ctc.ref_cod_biblioteca = {$this->ref_cod_biblioteca}"); | |
| 172 | - $this->ref_cod_escola = $db->CampoUnico("SELECT ref_cod_escola FROM pmieducar.biblioteca, pmieducar.cliente_tipo_cliente ctc, pmieducar.cliente_tipo ct WHERE ref_cod_cliente = '$this->cod_cliente' AND ref_cod_cliente_tipo = cod_cliente_tipo AND ct.ref_cod_biblioteca = cod_biblioteca AND ctc.ref_cod_biblioteca = {$this->ref_cod_biblioteca}"); | |
| 173 | - $this->ref_cod_biblioteca = $db->CampoUnico("SELECT cod_biblioteca FROM pmieducar.biblioteca, pmieducar.cliente_tipo_cliente ctc, pmieducar.cliente_tipo ct WHERE ref_cod_cliente = '$this->cod_cliente' AND ref_cod_cliente_tipo = cod_cliente_tipo AND ct.ref_cod_biblioteca = cod_biblioteca AND ctc.ref_cod_biblioteca = {$this->ref_cod_biblioteca}"); | |
| 174 | - $this->ref_cod_cliente_tipo = $db->CampoUnico("SELECT ref_cod_cliente_tipo FROM pmieducar.cliente_tipo_cliente WHERE ref_cod_cliente = '$this->cod_cliente'");// AND ref_cod_cliente_tipo IN (SELECT cod_cliente_tipo FROM pmieducar.cliente_tipo WHERE ref_cod_biblioteca = )");//IN (SELECT ref_cod_biblioteca FROM pmieducar.biblioteca_usuario WHERE ref_cod_usuario = '$this->pessoa_logada'))"); | |
| 155 | + //$this->ref_cod_biblioteca = $db->CampoUnico("SELECT cod_biblioteca FROM pmieducar.biblioteca, pmieducar.cliente_tipo_cliente ctc, pmieducar.cliente_tipo ct WHERE ref_cod_cliente = '$this->cod_cliente' AND ref_cod_cliente_tipo = cod_cliente_tipo AND ct.ref_cod_biblioteca = cod_biblioteca AND ctc.ref_cod_biblioteca = {$this->ref_cod_biblioteca}"); | |
| 156 | + | |
| 157 | + // obtem o codigo do tipo de cliente, apartir da tabela cliente_tipo_cliente | |
| 158 | + $this->ref_cod_cliente_tipo = $db->CampoUnico("SELECT ref_cod_cliente_tipo FROM pmieducar.cliente_tipo_cliente WHERE ref_cod_cliente = '$this->cod_cliente'"); | |
| 175 | 159 | } |
| 176 | - include( "include/pmieducar/educar_campo_lista.php" ); | |
| 160 | + | |
| 161 | + $this->inputsHelper()->dynamic(array('instituicao', 'escola', 'biblioteca', 'bibliotecaTipoCliente')); | |
| 177 | 162 | } |
| 178 | 163 | |
| 179 | 164 | |
| ... | ... | @@ -369,35 +354,6 @@ $pagina->addForm( $miolo ); |
| 369 | 354 | $pagina->MakeAll(); |
| 370 | 355 | ?> |
| 371 | 356 | <script> |
| 372 | -/* | |
| 373 | -if(document.getElementById('ref_cod_biblioteca').type == 'select-one') | |
| 374 | -{ | |
| 375 | - var campoTipo = document.getElementById('ref_cod_cliente_tipo'); | |
| 376 | - campoTipo.length = 1; | |
| 377 | - campoTipo.options[0].text = 'Selecione uma biblioteca'; | |
| 378 | - campoTipo.disabled = true; | |
| 379 | -}*/ | |
| 380 | - | |
| 381 | -function getClienteTipo(xml_cliente_tipo) | |
| 382 | -{ | |
| 383 | - var campoTipo = document.getElementById('ref_cod_cliente_tipo'); | |
| 384 | - var DOM_array = xml_cliente_tipo.getElementsByTagName( "cliente_tipo" ); | |
| 385 | - | |
| 386 | - if(DOM_array.length) | |
| 387 | - { | |
| 388 | - campoTipo.length = 1; | |
| 389 | - campoTipo.options[0].text = 'Selecione um tipo'; | |
| 390 | - campoTipo.disabled = false; | |
| 391 | - | |
| 392 | - for( var i = 0; i < DOM_array.length; i++ ) | |
| 393 | - { | |
| 394 | - campoTipo.options[campoTipo.options.length] = new Option( DOM_array[i].firstChild.data, DOM_array[i].getAttribute("cod_cliente_tipo"),false,false); | |
| 395 | - } | |
| 396 | - } | |
| 397 | - else | |
| 398 | - campoTipo.options[0].text = 'A biblioteca não possui tipos'; | |
| 399 | -} | |
| 400 | - | |
| 401 | 357 | document.getElementById('ref_cod_biblioteca').onchange = function() |
| 402 | 358 | { |
| 403 | 359 | ajaxBiblioteca(); |
| ... | ... | @@ -407,18 +363,10 @@ if(document.getElementById('ref_cod_biblioteca').value != '') |
| 407 | 363 | { |
| 408 | 364 | ajaxBiblioteca(); |
| 409 | 365 | } |
| 366 | + | |
| 410 | 367 | function ajaxBiblioteca() |
| 411 | 368 | { |
| 412 | 369 | var campoBiblioteca = document.getElementById('ref_cod_biblioteca').value; |
| 413 | - var campoTipo = document.getElementById('ref_cod_cliente_tipo'); | |
| 414 | - | |
| 415 | - campoTipo.length = 1; | |
| 416 | - campoTipo.disabled = true; | |
| 417 | - campoTipo.options[0].text = 'Carregando situação'; | |
| 418 | - | |
| 419 | - var xml_cliente_tipo = new ajax( getClienteTipo ); | |
| 420 | - xml_cliente_tipo.envia( "educar_cliente_tipo_xml.php?bib="+campoBiblioteca ); | |
| 421 | - | |
| 422 | 370 | var xml_biblioteca = new ajax( requisitaSenha ); |
| 423 | 371 | xml_biblioteca.envia( "educar_biblioteca_xml.php?bib="+campoBiblioteca ); |
| 424 | 372 | } | ... | ... |
ieducar/intranet/educar_cliente_tipo_cad.php
| ... | ... | @@ -267,15 +267,20 @@ class indice extends clsCadastro |
| 267 | 267 | foreach ( $array_tipos AS $exemplar_tipo => $dias_emprestimo ) |
| 268 | 268 | { |
| 269 | 269 | $obj = new clsPmieducarClienteTipoExemplarTipo( $this->cod_cliente_tipo, $exemplar_tipo, $dias_emprestimo ); |
| 270 | - $editou2 = $obj->edita(); | |
| 271 | - if ( !$editou2 ) | |
| 270 | + | |
| 271 | + if($obj->existe() == false) | |
| 272 | + $result = $obj->cadastra(); | |
| 273 | + else | |
| 274 | + $result = $obj->edita(); | |
| 275 | + | |
| 276 | + if (! $result) | |
| 272 | 277 | { |
| 273 | - $this->mensagem = "Edição não realizada.<br>"; | |
| 274 | - echo "<!--\nErro ao editar clsPmieducarClienteTipoExemplarTipo\nvalores obrigatórios\nis_numeric( $this->cod_cliente_tipo ) && is_numeric( {$this->pessoa_logada} )\n-->"; | |
| 278 | + $this->mensagem = "Aparentemente ocorreu um erro ao gravar os dias de emprestimo.<br>"; | |
| 275 | 279 | return false; |
| 276 | 280 | } |
| 277 | 281 | } |
| 278 | 282 | } |
| 283 | + | |
| 279 | 284 | //-----------------------FIM EDITA EXEMPLAR TIPO------------------------// |
| 280 | 285 | |
| 281 | 286 | $this->mensagem .= "Edição efetuada com sucesso.<br>"; |
| ... | ... | @@ -388,7 +393,7 @@ function getExemplarTipo_XML(xml) |
| 388 | 393 | dias_tipo_exemplar.setAttribute( 'value', tipo_exemplar[j].getAttribute("dias_emprestimo")); |
| 389 | 394 | else |
| 390 | 395 | dias_tipo_exemplar.setAttribute( 'value', ''); |
| 391 | - | |
| 396 | + | |
| 392 | 397 | dias_tipo_exemplar.setAttribute( 'class', 'obrigatorio' ); |
| 393 | 398 | |
| 394 | 399 | exemplares.innerHTML += aux; |
| ... | ... | @@ -448,4 +453,4 @@ if(editar_) |
| 448 | 453 | { |
| 449 | 454 | padding: 6px; |
| 450 | 455 | } |
| 451 | -</style> | |
| 452 | 456 | \ No newline at end of file |
| 457 | +</style> | ... | ... |
ieducar/intranet/educar_cliente_tipo_xml.php
| ... | ... | @@ -37,9 +37,14 @@ Portabilis_Utils_DeprecatedXmlApi::returnEmptyQueryUnlessUserIsLoggedIn(); |
| 37 | 37 | print '<?xml version="1.0" encoding="iso-8859-1"?>' . PHP_EOL; |
| 38 | 38 | print '<query xmlns="sugestoes">' . PHP_EOL; |
| 39 | 39 | |
| 40 | -if (is_numeric($_GET['bib'])) | |
| 41 | -{ | |
| 40 | +if (is_numeric($_GET['bib'])) { | |
| 42 | 41 | $db = new clsBanco(); |
| 42 | + | |
| 43 | + if (is_numeric($_GET['exemplar_tipo_id'])) | |
| 44 | + $filtroTipoExemplar = "ref_cod_exemplar_tipo = {$_GET['exemplar_tipo_id']} AND"; | |
| 45 | + else | |
| 46 | + $filtroTipoExemplar = ''; | |
| 47 | + | |
| 43 | 48 | $sql = " |
| 44 | 49 | SELECT |
| 45 | 50 | DISTINCT(cod_cliente_tipo), |
| ... | ... | @@ -49,11 +54,12 @@ if (is_numeric($_GET['bib'])) |
| 49 | 54 | pmieducar.cliente_tipo LEFT JOIN pmieducar.cliente_tipo_exemplar_tipo ON (cod_cliente_tipo = ref_cod_cliente_tipo) |
| 50 | 55 | WHERE |
| 51 | 56 | ref_cod_biblioteca = %s AND |
| 57 | + %s | |
| 52 | 58 | ativo = 1 |
| 53 | 59 | ORDER BY |
| 54 | 60 | nm_tipo ASC"; |
| 55 | 61 | |
| 56 | - $sql = sprintf($sql, $_GET['bib']); | |
| 62 | + $sql = sprintf($sql, $_GET['bib'], $filtroTipoExemplar); | |
| 57 | 63 | $db->Consulta($sql); |
| 58 | 64 | |
| 59 | 65 | // Array com os códigos do resultado do SELECT |
| ... | ... | @@ -63,6 +69,10 @@ if (is_numeric($_GET['bib'])) |
| 63 | 69 | { |
| 64 | 70 | list($cod, $nome, $dias_emprestimo) = $db->Tupla(); |
| 65 | 71 | |
| 72 | + // Evita trazer dias emprestimo de outros cadastros, no cadastro novo tipo de exemplar | |
| 73 | + if (! is_numeric($_GET['exemplar_tipo_id'])) | |
| 74 | + $dias_emprestimo = ''; | |
| 75 | + | |
| 66 | 76 | // Se o código já foi utilizado, vai para o próximo resultado |
| 67 | 77 | if (isset($codigos[$cod])) |
| 68 | 78 | continue; | ... | ... |
ieducar/intranet/educar_exemplar_cad.php
| 1 | 1 | <?php |
| 2 | + | |
| 3 | +#error_reporting(E_ALL); | |
| 4 | +#ini_set("display_errors", 1); | |
| 5 | + | |
| 2 | 6 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
| 3 | 7 | * * |
| 4 | 8 | * @author Prefeitura Municipal de Itajaí * |
| ... | ... | @@ -24,10 +28,10 @@ |
| 24 | 28 | * 02111-1307, USA. * |
| 25 | 29 | * * |
| 26 | 30 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
| 27 | -require_once ("include/clsBase.inc.php"); | |
| 28 | -require_once ("include/clsCadastro.inc.php"); | |
| 29 | -require_once ("include/clsBanco.inc.php"); | |
| 30 | -require_once( "include/pmieducar/geral.inc.php" ); | |
| 31 | +require_once 'include/clsBase.inc.php'; | |
| 32 | +require_once 'include/clsCadastro.inc.php'; | |
| 33 | +require_once 'include/clsBanco.inc.php'; | |
| 34 | +require_once 'include/pmieducar/geral.inc.php'; | |
| 31 | 35 | |
| 32 | 36 | class clsIndexBase extends clsBase |
| 33 | 37 | { |
| ... | ... | @@ -64,11 +68,9 @@ class indice extends clsCadastro |
| 64 | 68 | var $ref_cod_instituicao; |
| 65 | 69 | var $ref_cod_escola; |
| 66 | 70 | var $ref_cod_biblioteca; |
| 67 | - | |
| 68 | - var $tombo_automarico; | |
| 69 | - var $combo_manual; | |
| 71 | + | |
| 72 | + var $tombo; | |
| 70 | 73 | var $qtd_livros; |
| 71 | - var $eh_manual; | |
| 72 | 74 | |
| 73 | 75 | function Inicializar() |
| 74 | 76 | { |
| ... | ... | @@ -112,9 +114,8 @@ class indice extends clsCadastro |
| 112 | 114 | |
| 113 | 115 | $retorno = "Editar"; |
| 114 | 116 | } |
| 115 | - } else { | |
| 116 | - $this->acao_enviar = "acao2()"; | |
| 117 | 117 | } |
| 118 | + | |
| 118 | 119 | $this->url_cancelar = ($retorno == "Editar") ? "educar_exemplar_det.php?cod_exemplar={$registro["cod_exemplar"]}" : "educar_exemplar_lst.php"; |
| 119 | 120 | $this->nome_url_cancelar = "Cancelar"; |
| 120 | 121 | return $retorno; |
| ... | ... | @@ -122,161 +123,29 @@ class indice extends clsCadastro |
| 122 | 123 | |
| 123 | 124 | function Gerar() |
| 124 | 125 | { |
| 125 | - // primary keys | |
| 126 | 126 | $this->campoOculto( "cod_exemplar", $this->cod_exemplar ); |
| 127 | 127 | |
| 128 | - $get_escola = 1; | |
| 129 | - $escola_obrigatorio = false; | |
| 130 | - $get_biblioteca = 1; | |
| 131 | - $instituicao_obrigatorio = true; | |
| 132 | - $biblioteca_obrigatorio = true; | |
| 133 | - include("include/pmieducar/educar_campo_lista.php"); | |
| 134 | - | |
| 135 | - // foreign keys | |
| 136 | - $opcoes = array( "" => "Selecione" ); | |
| 137 | - if( class_exists( "clsPmieducarFonte" ) ) | |
| 138 | - { | |
| 139 | - $objTemp = new clsPmieducarFonte(); | |
| 140 | - $lista = $objTemp->lista( null,null,null,null,null,null,null,null,null,1 ); | |
| 141 | - if ( is_array( $lista ) && count( $lista ) ) | |
| 142 | - { | |
| 143 | - foreach ( $lista as $registro ) | |
| 144 | - { | |
| 145 | - $opcoes["{$registro['cod_fonte']}"] = "{$registro['nm_fonte']}"; | |
| 146 | - } | |
| 147 | - } | |
| 148 | - } | |
| 149 | - else | |
| 150 | - { | |
| 151 | - echo "<!--\nErro\nClasse clsPmieducarFonte nao encontrada\n-->"; | |
| 152 | - $opcoes = array( "" => "Erro na geracao" ); | |
| 153 | - } | |
| 154 | - $this->campoLista( "ref_cod_fonte", "Fonte", $opcoes, $this->ref_cod_fonte ); | |
| 155 | - | |
| 156 | - /*$opcoes = array( "" => "Selecione" ); | |
| 157 | - if( class_exists( "clsPmieducarMotivoBaixa" ) ) | |
| 158 | - { | |
| 159 | - $objTemp = new clsPmieducarMotivoBaixa(); | |
| 160 | - $lista = $objTemp->lista(); | |
| 161 | - if ( is_array( $lista ) && count( $lista ) ) | |
| 162 | - { | |
| 163 | - foreach ( $lista as $registro ) | |
| 164 | - { | |
| 165 | - $opcoes["{$registro['cod_motivo_baixa']}"] = "{$registro['nm_motivo_baixa']}"; | |
| 166 | - } | |
| 167 | - } | |
| 168 | - } | |
| 169 | - else | |
| 170 | - { | |
| 171 | - echo "<!--\nErro\nClasse clsPmieducarMotivoBaixa nao encontrada\n-->"; | |
| 172 | - $opcoes = array( "" => "Erro na geracao" ); | |
| 173 | - } | |
| 174 | - $this->campoLista( "ref_cod_motivo_baixa", "Motivo Baixa", $opcoes, $this->ref_cod_motivo_baixa ); | |
| 175 | - */ | |
| 176 | - | |
| 177 | - | |
| 178 | - $opcoes = array(); | |
| 179 | - if( $this->ref_cod_acervo && $this->ref_cod_acervo != "NULL") | |
| 180 | - { | |
| 181 | - $objTemp = new clsPmieducarAcervo($this->ref_cod_acervo); | |
| 182 | - $detalhe = $objTemp->detalhe(); | |
| 183 | - if ( $detalhe ) | |
| 184 | - { | |
| 185 | - $opcoes["{$detalhe['cod_acervo']}"] = "{$detalhe['titulo']}"; | |
| 186 | - } | |
| 187 | - }else{ | |
| 188 | - $opcoes = array( "" => "Selecione" ); | |
| 189 | - } | |
| 128 | + $selectInputs = array('instituicao', 'escola', 'biblioteca', 'bibliotecaSituacao', 'bibliotecaFonte'); | |
| 129 | + $this->inputsHelper()->dynamic($selectInputs); | |
| 190 | 130 | |
| 191 | - //campoListaPesq( $nome, $campo, $valor, $default, $caminho="", $acao = "" , $duplo=false, $descricao="", $descricao2="", $flag=null, $pag_cadastro = null, $disabled = "", $div = false, $serializedcampos = false, $obrigatorio = false ) | |
| 192 | -// $this->campoListaPesq( "ref_cod_acervo", "Obra Referência", $opcoes, $this->ref_cod_acervo,"educar_pesquisa_acervo_lst.php?campo1=ref_cod_acervo","","","","","","","",true ); | |
| 193 | - $this->campoLista("ref_cod_acervo","Obra",$opcoes,$this->ref_cod_acervo,"",false,"","<img border=\"0\" onclick=\"pesquisa();\" id=\"ref_cod_acervo_lupa\" name=\"ref_cod_acervo_lupa\" src=\"imagens/lupa.png\"\/>",false,true); | |
| 194 | - | |
| 195 | - /* $opcoes = array( "" => "Selecione" ); | |
| 196 | - if( class_exists( "clsPmieducarAcervo" ) ) | |
| 197 | - { | |
| 198 | - $objTemp = new clsPmieducarAcervo(); | |
| 199 | - $lista = $objTemp->lista(); | |
| 200 | - if ( is_array( $lista ) && count( $lista ) ) | |
| 201 | - { | |
| 202 | - foreach ( $lista as $registro ) | |
| 203 | - { | |
| 204 | - $opcoes["{$registro['cod_acervo']}"] = "{$registro['titulo']}"; | |
| 205 | - } | |
| 206 | - } | |
| 207 | - } | |
| 208 | - else | |
| 209 | - { | |
| 210 | - echo "<!--\nErro\nClasse clsPmieducarAcervo nao encontrada\n-->"; | |
| 211 | - $opcoes = array( "" => "Erro na geracao" ); | |
| 212 | - } | |
| 213 | - $this->campoLista( "ref_cod_acervo", "Acervo", $opcoes, $this->ref_cod_acervo ); | |
| 214 | -*/ | |
| 215 | - | |
| 216 | - /*if( class_exists( "clsPmieducarSituacao" ) ) | |
| 217 | - { | |
| 218 | - $objTemp = new clsPmieducarSituacao(); | |
| 219 | - $lista = $objTemp->lista(); | |
| 220 | - if ( is_array( $lista ) && count( $lista ) ) | |
| 221 | - { | |
| 222 | - $situacao = "situacao = new Array();\n"; | |
| 223 | - foreach ( $lista as $registro ) | |
| 224 | - { | |
| 225 | - //$opcoes["{$registro['cod_situacao']}"] = "{$registro['nm_situacao']}"; | |
| 226 | - $situacao .= "situacao[situacao.length] = new Array( {$registro["cod_situacao"]}, '{$registro['nm_situacao']}', {$registro['ref_cod_biblioteca']});\n"; | |
| 227 | - } | |
| 228 | - | |
| 229 | - echo "<script>{$situacao}</script>"; | |
| 230 | - } | |
| 231 | - } | |
| 232 | - else | |
| 233 | - { | |
| 234 | - echo "<!--\nErro\nClasse clsPmieducarSituacao nao encontrada\n-->"; | |
| 235 | - $opcoes = array( "" => "Erro na geracao" ); | |
| 236 | - }*/ | |
| 237 | - | |
| 238 | - $opcoes = array( "" => "Selecione" ); | |
| 239 | - if($this->ref_cod_biblioteca) | |
| 240 | - { | |
| 241 | - if( class_exists( "clsPmieducarSituacao" ) ) | |
| 242 | - { | |
| 243 | - $objTemp = new clsPmieducarSituacao(); | |
| 244 | - $lista = $objTemp->lista(null,null,null,null,null,null,null,null,null,null,null,null,null,$this->ref_cod_biblioteca); | |
| 245 | - if ( is_array( $lista ) && count( $lista ) ) | |
| 246 | - { | |
| 247 | - foreach ( $lista as $registro ) | |
| 248 | - { | |
| 249 | - $opcoes["{$registro['cod_situacao']}"] = "{$registro['nm_situacao']}"; | |
| 250 | - } | |
| 251 | - } | |
| 252 | - } | |
| 253 | - else | |
| 254 | - { | |
| 255 | - echo "<!--\nErro\nClasse clsPmieducarSituacao nao encontrada\n-->"; | |
| 256 | - $opcoes = array( "" => "Erro na geracao" ); | |
| 257 | - } | |
| 258 | - } | |
| 259 | - $this->campoLista( "ref_cod_situacao", "Situacão", $opcoes, $this->ref_cod_situacao ); | |
| 260 | - | |
| 261 | - | |
| 262 | - // text | |
| 263 | 131 | $opcoes = array( "" => "Selecione", "2" => "Sim", "1" => "Não" ); |
| 264 | 132 | $this->campoLista( "permite_emprestimo", "Permite Emprestimo", $opcoes, $this->permite_emprestimo ); |
| 265 | - //$this->campoTexto( "permite_emprestimo", "Permite Emprestimo", $this->permite_emprestimo, 30, 255, true ); | |
| 133 | + | |
| 266 | 134 | $this->preco = is_numeric($this->preco) ? number_format($this->preco, 2, ",", ".") : ""; |
| 267 | 135 | $this->campoMonetario( "preco", "Preco", $this->preco, 10, 20, true ); |
| 268 | 136 | |
| 137 | + $this->inputsHelper()->dynamic('bibliotecaPesquisaObra', array('required' => true)); | |
| 138 | + | |
| 269 | 139 | // data |
| 270 | 140 | if(!$this->data_aquisicao) |
| 271 | 141 | $this->data_aquisicao = date("d/m/Y"); |
| 272 | - $this->campoData( "data_aquisicao", "Data Aquisicão", $this->data_aquisicao, false ); | |
| 142 | + | |
| 143 | + $this->campoData( "data_aquisicao", "Data Aquisicão", $this->data_aquisicao, true ); | |
| 144 | + | |
| 145 | + $this->campoNumero("tombo", "Tombo", $this->tombo, 10, 10, false); | |
| 146 | + | |
| 273 | 147 | if (!is_numeric($this->cod_exemplar)) |
| 274 | - { | |
| 275 | 148 | $this->campoNumero("qtd_livros", "Quantidade de Livros", 1, 5, 5, true); |
| 276 | -// $this->campoBoolLista("tombo_automarico", "Tombo Automático", "t"); | |
| 277 | - $this->campoNumero("combo_manual", "Combo", "", 5, 5, false); | |
| 278 | - $this->campoOculto("eh_manual", 0); | |
| 279 | - } | |
| 280 | 149 | } |
| 281 | 150 | |
| 282 | 151 | function Novo() |
| ... | ... | @@ -290,33 +159,27 @@ class indice extends clsCadastro |
| 290 | 159 | |
| 291 | 160 | $this->preco = str_replace(".","",$this->preco); |
| 292 | 161 | $this->preco = str_replace(",",".",$this->preco); |
| 293 | - if (!$this->combo_manual) | |
| 294 | - { | |
| 295 | - $obj_exemplar = new clsPmieducarExemplar(); | |
| 296 | - $max_tombo = $obj_exemplar->retorna_tombo_maximo() + 1; | |
| 297 | - } | |
| 298 | - else | |
| 299 | - { | |
| 300 | - $max_tombo = $this->combo_manual; | |
| 301 | - } | |
| 302 | - for ($i = 0; $i < $this->qtd_livros; $i++) | |
| 162 | + | |
| 163 | + $this->data_aquisicao = dataToBanco($this->data_aquisicao); | |
| 164 | + | |
| 165 | + for ($i = 0; $i < $this->qtd_livros; $i++) | |
| 303 | 166 | { |
| 304 | - $obj = new clsPmieducarExemplar( $this->cod_exemplar, $this->ref_cod_fonte, $this->ref_cod_motivo_baixa, $this->ref_cod_acervo, $this->ref_cod_situacao, $this->pessoa_logada, $this->pessoa_logada, $this->permite_emprestimo, $this->preco, $this->data_cadastro, $this->data_exclusao, $this->ativo, $this->data_aquisicao, $max_tombo ); | |
| 167 | + $obj = new clsPmieducarExemplar($this->cod_exemplar, $this->ref_cod_fonte, $this->ref_cod_motivo_baixa, $this->ref_cod_acervo, $this->ref_cod_situacao, $this->pessoa_logada, $this->pessoa_logada, $this->permite_emprestimo, $this->preco, $this->data_cadastro, $this->data_exclusao, $this->ativo, $this->data_aquisicao, $this->getTombo()); | |
| 305 | 168 | $cadastrou = $obj->cadastra(); |
| 306 | - if (!$cadastrou) | |
| 169 | + if (!$cadastrou) | |
| 307 | 170 | { |
| 308 | 171 | $this->mensagem = "Cadastro não realizado.<br>"; |
| 309 | 172 | echo "<!--\nErro ao cadastrar clsPmieducarExemplar\nvalores obrigatorios\nis_numeric( $this->ref_cod_fonte ) && is_numeric( $this->ref_cod_acervo ) && is_numeric( $this->ref_cod_situacao ) && is_numeric( $this->ref_usuario_cad ) && is_numeric( $this->permite_emprestimo ) && is_numeric( $this->preco )\n-->"; |
| 310 | 173 | return false; |
| 311 | 174 | } |
| 312 | - $max_tombo++; | |
| 313 | - } | |
| 175 | + } | |
| 314 | 176 | $this->mensagem .= "Cadastro efetuado com sucesso.<br>"; |
| 315 | 177 | header( "Location: educar_exemplar_lst.php" ); |
| 316 | 178 | die(); |
| 317 | 179 | return true; |
| 318 | 180 | } |
| 319 | 181 | |
| 182 | + | |
| 320 | 183 | function Editar() |
| 321 | 184 | { |
| 322 | 185 | @session_start(); |
| ... | ... | @@ -330,7 +193,9 @@ class indice extends clsCadastro |
| 330 | 193 | $this->preco = str_replace(".","",$this->preco); |
| 331 | 194 | $this->preco = str_replace(",",".",$this->preco); |
| 332 | 195 | |
| 333 | - $obj = new clsPmieducarExemplar($this->cod_exemplar, $this->ref_cod_fonte, $this->ref_cod_motivo_baixa, $this->ref_cod_acervo, $this->ref_cod_situacao, $this->pessoa_logada, $this->pessoa_logada, $this->permite_emprestimo, $this->preco, $this->data_cadastro, $this->data_exclusao, $this->ativo, $this->data_aquisicao); | |
| 196 | + $this->data_aquisicao = dataToBanco($this->data_aquisicao); | |
| 197 | + | |
| 198 | + $obj = new clsPmieducarExemplar($this->cod_exemplar, $this->ref_cod_fonte, $this->ref_cod_motivo_baixa, $this->ref_cod_acervo, $this->ref_cod_situacao, $this->pessoa_logada, $this->pessoa_logada, $this->permite_emprestimo, $this->preco, $this->data_cadastro, $this->data_exclusao, $this->ativo, $this->data_aquisicao, $this->getTombo()); | |
| 334 | 199 | $editou = $obj->edita(); |
| 335 | 200 | if( $editou ) |
| 336 | 201 | { |
| ... | ... | @@ -369,6 +234,21 @@ class indice extends clsCadastro |
| 369 | 234 | echo "<!--\nErro ao excluir clsPmieducarExemplar\nvalores obrigatorios\nif( is_numeric( $this->cod_exemplar ) && is_numeric( $this->ref_usuario_exc ) )\n-->"; |
| 370 | 235 | return false; |
| 371 | 236 | } |
| 237 | + | |
| 238 | + protected function getTombo(){ | |
| 239 | + if (! $this->tombo) { | |
| 240 | + $exemplar = new clsPmieducarExemplar(); | |
| 241 | + $tombo = $exemplar->retorna_tombo_maximo($this->ref_cod_biblioteca, $this->cod_exemplar) + 1; | |
| 242 | + } | |
| 243 | + else { | |
| 244 | + // após obter tombo reseta para na proxima chamada de getTombo buscar o proximo no banco | |
| 245 | + $tombo = $this->tombo; | |
| 246 | + $this->tombo = null; | |
| 247 | + } | |
| 248 | + | |
| 249 | + return $tombo; | |
| 250 | + } | |
| 251 | + | |
| 372 | 252 | } |
| 373 | 253 | |
| 374 | 254 | // cria uma extensao da classe base |
| ... | ... | @@ -380,144 +260,3 @@ $pagina->addForm( $miolo ); |
| 380 | 260 | // gera o html |
| 381 | 261 | $pagina->MakeAll(); |
| 382 | 262 | ?> |
| 383 | -<script> | |
| 384 | -/* | |
| 385 | -var before_getSituacao = function(){} | |
| 386 | -var after_getSituacao = function(){} | |
| 387 | -*/ | |
| 388 | - | |
| 389 | -Event.observe(window, 'load', Init, false); | |
| 390 | - | |
| 391 | -function Init() { | |
| 392 | - $('tr_combo_manual').style.display = 'none;'; | |
| 393 | -} | |
| 394 | - | |
| 395 | -var tempFonte; | |
| 396 | -var tempSitueacao; | |
| 397 | -if(document.getElementById('ref_cod_biblioteca').value != '') | |
| 398 | -{ | |
| 399 | - ajaxBiblioteca('novo'); | |
| 400 | - tempFonte = null; | |
| 401 | - tempSituacao = null; | |
| 402 | -} | |
| 403 | - | |
| 404 | -function getSituacao(xml_situacao) | |
| 405 | -{ | |
| 406 | - var campoSituacao = document.getElementById('ref_cod_situacao'); | |
| 407 | - var DOM_array = xml_situacao.getElementsByTagName( "situacao" ); | |
| 408 | - | |
| 409 | - if(DOM_array.length) | |
| 410 | - { | |
| 411 | - campoSituacao.length = 1; | |
| 412 | - campoSituacao.options[0].text = 'Selecione uma situação'; | |
| 413 | - campoSituacao.disabled = false; | |
| 414 | - | |
| 415 | - for( var i = 0; i < DOM_array.length; i++ ) | |
| 416 | - { | |
| 417 | - campoSituacao.options[campoSituacao.options.length] = new Option( DOM_array[i].firstChild.data, DOM_array[i].getAttribute("cod_situacao"),false,false); | |
| 418 | - } | |
| 419 | - if(tempSituacao != null) | |
| 420 | - campoSituacao.value = tempSituacao; | |
| 421 | - } | |
| 422 | - else | |
| 423 | - campoSituacao.options[0].text = 'A biblioteca não possui nenhuma situação'; | |
| 424 | -} | |
| 425 | - | |
| 426 | -function getFonte(xml_fonte) | |
| 427 | -{ | |
| 428 | - var campoFonte = document.getElementById('ref_cod_fonte'); | |
| 429 | - var DOM_array = xml_fonte.getElementsByTagName( "fonte" ); | |
| 430 | - | |
| 431 | - if(DOM_array.length) | |
| 432 | - { | |
| 433 | - campoFonte.length = 1; | |
| 434 | - campoFonte.options[0].text = 'Selecione uma fonte'; | |
| 435 | - campoFonte.disabled = false; | |
| 436 | - | |
| 437 | - for( var i = 0; i < DOM_array.length; i++ ) | |
| 438 | - { | |
| 439 | - campoFonte.options[campoFonte.options.length] = new Option( DOM_array[i].firstChild.data, DOM_array[i].getAttribute("cod_fonte"),false,false); | |
| 440 | - } | |
| 441 | - if(tempFonte != null) | |
| 442 | - campoFonte.value = tempFonte; | |
| 443 | - } | |
| 444 | - else | |
| 445 | - campoFonte.options[0].text = 'A biblioteca não possui fonte'; | |
| 446 | -} | |
| 447 | - | |
| 448 | -document.getElementById('ref_cod_biblioteca').onchange = function() | |
| 449 | -{ | |
| 450 | - ajaxBiblioteca(); | |
| 451 | - ajaxTomboAutomatico(); | |
| 452 | -}; | |
| 453 | - | |
| 454 | - | |
| 455 | -function ajaxTomboAutomatico() | |
| 456 | -{ | |
| 457 | - var pars = 'biblioteca='+$F('ref_cod_biblioteca'); | |
| 458 | - new Ajax.Request("educar_tombo_automatico.ajax.php", {method: 'get', parameters: pars, | |
| 459 | - onComplete: function(resp) { | |
| 460 | - if (resp.responseText == 1) { | |
| 461 | - $('tr_combo_manual').style.display = 'none;'; | |
| 462 | - $('eh_manual').value = 0; | |
| 463 | - } else { | |
| 464 | - $('tr_combo_manual').style.display = ''; | |
| 465 | - $('eh_manual').value = 1; | |
| 466 | - } | |
| 467 | - } | |
| 468 | - }); | |
| 469 | -} | |
| 470 | - | |
| 471 | -function ajaxBiblioteca(acao) | |
| 472 | -{ | |
| 473 | - var campoBiblioteca = document.getElementById('ref_cod_biblioteca').value; | |
| 474 | - var campoSituacao = document.getElementById('ref_cod_situacao'); | |
| 475 | - if(acao == 'novo') | |
| 476 | - { | |
| 477 | - tempSituacao = campoSituacao.value; | |
| 478 | - } | |
| 479 | - campoSituacao.length = 1; | |
| 480 | - campoSituacao.disabled = true; | |
| 481 | - campoSituacao.options[0].text = 'Carregando situação'; | |
| 482 | - | |
| 483 | - var xml_situacao = new ajax( getSituacao ); | |
| 484 | - xml_situacao.envia( "educar_situacao_xml.php?bib="+campoBiblioteca ); | |
| 485 | - | |
| 486 | - var campoFonte = document.getElementById('ref_cod_fonte'); | |
| 487 | - if(acao == 'novo') | |
| 488 | - { | |
| 489 | - tempFonte = campoFonte.value; | |
| 490 | - } | |
| 491 | - campoFonte.length = 1; | |
| 492 | - campoFonte.disabled = true; | |
| 493 | - campoFonte.options[0].text = 'Carregando fontes'; | |
| 494 | - | |
| 495 | - var xml_fonte = new ajax( getFonte ); | |
| 496 | - xml_fonte.envia( "educar_fonte_xml.php?bib="+campoBiblioteca ); | |
| 497 | -} | |
| 498 | - | |
| 499 | -function pesquisa() | |
| 500 | -{ | |
| 501 | - var biblioteca = document.getElementById('ref_cod_biblioteca').value; | |
| 502 | - if(!biblioteca) | |
| 503 | - { | |
| 504 | - alert('Por favor,\nselecione uma biblioteca!'); | |
| 505 | - return; | |
| 506 | - } | |
| 507 | - pesquisa_valores_popless('educar_pesquisa_acervo_lst.php?campo1=ref_cod_acervo&ref_cod_biblioteca=' + biblioteca , 'ref_cod_acervo'); | |
| 508 | -} | |
| 509 | - | |
| 510 | -function acao2() | |
| 511 | -{ | |
| 512 | - if ($('eh_manual').value = 0 && $F('combo_manual') == '') | |
| 513 | - { | |
| 514 | - alert('Favor preencher o campo combo corretamente'); | |
| 515 | - } | |
| 516 | - else | |
| 517 | - { | |
| 518 | - acao(); | |
| 519 | - } | |
| 520 | -} | |
| 521 | - | |
| 522 | -//pesquisa_valores_popless('educar_pesquisa_acervo_lst.php?campo1=ref_cod_acervo', 'ref_cod_acervo') | |
| 523 | -</script> | |
| 524 | 263 | \ No newline at end of file | ... | ... |
ieducar/intranet/educar_exemplar_det.php
| ... | ... | @@ -129,11 +129,9 @@ class indice extends clsDetalhe |
| 129 | 129 | echo "<!--\nErro\nClasse nao existente: clsPmieducarSituacao\n-->"; |
| 130 | 130 | } |
| 131 | 131 | |
| 132 | + $this->addDetalhe(array("Código", "{$registro["cod_exemplar"]}")); | |
| 133 | + $this->addDetalhe(array("Tombo", "{$registro["tombo"]}")); | |
| 132 | 134 | |
| 133 | - if( $registro["cod_exemplar"] ) | |
| 134 | - { | |
| 135 | - $this->addDetalhe( array( "Tombo", "{$registro["cod_exemplar"]}") ); | |
| 136 | - } | |
| 137 | 135 | if( $registro["ref_cod_acervo"] ) |
| 138 | 136 | { |
| 139 | 137 | $this->addDetalhe( array( "Obra Referéncia", "{$registro["ref_cod_acervo"]}") ); |
| ... | ... | @@ -193,4 +191,4 @@ $miolo = new indice(); |
| 193 | 191 | $pagina->addForm( $miolo ); |
| 194 | 192 | // gera o html |
| 195 | 193 | $pagina->MakeAll(); |
| 196 | -?> | |
| 197 | 194 | \ No newline at end of file |
| 195 | +?> | ... | ... |
ieducar/intranet/educar_exemplar_devolucao_det.php
| ... | ... | @@ -187,10 +187,10 @@ class indice extends clsDetalhe |
| 187 | 187 | { |
| 188 | 188 | $this->addDetalhe( array( "Obra", "{$titulo_exemplar}") ); |
| 189 | 189 | } |
| 190 | - if( $registro["ref_cod_exemplar"] ) | |
| 191 | - { | |
| 192 | - $this->addDetalhe( array( "Tombo", "{$registro["ref_cod_exemplar"]}") ); | |
| 193 | - } | |
| 190 | + | |
| 191 | + $this->addDetalhe( array( "Código exemplar", "{$registro["ref_cod_exemplar"]}") ); | |
| 192 | + $this->addDetalhe( array( "Tombo", "{$det_ref_cod_exemplar["tombo"]}") ); | |
| 193 | + | |
| 194 | 194 | if( $registro["data_retirada"] ) |
| 195 | 195 | { |
| 196 | 196 | $this->addDetalhe( array( "Data Retirada", dataFromPgToBr( $registro["data_retirada"], "d/m/Y" ) ) ); |
| ... | ... | @@ -219,4 +219,4 @@ $miolo = new indice(); |
| 219 | 219 | $pagina->addForm( $miolo ); |
| 220 | 220 | // gera o html |
| 221 | 221 | $pagina->MakeAll(); |
| 222 | -?> | |
| 223 | 222 | \ No newline at end of file |
| 223 | +?> | ... | ... |
ieducar/intranet/educar_exemplar_devolucao_lst.php
| ... | ... | @@ -100,6 +100,7 @@ class indice extends clsListagem |
| 100 | 100 | |
| 101 | 101 | $lista_busca = array( |
| 102 | 102 | "Cliente", |
| 103 | + "Código exemplar", | |
| 103 | 104 | "Tombo", |
| 104 | 105 | "Exemplar", |
| 105 | 106 | "Data Retirada" |
| ... | ... | @@ -120,7 +121,8 @@ class indice extends clsListagem |
| 120 | 121 | $this->campoTexto("nm_obra","Obra", $this->nm_obra, 30, 255, false, false, false, "", "<img border=\"0\" onclick=\"pesquisa_obra();\" id=\"ref_cod_exemplar_lupa\" name=\"ref_cod_exemplar_lupa\" src=\"imagens/lupa.png\"\/>"); |
| 121 | 122 | $this->campoOculto("ref_cod_acervo", $this->ref_cod_acervo); |
| 122 | 123 | |
| 123 | - $this->campoNumero("ref_cod_exemplar","Tombo", $this->ref_cod_exemplar, 15, 50); | |
| 124 | + $this->campoNumero("ref_cod_exemplar","Código exemplar", $this->ref_cod_exemplar, 15, 10); | |
| 125 | + $this->campoNumero("tombo","Tombo", $this->tombo, 15, 10); | |
| 124 | 126 | |
| 125 | 127 | if ($this->ref_cod_biblioteca) |
| 126 | 128 | { |
| ... | ... | @@ -227,6 +229,7 @@ class indice extends clsListagem |
| 227 | 229 | $lista_busca = array( |
| 228 | 230 | "<a href=\"educar_exemplar_devolucao_det.php?cod_emprestimo={$registro["cod_emprestimo"]}\">{$registro["ref_cod_cliente"]}</a>", |
| 229 | 231 | "<a href=\"educar_exemplar_devolucao_det.php?cod_emprestimo={$registro["cod_emprestimo"]}\">{$registro["ref_cod_exemplar"]}</a>", |
| 232 | + "<a href=\"educar_exemplar_devolucao_det.php?cod_emprestimo={$registro["cod_emprestimo"]}\">{$det_exemplar["tombo"]}</a>", | |
| 230 | 233 | "<a href=\"educar_exemplar_devolucao_det.php?cod_emprestimo={$registro["cod_emprestimo"]}\">{$registro["titulo"]}</a>", |
| 231 | 234 | "<a href=\"educar_exemplar_devolucao_det.php?cod_emprestimo={$registro["cod_emprestimo"]}\">{$registro["data_retirada_br"]}</a>" |
| 232 | 235 | ); |
| ... | ... | @@ -271,4 +274,4 @@ function pesquisa_obra() |
| 271 | 274 | pesquisa_valores_popless('educar_pesquisa_obra_lst.php?campo1=ref_cod_acervo&campo2=nm_obra&campo3='+campoBiblioteca) |
| 272 | 275 | } |
| 273 | 276 | |
| 274 | -</script> | |
| 275 | 277 | \ No newline at end of file |
| 278 | +</script> | ... | ... |
ieducar/intranet/educar_exemplar_tipo_cad.php
| ... | ... | @@ -334,8 +334,11 @@ setVisibility ('tr_div_clientes', false); |
| 334 | 334 | function getClienteTipo() |
| 335 | 335 | { |
| 336 | 336 | var campoBiblioteca = document.getElementById('ref_cod_biblioteca').value; |
| 337 | + var exemplarTipoId = document.getElementById('cod_exemplar_tipo').value; | |
| 338 | + | |
| 337 | 339 | var xml1 = new ajax(getClienteTipo_XML); |
| 338 | - strURL = "educar_cliente_tipo_xml.php?bib="+campoBiblioteca; | |
| 340 | + | |
| 341 | + strURL = "educar_cliente_tipo_xml.php?bib="+campoBiblioteca+"&exemplar_tipo_id="+exemplarTipoId; | |
| 339 | 342 | xml1.envia(strURL); |
| 340 | 343 | } |
| 341 | 344 | |
| ... | ... | @@ -378,7 +381,7 @@ function getClienteTipo_XML(xml) |
| 378 | 381 | nm_tipo_cliente.setAttribute( 'style', 'margin: 2px;' ); |
| 379 | 382 | // nm_tipo_cliente.setAttribute( 'value', tipo_cliente[j][1] ); |
| 380 | 383 | nm_tipo_cliente.setAttribute( 'value', tipo_cliente[j].firstChild.data ); |
| 381 | - | |
| 384 | + | |
| 382 | 385 | dias_tipo_cliente.setAttribute( "id", "tipo_"+tipo_cliente[j].getAttribute("cod_cliente_tipo") ); |
| 383 | 386 | dias_tipo_cliente.setAttribute( 'type', 'text' ); |
| 384 | 387 | dias_tipo_cliente.setAttribute( 'size', '3' ); |
| ... | ... | @@ -444,4 +447,4 @@ if(editar_) |
| 444 | 447 | { |
| 445 | 448 | padding: 6px; |
| 446 | 449 | } |
| 447 | -</style> | |
| 448 | 450 | \ No newline at end of file |
| 451 | +</style> | ... | ... |
ieducar/intranet/educar_fonte_cad.php
| ... | ... | @@ -99,35 +99,11 @@ class indice extends clsCadastro |
| 99 | 99 | $this->campoOculto( "cod_fonte", $this->cod_fonte ); |
| 100 | 100 | |
| 101 | 101 | // foreign keys |
| 102 | -/* $obj_pessoa_bib = new clsPmieducarBibliotecaUsuario(); | |
| 103 | - $lst_pessoa_bib = $obj_pessoa_bib->lista(null, $this->pessoa_logada); | |
| 104 | - | |
| 105 | - $opcoes = array("" => "Selecione"); | |
| 106 | - if(is_array($lst_pessoa_bib)) | |
| 107 | - { | |
| 108 | - foreach ($lst_pessoa_bib as $bib) | |
| 109 | - { | |
| 110 | - $obj_biblioteca = new clsPmieducarBiblioteca($bib['ref_cod_biblioteca']); | |
| 111 | - $det_biblioteca = $obj_biblioteca->detalhe(); | |
| 112 | - | |
| 113 | - $opcoes[$det_biblioteca['cod_biblioteca']] = $det_biblioteca['nm_biblioteca']; | |
| 114 | - } | |
| 115 | - } | |
| 116 | - $this->campoLista("ref_cod_biblioteca", "Biblioteca", $opcoes, $this->ref_cod_biblioteca);*/ | |
| 117 | - | |
| 118 | - $get_escola = 1; | |
| 119 | - $escola_obrigatorio = false; | |
| 120 | - $get_biblioteca = 1; | |
| 121 | - $instituicao_obrigatorio = true; | |
| 122 | - $biblioteca_obrigatorio = true; | |
| 123 | - include("include/pmieducar/educar_campo_lista.php"); | |
| 102 | + $this->inputsHelper()->dynamic(array('instituicao', 'escola', 'biblioteca')); | |
| 124 | 103 | |
| 125 | 104 | // text |
| 126 | 105 | $this->campoTexto( "nm_fonte", "Fonte", $this->nm_fonte, 30, 255, true ); |
| 127 | 106 | $this->campoMemo( "descricao", "Descrição", $this->descricao, 60, 5, false ); |
| 128 | - | |
| 129 | - // data | |
| 130 | - | |
| 131 | 107 | } |
| 132 | 108 | |
| 133 | 109 | function Novo() |
| ... | ... | @@ -214,4 +190,4 @@ $miolo = new indice(); |
| 214 | 190 | $pagina->addForm( $miolo ); |
| 215 | 191 | // gera o html |
| 216 | 192 | $pagina->MakeAll(); |
| 217 | -?> | |
| 218 | 193 | \ No newline at end of file |
| 194 | +?> | ... | ... |
ieducar/intranet/educar_motivo_baixa_cad.php
| ... | ... | @@ -97,28 +97,9 @@ class indice extends clsCadastro |
| 97 | 97 | // primary keys |
| 98 | 98 | $this->campoOculto( "cod_motivo_baixa", $this->cod_motivo_baixa ); |
| 99 | 99 | |
| 100 | - /*$obj_pessoa_bib = new clsPmieducarBibliotecaUsuario(); | |
| 101 | - $lst_pessoa_bib = $obj_pessoa_bib->lista(null, $this->pessoa_logada); | |
| 100 | + //foreign keys | |
| 101 | + $this->inputsHelper()->dynamic(array('instituicao', 'escola', 'biblioteca')); | |
| 102 | 102 | |
| 103 | - $opcoes = array("" => "Selecione"); | |
| 104 | - if(is_array($lst_pessoa_bib)) | |
| 105 | - { | |
| 106 | - foreach ($lst_pessoa_bib as $bib) | |
| 107 | - { | |
| 108 | - $obj_biblioteca = new clsPmieducarBiblioteca($bib['ref_cod_biblioteca']); | |
| 109 | - $det_biblioteca = $obj_biblioteca->detalhe(); | |
| 110 | - | |
| 111 | - $opcoes[$det_biblioteca['cod_biblioteca']] = $det_biblioteca['nm_biblioteca']; | |
| 112 | - } | |
| 113 | - } | |
| 114 | - $this->campoLista("ref_cod_biblioteca", "Biblioteca", $opcoes, $this->ref_cod_biblioteca); | |
| 115 | -*/ | |
| 116 | - $get_escola = 1; | |
| 117 | - $escola_obrigatorio = false; | |
| 118 | - $get_biblioteca = 1; | |
| 119 | - $instituicao_obrigatorio = true; | |
| 120 | - $biblioteca_obrigatorio = true; | |
| 121 | - include("include/pmieducar/educar_campo_lista.php"); | |
| 122 | 103 | // text |
| 123 | 104 | $this->campoTexto( "nm_motivo_baixa", "Motivo Baixa", $this->nm_motivo_baixa, 30, 255, true ); |
| 124 | 105 | $this->campoMemo( "descricao", "Descrição", $this->descricao, 60, 5, false ); |
| ... | ... | @@ -208,4 +189,4 @@ $miolo = new indice(); |
| 208 | 189 | $pagina->addForm( $miolo ); |
| 209 | 190 | // gera o html |
| 210 | 191 | $pagina->MakeAll(); |
| 211 | -?> | |
| 212 | 192 | \ No newline at end of file |
| 193 | +?> | ... | ... |
ieducar/intranet/educar_motivo_suspensao_cad.php
| ... | ... | @@ -95,30 +95,10 @@ class indice extends clsCadastro |
| 95 | 95 | { |
| 96 | 96 | // primary keys |
| 97 | 97 | $this->campoOculto( "cod_motivo_suspensao", $this->cod_motivo_suspensao ); |
| 98 | - | |
| 99 | - /*$obj_pessoa_bib = new clsPmieducarBibliotecaUsuario(); | |
| 100 | - $lst_pessoa_bib = $obj_pessoa_bib->lista(null, $this->pessoa_logada); | |
| 101 | 98 | |
| 102 | - $opcoes = array("" => "Selecione"); | |
| 103 | - if(is_array($lst_pessoa_bib)) | |
| 104 | - { | |
| 105 | - foreach ($lst_pessoa_bib as $bib) | |
| 106 | - { | |
| 107 | - $obj_biblioteca = new clsPmieducarBiblioteca($bib['ref_cod_biblioteca']); | |
| 108 | - $det_biblioteca = $obj_biblioteca->detalhe(); | |
| 109 | - | |
| 110 | - $opcoes[$det_biblioteca['cod_biblioteca']] = $det_biblioteca['nm_biblioteca']; | |
| 111 | - } | |
| 112 | - } | |
| 113 | - $this->campoLista("ref_cod_biblioteca", "Biblioteca", $opcoes, $this->ref_cod_biblioteca);*/ | |
| 114 | - | |
| 115 | - $get_escola = 1; | |
| 116 | - $escola_obrigatorio = false; | |
| 117 | - $get_biblioteca = 1; | |
| 118 | - $instituicao_obrigatorio = true; | |
| 119 | - $biblioteca_obrigatorio = true; | |
| 120 | - include("include/pmieducar/educar_campo_lista.php"); | |
| 121 | - | |
| 99 | + //foreign keys | |
| 100 | + $this->inputsHelper()->dynamic(array('instituicao', 'escola', 'biblioteca')); | |
| 101 | + | |
| 122 | 102 | // text |
| 123 | 103 | $this->campoTexto( "nm_motivo", "Motivo Suspensão", $this->nm_motivo, 30, 255, true ); |
| 124 | 104 | $this->campoMemo( "descricao", "Descrição", $this->descricao, 60, 5, false ); |
| ... | ... | @@ -208,4 +188,4 @@ $miolo = new indice(); |
| 208 | 188 | $pagina->addForm( $miolo ); |
| 209 | 189 | // gera o html |
| 210 | 190 | $pagina->MakeAll(); |
| 211 | -?> | |
| 212 | 191 | \ No newline at end of file |
| 192 | +?> | ... | ... |
ieducar/intranet/educar_situacao_cad.php
| ... | ... | @@ -216,15 +216,8 @@ class indice extends clsCadastro |
| 216 | 216 | $obj_permissoes = new clsPermissoes(); |
| 217 | 217 | $obj_permissoes->permissao_cadastra( 602, $this->pessoa_logada, 11, "educar_situacao_lst.php" ); |
| 218 | 218 | |
| 219 | - if ($this->situacao_padrao == 'on') | |
| 220 | - $this->situacao_padrao = 1; | |
| 221 | - else | |
| 222 | - $this->situacao_padrao = 0; | |
| 223 | - | |
| 224 | - if ($this->situacao_emprestada == 'on') | |
| 225 | - $this->situacao_emprestada = 1; | |
| 226 | - else | |
| 227 | - $this->situacao_emprestada = 0; | |
| 219 | + $this->situacao_padrao = is_null($this->situacao_padrao) ? 0 : 1; | |
| 220 | + $this->situacao_emprestada = is_null($this->situacao_emprestada) ? 0 : 1; | |
| 228 | 221 | |
| 229 | 222 | $obj = new clsPmieducarSituacao( null, null, $this->pessoa_logada, $this->nm_situacao, $this->permite_emprestimo, $this->descricao, $this->situacao_padrao, $this->situacao_emprestada, null, null, 1, $this->ref_cod_biblioteca ); |
| 230 | 223 | $cadastrou = $obj->cadastra(); |
| ... | ... | @@ -250,15 +243,8 @@ class indice extends clsCadastro |
| 250 | 243 | $obj_permissoes = new clsPermissoes(); |
| 251 | 244 | $obj_permissoes->permissao_cadastra( 602, $this->pessoa_logada, 11, "educar_situacao_lst.php" ); |
| 252 | 245 | |
| 253 | - if ($this->situacao_padrao == 'on') | |
| 254 | - $this->situacao_padrao = 1; | |
| 255 | - else | |
| 256 | - $this->situacao_padrao = 0; | |
| 257 | - | |
| 258 | - if ($this->situacao_emprestada == 'on') | |
| 259 | - $this->situacao_emprestada = 1; | |
| 260 | - else | |
| 261 | - $this->situacao_emprestada = 0; | |
| 246 | + $this->situacao_padrao = is_null($this->situacao_padrao) ? 0 : 1; | |
| 247 | + $this->situacao_emprestada = is_null($this->situacao_emprestada) ? 0 : 1; | |
| 262 | 248 | |
| 263 | 249 | $obj = new clsPmieducarSituacao($this->cod_situacao, $this->pessoa_logada, null, $this->nm_situacao, $this->permite_emprestimo, $this->descricao, $this->situacao_padrao, $this->situacao_emprestada, null, null, 1, $this->ref_cod_biblioteca); |
| 264 | 250 | $editou = $obj->edita(); |
| ... | ... | @@ -375,4 +361,4 @@ function valida() |
| 375 | 361 | document.forms[0].submit(); |
| 376 | 362 | } |
| 377 | 363 | |
| 378 | -</script> | |
| 379 | 364 | \ No newline at end of file |
| 365 | +</script> | ... | ... |
ieducar/intranet/include/pmieducar/clsPmieducarAcervo.inc.php
| ... | ... | @@ -120,13 +120,13 @@ class clsPmieducarAcervo |
| 120 | 120 | * |
| 121 | 121 | * @return object |
| 122 | 122 | */ |
| 123 | - function clsPmieducarAcervo( $cod_acervo = null, $ref_cod_exemplar_tipo = null, $ref_cod_acervo = null, $ref_usuario_exc = null, $ref_usuario_cad = null, $ref_cod_acervo_colecao = null, $ref_cod_acervo_idioma = null, $ref_cod_acervo_editora = null, $titulo = null, $sub_titulo = null, $cdu = null, $cutter = null, $volume = null, $num_edicao = null, $ano = null, $num_paginas = null, $isbn = null, $data_cadastro = null, $data_exclusao = null, $ativo = null, $ref_cod_biblioteca = null ) | |
| 123 | + function clsPmieducarAcervo( $cod_acervo = null, $ref_cod_exemplar_tipo = null, $ref_cod_acervo = null, $ref_usuario_exc = null, $ref_usuario_cad = null, $ref_cod_acervo_colecao = null, $ref_cod_acervo_idioma = null, $ref_cod_acervo_editora = null, $titulo = null, $sub_titulo = null, $cdu = null, $cutter = null, $volume = null, $num_edicao = null, $ano = null, $num_paginas = null, $isbn = null, $data_cadastro = null, $data_exclusao = null, $ativo = null, $ref_cod_biblioteca = null, $cdd = null, $estante = null ) | |
| 124 | 124 | { |
| 125 | 125 | $db = new clsBanco(); |
| 126 | 126 | $this->_schema = "pmieducar."; |
| 127 | 127 | $this->_tabela = "{$this->_schema}acervo"; |
| 128 | 128 | |
| 129 | - $this->_campos_lista = $this->_todos_campos = "a.cod_acervo, a.ref_cod_exemplar_tipo, a.ref_cod_acervo, a.ref_usuario_exc, a.ref_usuario_cad, a.ref_cod_acervo_colecao, a.ref_cod_acervo_idioma, a.ref_cod_acervo_editora, a.titulo, a.sub_titulo, a.cdu, a.cutter, a.volume, a.num_edicao, a.ano, a.num_paginas, a.isbn, a.data_cadastro, a.data_exclusao, a.ativo, a.ref_cod_biblioteca"; | |
| 129 | + $this->_campos_lista = $this->_todos_campos = "a.cod_acervo, a.ref_cod_exemplar_tipo, a.ref_cod_acervo, a.ref_usuario_exc, a.ref_usuario_cad, a.ref_cod_acervo_colecao, a.ref_cod_acervo_idioma, a.ref_cod_acervo_editora, a.titulo, a.sub_titulo, a.cdu, a.cutter, a.volume, a.num_edicao, a.ano, a.num_paginas, a.isbn, a.data_cadastro, a.data_exclusao, a.ativo, a.ref_cod_biblioteca, a.cdd, a.estante"; | |
| 130 | 130 | |
| 131 | 131 | if( is_numeric( $ref_cod_biblioteca ) ) |
| 132 | 132 | { |
| ... | ... | @@ -411,6 +411,8 @@ class clsPmieducarAcervo |
| 411 | 411 | $this->ativo = $ativo; |
| 412 | 412 | } |
| 413 | 413 | |
| 414 | + $this->cdd = $cdd; | |
| 415 | + $this->estante = $estante; | |
| 414 | 416 | } |
| 415 | 417 | |
| 416 | 418 | /** |
| ... | ... | @@ -524,6 +526,7 @@ class clsPmieducarAcervo |
| 524 | 526 | $campos .= "{$gruda}ativo"; |
| 525 | 527 | $valores .= "{$gruda}'1'"; |
| 526 | 528 | $gruda = ", "; |
| 529 | + | |
| 527 | 530 | if( is_numeric( $this->ref_cod_biblioteca ) ) |
| 528 | 531 | { |
| 529 | 532 | $campos .= "{$gruda}ref_cod_biblioteca"; |
| ... | ... | @@ -531,6 +534,19 @@ class clsPmieducarAcervo |
| 531 | 534 | $gruda = ", "; |
| 532 | 535 | } |
| 533 | 536 | |
| 537 | + if( is_string( $this->cdd ) ) | |
| 538 | + { | |
| 539 | + $campos .= "{$gruda}cdd"; | |
| 540 | + $valores .= "{$gruda}'{$this->cdd}'"; | |
| 541 | + $gruda = ", "; | |
| 542 | + } | |
| 543 | + | |
| 544 | + if( is_string( $this->estante ) ) | |
| 545 | + { | |
| 546 | + $campos .= "{$gruda}estante"; | |
| 547 | + $valores .= "{$gruda}'{$this->estante}'"; | |
| 548 | + $gruda = ", "; | |
| 549 | + } | |
| 534 | 550 | |
| 535 | 551 | $db->Consulta( "INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )" ); |
| 536 | 552 | return $db->InsertId( "{$this->_tabela}_cod_acervo_seq"); |
| ... | ... | @@ -649,6 +665,17 @@ class clsPmieducarAcervo |
| 649 | 665 | $gruda = ", "; |
| 650 | 666 | } |
| 651 | 667 | |
| 668 | + if( is_string( $this->cdd ) ) | |
| 669 | + { | |
| 670 | + $set .= "{$gruda}cdd = '{$this->cdd}'"; | |
| 671 | + $gruda = ", "; | |
| 672 | + } | |
| 673 | + | |
| 674 | + if( is_string( $this->estante ) ) | |
| 675 | + { | |
| 676 | + $set .= "{$gruda}estante = '{$this->estante}'"; | |
| 677 | + $gruda = ", "; | |
| 678 | + } | |
| 652 | 679 | |
| 653 | 680 | if( $set ) |
| 654 | 681 | { |
| ... | ... | @@ -853,7 +880,7 @@ class clsPmieducarAcervo |
| 853 | 880 | return false; |
| 854 | 881 | } |
| 855 | 882 | |
| 856 | - | |
| 883 | + | |
| 857 | 884 | function listaAcervoBiblioteca($int_ref_cod_biblioteca = null, $str_titulo = null, $ativo = null, $int_ref_cod_acervo_colecao = null, $int_ref_cod_exemplar_tipo = null, $int_ref_cod_acervo_editora = null) |
| 858 | 885 | { |
| 859 | 886 | $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela} a"; |
| ... | ... | @@ -870,7 +897,7 @@ class clsPmieducarAcervo |
| 870 | 897 | $filtros .= "{$whereAnd} ref_cod_biblioteca = '{$int_ref_cod_biblioteca}'"; |
| 871 | 898 | $whereAnd = " AND "; |
| 872 | 899 | } |
| 873 | - | |
| 900 | + | |
| 874 | 901 | if(is_string($str_titulo)) |
| 875 | 902 | { |
| 876 | 903 | $filtros .= "{$whereAnd} titulo LIKE '%{$str_titulo}%'"; |
| ... | ... | @@ -896,11 +923,11 @@ class clsPmieducarAcervo |
| 896 | 923 | $filtros .= "{$whereAnd} ref_cod_acervo_editora = {$int_ref_cod_acervo_editora}"; |
| 897 | 924 | $whereAnd = " AND "; |
| 898 | 925 | } |
| 899 | - | |
| 926 | + | |
| 900 | 927 | $sql .= $filtros . $this->getOrderby() . $this->getLimite(); |
| 901 | 928 | $db = new clsBanco(); |
| 902 | 929 | $this->_total = $db->CampoUnico( "SELECT COUNT(0) FROM {$this->_tabela} a {$filtros}" ); |
| 903 | - | |
| 930 | + | |
| 904 | 931 | $db->Consulta( $sql ); |
| 905 | 932 | $countCampos = count( explode( ",", $this->_campos_lista ) ); |
| 906 | 933 | $resultado = array(); |
| ... | ... | @@ -929,7 +956,7 @@ class clsPmieducarAcervo |
| 929 | 956 | } |
| 930 | 957 | return false; |
| 931 | 958 | } |
| 932 | - | |
| 959 | + | |
| 933 | 960 | /** |
| 934 | 961 | * Retorna um array com os dados de um registro |
| 935 | 962 | * |
| ... | ... | @@ -940,7 +967,7 @@ class clsPmieducarAcervo |
| 940 | 967 | if( is_numeric( $this->cod_acervo ) ) |
| 941 | 968 | { |
| 942 | 969 | $db = new clsBanco(); |
| 943 | - $db->Consulta( "SELECT {$this->_todos_campos} FROM {$this->_tabela} a WHERE a.cod_acervo = '{$this->cod_acervo}'" ); | |
| 970 | + $db->Consulta( "SELECT {$this->_todos_campos} FROM {$this->_tabela} a WHERE a.cod_acervo = '{$this->cod_acervo}'" ); | |
| 944 | 971 | $db->ProximoRegistro(); |
| 945 | 972 | return $db->Tupla(); |
| 946 | 973 | } |
| ... | ... | @@ -1069,4 +1096,4 @@ class clsPmieducarAcervo |
| 1069 | 1096 | } |
| 1070 | 1097 | |
| 1071 | 1098 | } |
| 1072 | -?> | |
| 1073 | 1099 | \ No newline at end of file |
| 1100 | +?> | ... | ... |
ieducar/intranet/include/pmieducar/clsPmieducarAcervoEditora.inc.php
| ... | ... | @@ -208,6 +208,7 @@ class clsPmieducarAcervoEditora |
| 208 | 208 | } |
| 209 | 209 | } |
| 210 | 210 | } |
| 211 | + | |
| 211 | 212 | if( is_string( $ref_sigla_uf ) ) |
| 212 | 213 | { |
| 213 | 214 | if( class_exists( "clsUf" ) ) |
| ... | ... | @@ -298,10 +299,8 @@ class clsPmieducarAcervoEditora |
| 298 | 299 | * |
| 299 | 300 | * @return bool |
| 300 | 301 | */ |
| 301 | - function cadastra() | |
| 302 | - { | |
| 303 | - if( is_numeric( $this->ref_usuario_cad ) && is_string( $this->ref_idtlog ) && is_string( $this->ref_sigla_uf ) && is_string( $this->nm_editora ) && is_numeric( $this->cep ) && is_string( $this->cidade ) && is_string( $this->bairro ) && is_string( $this->logradouro ) && is_numeric($this->ref_cod_biblioteca) ) | |
| 304 | - { | |
| 302 | + function cadastra() { | |
| 303 | + if(is_numeric($this->ref_usuario_cad ) && is_string( $this->nm_editora ) && is_numeric($this->ref_cod_biblioteca)) { | |
| 305 | 304 | $db = new clsBanco(); |
| 306 | 305 | |
| 307 | 306 | $campos = ""; |
| ... | ... | @@ -417,16 +416,25 @@ class clsPmieducarAcervoEditora |
| 417 | 416 | $set .= "{$gruda}ref_usuario_exc = '{$this->ref_usuario_exc}'"; |
| 418 | 417 | $gruda = ", "; |
| 419 | 418 | } |
| 420 | - if( is_string( $this->ref_idtlog ) ) | |
| 421 | - { | |
| 422 | - $set .= "{$gruda}ref_idtlog = '{$this->ref_idtlog}'"; | |
| 423 | - $gruda = ", "; | |
| 424 | - } | |
| 425 | - if( is_string( $this->ref_sigla_uf ) ) | |
| 426 | - { | |
| 427 | - $set .= "{$gruda}ref_sigla_uf = '{$this->ref_sigla_uf}'"; | |
| 428 | - $gruda = ", "; | |
| 429 | - } | |
| 419 | + | |
| 420 | + if(is_string($this->ref_idtlog )){ | |
| 421 | + $set .= "{$gruda}ref_idtlog = '{$this->ref_idtlog}'"; | |
| 422 | + $gruda = ", "; | |
| 423 | + } | |
| 424 | + else { | |
| 425 | + $set .= "{$gruda}ref_idtlog = null"; | |
| 426 | + $gruda = ", "; | |
| 427 | + } | |
| 428 | + | |
| 429 | + if(is_string($this->ref_sigla_uf)){ | |
| 430 | + $set .= "{$gruda}ref_sigla_uf = '{$this->ref_sigla_uf}'"; | |
| 431 | + $gruda = ", "; | |
| 432 | + } | |
| 433 | + else { | |
| 434 | + $set .= "{$gruda}ref_sigla_uf = null"; | |
| 435 | + $gruda = ", "; | |
| 436 | + } | |
| 437 | + | |
| 430 | 438 | if( is_string( $this->nm_editora ) ) |
| 431 | 439 | { |
| 432 | 440 | $set .= "{$gruda}nm_editora = '{$this->nm_editora}'"; |
| ... | ... | @@ -790,4 +798,4 @@ class clsPmieducarAcervoEditora |
| 790 | 798 | } |
| 791 | 799 | |
| 792 | 800 | } |
| 793 | -?> | |
| 794 | 801 | \ No newline at end of file |
| 802 | +?> | ... | ... |
ieducar/intranet/include/pmieducar/clsPmieducarCliente.inc.php
| ... | ... | @@ -478,6 +478,7 @@ class clsPmieducarCliente |
| 478 | 478 | $resultado[] = $tupla[$this->_campos_lista]; |
| 479 | 479 | } |
| 480 | 480 | } |
| 481 | + | |
| 481 | 482 | if( count( $resultado ) ) |
| 482 | 483 | { |
| 483 | 484 | return $resultado; |
| ... | ... | @@ -499,99 +500,8 @@ class clsPmieducarCliente |
| 499 | 500 | $int_cod_cliente_tipo = NULL, $int_cod_escola = NULL, $int_cod_biblioteca = NULL, |
| 500 | 501 | $int_cod_instituicao = NULL) { |
| 501 | 502 | |
| 502 | - $tab_adicional = ''; | |
| 503 | - $condicao = ''; | |
| 504 | - $camp_adicional = ''; | |
| 505 | - | |
| 506 | - // Executa filtragem por clientes suspensos somente quando houver registros na tabela | |
| 507 | - $clienteSuspenso = new clsPmieducarClienteSuspensao(); | |
| 508 | 503 | $db = new clsBanco(); |
| 509 | 504 | |
| 510 | - // Se suspenso não for nulo e existirem cliente suspensos, seleciona-os | |
| 511 | - // quando ainda estiverem no prazo de suspensão | |
| 512 | - if ($db->doCountFromObj($clienteSuspenso) > 0) { | |
| 513 | - if (!is_null($str_suspenso)) { | |
| 514 | - $camp_adicional .= ', pmieducar.cliente_suspensao cs '; | |
| 515 | - $condicao .= ' AND c.cod_cliente = cs.ref_cod_cliente AND | |
| 516 | - (cs.data_suspensao < current_date - cs.dias)'; | |
| 517 | - } | |
| 518 | - else { | |
| 519 | - $camp_adicional .= ', pmieducar.cliente_suspensao cs '; | |
| 520 | - $condicao .= ' AND (c.cod_cliente <> cs.ref_cod_cliente OR | |
| 521 | - (cs.data_suspensao > current_date - cs.dias))'; | |
| 522 | - } | |
| 523 | - } | |
| 524 | - | |
| 525 | - $sql1 = " | |
| 526 | - SELECT | |
| 527 | - c.cod_cliente, | |
| 528 | - c.ref_idpes, | |
| 529 | - c.ref_usuario_cad, | |
| 530 | - c.login, | |
| 531 | - p.nome, | |
| 532 | - ct.nm_tipo, | |
| 533 | - ct.cod_cliente_tipo, | |
| 534 | - b.nm_biblioteca, | |
| 535 | - b.cod_biblioteca, | |
| 536 | - e.cod_escola as cod_escola, | |
| 537 | - i.cod_instituicao, | |
| 538 | - (SELECT 'S'::text | |
| 539 | - FROM pmieducar.cliente_suspensao cs | |
| 540 | - WHERE cs.ref_cod_cliente = c.cod_cliente | |
| 541 | - AND cs.data_liberacao IS NULL) AS id_suspensao | |
| 542 | - FROM | |
| 543 | - pmieducar.cliente c, | |
| 544 | - pmieducar.cliente_tipo_cliente ctc, | |
| 545 | - pmieducar.cliente_tipo ct, | |
| 546 | - pmieducar.biblioteca b, | |
| 547 | - pmieducar.escola e, | |
| 548 | - pmieducar.instituicao i, | |
| 549 | - cadastro.pessoa p{$camp_adicional} | |
| 550 | - WHERE | |
| 551 | - c.cod_cliente = ctc.ref_cod_cliente | |
| 552 | - AND ct.cod_cliente_tipo = ctc.ref_cod_cliente_tipo | |
| 553 | - AND b.cod_biblioteca = ct.ref_cod_biblioteca | |
| 554 | - AND e.cod_escola = b.ref_cod_escola | |
| 555 | - AND i.cod_instituicao = b.ref_cod_instituicao | |
| 556 | - AND e.ref_cod_instituicao = i.cod_instituicao{$condicao} | |
| 557 | - AND p.idpes = c.ref_idpes | |
| 558 | - AND c.ativo = '{$int_ativo}' | |
| 559 | - AND ctc.ativo = '{$int_ativo}'"; | |
| 560 | - | |
| 561 | - $sql2 = " | |
| 562 | - SELECT | |
| 563 | - c.cod_cliente, | |
| 564 | - c.ref_idpes, | |
| 565 | - c.ref_usuario_cad, | |
| 566 | - c.login, | |
| 567 | - p.nome, | |
| 568 | - ct.nm_tipo, | |
| 569 | - ct.cod_cliente_tipo, | |
| 570 | - b.nm_biblioteca, | |
| 571 | - b.cod_biblioteca, | |
| 572 | - null as cod_escola, | |
| 573 | - i.cod_instituicao, | |
| 574 | - (SELECT 'S'::text | |
| 575 | - FROM pmieducar.cliente_suspensao cs | |
| 576 | - WHERE cs.ref_cod_cliente = c.cod_cliente | |
| 577 | - AND cs.data_liberacao IS NULL) AS id_suspensao | |
| 578 | - FROM | |
| 579 | - pmieducar.cliente c, | |
| 580 | - pmieducar.cliente_tipo_cliente ctc, | |
| 581 | - pmieducar.cliente_tipo ct, | |
| 582 | - pmieducar.biblioteca b, | |
| 583 | - pmieducar.instituicao i, | |
| 584 | - cadastro.pessoa p{$camp_adicional} | |
| 585 | - WHERE c.cod_cliente = ctc.ref_cod_cliente | |
| 586 | - AND ct.cod_cliente_tipo = ctc.ref_cod_cliente_tipo | |
| 587 | - AND b.cod_biblioteca = ct.ref_cod_biblioteca | |
| 588 | - AND i.cod_instituicao = b.ref_cod_instituicao | |
| 589 | - AND b.ref_cod_escola IS NULL | |
| 590 | - AND ct.ref_cod_biblioteca = b.cod_biblioteca{$condicao} | |
| 591 | - AND p.idpes = c.ref_idpes | |
| 592 | - AND c.ativo = '{$int_ativo}' | |
| 593 | - AND ctc.ativo = '{$int_ativo}'"; | |
| 594 | - | |
| 595 | 505 | $filtros = ''; |
| 596 | 506 | $whereAnd = ' AND '; |
| 597 | 507 | |
| ... | ... | @@ -685,46 +595,65 @@ class clsPmieducarCliente |
| 685 | 595 | $whereAnd = " AND "; |
| 686 | 596 | } |
| 687 | 597 | |
| 688 | - if (is_string($str_suspenso)) { | |
| 689 | - $filtros .= "{$whereAnd} cs.data_liberacao IS NULL"; | |
| 690 | - $whereAnd = " AND "; | |
| 598 | + // se S(suspenso) ou R(egular), filtra por tal situacao | |
| 599 | + if(in_array($str_suspenso, array('S', 'R'))) { | |
| 600 | + $existencia = $str_suspenso == 'R' ? 'not' : ''; | |
| 601 | + $condicaoSuspenso = " AND $existencia exists (select 1 from pmieducar.cliente_suspensao where ref_cod_cliente = c.cod_cliente and data_liberacao is null and data_suspensao + (dias||' day')::interval >= now())"; | |
| 691 | 602 | } |
| 692 | 603 | |
| 693 | 604 | $db = new clsBanco(); |
| 694 | 605 | $resultado = array(); |
| 695 | 606 | |
| 696 | - $sql1 .= $filtros; | |
| 697 | - $sql2 .= $filtros; | |
| 698 | - | |
| 699 | - if (is_numeric($int_cod_escola)) { | |
| 700 | - $this->_total = $db->CampoUnico("SELECT count(0) FROM ({$sql1}) AS SUBQUERY"); | |
| 701 | - } | |
| 702 | - else { | |
| 703 | - $this->_total = $db->CampoUnico("SELECT count(0) FROM (" . $sql1 . " UNION " . $sql2 . ") AS SUBQUERY"); | |
| 704 | - } | |
| 705 | - | |
| 706 | - // Aplica ordenação e limite | |
| 707 | - $sql2 .= $this->getOrderby() . $this->getLimite(); | |
| 708 | - | |
| 709 | - if (is_numeric($int_cod_escola)) { | |
| 710 | - $sql = $sql1; | |
| 711 | - } | |
| 712 | - else { | |
| 713 | - $sql = $sql1 . ' UNION ' . $sql2; | |
| 714 | - } | |
| 607 | + $sql = " | |
| 608 | + SELECT | |
| 609 | + c.cod_cliente, | |
| 610 | + c.ref_idpes, | |
| 611 | + c.ref_usuario_cad, | |
| 612 | + c.login, | |
| 613 | + p.nome, | |
| 614 | + ct.nm_tipo, | |
| 615 | + ct.cod_cliente_tipo, | |
| 616 | + b.nm_biblioteca, | |
| 617 | + b.cod_biblioteca, | |
| 618 | + e.cod_escola as cod_escola, | |
| 619 | + i.cod_instituicao, | |
| 620 | + (SELECT 'S'::text | |
| 621 | + FROM pmieducar.cliente_suspensao cs | |
| 622 | + WHERE cs.ref_cod_cliente = c.cod_cliente | |
| 623 | + AND cs.data_liberacao IS NULL) AS id_suspensao | |
| 624 | + FROM | |
| 625 | + pmieducar.cliente c, | |
| 626 | + pmieducar.cliente_tipo_cliente ctc, | |
| 627 | + pmieducar.cliente_tipo ct, | |
| 628 | + pmieducar.biblioteca b, | |
| 629 | + pmieducar.escola e, | |
| 630 | + pmieducar.instituicao i, | |
| 631 | + cadastro.pessoa p | |
| 632 | + WHERE | |
| 633 | + c.cod_cliente = ctc.ref_cod_cliente | |
| 634 | + AND ct.cod_cliente_tipo = ctc.ref_cod_cliente_tipo | |
| 635 | + AND b.cod_biblioteca = ct.ref_cod_biblioteca | |
| 636 | + AND e.cod_escola = b.ref_cod_escola | |
| 637 | + AND i.cod_instituicao = b.ref_cod_instituicao | |
| 638 | + AND e.ref_cod_instituicao = i.cod_instituicao{$condicaoSuspenso} | |
| 639 | + AND p.idpes = c.ref_idpes | |
| 640 | + AND c.ativo = '{$int_ativo}' | |
| 641 | + AND ctc.ativo = '{$int_ativo}' | |
| 642 | + $filtros"; | |
| 715 | 643 | |
| 644 | + $sql .= $this->getOrderby() . $this->getLimite(); | |
| 716 | 645 | $db->Consulta($sql); |
| 717 | 646 | |
| 647 | + $this->_total = 0; | |
| 648 | + | |
| 718 | 649 | while ($db->ProximoRegistro()) { |
| 719 | 650 | $tupla = $db->Tupla(); |
| 720 | - | |
| 721 | - $tupla["_total"] = $this->_total; | |
| 722 | 651 | $resultado[] = $tupla; |
| 652 | + $this->_total += 1; | |
| 723 | 653 | } |
| 724 | 654 | |
| 725 | - if (count($resultado) > 0) { | |
| 655 | + if (count($resultado) > 0) | |
| 726 | 656 | return $resultado; |
| 727 | - } | |
| 728 | 657 | |
| 729 | 658 | return FALSE; |
| 730 | 659 | } |
| ... | ... | @@ -1020,4 +949,4 @@ class clsPmieducarCliente |
| 1020 | 949 | return false; |
| 1021 | 950 | } |
| 1022 | 951 | |
| 1023 | -} | |
| 1024 | 952 | \ No newline at end of file |
| 953 | +} | ... | ... |
ieducar/intranet/include/pmieducar/clsPmieducarExemplar.inc.php
| ... | ... | @@ -480,6 +480,11 @@ class clsPmieducarExemplar |
| 480 | 480 | $gruda = ", "; |
| 481 | 481 | } |
| 482 | 482 | |
| 483 | + if(is_numeric($this->tombo)) | |
| 484 | + { | |
| 485 | + $set .= "{$gruda}tombo = '{$this->tombo}'"; | |
| 486 | + $gruda = ", "; | |
| 487 | + } | |
| 483 | 488 | |
| 484 | 489 | if( $set ) |
| 485 | 490 | { |
| ... | ... | @@ -673,18 +678,28 @@ class clsPmieducarExemplar |
| 673 | 678 | } |
| 674 | 679 | return false; |
| 675 | 680 | } |
| 676 | - | |
| 677 | - function retorna_tombo_maximo() { | |
| 678 | - $sql = "SELECT MAX(tombo) as tombo_max FROM pmieducar.exemplar WHERE ativo = 1"; | |
| 681 | + | |
| 682 | + function retorna_tombo_maximo($bibliotecaId, $exceptExemplarId = null) { | |
| 683 | + if (empty($bibliotecaId)) | |
| 684 | + throw new Exception("Deve ser enviado um argumento '\$bibliotecaId' ao método 'retorna_tombo_maximo'"); | |
| 685 | + | |
| 686 | + // sem esta regra ao editar o ultimo exemplar sem informar o tombo, seria pego o proprio tombo. | |
| 687 | + if (! empty($exceptExemplarId)) | |
| 688 | + $exceptExemplar = " and exemplar.cod_exemplar != $exceptExemplarId"; | |
| 689 | + else | |
| 690 | + $exceptExemplar = ''; | |
| 691 | + | |
| 692 | + $sql = "SELECT MAX(tombo) as tombo_max FROM pmieducar.exemplar, pmieducar.acervo WHERE exemplar.ativo = 1 and exemplar.ref_cod_acervo = acervo.cod_acervo and acervo.ref_cod_biblioteca = $bibliotecaId $exceptExemplar"; | |
| 693 | + | |
| 679 | 694 | $db = new clsBanco(); |
| 680 | 695 | return $db->CampoUnico($sql); |
| 681 | 696 | } |
| 682 | - | |
| 697 | + | |
| 683 | 698 | /** |
| 684 | 699 | * Retorna uma lista filtrados de acordo com os parametros |
| 685 | 700 | * |
| 686 | 701 | * @return array |
| 687 | - */ | |
| 702 | + */ | |
| 688 | 703 | function lista_com_acervos( $int_cod_exemplar = null, $int_ref_cod_fonte = null, $int_ref_cod_motivo_baixa = null, $int_ref_cod_acervo = null, $int_ref_cod_situacao = null, $int_ref_usuario_exc = null, $int_ref_usuario_cad = null, $int_permite_emprestimo = null, $int_preco = null, $date_data_cadastro_ini = null, $date_data_cadastro_fim = null, $date_data_exclusao_ini = null, $date_data_exclusao_fim = null, $int_ativo = null, $date_data_aquisicao_ini = null, $date_data_aquisicao_fim = null, $int_ref_exemplar_tipo = null, $str_titulo_livro = null,$int_ref_cod_biblioteca = null, $str_titulo = null, $int_ref_cod_instituicao = null, $int_ref_cod_escola = null, $int_ref_cod_acervo_colecao = null, $int_ref_cod_acervo_editora = null) { |
| 689 | 704 | $sql = "SELECT {$this->_campos_lista}, a.ref_cod_biblioteca, a.titulo FROM {$this->_tabela} e, {$this->_schema}acervo a, {$this->_schema}biblioteca b"; |
| 690 | 705 | |
| ... | ... | @@ -1009,4 +1024,4 @@ class clsPmieducarExemplar |
| 1009 | 1024 | } |
| 1010 | 1025 | |
| 1011 | 1026 | } |
| 1012 | -?> | |
| 1013 | 1027 | \ No newline at end of file |
| 1028 | +?> | ... | ... |
ieducar/intranet/include/pmieducar/clsPmieducarMotivoSuspensao.inc.php
| ... | ... | @@ -433,16 +433,15 @@ class clsPmieducarMotivoSuspensao |
| 433 | 433 | } |
| 434 | 434 | return false; |
| 435 | 435 | } |
| 436 | - | |
| 436 | + | |
| 437 | 437 | function listaClienteBiblioteca($int_cod_cliente) |
| 438 | 438 | { |
| 439 | 439 | if(is_numeric($int_cod_cliente)) |
| 440 | 440 | { |
| 441 | 441 | $db = new clsBanco(); |
| 442 | 442 | $db->Consulta(" |
| 443 | - SELECT | |
| 444 | - cod_motivo_suspensao | |
| 445 | - , nm_motivo | |
| 443 | + SELECT | |
| 444 | + cod_motivo_suspensao, nm_motivo, descricao | |
| 446 | 445 | FROM |
| 447 | 446 | pmieducar.motivo_suspensao |
| 448 | 447 | WHERE |
| ... | ... | @@ -605,4 +604,4 @@ class clsPmieducarMotivoSuspensao |
| 605 | 604 | } |
| 606 | 605 | |
| 607 | 606 | } |
| 608 | -?> | |
| 609 | 607 | \ No newline at end of file |
| 608 | +?> | ... | ... |
ieducar/intranet/include/pmieducar/clsPmieducarReservas.inc.php
| ... | ... | @@ -390,7 +390,7 @@ class clsPmieducarReservas |
| 390 | 390 | * |
| 391 | 391 | * @return array |
| 392 | 392 | */ |
| 393 | - function lista( $int_cod_reserva = null, $int_ref_usuario_libera = null, $int_ref_usuario_cad = null, $int_ref_cod_cliente = null, $date_data_reserva_ini = null, $date_data_reserva_fim = null, $date_data_prevista_disponivel_ini = null, $date_data_prevista_disponivel_fim = null, $date_data_retirada_ini = null, $date_data_retirada_fim = null, $int_ref_cod_exemplar = null, $int_ativo = null, $int_ref_cod_biblioteca = null, $int_ref_cod_instituicao = null, $int_ref_cod_escola = null ) | |
| 393 | + function lista( $int_cod_reserva = null, $int_ref_usuario_libera = null, $int_ref_usuario_cad = null, $int_ref_cod_cliente = null, $date_data_reserva_ini = null, $date_data_reserva_fim = null, $date_data_prevista_disponivel_ini = null, $date_data_prevista_disponivel_fim = null, $date_data_retirada_ini = null, $date_data_retirada_fim = null, $int_ref_cod_exemplar = null, $int_ativo = null, $int_ref_cod_biblioteca = null, $int_ref_cod_instituicao = null, $int_ref_cod_escola = null, $data_retirada_null = false ) | |
| 394 | 394 | { |
| 395 | 395 | $sql = "SELECT {$this->_campos_lista}, a.ref_cod_biblioteca, b.ref_cod_instituicao, b.ref_cod_escola FROM {$this->_tabela} r, {$this->_schema}exemplar e, {$this->_schema}acervo a, {$this->_schema}biblioteca b"; |
| 396 | 396 | |
| ... | ... | @@ -478,6 +478,11 @@ class clsPmieducarReservas |
| 478 | 478 | $whereAnd = " AND "; |
| 479 | 479 | } |
| 480 | 480 | |
| 481 | + if($data_retirada_null) | |
| 482 | + { | |
| 483 | + $filtros .= "{$whereAnd} r.data_retirada is null"; | |
| 484 | + $whereAnd = " AND "; | |
| 485 | + } | |
| 481 | 486 | |
| 482 | 487 | $db = new clsBanco(); |
| 483 | 488 | $countCampos = count( explode( ",", $this->_campos_lista ) ); |
| ... | ... | @@ -713,4 +718,4 @@ class clsPmieducarReservas |
| 713 | 718 | return false; |
| 714 | 719 | } |
| 715 | 720 | } |
| 716 | -?> | |
| 717 | 721 | \ No newline at end of file |
| 722 | +?> | ... | ... |
ieducar/modules/Biblioteca/Assets/Javascripts/Emprestimo.js
0 → 100644
| ... | ... | @@ -0,0 +1,208 @@ |
| 1 | +var PAGE_URL_BASE = 'emprestimo'; | |
| 2 | +var API_URL_BASE = 'emprestimoApi'; | |
| 3 | +var RESOURCE_NAME = 'exemplar'; | |
| 4 | +var RESOURCES_NAME = 'exemplares'; | |
| 5 | +var POST_LABEL = 'Emprestar'; | |
| 6 | +var DELETE_LABEL = 'Devolver'; | |
| 7 | +var SEARCH_ORIENTATION = ''; | |
| 8 | + | |
| 9 | +var onClickSelectAllEvent = false; | |
| 10 | +var onClickDeleteEvent = false; | |
| 11 | + | |
| 12 | +var onClickActionEvent = function(event){ | |
| 13 | + var $this = $j(this) | |
| 14 | + var $firstChecked = getFirstCheckboxChecked($this); | |
| 15 | + | |
| 16 | + if ($firstChecked){ | |
| 17 | + $j('.disable-on-apply-changes').attr('disabled', 'disabled'); | |
| 18 | + $this.val('Aguarde emprestando exemplar...'); | |
| 19 | + postEmprestimo($firstChecked); | |
| 20 | + } | |
| 21 | +}; | |
| 22 | + | |
| 23 | +var postDevolucao = function ($resourceCheckbox) { | |
| 24 | + var options = { | |
| 25 | + url : postResourceUrlBuilder.buildUrl(API_URL_BASE, 'devolucao'), | |
| 26 | + dataType : 'json', | |
| 27 | + data : { | |
| 28 | + instituicao_id : $j('#instituicao_id').val(), | |
| 29 | + escola_id : $j('#escola_id').val(), | |
| 30 | + biblioteca_id : $j('#biblioteca_id').val(), | |
| 31 | + cliente_id : $j('#cliente_id').val(), | |
| 32 | + exemplar_id : $resourceCheckbox.data('exemplar_id'), | |
| 33 | + tombo_exemplar : $j('#tombo_exemplar').val() | |
| 34 | + }, | |
| 35 | + | |
| 36 | + success : function(dataResponse){ | |
| 37 | + afterChangeResource($resourceCheckbox); | |
| 38 | + handlePost(dataResponse); | |
| 39 | + } | |
| 40 | + }; | |
| 41 | + | |
| 42 | + beforeChangeResource($resourceCheckbox); | |
| 43 | + postResource(options); | |
| 44 | +}; | |
| 45 | + | |
| 46 | +var postEmprestimo = function ($resourceCheckbox) { | |
| 47 | + var options = { | |
| 48 | + url : postResourceUrlBuilder.buildUrl(API_URL_BASE, 'emprestimo'), | |
| 49 | + dataType : 'json', | |
| 50 | + data : { | |
| 51 | + instituicao_id : $j('#instituicao_id').val(), | |
| 52 | + escola_id : $j('#escola_id').val(), | |
| 53 | + biblioteca_id : $j('#biblioteca_id').val(), | |
| 54 | + cliente_id : $j('#cliente_id').val(), | |
| 55 | + exemplar_id : $resourceCheckbox.data('exemplar_id'), | |
| 56 | + tombo_exemplar : $j('#tombo_exemplar').val() | |
| 57 | + }, | |
| 58 | + | |
| 59 | + success : function(dataResponse){ | |
| 60 | + afterChangeResource($resourceCheckbox); | |
| 61 | + handlePost(dataResponse); | |
| 62 | + } | |
| 63 | + }; | |
| 64 | + | |
| 65 | + beforeChangeResource($resourceCheckbox); | |
| 66 | + postResource(options); | |
| 67 | +}; | |
| 68 | + | |
| 69 | +var handlePost = function(dataResponse){ | |
| 70 | + if (dataResponse.exemplar) | |
| 71 | + var $targetElement = $j('#exemplar-' + dataResponse.exemplar.id).closest('tr').first(); | |
| 72 | + else | |
| 73 | + var $targetElement = undefined; | |
| 74 | + | |
| 75 | + handleMessages(dataResponse.msgs, $targetElement); | |
| 76 | + updateResourceRow(dataResponse.exemplar); | |
| 77 | +}; | |
| 78 | + | |
| 79 | + | |
| 80 | +function setTableSearchDetails($tableSearchDetails, dataDetails){ | |
| 81 | + $j('<caption />').html('<strong>Emprestimo exemplares</strong>').appendTo($tableSearchDetails); | |
| 82 | + | |
| 83 | + //set headers table | |
| 84 | + var $linha = $j('<tr />'); | |
| 85 | + $j('<th />').html('Cliente').appendTo($linha); | |
| 86 | + $j('<th />').html('Obra').appendTo($linha); | |
| 87 | + $j('<th />').html('Tombo exemplar').appendTo($linha); | |
| 88 | + $j('<th />').html('Biblioteca').appendTo($linha); | |
| 89 | + | |
| 90 | + $linha.appendTo($tableSearchDetails); | |
| 91 | + | |
| 92 | + var $linha = $j('<tr />').addClass('even'); | |
| 93 | + | |
| 94 | + $j('<td />').html($j('#nome_cliente').val()).appendTo($linha); | |
| 95 | + $j('<td />').html('').attr('id', 'titulo_obra').appendTo($linha); | |
| 96 | + $j('<td />').html($j('#tombo_exemplar').val()).appendTo($linha); | |
| 97 | + | |
| 98 | + var $htmlBibliotecaField = $j('#biblioteca_id').children("[selected='selected']").html() || | |
| 99 | + $j('#tr_biblioteca_nome span:last').html(); | |
| 100 | + | |
| 101 | + $j('<td />').html(safeToUpperCase($htmlBibliotecaField)).appendTo($linha); | |
| 102 | + | |
| 103 | + $linha.appendTo($tableSearchDetails); | |
| 104 | + $tableSearchDetails.show(); | |
| 105 | + | |
| 106 | + $tableSearchDetails.data('details', dataDetails); | |
| 107 | +} | |
| 108 | + | |
| 109 | + | |
| 110 | +function handleSearch($resultTable, dataResponse) { | |
| 111 | + var $linha = $j('<tr />'); | |
| 112 | + $j('<th />').html('Selecionar').addClass('center').appendTo($linha); | |
| 113 | + $j('<th />').html('Id').addClass('center').appendTo($linha); | |
| 114 | + $j('<th />').html('Situação').addClass('center').appendTo($linha); | |
| 115 | + $j('<th />').html('Cliente').appendTo($linha); | |
| 116 | + $j('<th />').html('Data emprestimo').addClass('center').appendTo($linha); | |
| 117 | + $j('<th />').html('Data prevista devolução').addClass('center').appendTo($linha); | |
| 118 | + //$j('<th />').html('Ação').addClass('center').appendTo($linha); | |
| 119 | + $linha.appendTo($resultTable); | |
| 120 | + | |
| 121 | + var setTituloObra = true; | |
| 122 | + | |
| 123 | + //set rows | |
| 124 | + $j.each(dataResponse[RESOURCES_NAME], function(index, value){ | |
| 125 | + | |
| 126 | + if(setTituloObra) | |
| 127 | + $j('#titulo_obra').html(value.acervo.titulo); | |
| 128 | + | |
| 129 | + var $checkbox = $j('<input />') | |
| 130 | + .attr('type', 'checkbox') | |
| 131 | + .attr('name', 'exemplar') | |
| 132 | + .attr('value', 'sim') | |
| 133 | + .attr('id', 'exemplar-' + value.id) | |
| 134 | + .attr('class', 'exemplar disable-on-apply-changes') | |
| 135 | + .data('exemplar_id', value.id); | |
| 136 | + | |
| 137 | + var situacoesEmprestimoPermitida = ['disponivel', 'emprestado', 'reservado', 'emprestado_e_reservado']; | |
| 138 | + | |
| 139 | + if ($j.inArray(value.situacao.flag, situacoesEmprestimoPermitida) < 0) | |
| 140 | + $checkbox.attr('disabled', 'disabled').removeClass('disable-on-apply-changes'); | |
| 141 | + | |
| 142 | + var $linha = $j('<tr />'); | |
| 143 | + $j('<td />').html($checkbox).addClass('center').appendTo($linha); | |
| 144 | + $j('<td />').html(value.id).addClass('center').appendTo($linha); | |
| 145 | + | |
| 146 | + var $colSituacoes = $j('<td />').attr('id', 'situacoes-' + value.id).addClass('situacoes center'); | |
| 147 | + var $colClientes = $j('<td />').attr('id', 'clientes-' + value.id); | |
| 148 | + var $colDatas = $j('<td />').attr('id', 'datas-' + value.id).addClass('center'); | |
| 149 | + var $colDatasPrevistaDisponivel = $j('<td />').attr('id', 'datas-prevista-disponivel-' + value.id).addClass('center'); | |
| 150 | + //var $colAcoes = $j('<td />').attr('id', 'acoes-' + value.id).addClass('center'); | |
| 151 | + | |
| 152 | + $colSituacoes.appendTo($linha); | |
| 153 | + $colClientes.appendTo($linha); | |
| 154 | + $colDatas.appendTo($linha); | |
| 155 | + $colDatasPrevistaDisponivel.appendTo($linha); | |
| 156 | + //$colAcoes.appendTo($linha); | |
| 157 | + | |
| 158 | + $linha.appendTo($resultTable); | |
| 159 | + updateResourceRow(value); | |
| 160 | + });// each | |
| 161 | + | |
| 162 | + $resultTable.find('tr:even').addClass('even'); | |
| 163 | + $resultTable.addClass('styled').find('checkbox:first').focus(); | |
| 164 | + | |
| 165 | + var $checkboxes = $resultTable.find("input[type='checkbox']"); | |
| 166 | + $checkboxes.change(function(){ | |
| 167 | + $checkboxes.not(this).removeAttr('checked'); | |
| 168 | + }); | |
| 169 | +} | |
| 170 | + | |
| 171 | + | |
| 172 | +function updateResourceRow(exemplar){ | |
| 173 | + var $colSituacoes = $j('#situacoes-' + exemplar.id).html(''); | |
| 174 | + var $colClientes = $j('#clientes-' + exemplar.id).html(''); | |
| 175 | + var $colDatas = $j('#datas-' + exemplar.id).html(''); | |
| 176 | + var $colDatasPrevistaDisponivel = $j('#datas-prevista-disponivel-' + exemplar.id).html(''); | |
| 177 | + var $colAcoes = $j('#acoes-' + exemplar.id).html(''); | |
| 178 | + | |
| 179 | + if ($j.isArray(exemplar.pendencias)) { | |
| 180 | + $j.each(exemplar.pendencias, function(index, value){ | |
| 181 | + $j('<p />').html(value.situacao.label || '-').appendTo($colSituacoes); | |
| 182 | + $j('<p />').html(value.nome_cliente || '-').appendTo($colClientes); | |
| 183 | + $j('<p />').html(value.data || '-').appendTo($colDatas); | |
| 184 | + $j('<p />').html(value.data_prevista_disponivel || '-').appendTo($colDatasPrevistaDisponivel); | |
| 185 | + | |
| 186 | + if (value.situacao.flag == 'emprestimodo' && value.cliente && value.cliente.id == $j('#cliente_id').val()) { | |
| 187 | + var $linkToDelete = $j("<a href='#' class='disable-on-apply-changes'>Cancelar emprestimo</a>").click(onClickCancelEvent).data('exemplar_id', exemplar.id).data('emprestimo_id', value.emprestimo_id); | |
| 188 | + $j('<p />').html($linkToDelete).appendTo($colAcoes); | |
| 189 | + } | |
| 190 | + else | |
| 191 | + $j('<p />').html('-').appendTo($colAcoes); | |
| 192 | + }); | |
| 193 | + | |
| 194 | + if (exemplar.pendencias.length < 1) | |
| 195 | + $j('<p />').html(exemplar.situacao.label || '-').appendTo($colSituacoes); | |
| 196 | + } | |
| 197 | + | |
| 198 | + $colSituacoes.data('situacao', exemplar.situacao_exemplar); | |
| 199 | +} | |
| 200 | + | |
| 201 | +function canSearch() { | |
| 202 | + if ($j('#nome_cliente').val() == '') { | |
| 203 | + alert('Selecione um cliente para continuar.'); | |
| 204 | + return false; | |
| 205 | + } | |
| 206 | + | |
| 207 | + return true; | |
| 208 | +} | |
| 0 | 209 | \ No newline at end of file | ... | ... |
ieducar/modules/Biblioteca/Assets/Javascripts/Reserva.js
0 → 100644
| ... | ... | @@ -0,0 +1,221 @@ |
| 1 | +var PAGE_URL_BASE = 'reserva'; | |
| 2 | +var API_URL_BASE = 'reservaApi'; | |
| 3 | +var RESOURCE_NAME = 'exemplar'; | |
| 4 | +var RESOURCES_NAME = 'exemplares'; | |
| 5 | +var POST_LABEL = 'Reservar'; | |
| 6 | +var DELETE_LABEL = 'Cancelar'; | |
| 7 | +var SEARCH_ORIENTATION = ''; | |
| 8 | + | |
| 9 | +var onClickSelectAllEvent = false; | |
| 10 | +var onClickDeleteEvent = false; | |
| 11 | + | |
| 12 | +var onClickActionEvent = function(event){ | |
| 13 | + var $this = $j(this); | |
| 14 | + var $firstChecked = $j('input.exemplar:checked:first'); | |
| 15 | + | |
| 16 | + if ($firstChecked.length < 1) | |
| 17 | + handleMessages([{type : 'error', msg : 'Selecione algum exemplar.'}], $this, true); | |
| 18 | + else{ | |
| 19 | + $j('.disable-on-apply-changes').attr('disabled', 'disabled'); | |
| 20 | + $this.val('Aguarde reservando...'); | |
| 21 | + postReserva($firstChecked); | |
| 22 | + } | |
| 23 | +}; | |
| 24 | + | |
| 25 | +var postReserva = function ($resourceCheckbox) { | |
| 26 | + var options = { | |
| 27 | + url : postResourceUrlBuilder.buildUrl(API_URL_BASE, 'reserva'), | |
| 28 | + dataType : 'json', | |
| 29 | + data : { | |
| 30 | + ref_cod_instituicao : $j('#ref_cod_instituicao').val(), | |
| 31 | + ref_cod_escola : $j('#ref_cod_escola').val(), | |
| 32 | + ref_cod_biblioteca : $j('#ref_cod_biblioteca').val(), | |
| 33 | + ref_cod_cliente : $j('#ref_cod_cliente').val(), | |
| 34 | + ref_cod_acervo : $j('#ref_cod_acervo').val(), | |
| 35 | + exemplar_id : $resourceCheckbox.data('exemplar_id') | |
| 36 | + }, | |
| 37 | + | |
| 38 | + success : function(dataResponse){ | |
| 39 | + afterChangeResource($resourceCheckbox); | |
| 40 | + handlePost(dataResponse); | |
| 41 | + } | |
| 42 | + }; | |
| 43 | + | |
| 44 | + beforeChangeResource($resourceCheckbox); | |
| 45 | + postResource(options); | |
| 46 | +}; | |
| 47 | + | |
| 48 | +var handlePost = function(dataResponse){ | |
| 49 | + var $targetElement = $j('#exemplar-'+dataResponse.id).closest('tr').first(); | |
| 50 | + handleMessages(dataResponse.msgs, $targetElement); | |
| 51 | + updateResourceRow(dataResponse); | |
| 52 | +}; | |
| 53 | + | |
| 54 | +var onClickCancelEvent = function(event) { | |
| 55 | + if (confirm("Confirma cancelamento da reserva?")) { | |
| 56 | + var $this = $j(this); | |
| 57 | + | |
| 58 | + //var $checkbox = $this.closest('tr').find("input[type='checkbox']").first(); | |
| 59 | + deleteReserva($this); | |
| 60 | + } | |
| 61 | +} | |
| 62 | + | |
| 63 | +var deleteReserva = function($deleteLink) { | |
| 64 | + var options = { | |
| 65 | + url : deleteResourceUrlBuilder.buildUrl(API_URL_BASE, 'reserva', { | |
| 66 | + ref_cod_instituicao : $j('#ref_cod_instituicao').val(), | |
| 67 | + ref_cod_escola : $j('#ref_cod_escola').val(), | |
| 68 | + ref_cod_biblioteca : $j('#ref_cod_biblioteca').val(), | |
| 69 | + ref_cod_cliente : $j('#ref_cod_cliente').val(), | |
| 70 | + ref_cod_acervo : $j('#ref_cod_acervo').val(), | |
| 71 | + exemplar_id : $deleteLink.data('exemplar_id'), | |
| 72 | + reserva_id : $deleteLink.data('reserva_id') | |
| 73 | + }), | |
| 74 | + dataType : 'json', | |
| 75 | + data : { | |
| 76 | + }, | |
| 77 | + success : function(dataResponse){ | |
| 78 | + afterChangeResource($deleteLink); | |
| 79 | + handleDeleteReserva(dataResponse); | |
| 80 | + } | |
| 81 | + }; | |
| 82 | + | |
| 83 | + beforeChangeResource($deleteLink); | |
| 84 | + deleteResource(options); | |
| 85 | +} | |
| 86 | + | |
| 87 | +var handleDeleteReserva = function(dataResponse) { | |
| 88 | + safeLog(dataResponse); | |
| 89 | + | |
| 90 | + //try{ | |
| 91 | + var $targetElement = $j('#exemplar-' + dataResponse.id).closest('tr').first(); | |
| 92 | + handleMessages(dataResponse.msgs, $targetElement); | |
| 93 | + updateResourceRow(dataResponse); | |
| 94 | + //} | |
| 95 | + //catch(error){ | |
| 96 | + //showNewSearchButton(); | |
| 97 | + //handleMessages([{type : 'error', msg : 'Ocorreu um erro ao remover o recurso, por favor tente novamente, detalhes: ' + error}], ''); | |
| 98 | + | |
| 99 | + //safeLog(dataResponse); | |
| 100 | + //} | |
| 101 | +} | |
| 102 | + | |
| 103 | +function setTableSearchDetails($tableSearchDetails, dataDetails){ | |
| 104 | + $j('<caption />').html('<strong>Reserva exemplares</strong>').appendTo($tableSearchDetails); | |
| 105 | + | |
| 106 | + //set headers table | |
| 107 | + var $linha = $j('<tr />'); | |
| 108 | + $j('<th />').html('Cliente').appendTo($linha); | |
| 109 | + $j('<th />').html('Obra').appendTo($linha); | |
| 110 | + $j('<th />').html('Biblioteca').appendTo($linha); | |
| 111 | + $j('<th />').html('Escola').appendTo($linha); | |
| 112 | + | |
| 113 | + $linha.appendTo($tableSearchDetails); | |
| 114 | + | |
| 115 | + var $linha = $j('<tr />').addClass('even'); | |
| 116 | + | |
| 117 | + $j('<td />').html($j('#nome_cliente').val()).appendTo($linha); | |
| 118 | + $j('<td />').html($j('#titulo_obra').val()).appendTo($linha); | |
| 119 | + | |
| 120 | + //field biblioteca pode ser diferente de select caso usuario comum | |
| 121 | + var $htmlBibliotecaField = $j('#ref_cod_biblioteca').children("[selected='selected']").html() || | |
| 122 | + $j('#tr_nm_biblioteca span:last').html(); | |
| 123 | + $j('<td />').html(safeToUpperCase($htmlBibliotecaField)).appendTo($linha); | |
| 124 | + | |
| 125 | + //field escola pode ser diferente de select caso usuario comum | |
| 126 | + var $htmlEscolaField = $j('#ref_cod_escola').children("[selected='selected']").html() || | |
| 127 | + $j('#tr_nm_escola span:last').html(); | |
| 128 | + $j('<td />').html(safeToUpperCase($htmlEscolaField)).appendTo($linha); | |
| 129 | + | |
| 130 | + $linha.appendTo($tableSearchDetails); | |
| 131 | + $tableSearchDetails.show(); | |
| 132 | + | |
| 133 | + $tableSearchDetails.data('details', dataDetails); | |
| 134 | +} | |
| 135 | + | |
| 136 | + | |
| 137 | +function handleSearch($resultTable, dataResponse) { | |
| 138 | + var $linha = $j('<tr />'); | |
| 139 | + $j('<th />').html('Selecionar').addClass('center').appendTo($linha); | |
| 140 | + $j('<th />').html('Id').addClass('center').appendTo($linha); | |
| 141 | + $j('<th />').html('Situação').addClass('center').appendTo($linha); | |
| 142 | + $j('<th />').html('Cliente').appendTo($linha); | |
| 143 | + $j('<th />').html('Data').addClass('center').appendTo($linha); | |
| 144 | + $j('<th />').html('Data prevista disponível').addClass('center').appendTo($linha); | |
| 145 | + $j('<th />').html('Ação').addClass('center').appendTo($linha); | |
| 146 | + $linha.appendTo($resultTable); | |
| 147 | + | |
| 148 | + //set rows | |
| 149 | + $j.each(dataResponse[RESOURCES_NAME], function(index, value){ | |
| 150 | + | |
| 151 | + var $checkbox = $j('<input />') | |
| 152 | + .attr('type', 'checkbox') | |
| 153 | + .attr('name', 'reservar-exempar') | |
| 154 | + .attr('value', 'sim') | |
| 155 | + .attr('id', 'exemplar-' + value.id) | |
| 156 | + .attr('class', 'exemplar disable-on-apply-changes') | |
| 157 | + .data('exemplar_id', value.id); | |
| 158 | + | |
| 159 | + var situacoesReservaPermitida = ['disponivel', 'emprestado', 'reservado', 'emprestado_e_reservado']; | |
| 160 | + | |
| 161 | + if ($j.inArray(value.situacao.flag, situacoesReservaPermitida) < 0) | |
| 162 | + $checkbox.attr('disabled', 'disabled').removeClass('disable-on-apply-changes'); | |
| 163 | + | |
| 164 | + var $linha = $j('<tr />'); | |
| 165 | + $j('<td />').html($checkbox).addClass('center').appendTo($linha); | |
| 166 | + $j('<td />').html(value.id).addClass('center').appendTo($linha); | |
| 167 | + | |
| 168 | + var $colSituacoes = $j('<td />').attr('id', 'situacoes-' + value.id).addClass('situacoes center'); | |
| 169 | + var $colClientes = $j('<td />').attr('id', 'clientes-' + value.id); | |
| 170 | + var $colDatas = $j('<td />').attr('id', 'datas-' + value.id).addClass('center'); | |
| 171 | + var $colDatasPrevistaDisponivel = $j('<td />').attr('id', 'datas-prevista-disponivel-' + value.id).addClass('center'); | |
| 172 | + var $colAcoes = $j('<td />').attr('id', 'acoes-' + value.id).addClass('center'); | |
| 173 | + | |
| 174 | + $colSituacoes.appendTo($linha); | |
| 175 | + $colClientes.appendTo($linha); | |
| 176 | + $colDatas.appendTo($linha); | |
| 177 | + $colDatasPrevistaDisponivel.appendTo($linha); | |
| 178 | + $colAcoes.appendTo($linha); | |
| 179 | + | |
| 180 | + $linha.appendTo($resultTable); | |
| 181 | + updateResourceRow(value); | |
| 182 | + });// each | |
| 183 | + | |
| 184 | + $resultTable.find('tr:even').addClass('even'); | |
| 185 | + $resultTable.addClass('styled').find('checkbox:first').focus(); | |
| 186 | + | |
| 187 | + var $checkboxes = $resultTable.find("input[type='checkbox']"); | |
| 188 | + $checkboxes.change(function(){ | |
| 189 | + $checkboxes.not(this).removeAttr('checked'); | |
| 190 | + }); | |
| 191 | +} | |
| 192 | + | |
| 193 | + | |
| 194 | +function updateResourceRow(exemplar){ | |
| 195 | + var $colSituacoes = $j('#situacoes-' + exemplar.id).html(''); | |
| 196 | + var $colClientes = $j('#clientes-' + exemplar.id).html(''); | |
| 197 | + var $colDatas = $j('#datas-' + exemplar.id).html(''); | |
| 198 | + var $colDatasPrevistaDisponivel = $j('#datas-prevista-disponivel-' + exemplar.id).html(''); | |
| 199 | + var $colAcoes = $j('#acoes-' + exemplar.id).html(''); | |
| 200 | + | |
| 201 | + if ($j.isArray(exemplar.pendencias)) { | |
| 202 | + $j.each(exemplar.pendencias, function(index, value){ | |
| 203 | + $j('<p />').html(value.situacao.label || '-').appendTo($colSituacoes); | |
| 204 | + $j('<p />').html(value.nome_cliente || '-').appendTo($colClientes); | |
| 205 | + $j('<p />').html(value.data || '-').appendTo($colDatas); | |
| 206 | + $j('<p />').html(value.data_prevista_disponivel || '-').appendTo($colDatasPrevistaDisponivel); | |
| 207 | + | |
| 208 | + if (value.situacao.flag == 'reservado' && value.cliente && value.cliente.id == $j('#ref_cod_cliente').val()) { | |
| 209 | + var $linkToDelete = $j("<a href='#' class='disable-on-apply-changes'>Cancelar reserva</a>").click(onClickCancelEvent).data('exemplar_id', exemplar.id).data('reserva_id', value.reserva_id); | |
| 210 | + $j('<p />').html($linkToDelete).appendTo($colAcoes); | |
| 211 | + } | |
| 212 | + else | |
| 213 | + $j('<p />').html('-').appendTo($colAcoes); | |
| 214 | + }); | |
| 215 | + | |
| 216 | + if (exemplar.pendencias.length < 1) | |
| 217 | + $j('<p />').html(exemplar.situacao.label || '-').appendTo($colSituacoes); | |
| 218 | + } | |
| 219 | + | |
| 220 | + $colSituacoes.data('situacao', exemplar.situacao_exemplar); | |
| 221 | +} | ... | ... |
| ... | ... | @@ -0,0 +1,96 @@ |
| 1 | +<?php | |
| 2 | + | |
| 3 | +#error_reporting(E_ALL); | |
| 4 | +#ini_set("display_errors", 1); | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * i-Educar - Sistema de gestão escolar | |
| 8 | + * | |
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
| 10 | + * <ctima@itajai.sc.gov.br> | |
| 11 | + * | |
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
| 15 | + * qualquer versão posterior. | |
| 16 | + * | |
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
| 20 | + * do GNU para mais detalhes. | |
| 21 | + * | |
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 25 | + * | |
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
| 27 | + * @category i-Educar | |
| 28 | + * @license @@license@@ | |
| 29 | + * @package ComponenteCurricular | |
| 30 | + * @subpackage Modules | |
| 31 | + * @since Arquivo disponível desde a versão 1.1.0 | |
| 32 | + * @version $Id$ | |
| 33 | + */ | |
| 34 | + | |
| 35 | +require_once 'CoreExt/Entity.php'; | |
| 36 | +require_once 'App/Model/IedFinder.php'; | |
| 37 | +require_once 'CoreExt/Validate/Email.php'; | |
| 38 | + | |
| 39 | +/** | |
| 40 | + * ComponenteCurricular_Model_Componente class. | |
| 41 | + * | |
| 42 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
| 43 | + * @category i-Educar | |
| 44 | + * @license @@license@@ | |
| 45 | + * @package ComponenteCurricular | |
| 46 | + * @subpackage Modules | |
| 47 | + * @since Classe disponível desde a versão 1.1.0 | |
| 48 | + * @version @@package_version@@ | |
| 49 | + */ | |
| 50 | +class Biblioteca_Model_TipoExemplar extends CoreExt_Entity | |
| 51 | +{ | |
| 52 | + protected $_data = array( | |
| 53 | + 'cod_exemplar_tipo' => NULL, | |
| 54 | + 'ref_cod_biblioteca' => NULL, | |
| 55 | + 'ref_usuario_exc' => NULL, | |
| 56 | + 'ref_usuario_cad' => NULL, | |
| 57 | + 'nm_tipo' => NULL, | |
| 58 | + 'descricao' => NULL, | |
| 59 | + 'data_cadastro' => NULL, | |
| 60 | + 'data_exclusao' => NULL, | |
| 61 | + 'ativo' => NULL | |
| 62 | + ); | |
| 63 | + | |
| 64 | + | |
| 65 | + protected $_dataTypes = array( | |
| 66 | + 'nm_tipo' => 'string' | |
| 67 | + ); | |
| 68 | + | |
| 69 | + | |
| 70 | + protected $_references = array( | |
| 71 | + ); | |
| 72 | + | |
| 73 | + | |
| 74 | + public function getDataMapper() | |
| 75 | + { | |
| 76 | + if (is_null($this->_dataMapper)) { | |
| 77 | + require_once 'Biblioteca/Model/TipoExemplarDataMapper.php'; | |
| 78 | + $this->setDataMapper(new Biblioteca_Model_TipoExemplarDataMapper()); | |
| 79 | + } | |
| 80 | + return parent::getDataMapper(); | |
| 81 | + } | |
| 82 | + | |
| 83 | + | |
| 84 | + public function getDefaultValidatorCollection() | |
| 85 | + { | |
| 86 | + return array(); | |
| 87 | + } | |
| 88 | + | |
| 89 | + | |
| 90 | + protected function _createIdentityField() | |
| 91 | + { | |
| 92 | + $id = array('cod_exemplar_tipo' => NULL); | |
| 93 | + $this->_data = array_merge($id, $this->_data); | |
| 94 | + return $this; | |
| 95 | + } | |
| 96 | +} | ... | ... |
ieducar/modules/Biblioteca/Model/TipoExemplarDataMapper.php
0 → 100644
| ... | ... | @@ -0,0 +1,79 @@ |
| 1 | +<?php | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * i-Educar - Sistema de gestão escolar | |
| 5 | + * | |
| 6 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
| 7 | + * <ctima@itajai.sc.gov.br> | |
| 8 | + * | |
| 9 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
| 10 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
| 11 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
| 12 | + * qualquer versão posterior. | |
| 13 | + * | |
| 14 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
| 15 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
| 16 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
| 17 | + * do GNU para mais detalhes. | |
| 18 | + * | |
| 19 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
| 20 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
| 21 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 22 | + * | |
| 23 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
| 24 | + * @category i-Educar | |
| 25 | + * @license @@license@@ | |
| 26 | + * @package Usuario | |
| 27 | + * @subpackage Modules | |
| 28 | + * @since Arquivo disponível desde a versão 1.1.0 | |
| 29 | + * @version $Id$ | |
| 30 | + */ | |
| 31 | + | |
| 32 | +require_once 'CoreExt/DataMapper.php'; | |
| 33 | +require_once 'Biblioteca/Model/TipoExemplar.php'; | |
| 34 | + | |
| 35 | +/** | |
| 36 | + * Usuario_Model_TipoExemplarDataMapper class. | |
| 37 | + * | |
| 38 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
| 39 | + * @category i-Educar | |
| 40 | + * @license @@license@@ | |
| 41 | + * @package Usuario | |
| 42 | + * @subpackage Modules | |
| 43 | + * @since Classe disponível desde a versão 1.1.0 | |
| 44 | + * @version @@package_version@@ | |
| 45 | + */ | |
| 46 | +class Biblioteca_Model_TipoExemplarDataMapper extends CoreExt_DataMapper | |
| 47 | +{ | |
| 48 | + protected $_entityClass = 'Biblioteca_Model_TipoExemplar'; | |
| 49 | + protected $_tableName = 'exemplar_tipo'; | |
| 50 | + protected $_tableSchema = 'pmieducar'; | |
| 51 | + | |
| 52 | + | |
| 53 | + protected $_attributeMap = array( | |
| 54 | + 'cod_exemplar_tipo' => 'cod_exemplar_tipo', | |
| 55 | + 'ref_cod_biblioteca' => 'ref_cod_biblioteca', | |
| 56 | + 'ref_usuario_exc' => 'ref_usuario_exc', | |
| 57 | + 'ref_usuario_cad' => 'ref_usuario_cad', | |
| 58 | + 'nm_tipo' => 'nm_tipo', | |
| 59 | + 'descricao' => 'descricao', | |
| 60 | + 'data_cadastro' => 'data_cadastro', | |
| 61 | + 'data_exclusao' => 'data_exclusao', | |
| 62 | + 'ativo' => 'ativo' | |
| 63 | + ); | |
| 64 | + | |
| 65 | + | |
| 66 | + protected $_notPersistable = array(); | |
| 67 | + | |
| 68 | + | |
| 69 | + protected $_primaryKey = array('cod_exemplar_tipo'); | |
| 70 | + | |
| 71 | + | |
| 72 | + protected function _getFindStatment($pkey) | |
| 73 | + { | |
| 74 | + if (!is_array($pkey)) | |
| 75 | + $pkey = array("cod_exemplar_tipo" => $pkey); | |
| 76 | + | |
| 77 | + return parent::_getFindStatment($pkey); | |
| 78 | + } | |
| 79 | +} | ... | ... |
ieducar/modules/Biblioteca/Views/EmprestimoApiController.php
0 → 100644
| ... | ... | @@ -0,0 +1,640 @@ |
| 1 | +<?php | |
| 2 | + | |
| 3 | +#error_reporting(E_ALL); | |
| 4 | +#ini_set("display_errors", 1); | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * i-Educar - Sistema de gestão escolar | |
| 8 | + * | |
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
| 10 | + * <ctima@itajai.sc.gov.br> | |
| 11 | + * | |
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
| 15 | + * qualquer versão posterior. | |
| 16 | + * | |
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
| 20 | + * do GNU para mais detalhes. | |
| 21 | + * | |
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 25 | + * | |
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
| 27 | + * @category i-Educar | |
| 28 | + * @license @@license@@ | |
| 29 | + * @package Biblioteca | |
| 30 | + * @subpackage Modules | |
| 31 | + * @since Arquivo disponível desde a versão ? | |
| 32 | + * @version $Id$ | |
| 33 | + */ | |
| 34 | + | |
| 35 | +require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | |
| 36 | +require_once 'include/pmieducar/clsPmieducarExemplar.inc.php'; | |
| 37 | +require_once 'lib/Portabilis/Array/Utils.php'; | |
| 38 | + | |
| 39 | +class EmprestimoApiController extends ApiCoreController | |
| 40 | +{ | |
| 41 | + protected $_nivelAcessoOption = App_Model_NivelAcesso::SOMENTE_BIBLIOTECA; | |
| 42 | + | |
| 43 | + // validadores regras negócio | |
| 44 | + | |
| 45 | + protected function validatesExistenceOfExemplar() { | |
| 46 | + $valid = true; | |
| 47 | + | |
| 48 | + $exemplares = $this->loadExemplar($reload = true); | |
| 49 | + | |
| 50 | + if (! is_array($exemplares) || count($exemplares) < 1) { | |
| 51 | + $id = $this->getRequest()->exemplar_id; | |
| 52 | + $tombo = $this->getRequest()->tombo_exemplar; | |
| 53 | + | |
| 54 | + $this->messenger->append("Aparentemente não existe um exemplar com id $id e/ou tombo $tombo, para a biblioteca informada."); | |
| 55 | + $valid = false; | |
| 56 | + } | |
| 57 | + | |
| 58 | + return $valid; | |
| 59 | + } | |
| 60 | + | |
| 61 | + | |
| 62 | + protected function validatesExistenceOfCliente() { | |
| 63 | + $valid = true; | |
| 64 | + | |
| 65 | + if (! $this->loadCliente()) { | |
| 66 | + $this->messenger->append("Não existe um cliente com id '{$this->getRequest()->cliente_id}'."); | |
| 67 | + $valid = false; | |
| 68 | + } | |
| 69 | + | |
| 70 | + return $valid; | |
| 71 | + } | |
| 72 | + | |
| 73 | + | |
| 74 | + protected function validatesClienteIsNotSuspenso() { | |
| 75 | + $cliente = $this->loadCliente(); | |
| 76 | + | |
| 77 | + if($cliente['suspenso']) { | |
| 78 | + $this->messenger->append("Operação não pode ser realizada, pois o cliente esta suspenso.", 'error'); | |
| 79 | + return false; | |
| 80 | + } | |
| 81 | + | |
| 82 | + return true; | |
| 83 | + } | |
| 84 | + | |
| 85 | + | |
| 86 | + protected function validatesSituacaoExemplarIsIn($expectedSituacoes) { | |
| 87 | + if (! is_array($expectedSituacoes)) | |
| 88 | + $expectedSituacoes = array($expectedSituacoes); | |
| 89 | + | |
| 90 | + $situacao = $this->getSituacaoExemplar(); | |
| 91 | + $situacao = $situacao['flag']; | |
| 92 | + $msg = "Operação não realizada, pois a situação atual do exemplar é $situacao quando deveria ser " . implode(' ou ', $expectedSituacoes) . "."; | |
| 93 | + | |
| 94 | + return $this->validator->validatesValueInSetOf($situacao, $expectedSituacoes, 'situação', false, $msg); | |
| 95 | + } | |
| 96 | + | |
| 97 | + | |
| 98 | + protected function canAcceptRequest() { | |
| 99 | + return parent::canAcceptRequest() | |
| 100 | + | |
| 101 | + && $this->validatesPresenceOf(array('instituicao_id', | |
| 102 | + 'escola_id', | |
| 103 | + 'biblioteca_id', | |
| 104 | + 'cliente_id', | |
| 105 | + 'tombo_exemplar')) | |
| 106 | + | |
| 107 | + && $this->validatesIsNumeric('tombo_exemplar') | |
| 108 | + && $this->validatesExistenceOfExemplar() | |
| 109 | + && $this->validatesExistenceOfCliente(); | |
| 110 | + } | |
| 111 | + | |
| 112 | + | |
| 113 | + protected function canPostEmprestimo() { | |
| 114 | + return $this->validatesPresenceOf(array('exemplar_id')) | |
| 115 | + && $this->validatesExistenceOfExemplar() | |
| 116 | + && $this->validatesClienteIsNotSuspenso() | |
| 117 | + && $this->validatesSituacaoExemplarIsIn('disponivel'); | |
| 118 | + | |
| 119 | + /* | |
| 120 | + #TODO validar: | |
| 121 | + qtd emprestimos em aberto do cliente <= limite biblioteca | |
| 122 | + valor R$ multas em aberto do cliente <= limite biblioteca | |
| 123 | + | |
| 124 | + não existe outro exemplar mesma obra emprestado para cliente | |
| 125 | + validates situacao exemplar is disponivel or is reservado cliente | |
| 126 | + */ | |
| 127 | + } | |
| 128 | + | |
| 129 | + | |
| 130 | + protected function canPostDevolucao() { | |
| 131 | + return $this->validatesPresenceOf(array('exemplar_id')) | |
| 132 | + && $this->validatesExistenceOfExemplar() | |
| 133 | + && $this->validatesSituacaoExemplarIsIn(array('emprestado', 'emprestado_e_reservado')); | |
| 134 | + } | |
| 135 | + | |
| 136 | + | |
| 137 | + /* metódos auxiliares resposta operação / recurso | |
| 138 | + metódos iniciados com load consultam informação no banco de dados | |
| 139 | + metódos iniciados com get consultam informação em objetos | |
| 140 | + */ | |
| 141 | + | |
| 142 | + protected function loadCliente($id = null) { | |
| 143 | + if (! $id) | |
| 144 | + $id = $this->getRequest()->cliente_id; | |
| 145 | + | |
| 146 | + // load cliente | |
| 147 | + $cliente = new clsPmieducarCliente($id); | |
| 148 | + $cliente = $cliente->detalhe(); | |
| 149 | + | |
| 150 | + if ($cliente) { | |
| 151 | + $cliente = Portabilis_Array_Utils::filter($cliente, array('cod_cliente' => 'id', | |
| 152 | + 'ref_idpes' => 'pessoa_id')); | |
| 153 | + | |
| 154 | + // load pessoa | |
| 155 | + $pessoa = new clsPessoa_($cliente['pessoa_id']); | |
| 156 | + $pessoa = $pessoa->detalhe(); | |
| 157 | + $cliente['nome'] = $this->toUtf8($pessoa["nome"]); | |
| 158 | + | |
| 159 | + // load suspensao | |
| 160 | + $sql = "select 1 from pmieducar.cliente_suspensao where ref_cod_cliente = $1 and data_liberacao is null and data_suspensao + (dias||' day')::interval >= now()"; | |
| 161 | + $suspenso = $this->fetchPreparedQuery($sql, $params = array($id), true, 'first-field'); | |
| 162 | + | |
| 163 | + $cliente['suspenso'] = $suspenso == '1'; | |
| 164 | + } | |
| 165 | + | |
| 166 | + return $cliente; | |
| 167 | + } | |
| 168 | + | |
| 169 | + | |
| 170 | + protected function loadQtdDiasEmprestimoForExemplar($exemplar = null) { | |
| 171 | + $acervo = $this->loadAcervo($exemplar['acervo']['id']); | |
| 172 | + $exemplarTipoId = $acervo['exemplar_tipo_id']; | |
| 173 | + | |
| 174 | + // obtem id tipo de cliente | |
| 175 | + $clienteTipoCliente = new clsPmieducarClienteTipoCliente(); | |
| 176 | + $clienteTipoCliente = $clienteTipoCliente->lista(null, | |
| 177 | + $this->getRequest()->cliente_id, | |
| 178 | + null, | |
| 179 | + null, | |
| 180 | + null, | |
| 181 | + null, | |
| 182 | + null, | |
| 183 | + null, | |
| 184 | + $this->getRequest()->biblioteca_id); | |
| 185 | + | |
| 186 | + $clienteTipoId = $clienteTipoCliente[0]['ref_cod_cliente_tipo']; | |
| 187 | + | |
| 188 | + // obtem quantidade dias emprestimo | |
| 189 | + $clienteTipoExemplarTipo = new clsPmieducarClienteTipoExemplarTipo($clienteTipoId, $exemplarTipoId); | |
| 190 | + $clienteTipoExemplarTipo = $clienteTipoExemplarTipo->detalhe(); | |
| 191 | + | |
| 192 | + if (! $clienteTipoExemplarTipo || ! is_numeric($clienteTipoExemplarTipo["dias_emprestimo"])) | |
| 193 | + throw new CoreExt_Exception("Aparentemente não foi definido a quantidade de dias de emprestimo para o tipo de cliente '$clienteTipoId' e tipo de exemplar '$exemplarTipoId'."); | |
| 194 | + | |
| 195 | + return $clienteTipoExemplarTipo["dias_emprestimo"]; | |
| 196 | + } | |
| 197 | + | |
| 198 | + | |
| 199 | + protected function getDataPrevistaDisponivelForExemplar($exemplar, $dataInicio, $format = 'd/m/Y') { | |
| 200 | + $qtdDiasEmprestimo = $this->loadQtdDiasEmprestimoForExemplar($exemplar); | |
| 201 | + | |
| 202 | + // reformada data dd/mm/aaaa => mm/dd/aaaa | |
| 203 | + $_format = explode('/', $format); | |
| 204 | + | |
| 205 | + if (count($_format) > 0 && $_format[0] == 'd') { | |
| 206 | + list($diaInicio, $mesInicio, $anoInicio) = explode("/", $dataInicio); | |
| 207 | + $dataInicio = "$mesInicio/$diaInicio/$anoInicio"; | |
| 208 | + } | |
| 209 | + | |
| 210 | + | |
| 211 | + // #TODO se data cair em feriado ou dia de não trabalho somar +1 dia ? | |
| 212 | + // soma dias emprestimo | |
| 213 | + $date = date($format, strtotime("+$qtdDiasEmprestimo days", strtotime($dataInicio))); | |
| 214 | + | |
| 215 | + return $date; | |
| 216 | + } | |
| 217 | + | |
| 218 | + | |
| 219 | + protected function loadReservasForExemplar($exemplar, $clienteId = null, $reload = false) { | |
| 220 | + if ($reload || ! isset($this->_reservas)) { | |
| 221 | + $reservas = new clsPmieducarReservas(); | |
| 222 | + $reservas = $reservas->lista(null, | |
| 223 | + null, | |
| 224 | + null, | |
| 225 | + $clienteId, | |
| 226 | + null, | |
| 227 | + null, | |
| 228 | + null, | |
| 229 | + null, | |
| 230 | + null, | |
| 231 | + null, | |
| 232 | + $exemplar['cod_exemplar'], | |
| 233 | + 1, | |
| 234 | + $this->getRequest()->biblioteca_id, | |
| 235 | + $this->getRequest()->instituicao_id, | |
| 236 | + $this->getRequest()->escola_id, | |
| 237 | + $data_retirada_null = true); | |
| 238 | + | |
| 239 | + if($reservas) { | |
| 240 | + $reservas = Portabilis_Array_Utils::filterSet($reservas, array('cod_reserva' => 'id', | |
| 241 | + 'data_reserva' => 'data', | |
| 242 | + 'ref_cod_cliente' => 'cliente_id', | |
| 243 | + 'data_prevista_disponivel')); | |
| 244 | + | |
| 245 | + // adicionada informaçoes adicionais a cada reserva | |
| 246 | + foreach($reservas as $index => $reserva) { | |
| 247 | + $cliente = $this->loadCliente($reserva["cliente_id"]); | |
| 248 | + | |
| 249 | + $reserva['cliente'] = $cliente; | |
| 250 | + $reserva['nome_cliente'] = $cliente['id'] . ' - ' . $cliente['nome']; | |
| 251 | + $reserva['data'] = date('d/m/Y', strtotime($reserva['data'])); | |
| 252 | + $reserva['situacao'] = $this->getSituacaoForFlag('reservado'); | |
| 253 | + | |
| 254 | + /* para o cliente da reserva: considera a data prevista disponivel gravada na reserva. | |
| 255 | + para outros considera a data prevista disponivel da reserva + a quantidade de dias de emprestimo do exemplar | |
| 256 | + */ | |
| 257 | + if ($this->getRequest()->cliente_id == $cliente['id']) | |
| 258 | + $reserva['data_prevista_disponivel'] = date('d/m/Y', strtotime($reserva['data_prevista_disponivel'])); | |
| 259 | + | |
| 260 | + else | |
| 261 | + $reserva['data_prevista_disponivel'] = $this->getDataPrevistaDisponivelForExemplar($exemplar, $reserva['data_prevista_disponivel'], 'd/m/Y'); | |
| 262 | + } //fim for each | |
| 263 | + } | |
| 264 | + | |
| 265 | + $this->_reservas = $reservas; | |
| 266 | + } | |
| 267 | + | |
| 268 | + return $this->_reservas; | |
| 269 | + } | |
| 270 | + | |
| 271 | + | |
| 272 | + protected function loadEmprestimoForExemplar($exemplar = null) { | |
| 273 | + if(is_null($exemplar)) | |
| 274 | + $exemplar = $this->loadExemplar(); | |
| 275 | + | |
| 276 | + $emprestimo = new clsPmieducarExemplarEmprestimo(); | |
| 277 | + | |
| 278 | + $emprestimo = $emprestimo->lista(null, | |
| 279 | + null, | |
| 280 | + null, | |
| 281 | + null, | |
| 282 | + $exemplar['id'], | |
| 283 | + null, | |
| 284 | + null, | |
| 285 | + null, | |
| 286 | + null, | |
| 287 | + null, | |
| 288 | + $devolvido = false, | |
| 289 | + $this->getRequest()->biblioteca_id, | |
| 290 | + null, | |
| 291 | + $this->getRequest()->instituicao_id, | |
| 292 | + $this->getRequest()->escola_id); | |
| 293 | + | |
| 294 | + if($emprestimo) { | |
| 295 | + $emprestimo = array_shift($emprestimo); | |
| 296 | + $emprestimo = Portabilis_Array_Utils::filter($emprestimo, array('cod_emprestimo' => 'id', | |
| 297 | + 'data_retirada' => 'data', | |
| 298 | + 'ref_cod_cliente' => 'cliente_id')); | |
| 299 | + // adiciona informações adicionais ao emprestimo | |
| 300 | + $cliente = $this->loadCliente($emprestimo["cliente_id"]); | |
| 301 | + | |
| 302 | + $emprestimo['cliente'] = $cliente; | |
| 303 | + $emprestimo['nome_cliente'] = $cliente['id'] . ' - ' . $cliente['nome']; | |
| 304 | + $emprestimo['situacao'] = $this->getSituacaoForFlag('emprestado'); | |
| 305 | + | |
| 306 | + $emprestimo['data'] = date('d/m/Y', strtotime($emprestimo['data'])); | |
| 307 | + $emprestimo['data_prevista_disponivel'] = $this->getDataPrevistaDisponivelForExemplar($exemplar, $emprestimo['data'], 'd/m/Y'); | |
| 308 | + } | |
| 309 | + | |
| 310 | + return $emprestimo; | |
| 311 | + } | |
| 312 | + | |
| 313 | + | |
| 314 | + protected function existsReservaForExemplar($exemplar = null, $clienteId = null) { | |
| 315 | + $reservas = $this->loadReservasForExemplar($exemplar, $clienteId, $reload = true); | |
| 316 | + return is_array($reservas) && count($reservas) > 0; | |
| 317 | + } | |
| 318 | + | |
| 319 | + | |
| 320 | + protected function getSituacaoForFlag($flag) { | |
| 321 | + $situacoes = array( | |
| 322 | + 'indisponivel' => array('flag' => 'indisponivel', 'label' => 'Indisponível'), | |
| 323 | + 'disponivel' => array('flag' => 'disponivel' , 'label' => 'Disponível' ), | |
| 324 | + 'emprestado' => array('flag' => 'emprestado' , 'label' => 'Emprestado' ), | |
| 325 | + 'reservado' => array('flag' => 'reservado' , 'label' => 'Reservado' ), | |
| 326 | + 'emprestado_e_reservado' => array('flag' => 'emprestado_e_reservado', | |
| 327 | + 'label' => 'Emprestado e reservado' ), | |
| 328 | + 'invalida' => array('flag' => 'invalida' , 'label' => 'Inválida' ) | |
| 329 | + ); | |
| 330 | + | |
| 331 | + return $situacoes[$flag]; | |
| 332 | + } | |
| 333 | + | |
| 334 | + | |
| 335 | + protected function loadSituacaoForExemplar($exemplar) { | |
| 336 | + | |
| 337 | + $situacao = new clsPmieducarSituacao($exemplar["situacao_id"]); | |
| 338 | + $situacao = $situacao->detalhe(); | |
| 339 | + | |
| 340 | + $reservado = $this->existsReservaForExemplar($exemplar); | |
| 341 | + $emprestado = $situacao["situacao_emprestada"] == 1; | |
| 342 | + | |
| 343 | + $situacaoPermiteEmprestimo = $situacao["permite_emprestimo"] == 2; | |
| 344 | + $exemplarPermiteEmprestimo = $exemplar["permite_emprestimo"] == 2; | |
| 345 | + | |
| 346 | + if ($emprestado && $reservado) | |
| 347 | + $flagSituacaoExemplar = 'emprestado_e_reservado'; | |
| 348 | + elseif ($emprestado) | |
| 349 | + $flagSituacaoExemplar = 'emprestado'; | |
| 350 | + elseif ($reservado) | |
| 351 | + $flagSituacaoExemplar = 'reservado'; | |
| 352 | + elseif ($situacaoPermiteEmprestimo && $exemplarPermiteEmprestimo) | |
| 353 | + $flagSituacaoExemplar = 'disponivel'; | |
| 354 | + elseif (! $situacaoPermiteEmprestimo || ! $exemplarPermiteEmprestimo) | |
| 355 | + $flagSituacaoExemplar = 'indisponivel'; | |
| 356 | + else | |
| 357 | + $flagSituacaoExemplar = 'invalida'; | |
| 358 | + | |
| 359 | + return $this->getSituacaoForFlag($flagSituacaoExemplar); | |
| 360 | + } | |
| 361 | + | |
| 362 | + | |
| 363 | + protected function getSituacaoExemplar($exemplar = null) { | |
| 364 | + if (is_null($exemplar)) | |
| 365 | + $exemplar = $this->loadExemplar(); | |
| 366 | + | |
| 367 | + return $exemplar['situacao']; | |
| 368 | + } | |
| 369 | + | |
| 370 | + | |
| 371 | + protected function getPendenciasForExemplar($exemplar) { | |
| 372 | + if (! isset($exemplar['situacao'])) | |
| 373 | + throw new CoreExt_Exception("Exemplar deve possuir uma chave 'situacao' para getPendenciasForExemplar."); | |
| 374 | + | |
| 375 | + $situacaoExemplar = $exemplar['situacao']; | |
| 376 | + $pendencias = array(); | |
| 377 | + | |
| 378 | + // get emprestimo | |
| 379 | + if (strpos($situacaoExemplar['flag'], 'emprestado') > -1) { | |
| 380 | + $emprestimo = $this->loadEmprestimoForExemplar($exemplar); | |
| 381 | + | |
| 382 | + if($emprestimo != false) | |
| 383 | + $pendencias[] = $emprestimo; | |
| 384 | + } | |
| 385 | + | |
| 386 | + // get reservas | |
| 387 | + if (strpos($situacaoExemplar['flag'], 'reservado') > -1) { | |
| 388 | + $reservas = $this->loadReservasForExemplar($exemplar); | |
| 389 | + | |
| 390 | + if ($reservas != false) | |
| 391 | + $pendencias = array_merge($pendencias, $reservas); | |
| 392 | + } | |
| 393 | + | |
| 394 | + return $pendencias; | |
| 395 | + } | |
| 396 | + | |
| 397 | + | |
| 398 | + protected function loadAcervo($id = '', $reload = false) { | |
| 399 | + if (empty($id)) | |
| 400 | + $id = $this->getRequest()->acervo_id; | |
| 401 | + | |
| 402 | + if ($reload || ! isset($this->_acervos)) | |
| 403 | + $this->_acervos = array(); | |
| 404 | + | |
| 405 | + if (! isset($this->_acervos[$id])) { | |
| 406 | + $acervo = new clsPmieducarAcervo($id); | |
| 407 | + $acervo = $acervo->detalhe(); | |
| 408 | + | |
| 409 | + if ($acervo) { | |
| 410 | + $acervo = Portabilis_Array_Utils::filter($acervo, array('cod_acervo' => 'id', | |
| 411 | + 'ref_cod_exemplar_tipo' => 'exemplar_tipo_id', | |
| 412 | + 'ref_cod_acervo' => 'acervo_referencia_id', | |
| 413 | + 'ref_cod_acervo_colecao' => 'colecao_id', | |
| 414 | + 'ref_cod_acervo_idioma' => 'idioma_id', | |
| 415 | + 'ref_cod_acervo_editora' => 'editora_id', | |
| 416 | + 'ref_cod_biblioteca' => 'biblioteca_id', | |
| 417 | + 'titulo', | |
| 418 | + 'sub_titulo', | |
| 419 | + 'cdu', | |
| 420 | + 'cutter', | |
| 421 | + 'volume', | |
| 422 | + 'num_edicao', | |
| 423 | + 'ano', | |
| 424 | + 'num_paginas', | |
| 425 | + 'isbn', | |
| 426 | + 'data_cadastro')); | |
| 427 | + } | |
| 428 | + | |
| 429 | + | |
| 430 | + $this->_acervos[$id] = $acervo; | |
| 431 | + } | |
| 432 | + | |
| 433 | + return $this->_acervos[$id]; | |
| 434 | + } | |
| 435 | + | |
| 436 | + | |
| 437 | + protected function loadExemplares($reload = false, $id = null) { | |
| 438 | + if ($reload || ! isset($this->_exemplares)) { | |
| 439 | + $exemplares = new clsPmieducarExemplar(); | |
| 440 | + | |
| 441 | + // filtra por acervo_id e/ou tombo_exemplar (caso tenha recebido tais parametros) | |
| 442 | + $exemplares = $exemplares->lista($id, | |
| 443 | + null, | |
| 444 | + null, | |
| 445 | + $this->getRequest()->acervo_id, | |
| 446 | + null, | |
| 447 | + null, | |
| 448 | + null, | |
| 449 | + null, | |
| 450 | + null, | |
| 451 | + null, | |
| 452 | + null, | |
| 453 | + null, | |
| 454 | + null, | |
| 455 | + 1, | |
| 456 | + null, | |
| 457 | + null, | |
| 458 | + null, | |
| 459 | + null, | |
| 460 | + $this->getRequest()->biblioteca_id, | |
| 461 | + null, | |
| 462 | + $this->getRequest()->instituicao_id, | |
| 463 | + $this->getRequest()->escola_id, | |
| 464 | + $this->getRequest()->tombo_exemplar); | |
| 465 | + | |
| 466 | + if ($exemplares) { | |
| 467 | + $exemplares = Portabilis_Array_Utils::filterSet($exemplares, array('cod_exemplar' => 'id', | |
| 468 | + 'ref_cod_fonte' => 'fonte_id', | |
| 469 | + 'ref_cod_motivo_baixa' => 'motivo_baixa_id', | |
| 470 | + 'ref_cod_acervo' => 'acervo_id', | |
| 471 | + 'ref_cod_biblioteca' => 'biblioteca_id', | |
| 472 | + 'ref_cod_situacao' => 'situacao_id', | |
| 473 | + 'permite_emprestimo', | |
| 474 | + 'tombo')); | |
| 475 | + // adiciona situacao e pendencias de cada exemplar | |
| 476 | + foreach($exemplares as $index => $exemplar) { | |
| 477 | + $acervo = $this->loadAcervo($exemplar['acervo_id']); | |
| 478 | + $exemplares[$index]['acervo'] = array(); | |
| 479 | + $exemplares[$index]['acervo']['id'] = $exemplar['acervo_id']; | |
| 480 | + $exemplares[$index]['acervo']['titulo'] = $acervo['titulo']; | |
| 481 | + $exemplares[$index]['acervo']['exemplar_tipo_id'] = $acervo['exemplar_tipo_id']; | |
| 482 | + | |
| 483 | + $exemplares[$index]['exemplar_tipo_id'] = $acervo['exemplar_tipo_id']; | |
| 484 | + | |
| 485 | + $exemplares[$index]['situacao'] = $this->loadSituacaoForExemplar($exemplares[$index]); | |
| 486 | + $exemplares[$index]['pendencias'] = $this->getPendenciasForExemplar($exemplares[$index]); | |
| 487 | + } | |
| 488 | + } | |
| 489 | + | |
| 490 | + $this->_exemplares = $exemplares; | |
| 491 | + } | |
| 492 | + | |
| 493 | + return $this->_exemplares; | |
| 494 | + } | |
| 495 | + | |
| 496 | + | |
| 497 | + protected function loadExemplar($reload = false, $id = null) { | |
| 498 | + if (! $id) | |
| 499 | + $id = $this->getRequest()->exemplar_id; | |
| 500 | + | |
| 501 | + return array_shift($this->loadExemplares($reload, $id)); | |
| 502 | + } | |
| 503 | + | |
| 504 | + | |
| 505 | + /* metódos resposta operação / recurso | |
| 506 | + metódos nomeados no padrão operaçãoRecurso */ | |
| 507 | + | |
| 508 | + protected function getExemplares() { | |
| 509 | + $this->appendResponse('exemplares', $this->loadExemplares($reload = true)); | |
| 510 | + } | |
| 511 | + | |
| 512 | + | |
| 513 | + protected function loadSituacaoExemplar($permiteEmprestimo = true, $padrao = true, $emprestada = false){ | |
| 514 | + $permiteEmprestimo = $permiteEmprestimo == true ? 2 : 1; | |
| 515 | + $emprestada = $emprestada == true ? 1 : 0; | |
| 516 | + | |
| 517 | + if (! is_null($padrao)) | |
| 518 | + $padrao = $padrao == true ? 1 : 0; | |
| 519 | + | |
| 520 | + $situacao = new clsPmieducarSituacao(); | |
| 521 | + $situacao = $situacao->lista(null, | |
| 522 | + null, | |
| 523 | + null, | |
| 524 | + null, | |
| 525 | + $permiteEmprestimo, | |
| 526 | + null, | |
| 527 | + $padrao, | |
| 528 | + $emprestada, | |
| 529 | + null, | |
| 530 | + null, | |
| 531 | + null, | |
| 532 | + null, | |
| 533 | + 1, | |
| 534 | + $this->getRequest()->biblioteca_id, | |
| 535 | + $this->getRequest()->instituicao_id, | |
| 536 | + $this->getRequest()->escola_id); | |
| 537 | + | |
| 538 | + if ($situacao) { | |
| 539 | + $situacao = Portabilis_Array_Utils::filter($situacao[0], array('cod_situacao' => 'id', | |
| 540 | + 'ref_cod_biblioteca' => 'biblioteca_id', | |
| 541 | + 'nm_situacao' => 'label', | |
| 542 | + 'situacao_padrao' => 'padrao', | |
| 543 | + 'situacao_emprestada' => 'emprestada', | |
| 544 | + 'permite_emprestimo', | |
| 545 | + 'descricao')); | |
| 546 | + } | |
| 547 | + | |
| 548 | + return $situacao; | |
| 549 | + } | |
| 550 | + | |
| 551 | + | |
| 552 | + protected function updateSituacaoExemplar($newSituacao){ | |
| 553 | + if (! $newSituacao) | |
| 554 | + throw new CoreExt_Exception('$newSituacao não pode ser falso em updateSituacaoExemplar.'); | |
| 555 | + | |
| 556 | + $exemplar = new clsPmieducarExemplar(); | |
| 557 | + $exemplar->cod_exemplar = $this->getRequest()->exemplar_id; | |
| 558 | + $exemplar->ref_cod_acervo = $this->getRequest()->acervo_id; | |
| 559 | + $exemplar->ref_cod_situacao = $newSituacao['id']; | |
| 560 | + $exemplar->ref_usuario_exc = $this->getSession()->id_pessoa; | |
| 561 | + | |
| 562 | + return $exemplar->edita(); | |
| 563 | + } | |
| 564 | + | |
| 565 | + | |
| 566 | + protected function postEmprestimo() { | |
| 567 | + if ($this->canPostEmprestimo()) { | |
| 568 | + // altera situacao exemplar para emprestado | |
| 569 | + $situacaoEmprestimo = $this->loadSituacaoExemplar($permiteEmprestimo = false, $padrao = null, $emprestada = true); | |
| 570 | + | |
| 571 | + if($situacaoEmprestimo && ! $this->updateSituacaoExemplar($situacaoEmprestimo)) | |
| 572 | + $this->messenger->append("Aparentemente a situação do exemplar não foi alterada para emprestado.", 'error'); | |
| 573 | + elseif(! $situacaoEmprestimo) | |
| 574 | + $this->messenger->append("Não foi encontrado uma situação cadastrada para emprestimo.", 'error'); | |
| 575 | + | |
| 576 | + // grava emprestimo | |
| 577 | + if(! $this->messenger->hasMsgWithType('error')) { | |
| 578 | + $emprestimo = new clsPmieducarExemplarEmprestimo(); | |
| 579 | + $emprestimo->ref_usuario_cad = $this->getSession()->id_pessoa; | |
| 580 | + $emprestimo->ref_cod_cliente = $this->getRequest()->cliente_id; | |
| 581 | + $emprestimo->ref_cod_exemplar = $this->getRequest()->exemplar_id; | |
| 582 | + | |
| 583 | + if ($emprestimo->cadastra()) | |
| 584 | + $this->messenger->append("Emprestimo realizado com sucesso.", 'success'); | |
| 585 | + else | |
| 586 | + $this->messenger->append("Aparentemente o realizado não foi cadastrado, por favor, tente novamente.", 'error'); | |
| 587 | + } | |
| 588 | + } | |
| 589 | + | |
| 590 | + $this->appendResponse('exemplar', $this->loadExemplar($reload = true)); | |
| 591 | + } | |
| 592 | + | |
| 593 | + | |
| 594 | + protected function postDevolucao() { | |
| 595 | + | |
| 596 | + if ($this->canPostDevolucao()) { | |
| 597 | + // altera situacao exemplar para disponivel | |
| 598 | + $situacaoDisponivel = $this->loadSituacaoExemplar($permiteEmprestimo = true, $padrao = true, $emprestada = false); | |
| 599 | + | |
| 600 | + if($situacaoDisponivel && ! $this->updateSituacaoExemplar($situacaoDisponivel)) | |
| 601 | + $this->messenger->append("Aparentemente a situação do exemplar não foi alterada para disponivel.", 'error'); | |
| 602 | + elseif(! $situacaoDisponivel) | |
| 603 | + $this->messenger->append("Não foi encontrado uma situação padrão cadastrada para exemplar disponivel.", 'error'); | |
| 604 | + | |
| 605 | + // grava emprestimo | |
| 606 | + if(! $this->messenger->hasMsgWithType('error')) { | |
| 607 | + | |
| 608 | + $_emprestimo = $this->loadEmprestimoForExemplar(); | |
| 609 | + $emprestimo = new clsPmieducarExemplarEmprestimo(); | |
| 610 | + $emprestimo->cod_emprestimo = $_emprestimo['id']; | |
| 611 | + $emprestimo->ref_usuario_devolucao = $this->getSession()->id_pessoa; | |
| 612 | + $emprestimo->data_devolucao = date("Y-m-d"); | |
| 613 | + | |
| 614 | + // TODO calcular / setar valor multa (se) devolução atrasada? | |
| 615 | + | |
| 616 | + if ($emprestimo->edita()) | |
| 617 | + $this->messenger->append("Devolução realizada com sucesso.", 'success'); | |
| 618 | + else | |
| 619 | + $this->messenger->append("Aparentemente a devolução não foi cadastrada, por favor, tente novamente.", 'error'); | |
| 620 | + } | |
| 621 | + } | |
| 622 | + | |
| 623 | + $this->appendResponse('exemplar', $this->loadExemplar($reload = true)); | |
| 624 | + } | |
| 625 | + | |
| 626 | + | |
| 627 | + public function Gerar() { | |
| 628 | + if ($this->isRequestFor('get', 'exemplares')) | |
| 629 | + $this->getExemplares(); | |
| 630 | + | |
| 631 | + elseif ($this->isRequestFor('post', 'emprestimo')) | |
| 632 | + $this->postEmprestimo(); | |
| 633 | + | |
| 634 | + elseif ($this->isRequestFor('post', 'devolucao')) | |
| 635 | + $this->postDevolucao(); | |
| 636 | + | |
| 637 | + else | |
| 638 | + $this->notImplementedOperationError(); | |
| 639 | + } | |
| 640 | +} | ... | ... |
ieducar/modules/Biblioteca/Views/EmprestimoController.php
0 → 100644
| ... | ... | @@ -0,0 +1,58 @@ |
| 1 | +<?php | |
| 2 | + | |
| 3 | +#error_reporting(E_ALL); | |
| 4 | +#ini_set("display_errors", 1); | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * i-Educar - Sistema de gestão escolar | |
| 8 | + * | |
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
| 10 | + * <ctima@itajai.sc.gov.br> | |
| 11 | + * | |
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
| 15 | + * qualquer versão posterior. | |
| 16 | + * | |
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
| 20 | + * do GNU para mais detalhes. | |
| 21 | + * | |
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 25 | + * | |
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
| 27 | + * @category i-Educar | |
| 28 | + * @license @@license@@ | |
| 29 | + * @package Biblioteca | |
| 30 | + * @subpackage Modules | |
| 31 | + * @since Arquivo disponível desde a versão ? | |
| 32 | + * @version $Id$ | |
| 33 | + */ | |
| 34 | + | |
| 35 | +require_once 'Portabilis/Controller/Page/ListController.php'; | |
| 36 | + | |
| 37 | +class EmprestimoController extends Portabilis_Controller_Page_ListController | |
| 38 | +{ | |
| 39 | + protected $_dataMapper = ''; | |
| 40 | + protected $_titulo = 'Emprestimo'; | |
| 41 | + protected $_formMap = array(); | |
| 42 | + protected $_processoAp = 610; | |
| 43 | + | |
| 44 | + public function Gerar() { | |
| 45 | + // inputs | |
| 46 | + $this->inputsHelper()->dynamic('instituicao', array('id' => 'instituicao_id')); | |
| 47 | + $this->inputsHelper()->dynamic('escola', array('id' => 'escola_id')); | |
| 48 | + $this->inputsHelper()->dynamic('biblioteca', array('id' => 'biblioteca_id')); | |
| 49 | + $this->campoNumero('tombo_exemplar', 'Tombo exemplar', '', 13, 13, true); | |
| 50 | + | |
| 51 | + $helperOptions = array('hiddenInputOptions' => array('id' => 'cliente_id')); | |
| 52 | + $this->inputsHelper()->dynamic('bibliotecaPesquisaCliente', array(), $helperOptions); | |
| 53 | + | |
| 54 | + // assets | |
| 55 | + $this->loadResourceAssets($this->getDispatcher()); | |
| 56 | + } | |
| 57 | +} | |
| 58 | +?> | ... | ... |
ieducar/modules/Biblioteca/Views/ReservaApiController.php
0 → 100644
| ... | ... | @@ -0,0 +1,597 @@ |
| 1 | +<?php | |
| 2 | + | |
| 3 | +#error_reporting(E_ALL); | |
| 4 | +#ini_set("display_errors", 1); | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * i-Educar - Sistema de gestão escolar | |
| 8 | + * | |
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
| 10 | + * <ctima@itajai.sc.gov.br> | |
| 11 | + * | |
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
| 15 | + * qualquer versão posterior. | |
| 16 | + * | |
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
| 20 | + * do GNU para mais detalhes. | |
| 21 | + * | |
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 25 | + * | |
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
| 27 | + * @category i-Educar | |
| 28 | + * @license @@license@@ | |
| 29 | + * @package Biblioteca | |
| 30 | + * @subpackage Modules | |
| 31 | + * @since Arquivo disponível desde a versão ? | |
| 32 | + * @version $Id$ | |
| 33 | + */ | |
| 34 | + | |
| 35 | +require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | |
| 36 | +require_once 'include/pmieducar/clsPmieducarExemplar.inc.php'; | |
| 37 | + | |
| 38 | +// TODO migrar novo padrao api controller | |
| 39 | + | |
| 40 | +class ReservaApiController extends ApiCoreController | |
| 41 | +{ | |
| 42 | + protected $_nivelAcessoOption = App_Model_NivelAcesso::SOMENTE_BIBLIOTECA; | |
| 43 | + | |
| 44 | + // validadores especificos reserva | |
| 45 | + | |
| 46 | + protected function validatesPresenceOfRefCodInstituicao(){ | |
| 47 | + return $this->validator->validatesPresenceOf($this->getRequest()->ref_cod_instituicao, 'ref_cod_instituicao'); | |
| 48 | + } | |
| 49 | + | |
| 50 | + | |
| 51 | + protected function validatesPresenceOfRefCodEscola(){ | |
| 52 | + return $this->validator->validatesPresenceOf($this->getRequest()->ref_cod_escola, 'ref_cod_escola'); | |
| 53 | + } | |
| 54 | + | |
| 55 | + | |
| 56 | + protected function validatesPresenceOfRefCodBiblioteca(){ | |
| 57 | + return $this->validator->validatesPresenceOf($this->getRequest()->ref_cod_biblioteca, 'ref_cod_biblioteca'); | |
| 58 | + } | |
| 59 | + | |
| 60 | + | |
| 61 | + protected function validatesPresenceOfRefCodCliente(){ | |
| 62 | + return $this->validator->validatesPresenceOf($this->getRequest()->ref_cod_cliente, 'ref_cod_cliente'); | |
| 63 | + } | |
| 64 | + | |
| 65 | + | |
| 66 | + protected function validatesPresenceOfRefCodAcervo(){ | |
| 67 | + return $this->validator->validatesPresenceOf($this->getRequest()->ref_cod_acervo, 'ref_cod_acervo'); | |
| 68 | + } | |
| 69 | + | |
| 70 | + | |
| 71 | + protected function validatesPresenceOfExemplarId(){ | |
| 72 | + return $this->validator->validatesPresenceOf($this->getRequest()->exemplar_id, 'exemplar_id'); | |
| 73 | + } | |
| 74 | + | |
| 75 | + protected function validatesPresenceOfReservaId(){ | |
| 76 | + return $this->validator->validatesPresenceOf($this->getRequest()->reserva_id, 'reserva_id'); | |
| 77 | + } | |
| 78 | + | |
| 79 | + | |
| 80 | + // validações negócio | |
| 81 | + | |
| 82 | + protected function canAcceptRequest() { | |
| 83 | + return parent::canAcceptRequest() && | |
| 84 | + $this->validatesPresenceOfRefCodInstituicao() && | |
| 85 | + $this->validatesPresenceOfRefCodEscola() && | |
| 86 | + $this->validatesPresenceOfRefCodBiblioteca() && | |
| 87 | + $this->validatesPresenceOfRefCodCliente() && | |
| 88 | + $this->validatesPresenceOfRefCodAcervo(); | |
| 89 | + // TODO validar se cliente da biblioteca | |
| 90 | + } | |
| 91 | + | |
| 92 | + | |
| 93 | + protected function canPostReserva() { | |
| 94 | + return $this->validatesClienteIsNotSuspenso() && | |
| 95 | + $this->validatesPresenceOfExemplarId() && | |
| 96 | + | |
| 97 | + $this->validatesSituacaoExemplarIsIn(array('disponivel', | |
| 98 | + 'emprestado', | |
| 99 | + 'reservado', | |
| 100 | + 'emprestado_e_reservado')) && | |
| 101 | + | |
| 102 | + $this->validatesNotExistsReservaEmAbertoForCliente(); | |
| 103 | + | |
| 104 | + // TODO validar ? | |
| 105 | + // qtd reservas em aberto do cliente <= limite biblioteca | |
| 106 | + // valor R$ multas em aberto do cliente <= limite biblioteca | |
| 107 | + } | |
| 108 | + | |
| 109 | + | |
| 110 | + protected function canDeleteReserva() { | |
| 111 | + return $this->validatesPresenceOfExemplarId() && | |
| 112 | + $this->validatesPresenceOfReservaId() && | |
| 113 | + | |
| 114 | + $this->validatesSituacaoExemplarIsIn(array('reservado', | |
| 115 | + 'emprestado_e_reservado')) && | |
| 116 | + | |
| 117 | + $this->validatesExistsReservaEmAbertoForCliente(); | |
| 118 | + } | |
| 119 | + | |
| 120 | + | |
| 121 | + protected function validatesSituacaoExemplarIsIn($situacoes) { | |
| 122 | + if (! is_array($situacoes)) | |
| 123 | + $situacoes = array($situacoes); | |
| 124 | + | |
| 125 | + $situacaoAtual = $this->getSituacaoExemplar(); | |
| 126 | + $situacaoAtual = $situacaoAtual['flag']; | |
| 127 | + $msg = "Situação do exemplar deve estar em (" . implode(', ', $situacoes) . ") porem atualmente é $situacaoAtual."; | |
| 128 | + | |
| 129 | + return $this->validator->validatesValueInSetOf($situacaoAtual, $situacoes, 'situação', false, $msg); | |
| 130 | + } | |
| 131 | + | |
| 132 | + | |
| 133 | + protected function validatesClienteIsNotSuspenso() { | |
| 134 | + $cliente = $this->loadCliente(); | |
| 135 | + | |
| 136 | + if($cliente['suspenso']) { | |
| 137 | + $this->messenger->append("O cliente esta suspenso", 'error'); | |
| 138 | + return false; | |
| 139 | + } | |
| 140 | + | |
| 141 | + return true; | |
| 142 | + } | |
| 143 | + | |
| 144 | + | |
| 145 | + protected function validatesNotExistsReservaEmAbertoForCliente() { | |
| 146 | + if ($this->existsReservaEmAbertoForCliente()) { | |
| 147 | + $this->messenger->append("Este cliente já possui uma reserva em aberto para um exemplar desta obra.", 'error'); | |
| 148 | + return false; | |
| 149 | + } | |
| 150 | + | |
| 151 | + return true; | |
| 152 | + } | |
| 153 | + | |
| 154 | + | |
| 155 | + protected function validatesExistsReservaEmAbertoForCliente() { | |
| 156 | + if (! $this->existsReservaEmAbertoForCliente()) { | |
| 157 | + $this->messenger->append("O cliente não possui reserva em aberto para este exemplar.", 'error'); | |
| 158 | + return false; | |
| 159 | + } | |
| 160 | + | |
| 161 | + return true; | |
| 162 | + } | |
| 163 | + | |
| 164 | + | |
| 165 | + // subscreve metódo super classe | |
| 166 | + | |
| 167 | + protected function getAvailableOperationsForResources() { | |
| 168 | + return array('exemplares' => array('get'), | |
| 169 | + 'reserva' => array('post') | |
| 170 | + ); | |
| 171 | + } | |
| 172 | + | |
| 173 | + | |
| 174 | + /* metódos auxiliares resposta operação / recurso | |
| 175 | + metódos iniciados com load consultam informação no banco de dados | |
| 176 | + metódos iniciados com get consultam informação em objetos | |
| 177 | + */ | |
| 178 | + | |
| 179 | + protected function loadExemplar($id = '', $reload = false) { | |
| 180 | + if ($reload || ! isset($this->_exemplar)) { | |
| 181 | + | |
| 182 | + if (empty($id)) | |
| 183 | + $id = $this->getRequest()->exemplar_id; | |
| 184 | + | |
| 185 | + $exemplar = new clsPmieducarExemplar($id); | |
| 186 | + $exemplar = $exemplar->detalhe(); | |
| 187 | + | |
| 188 | + $situacaoExemplar = $this->loadSituacaoForExemplar($exemplar); | |
| 189 | + $this->_exemplar = array('id' => $exemplar['cod_exemplar'], | |
| 190 | + 'situacao' => $situacaoExemplar, | |
| 191 | + 'pendencias' => $this->getPendenciasForExemplar($exemplar, $situacaoExemplar) | |
| 192 | + ); | |
| 193 | + } | |
| 194 | + | |
| 195 | + return $this->_exemplar; | |
| 196 | + } | |
| 197 | + | |
| 198 | + | |
| 199 | + protected function getPendenciasForExemplar($exemplar, $situacaoExemplar = '') { | |
| 200 | + if (empty($situacaoExemplar)) | |
| 201 | + $situacaoExemplar = $exemplar['situacao']; | |
| 202 | + | |
| 203 | + $pendencias = array(); | |
| 204 | + | |
| 205 | + if (strpos($situacaoExemplar['flag'], 'emprestado') > -1) | |
| 206 | + $pendencias[] = $this->loadEmprestimoForExemplar($exemplar); | |
| 207 | + | |
| 208 | + if (strpos($situacaoExemplar['flag'], 'reservado') > -1) | |
| 209 | + $pendencias = array_merge($pendencias, $this->loadReservasForExemplar($exemplar)); | |
| 210 | + | |
| 211 | + return $pendencias; | |
| 212 | + } | |
| 213 | + | |
| 214 | + | |
| 215 | + protected function loadSituacaoForExemplar($exemplar) { | |
| 216 | + $situacao = new clsPmieducarSituacao($exemplar["ref_cod_situacao"]); | |
| 217 | + $situacao = $situacao->detalhe(); | |
| 218 | + | |
| 219 | + $reservado = $this->existsReservaForExemplar($exemplar); | |
| 220 | + $emprestado = $situacao["situacao_emprestada"] == 1; | |
| 221 | + | |
| 222 | + $situacaoPermiteEmprestimo = $situacao["permite_emprestimo"] == 2; | |
| 223 | + $exemplarPermiteEmprestimo = $exemplar["permite_emprestimo"] == 2; | |
| 224 | + | |
| 225 | + if ($emprestado && $reservado) | |
| 226 | + $flagSituacaoExemplar = 'emprestado_e_reservado'; | |
| 227 | + elseif ($emprestado) | |
| 228 | + $flagSituacaoExemplar = 'emprestado'; | |
| 229 | + elseif ($reservado) | |
| 230 | + $flagSituacaoExemplar = 'reservado'; | |
| 231 | + elseif ($situacaoPermiteEmprestimo && $exemplarPermiteEmprestimo) | |
| 232 | + $flagSituacaoExemplar = 'disponivel'; | |
| 233 | + elseif (! $situacaoPermiteEmprestimo || ! $exemplarPermiteEmprestimo) | |
| 234 | + $flagSituacaoExemplar = 'indisponivel'; | |
| 235 | + else | |
| 236 | + $flagSituacaoExemplar = 'invalida'; | |
| 237 | + | |
| 238 | + return $this->getSituacaoForFlag($flagSituacaoExemplar); | |
| 239 | + } | |
| 240 | + | |
| 241 | + | |
| 242 | + protected function getSituacaoForFlag($flag) { | |
| 243 | + $situacoes = array( | |
| 244 | + 'indisponivel' => array('flag' => 'indisponivel', 'label' => 'Indisponível'), | |
| 245 | + 'disponivel' => array('flag' => 'disponivel' , 'label' => 'Disponível' ), | |
| 246 | + 'emprestado' => array('flag' => 'emprestado' , 'label' => 'Emprestado' ), | |
| 247 | + 'reservado' => array('flag' => 'reservado' , 'label' => 'Reservado' ), | |
| 248 | + 'emprestado_e_reservado' => array('flag' => 'emprestado_e_reservado', | |
| 249 | + 'label' => 'Emprestado e reservado' ), | |
| 250 | + 'invalida' => array('flag' => 'invalida' , 'label' => 'Inválida' ) | |
| 251 | + ); | |
| 252 | + | |
| 253 | + return $situacoes[$flag]; | |
| 254 | + } | |
| 255 | + | |
| 256 | + | |
| 257 | + protected function getSituacaoExemplar($exemplar = null) { | |
| 258 | + if (is_null($exemplar)) | |
| 259 | + $exemplar = $this->loadExemplar(); | |
| 260 | + | |
| 261 | + return $exemplar['situacao']; | |
| 262 | + } | |
| 263 | + | |
| 264 | + | |
| 265 | + protected function getAcervo($id = '') { | |
| 266 | + if (empty($id)) | |
| 267 | + $id = $this->getRequest()->ref_cod_acervo; | |
| 268 | + | |
| 269 | + $acervo = new clsPmieducarAcervo($id); | |
| 270 | + return $acervo->detalhe(); | |
| 271 | + } | |
| 272 | + | |
| 273 | + | |
| 274 | + protected function loadEmprestimoForExemplar($exemplar = null) { | |
| 275 | + if (is_null($exemplar)) | |
| 276 | + $exemplar = $this->loadExemplar(); | |
| 277 | + | |
| 278 | + $_emprestimo = array('cliente' => null, | |
| 279 | + 'nome_cliente' => '', | |
| 280 | + 'data' => '', | |
| 281 | + 'data_prevista_disponivel' => '', | |
| 282 | + 'exists' => false, | |
| 283 | + 'situacao' => $this->getSituacaoForFlag('emprestado') | |
| 284 | + ); | |
| 285 | + | |
| 286 | + $emprestimo = new clsPmieducarExemplarEmprestimo(); | |
| 287 | + | |
| 288 | + $emprestimo = $emprestimo->lista(null, | |
| 289 | + null, | |
| 290 | + null, | |
| 291 | + null, | |
| 292 | + $exemplar['cod_exemplar'], | |
| 293 | + null, | |
| 294 | + null, | |
| 295 | + null, | |
| 296 | + null, | |
| 297 | + null, | |
| 298 | + $devolvido = false, | |
| 299 | + $this->getRequest()->ref_cod_biblioteca, | |
| 300 | + null, | |
| 301 | + $this->getRequest()->ref_cod_instituicao, | |
| 302 | + $this->getRequest()->ref_cod_escola); | |
| 303 | + | |
| 304 | + if(is_array($emprestimo) && ! empty($emprestimo)) { | |
| 305 | + $emprestimo = array_shift($emprestimo); | |
| 306 | + $cliente = $this->loadCliente($emprestimo["ref_cod_cliente"]); | |
| 307 | + | |
| 308 | + $_emprestimo['exists'] = true; | |
| 309 | + $_emprestimo['data'] = date('d/m/Y', strtotime($emprestimo['data_retirada'])); | |
| 310 | + | |
| 311 | + $_emprestimo['data_prevista_disponivel'] = $this->getDataPrevistaDisponivelForExemplar($emprestimo['data_retirada'], 'd/m/Y', $exemplar); | |
| 312 | + $_emprestimo['cliente'] = $cliente; | |
| 313 | + $_emprestimo['nome_cliente'] = $cliente['id'] . ' - ' . $cliente['nome']; | |
| 314 | + } | |
| 315 | + | |
| 316 | + return $_emprestimo; | |
| 317 | + } | |
| 318 | + | |
| 319 | + | |
| 320 | + protected function existsReservaForExemplar($exemplar = null, $clienteId = null) { | |
| 321 | + $reservas = $this->loadReservasForExemplar($exemplar, $clienteId, $reload = true); | |
| 322 | + return ! empty($reservas) && $reservas[0]['exists']; | |
| 323 | + } | |
| 324 | + | |
| 325 | + protected function existsReservaEmAbertoForCliente() { | |
| 326 | + $clienteId = $this->getRequest()->ref_cod_cliente; | |
| 327 | + $exemplares = $this->loadExemplares(); | |
| 328 | + | |
| 329 | + foreach($exemplares as $exemplar) { | |
| 330 | + if ($this->existsReservaForExemplar($exemplar, $clienteId)) | |
| 331 | + return true; | |
| 332 | + } | |
| 333 | + | |
| 334 | + return false; | |
| 335 | + } | |
| 336 | + | |
| 337 | + protected function loadReservasForExemplar($exemplar = null, $clienteId = null, $reload = false) { | |
| 338 | + | |
| 339 | + if ($reload || ! isset($this->_reservas)) { | |
| 340 | + if (is_null($exemplar)) | |
| 341 | + $exemplar = $this->loadExemplar(); | |
| 342 | + | |
| 343 | + $this->_reservas = array(); | |
| 344 | + | |
| 345 | + $reservas = new clsPmieducarReservas(); | |
| 346 | + $reservas = $reservas->lista(null, | |
| 347 | + null, | |
| 348 | + null, | |
| 349 | + $clienteId, | |
| 350 | + null, | |
| 351 | + null, | |
| 352 | + null, | |
| 353 | + null, | |
| 354 | + null, | |
| 355 | + null, | |
| 356 | + $exemplar['cod_exemplar'], | |
| 357 | + 1, | |
| 358 | + $this->getRequest()->ref_cod_biblioteca, | |
| 359 | + $this->getRequest()->ref_cod_instituicao, | |
| 360 | + $this->getRequest()->ref_cod_escola, | |
| 361 | + $data_retirada_null = true); | |
| 362 | + | |
| 363 | + foreach ($reservas as $reserva) { | |
| 364 | + $_reserva = array(); | |
| 365 | + $cliente = $this->loadCliente($reserva["ref_cod_cliente"]); | |
| 366 | + | |
| 367 | + $_reserva['exists'] = true; | |
| 368 | + $_reserva['reserva_id'] = $reserva['cod_reserva']; | |
| 369 | + $_reserva['data'] = date('d/m/Y', strtotime($reserva['data_reserva'])); | |
| 370 | + | |
| 371 | + /* caso seja o mesmo cliente da reserva: considera a data prevista disponivel gravada na reserva | |
| 372 | + senão considera a data prevista disponivel da reserva + a quantidade de dias de emprestimo do exemplar */ | |
| 373 | + if ($this->getRequest()->ref_cod_escola == $cliente['id']) | |
| 374 | + $_reserva['data_prevista_disponivel'] = date('d/m/Y', strtotime($reserva['data_prevista_disponivel'])); | |
| 375 | + else | |
| 376 | + $_reserva['data_prevista_disponivel'] = $this->getDataPrevistaDisponivelForExemplar($reserva['data_prevista_disponivel'], 'd/m/Y', $exemplar); | |
| 377 | + | |
| 378 | + $_reserva['cliente'] = $cliente; | |
| 379 | + $_reserva['nome_cliente'] = $cliente['id'] . ' - ' . $cliente['nome']; | |
| 380 | + $_reserva['situacao'] = $this->getSituacaoForFlag('reservado'); | |
| 381 | + | |
| 382 | + $this->_reservas[] = $_reserva; | |
| 383 | + } | |
| 384 | + } | |
| 385 | + | |
| 386 | + return $this->_reservas; | |
| 387 | + } | |
| 388 | + | |
| 389 | + | |
| 390 | + protected function loadCliente($id = '') { | |
| 391 | + | |
| 392 | + if (empty($id)) | |
| 393 | + $id = $this->getRequest()->ref_cod_cliente; | |
| 394 | + | |
| 395 | + $_cliente = array('id' => $id); | |
| 396 | + | |
| 397 | + $cliente = new clsPmieducarCliente($id); | |
| 398 | + $cliente = $cliente->detalhe(); | |
| 399 | + | |
| 400 | + $_cliente['pessoaId'] = $cliente["ref_idpes"]; | |
| 401 | + | |
| 402 | + $pessoa = new clsPessoa_($_cliente['pessoaId']); | |
| 403 | + $pessoa = $pessoa->detalhe(); | |
| 404 | + | |
| 405 | + $_cliente['nome'] = $pessoa["nome"]; | |
| 406 | + | |
| 407 | + $sql = "select 1 from pmieducar.cliente_suspensao where ref_cod_cliente = $1 and data_liberacao is null and data_suspensao + (dias||' day')::interval >= now()"; | |
| 408 | + $suspenso = $this->fetchPreparedQuery($sql, $params = array($id), true, 'first-field'); | |
| 409 | + | |
| 410 | + $_cliente['suspenso'] = $suspenso == '1'; | |
| 411 | + | |
| 412 | + return $_cliente; | |
| 413 | + } | |
| 414 | + | |
| 415 | + | |
| 416 | + protected function getDataPrevistaDisponivelForExemplar($dataInicio, $format = 'd/m/Y', $exemplar = null) { | |
| 417 | + if (is_null($exemplar)) | |
| 418 | + $exemplar = $this->loadExemplar(); | |
| 419 | + | |
| 420 | + $qtdDiasEmprestimo = $this->loadQtdDiasEmprestimoForExemplar($exemplar); | |
| 421 | + $date = date($format, strtotime("+$qtdDiasEmprestimo days", strtotime($dataInicio))); | |
| 422 | + | |
| 423 | + // #TODO se data cair em feriado ou dia de não trabalho somar +1 dia ? | |
| 424 | + | |
| 425 | + return $date; | |
| 426 | + } | |
| 427 | + | |
| 428 | + | |
| 429 | + protected function loadQtdDiasEmprestimoForExemplar($exemplar = null) { | |
| 430 | + if (is_null($exemplar)) | |
| 431 | + $exemplar = $this->loadExemplar(); | |
| 432 | + | |
| 433 | + $acervo = $this->getAcervo($exemplar['ref_cod_acervo']); | |
| 434 | + $exemplarTipoId = $acervo['ref_cod_exemplar_tipo']; | |
| 435 | + | |
| 436 | + $clienteTipoCliente = new clsPmieducarClienteTipoCliente(); | |
| 437 | + | |
| 438 | + $clienteTipoCliente = $clienteTipoCliente->lista(null, | |
| 439 | + $this->getRequest()->ref_cod_cliente, | |
| 440 | + null, | |
| 441 | + null, | |
| 442 | + null, | |
| 443 | + null, | |
| 444 | + null, | |
| 445 | + null, | |
| 446 | + $this->getRequest()->ref_cod_biblioteca, | |
| 447 | + 1); | |
| 448 | + | |
| 449 | + $clienteTipoId = $clienteTipoCliente[0]['ref_cod_cliente_tipo']; | |
| 450 | + | |
| 451 | + $clienteTipoExemplarTipo = new clsPmieducarClienteTipoExemplarTipo($clienteTipoId, | |
| 452 | + $exemplarTipoId); | |
| 453 | + | |
| 454 | + $clienteTipoExemplarTipo = $clienteTipoExemplarTipo->detalhe(); | |
| 455 | + | |
| 456 | + return $clienteTipoExemplarTipo["dias_emprestimo"]; | |
| 457 | + } | |
| 458 | + | |
| 459 | + | |
| 460 | + protected function getDataPrevistaDisponivelForExemplarAfterLastPendencia($exemplar = null) { | |
| 461 | + if (is_null($exemplar)) | |
| 462 | + $exemplar = $this->loadExemplar(); | |
| 463 | + | |
| 464 | + if (! empty($exemplar['pendencias'])) { | |
| 465 | + $lastPendencia = end($exemplar['pendencias']); | |
| 466 | + $dataPrevistaDisponivel = $this->getDataPrevistaDisponivelForExemplar($lastPendencia['data_prevista_disponivel'], 'Y-m-d', $exemplar); | |
| 467 | + } | |
| 468 | + else | |
| 469 | + $dataPrevistaDisponivel = date("Y-m-d"); | |
| 470 | + | |
| 471 | + return $dataPrevistaDisponivel; | |
| 472 | + } | |
| 473 | + | |
| 474 | + | |
| 475 | + protected function loadExemplares($reload = false) { | |
| 476 | + if ($reload || ! isset($this->_exemplares)) { | |
| 477 | + $this->_exemplares = new clsPmieducarExemplar(); | |
| 478 | + $this->_exemplares = $this->_exemplares->lista(null, | |
| 479 | + null, | |
| 480 | + null, | |
| 481 | + $this->getRequest()->ref_cod_acervo, | |
| 482 | + null, | |
| 483 | + null, | |
| 484 | + null, | |
| 485 | + null, | |
| 486 | + null, | |
| 487 | + null, | |
| 488 | + null, | |
| 489 | + null, | |
| 490 | + null, | |
| 491 | + 1, | |
| 492 | + null, | |
| 493 | + null, | |
| 494 | + null, | |
| 495 | + null, | |
| 496 | + $this->getRequest()->ref_cod_biblioteca, | |
| 497 | + null, | |
| 498 | + $this->getRequest()->ref_cod_instituicao, | |
| 499 | + $this->getRequest()->ref_cod_escola); | |
| 500 | + } | |
| 501 | + | |
| 502 | + return $this->_exemplares; | |
| 503 | + } | |
| 504 | + | |
| 505 | + /* metódos resposta operação / recurso | |
| 506 | + metódos nomeados no padrão operaçãoRecurso */ | |
| 507 | + | |
| 508 | + protected function getExemplares() { | |
| 509 | + $exemplares = $this->loadExemplares(); | |
| 510 | + $_exemplares = array(); | |
| 511 | + | |
| 512 | + foreach($exemplares as $exemplar) { | |
| 513 | + $_exemplares[] = $this->loadExemplar($exemplar['cod_exemplar'], $reload = true); | |
| 514 | + } | |
| 515 | + | |
| 516 | + return $_exemplares; | |
| 517 | + } | |
| 518 | + | |
| 519 | + | |
| 520 | + protected function postReserva() { | |
| 521 | + if ($this->canPostReserva()) { | |
| 522 | + $exemplar = $this->loadExemplar(); | |
| 523 | + $dataPrevistaDisponivel = $this->getDataPrevistaDisponivelForExemplarAfterLastPendencia($exemplar); | |
| 524 | + | |
| 525 | + $reserva = new clsPmieducarReservas(null, | |
| 526 | + null, | |
| 527 | + $this->getSession()->id_pessoa, | |
| 528 | + $this->getRequest()->ref_cod_cliente, | |
| 529 | + null, | |
| 530 | + $dataPrevistaDisponivel, | |
| 531 | + null, | |
| 532 | + $this->getRequest()->exemplar_id, | |
| 533 | + 1); | |
| 534 | + | |
| 535 | + if($reserva->cadastra()) | |
| 536 | + $this->messenger->append("Reserva realizada com sucesso.", 'success'); | |
| 537 | + else | |
| 538 | + $this->messenger->append("Aparentemente a reserva não foi cadastrada, por favor, tente novamente.", 'error'); | |
| 539 | + } | |
| 540 | + | |
| 541 | + $this->appendResponse($this->loadExemplar($this->getRequest()->exemplar_id, $reload = true)); | |
| 542 | + } | |
| 543 | + | |
| 544 | + protected function deleteReserva() { | |
| 545 | + | |
| 546 | + if ($this->canDeleteReserva()) { | |
| 547 | + $exemplar = $this->loadExemplar(); | |
| 548 | + | |
| 549 | + // chamado list para assegurar que esta excluindo a reserva do cliente, biblioteca, instituicao e escola | |
| 550 | + $reservas = new clsPmieducarReservas(); | |
| 551 | + $reservas = $reservas->lista($this->getRequest()->reserva_id, | |
| 552 | + null, | |
| 553 | + null, | |
| 554 | + $this->getRequest()->ref_cod_cliente, | |
| 555 | + null, | |
| 556 | + null, | |
| 557 | + null, | |
| 558 | + null, | |
| 559 | + null, | |
| 560 | + null, | |
| 561 | + $this->getRequest()->exemplar_id, | |
| 562 | + 1, | |
| 563 | + $this->getRequest()->ref_cod_biblioteca, | |
| 564 | + $this->getRequest()->ref_cod_instituicao, | |
| 565 | + $this->getRequest()->ref_cod_escola, | |
| 566 | + $data_retirada_null = true); | |
| 567 | + | |
| 568 | + foreach ($reservas as $reserva) { | |
| 569 | + $_reserva = new clsPmieducarReservas($this->getRequest()->reserva_id); | |
| 570 | + | |
| 571 | + if($_reserva->excluir()) | |
| 572 | + $this->messenger->append("Reserva cancelada com sucesso.", 'success'); | |
| 573 | + else | |
| 574 | + $this->messenger->append("Aparentemente a reserva não foi cancelada, por favor, tente novamente.", 'error'); | |
| 575 | + } | |
| 576 | + | |
| 577 | + if(empty($reservas)) | |
| 578 | + $this->messenger->append("Não foi encontrado uma reserva com os parâmetros recebidos.", 'error'); | |
| 579 | + } | |
| 580 | + | |
| 581 | + $this->appendResponse($this->loadExemplar($this->getRequest()->exemplar_id, $reload = true)); | |
| 582 | + } | |
| 583 | + | |
| 584 | + public function Gerar() { | |
| 585 | + if ($this->isRequestFor('get', 'exemplares')) | |
| 586 | + $this->appendResponse('exemplares', $this->getExemplares()); | |
| 587 | + | |
| 588 | + elseif ($this->isRequestFor('post', 'reserva')) | |
| 589 | + $this->postReserva(); | |
| 590 | + | |
| 591 | + elseif ($this->isRequestFor('delete', 'reserva')) | |
| 592 | + $this->deleteReserva(); | |
| 593 | + | |
| 594 | + else | |
| 595 | + $this->notImplementedOperationError(); | |
| 596 | + } | |
| 597 | +} | ... | ... |
| ... | ... | @@ -0,0 +1,53 @@ |
| 1 | +<?php | |
| 2 | + | |
| 3 | +#error_reporting(E_ALL); | |
| 4 | +#ini_set("display_errors", 1); | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * i-Educar - Sistema de gestão escolar | |
| 8 | + * | |
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
| 10 | + * <ctima@itajai.sc.gov.br> | |
| 11 | + * | |
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
| 15 | + * qualquer versão posterior. | |
| 16 | + * | |
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
| 20 | + * do GNU para mais detalhes. | |
| 21 | + * | |
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 25 | + * | |
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
| 27 | + * @category i-Educar | |
| 28 | + * @license @@license@@ | |
| 29 | + * @package Biblioteca | |
| 30 | + * @subpackage Modules | |
| 31 | + * @since Arquivo disponível desde a versão ? | |
| 32 | + * @version $Id$ | |
| 33 | + */ | |
| 34 | + | |
| 35 | +require_once 'Portabilis/Controller/Page/ListController.php'; | |
| 36 | + | |
| 37 | +class ReservaController extends Portabilis_Controller_Page_ListController | |
| 38 | +{ | |
| 39 | + protected $_dataMapper = ''; #Avaliacao_Model_NotaAlunoDataMapper'; | |
| 40 | + protected $_titulo = 'Reserva'; | |
| 41 | + protected $_formMap = array(); | |
| 42 | + protected $_processoAp = 609; | |
| 43 | + | |
| 44 | + public function Gerar() { | |
| 45 | + // inputs | |
| 46 | + $inputs = array('instituicao', 'escola', 'biblioteca', 'bibliotecaPesquisaCliente', 'bibliotecaPesquisaObra'); | |
| 47 | + $this->inputsHelper()->dynamic($inputs); | |
| 48 | + | |
| 49 | + // assets | |
| 50 | + $this->loadResourceAssets($this->getDispatcher()); | |
| 51 | + } | |
| 52 | +} | |
| 53 | +?> | ... | ... |