Commit 719b9f1dbb5c01bb635d5cb03f8637ac09b01d6f

Authored by Eder Soares
1 parent 39efb18d
Exists in 2.9 and in 8 other branches 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8

View situação 2019-02-28

database/migrations/2019_02_28_141626_corrige_view_situacao.php 0 → 100644
... ... @@ -0,0 +1,30 @@
  1 +<?php
  2 +
  3 +use App\Support\Database\AsView;
  4 +use Illuminate\Database\Migrations\Migration;
  5 +
  6 +class CorrigeViewSituacao extends Migration
  7 +{
  8 + use AsView;
  9 +
  10 + /**
  11 + * Run the migrations.
  12 + *
  13 + * @return void
  14 + */
  15 + public function up()
  16 + {
  17 + $this->createView('relatorio.view_situacao', '2019-02-28');
  18 + }
  19 +
  20 + /**
  21 + * Reverse the migrations.
  22 + *
  23 + * @return void
  24 + */
  25 + public function down()
  26 + {
  27 + $this->dropView('relatorio.view_situacao');
  28 + $this->createView('relatorio.view_situacao', '2019-01-01');
  29 + }
  30 +}
... ...
database/sqls/views/relatorio.view_situacao-2019-02-28.sql 0 → 100644
... ... @@ -0,0 +1,178 @@
  1 +CREATE OR REPLACE VIEW relatorio.view_situacao AS
  2 +SELECT
  3 + matricula.cod_matricula,
  4 + situacao_matricula.cod_situacao,
  5 + matricula_turma.ref_cod_turma AS cod_turma,
  6 + matricula_turma.sequencial,
  7 + (
  8 + CASE
  9 + WHEN matricula_turma.remanejado THEN
  10 + 'Remanejado'::character varying
  11 + WHEN matricula_turma.transferido THEN
  12 + 'Transferido'::character varying
  13 + WHEN matricula_turma.reclassificado THEN
  14 + 'Reclassificado'::character varying
  15 + WHEN matricula_turma.abandono THEN
  16 + 'Abandono'::character varying
  17 + WHEN matricula.aprovado = 1 THEN
  18 + 'Aprovado'::character varying
  19 + WHEN matricula.aprovado = 12 THEN
  20 + 'Ap. Depen.'::character varying
  21 + WHEN matricula.aprovado = 13 THEN
  22 + 'Ap. Cons.'::character varying
  23 + WHEN matricula.aprovado = 2 THEN
  24 + 'Reprovado'::character varying
  25 + WHEN matricula.aprovado = 3 THEN
  26 + 'Cursando'::character varying
  27 + WHEN matricula.aprovado = 4 THEN
  28 + 'Transferido'::character varying
  29 + WHEN matricula.aprovado = 5 THEN
  30 + 'Reclassificado'::character varying
  31 + WHEN matricula.aprovado = 6 THEN
  32 + 'Abandono'::character varying
  33 + WHEN matricula.aprovado = 14 THEN
  34 + 'Rp. Faltas'::character varying
  35 + WHEN matricula.aprovado = 15 THEN
  36 + 'Falecido'::character varying
  37 + ELSE 'Recl'::character varying
  38 + END
  39 + ) AS texto_situacao,
  40 + (
  41 + CASE
  42 + WHEN matricula_turma.remanejado THEN
  43 + 'Rem'::character varying
  44 + WHEN matricula_turma.transferido THEN
  45 + 'Trs'::character varying
  46 + WHEN matricula_turma.reclassificado THEN
  47 + 'Recl'::character varying
  48 + WHEN matricula_turma.abandono THEN
  49 + 'Aba'::character varying
  50 + WHEN matricula.aprovado = 1 THEN
  51 + 'Apr'::character varying
  52 + WHEN matricula.aprovado = 12 THEN
  53 + 'ApDp'::character varying
  54 + WHEN matricula.aprovado = 13 THEN
  55 + 'ApCo'::character varying
  56 + WHEN matricula.aprovado = 2 THEN
  57 + 'Rep'::character varying
  58 + WHEN matricula.aprovado = 3 THEN
  59 + 'Cur'::character varying
  60 + WHEN matricula.aprovado = 4 THEN
  61 + 'Trs'::character varying
  62 + WHEN matricula.aprovado = 5 THEN
  63 + 'Recl'::character varying
  64 + WHEN matricula.aprovado = 6 THEN
  65 + 'Aba'::character varying
  66 + WHEN matricula.aprovado = 14 THEN
  67 + 'RpFt'::character varying
  68 + WHEN matricula.aprovado = 15 THEN
  69 + 'Fal'::character varying
  70 + ELSE 'Recl'::character varying
  71 + END
  72 + ) AS texto_situacao_simplificado
  73 +FROM
  74 + relatorio.situacao_matricula,
  75 + pmieducar.matricula
  76 +JOIN pmieducar.escola
  77 + ON escola.cod_escola = matricula.ref_ref_cod_escola
  78 +JOIN pmieducar.instituicao
  79 + ON instituicao.cod_instituicao = escola.ref_cod_instituicao
  80 +LEFT JOIN pmieducar.matricula_turma
  81 + ON matricula_turma.ref_cod_matricula = matricula.cod_matricula
  82 +WHERE TRUE
  83 + AND matricula.ativo = 1
  84 + AND (
  85 + CASE WHEN instituicao.data_base_remanejamento IS NULL THEN
  86 + COALESCE(matricula_turma.remanejado, false) = false
  87 + ELSE
  88 + true
  89 + END
  90 + )
  91 + AND (
  92 + CASE WHEN matricula.aprovado = 4 THEN
  93 + matricula_turma.ativo = 1
  94 + OR matricula_turma.transferido
  95 + OR matricula_turma.reclassificado
  96 + OR matricula_turma.remanejado
  97 + OR matricula_turma.sequencial = (
  98 + (
  99 + SELECT max(mt.sequencial) AS max
  100 + FROM pmieducar.matricula_turma mt
  101 + WHERE mt.ref_cod_matricula = matricula.cod_matricula
  102 + )
  103 + )
  104 + WHEN matricula.aprovado = 6 THEN
  105 + matricula_turma.ativo = 1
  106 + OR matricula_turma.abandono
  107 + OR (
  108 + (
  109 + matricula_turma.transferido
  110 + OR matricula_turma.reclassificado
  111 + OR matricula_turma.remanejado
  112 + )
  113 + AND matricula_turma.sequencial < (
  114 + SELECT max(mt.sequencial) AS max
  115 + FROM pmieducar.matricula_turma mt
  116 + WHERE mt.ref_cod_matricula = matricula.cod_matricula
  117 + )
  118 + )
  119 + WHEN matricula.aprovado = 15 THEN
  120 + matricula_turma.ativo = 1
  121 + OR matricula_turma.falecido
  122 + WHEN matricula.aprovado = 5 THEN
  123 + matricula_turma.ativo = 1
  124 + OR matricula_turma.reclassificado
  125 + ELSE matricula_turma.ativo = 1
  126 + OR matricula_turma.transferido
  127 + OR matricula_turma.reclassificado
  128 + OR matricula_turma.abandono
  129 + OR matricula_turma.remanejado
  130 + OR matricula_turma.falecido
  131 + AND matricula_turma.sequencial < (
  132 + (
  133 + SELECT max(mt.sequencial) AS max
  134 + FROM pmieducar.matricula_turma mt
  135 + WHERE mt.ref_cod_matricula = matricula.cod_matricula
  136 + )
  137 + )
  138 + END
  139 + )
  140 + AND
  141 + (
  142 + CASE
  143 + WHEN situacao_matricula.cod_situacao = 10 THEN
  144 + matricula.aprovado = ANY (ARRAY[1, 2, 3, 4, 5, 6, 12, 13, 14, 15])
  145 + WHEN situacao_matricula.cod_situacao = 9 THEN
  146 + (matricula.aprovado = ANY (ARRAY[1, 2, 3, 5, 12, 13, 14]))
  147 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  148 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  149 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  150 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  151 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  152 + WHEN
  153 + situacao_matricula.cod_situacao = 2 THEN
  154 + (matricula.aprovado = ANY (ARRAY[2, 14]))
  155 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  156 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  157 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  158 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  159 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  160 + WHEN
  161 + situacao_matricula.cod_situacao = 1 THEN
  162 + (matricula.aprovado = ANY (ARRAY[1, 12, 13]))
  163 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  164 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  165 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  166 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  167 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  168 + WHEN situacao_matricula.cod_situacao = ANY (ARRAY[3, 12, 13]) THEN
  169 + matricula.aprovado = situacao_matricula.cod_situacao
  170 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  171 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  172 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  173 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  174 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  175 + ELSE
  176 + matricula.aprovado = situacao_matricula.cod_situacao
  177 + END
  178 + );
