package se.idega.idegaweb.commune.school.business;
import java.util.Collection;
import java.util.ArrayList;
import java.util.Iterator;
import java.rmi.RemoteException;
import javax.ejb.FinderException;
import javax.ejb.CreateException;
import com.idega.data.IDOLookup;
import com.idega.block.school.data.School;
import com.idega.presentation.IWContext;
import se.idega.idegaweb.commune.school.data.SCBCode;
import se.idega.idegaweb.commune.school.data.SCBCodeHome;
import se.idega.idegaweb.commune.school.data.SchoolMarksHome;
import se.idega.idegaweb.commune.school.data.SchoolMarks;
import se.idega.idegaweb.commune.school.data.SchoolStatisticsDataHome;
import se.idega.idegaweb.commune.school.data.SchoolStatisticsData;
/**
* School marks business
* <p>
* $Id: SchoolMarksBusinessBean.java,v 1.12 2004/01/28 13:42:37 staffan Exp $
*
* I will add some comments on the school marks calculation technique here later.
* However I am waiting for Nacka to present me that specification.
*
* Meanwhile if anyone has questions about school statistics calculation please
* contact either Kelly at Lindman IT AB or
* Hans Wahlander, Jenny Dahlborg at Agura IT or
* Jill Salander at Nacka / Team SF
*
* @author <a href="mailto:kjell@lindman.com">Kjell Lindman</a>
* @author <a href="http://www.ncmedia.com">Anders Lindman</a>
* @version $version$
*/
public class SchoolMarksBusinessBean extends com.idega.business.IBOServiceBean implements SchoolMarksBusiness {
private static final int TOTAL_MARKS = 16;
private static final int MERITE_G = 10;
private static final int MERITE_VG = 15;
private static final int MERITE_MVG = 20;
private String MARK_G = "G";
private String MARK_VG = "VG";
private String MARK_MVG = "MVG";
private String MARK_IG1 = "1";
private String MARK_IG2 = "2";
private static int sumTotalMerit = 0;
private static int numberOfSchools = 0;
private static float _sumMeriteValue = 0;
private static float _sumMarksPoints = 0;
private static float _sumAuthPoints = 0;
private static float _sumMarksNumberShare = 0;
private static float _sumMarksFailed = 0;
private static float _sumMarksNoGoal = 0;
private int _sumEnglishEG = 0;
private int _sumMathsEG = 0;
private int _sumSwedishEG = 0;
private int _sumSwedish2EG = 0;
//private int _sumTotalEG = 0;
private int _sumEnglishG = 0;
private int _sumMathsG = 0;
private int _sumSwedishG = 0;
private int _sumSwedish2G = 0;
//private int _sumTotalG = 0;
private int _sumEnglishVG = 0;
private int _sumMathsVG = 0;
private int _sumSwedishVG = 0;
private int _sumSwedish2VG = 0;
//private int _sumTotalVG = 0;
private int _sumEnglishMVG = 0;
private int _sumMathsMVG = 0;
private int _sumSwedishMVG = 0;
private int _sumSwedish2MVG = 0;
//private int _sumTotalMVG = 0;
private static int _tallyMeriteValue = 0;
private static int _tallyMarksPoints = 0;
private static int _tallyAuthPoints = 0;
private static int _tallyMarksNumberShare = 0;
private static int _tallyMarksFailed = 0;
private static int _tallyMarksNoGoal = 0;
private int _gNumber = 0;
private int _vgNumber = 0;
private int _mvgNumber = 0;
private int _ig1Number = 0;
public String getBundleIdentifier() {
return se.idega.idegaweb.commune.presentation.CommuneBlock.IW_BUNDLE_IDENTIFIER;
}
/**
* Gets School marks statistics
* @return Collection of SchoolStatistics
* @see se.idega.idegaweb.commune.school.data.SCBCode
* @see se.idega.idegaweb.commune.school.business.SchoolStatistics
*/
public Collection findSchoolMarksStatistics(IWContext iwc) {
Collection schoolIDs = null;
Collection stats = new ArrayList();
schoolIDs = findAllSchoolIDsWithStatistics();
Iterator iter = schoolIDs.iterator();
while (iter.hasNext()) {
SCBCode scb = (SCBCode) iter.next();
String scbCode = scb.getCode();
School school = scb.getSchool();
// if(scbCode.compareTo("018201001") == 0) {
SchoolStatistics sc = new SchoolStatistics(iwc, scbCode, school.getSchoolName(), school.getManagementTypeId());
stats.add(sc);
// }
}
return stats;
}
public SchoolStatistics findCommuneStatistics(IWContext iwc) {
SchoolStatistics sc = new SchoolStatistics(iwc, "", "", null);
return sc;
}
/**
* Finds all schools that have statistics attached
* @return Collection of SCBcodes
* @see se.idega.idegaweb.commune.school.data.SCBCode
*/
public Collection findAllSchoolIDsWithStatistics() {
try {
SCBCodeHome home = (SCBCodeHome) IDOLookup.getHome(SCBCode.class);
return home.findAll();
} catch (RemoteException e) {
e.printStackTrace();
} catch (FinderException e) {
e.printStackTrace();
}
return null;
}
/**
*/
public void calculateStatistics(String scbCode) {
PercentValue mv = new PercentValue();
PercentValue mp = new PercentValue();
PercentValue ap = new PercentValue();
PercentValue mns = new PercentValue();
PercentValue mf = new PercentValue();
PercentValue mng = new PercentValue();
mv.number = "";
mv.percent = "";
if(scbCode.length() == 0) {
return;
}
SchoolStatisticsData ssd = getStoredValues(scbCode);
if (ssd != null) {
return;
}
int totalMerit = 0;
int meritCount = 0;
try {
SchoolMarksHome home = (SchoolMarksHome) IDOLookup.getHome(SchoolMarks.class);
Collection allmarks = home.findBySCBCode(scbCode);
Iterator iter = allmarks.iterator();
totalMerit = 0;
meritCount = 0;
_gNumber = 0;
_vgNumber = 0;
_mvgNumber = 0;
_ig1Number = 0;
resetSchoolValues();
while (iter.hasNext()) {
SchoolMarks marks = null;
Object o = iter.next();
if (o != null) {
marks = (SchoolMarks) o;
int tmc = getStudentMeritValue(marks);
// System.out.println(""+tmc);
if (tmc > 0) {
meritCount++;
}
totalMerit += tmc;
}
}
float mg = Float.parseFloat(""+MERITE_G);
float mvg = Float.parseFloat(""+MERITE_VG);
float mmvg = Float.parseFloat(""+MERITE_MVG);
float fg = Float.parseFloat(""+_gNumber);
float fvg = Float.parseFloat(""+_vgNumber);
float fmvg = Float.parseFloat(""+_mvgNumber);
System.out.println("GNUMBER VGNUMBER MVGNUMBER"+_gNumber+" " +_vgNumber + " "+_mvgNumber);
System.out.println("MERITCOUND TOTALMERIT"+meritCount+" " +totalMerit);
Float fr = new Float(0);
if((fg + fvg + fmvg) != 0) {
fr = new Float((((fg * mg) + (fvg * mvg) + (fmvg * mmvg))/(fg + fvg + fmvg)));
}
float x = (float) (Math.rint(fr.floatValue() * 100) / 100);
mp.number = ""+x;
mp.percent = " ";
saveMarksPoints(scbCode, mp, totalMerit, meritCount);
ap.number = " ";
ap.percent = " ";
saveAuthPoints(scbCode, ap);
mns.number = "" + (_gNumber + _vgNumber + _mvgNumber);
mns.percent = " ";
saveMarksNumberShare(scbCode, mns);
mf.number = "" + (_ig1Number);
mf.percent = " ";
saveMarksFailed(scbCode, mf);
mng.number="";
mng.percent="";
saveMarksNoGoal(scbCode, mng);
// Save all marks (Eng, Math, Swe, Swe2, SumAuth, Total)
saveAllMarks(scbCode);
int meanMerit = 0;
if (meritCount > 0) {
meanMerit = totalMerit / meritCount;
}
mv.number = "" + meanMerit;
int tot = getTotalMerit();
if (tot > 0) {
mv.percent = "" + ((meanMerit * 100) / tot) + " " + getNumberOfSchools(home);
}
} catch (RemoteException e) {
e.printStackTrace();
} catch (FinderException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
saveMeriteValue(scbCode, mv);
}
/*
*
*/
private void saveAllMarks(String scbCode) {
SchoolMarkValues smvEnglish = new SchoolMarkValues();
SchoolMarkValues smvMaths = new SchoolMarkValues();
SchoolMarkValues smvSwedish = new SchoolMarkValues();
SchoolMarkValues smvSwedish2 = new SchoolMarkValues();
SchoolMarkValues smvSumAuth = new SchoolMarkValues();
SchoolMarkValues smvTotal = new SchoolMarkValues();
int sumEng = _sumEnglishEG + _sumEnglishG + _sumEnglishVG + _sumEnglishMVG;
smvEnglish.eg.number = "" + _sumEnglishEG;
smvEnglish.eg.percent = "" + (((float)_sumEnglishEG / (float)sumEng)*100);
smvEnglish.g.number = "" + _sumEnglishG;
smvEnglish.g.percent = "" + (((float)_sumEnglishG / (float)sumEng)*100);
smvEnglish.vg.number = "" + _sumEnglishVG;
smvEnglish.vg.percent = "" + (((float)_sumEnglishVG / (float)sumEng)*100);
smvEnglish.mvg.number = "" + _sumEnglishMVG;
smvEnglish.mvg.percent = "" + (((float)_sumEnglishMVG / (float)sumEng)*100);
smvEnglish.tot.number = "" + sumEng;
smvEnglish.tot.percent = "" + ((float)((_sumEnglishG * MERITE_G) +
(_sumEnglishVG * MERITE_VG) +
(_sumEnglishMVG * MERITE_MVG)) / (float) sumEng);
int sumMath = _sumMathsEG + _sumMathsG + _sumMathsVG + _sumMathsMVG;
smvMaths.eg.number = "" + _sumMathsEG;
smvMaths.eg.percent = "" + (((float)_sumMathsEG / (float)sumMath)*100);
smvMaths.g.number = "" + _sumMathsG;
smvMaths.g.percent = "" + (((float)_sumMathsG / (float)sumMath)*100);
smvMaths.vg.number = "" + _sumMathsVG;
smvMaths.vg.percent = "" + (((float)_sumMathsVG / (float)sumMath)*100);
smvMaths.mvg.number = "" + _sumMathsMVG;
smvMaths.mvg.percent = "" + (((float)_sumMathsMVG / (float)sumMath)*100);
smvMaths.tot.number = "" + sumMath;
smvMaths.tot.percent = "" + ((float)((_sumMathsG * MERITE_G) +
(_sumMathsVG * MERITE_VG) +
(_sumMathsMVG * MERITE_MVG)) / (float) sumMath);
int sumSwe = _sumSwedishEG + _sumSwedishG + _sumSwedishVG + _sumSwedishMVG;
smvSwedish.eg.number = "" + _sumSwedishEG;
smvSwedish.eg.percent = "" + (((float)_sumSwedishEG / (float)sumSwe)*100);
smvSwedish.g.number = "" + _sumSwedishG;
smvSwedish.g.percent = "" + (((float)_sumSwedishG / (float)sumSwe)*100);
smvSwedish.vg.number = "" + _sumSwedishVG;
smvSwedish.vg.percent = "" + (((float)_sumSwedishVG / (float)sumSwe)*100);
smvSwedish.mvg.number = "" + _sumSwedishMVG;
smvSwedish.mvg.percent = "" + (((float)_sumSwedishMVG / (float)sumSwe)*100);
smvSwedish.tot.number = "" + sumSwe;
smvSwedish.tot.percent = "" + ((float)((_sumSwedishG * MERITE_G) +
(_sumSwedishVG * MERITE_VG) +
(_sumSwedishMVG * MERITE_MVG)) / (float) sumSwe);
int sumSwe2 = _sumSwedish2EG + _sumSwedish2G + _sumSwedish2VG + _sumSwedish2MVG;
smvSwedish2.eg.number = "" + _sumSwedish2EG;
smvSwedish2.eg.percent = "" + (((float)_sumSwedish2EG / (float)sumSwe2)*100);
smvSwedish2.g.number = "" + _sumSwedish2G;
smvSwedish2.g.percent = "" + (((float)_sumSwedish2G / (float)sumSwe2)*100);
smvSwedish2.vg.number = "" + _sumSwedish2VG;
smvSwedish2.vg.percent = "" + (((float)_sumSwedish2VG / (float)sumSwe2)*100);
smvSwedish2.mvg.number = "" + _sumSwedish2MVG;
smvSwedish2.mvg.percent = "" + (((float)_sumSwedish2MVG / (float)sumSwe2)*100);
smvSwedish2.tot.number = "" + sumSwe2;
smvSwedish2.tot.percent = "" + ((float)((_sumSwedish2G * MERITE_G) +
(_sumSwedish2VG * MERITE_VG) +
(_sumSwedish2MVG * MERITE_MVG)) / (float) sumSwe2);
int sumAuth = Integer.parseInt(smvEnglish.tot.number) + Integer.parseInt(smvMaths.tot.number) +
Integer.parseInt(smvSwedish.tot.number) + Integer.parseInt(smvSwedish2.tot.number);
smvSumAuth.eg.number = "" + (Integer.parseInt(smvEnglish.eg.number) + Integer.parseInt(smvMaths.eg.number) + Integer.parseInt(smvSwedish.eg.number) + Integer.parseInt(smvSwedish2.eg.number));
smvSumAuth.eg.percent = "" + (((float) (Integer.parseInt(smvSumAuth.eg.number))) /
((float)sumAuth)) * 100;
smvSumAuth.g.number = "" + (Integer.parseInt(smvEnglish.g.number) + Integer.parseInt(smvMaths.g.number) + Integer.parseInt(smvSwedish.g.number) + Integer.parseInt(smvSwedish2.g.number));
smvSumAuth.g.percent = "" + (((float) (Integer.parseInt(smvSumAuth.g.number))) /
((float)sumAuth)) * 100;
smvSumAuth.vg.number = "" + (Integer.parseInt(smvEnglish.vg.number) + Integer.parseInt(smvMaths.vg.number) + Integer.parseInt(smvSwedish.vg.number) + Integer.parseInt(smvSwedish2.vg.number));
smvSumAuth.vg.percent = "" + (((float) (Integer.parseInt(smvSumAuth.vg.number))) /
((float)sumAuth)) * 100;
smvSumAuth.mvg.number = "" + (Integer.parseInt(smvEnglish.mvg.number) + Integer.parseInt(smvMaths.mvg.number) + Integer.parseInt(smvSwedish.mvg.number) + Integer.parseInt(smvSwedish2.mvg.number));
smvSumAuth.mvg.percent = "" + (((float) (Integer.parseInt(smvSumAuth.mvg.number))) /
((float)sumAuth)) * 100;
smvSumAuth.tot.number = "" + sumAuth;
float sw2 = 0;
float authDiv = 3;
if (Integer.parseInt(smvSwedish2.tot.number) != 0) {
sw2 = Float.parseFloat(smvSwedish2.tot.percent);
authDiv = 4;
}
smvSumAuth.tot.percent = "" + ((Float.parseFloat(smvEnglish.tot.percent) +
Float.parseFloat(smvMaths.tot.percent) +
Float.parseFloat(smvSwedish.tot.percent) +
sw2)/authDiv);
int sumTotal = _ig1Number + _gNumber + _vgNumber + _mvgNumber;
smvTotal.eg.number = "" + _ig1Number;
smvTotal.eg.percent = "" + (((float) (Integer.parseInt(smvTotal.eg.number))) /
((float)sumTotal))*100;
smvTotal.g.number = "" + _gNumber;
smvTotal.g.percent = "" + (((float) (Integer.parseInt(smvTotal.g.number))) /
((float)sumTotal))*100;
smvTotal.vg.number = "" + _vgNumber;
smvTotal.vg.percent = "" + (((float) (Integer.parseInt(smvTotal.vg.number))) /
((float)sumTotal))*100;
smvTotal.mvg.number = "" + _mvgNumber;
smvTotal.mvg.percent = "" + (((float) (Integer.parseInt(smvTotal.mvg.number))) /
((float)sumTotal))*100;
smvTotal.tot.number = "" + sumTotal;
smvTotal.tot.percent = "" + ((float)((_gNumber * MERITE_G) + (_vgNumber * MERITE_VG) + (_mvgNumber * MERITE_MVG))) / ((float)(_gNumber + _vgNumber +_mvgNumber));
boolean found = true;
SchoolStatisticsDataHome home = null;
SchoolStatisticsData ss = null;
try {
home = (SchoolStatisticsDataHome) IDOLookup.getHome(SchoolStatisticsData.class);
ss = home.findBySCBCode(scbCode);
} catch (RemoteException e) {
e.printStackTrace();
found = false;
} catch (FinderException e) {
found = false;
}
if(!found) {
try {
ss = home.create();
ss.setSchoolCode(scbCode);
} catch (CreateException e) {
e.printStackTrace();
}
}
ss.setEnglishMarksEGNum(smvEnglish.eg.number);
ss.setEnglishMarksEGPct(smvEnglish.eg.percent);
ss.setEnglishMarksGNum(smvEnglish.g.number);
ss.setEnglishMarksGPct(smvEnglish.g.percent);
ss.setEnglishMarksVGNum(smvEnglish.vg.number);
ss.setEnglishMarksVGPct(smvEnglish.vg.percent);
ss.setEnglishMarksMVGNum(smvEnglish.mvg.number);
ss.setEnglishMarksMVGPct(smvEnglish.mvg.percent);
ss.setEnglishMarksTotNum(smvEnglish.tot.number);
ss.setEnglishMarksTotPct(smvEnglish.tot.percent);
ss.setMathsMarksEGNum(smvMaths.eg.number);
ss.setMathsMarksEGPct(smvMaths.eg.percent);
ss.setMathsMarksGNum(smvMaths.g.number);
ss.setMathsMarksGPct(smvMaths.g.percent);
ss.setMathsMarksVGNum(smvMaths.vg.number);
ss.setMathsMarksVGPct(smvMaths.vg.percent);
ss.setMathsMarksMVGNum(smvMaths.mvg.number);
ss.setMathsMarksMVGPct(smvMaths.mvg.percent);
ss.setMathsMarksTotNum(smvMaths.tot.number);
ss.setMathsMarksTotPct(smvMaths.tot.percent);
ss.setSwedishMarksEGNum(smvSwedish.eg.number);
ss.setSwedishMarksEGPct(smvSwedish.eg.percent);
ss.setSwedishMarksGNum(smvSwedish.g.number);
ss.setSwedishMarksGPct(smvSwedish.g.percent);
ss.setSwedishMarksVGNum(smvSwedish.vg.number);
ss.setSwedishMarksVGPct(smvSwedish.vg.percent);
ss.setSwedishMarksMVGNum(smvSwedish.mvg.number);
ss.setSwedishMarksMVGPct(smvSwedish.mvg.percent);
ss.setSwedishMarksTotNum(smvSwedish.tot.number);
ss.setSwedishMarksTotPct(smvSwedish.tot.percent);
ss.setSwedish2MarksEGNum(smvSwedish2.eg.number);
ss.setSwedish2MarksEGPct(smvSwedish2.eg.percent);
ss.setSwedish2MarksGNum(smvSwedish2.g.number);
ss.setSwedish2MarksGPct(smvSwedish2.g.percent);
ss.setSwedish2MarksVGNum(smvSwedish2.vg.number);
ss.setSwedish2MarksVGPct(smvSwedish2.vg.percent);
ss.setSwedish2MarksMVGNum(smvSwedish2.mvg.number);
ss.setSwedish2MarksMVGPct(smvSwedish2.mvg.percent);
ss.setSwedish2MarksTotNum(smvSwedish2.tot.number);
ss.setSwedish2MarksTotPct(smvSwedish2.tot.percent);
ss.setSumAuthMarksEGNum(smvSumAuth.eg.number);
ss.setSumAuthMarksEGPct(smvSumAuth.eg.percent);
ss.setSumAuthMarksGNum(smvSumAuth.g.number);
ss.setSumAuthMarksGPct(smvSumAuth.g.percent);
ss.setSumAuthMarksVGNum(smvSumAuth.vg.number);
ss.setSumAuthMarksVGPct(smvSumAuth.vg.percent);
ss.setSumAuthMarksMVGNum(smvSumAuth.mvg.number);
ss.setSumAuthMarksMVGPct(smvSumAuth.mvg.percent);
ss.setSumAuthMarksTotNum(smvSumAuth.tot.number);
ss.setSumAuthMarksTotPct(smvSumAuth.tot.percent);
ss.setTotalMarksEGNum(smvTotal.eg.number);
ss.setTotalMarksEGPct(smvTotal.eg.percent);
ss.setTotalMarksGNum(smvTotal.g.number);
ss.setTotalMarksGPct(smvTotal.g.percent);
ss.setTotalMarksVGNum(smvTotal.vg.number);
ss.setTotalMarksVGPct(smvTotal.vg.percent);
ss.setTotalMarksMVGNum(smvTotal.mvg.number);
ss.setTotalMarksMVGPct(smvTotal.mvg.percent);
ss.setTotalMarksTotNum(smvTotal.tot.number);
ss.setTotalMarksTotPct(smvTotal.tot.percent);
ss.store();
}
/**
* Find MeritValue (Meritv�rde) for a specified school
* @param ssd SchoolStatisticsData
* @return Meritvalue (Meritv�rde)
* @see se.idega.idegaweb.commune.school.data.SchoolMarks;
*/
public PercentValue getMeritValue(SchoolStatisticsData ssd) {
PercentValue ret = new PercentValue();
if (ssd == null) {
ret.number = " ";
ret.percent = " ";
return ret;
}
ret.number = ssd.getMeritValueNum() != null ? ssd.getMeritValueNum() : " ";
ret.percent = ssd.getMeritValuePct() != null ? ssd.getMeritValuePct() : " ";
return ret;
}
/**
* Gets the mean value ("Betygspo�ng") and percent for the specified school.
* @param ssd SchoolStatisticsData
* @return Mean and percent values
* @see se.idega.idegaweb.commune.school.business.PercentValue
*/
public PercentValue getMarksPoints(SchoolStatisticsData ssd) {
PercentValue ret = new PercentValue();
if (ssd == null) {
ret.number = " ";
ret.percent = " ";
return ret;
}
ret.number = ssd.getMarksPointsNum() != null ? ssd.getMarksPointsNum() : " ";
ret.percent = ssd.getMarksPointsPct() != null ? ssd.getMarksPointsPct() : " ";
return ret;
}
/**
* Gets the mean value ("Beh�righetspo�ng") and percent for the specified school.
* @param ssd SchoolStatisticsData
* @return Mean and percent values
* @see se.idega.idegaweb.commune.school.business.PercentValue
*/
public PercentValue getAuthPoints(SchoolStatisticsData ssd) {
PercentValue ret = new PercentValue();
if (ssd == null) {
ret.number = " ";
ret.percent = " ";
return ret;
}
ret.number = ssd.getAuthPointsNum() != null ? ssd.getAuthPointsNum() : " ";
ret.percent = ssd.getAuthPointsPct() != null ? ssd.getAuthPointsPct() : " ";
return ret;
}
/**
* Gets the mean value ("Antal och andel G, VG och MVG") and
* percent for the specified school.
* @param ssd SchoolStatisticsData
* @return Mean and percent values
* @see se.idega.idegaweb.commune.school.business.PercentValue
*/
public PercentValue getMarksNumberShare(SchoolStatisticsData ssd) {
PercentValue ret = new PercentValue();
if (ssd == null) {
ret.number = " ";
ret.percent = " ";
return ret;
}
ret.number = ssd.getMarksNrShareNum() != null ? ssd.getMarksNrShareNum() : " ";
ret.percent = ssd.getMarksNrSharePct() != null ? ssd.getMarksNrSharePct() : " ";
return ret;
}
/**
* Gets the mean value ("Antal och andel ej godk�nda") and
* percent for the specified school.
* @param ssd SchoolStatisticsData
* @return Mean and percent values
* @see se.idega.idegaweb.commune.school.business.PercentValue
*/
public PercentValue getMarksFailed(SchoolStatisticsData ssd) {
PercentValue ret = new PercentValue();
if (ssd == null) {
return ret;
}
ret.number = ssd.getMarksFailedNum() != null ? ssd.getMarksFailedNum() : " ";
ret.percent = ssd.getMarksFailedPct() != null ? ssd.getMarksFailedPct() : " ";
return ret;
}
/**
* Gets the mean value ("Antal som ej uppn�tt m�l i beh�righetsgivande �mne") and
* percent for the specified school.
* @param ssd SchoolStatisticsData
* @return Mean and percent values
* @see se.idega.idegaweb.commune.school.business.PercentValue
*/
public PercentValue getMarksNoGoal(SchoolStatisticsData ssd) {
PercentValue ret = new PercentValue();
if (ssd == null) {
ret.number = " ";
ret.percent = " ";
return ret;
}
ret.number = ssd.getMarksNoGoalNum() != null ? ssd.getMarksNoGoalNum() : " ";
ret.percent = ssd.getMarksNoGoalPct() != null ? ssd.getMarksNoGoalPct() : " ";
return ret;
}
/**
* Gets English marks (EG, G, VG, MVG and Total)
* number and percent for the specified school.
* @param ssd SchoolStatisticsData
* @return SchoolMarkValues (EG, G, VG, MVG and Total)
* @see se.idega.idegaweb.commune.school.business.PercentValue#
* @see se.idega.idegaweb.commune.school.business.SchoolMarkValues#
*/
public SchoolMarkValues getEnglishMarks(SchoolStatisticsData ssd) {
SchoolMarkValues smv = new SchoolMarkValues();
if (ssd != null) {
smv.eg = new PercentValue(ssd.getEnglishMarksEGNum(), ssd.getEnglishMarksEGPct());
smv.g = new PercentValue(ssd.getEnglishMarksGNum(), ssd.getEnglishMarksGPct());
smv.vg = new PercentValue(ssd.getEnglishMarksVGNum(), ssd.getEnglishMarksVGPct());
smv.mvg = new PercentValue(ssd.getEnglishMarksMVGNum(), ssd.getEnglishMarksMVGPct());
smv.tot = new PercentValue(ssd.getEnglishMarksTotNum(), ssd.getEnglishMarksTotPct());
}
return smv;
}
/**
* Gets Math marks (EG, G, VG, MVG and Total)
* number and percent for the specified school.
* @param ssd SchoolStatisticsData
* @return SchoolMarkValues (EG, G, VG, MVG and Total)
* @see se.idega.idegaweb.commune.school.business.PercentValue#
* @see se.idega.idegaweb.commune.school.business.SchoolMarkValues#
*/
public SchoolMarkValues getMathsMarks(SchoolStatisticsData ssd) {
SchoolMarkValues smv = new SchoolMarkValues();
if (ssd != null) {
smv.eg = new PercentValue(ssd.getMathsMarksEGNum(), ssd.getMathsMarksEGPct());
smv.g = new PercentValue(ssd.getMathsMarksGNum(), ssd.getMathsMarksGPct());
smv.vg = new PercentValue(ssd.getMathsMarksVGNum(), ssd.getMathsMarksVGPct());
smv.mvg = new PercentValue(ssd.getMathsMarksMVGNum(), ssd.getMathsMarksMVGPct());
smv.tot = new PercentValue(ssd.getMathsMarksTotNum(), ssd.getMathsMarksTotPct());
}
return smv;
}
/**
* Gets Swedish marks (EG, G, VG, MVG and Total)
* number and percent for the specified school.
* @param ssd SchoolStatisticsData
* @return SchoolMarkValues (EG, G, VG, MVG and Total)
* @see se.idega.idegaweb.commune.school.business.PercentValue#
* @see se.idega.idegaweb.commune.school.business.SchoolMarkValues#
*/
public SchoolMarkValues getSwedishMarks(SchoolStatisticsData ssd) {
SchoolMarkValues smv = new SchoolMarkValues();
if (ssd != null) {
smv.eg = new PercentValue(ssd.getSwedishMarksEGNum(), ssd.getSwedishMarksEGPct());
smv.g = new PercentValue(ssd.getSwedishMarksGNum(), ssd.getSwedishMarksGPct());
smv.vg = new PercentValue(ssd.getSwedishMarksVGNum(), ssd.getSwedishMarksVGPct());
smv.mvg = new PercentValue(ssd.getSwedishMarksMVGNum(), ssd.getSwedishMarksMVGPct());
smv.tot = new PercentValue(ssd.getSwedishMarksTotNum(), ssd.getSwedishMarksTotPct());
}
return smv;
}
/**
* Gets Swedish 2 marks (EG, G, VG, MVG and Total)
* number and percent for the specified school.
* @param ssd SchoolStatisticsData
* @return SchoolMarkValues (EG, G, VG, MVG and Total)
* @see se.idega.idegaweb.commune.school.business.PercentValue#
* @see se.idega.idegaweb.commune.school.business.SchoolMarkValues#
*/
public SchoolMarkValues getSwedish2Marks(SchoolStatisticsData ssd) {
SchoolMarkValues smv = new SchoolMarkValues();
if (ssd != null) {
smv.eg = new PercentValue(ssd.getSwedish2MarksEGNum(), ssd.getSwedish2MarksEGPct());
smv.g = new PercentValue(ssd.getSwedish2MarksGNum(), ssd.getSwedish2MarksGPct());
smv.vg = new PercentValue(ssd.getSwedish2MarksVGNum(), ssd.getSwedish2MarksVGPct());
smv.mvg = new PercentValue(ssd.getSwedish2MarksMVGNum(), ssd.getSwedish2MarksMVGPct());
smv.tot = new PercentValue(ssd.getSwedish2MarksTotNum(), ssd.getSwedish2MarksTotPct());
}
return smv;
}
/**
* Gets summed auth marks (EG, G, VG, MVG and Total)
* number and percent for the specified school.
* @param ssd SchoolStatisticsData
* @return SchoolMarkValues (EG, G, VG, MVG and Total)
* @see se.idega.idegaweb.commune.school.business.PercentValue#
* @see se.idega.idegaweb.commune.school.business.SchoolMarkValues#
*/
public SchoolMarkValues getSumAuthMarks(SchoolStatisticsData ssd) {
SchoolMarkValues smv = new SchoolMarkValues();
if (ssd != null) {
smv.eg = new PercentValue(ssd.getSumAuthMarksEGNum(), ssd.getSumAuthMarksEGPct());
smv.g = new PercentValue(ssd.getSumAuthMarksGNum(), ssd.getSumAuthMarksGPct());
smv.vg = new PercentValue(ssd.getSumAuthMarksVGNum(), ssd.getSumAuthMarksVGPct());
smv.mvg = new PercentValue(ssd.getSumAuthMarksMVGNum(), ssd.getSumAuthMarksMVGPct());
smv.tot = new PercentValue(ssd.getSumAuthMarksTotNum(), ssd.getSumAuthMarksTotPct());
}
return smv;
}
/**
* Gets Total marks (EG, G, VG, MVG and Total)
* number and percent for the specified school.
* @param ssd SchoolStatisticsData
* @return SchoolMarkValues (EG, G, VG, MVG and Total)
* @see se.idega.idegaweb.commune.school.business.PercentValue#
* @see se.idega.idegaweb.commune.school.business.SchoolMarkValues#
*/
public SchoolMarkValues getTotalMarks(SchoolStatisticsData ssd) {
SchoolMarkValues smv = new SchoolMarkValues();
if (ssd != null) {
smv.eg = new PercentValue(ssd.getTotalMarksEGNum(), ssd.getTotalMarksEGPct());
smv.g = new PercentValue(ssd.getTotalMarksGNum(), ssd.getTotalMarksGPct());
smv.vg = new PercentValue(ssd.getTotalMarksVGNum(), ssd.getTotalMarksVGPct());
smv.mvg = new PercentValue(ssd.getTotalMarksMVGNum(), ssd.getTotalMarksMVGPct());
smv.tot = new PercentValue(ssd.getTotalMarksTotNum(), ssd.getTotalMarksTotPct());
}
return smv;
}
/*
* SUB METHODS
*/
private void saveMeriteValue(String scbCode, PercentValue value) {
boolean found = true;
SchoolStatisticsDataHome home = null;
SchoolStatisticsData ss = null;
try {
home = (SchoolStatisticsDataHome) IDOLookup.getHome(SchoolStatisticsData.class);
ss = home.findBySCBCode(scbCode);
} catch (RemoteException e) {
e.printStackTrace();
found = false;
} catch (FinderException e) {
found = false;
}
if(!found) {
try {
ss = home.create();
ss.setSchoolCode(scbCode);
} catch (CreateException e) {
e.printStackTrace();
}
}
ss.setMeritValueNum(value.number);
ss.setMeritValuePct(value.percent);
ss.store();
}
private void saveMarksPoints(String scbCode, PercentValue value, int totalMerite, int totalStudents) {
boolean found = true;
SchoolStatisticsDataHome home = null;
SchoolStatisticsData ss = null;
try {
home = (SchoolStatisticsDataHome) IDOLookup.getHome(SchoolStatisticsData.class);
ss = home.findBySCBCode(scbCode);
} catch (RemoteException e) {
e.printStackTrace();
found = false;
} catch (FinderException e) {
found = false;
}
if(!found) {
try {
ss = home.create();
ss.setSchoolCode(scbCode);
} catch (CreateException e) {
e.printStackTrace();
}
}
ss.setMarksPointsNum(value.number);
ss.setMarksPointsPct(value.percent);
ss.setTotalAuthPoints(""+totalMerite);
ss.setTotalAuthStudents(""+totalStudents);
ss.store();
}
private void saveAuthPoints(String scbCode, PercentValue value) {
boolean found = true;
SchoolStatisticsDataHome home = null;
SchoolStatisticsData ss = null;
try {
home = (SchoolStatisticsDataHome) IDOLookup.getHome(SchoolStatisticsData.class);
ss = home.findBySCBCode(scbCode);
} catch (RemoteException e) {
e.printStackTrace();
found = false;
} catch (FinderException e) {
found = false;
}
if(!found) {
try {
ss = home.create();
ss.setSchoolCode(scbCode);
} catch (CreateException e) {
e.printStackTrace();
}
}
ss.setAuthPointsNum(value.number);
ss.setAuthPointsPct(value.percent);
ss.store();
}
private void saveMarksNumberShare(String scbCode, PercentValue value) {
boolean found = true;
SchoolStatisticsDataHome home = null;
SchoolStatisticsData ss = null;
try {
home = (SchoolStatisticsDataHome) IDOLookup.getHome(SchoolStatisticsData.class);
ss = home.findBySCBCode(scbCode);
} catch (RemoteException e) {
e.printStackTrace();
found = false;
} catch (FinderException e) {
found = false;
}
if(!found) {
try {
ss = home.create();
ss.setSchoolCode(scbCode);
} catch (CreateException e) {
e.printStackTrace();
}
}
ss.setMarksNrShareNum(value.number);
ss.setMarksNrSharePct(value.percent);
ss.store();
}
private void saveMarksFailed(String scbCode, PercentValue value) {
boolean found = true;
SchoolStatisticsDataHome home = null;
SchoolStatisticsData ss = null;
try {
home = (SchoolStatisticsDataHome) IDOLookup.getHome(SchoolStatisticsData.class);
ss = home.findBySCBCode(scbCode);
} catch (RemoteException e) {
e.printStackTrace();
found = false;
} catch (FinderException e) {
found = false;
}
if(!found) {
try {
ss = home.create();
ss.setSchoolCode(scbCode);
} catch (CreateException e) {
e.printStackTrace();
}
}
ss.setMarksFailedNum(value.number);
ss.setMarksFailedPct(value.percent);
ss.store();
}
private void saveMarksNoGoal(String scbCode, PercentValue value) {
boolean found = true;
SchoolStatisticsDataHome home = null;
SchoolStatisticsData ss = null;
try {
home = (SchoolStatisticsDataHome) IDOLookup.getHome(SchoolStatisticsData.class);
ss = home.findBySCBCode(scbCode);
} catch (RemoteException e) {
e.printStackTrace();
found = false;
} catch (FinderException e) {
found = false;
}
if(!found) {
try {
ss = home.create();
ss.setSchoolCode(scbCode);
} catch (CreateException e) {
e.printStackTrace();
}
}
ss.setMarksNoGoalNum(value.number);
ss.setMarksNoGoalPct(value.percent);
ss.store();
}
/**
* Finds total MeritValue (Meritv�rde)
* @return Meritvalue (Meritv�rde)
* @see se.idega.idegaweb.commune.school.data.SchoolMarks;
*/
public int getTotalMerit() {
if (sumTotalMerit != 0) {
return sumTotalMerit;
}
try {
SchoolMarksHome home = (SchoolMarksHome) IDOLookup.getHome(SchoolMarks.class);
Collection allmarks = home.findAllSchoolMarks();
Iterator iter = allmarks.iterator();
int totalMerit = 0;
int meritCount = 0;
while (iter.hasNext()) {
SchoolMarks marks = null;
Object o = iter.next();
if (o != null) {
marks = (SchoolMarks) o;
meritCount++;
totalMerit += getStudentMeritValue(marks);
}
}
sumTotalMerit = totalMerit;
if (meritCount > 0) {
sumTotalMerit /= meritCount;
}
sumTotalMerit *= getNumberOfSchools(home);
} catch (RemoteException e) {
e.printStackTrace();
} catch (FinderException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return sumTotalMerit;
}
/**
* Finds number of schools in SchoolMarks
* @param scbCode SCB school code
* @return number of schools
* @see se.idega.idegaweb.commune.school.business.PercentValue
* @see se.idega.idegaweb.commune.school.data.SchoolMarks;
*/
private int getNumberOfSchools(SchoolMarksHome home) {
if (numberOfSchools != 0) {
return numberOfSchools;
}
int numSchooles = 0;
try {
Collection c = home.findNumberOfSchools();
Iterator iter = c.iterator();
if (iter.hasNext()) {
Integer i = (Integer) iter.next();
numSchooles = i.intValue();
}
} catch (Exception e) {}
numberOfSchools = numSchooles;
return numberOfSchools;
}
/*
*
*/
private int getStudentGValue(SchoolMarks marks) {
int gCount = 0;
if ((""+marks.getBL()).equals(MARK_G)) gCount++;
if ((""+marks.getEN()).equals(MARK_G)) gCount++;
if ((""+marks.getEN()).equals(MARK_G)) _sumEnglishG++;
if ((""+marks.getHKK()).equals(MARK_G)) gCount++;
if ((""+marks.getIDH()).equals(MARK_G)) gCount++;
if ((""+marks.getMA()).equals(MARK_G)) gCount++;
if ((""+marks.getMA()).equals(MARK_G)) _sumMathsG++;
if ((""+marks.getM1G()).equals(MARK_G)) gCount++;
if ((""+marks.getM2G()).equals(MARK_G)) gCount++;
if ((""+marks.getMLG()).equals(MARK_G)) gCount++;
if ((""+marks.getMU()).equals(MARK_G)) gCount++;
if ((""+marks.getNO()).equals(MARK_G)) gCount++;
if ((""+marks.getBI()).equals(MARK_G)) gCount++;
if ((""+marks.getFY()).equals(MARK_G)) gCount++;
if ((""+marks.getKE()).equals(MARK_G)) gCount++;
if ((""+marks.getSO()).equals(MARK_G)) gCount++;
if ((""+marks.getGE()).equals(MARK_G)) gCount++;
if ((""+marks.getHI()).equals(MARK_G)) gCount++;
if ((""+marks.getRE()).equals(MARK_G)) gCount++;
if ((""+marks.getSH()).equals(MARK_G)) gCount++;
if ((""+marks.getSL()).equals(MARK_G)) gCount++;
if ((""+marks.getSV()).equals(MARK_G)) gCount++;
if ((""+marks.getSV()).equals(MARK_G)) _sumSwedishG++;
if ((""+marks.getSVA()).equals(MARK_G)) gCount++;
if ((""+marks.getSVA()).equals(MARK_G)) _sumSwedish2G++;
if ((""+marks.getTN()).equals(MARK_G)) gCount++;
if ((""+marks.getTK()).equals(MARK_G)) gCount++;
if (((""+marks.getNO()).equals(MARK_G)) &&
((""+marks.getBI()).equals(MARK_IG2)) &&
((""+marks.getFY()).equals(MARK_IG2)) &&
((""+marks.getKE()).equals(MARK_IG2))) {
gCount+=2;
}
if (((""+marks.getSO()).equals(MARK_G)) &&
((""+marks.getGE()).equals(MARK_IG2)) &&
((""+marks.getHI()).equals(MARK_IG2)) &&
((""+marks.getRE()).equals(MARK_IG2)) &&
((""+marks.getSH()).equals(MARK_IG2))) {
gCount+=3;
}
return gCount;
}
/*
*
*/
private int getStudentVgValue(SchoolMarks marks) {
int vgCount = 0;
if ((""+marks.getBL()).equals(MARK_VG)) vgCount++;
if ((""+marks.getEN()).equals(MARK_VG)) vgCount++;
if ((""+marks.getEN()).equals(MARK_VG)) _sumEnglishVG++;
if ((""+marks.getHKK()).equals(MARK_VG)) vgCount++;
if ((""+marks.getIDH()).equals(MARK_VG)) vgCount++;
if ((""+marks.getMA()).equals(MARK_VG)) vgCount++;
if ((""+marks.getMA()).equals(MARK_VG)) _sumMathsVG++;
if ((""+marks.getM1G()).equals(MARK_VG)) vgCount++;
if ((""+marks.getM2G()).equals(MARK_VG)) vgCount++;
if ((""+marks.getMLG()).equals(MARK_VG)) vgCount++;
if ((""+marks.getMU()).equals(MARK_VG)) vgCount++;
if ((""+marks.getNO()).equals(MARK_VG)) vgCount++;
if ((""+marks.getBI()).equals(MARK_VG)) vgCount++;
if ((""+marks.getFY()).equals(MARK_VG)) vgCount++;
if ((""+marks.getKE()).equals(MARK_VG)) vgCount++;
if ((""+marks.getSO()).equals(MARK_VG)) vgCount++;
if ((""+marks.getGE()).equals(MARK_VG)) vgCount++;
if ((""+marks.getHI()).equals(MARK_VG)) vgCount++;
if ((""+marks.getRE()).equals(MARK_VG)) vgCount++;
if ((""+marks.getSH()).equals(MARK_VG)) vgCount++;
if ((""+marks.getSL()).equals(MARK_VG)) vgCount++;
if ((""+marks.getSV()).equals(MARK_VG)) vgCount++;
if ((""+marks.getSV()).equals(MARK_VG)) _sumSwedishVG++;
if ((""+marks.getSVA()).equals(MARK_VG)) vgCount++;
if ((""+marks.getSVA()).equals(MARK_VG)) _sumSwedish2VG++;
if ((""+marks.getTN()).equals(MARK_VG)) vgCount++;
if ((""+marks.getTK()).equals(MARK_VG)) vgCount++;
if (((""+marks.getNO()).equals(MARK_VG)) &&
((""+marks.getBI()).equals(MARK_IG2)) &&
((""+marks.getFY()).equals(MARK_IG2)) &&
((""+marks.getKE()).equals(MARK_IG2))) {
vgCount+=2;
}
if (((""+marks.getSO()).equals(MARK_VG)) &&
((""+marks.getGE()).equals(MARK_IG2)) &&
((""+marks.getHI()).equals(MARK_IG2)) &&
((""+marks.getRE()).equals(MARK_IG2)) &&
((""+marks.getSH()).equals(MARK_IG2))) {
vgCount+=3;
}
return vgCount;
}
/*
*
*/
private int getStudentMvgValue(SchoolMarks marks) {
int mvgCount = 0;
if ((""+marks.getBL()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getEN()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getEN()).equals(MARK_MVG)) _sumEnglishMVG++;
if ((""+marks.getHKK()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getIDH()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getMA()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getMA()).equals(MARK_MVG)) _sumMathsMVG++;
if ((""+marks.getM1G()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getM2G()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getMLG()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getMU()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getNO()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getBI()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getFY()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getKE()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getSO()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getGE()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getHI()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getRE()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getSH()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getSL()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getSV()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getSV()).equals(MARK_MVG)) _sumSwedishMVG++;
if ((""+marks.getSVA()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getSVA()).equals(MARK_MVG)) _sumSwedish2MVG++;
if ((""+marks.getTN()).equals(MARK_MVG)) mvgCount++;
if ((""+marks.getTK()).equals(MARK_MVG)) mvgCount++;
if (((""+marks.getNO()).equals(MARK_MVG)) &&
((""+marks.getBI()).equals(MARK_IG2)) &&
((""+marks.getFY()).equals(MARK_IG2)) &&
((""+marks.getKE()).equals(MARK_IG2))) {
mvgCount+=2;
}
if (((""+marks.getSO()).equals(MARK_MVG)) &&
((""+marks.getGE()).equals(MARK_IG2)) &&
((""+marks.getHI()).equals(MARK_IG2)) &&
((""+marks.getRE()).equals(MARK_IG2)) &&
((""+marks.getSH()).equals(MARK_IG2))) {
mvgCount+=3;
}
return mvgCount;
}
/*
*
*/
private int getStudentIg1Value(SchoolMarks marks) {
int ig1Count = 0;
if ((""+marks.getBL()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getEN()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getEN()).equals(MARK_IG1)) _sumEnglishEG++;
if ((""+marks.getHKK()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getIDH()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getMA()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getMA()).equals(MARK_IG1)) _sumMathsEG++;
if ((""+marks.getM1G()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getM2G()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getMLG()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getMU()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getNO()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getBI()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getFY()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getKE()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getSO()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getGE()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getHI()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getRE()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getSH()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getSL()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getSV()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getSV()).equals(MARK_IG1)) _sumSwedishEG++;
if ((""+marks.getSVA()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getSVA()).equals(MARK_IG1)) _sumSwedish2EG++;
if ((""+marks.getTN()).equals(MARK_IG1)) ig1Count++;
if ((""+marks.getTK()).equals(MARK_IG1)) ig1Count++;
return ig1Count;
}
/**
* Gets the mean value ("Meritv�rde") and percent for the specified school.
*
* @param marks Home of SchoolMarks
* @return Mean and percent values
* @see se.idega.id egaweb.commune.school.data.SchoolMarks;
* @see se.idega.idegaweb.commune.school.business.PercentValue
*/
private int getStudentMeritValue(SchoolMarks marks) {
int gCount = 0;
int vgCount = 0;
int mvgCount = 0;
int ig1Count = 0;
gCount = getStudentGValue(marks);
vgCount = getStudentVgValue(marks);
mvgCount = getStudentMvgValue(marks);
ig1Count = getStudentIg1Value(marks);
int maxCount = TOTAL_MARKS;
// MVG
if (mvgCount > maxCount) {
mvgCount = maxCount;
}
int totalScore = mvgCount * MERITE_MVG;
maxCount -= mvgCount;
// VG
if (vgCount > maxCount) {
vgCount = maxCount;
}
totalScore += vgCount * MERITE_VG;
maxCount -= vgCount;
// G
if (gCount > maxCount) {
gCount = maxCount;
}
totalScore += gCount * MERITE_G;
_gNumber += gCount;
_vgNumber += vgCount;
_mvgNumber += mvgCount;
_ig1Number += ig1Count;
return totalScore;
}
public SchoolStatisticsData getStoredValues(String scbCode) {
SchoolStatisticsDataHome home = null;
SchoolStatisticsData ssd = null;
try {
home = getSchoolStatisticsDataHome();
ssd = home.findBySCBCode(scbCode);
} catch (RemoteException e) {
} catch (FinderException e) {
}
return ssd;
}
/*
* Get the Statistics data home
*/
protected SchoolStatisticsDataHome getSchoolStatisticsDataHome() throws RemoteException {
return (SchoolStatisticsDataHome) com.idega.data.IDOLookup.getHome(SchoolStatisticsData.class);
}
/******************************************/
/* Summing methods */
/******************************************/
public void resetMeanValues() {
_sumMeriteValue = 0;
_sumMarksPoints = 0;
_sumAuthPoints = 0;
_sumMarksNumberShare = 0;
_sumMarksFailed = 0;
_sumMarksNoGoal = 0;
_tallyMeriteValue = 0;
_tallyMarksPoints = 0;
_tallyAuthPoints = 0;
_tallyMarksNumberShare = 0;
_tallyMarksFailed = 0;
_tallyMarksNoGoal = 0;
}
public void resetSchoolValues() {
_sumEnglishEG = 0;
_sumMathsEG = 0;
_sumSwedishEG = 0;
_sumSwedish2EG = 0;
//_sumTotalEG = 0;
_sumEnglishG = 0;
_sumMathsG = 0;
_sumSwedishG = 0;
_sumSwedish2G = 0;
//_sumTotalG = 0;
_sumEnglishVG = 0;
_sumMathsVG = 0;
_sumSwedishVG = 0;
_sumSwedish2VG = 0;
//_sumTotalVG = 0;
_sumEnglishMVG = 0;
_sumMathsMVG = 0;
_sumSwedishMVG = 0;
_sumSwedish2MVG = 0;
//_sumTotalMVG = 0;
}
public void sumMeriteValue(String value) {
System.out.println("SUMMED MERITED THE REAL VALUE:"+value);
try {
if(Float.parseFloat(value) != 0) {
_tallyMeriteValue++;
}
_sumMeriteValue += Float.parseFloat(value);
System.out.println("SUMMED MERITED VALUE:"+_sumMeriteValue);
} catch (NumberFormatException e) {}
}
public void sumMarksPoints(String value) {
try {
if(Float.parseFloat(value) != 0) {
_tallyMarksPoints++;
}
_sumMarksPoints += Float.parseFloat(value);
} catch (NumberFormatException e) {}
}
public void sumAuthPoints(String value) {
try {
if(Float.parseFloat(value) != 0) {
_tallyAuthPoints++;
}
_sumAuthPoints += Float.parseFloat(value);
} catch (NumberFormatException e) {}
}
public void sumMarksNumberShare(String value) {
try {
if(Float.parseFloat(value) != 0) {
_tallyMarksNumberShare++;
}
_sumMarksNumberShare += Float.parseFloat(value);
} catch (NumberFormatException e) {}
}
public void sumMarksFailed(String value) {
try {
if(Float.parseFloat(value) != 0) {
_tallyMarksFailed++;
}
_sumMarksFailed += Float.parseFloat(value);
} catch (NumberFormatException e) {}
}
public void sumMarksNoGoal(String value) {
try {
if(Float.parseFloat(value) != 0) {
_tallyMarksNoGoal++;
}
_sumMarksNoGoal += Float.parseFloat(value);
} catch (NumberFormatException e) {}
}
public String getSumMeriteValue() {
return ""+_sumMeriteValue;
}
public String getSumMarksPoints() {
return "" + _sumMarksPoints;
}
public String getSumAuthPoints() {
return "" + _sumAuthPoints;
}
public String getSumMarksNumberShare() {
return "" + _sumMarksNumberShare;
}
public String getSumMarksFailed() {
return "" + _sumMarksFailed;
}
public String getSumMarksNoGoal(){
return "" + _sumMarksNoGoal;
}
public String getCommuneMeanMeriteValue() {
if (_tallyMeriteValue != 0) {
return ""+(_sumMeriteValue / _tallyMeriteValue);
} else {
return "0";
}
}
public String getCommuneMeanMarksPoints() {
if (_tallyMarksPoints != 0) {
return ""+(_sumMarksPoints / _tallyMarksPoints);
} else {
return "0";
}
}
public String getCommuneMeanAuthPoints() {
if (_tallyAuthPoints != 0) {
return ""+(_sumAuthPoints / _tallyAuthPoints);
} else {
return "0";
}
}
public String getCommuneMeanMarksNumberShare() {
if (_tallyMarksNumberShare != 0) {
return ""+(_sumMarksNumberShare / _tallyMarksNumberShare);
} else {
return "0";
}
}
public String getCommuneMeanMarksFailed() {
if (_tallyMarksFailed != 0) {
return ""+(_sumMarksFailed / _tallyMarksFailed);
} else {
return "0";
}
}
public String getCommuneMeanMarksNoGoal() {
if (_tallyMarksNoGoal != 0) {
return ""+(_sumMarksNoGoal / _tallyMarksNoGoal);
} else {
return "0";
}
}
}