/* * Created on 4.3.2004 */ package is.idega.idegaweb.golf.clubs.presentation; import java.io.IOException; import java.math.BigDecimal; import java.sql.SQLException; import java.util.StringTokenizer; import com.idega.data.IDOLookup; import com.idega.idegaweb.IWResourceBundle; import com.idega.presentation.Image; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.ui.BackButton; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.HiddenInput; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextInput; import com.idega.presentation.ui.Window; import com.idega.presentation.text.Link; import com.idega.presentation.text.Text; import is.idega.idegaweb.golf.entity.Member; import is.idega.idegaweb.golf.presentation.GolfBlock; import com.idega.util.text.TextSoap; /** * @author laddi */ public class MemberSearcher extends GolfBlock { public void main(IWContext modinfo) throws Exception { IWResourceBundle iwrb = getResourceBundle(); getParentPage().setTitle(iwrb.getLocalizedString("handicap.member_selection", "Member selection")); String mode = modinfo.getParameter("mode"); if (mode == null) { mode = ""; } if (mode.equals("") || ("".equals(modinfo.getParameter("ssn")) && "".equals(modinfo.getParameter("name")))) { Form myForm = new Form("select_member.jsp", "get"); 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 = new TextInput("ssn"); kennitala.setLength(10); kennitala.setMaxlength(10); TextInput nafn = new TextInput("name"); nafn.setLength(20); myTable.addText(iwrb.getLocalizedString("handicap.enter_social_security_number", "Enter social-security number") + ":", 1, 1); myTable.add(kennitala, 1, 2); myTable.addText(iwrb.getLocalizedString("handicap.or_enter_name", "or enter name") + ":", 1, 3); myTable.add(nafn, 1, 4); myTable.add(new SubmitButton(iwrb.getImage("buttons/search.gif", "", 76, 19)), 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"); String unionId = (String) modinfo.getSession().getAttribute("golf_union_id"); Member[] member = (Member[]) ((Member) IDOLookup.instanciateEntity(Member.class)).findAllByColumnEquals("social_security_number", kennitala); if (nafn != null && (member == null || member.length == 0)) { //try { member = findMembersByName(modinfo, nafn, unionId); //}catch (SQLException e) { // add(e.getMessage()); //} //member = (Member[]) (new Member()).findAll("select * from member // where full_name like '%"+nafn+"%'"); } Member memberinn = (Member) modinfo.getSessionAttribute("member_login"); Form myForm = new Form("select_member.jsp"); 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) { //if ( member[0].getMainUnionID() == memberinn.getMainUnionID() || // memberinn.getMainUnionID() == 3 ) { myTable = new Table(3, member.length + 2); myTable.setCellpadding(1); myTable.setCellspacing(1); myTable.setAlignment("center"); int row = 1; myTable.addText(iwrb.getLocalizedString("handicap.name", "Name") + ":", 2, row); myTable.addText(iwrb.getLocalizedString("handicap.handicap", "Handicap") + ":", 3, row); //myTable.setAlignment(1,2,"left"); for (int i = 0; i < memberLength; i++) { ++row; //button = new // RadioButton("member_id",String.valueOf(member[i].getID()) ); //myTable.add(button, 1, row); myTable.add(insertInfoImageLink(String.valueOf(member[i].getID())), 1, row); myTable.addText(member[i].getName(), 2, row); if ((int) member[i].getHandicap() == 100) { myTable.addText(iwrb.getLocalizedString("handicap.not_registered", "Not registered"), 3, row); } else { myTable.addText(TextSoap.singleDecimalFormat((double) member[i].getHandicap()), 3, row); } } // if (memberLength == 1) { // button.setSelected(); // } ++row; myTable.setAlignment(1, row, "center"); myTable.mergeCells(1, row, 3, row); myTable.add(new BackButton(iwrb.getImage("buttons/back.gif", "", 76, 19)), 1, row); //myTable.add(new // SubmitButton(iwrb.getImage("buttons/confirm.gif","",76,19)),1,row); //myForm.add(new // HiddenInput("member_id",String.valueOf(member[0].getID()))); //} //else { //myTable.addText("Kylfingur ekki � "+new // Union(memberinn.getMainUnionID()).getAbbrevation(),1,2); //myTable.add(new BackButton("Til baka"),1,3); //} } else { myTable.addText(iwrb.getLocalizedString("handicap.no_member", "No member found in database"), 1, 2); myTable.add(new BackButton("Til baka"), 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, String union_id) 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 = "Select * from member where "; String tempSQLString = ""; try { manyNames = 0; fullName = ""; firstName = ""; middleName = ""; lastName = ""; tempSQLString = ""; 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 member.* 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 member.* 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 member.* 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; } if (union_id != null && !"3".equals(union_id)) { SQLString += " AND union_member_info.union_id = " + union_id + " AND union_member_info.MEMBERSHIP_TYPE = 'main'"; } } catch (Exception e) { // add(e.getMessage()); } // if (numberInserted != 0) { SQLString += " order by first_name, last_name, middle_name"; members = (Member[]) ((Member) IDOLookup.instanciateEntity(Member.class)).findAll(SQLString); //add("SQL = "+SQLString); //System.out.println("Done printing // array"+idegaTimestamp.RightNow().toSQLTimeString() ); // } return members; } private String scale_decimals(String nyForgjof, int scale) throws IOException { BigDecimal test2 = new BigDecimal(nyForgjof); String nyForgjof2 = test2.setScale(scale, 5).toString(); return nyForgjof2; } public Link insertInfoImageLink(String member_id) { Image image = new Image("/pics/clubs/members/info.gif"); Window window = new Window("Memberwindow", 690, 610, "/clubs/member.jsp"); window.setMenubar(false); window.setResizable(true); window.setScrollbar(true); window.setTitlebar(false); image.setBorder(0); Link myLink = new Link(image, window); //myLink.setURL(action); myLink.addParameter("member_id", member_id); return myLink; } }