Subversion Repositories bacoAlunos

Rev

Rev 1830 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
881 jmachado 1
package pt.estgp.estgweb.web.form.courseunits;
2
 
3
import org.apache.log4j.Logger;
1320 jmachado 4
import org.apache.struts.action.ActionErrors;
5
import org.apache.struts.action.ActionMapping;
881 jmachado 6
import pt.estgp.estgweb.domain.DomainObjectFactory;
7
import pt.estgp.estgweb.domain.views.CourseUnitEvaluationView;
8
import pt.estgp.estgweb.domain.views.CourseUnitView;
9
 
1320 jmachado 10
import javax.servlet.http.HttpServletRequest;
11
 
881 jmachado 12
/**
13
 * @author Jorge Machado
14
 * @date 2/Jun/2008
15
 * @time 14:28:59
16
 * @see pt.estgp.estgweb.web.form.blogs
17
 */
18
public class CourseUnitEvaluationForm extends CourseUnitsForm
19
{
20
    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);
21
 
22
    CourseUnitEvaluationView courseUnitEvaluationView = new CourseUnitEvaluationView();
23
 
24
    long courseUnitId;
25
 
26
 
27
    public CourseUnitEvaluationForm(CourseUnitEvaluationView courseUnitEvaluationView, CourseUnitView courseUnitView, long courseUnitId) {
28
        this.courseUnitEvaluationView = courseUnitEvaluationView;
29
        this.courseUnitView = courseUnitView;
30
        this.courseUnitId = courseUnitId;
31
    }
32
 
33
    public CourseUnitEvaluationForm()
34
    {
35
        courseUnitEvaluationView.setCourseUnitEvaluation(DomainObjectFactory.createCourseUnitEvaluationImpl());
36
    }
37
 
38
    public CourseUnitEvaluationView getCourseUnitEvaluationView() {
39
        return courseUnitEvaluationView;
40
    }
41
 
42
    public void setCourseUnitEvaluationView(CourseUnitEvaluationView courseUnitEvaluationView) {
43
        this.courseUnitEvaluationView = courseUnitEvaluationView;
44
    }
45
 
46
    public CourseUnitView getCourseUnitView() {
47
        return courseUnitView;
48
    }
49
 
50
    public void setCourseUnitView(CourseUnitView courseUnitView) {
51
        this.courseUnitView = courseUnitView;
52
    }
53
 
54
 
55
 
56
    public long getCourseUnitId() {
57
        return courseUnitId;
58
    }
59
 
60
    public void setCourseUnitId(long courseUnitId) {
61
        this.courseUnitId = courseUnitId;
62
    }
63
 
64
 
1320 jmachado 65
    public ActionErrors validateSave(ActionMapping mapping, HttpServletRequest request) {
66
 
67
        ActionErrors errors = new ActionErrors();
68
        //error.evaluation.report.total.aprovados.epocas.wrong=O somatório dos aprovados nas várias épocas não corresponde ao total de aprovados
69
        //error.evaluation.report.total.aprovados.grades
70
        boolean totalAprovadosCorrecto = courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovTotal() ==
71
                courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovNormal()
72
                +courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovFrequencia()
73
                +courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovRecurso()
74
                +courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovEspecial();
75
        if(!totalAprovadosCorrecto)
76
            addMessage(errors,request,"error.evaluation.report.total.aprovados.epocas.wrong");
1830 jmachado 77
        if(courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovTotal() != 0 &&
78
                courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprov1013()
79
                        + courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprov1416()
80
                        + courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprov1720() != courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovTotal() )
81
        {
1320 jmachado 82
            addMessage(errors,request,"error.evaluation.report.total.aprovados.grades");
1830 jmachado 83
        }
84
        else
85
        {
86
            if(courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovTotal() > 0)
87
            {
88
                courseUnitEvaluationView.getCourseUnitEvaluation().setNumAlunosAprov1013Percent(
89
                        (100.0f * courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprov1013()) / courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovTotal()
90
                );
91
                courseUnitEvaluationView.getCourseUnitEvaluation().setNumAlunosAprov1416Percent(
92
                        (100.0f * courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprov1416()) / courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovTotal()
93
                );
94
                courseUnitEvaluationView.getCourseUnitEvaluation().setNumAlunosAprov1720Percent(
95
                        (100.0f * courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprov1720()) / courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovTotal()
96
                );
97
            }
98
            else
99
            {
100
                courseUnitEvaluationView.getCourseUnitEvaluation().setNumAlunosAprov1013Percent(0);
101
                courseUnitEvaluationView.getCourseUnitEvaluation().setNumAlunosAprov1416Percent(0);
102
                courseUnitEvaluationView.getCourseUnitEvaluation().setNumAlunosAprov1720Percent(0);
103
            }
104
        }
1320 jmachado 105
 
106
 
1841 jmachado 107
        int inscritos = courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosInscritos();
108
        boolean aprovadosSemElementos =
109
                ((courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosAprovTotal()
110
                        + courseUnitEvaluationView.getCourseUnitEvaluation().getNumAlunosSemElementosAvaliacao())
111
                        <= inscritos);
112
        if(!aprovadosSemElementos)
113
            addMessage(errors,request,"error.evaluation.report.aprovados.sem.elementos.big.inscritos");
1320 jmachado 114
 
115
 
1841 jmachado 116
 
1320 jmachado 117
        return errors;
118
    }
881 jmachado 119
}