Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1840 → Rev 1841

/branches/v3/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java
8,7 → 8,9
import org.json.JSONException;
import org.json.JSONObject;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.CourseUnitEvaluationImpl;
import pt.estgp.estgweb.domain.CourseUnitImpl;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.courses.coursereport.CourseReportUtils;
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.*;
110,13 → 112,14
ReportCourseDocument reportCourseDocument = new ReportCourseDocument();
reportCourseDocument.init();
 
List<CourseUnit> units = DaoFactory.getCourseUnitDaoImpl().loadByCourseSiges(courseCode, year);
 
//FIRST SERVICE TO CALL TO OBTAIN UNITS AND EVALUATIONS
//THIS IS THE BASE FOR THE REMAIN SERVICE CALLS
List<DocumentSection> courseUnitSections = updateCleanCourseUnitSections(courseCode, year, reportCourseDocument, units);
List<DocumentSection> courseUnitSections = updateCleanCourseUnitSections(courseCode, year, reportCourseDocument);
 
//A tabela de resultados globais não vai ser utilizada
//PARA CORRER ESTE SERVICO A PARTIR DA INTERFACE É PRECISO
//PERCEBER QUE DEPENDE DO SERVICO DE UPDATE DAS SECOES DAS COURSEUNITS
UnitsLearningResultsTable unitsLearningResultsTable = updateCleanLearningResultsFromCourseUnitsSections(reportCourseDocument);
 
 
152,7 → 155,8
* @param reportCourseDocument
* @return UnitsLearningResultsTable
*/
public UnitsLearningResultsTable updateCleanLearningResultsFromCourseUnitsSections(ReportCourseDocument reportCourseDocument) {
public UnitsLearningResultsTable updateCleanLearningResultsFromCourseUnitsSections(ReportCourseDocument reportCourseDocument)
{
CourseUnitsReportsSection unitReportsSection = (CourseUnitsReportsSection) reportCourseDocument.findDocumentSection(CourseUnitsReportsSection.class);
 
LearningResultsSection learningResultsSection = (LearningResultsSection) reportCourseDocument.findDocumentSection(LearningResultsSection.class);
187,8 → 191,9
uc.setSigesCode(unitSection.getSigesCode());
if(unitSection.getCourseUnitEvaluation() != null)
{
uc.setAlunosInscritos(Integer.parseInt(unitSection.getCourseUnitEvaluation().getNumAlunosInscritos()));
 
uc.setAlunosInscritos(unitSection.getCourseUnitEvaluation().getNumAlunosInscritos());
 
uc.setAprovados1013(unitSection.getCourseUnitEvaluation().getNumAlunosAprov1013());
uc.setAprovados1416(unitSection.getCourseUnitEvaluation().getNumAlunosAprov1416());
uc.setAprovados1720(unitSection.getCourseUnitEvaluation().getNumAlunosAprov1720());
230,6 → 235,8
});
}
 
 
//UPDATE TOTAIS DE SEMESTRES E DE ANOS
float totalCumProgPercentGlobal = 0;
int totalInscritosGlobal = 0;
float totalReprovadosPercentGlobal = 0;
343,12 → 350,14
* @param courseCode
* @param year
* @param reportCourseDocument
* @param units
* @throws JSONException
* @throws IOException
* @return a list of CourseUnitSection
*/
public List<DocumentSection> updateCleanCourseUnitSections(String courseCode, String year, ReportCourseDocument reportCourseDocument, List<CourseUnit> units) throws JSONException, IOException {
public List<DocumentSection> updateCleanCourseUnitSections(String courseCode, String year, ReportCourseDocument reportCourseDocument) throws JSONException, IOException {
 
List<CourseUnit> units = DaoFactory.getCourseUnitDaoImpl().loadByCourseSiges(courseCode, year);
 
String courseUnitSectionsJson = loadCourseEvaluationSections(courseCode,year);
JSONObject object = new JSONObject(courseUnitSectionsJson);
JSONArray evaluations = object.getJSONArray("evaluations");
364,6 → 373,14
{
sectionFound = CourseReportUtils.createCourseUnitEvaluationSection((CourseUnitImpl) cu);
}
if(sectionFound.getCourseUnitEvaluation() == null)
{
CourseUnitEvaluationImpl courseUnitEvaluation = DomainObjectFactory.createCourseUnitEvaluationImpl();
courseUnitEvaluation.setAutoGeneratedCourseReport(true);
DaoFactory.getCourseUnitEvaluationDaoImpl().save(courseUnitEvaluation);
cu.setCourseUnitEvaluation(courseUnitEvaluation);
sectionFound.setCourseUnitEvaluation(courseUnitEvaluation);
}
unitReportsSection.getSubSections().add(sectionFound);
}
return subSections;
374,7 → 391,7
public static void main(String[] args) throws IOException, JSONException {
AbstractDao.getCurrentSession().beginTransaction();
 
ReportCourseDocument reportCourseDocument = new CourseReportServices().createNewCourseReportDocument("9119","201516");
ReportCourseDocument reportCourseDocument = new CourseReportServices().createNewCourseReportDocument("9005","201516");
System.out.println(reportCourseDocument.toJson());
AbstractDao.getCurrentSession().getTransaction().commit();
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/CourseReportUtils.java
1,9 → 1,6
package pt.estgp.estgweb.services.courses.coursereport;
 
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.CourseUnitEvaluationImpl;
import pt.estgp.estgweb.domain.CourseUnitImpl;
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.courseunitreport.CourseUnitSection;
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.courseunitreport.components.ReportTeacher;
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseUnitEvaluationImpl.java
214,7 → 214,7
};
cuv.setClosed(true);
cuv.setNumAlunosAprov1013(12);
cuv.setNumAlunosInscritos("" + 20);
cuv.setNumAlunosInscritos(20);
cuv.setQualConclusoes("conclusoes");
SaveCourseUnitEvaluation s = new SaveCourseUnitEvaluation();
CourseUnit cu = new CourseUnitImpl();
/branches/v3/impl/src/java/pt/estgp/estgweb/web/form/courseunits/CourseUnitEvaluationForm.java
103,21 → 103,17
}
}
 
