public function provaCorrigirDAO(ProvaRespondida $prova) { $banco = $this->getBancoDados(); $sessionFacade = new SessionFacade($banco); $prov = $prova->getProva(); $nota = 0; #echo "<br>Corrigindo....".$prov->getQtdePerguntas(); for ($i=0; $i < $prov->getQtdePerguntas(); $i++ ){ $prova_pergunta = $prov->getPergunta($i); $peso = $prova_pergunta->getPeso(); #echo "<br>Peso: $peso...."; /* DISSERTATIVA */ if ($prova_pergunta->getTipoPergunta()->getId() == "1"){ /* Dissertativa nao faz correção */ } /* MULTIPLA ESCOLHA */ if ($prova_pergunta->getTipoPergunta()->getId() == "2"){ $valor_corrigido_pergunta = 0; for ($j=0; $j<$prova_pergunta->getQtdeResposta(); $j++){ $resposta = $prova_pergunta->getResposta($j); $respondidas = $prova->getRespostasPerguntaItem($prova_pergunta->getId(), $resposta->getId()); if ($respondidas != null){ if ($resposta->getRespostaCorreta() == "1"){ $valor_corrigido_pergunta = 1 * $peso; $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 1 , $valor_corrigido_pergunta); }else{ $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 0, 0); } #echo "Achou!!! = $valor_corrigido_pergunta = "; }#else echo " - Nao achou. "; } #echo "22222 ".$prova_pergunta->getId()."=".$valor_corrigido_pergunta."="; $prova->setValorCorrigidoPergunta( $prova_pergunta->getId(), $valor_corrigido_pergunta ); } /* VERDADEIRO OU FALSO */ if ($prova_pergunta->getTipoPergunta()->getId() == "3"){ $valor_corrigido_pergunta = 0; for ($j=0; $j<$prova_pergunta->getQtdeResposta(); $j++){ $resposta = $prova_pergunta->getResposta($j); $respondidas = $prova->getRespostasPerguntaItem($prova_pergunta->getId(), $resposta->getId()); #echo "<br>"; #print_r($respondidas); if ($respondidas != null){ #echo "Correto? ( ".$resposta->getRespostaCorreta()." ) -(".strlen($respondidas[3]).") OR (".$resposta->getRespostaCorreta().") - (".strlen($respondidas[3]).")"; if (($resposta->getRespostaCorreta() == "1" AND strlen($respondidas[3])>0) OR ($resposta->getRespostaCorreta() == "0" AND strlen($respondidas[3])==0)){ $valor_corrigido_pergunta += (1 / $prova_pergunta->getQtdeResposta())*$peso; $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 1 , (1 / $prova_pergunta->getQtdeResposta())*$peso ); #echo " -> CORRETO!!!!!! <br>"; }else{ $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 0, 0 ); #echo " -> ERRADO! <br>"; } } } $prova->setValorCorrigidoPergunta( $prova_pergunta->getId(), $valor_corrigido_pergunta ); } /* COMPLETE */ if ($prova_pergunta->getTipoPergunta()->getId() == "4"){ $valor_corrigido_pergunta = 0; for ($j=0; $j<$prova_pergunta->getQtdeResposta(); $j++){ $resposta = $prova_pergunta->getResposta($j); $respondidas = $prova->getRespostasPerguntaItem($prova_pergunta->getId(), $resposta->getId()); #echo "<br>"; #print_r($respondidas); #echo "<br>"; if ($respondidas != null){ #echo "Resposta Filho".$resposta->getRespostaFilho()->getId(); #echo "<br>"; $resposta_do_item = $resposta->getRespostaFilho()->getRespostaTexto(); $resposta_do_aluno = $respondidas[3]; /* Faz a verificação da resposta do aluno. Faz a comparação do que o aluno fez com a resposta do professor. Tolerância de 5% */ if (str_limpo($resposta_do_item) == str_limpo($resposta_do_aluno) or _similar(str_limpo($resposta_do_item),str_limpo($resposta_do_aluno))>95) { $valor_corrigido_pergunta += (1 / $prova_pergunta->getQtdeResposta())*$peso; $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 1 , (1 / $prova_pergunta->getQtdeResposta())*$peso ); #echo " -> CORRETO!!!!!! <br>"; }else{ $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 0, 0 ); #echo " -> ERRADO! <br>"; } /* if (($resposta->getRespostaCorreta() == "1" AND strlen($respondidas[3])>0) OR ($resposta->getRespostaCorreta() == "0" AND strlen($respondidas[3])==0)){ $valor_corrigido_pergunta += (1 / $prova_pergunta->getQtdeResposta())*$peso; $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 1 , (1 / $prova_pergunta->getQtdeResposta())*$peso ); #echo " -> CORRETO!!!!!! <br>"; }else{ $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 0, 0 ); #echo " -> ERRADO! <br>"; } */ } } $prova->setValorCorrigidoPergunta( $prova_pergunta->getId(), $valor_corrigido_pergunta ); } /* LACUNA */ if ($prova_pergunta->getTipoPergunta()->getId() == "5"){ $valor_corrigido_pergunta = 0; for ($j=0; $j<$prova_pergunta->getQtdeResposta(); $j++){ $resposta = $prova_pergunta->getResposta($j); $respondidas = $prova->getRespostasPerguntaItem($prova_pergunta->getId(), $resposta->getId()); #echo "<br>"; #print_r($respondidas); #echo "<br>"; if ($respondidas != null){ #echo "Resposta Filho".$resposta->getRespostaFilho()->getId(); #echo "<br>"; if ($resposta->getRespostaFilho()->getId() == $respondidas[3]){ $valor_corrigido_pergunta += (1 / $prova_pergunta->getQtdeResposta())*$peso; $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 1 , (1 / $prova_pergunta->getQtdeResposta())*$peso ); #echo " -> CORRETO!!!!!! <br>"; }else{ $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 0, 0 ); #echo " -> ERRADO! <br>"; } /* if (($resposta->getRespostaCorreta() == "1" AND strlen($respondidas[3])>0) OR ($resposta->getRespostaCorreta() == "0" AND strlen($respondidas[3])==0)){ $valor_corrigido_pergunta += (1 / $prova_pergunta->getQtdeResposta())*$peso; $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 1 , (1 / $prova_pergunta->getQtdeResposta())*$peso ); #echo " -> CORRETO!!!!!! <br>"; }else{ $prova->setValorCorrigidoResposta( $prova_pergunta->getId(), $resposta->getId(), 0, 0 ); #echo " -> ERRADO! <br>"; } */ } } $prova->setValorCorrigidoPergunta( $prova_pergunta->getId(), $valor_corrigido_pergunta ); } #echo "<hr style='color:red'>->($valor_corrigido_pergunta)"; $nota += $valor_corrigido_pergunta; } #echo "Nota: Parcial($nota)"; $prova->setNota($nota); }