package pt.estgp.estgweb.web.form.courseunits;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.views.CourseUnitEvaluationView;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import javax.servlet.http.HttpServletRequest;
/**
* @author Jorge Machado
* @date 2/Jun/2008
* @time 14:28:59
* @see pt.estgp.estgweb.web.form.blogs
*/
public class CourseUnitEvaluationForm
extends CourseUnitsForm
{
private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger =
1.5.0/docs/api/java/util/logging/Logger.html">Logger.
getLogger(CourseUnitEvaluationForm.
class);
CourseUnitEvaluationView courseUnitEvaluationView =
new CourseUnitEvaluationView
();
long courseUnitId
;
public CourseUnitEvaluationForm
(CourseUnitEvaluationView courseUnitEvaluationView, CourseUnitView courseUnitView,
long courseUnitId
) {
this.
courseUnitEvaluationView = courseUnitEvaluationView
;
this.
courseUnitView = courseUnitView
;
this.
courseUnitId = courseUnitId
;
}
public CourseUnitEvaluationForm
()
{
courseUnitEvaluationView.
setCourseUnitEvaluation(DomainObjectFactory.
createCourseUnitEvaluationImpl());
}
public CourseUnitEvaluationView getCourseUnitEvaluationView
() {
return courseUnitEvaluationView
;
}
public void setCourseUnitEvaluationView
(CourseUnitEvaluationView courseUnitEvaluationView
) {
this.
courseUnitEvaluationView = courseUnitEvaluationView
;
}
public CourseUnitView getCourseUnitView
() {
return courseUnitView
;
}
public void setCourseUnitView
(CourseUnitView courseUnitView
) {
this.
courseUnitView = courseUnitView
;
}
public long getCourseUnitId
() {
return courseUnitId
;
}
public void setCourseUnitId
(long courseUnitId
) {
this.
courseUnitId = courseUnitId
;
}
public ActionErrors validateSave
(ActionMapping mapping, HttpServletRequest request
) {
ActionErrors errors =
new ActionErrors
();
//error.evaluation.report.total.aprovados.epocas.wrong=O somatório dos aprovados nas várias épocas não corresponde ao total de aprovados
//error.evaluation.report.total.aprovados.grades
boolean totalAprovadosCorrecto = courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovTotal() ==
courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovNormal()
+courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovFrequencia()
+courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovRecurso()
+courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovEspecial();
if(!totalAprovadosCorrecto
)
addMessage
(errors,request,
"error.evaluation.report.total.aprovados.epocas.wrong");
if(courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovTotal() !=
0 &&
courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprov1013()
+ courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprov1416()
+ courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprov1720() != courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovTotal() )
{
addMessage
(errors,request,
"error.evaluation.report.total.aprovados.grades");
}
else
{
if(courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovTotal() > 0
)
{
courseUnitEvaluationView.
getCourseUnitEvaluation().
setNumAlunosAprov1013Percent(
(100.0f
* courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprov1013()) / courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovTotal()
);
courseUnitEvaluationView.
getCourseUnitEvaluation().
setNumAlunosAprov1416Percent(
(100.0f
* courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprov1416()) / courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovTotal()
);
courseUnitEvaluationView.
getCourseUnitEvaluation().
setNumAlunosAprov1720Percent(
(100.0f
* courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprov1720()) / courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovTotal()
);
}
else
{
courseUnitEvaluationView.
getCourseUnitEvaluation().
setNumAlunosAprov1013Percent(0
);
courseUnitEvaluationView.
getCourseUnitEvaluation().
setNumAlunosAprov1416Percent(0
);
courseUnitEvaluationView.
getCourseUnitEvaluation().
setNumAlunosAprov1720Percent(0
);
}
}
try{
int inscritos =
1.5.0/docs/api/java/lang/Integer.html">Integer.
parseInt(courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosInscritos());
boolean aprovadosSemElementos =
((courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosAprovTotal()
+ courseUnitEvaluationView.
getCourseUnitEvaluation().
getNumAlunosSemElementosAvaliacao())
<= inscritos
);
if(!aprovadosSemElementos
)
addMessage
(errors,request,
"error.evaluation.report.aprovados.sem.elementos.big.inscritos");
}catch(1.5.0/docs/api/java/lang/NumberFormatException.html">NumberFormatException e
)
{
addMessage
(errors,request,
"error.evaluation.report.is.not.a.number");
}
return errors
;
}
}