try{
int inscritos = 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(NumberFormatException e)
{
addMessage(errors,request,"error.evaluation.report.is.not.a.number");
}
int inscritos = 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");
 
 
 
return errors;
}
}
/branches/v3/impl/src/updates/version/updateRepositorioDigital
54,3 → 54,6
update courseunitevaluation set numAlunosAprov1013 = numAlunosAprov1013Percent * numAlunosAprovTotal / 100 where id > 683;
update courseunitevaluation set numAlunosAprov1416 = numAlunosAprov1416Percent * numAlunosAprovTotal / 100 where id > 683;
update courseunitevaluation set numAlunosAprov1720 = numAlunosAprov1720Percent * numAlunosAprovTotal / 100 where id > 683;
 
 
ALTER TABLE courseunitevaluation CHANGE COLUMN numAlunosInscritos numAlunosInscritos INT(10) NULL DEFAULT 0 ;
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml
356,12 → 356,16
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="autoGeneratedCourseReport" type="boolean">
<!-- Autogenerated Evaluations should be writable in CourseReport Evaluation -->
<column name="autoGeneratedCourseReport" default="false"/>
</property>
<property name="closed" type="boolean"/>
<!-- todo update aos do ano anterior para meter todos os evaluations salvos com teacherComplete = true -->
<property name="teacherComplete" type="boolean" index="teacherCompleteIndex">
<column name="teacherComplete" default="true"/>
</property>
<property name="numAlunosInscritos" type="text"/>
<property name="numAlunosInscritos" type="int"/>
<property name="numAlunosSemElementosAvaliacao" type="int"/>
 
<property name="numAlunosAprovFrequencia" type="int"/>