/* * Created on 3.3.2004 */ package is.idega.idegaweb.golf.handicap.presentation; import is.idega.idegaweb.golf.entity.Member; import is.idega.idegaweb.golf.presentation.GolfBlock; import is.idega.idegaweb.golf.templates.page.GolfWindow; import java.sql.SQLException; import java.util.StringTokenizer; import com.idega.data.IDOLookup; import com.idega.idegaweb.IWResourceBundle; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.text.Text; import com.idega.presentation.ui.BackButton; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.HiddenInput; import com.idega.presentation.ui.RadioButton; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextInput; import com.idega.util.text.TextSoap; /** * @author laddi */ public class HandicapFindMember extends GolfWindow { public HandicapFindMember() { setWidth(400); setHeight(300); setTitle("Find Member"); add(new FindMember()); } public class FindMember extends GolfBlock { public void main(IWContext modinfo) throws Exception { IWResourceBundle iwrb = getResourceBundle(); getParentPage().setTitle(iwrb.getLocalizedString("handicap.member_selection", "Member selection")); addHeading(iwrb.getLocalizedString("handicap.member_selection", "Member selection")); String mode = modinfo.getParameter("mode"); if (mode == null) { mode = ""; } if (mode.equals("")) { Form myForm = new Form(); myForm.add(new HiddenInput("mode", "leita")); Table myTable = new Table(1, 5); myTable.setCellpadding(3); myTable.setCellspacing(3); //myTable.setAlignment(1,2,"center"); //myTable.setAlignment(1,4,"center"); myTable.setAlignment(1, 5, "right"); myTable.setAlignment("center"); TextInput kennitala = (TextInput) getStyledInterface(new TextInput("ssn")); kennitala.setLength(10); kennitala.setMaxlength(10); TextInput nafn = (TextInput) getStyledInterface(new TextInput("name")); nafn.setLength(20); myTable.add(getHeader(iwrb.getLocalizedString("handicap.enter_social_security_number", "Enter social-security number") + ":"), 1, 1); myTable.add(kennitala, 1, 2); myTable.add(getHeader(iwrb.getLocalizedString("handicap.or_enter_name", "or enter name") + ":"), 1, 3); myTable.add(nafn, 1, 4); myTable.add(getButton(new SubmitButton(iwrb.getLocalizedString("handicap.search", "Search"))), 1, 5); myForm.add(myTable); add(new Text().getBreak()); add(myForm); } else if (mode.equals("leita")) { String kennitala = modinfo.getParameter("ssn"); String nafn = modinfo.getParameter("name"); Member[] member = null; if (kennitala != null && !kennitala.trim().equalsIgnoreCase("")) { member = (Member[]) ((Member) IDOLookup.instanciateEntity(Member.class)).findAllByColumnEquals("social_security_number", kennitala); } if ((nafn != null && !nafn.equals("")) && (member == null || member.length == 0)) { member = findMembersByName(modinfo, nafn); } Member memberinn = (Member) modinfo.getSessionAttribute("member_login"); Form myForm = new Form(); myForm.add(new HiddenInput("mode", "submit")); Table myTable = new Table(1, 3); myTable.setCellpadding(3); myTable.setCellspacing(3); myTable.setAlignment(1, 2, "center"); myTable.setAlignment(1, 3, "right"); myTable.setAlignment("center"); int memberLength = member.length; if (memberLength > 0) { myTable = new Table(3, member.length + 2); myTable.setCellpadding(1); myTable.setCellspacing(1); myTable.setAlignment("center"); int row = 1; RadioButton button = null; myTable.add(getHeader(iwrb.getLocalizedString("handicap.use", "Use")), 1, row); myTable.add(getHeader(iwrb.getLocalizedString("handicap.name", "Name") + ":"), 2, row); myTable.add(getHeader(iwrb.getLocalizedString("handicap.handicap", "Handicap") + ":"), 3, row); for (int i = 0; i < memberLength; i++) { ++row; button = this.getRadioButton("member_id", String.valueOf(member[i].getID())); myTable.add(button, 1, row); myTable.add(getText(member[i].getName()), 2, row); if ((int) member[i].getHandicap() == 100) { myTable.add(getText(iwrb.getLocalizedString("handicap.not_registered", "Not registered")), 3, row); } else { myTable.add(getText(TextSoap.singleDecimalFormat((double) member[i].getHandicap())), 3, row); } } if (memberLength == 1) { button.setSelected(); } ++row; myTable.setAlignment(1, row, "right"); myTable.mergeCells(1, row, 3, row); myTable.add(getButton(new BackButton(iwrb.getLocalizedString("handicap.back", "Back"))), 1, row); myTable.add(getButton(new SubmitButton(iwrb.getLocalizedString("handicap.confirm", "Confirm"))), 1, row); } else { myTable.add(getHeader(iwrb.getLocalizedString("handicap.no_member", "No member found in database")), 1, 2); myTable.add(getButton(new BackButton(iwrb.getLocalizedString("handicap.back", "Back"))), 1, 3); } myForm.add(myTable); add(new Text().getBreak()); add(myForm); } else if (mode.equals("submit")) { String member_id = modinfo.getParameter("member_id"); modinfo.setSessionAttribute("member_id", member_id); getParentPage().setParentToReload(); getParentPage().close(); } } public Member[] findMembersByName(IWContext modinfo, String name) throws SQLException { Member[] members = null; Member[] tempMembers = null; StringTokenizer nameParts; String fullName = ""; String firstName = ""; String middleName = ""; String lastName = ""; int manyNames = 0; int numberInserted = 0; String SQLString = null; try { manyNames = 0; fullName = ""; firstName = ""; middleName = ""; lastName = ""; fullName = name; nameParts = new StringTokenizer(fullName, " "); manyNames = nameParts.countTokens(); for (int j = 0; j < manyNames; j++) { if (j == 0) { firstName = nameParts.nextToken(); } else if (j == manyNames - 1) { lastName = nameParts.nextToken(); } else { middleName += nameParts.nextToken(); if (j != manyNames - 2) { middleName += " "; } } } switch (manyNames) { case 0: break; case 1: SQLString = "Select distinct * from member, union_member_info where member.member_id = union_member_info.member_id AND first_name like '" + firstName + "%'"; break; case 2: SQLString = "Select distinct * from member, union_member_info where member.member_id = union_member_info.member_id AND first_name like '" + firstName + "%' and (last_name like '" + lastName + "%' OR middle_name like '" + lastName + "%')"; break; default: SQLString = "Select distinct * from member, union_member_info where member.member_id = union_member_info.member_id AND first_name like '" + firstName + "%' and middle_name like '" + middleName + "%' and last_name like '" + lastName + "%'"; break; } } catch (Exception e) { e.printStackTrace(); } SQLString += " order by first_name, last_name, middle_name"; members = (Member[]) ((Member) IDOLookup.instanciateEntity(Member.class)).findAll(SQLString); return members; } } }