Commit c7021af8017f17339e33bba3b3782634d266a73e

Authored by Matheus Nicoski
Committed by GitHub
2 parents a563813e 587d39f5
Exists in 2.8 and in 6 other branches 2.2, 2.3, 2.4, 2.5, 2.6, 2.7

Merge pull request #6428 from portabilis/issue-6383

Altera a view de situação
database/migrations/2019_09_26_142534_remove_condicao_view_situacao.php 0 → 100755
... ... @@ -0,0 +1,31 @@
  1 +<?php
  2 +
  3 +use Illuminate\Support\Facades\DB;
  4 +use Illuminate\Database\Migrations\Migration;
  5 +
  6 +class RemoveCondicaoViewSituacao extends Migration
  7 +{
  8 + /**
  9 + * Run the migrations.
  10 + *
  11 + * @return void
  12 + */
  13 + public function up()
  14 + {
  15 + $sql = file_get_contents(database_path('sqls/views/relatorio.view_situacao-2019-09-30.sql'));
  16 +
  17 + DB::unprepared($sql);
  18 + }
  19 +
  20 + /**
  21 + * Reverse the migrations.
  22 + *
  23 + * @return void
  24 + */
  25 + public function down()
  26 + {
  27 + $sql = file_get_contents(database_path('sqls/views/relatorio.view_situacao-2019-09-26.sql'));
  28 +
  29 + DB::unprepared($sql);
  30 + }
  31 +}
... ...
database/sqls/views/relatorio.view_situacao-2019-09-26.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-2019-09-30.sql 0 → 100644
... ... @@ -0,0 +1,175 @@
  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 + ELSE matricula_turma.ativo = 1
  123 + OR matricula_turma.transferido
  124 + OR matricula_turma.reclassificado
  125 + OR matricula_turma.abandono
  126 + OR matricula_turma.remanejado
  127 + OR matricula_turma.falecido
  128 + AND matricula_turma.sequencial < (
  129 + (
  130 + SELECT max(mt.sequencial) AS max
  131 + FROM pmieducar.matricula_turma mt
  132 + WHERE mt.ref_cod_matricula = matricula.cod_matricula
  133 + )
  134 + )
  135 + END
  136 + )
  137 + AND
  138 + (
  139 + CASE
  140 + WHEN situacao_matricula.cod_situacao = 10 THEN
  141 + matricula.aprovado = ANY (ARRAY[1, 2, 3, 4, 5, 6, 12, 13, 14, 15])
  142 + WHEN situacao_matricula.cod_situacao = 9 THEN
  143 + (matricula.aprovado = ANY (ARRAY[1, 2, 3, 5, 12, 13, 14]))
  144 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  145 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  146 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  147 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  148 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  149 + WHEN
  150 + situacao_matricula.cod_situacao = 2 THEN
  151 + (matricula.aprovado = ANY (ARRAY[2, 14]))
  152 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  153 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  154 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  155 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  156 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  157 + WHEN
  158 + situacao_matricula.cod_situacao = 1 THEN
  159 + (matricula.aprovado = ANY (ARRAY[1, 12, 13]))
  160 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  161 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  162 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  163 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  164 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  165 + WHEN situacao_matricula.cod_situacao = ANY (ARRAY[3, 12, 13]) THEN
  166 + matricula.aprovado = situacao_matricula.cod_situacao
  167 + AND (NOT matricula_turma.reclassificado OR matricula_turma.reclassificado IS NULL)
  168 + AND (NOT matricula_turma.abandono OR matricula_turma.abandono IS NULL)
  169 + AND (NOT matricula_turma.remanejado OR matricula_turma.remanejado IS NULL)
  170 + AND (NOT matricula_turma.transferido OR matricula_turma.transferido IS NULL)
  171 + AND (NOT matricula_turma.falecido OR matricula_turma.falecido IS NULL)
  172 + ELSE
  173 + matricula.aprovado = situacao_matricula.cod_situacao
  174 + END
  175 + );
... ...
database/sqls/views/relatorio.view_situacao.sql
... ... @@ -119,9 +119,6 @@ WHERE TRUE
119 119 WHEN matricula.aprovado = 15 THEN
120 120 matricula_turma.ativo = 1
121 121 OR matricula_turma.falecido
122   - WHEN matricula.aprovado = 5 THEN
123   - matricula_turma.ativo = 1
124   - OR matricula_turma.reclassificado
125 122 ELSE matricula_turma.ativo = 1
126 123 OR matricula_turma.transferido
127 124 OR matricula_turma.reclassificado
... ...