package is.idega.idegaweb.golf; /** * Title: * Description: * Copyright: idega Copyright (c) 2001 * Company: * @author * @version 1.0 */ import is.idega.idegaweb.golf.entity.Member; import is.idega.idegaweb.golf.entity.MemberInfo; import is.idega.idegaweb.golf.entity.MemberInfoHome; import is.idega.idegaweb.golf.entity.Scorecard; import is.idega.idegaweb.golf.entity.Union; import is.idega.idegaweb.golf.entity.UnionHome; import is.idega.idegaweb.golf.entity.UnionMemberInfo; import java.io.FileWriter; import java.io.IOException; import java.util.List; import com.idega.data.IDOLookup; import com.idega.presentation.Block; import com.idega.presentation.IWContext; import com.idega.util.IWTimestamp; import com.idega.util.text.TextSoap; public class MemberDevelopment extends Block { private int unionID = -1; private IWTimestamp dateBefore; private IWTimestamp dateAfter; private boolean onlyActive = false; private boolean onlyInActive = false; private boolean phones = false; public MemberDevelopment() { this.unionID = 3; dateBefore = new IWTimestamp(1, 1, 2000); dateAfter = new IWTimestamp(); } public MemberDevelopment(int unionID) { this.unionID = unionID; dateBefore = new IWTimestamp(1, 1, 2000); dateAfter = new IWTimestamp(); } public MemberDevelopment(IWTimestamp dateBefore) { this.unionID = 3; this.dateBefore = dateBefore; dateAfter = new IWTimestamp(); } public MemberDevelopment(IWTimestamp dateBefore, IWTimestamp dateAfter) { this.unionID = 3; this.dateBefore = dateBefore; this.dateAfter = dateAfter; } public MemberDevelopment(int unionID, IWTimestamp dateBefore) { this.unionID = unionID; this.dateBefore = dateBefore; dateAfter = new IWTimestamp(); } public MemberDevelopment(int unionID, IWTimestamp dateBefore, IWTimestamp dateAfter) { this.unionID = unionID; this.dateBefore = dateBefore; this.dateAfter = dateAfter; } public void main(IWContext modinfo) throws Exception { String fileSeperator = System.getProperty("file.separator"); String filepath = modinfo.getServletContext().getRealPath( fileSeperator + "files" + fileSeperator); String fileName = "handicap_report.xls"; try { String file = filepath + fileName; FileWriter out = new FileWriter(file); char[] c = null; StringBuffer data = new StringBuffer(); data.append("Kylfingur"); data.append("\t"); data.append("Kennitala"); data.append("\t"); data.append("F��ingardagur"); data.append("\t"); data.append("Kyn"); data.append("\t"); data.append("Virkur/�virkur"); data.append("\t"); data.append("Skr��ur"); data.append("\t"); data.append("Forgj�f fyrir"); data.append("\t"); data.append("Forgj�f eftir"); data.append("\t"); data.append("Mismunur"); data.append("\t"); data.append("Fj�ldi hringja"); data.append("\t"); data.append("\n"); out.write(data.toString().toCharArray()); System.out.println("Starting: " + new IWTimestamp().getTimestampRightNow().toString()); Union union = ((UnionHome) IDOLookup.getHome(Union.class)) .findByPrimaryKey(unionID); List memberList = null; if (unionID == 3) { memberList = union.getAllActiveMembers(); } else { if (this.onlyActive) memberList = union.getActiveMembers(); else if (this.onlyInActive) memberList = union.getInActiveMembers(); else memberList = union.getAllMembersInUnion(); } // Collections.sort(memberList,new // GenericMemberComparator(GenericMemberComparator.FIRSTLASTMIDDLE)); if (memberList != null) { for (int a = 0; a < memberList.size(); a++) { try { Member member = (Member) memberList.get(a); if (member.getICUserID() > 0) { float handicapBefore = 0; float handicapAfter = 0; float difference = 0; Scorecard[] scorecardBefore = (Scorecard[]) ((Scorecard) IDOLookup .instanciateEntity(Scorecard.class)) .findAll("select * from scorecard where scorecard_date < '" + dateBefore.toSQLDateString() + "' and scorecard_date is not null and member_id = " + Integer.toString(member.getID()) + " order by scorecard_date desc"); Scorecard[] scorecardAfter = (Scorecard[]) ((Scorecard) IDOLookup .instanciateEntity(Scorecard.class)) .findAll("select * from scorecard where scorecard_date < '" + dateAfter.toSQLDateString() + "' and scorecard_date > '" + dateBefore.toSQLDateString() + "' and scorecard_date is not null and member_id = " + Integer.toString(member.getID()) + " order by scorecard_date desc"); if (scorecardBefore.length > 0) { handicapBefore = scorecardBefore[0] .getHandicapAfter(); } else { MemberInfo memberInfo = ((MemberInfoHome) IDOLookup .getHome(MemberInfo.class)) .findByPrimaryKey(member.getID()); handicapBefore = memberInfo.getFirstHandicap(); if (handicapBefore > 40) { if (scorecardAfter.length > 0) { if (scorecardAfter[scorecardAfter.length - 1] .getHandicapCorrection()) { handicapBefore = scorecardAfter[scorecardAfter.length - 1] .getHandicapAfter(); } } } } if (scorecardAfter.length > 0) { handicapAfter = scorecardAfter[0] .getHandicapAfter(); } else { handicapAfter = handicapBefore; } if (handicapBefore > 40) { if (member.getGender().equalsIgnoreCase("m")) { handicapBefore = 36; } if (member.getGender().equalsIgnoreCase("f")) { handicapBefore = 40; } } if (handicapAfter > 40) { if (member.getGender().equalsIgnoreCase("m")) { handicapAfter = 36; } if (member.getGender().equalsIgnoreCase("f")) { handicapAfter = 40; } } difference = handicapBefore - handicapAfter; data = new StringBuffer(); String s = ""; try { s = member.getName(); // Name data.append(s); data.append("\t"); } catch (Exception e) { e.printStackTrace(System.err); } try { s = member.getSocialSecurityNumber(); // SocialSecurityNumber if (s.length() == 10) { s = s.substring(0, 6) + "-" + s.substring(6, s.length()); } data.append(s); data.append("\t"); } catch (Exception e) { e.printStackTrace(System.err); } try { if (member.getDateOfBirth() != null) { s = member.getDateOfBirth().toString(); data.append(s); } data.append("\t"); } catch (Exception e) { e.printStackTrace(System.err); } try { if (member.getGender() != null) { s = member.getGender(); data.append(s); } data.append("\t"); } catch (Exception e) { e.printStackTrace(System.err); } try { UnionMemberInfo umi = member .getUnionMemberInfo(unionID); if (umi != null) { s = umi.getMemberStatus(); if (s.equalsIgnoreCase("A")) { s = "Virkur"; } else { s = "�virkur"; } data.append(s); } data.append("\t"); if (umi != null) { if (umi.getRegistrationDate() != null) s = (new IWTimestamp(umi .getRegistrationDate())) .toSQLDateString(); else s = ""; data.append(s); } data.append("\t"); } catch (Exception e) { e.printStackTrace(System.err); } try { s = TextSoap .singleDecimalFormat((double) handicapBefore); // HandicapBefore s = s.replace('.', ','); data.append(s); data.append("\t"); } catch (Exception e) { e.printStackTrace(System.err); } try { s = TextSoap .singleDecimalFormat((double) handicapAfter); // HandicapAfter s = s.replace('.', ','); data.append(s); data.append("\t"); } catch (Exception e) { e.printStackTrace(System.err); } try { s = TextSoap .singleDecimalFormat((double) difference); // Difference s = s.replace('.', ','); data.append(s); data.append("\t"); data.append(scorecardAfter.length); data.append("\n"); } catch (Exception e) { e.printStackTrace(System.err); } /* * if ( phones ) { try { Phone[] phones = * member.getPhone(); for ( int z = 0; z < * phones.length; z++ ) { s = phones[z].getNumber(); * data.append(s); if ( z + 1 < phones.length ) { * data.append("\t"); } else { data.append("\n"); } } * if ( phones.length == 0 ) { data.append("\n"); } } * catch ( Exception e ) { * e.printStackTrace(System.err); } } */ c = data.toString().toCharArray(); out.write(c); } } catch (Exception e) { e.printStackTrace(System.err); } } System.out.println("Done: " + new IWTimestamp().getTimestampRightNow().toString()); if (c != null) out.write(c); out.close(); this.getParentPage().setToRedirect( "/servlet/Excel?&dir=" + file, 1); } } catch (IOException io) { io.printStackTrace(System.err); } } public void setOnlyActive() { this.onlyActive = true; } public void setOnlyInActive() { this.onlyActive = true; } public void setPhones() { this.phones = true; } }