Commit 2ee059394f58a2d8b76793ac37d539ef1970e900
1 parent
347da7e2
Exists in
master
Alterado APIs aluno / matricula, para exibir resultados cujo estejam transferidos closes #1
Showing
2 changed files
with
29 additions
and
15 deletions
Show diff stats
ieducar/modules/Api/Views/AlunoController.php
| @@ -478,21 +478,26 @@ class AlunoController extends ApiCoreController | @@ -478,21 +478,26 @@ class AlunoController extends ApiCoreController | ||
| 478 | // search options | 478 | // search options |
| 479 | 479 | ||
| 480 | protected function searchOptions() { | 480 | protected function searchOptions() { |
| 481 | - return array('sqlParams' => array($this->getRequest()->escola_id), | 481 | + $escolaId = $this->getRequest()->escola_id ? $this->getRequest()->escola_id : 0; |
| 482 | + | ||
| 483 | + return array('sqlParams' => array($escolaId), | ||
| 482 | 'selectFields' => array('matricula_id')); | 484 | 'selectFields' => array('matricula_id')); |
| 483 | } | 485 | } |
| 484 | 486 | ||
| 485 | protected function sqlsForNumericSearch() { | 487 | protected function sqlsForNumericSearch() { |
| 486 | $sqls = array(); | 488 | $sqls = array(); |
| 487 | 489 | ||
| 488 | - // caso nao receba id da escola, pesquisa por codigo aluno em todas as escolas | 490 | + // caso nao receba id da escola, pesquisa por codigo aluno em todas as escolas, |
| 491 | + // alunos com e sem matricula são selecionados. | ||
| 489 | if (! $this->getRequest()->escola_id) { | 492 | if (! $this->getRequest()->escola_id) { |
| 490 | $sqls[] = "select distinct aluno.cod_aluno as id, pessoa.nome as name from | 493 | $sqls[] = "select distinct aluno.cod_aluno as id, pessoa.nome as name from |
| 491 | pmieducar.aluno, cadastro.pessoa where pessoa.idpes = aluno.ref_idpes | 494 | pmieducar.aluno, cadastro.pessoa where pessoa.idpes = aluno.ref_idpes |
| 492 | - and aluno.ativo = 1 and aluno.cod_aluno like $1||'%' and $2 = $2 order by cod_aluno limit 15"; | 495 | + and aluno.ativo = 1 and aluno.cod_aluno like $1||'%' and $2 = $2 |
| 496 | + order by cod_aluno limit 15"; | ||
| 493 | } | 497 | } |
| 494 | 498 | ||
| 495 | - // seleciona por (codigo matricula ou codigo aluno) e/ou codigo escola | 499 | + // seleciona por (codigo matricula ou codigo aluno) e opcionalmente por codigo escola, |
| 500 | + // apenas alunos com matricula são selecionados. | ||
| 496 | $sqls[] = "select * from (select distinct ON (aluno.cod_aluno) aluno.cod_aluno as id, | 501 | $sqls[] = "select * from (select distinct ON (aluno.cod_aluno) aluno.cod_aluno as id, |
| 497 | matricula.cod_matricula as matricula_id, pessoa.nome as name from pmieducar.matricula, | 502 | matricula.cod_matricula as matricula_id, pessoa.nome as name from pmieducar.matricula, |
| 498 | pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and | 503 | pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and |
| @@ -500,7 +505,7 @@ class AlunoController extends ApiCoreController | @@ -500,7 +505,7 @@ class AlunoController extends ApiCoreController | ||
| 500 | matricula.ativo = 1 and | 505 | matricula.ativo = 1 and |
| 501 | (select case when $2 != 0 then matricula.ref_ref_cod_escola = $2 else 1=1 end) and | 506 | (select case when $2 != 0 then matricula.ref_ref_cod_escola = $2 else 1=1 end) and |
| 502 | (matricula.cod_matricula like $1||'%' or matricula.ref_cod_aluno like $1||'%') and | 507 | (matricula.cod_matricula like $1||'%' or matricula.ref_cod_aluno like $1||'%') and |
| 503 | - matricula.aprovado in (1, 2, 3, 7, 8, 9) limit 15) as alunos order by id"; | 508 | + matricula.aprovado in (1, 2, 3, 4, 7, 8, 9) limit 15) as alunos order by id"; |
| 504 | 509 | ||
| 505 | return $sqls; | 510 | return $sqls; |
| 506 | } | 511 | } |
| @@ -509,7 +514,8 @@ class AlunoController extends ApiCoreController | @@ -509,7 +514,8 @@ class AlunoController extends ApiCoreController | ||
| 509 | protected function sqlsForStringSearch() { | 514 | protected function sqlsForStringSearch() { |
| 510 | $sqls = array(); | 515 | $sqls = array(); |
| 511 | 516 | ||
| 512 | - // caso nao receba id da escola, pesquisa por codigo aluno em todas as escolas | 517 | + // caso nao receba id da escola, pesquisa por nome aluno em todas as escolas, |
| 518 | + // alunos com e sem matricula são selecionados. | ||
| 513 | if (! $this->getRequest()->escola_id) { | 519 | if (! $this->getRequest()->escola_id) { |
| 514 | $sqls[] = "select distinct aluno.cod_aluno as id, | 520 | $sqls[] = "select distinct aluno.cod_aluno as id, |
| 515 | pessoa.nome as name from pmieducar.aluno, cadastro.pessoa where | 521 | pessoa.nome as name from pmieducar.aluno, cadastro.pessoa where |
| @@ -518,7 +524,8 @@ class AlunoController extends ApiCoreController | @@ -518,7 +524,8 @@ class AlunoController extends ApiCoreController | ||
| 518 | order by nome limit 15"; | 524 | order by nome limit 15"; |
| 519 | } | 525 | } |
| 520 | 526 | ||
| 521 | - // seleciona por nome aluno e/ou codigo escola | 527 | + // seleciona por nome aluno e e opcionalmente por codigo escola, |
| 528 | + // apenas alunos com matricula são selecionados. | ||
| 522 | $sqls[] = "select * from(select distinct ON (aluno.cod_aluno) aluno.cod_aluno as id, | 529 | $sqls[] = "select * from(select distinct ON (aluno.cod_aluno) aluno.cod_aluno as id, |
| 523 | matricula.cod_matricula as matricula_id, pessoa.nome as name from pmieducar.matricula, | 530 | matricula.cod_matricula as matricula_id, pessoa.nome as name from pmieducar.matricula, |
| 524 | pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and | 531 | pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and |
| @@ -526,7 +533,7 @@ class AlunoController extends ApiCoreController | @@ -526,7 +533,7 @@ class AlunoController extends ApiCoreController | ||
| 526 | matricula.ativo = 1 and (select case when $2 != 0 then matricula.ref_ref_cod_escola = $2 | 533 | matricula.ativo = 1 and (select case when $2 != 0 then matricula.ref_ref_cod_escola = $2 |
| 527 | else 1=1 end) and | 534 | else 1=1 end) and |
| 528 | lower(to_ascii(pessoa.nome)) like lower(to_ascii($1))||'%' and matricula.aprovado in | 535 | lower(to_ascii(pessoa.nome)) like lower(to_ascii($1))||'%' and matricula.aprovado in |
| 529 | - (1, 2, 3, 7, 8, 9) limit 15) as alunos order by name"; | 536 | + (1, 2, 3, 4, 7, 8, 9) limit 15) as alunos order by name"; |
| 530 | 537 | ||
| 531 | return $sqls; | 538 | return $sqls; |
| 532 | } | 539 | } |
ieducar/modules/Api/Views/MatriculaController.php
| @@ -47,30 +47,37 @@ class MatriculaController extends ApiCoreController | @@ -47,30 +47,37 @@ class MatriculaController extends ApiCoreController | ||
| 47 | // search options | 47 | // search options |
| 48 | 48 | ||
| 49 | protected function searchOptions() { | 49 | protected function searchOptions() { |
| 50 | - return array('sqlParams' => array($this->getRequest()->escola_id, $this->getRequest()->ano), | 50 | + $escolaId = $this->getRequest()->escola_id ? $this->getRequest()->escola_id : 0; |
| 51 | + $ano = $this->getRequest()->ano ? $this->getRequest()->ano : 0; | ||
| 52 | + | ||
| 53 | + return array('sqlParams' => array($escolaId, $ano), | ||
| 51 | 'selectFields' => array('aluno_id')); | 54 | 'selectFields' => array('aluno_id')); |
| 52 | } | 55 | } |
| 53 | 56 | ||
| 54 | protected function sqlsForNumericSearch() { | 57 | protected function sqlsForNumericSearch() { |
| 55 | - | 58 | + // seleciona por (codigo matricula ou codigo aluno), opcionalmente por codigo escola e |
| 59 | + // opcionalmente por ano. | ||
| 56 | return "select distinct ON (aluno.cod_aluno) aluno.cod_aluno as aluno_id, | 60 | return "select distinct ON (aluno.cod_aluno) aluno.cod_aluno as aluno_id, |
| 57 | matricula.cod_matricula as id, pessoa.nome as name from pmieducar.matricula, | 61 | matricula.cod_matricula as id, pessoa.nome as name from pmieducar.matricula, |
| 58 | pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and | 62 | pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and |
| 59 | pessoa.idpes = aluno.ref_idpes and aluno.ativo = matricula.ativo and | 63 | pessoa.idpes = aluno.ref_idpes and aluno.ativo = matricula.ativo and |
| 60 | - matricula.ativo = 1 and matricula.ref_ref_cod_escola = $2 and | 64 | + matricula.ativo = 1 and matricula.aprovado in (1, 2, 3, 4, 7, 8, 9) and |
| 61 | (matricula.cod_matricula like $1 or matricula.ref_cod_aluno like $1) and | 65 | (matricula.cod_matricula like $1 or matricula.ref_cod_aluno like $1) and |
| 62 | - matricula.aprovado in (1, 2, 3, 7, 8, 9) and ano = $3 limit 15"; | 66 | + (select case when $2 != 0 then matricula.ref_ref_cod_escola = $2 else 1=1 end) and |
| 67 | + (select case when $3 != 0 then matricula.ano = $3 else 1=1 end) limit 15"; | ||
| 63 | } | 68 | } |
| 64 | 69 | ||
| 65 | 70 | ||
| 66 | protected function sqlsForStringSearch() { | 71 | protected function sqlsForStringSearch() { |
| 72 | + // seleciona por nome aluno, opcionalmente por codigo escola e opcionalmente por ano. | ||
| 67 | return "select distinct ON (aluno.cod_aluno) aluno.cod_aluno as aluno_id, | 73 | return "select distinct ON (aluno.cod_aluno) aluno.cod_aluno as aluno_id, |
| 68 | matricula.cod_matricula as id, pessoa.nome as name from pmieducar.matricula, | 74 | matricula.cod_matricula as id, pessoa.nome as name from pmieducar.matricula, |
| 69 | pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and | 75 | pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and |
| 70 | pessoa.idpes = aluno.ref_idpes and aluno.ativo = matricula.ativo and | 76 | pessoa.idpes = aluno.ref_idpes and aluno.ativo = matricula.ativo and |
| 71 | - matricula.ativo = 1 and matricula.ref_ref_cod_escola = $2 and | ||
| 72 | - lower(to_ascii(pessoa.nome)) like lower(to_ascii($1))||'%' and matricula.aprovado in (1, 2, 3, 7, 8, 9) | ||
| 73 | - and ano = $3 limit 15"; | 77 | + matricula.ativo = 1 and matricula.aprovado in (1, 2, 3, 4, 7, 8, 9) and |
| 78 | + lower(to_ascii(pessoa.nome)) like lower(to_ascii($1))||'%' and | ||
| 79 | + (select case when $2 != 0 then matricula.ref_ref_cod_escola = $2 else 1=1 end) and | ||
| 80 | + (select case when $3 != 0 then matricula.ano = $3 else 1=1 end) limit 15"; | ||
| 74 | } | 81 | } |
| 75 | 82 | ||
| 76 | 83 |