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 | +?> | ... | ... |