Commit 55baf87f7586d9cdbd5d4cf015fcfab460e6a80f

Authored by Lucas D'Avila
1 parent ea275e51
Exists in master

Adicionado configuração para desabilitar rematricula automatica.

* Por padrão a rematricula continua ocorrendo ao inicializar o ano
  letivo, a menos que a configuração seja habilitada.
ieducar/configuration/ieducar.ini
... ... @@ -147,6 +147,10 @@ app.recaptcha.options.secure = true
147 147 app.recaptcha.options.lang = pt
148 148 app.recaptcha.options.theme = white
149 149  
  150 +; por padrao o sistema efetua a rematricula automatica de alunos ao inicializar um novo ano letivo,
  151 +; esta configuracao permite desativar este comportamento.
  152 +;app.regras_negocio.desativar_rematricula_automatica = true
  153 +
150 154 [development : production]
151 155 ; Herda configurações de banco de dados
152 156  
... ...
ieducar/intranet/educar_iniciar_ano_letivo.php
... ... @@ -156,94 +156,23 @@ class indice extends clsCadastro
156 156 */
157 157  
158 158 $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_cod_escola,$this->ano,$this->pessoa_logada,$this->pessoa_logada,1,null,null,1);
159   - if(!$obj_ano_letivo->edita())
160   - {
161   - echo "<script>
  159 +
  160 + if(! $obj_ano_letivo->edita()) {
  161 + die("<script>
162 162 alert('Erro ao finalizar o ano letivo!');
163 163 window.location = 'educar_escola_det.php?cod_escola={$this->ref_cod_escola}#ano_letivo';
164   - </script>";
  164 + </script>");
165 165 }
166   - else
167   - {
168   - // lista todos alunos desse Escola que tem a ultima matricula no ano anterior e situacao APROVADO
169   - $obj_matricula = new clsPmieducarMatricula();
170   - $lst_matricula = $obj_matricula->lista( null,null,$this->ref_cod_escola,null,null,null,null,1,null,null,null,null,1,$this->ano-1,null,null,1 );
171   -
172   - if ( is_array($lst_matricula))
173   - {
174   - foreach ($lst_matricula AS $key => $matricula)
175   - {
176   - $obj_sequencia = new clsPmieducarSequenciaSerie();
177   - $lst_sequencia = $obj_sequencia->lista( $matricula['ref_ref_cod_serie'],null,null,null,null,null,null,null,1 );
178   - // verifica qual eh a serie da sequencia
179   -
180   - if ( is_array($lst_sequencia) && (count($lst_sequencia) == 1) )
181   - {
182   -// echo "<pre>"; print_r($lst_sequencia);die;
183   - $det_sequencia = array_shift($lst_sequencia);
184   - $serie_destino = $det_sequencia["ref_serie_destino"];
185   -
186   -
187   - $obj_serie = new clsPmieducarSerie( $serie_destino );
188   - $det_serie = $obj_serie->detalhe();
189   -
190   - //verificar aqui se a escola possui o curso
191   -// echo "<pre>"; print_r($matricula); die();
192   - $obj_escola_curso = new clsPmieducarEscolaCurso($this->ref_cod_escola, $det_serie["ref_cod_curso"]);
193   - if (is_array($obj_escola_curso->detalhe()))
194   - {
195   - $obj = new clsPmieducarMatricula( $matricula['cod_matricula'],null,null,null,$this->pessoa_logada,null,null,null,null,null,1,null,0 );
196   - $editou = $obj->edita();
197   - if( $editou )
198   - {
199   - $obj = new clsPmieducarMatricula( null,null,$this->ref_cod_escola,$serie_destino,null,$this->pessoa_logada,$matricula['ref_cod_aluno'],3,null,null,1,$this->ano,1,null,null,null,null,$det_serie["ref_cod_curso"] );
200   - $cadastra = $obj->cadastra();
201   - if( !$cadastra )
202   - {
203   - echo "<script>
204   - alert('Erro ao matricular os alunos da Escola!');
205   - window.location = 'educar_escola_det.php?cod_escola={$this->ref_cod_escola}#ano_letivo';
206   - </script>";
207   - }
208   - }
209   - }
210   - }
211   - }
212   - }
213 166  
214   - // lista todos alunos desse Escola que tem a ultima matricula no ano anterior e situacao REPROVADO
215   - $obj_matricula = new clsPmieducarMatricula();
216   - $lst_matricula = $obj_matricula->lista( null,null,$this->ref_cod_escola,null,null,null,null,2,null,null,null,null,1,$this->ano-1,null,null,1 );
217   - if ( is_array($lst_matricula) )
218   - {
219   -// echo "<pre>"; print_r($lst_matricula);die;
220   - foreach ($lst_matricula AS $key => $matricula)
221   - {
222   - $obj_serie = new clsPmieducarSerie( $matricula['ref_ref_cod_serie'] );
223   - $det_serie = $obj_serie->detalhe();
224   -
225   - $obj = new clsPmieducarMatricula( $matricula['cod_matricula'],null,null,null,$this->pessoa_logada,null,null,null,null,null,1,null,0 );
226   - $editou1 = $obj->edita();
227   - if( $editou1 )
228   - {
229   - $obj = new clsPmieducarMatricula( null,null,$this->ref_cod_escola,$matricula['ref_ref_cod_serie'],null,$this->pessoa_logada,$matricula['ref_cod_aluno'],3,null,null,1,$this->ano,1,null,null,null,null,$det_serie["ref_cod_curso"] );
230   - $cadastra1 = $obj->cadastra();
231   - if( !$cadastra1 )
232   - {
233   - echo "<script>
234   - alert('Erro ao matricular os alunos da Escola!');
235   - window.location = 'educar_escola_det.php?cod_escola={$this->ref_cod_escola}#ano_letivo';
236   - </script>";
237   - }
238   - }
239   - }
240   - }
241   -
242   - echo "<script>
243   - alert('Ano letivo inicializado com sucesso!');
244   - window.location = 'educar_escola_det.php?cod_escola={$this->ref_cod_escola}#ano_letivo';
245   - </script>";
  167 + if (! $GLOBALS['coreExt']['Config']->app->regras_negocio->desativar_rematricula_automatica) {
  168 + $this->rematricularAlunosAprovados();
  169 + $this->rematricularAlunosReprovados();
246 170 }
  171 +
  172 + die("<script>
  173 + alert('Ano letivo inicializado com sucesso!');
  174 + window.location = 'educar_escola_det.php?cod_escola={$this->ref_cod_escola}#ano_letivo';
  175 + </script>");
247 176 }
248 177  
249 178 function finalizarAnoLetivo()
... ... @@ -298,7 +227,69 @@ class indice extends clsCadastro
298 227 }
299 228 }
300 229  
  230 + function rematricularAlunosAprovados() {
  231 + $obj_matricula = new clsPmieducarMatricula();
  232 + $lst_matricula = $obj_matricula->lista( null,null,$this->ref_cod_escola,null,null,null,null,1,null,null,null,null,1,$this->ano-1,null,null,1 );
  233 +
  234 + if (! is_array($lst_matricula))
  235 + return;
  236 +
  237 + foreach ($lst_matricula AS $key => $matricula) {
  238 + $obj_sequencia = new clsPmieducarSequenciaSerie();
  239 + $lst_sequencia = $obj_sequencia->lista( $matricula['ref_ref_cod_serie'],null,null,null,null,null,null,null,1 );
  240 +
  241 + if ( is_array($lst_sequencia) && (count($lst_sequencia) == 1) ) {
  242 + $det_sequencia = array_shift($lst_sequencia);
  243 + $serie_destino = $det_sequencia["ref_serie_destino"];
301 244  
  245 + $obj_serie = new clsPmieducarSerie( $serie_destino );
  246 + $det_serie = $obj_serie->detalhe();
  247 +
  248 + $obj_escola_curso = new clsPmieducarEscolaCurso($this->ref_cod_escola, $det_serie["ref_cod_curso"]);
  249 +
  250 + if (is_array($obj_escola_curso->detalhe())) {
  251 + $obj = new clsPmieducarMatricula( $matricula['cod_matricula'],null,null,null,$this->pessoa_logada,null,null,null,null,null,1,null,0 );
  252 + $editou = $obj->edita();
  253 + if( $editou ) {
  254 + $obj = new clsPmieducarMatricula( null,null,$this->ref_cod_escola,$serie_destino,null,$this->pessoa_logada,$matricula['ref_cod_aluno'],3,null,null,1,$this->ano,1,null,null,null,null,$det_serie["ref_cod_curso"] );
  255 + $cadastra = $obj->cadastra();
  256 + if( !$cadastra ) {
  257 + echo "<script>
  258 + alert('Erro ao matricular os alunos da Escola!');
  259 + window.location = 'educar_escola_det.php?cod_escola={$this->ref_cod_escola}#ano_letivo';
  260 + </script>";
  261 + }
  262 + }
  263 + }
  264 + }
  265 + }
  266 + }
  267 +
  268 + function rematricularAlunosReprovados() {
  269 + $obj_matricula = new clsPmieducarMatricula();
  270 + $lst_matricula = $obj_matricula->lista( null,null,$this->ref_cod_escola,null,null,null,null,2,null,null,null,null,1,$this->ano-1,null,null,1 );
  271 +
  272 + if (! is_array($lst_matricula) )
  273 + return;
  274 +
  275 + foreach ($lst_matricula AS $key => $matricula) {
  276 + $obj_serie = new clsPmieducarSerie( $matricula['ref_ref_cod_serie'] );
  277 + $det_serie = $obj_serie->detalhe();
  278 +
  279 + $obj = new clsPmieducarMatricula( $matricula['cod_matricula'],null,null,null,$this->pessoa_logada,null,null,null,null,null,1,null,0 );
  280 + $editou1 = $obj->edita();
  281 + if( $editou1 ) {
  282 + $obj = new clsPmieducarMatricula( null,null,$this->ref_cod_escola,$matricula['ref_ref_cod_serie'],null,$this->pessoa_logada,$matricula['ref_cod_aluno'],3,null,null,1,$this->ano,1,null,null,null,null,$det_serie["ref_cod_curso"] );
  283 + $cadastra1 = $obj->cadastra();
  284 + if( !$cadastra1 ) {
  285 + echo "<script>
  286 + alert('Erro ao matricular os alunos da Escola!');
  287 + window.location = 'educar_escola_det.php?cod_escola={$this->ref_cod_escola}#ano_letivo';
  288 + </script>";
  289 + }
  290 + }
  291 + }
  292 + }
302 293 }
303 294  
304 295 // cria uma extensao da classe base
... ...