... ...
database/sqls/views/relatorio.view_situacao.sql
1   -SET search_path = relatorio, pmieducar, public, pg_catalog;
2   -
3   -CREATE OR REPLACE VIEW view_situacao AS
4   - SELECT matricula.cod_matricula,
5   - situacao_matricula.cod_situacao,
6   - matricula_turma.ref_cod_turma AS cod_turma,
7   - matricula_turma.sequencial,
8   - ( SELECT
9   - CASE
10   - WHEN matricula_turma.remanejado THEN 'Remanejado'::character varying
11   - WHEN matricula_turma.transferido THEN 'Transferido'::character varying
12   - WHEN matricula_turma.reclassificado THEN 'Reclassificado'::character varying
13   - WHEN matricula_turma.abandono THEN 'Abandono'::character varying
14   - WHEN (matricula.aprovado = 1) THEN 'Aprovado'::character varying
15   - WHEN (matricula.aprovado = 12) THEN 'Ap. Depen.'::character varying
16   - WHEN (matricula.aprovado = 13) THEN 'Ap. Cons.'::character varying
17   - WHEN (matricula.aprovado = 2) THEN 'Reprovado'::character varying
18   - WHEN (matricula.aprovado = 3) THEN 'Cursando'::character varying
19   - WHEN (matricula.aprovado = 4) THEN 'Transferido'::character varying
20   - WHEN (matricula.aprovado = 5) THEN 'Reclassificado'::character varying
21   - WHEN (matricula.aprovado = 6) THEN 'Abandono'::character varying
22   - WHEN (matricula.aprovado = 14) THEN 'Rp. Faltas'::character varying
23   - WHEN (matricula.aprovado = 15) THEN 'Falecido'::character varying
24   - ELSE 'Recl'::character varying
25   - END AS "case") AS texto_situacao,
26   - ( SELECT
27   - CASE
28   - WHEN matricula_turma.remanejado THEN 'Rem'::character varying
29   - WHEN matricula_turma.transferido THEN 'Trs'::character varying
30   - WHEN matricula_turma.reclassificado THEN 'Recl'::character varying
31   - WHEN matricula_turma.abandono THEN 'Aba'::character varying
32   - WHEN (matricula.aprovado = 1) THEN 'Apr'::character varying
33   - WHEN (matricula.aprovado = 12) THEN 'ApDp'::character varying
34   - WHEN (matricula.aprovado = 13) THEN 'ApCo'::character varying
35   - WHEN (matricula.aprovado = 2) THEN 'Rep'::character varying
36   - WHEN (matricula.aprovado = 3) THEN 'Cur'::character varying
37   - WHEN (matricula.aprovado = 4) THEN 'Trs'::character varying
38   - WHEN (matricula.aprovado = 5) THEN 'Recl'::character varying
39   - WHEN (matricula.aprovado = 6) THEN 'Aba'::character varying
40   - WHEN (matricula.aprovado = 14) THEN 'RpFt'::character varying
41   - WHEN (matricula.aprovado = 15) THEN 'Fal'::character varying
42   - ELSE 'Recl'::character varying
43   - END AS "case") AS texto_situacao_simplificado
44   - FROM situacao_matricula,
45   - (((pmieducar.matricula
46   - JOIN pmieducar.escola ON ((escola.cod_escola = matricula.ref_ref_cod_escola)))
47   - JOIN pmieducar.instituicao ON ((instituicao.cod_instituicao = escola.ref_cod_instituicao)))
48   - LEFT JOIN pmieducar.matricula_turma ON ((matricula_turma.ref_cod_matricula = matricula.cod_matricula)))
49   - WHERE ((matricula.ativo = 1) AND
50   - CASE
51   - WHEN (instituicao.data_base_remanejamento IS NULL) THEN (COALESCE(matricula_turma.remanejado, false) = false)
52   - ELSE true
53   - END AND
54   - CASE
55   - WHEN (matricula.aprovado = 4) THEN ((matricula_turma.ativo = 1) OR matricula_turma.transferido OR matricula_turma.reclassificado OR matricula_turma.remanejado OR (matricula_turma.sequencial = ( SELECT max(mt.sequencial) AS max
56   - FROM pmieducar.matricula_turma mt
57   - WHERE (mt.ref_cod_matricula = matricula.cod_matricula))))
58   - WHEN (matricula.aprovado = 6) THEN ((matricula_turma.ativo = 1) OR matricula_turma.abandono)
59   - WHEN (matricula.aprovado = 15) THEN ((matricula_turma.ativo = 1) OR matricula_turma.falecido)
60   - WHEN (matricula.aprovado = 5) THEN ((matricula_turma.ativo = 1) OR matricula_turma.reclassificado)
61   - ELSE ((matricula_turma.ativo = 1) OR matricula_turma.transferido OR matricula_turma.reclassificado OR matricula_turma.abandono OR matricula_turma.remanejado OR (matricula_turma.falecido AND (matricula_turma.sequencial < ( SELECT max(mt.sequencial) AS max
62   - FROM pmieducar.matricula_turma mt
63   - WHERE (mt.ref_cod_matricula = matricula.cod_matricula)))))
64   - END AND
65   - CASE
66   - WHEN (situacao_matricula.cod_situacao = 10) THEN (matricula.aprovado = ANY (ARRAY[1, 2, 3, 4, 5, 6, 12, 13, 14, 15]))
67   - WHEN (situacao_matricula.cod_situacao = 9) THEN ((matricula.aprovado = ANY (ARRAY[1, 2, 3, 5, 12, 13, 14])) AND ((NOT matricula_turma.reclassificado) OR (matricula_turma.reclassificado IS NULL)) AND ((NOT matricula_turma.abandono) OR (matricula_turma.abandono IS NULL)) AND ((NOT matricula_turma.remanejado) OR (matricula_turma.remanejado IS NULL)) AND ((NOT matricula_turma.transferido) OR (matricula_turma.transferido IS NULL)) AND ((NOT matricula_turma.falecido) OR (matricula_turma.falecido IS NULL)))
68   - WHEN (situacao_matricula.cod_situacao = 2) THEN ((matricula.aprovado = ANY (ARRAY[2, 14])) AND ((NOT matricula_turma.reclassificado) OR (matricula_turma.reclassificado IS NULL)) AND ((NOT matricula_turma.abandono) OR (matricula_turma.abandono IS NULL)) AND ((NOT matricula_turma.remanejado) OR (matricula_turma.remanejado IS NULL)) AND ((NOT matricula_turma.transferido) OR (matricula_turma.transferido IS NULL)) AND ((NOT matricula_turma.falecido) OR (matricula_turma.falecido IS NULL)))
69   - WHEN (situacao_matricula.cod_situacao = 1) THEN ((matricula.aprovado = ANY (ARRAY[1, 12, 13])) AND ((NOT matricula_turma.reclassificado) OR (matricula_turma.reclassificado IS NULL)) AND ((NOT matricula_turma.abandono) OR (matricula_turma.abandono IS NULL)) AND ((NOT matricula_turma.remanejado) OR (matricula_turma.remanejado IS NULL)) AND ((NOT matricula_turma.transferido) OR (matricula_turma.transferido IS NULL)) AND ((NOT matricula_turma.falecido) OR (matricula_turma.falecido IS NULL)))
70   - WHEN (situacao_matricula.cod_situacao = ANY (ARRAY[3, 12, 13])) THEN ((matricula.aprovado = situacao_matricula.cod_situacao) AND ((NOT matricula_turma.reclassificado) OR (matricula_turma.reclassificado IS NULL)) AND ((NOT matricula_turma.abandono) OR (matricula_turma.abandono IS NULL)) AND ((NOT matricula_turma.remanejado) OR (matricula_turma.remanejado IS NULL)) AND ((NOT matricula_turma.transferido) OR (matricula_turma.transferido IS NULL)) AND ((NOT matricula_turma.falecido) OR (matricula_turma.falecido IS NULL)))
71   - ELSE (matricula.aprovado = situacao_matricula.cod_situacao)
72   - END);
  1 +CREATE OR REPLACE VIEW relatorio.view_situacao AS
  2 +SELECT
  3 + matricula.cod_matricula,
  4 + situacao_matricula.cod_situacao,
  5 + matricula_turma.ref_cod_turma AS cod_turma,
  6 + matricula_turma.sequencial,
  7 + (
  8 + CASE
  9 + WHEN matricula_turma.remanejado THEN
  10 + ''Remanejado''::character varying
  11 + WHEN matricula_turma.transferido THEN
  12 + ''Transferido''::character varying
  13 + WHEN matricula_turma.reclassificado THEN
  14 + ''Reclassificado''::character varying
  15 + WHEN matricula_turma.abandono THEN
  16 + ''Abandono''::character varying
  17 + WHEN matricula.aprovado = 1 THEN
  18 + ''Aprovado''::character varying
  19 + WHEN matricula.aprovado = 12 THEN
  20 + ''Ap. Depen.''::character varying
  21 + WHEN matricula.aprovado = 13 THEN
  22 + ''Ap. Cons.''::character varying
  23 + WHEN matricula.aprovado = 2 THEN
  24 + ''Reprovado''::character varying
  25 + WHEN matricula.aprovado = 3 THEN
  26 + ''Cursando''::character varying
  27 + WHEN matricula.aprovado = 4 THEN
  28 + ''Transferido''::character varying
  29 + WHEN matricula.aprovado = 5 THEN
  30 + ''Reclassificado''::character varying
  31 + WHEN matricula.aprovado = 6 THEN
  32 + ''Abandono''::character varying
  33 + WHEN matricula.aprovado = 14 THEN
  34 + ''Rp. Faltas''::character varying
  35 + WHEN matricula.aprovado = 15 THEN
  36 + ''Falecido''::character varying
  37 + ELSE ''Recl''::character varying
  38 + END
  39 + ) AS texto_situacao,
  40 + (
  41 + CASE
  42 + WHEN matricula_turma.remanejado THEN
  43 + ''Rem''::character varying
  44 + WHEN matricula_turma.transferido THEN
  45 + ''Trs''::character varying
  46 + WHEN matricula_turma.reclassificado THEN
  47 + ''Recl''::character varying
  48 + WHEN matricula_turma.abandono THEN
  49 + ''Aba''::character varying
  50 + WHEN matricula.aprovado = 1 THEN
  51 + ''Apr''::character varying
  52 + WHEN matricula.aprovado = 12 THEN
  53 + ''ApDp''::character varying
  54 + WHEN matricula.aprovado = 13 THEN
  55 + ''ApCo''::character varying
  56 + WHEN matricula.aprovado = 2 THEN
  57 + ''Rep''::character varying
  58 + WHEN matricula.aprovado = 3 THEN
  59 + ''Cur''::character varying
  60 + WHEN matricula.aprovado = 4 THEN
  61 + ''Trs''::character varying
  62 + WHEN matricula.aprovado = 5 THEN
  63 + ''Recl''::character varying
  64 + WHEN matricula.aprovado = 6 THEN
  65 + ''Aba''::character varying
  66 + WHEN matricula.aprovado = 14 THEN
  67 + ''RpFt''::character varying
  68 + WHEN matricula.aprovado = 15 THEN
  69 + ''Fal''::character varying
  70 + ELSE ''Recl''::character varying
  71 + END
  72 + ) AS texto_situacao_simplificado
  73 +FROM
  74 + relatorio.situacao_matricula,
  75 + pmieducar.matricula
  76 +JOIN pmieducar.escola
  77 + ON escola.cod_escola = matricula.ref_ref_cod_escola
  78 +JOIN pmieducar.instituicao
  79 + ON instituicao.cod_instituicao = escola.ref_cod_instituicao
  80 +LEFT JOIN pmieducar.matricula_turma
  81 + ON matricula_turma.ref_cod_matricula = matricula.cod_matricula
  82 +WHERE TRUE
  83 + AND matricula.ativo = 1
  84 + AND (
  85 + CASE WHEN instituicao.data_base_remanejamento IS NULL THEN
  86 + COALESCE(matricula_turma.remanejado, false) = false
  87 + ELSE
  88 + true
  89 + END
  90 + )
  91 + AND (
  92 + CASE WHEN matricula.aprovado = 4 THEN
  93 + matricula_turma.ativo = 1
  94 + OR matricula_turma.transferido
  95 + OR matricula_turma.reclassificado
  96 + OR matricula_turma.remanejado
  97 + OR matricula_turma.sequencial = (
  98 + (
  99 + SELECT max(mt.sequencial) AS max
  100 + FROM pmieducar.matricula_turma mt
  101 + WHERE mt.ref_cod_matricula = matricula.cod_matricula
  102 + )
  103 + )
  104 + WHEN matricula.aprovado = 6 THEN
  105 + matricula_turma.ativo = 1
  106 + OR matricula_turma.abandono
  107 + OR (
  108 + (
  109 + matricula_turma.transferido
  110 + OR matricula_turma.reclassificado
  111 + OR matricula_turma.remanejado
  112 + )
  113 + AND matricula_turma.sequencial < (
  114 + SELECT max(mt.sequencial) AS max
  115 + FROM pmieducar.matricula_turma mt
  116 + WHERE mt.ref_cod_matricula = matricula.cod_matricula
  117 + )
  118 + )
  119 + WHEN matricula.aprovado = 15 THEN
  120 + matricula_turma.ativo = 1
  121 + OR matricula_turma.falecido
  122 + WHEN matricula.aprovado = 5 THEN
  123 + matricula_turma.ativo = 1
  124 + OR matricula_turma.reclassificado
  125 + ELSE matricula_turma.ativo = 1
  126 + OR matricula_turma.transferido
  127 + OR matricula_turma.reclassificado
  128 + OR matricula_turma.abandono
  129 + OR matricula_turma.remanejado
  130 + OR matricula_turma.falecido
  131 + AND matricula_turma.sequencial < (
  132 + (
  133 + SELECT max(mt.sequencial) AS max
  134 + FROM pmieducar.matricula_turma mt
  135 + WHERE mt.ref_cod_matricula = matricula.cod_matricula
  136 + )
  137 + )
  138 + END
  139 + )
  140 + AND
  141 + (
  142 + CASE
  143 + WHEN situacao_matricula.cod_situacao = 10 THEN
  144 + matricula.aprovado = ANY (ARRAY[1, 2, 3, 4, 5, 6, 12, 13, 14, 15])
  145 + WHEN situacao_matricula.cod_situacao = 9 THEN
  146 + (matricula.aprovado = ANY (ARRAY[1, 2, 3, 5, 12, 13, 14]))
  147 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  148 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  149 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  150 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  151 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  152 + WHEN
  153 + situacao_matricula.cod_situacao = 2 THEN
  154 + (matricula.aprovado = ANY (ARRAY[2, 14]))
  155 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  156 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  157 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  158 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  159 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  160 + WHEN
  161 + situacao_matricula.cod_situacao = 1 THEN
  162 + (matricula.aprovado = ANY (ARRAY[1, 12, 13]))
  163 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  164 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  165 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  166 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  167 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  168 + WHEN situacao_matricula.cod_situacao = ANY (ARRAY[3, 12, 13]) THEN
  169 + matricula.aprovado = situacao_matricula.cod_situacao
  170 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  171 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  172 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  173 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  174 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  175 + ELSE
  176 + matricula.aprovado = situacao_matricula.cod_situacao
  177 + END
  178 + );
... ...