/*
* Created on 4.3.2004
*/
package is.idega.idegaweb.golf.tournament.presentation;
import is.idega.idegaweb.golf.access.AccessControl;
import is.idega.idegaweb.golf.clubs.presentation.MemberCorrectWindow;
import is.idega.idegaweb.golf.clubs.presentation.UnionCorrectWindow;
import is.idega.idegaweb.golf.entity.Member;
import is.idega.idegaweb.golf.entity.MemberBMPBean;
import is.idega.idegaweb.golf.entity.MemberHome;
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.Tee;
import is.idega.idegaweb.golf.entity.TeeHome;
import is.idega.idegaweb.golf.entity.Tournament;
import is.idega.idegaweb.golf.entity.TournamentGroup;
import is.idega.idegaweb.golf.entity.TournamentGroupHome;
import is.idega.idegaweb.golf.entity.TournamentHome;
import is.idega.idegaweb.golf.entity.TournamentRound;
import is.idega.idegaweb.golf.entity.TournamentRoundHome;
import is.idega.idegaweb.golf.entity.Union;
import is.idega.idegaweb.golf.entity.UnionHome;
import is.idega.idegaweb.golf.entity.UnionMemberInfo;
import is.idega.idegaweb.golf.handicap.business.Handicap;
import java.math.BigDecimal;
import java.rmi.RemoteException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.ejb.FinderException;
import com.idega.data.IDOLookup;
import com.idega.data.IDOQuery;
import com.idega.data.SimpleQuerier;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.CheckBox;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.GenericButton;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextArea;
import com.idega.presentation.ui.TextInput;
import com.idega.util.IWTimestamp;
import com.idega.util.text.TextSoap;
/**
* @author gimmi
*/
public class TournamentRegistration extends TournamentBlock {
public void setTournament(IWContext modinfo, Tournament tournament) {
modinfo.setSessionAttribute("golf_register_member_tournament",tournament);
}
public Tournament getTournament(IWContext modinfo) {
Tournament tournament = (Tournament) modinfo.getSessionAttribute("golf_register_member_tournament");
return tournament;
}
protected boolean tournamentMustBeSet() {
return true;
}
public void main(IWContext modinfo)throws Exception{
String tournament_id;
String action = modinfo.getParameter("action");
Table table = new Table(2,3);
Member member = getMember();
Tournament tournament = null;
tournament_id= modinfo.getParameter("tournament");
if (tournament_id == null) {
tournament_id = (String) modinfo.getSessionAttribute("golf_register_member_tournament_id");
if (tournament_id != null) {
tournament = getTournament(modinfo);
action = "selectmember";
}else {
int tournamentID = getTournamentID(modinfo);
if (tournamentID > 0) {
tournament = ((TournamentHome) IDOLookup.getHomeLegacy(Tournament.class)).findByPrimaryKey(tournamentID);
setTournament(modinfo, tournament);
}
}
} else {
tournament = ((TournamentHome) IDOLookup.getHomeLegacy(Tournament.class)).findByPrimaryKey(Integer.parseInt(tournament_id));
setTournament(modinfo,tournament);
}
if (action == null) {
action = "selectmember";
}
if (tournament != null){
if(action.equals("register")){
/*
if (member== null){
table.add("�� ver�ur a� skr� �ig inn og vera skr��ur f�lagi � golf.is");
add(table);
}else{
table.add("Ertu viss um a� �� viljir skr� �ig m�ti� "+tournament.getName());
Form form = new Form();
table.add(form,1,2);
form.maintainParameter("tournament_id");
SubmitButton confirmButton = new SubmitButton("J�","action","confirmregister");
form.add(confirmButton);
add(table);
}
*/
}else if (action.equals("selectmember") ) {
selectMember(modinfo,getResourceBundle());
}else if (action.equals("searchBySocialSecurityNumber")) {
searchBySocialSecurityNumber(modinfo,getResourceBundle());
}else if (action.equals("getSearchBySocialSecurityNumberResults")) {
getSearchBySocialSecurityNumberResults(modinfo,getResourceBundle());
}else if (action.equals("registermarkedmembers")) {
checkMarkedMembers(modinfo,getResourceBundle());
}else if (action.equals("confirmRegisterMarkedMembers")) {
registerMarkedMembers(modinfo,getResourceBundle());
}else if (action.equals("searchByName")) {
searchByName(modinfo,getResourceBundle());
}else if (action.equals("getSearchByNameResults")) {
getSearchByNameResults(modinfo,getResourceBundle());
}else if (action.equals("unionMemberList")) {
getUnionMemberList(modinfo,getResourceBundle());
}else if (action.equals("removeMemberFromTournament")) {
String startingGroupNumber = modinfo.getParameter("startingGroupNumber");
String member_id = modinfo.getParameter("member_id");
getTournamentBusiness(modinfo).removeMemberFromTournament(modinfo, tournament,((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(member_id)));
getDirectRegistrationTable(modinfo,false,getResourceBundle());
}else if (action.equals("directRegistrationMembersChosen")) {
finalizeDirectRegistration(modinfo,getResourceBundle());
}else if (action.equals("tournamentMemberList")) {
String sub_action = modinfo.getParameter("sub_action");
if (sub_action != null) {
if (sub_action.equals("update")) {
getTournamentBusiness(modinfo).setAllMemberToNotPaid(tournament);
String[] paid = modinfo.getParameterValues("paid");
Member mMember;
if (paid != null) {
for (int y = 0; y < paid.length; y++) {
mMember = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(paid[y]));
getTournamentBusiness(modinfo).setHasMemberPaid(tournament, mMember, true);
}
}
String[] rem = modinfo.getParameterValues("removeMember");
if (rem != null) {
for (int y = 0; y < rem.length; y++) {
mMember = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(rem[y]));
getTournamentBusiness(modinfo).removeMemberFromTournament(modinfo, tournament,mMember);
}
}
}
}
tournamentMemberList(modinfo,getResourceBundle());
}else {
noAction(modinfo,getResourceBundle());
}
}else{
noAction(modinfo,getResourceBundle());
}
}
public void noAction(IWContext modinfo,IWResourceBundle iwrb) throws RemoteException {
Form form = new Form();
Table table2 = new Table(1,3);
table2.add(iwrb.getLocalizedString("tournament.choose_tournament","Choose a tournament") ,1,1);
DropdownMenu menu = getTournamentBusiness(modinfo).getDropdownOrderedByUnion(new DropdownMenu("tournament"),modinfo);
menu.setMarkupAttribute("size","10");
table2.add(menu,1,2);
GenericButton aframButton = getButton(new SubmitButton(localize("tournament.continue","Continue"),"flipp","selectmember"));
HiddenInput hidden = new HiddenInput("action","selectmember");
//SubmitButton button = new SubmitButton("Velja","action","selectmember");
table2.add(aframButton,1,3);
table2.add(hidden);
table2.setAlignment(1,3,"right");
add(form);
form.add(table2);
}
public void selectMember(IWContext modinfo,IWResourceBundle iwrb) throws NumberFormatException, RemoteException, SQLException{
Tournament tournament = getTournament(modinfo);
if(tournament.isDirectRegistration()){
directRegistration(modinfo,iwrb);
}else{
add(tournament.getName() );
this.searchByName(modinfo,iwrb);
this.searchBySocialSecurityNumber(modinfo,iwrb);
if (AccessControl.isClubAdmin(modinfo) ) {
Link link = new Link(iwrb.getLocalizedString("tournament.list_of_club_members","List of club members"));
link.addParameter("action","unionMemberList");
add(link);
add("<br>");
}
Link membersInTournament = new Link(iwrb.getLocalizedString("tournament.list_of_registered_members","Members registered in tournament"));
membersInTournament.addParameter("action","tournamentMemberList");
add(membersInTournament);
}
}
public void directRegistration(IWContext modinfo,IWResourceBundle iwrb) throws SQLException, NumberFormatException, RemoteException {
String subAction = modinfo.getParameter("sub_action");
if (subAction != null) {
if (subAction.equals("saveDirectRegistration")) {
saveDirectRegistration(modinfo,iwrb);
}
else if (subAction.equals("removeMemberFromTournament")) {
Tournament tournament = getTournament(modinfo);
String startingGroupNumber = modinfo.getParameter("startingGroupNumber");
String member_id = modinfo.getParameter("member_id");
try {
getTournamentBusiness(modinfo).removeMemberFromTournament(modinfo, tournament,((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(member_id)));
}
catch (FinderException fe) {
throw new SQLException(fe.getMessage());
}
getDirectRegistrationTable(modinfo,false,iwrb);
}
else if (subAction.equals("")) {
getDirectRegistrationTable(modinfo, false,iwrb);
}
}
else {
getDirectRegistrationTable(modinfo, false,iwrb);
}
}
public void tournamentMemberList(IWContext modinfo, IWResourceBundle iwrb) throws SQLException{
Tournament tournament = getTournament(modinfo);
List members = getMembersInTournamentList(tournament);
add(tournament.getName());
String action_to_forward = "tournamentMemberList";
Union union;
int union_id = -1;
String abbrevation = "-";
if (members == null) {
add("<br><br>"+iwrb.getLocalizedString("tournament.nobody_regstered","No one is registered in the tournament") );
}
else {
Form form = new Form();
form.addParameter("action",action_to_forward);
Table table = new Table();
form.add(table);
java.text.DecimalFormat handicapFormat = new java.text.DecimalFormat("0.0");
int numberOfMembers = members.size();
Member member;
Link link;
CheckBox paid;
CheckBox del;
int row = 1;
table.add(iwrb.getLocalizedString("tournament.kt","Ssn"), 1, row);
table.add(iwrb.getLocalizedString("tournament.name","Name"), 3, row);
table.add(iwrb.getLocalizedString("tournament.club","Union"), 5, row);
table.add(iwrb.getLocalizedString("tournament.Hcp","Hcp"), 7, row);
table.add(iwrb.getLocalizedString("tournament.Paid","Paid"), 9, row);
table.add(iwrb.getLocalizedString("tournament.Del","Del"), 11, row);
for (int i = 0; i < members.size(); i++) {
++row;
member = (Member) members.get(i);
table.add(member.getSocialSecurityNumber(),1,row);
table.add(member.getName(),3,row);
union_id = tournament.getTournamentMemberUnionId(member);
if (union_id != -1) {
try {
union = ((UnionHome) IDOLookup.getHomeLegacy(Union.class)).findByPrimaryKey(union_id);
}
catch (FinderException fe) {
throw new SQLException(fe.getMessage());
}
abbrevation = union.getAbbrevation();
}else {
abbrevation = "-";
}
table.add(abbrevation,5,row);
table.add(handicapFormat.format(member.getHandicap())+"",7,row);
try {
paid = new CheckBox("paid", Integer.toString(member.getID()));
paid.setChecked(getTournamentBusiness(modinfo).getHasMemberPaid(tournament, member));
table.add(paid, 9, row);
}catch (Exception e) {
table.add("Villa", 9, row);
}
del = new CheckBox("removeMember", Integer.toString(member.getID()));
table.add(del, 11, row);
/*
link = new Link(new Image("/pics/handicap/trash.gif","Skr� �r m�ti"));
link.addParameter("action",action_to_forward);
link.addParameter("sub_action","removeMember");
link.addParameter("member_id",member.getID()+"");
table.add(link,11,row);
*/
}
++row;
GenericButton save = getButton(new SubmitButton(localize("tournament.save","Save"), "sub_action","update"));
table.mergeCells(1, row, 11, row);
table.setAlignment(1, row, "right");
table.add(save, 1, row);
++row;
table.mergeCells(1,row,5,row);
table.add(numberOfMembers+ " "+iwrb.getLocalizedString("tournament.members_registered","members_registered"),1,row);
add(form);
}
add("<br><br>");
Link back = getLocalizedLink("tournament.back","Back");
back.addParameter("action","selectmember");
add(back);
}
public void getDirectRegistrationTable(IWContext modinfo, boolean view,IWResourceBundle iwrb) throws RemoteException, SQLException {
add("<center><big><b>");
add(iwrb.getLocalizedString("tournament.tee_time_registration","Tee time registration"));
add("</b></big></center>");
Tournament tournament = getTournament(modinfo);
TournamentRound[] tourRounds = tournament.getTournamentRounds();
String tournament_round_id = modinfo.getParameter("tournament_round");
if (tourRounds.length > 0) {
String viewString = modinfo.getParameter("viewOnly");
if (viewString != null) {
if (viewString.equalsIgnoreCase("true")) {
view = true;
}
else if (viewString.equalsIgnoreCase("false")) {
view = false;
}
}
Table table = new Table(2,1);
table.setWidth("90%");
table.setAlignment(1,1,"left");
table.setAlignment(2,1,"right");
table.setCellpadding(0);
table.setCellspacing(0);
if (AccessControl.isAdmin(modinfo) || AccessControl.isClubAdmin(modinfo) ) {
GenericButton theChecker = getButton(new GenericButton(iwrb.getLocalizedString("tournament.verify_tournament","Verify tournament")));
theChecker.setWindowToOpen(TournamentCheckerWindow.class);
theChecker.addParameter("tournament_id",tournament.getID());
theChecker.addParameter("action","doCheck");
table.add(theChecker,1,1);
}
GenericButton theSearch = getButton(new GenericButton(localize("tournament.search_for_member","Search for member")));
theSearch.setWindowToOpen(MemberSearchWindow.class);
theSearch.addParameter("action","getSearch");
table.add(theSearch,2,1);
add(table);
add(getTournamentBusiness(modinfo).getStartingtimeTable(tournament,tournament_round_id, view));
Link link = getLink(iwrb.getLocalizedString("tournament.print","print"));
link.addParameter(TournamentStartingtimeWindow.PARAMETER_TOURNAMENT_ROUND_ID, tournament_round_id);
link.addParameter(TournamentStartingtimeWindow.PARAMETER_TOURNAMENT_ID, tournament.getID());
link.setWindowToOpen(TournamentStartingtimeWindow.class);
add(link);
}
else {
add(iwrb.getLocalizedString("tournament.no_tournament_rounds_in_tournament","No rounds have been specified for this tournament"));
add("<br>");
}
}
public void finalizeDirectRegistration(IWContext modinfo,IWResourceBundle iwrc) throws NumberFormatException, RemoteException, SQLException {
if (isSaveEnabled(modinfo)) {
Tournament tournament = getTournament(modinfo);
String tournament_round = modinfo.getParameter("tournament_round");
String[] member_ids = modinfo.getParameterValues("member_id");
String[] tournament_groups = modinfo.getParameterValues("tournament_group");
String[] starting_time = modinfo.getParameterValues("starting_time");
String[] starting_tee = modinfo.getParameterValues("starting_tee");
String[] groupNames = modinfo.getParameterValues("group_name");
String sTournamentRoundId = modinfo.getParameter("tournament_round");
String handicapCorrection;
Member member = null;
TournamentGroup tGroup;
javax.transaction.TransactionManager tm;
int fieldID = tournament.getFieldId();
int fieldPar = tournament.getField().getFieldPar();
Handicap handicap = new Handicap(-1);
if (member_ids != null) {
if (tournament.getTournamentType().getUseGroups() && tournament.getNumberInTournamentGroup() > 1) {
int numInGroup = tournament.getNumberInTournamentGroup();
String[] corrections = modinfo.getParameterValues("handicap_correction");
String[] memberNames = modinfo.getParameterValues("member_name");
MemberHome mHome = (MemberHome) IDOLookup.getHome(Member.class);
HashMap groups = new HashMap();
HashMap groupMembers = new HashMap();
int groupCounter = 0;
for (int i = 0; i < member_ids.length; i++) {
tm = com.idega.transaction.IdegaTransactionManager.getInstance();
try {
tm.begin();
String groupName = groupNames[i];
Member group = (Member) groups.get(groupName);
if (group == null) {
// Create the group
group = mHome.create();
group.setFirstName(groupName);
group.setSocialSecurityNumber("0000000000");
group.setGender("m");
group.store();
UnionMemberInfo uMInfo = (UnionMemberInfo) IDOLookup.createLegacy(UnionMemberInfo.class);
uMInfo.setUnionID(1);
uMInfo.setMemberID(group.getID() );
uMInfo.setMembershipType("main");
uMInfo.setMemberStatus("A");
uMInfo.insert();
groups.put(groupName, group);
}
Member[] mems = (Member[]) groupMembers.get(group);
if (mems == null) {
mems = new Member[numInGroup];
groupCounter = 0;
groupMembers.put(group, mems);
}
if (member_ids[i].equals("-1")) {
// Create the member ...
member = mHome.create();
member.setFirstName(memberNames[i]);
member.setSocialSecurityNumber("0000000001");
member.store();
} else {
member = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(member_ids[i]));
}
mems[groupCounter++] = member;
handicapCorrection = corrections[i];
if (handicapCorrection != null) {
if (!handicapCorrection.equalsIgnoreCase("")) {
correctHandicap(modinfo,member,handicapCorrection);
}
}
if (groupCounter == numInGroup) {
String ids = "";
float totalHand = 0;
tGroup = ((TournamentGroupHome) IDOLookup.getHomeLegacy(TournamentGroup.class)).findByPrimaryKey(Integer.parseInt(tournament_groups[i]));
int teeColorId = getTournamentBusiness(modinfo).getTeeColorIdForTournamentGroup(tournament, tGroup);
if (teeColorId < 0) {
teeColorId = tGroup.getTeeColorID();
}
Tee tee = ((TeeHome) IDOLookup.getHomeLegacy(Tee.class)).findByFieldAndTeeColorAndHoleNumber(fieldID, teeColorId, 1);
for (int kk=0; kk<numInGroup; kk++) {
if (kk != 0) {
ids+= ",";
}
float hc = mems[kk].getHandicap();
if (hc > tournament.getMaxHandicap()) {
hc = tournament.getMaxHandicap();
}
int leikhandi = handicap.getLeikHandicap((double)tee.getSlope(), (double) tee.getCourseRating(), (double) fieldPar, hc);
if (leikhandi > tournament.getMaxHandicap()) {
leikhandi = (int) tournament.getMaxHandicap();
}
totalHand += leikhandi;
ids += Integer.toString(mems[kk].getID());
}
switch (numInGroup) {
case 2:
totalHand = totalHand / (float) 5;
break;
case 3:
totalHand = totalHand / (float) 7.5;
break;
case 4:
totalHand = totalHand / (float) 10;
break;
}
BigDecimal bd = new BigDecimal(totalHand);
int leikhandi = bd.setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
correctHandicap(modinfo, group, Integer.toString(leikhandi));
group.addMetaData("group_members", ids);
group.store();
// Group is full, time to finalize
getTournamentBusiness(modinfo).registerMember(group,tournament,tournament_groups[i]);
getTournamentBusiness(modinfo).setupStartingtime(modinfo, group,tournament,Integer.parseInt(sTournamentRoundId),Integer.parseInt(starting_time[i]));
}
tm.commit();
}
catch (Exception ex) {
ex.printStackTrace(System.err);
try {
tm.rollback();
}catch (javax.transaction.SystemException se) {se.printStackTrace(System.err);}
}
}
} else {
for (int i = 0; i < member_ids.length; i++) {
tm = com.idega.transaction.IdegaTransactionManager.getInstance();
try {
member = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(member_ids[i]));
if (!getTournamentBusiness(modinfo).isMemberRegisteredInTournament(tournament, member)) {
tm.begin();
handicapCorrection = modinfo.getParameter("handicap_correction_"+member.getID());
if (handicapCorrection != null) {
if (!handicapCorrection.equalsIgnoreCase("")) {
correctHandicap(modinfo,member,handicapCorrection);
}
}
tGroup = ((TournamentGroupHome) IDOLookup.getHomeLegacy(TournamentGroup.class)).findByPrimaryKey(Integer.parseInt(tournament_groups[i]));
getTournamentBusiness(modinfo).registerMember(member,tournament,tournament_groups[i]);
if (starting_tee[i].equals("10")) {
getTournamentBusiness(modinfo).setupStartingtime(modinfo, member,tournament,Integer.parseInt(sTournamentRoundId),Integer.parseInt(starting_time[i]),10);
}else {
getTournamentBusiness(modinfo).setupStartingtime(modinfo, member,tournament,Integer.parseInt(sTournamentRoundId),Integer.parseInt(starting_time[i]));
}
tm.commit();
}
else {
//System.err.println("�EGAR SKR��UR � M�TI�");
}
}
catch (Exception ex) {
ex.printStackTrace(System.err);
try {
tm.rollback();
}catch (javax.transaction.SystemException se) {se.printStackTrace(System.err);}
}
}
}
}
String[] extraPlayers = modinfo.getParameterValues("extra_player");
if (extraPlayers != null) {
String[] XPSocial = modinfo.getParameterValues("extra_player_social_security_number");
String[] XPStartingtime = modinfo.getParameterValues("extra_player_starting_time");
String[] XPName = modinfo.getParameterValues("extra_player_name");
String[] XPGroups = modinfo.getParameterValues("extra_player_groups");
String[] XPGender = modinfo.getParameterValues("extra_player_gender");
String[] XPHandicap = modinfo.getParameterValues("extra_player_handicap");
IWTimestamp dateStamp;
int year;
int XP = 0;
for (int i = 0; i < extraPlayers.length; i++) {
XP = Integer.parseInt(extraPlayers[i]);
dateStamp = new IWTimestamp();
year = Integer.parseInt(XPSocial[XP].substring(4,6));
if ( XPSocial[XP].substring(9,10).equals("9")) {
year = 1900 + year;
}else if ( XPSocial[XP].substring(9,10).equals("0")) {
year = 2000 + year;
}else if ( XPSocial[XP].substring(9,10).equals("8")) {
year = 1800 + year;
}else if ( XPSocial[XP].substring(9,10).equals("1")) {
year = 2100 + year;
}
dateStamp.setYear(year);
dateStamp.setMonth(Integer.parseInt(XPSocial[XP].substring(2,4)));
dateStamp.setDay(Integer.parseInt(XPSocial[XP].substring(0,2)));
Member XPmember = (Member) IDOLookup.createLegacy(Member.class);
XPmember.setSocialSecurityNumber(XPSocial[XP]);
XPmember.setFirstName(XPName[XP]);
XPmember.setDateOfBirth(dateStamp.getSQLDate());
XPmember.setGender(XPGender[XP]);
XPmember.insert();
MemberInfo memberInfo = (MemberInfo) IDOLookup.createLegacy(MemberInfo.class);
memberInfo.setMemberId(XPmember.getID());
memberInfo.setHandicap(Float.parseFloat(XPHandicap[XP]));
memberInfo.setFirstHandicap(Float.parseFloat(XPHandicap[XP]));
memberInfo.insert();
UnionMemberInfo uMInfo = (UnionMemberInfo) IDOLookup.createLegacy(UnionMemberInfo.class);
uMInfo.setUnionID(1);
uMInfo.setMemberID(XPmember.getID() );
uMInfo.setMembershipType("main");
uMInfo.setMemberStatus("A");
uMInfo.insert();
getTournamentBusiness(modinfo).registerMember(XPmember,tournament,XPGroups[XP]);
getTournamentBusiness(modinfo).setupStartingtime(modinfo, XPmember, tournament, Integer.parseInt(tournament_round), Integer.parseInt(XPStartingtime[XP]) );
}
}
disableSave(modinfo);
}
directRegistration(modinfo,iwrc);
}
public void saveDirectRegistration(IWContext modinfo, IWResourceBundle iwrb) throws SQLException {
Tournament tournament = getTournament(modinfo);
enableSave(modinfo);
try {
String[] membersPaid = modinfo.getParameterValues("paid");
Member member;
getTournamentBusiness(modinfo).setAllMemberToNotPaid(tournament);
if (membersPaid != null) {
for (int i = 0; i < membersPaid.length; i++) {
member = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(membersPaid[i]));
getTournamentBusiness(modinfo).setHasMemberPaid(tournament, member, true);
}
getTournamentBusiness(modinfo).invalidateStartingTimeCache(modinfo, tournament);
}
}catch (Exception e) {
System.err.println("TournamentController : saveDirectRegistration : setting PAID");
e.printStackTrace(System.err);
}
try {
String[] memberIdsToDelete = modinfo.getParameterValues("deleteMember");
Member member;
if (memberIdsToDelete != null) {
for (int i = 0; i < memberIdsToDelete.length; i++) {
member = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(memberIdsToDelete[i]));
getTournamentBusiness(modinfo).removeMemberFromTournament(modinfo, tournament,member);
}
}
}
catch (Exception exc) {
System.err.println("TournamentController : saveDirectRegistration : deleting members");
exc.printStackTrace(System.err);
}
boolean noOne = true;
try {
String sNumberOfGroups = modinfo.getParameter("number_of_groups");
int iNumberOfGroups = Integer.parseInt(sNumberOfGroups);
String sTournamentRoundId = modinfo.getParameter("tournament_round");
int iTournamentRoundId = Integer.parseInt(sTournamentRoundId);
String[] numbers;
Member member = null;
Link unionCorrect = null;
Link memberCorrect = null;
String[] socials = null;
int[] errors = new int[4];
Table content = new Table();
content.setWidth("85%");
TextInput correction;
Form form = new Form();
form.maintainParameter("tournament_round");
form.add(new HiddenInput("action","directRegistrationMembersChosen"));
Form removeForm = new Form();
form.maintainParameter("tournament_round");
form.add(new HiddenInput("action","removeMembersFromTournament"));
Table table = new Table();
table.setBorder(0);
int tableRow = 1;
table.setWidth("100%");
table.add("<u>"+iwrb.getLocalizedString("tournament.name","Name")+"</u>",1,tableRow);
table.add("<u>"+iwrb.getLocalizedString("tournament.club","Club")+"</u>",3,tableRow);
table.add("<u>"+iwrb.getLocalizedString("tournament.handicap","Handicap")+"</u>",5,tableRow);
table.add("<u>"+iwrb.getLocalizedString("tournament.correction","Correction")+"</u>",7,tableRow);
Table other = new Table();
other.setBorder(0);
int otherRow = 1;
other.setWidth("100%");
other.add("<u>"+iwrb.getLocalizedString("tournament.social_security_number","Social security number")+"</u>",1,otherRow);
other.add("<u>"+iwrb.getLocalizedString("tournament.name","Name")+"</u>",3,otherRow);
other.add("<u>"+iwrb.getLocalizedString("tournament.group","Group")+"</u>",5,otherRow);
other.add("<u>"+iwrb.getLocalizedString("tournament.handicap","Handicap")+"</u>",7,otherRow);
other.add("<u>"+iwrb.getLocalizedString("tournament.sex","Sex")+"</u>",9,otherRow);
other.add("<u>"+iwrb.getLocalizedString("tournament.register_sm","Register")+"</u>",11,otherRow);
Table done = new Table();
done.setBorder(0);
int doneRow = 1;
done.add("<u>"+iwrb.getLocalizedString("tournament.already_registered","Already registered")+"</u>");
done.setWidth("100%");
done.setAlignment(1,1,"left");
Table rejects = new Table();
rejects.setBorder(0);
rejects.setWidth("100%");
int rejectsRow = 1;
rejects.setAlignment(1,1,"left");
rejects.add("<u>"+iwrb.getLocalizedString("tournament.can_not_register_pl","Can not register")+"</u>");
TournamentGroup[] allGroupsInTournament = tournament.getTournamentGroups();
DropdownMenu allGroups = new DropdownMenu(allGroupsInTournament,"extra_player_groups");
TextInput derName;
boolean star = false;
DropdownMenu memberGender = new DropdownMenu("extra_player_gender");
memberGender.addMenuElement("M",iwrb.getLocalizedString("tournament.male","Male"));
memberGender.addMenuElement("F",iwrb.getLocalizedString("tournament.female","Female"));
for (int i = 1; i <= iNumberOfGroups ; i++) {
numbers = (String[]) modinfo.getParameterValues("social_security_number_for_group_"+i);
if (numbers != null) {
for (int j = 0; j < numbers.length; j++) {
if (!numbers[j].equals("")) {
member = (Member) MemberBMPBean.getMember(numbers[j]);
if (member == null) {
++otherRow;
other.add(numbers[j],1,otherRow);
other.add(new HiddenInput("extra_player_social_security_number",numbers[j]),1,otherRow);
other.add(new HiddenInput("extra_player_starting_tee","1"),1,otherRow);
derName = new TextInput("extra_player_name");
other.add(derName,3,otherRow);
TextInput hand = new TextInput("extra_player_handicap");
hand.setSize(3);
try {
Integer.parseInt(numbers[j].substring(0,6));
Integer.parseInt(numbers[j].substring(9,10));
}
catch (NumberFormatException n) {
derName.setContent(iwrb.getLocalizedString("tournament.ssn_is_wrong","Social security number is incorrect"));
}
if (numbers[j].length() < 10) {
derName.setContent(iwrb.getLocalizedString("tournament.ssn_is_wrong","Social security number is incorrect"));
}
other.add(allGroups,5,otherRow);
other.add(hand,7,otherRow);
other.add(memberGender, 9,otherRow);
other.add(new HiddenInput("extra_player_starting_time",""+i),1,otherRow);
CheckBox box = new CheckBox("extra_player",""+ (otherRow-2));
other.add(box,11,otherRow);
}
else {
errors = getTournamentBusiness(modinfo).isMemberAllowedToRegister(member,tournament);
if ( (errors[0] == 0) && (errors[1] == 0) && (errors[2] == 0) && (errors[3] == 0) ){
if (!getTournamentBusiness(modinfo).isMemberRegisteredInTournament(tournament, ((TournamentRoundHome) IDOLookup.getHomeLegacy(TournamentRound.class)).findByPrimaryKey(iTournamentRoundId),tournament.getNumberInGroup(),member) ) {
List tGroups = getTournamentBusiness(modinfo).getTournamentGroups(member,tournament);
if (tGroups != null) {
++tableRow;
table.add(member.getName(),1,tableRow);
table.add(new HiddenInput("member_id",""+member.getID()),1,tableRow);
table.add(new HiddenInput("starting_time",""+i),1,tableRow);
table.add(new HiddenInput("starting_tee","1"),1,tableRow);
table.add(new DropdownMenu(tGroups),3,tableRow);
if (member.getGender().equalsIgnoreCase("M")) {
if (member.getHandicap() > tournament.getMaxHandicap() ) {
table.add(tournament.getMaxHandicap()+" *("+member.getHandicap()+")",5,tableRow);
star = true;
}
else {
table.add(TextSoap.singleDecimalFormat(member.getHandicap())+"",5,tableRow);
}
}
else {
if (member.getHandicap() > tournament.getFemaleMaxHandicap() ) {
table.add(tournament.getFemaleMaxHandicap()+" *("+member.getHandicap()+")",5,tableRow);
star = true;
}
else {
table.add(member.getHandicap()+"",5,tableRow);
}
}
correction = new TextInput("handicap_correction_"+member.getID());
correction.setSize(3);
table.add(correction,7,tableRow);
}
}
else {
++doneRow;
done.setAlignment(1,doneRow,"left");
done.add(member.getName(),1,doneRow);
}
}
else {
++rejectsRow;
rejects.setAlignment(1,rejectsRow,"left");
rejects.add(member.getName(),1,rejectsRow);
if ( errors[0] == 1) {
memberCorrect = getLocalizedLink("tournament.check_member","Check Member");
memberCorrect.setWindowToOpen(MemberCorrectWindow.class);
memberCorrect.addParameter("member_id",member.getID());
rejects.add(memberCorrect,2,rejectsRow);
rejects.add(" ",2,rejectsRow);
}
if ( errors[1] == 1) {
unionCorrect = getLocalizedLink("trounament.check_club_membership","Check Club Membership");
unionCorrect.setWindowToOpen(UnionCorrectWindow.class);
unionCorrect.addParameter("member_id",member.getID());
rejects.add(unionCorrect,2,rejectsRow);
}
if ( errors[2] == 1) {
rejects.add(iwrb.getLocalizedString("tournament.groups","Groups"),2,otherRow);
}
if ( errors[3] == 1) {
Link tournamentFix = getLocalizedLink("tournament.check_tournament","Check Tournament");
tournamentFix.setWindowToOpen(TournamentCreatorWindow.class);
tournamentFix.addParameter("tournament",tournament.getID());
tournamentFix.addParameter("tournament_control_mode","edit");
rejects.add(tournamentFix,2,rejectsRow);
}
}
}
}
}
}
numbers = (String[]) modinfo.getParameterValues("social_security_number_for_group_"+i+"_");
if (numbers != null) {
for (int j = 0; j < numbers.length; j++) {
if (!numbers[j].equals("")) {
member = (Member) MemberBMPBean.getMember(numbers[j]);
if (member == null) {
++otherRow;
other.add(numbers[j],1,otherRow);
other.add(new HiddenInput("extra_player_social_security_number",numbers[j]),1,otherRow);
other.add(new HiddenInput("extra_player_starting_tee","10"),1,otherRow);
derName = new TextInput("extra_player_name");
other.add(derName,3,otherRow);
TextInput hand = new TextInput("extra_player_handicap");
hand.setSize(3);
try {
Integer.parseInt(numbers[j].substring(0,6));
Integer.parseInt(numbers[j].substring(9,10));
}
catch (NumberFormatException n) {
derName.setContent(iwrb.getLocalizedString("tournament.ssn_is_wrong","Social security number is incorrect"));
}
if (numbers[j].length() < 10) {
derName.setContent(iwrb.getLocalizedString("tournament.ssn_is_wrong","Social security number is incorrect"));
}
other.add(allGroups,5,otherRow);
other.add(hand,7,otherRow);
other.add(memberGender, 9,otherRow);
other.add(new HiddenInput("extra_player_starting_time",""+i),1,otherRow);
CheckBox box = new CheckBox("extra_player",""+ (otherRow-2));
other.add(box,11,otherRow);
}
else {
errors = getTournamentBusiness(modinfo).isMemberAllowedToRegister(member,tournament);
if ( (errors[0] == 0) && (errors[1] == 0) && (errors[2] == 0) && (errors[3] == 0) ){
if (!getTournamentBusiness(modinfo).isMemberRegisteredInTournament(tournament, ((TournamentRoundHome) IDOLookup.getHomeLegacy(TournamentRound.class)).findByPrimaryKey(iTournamentRoundId),tournament.getNumberInGroup(),member) ) {
List tGroups = getTournamentBusiness(modinfo).getTournamentGroups(member,tournament);
if (tGroups != null) {
++tableRow;
table.add(member.getName(),1,tableRow);
table.add(new HiddenInput("member_id",""+member.getID()),1,tableRow);
table.add(new HiddenInput("starting_time",""+i),1,tableRow);
table.add(new HiddenInput("starting_tee","10"),1,tableRow);
table.add(new DropdownMenu(tGroups),3,tableRow);
if (member.getGender().equalsIgnoreCase("M")) {
if (member.getHandicap() > tournament.getMaxHandicap() ) {
table.add(tournament.getMaxHandicap()+" *("+member.getHandicap()+")",5,tableRow);
star = true;
}
else {
table.add(TextSoap.singleDecimalFormat(member.getHandicap())+"",5,tableRow);
}
}
else {
if (member.getHandicap() > tournament.getFemaleMaxHandicap() ) {
table.add(tournament.getFemaleMaxHandicap()+" *("+member.getHandicap()+")",5,tableRow);
star = true;
}
else {
table.add(member.getHandicap()+"",5,tableRow);
}
}
correction = new TextInput("handicap_correction_"+member.getID());
correction.setSize(3);
table.add(correction,7,tableRow);
}
}
else {
++doneRow;
done.setAlignment(1,doneRow,"left");
done.add(member.getName(),1,doneRow);
}
}
else {
++rejectsRow;
rejects.setAlignment(1,rejectsRow,"left");
rejects.add(member.getName(),1,rejectsRow);
if ( errors[0] == 1) {
memberCorrect = getLocalizedLink("tournament.check_member","Check Member");
memberCorrect.setWindowToOpen(MemberCorrectWindow.class);
memberCorrect.addParameter("member_id",member.getID());
rejects.add(memberCorrect,2,rejectsRow);
rejects.add(" ",2,rejectsRow);
}
if ( errors[1] == 1) {
unionCorrect = getLocalizedLink("tournament.check_club_membership","Check Club Membership");
unionCorrect.setWindowToOpen(UnionCorrectWindow.class);
unionCorrect.addParameter("member_id",member.getID());
rejects.add(unionCorrect,2,rejectsRow);
}
if ( errors[2] == 1) {
rejects.add(iwrb.getLocalizedString("tournament.groups","Groups"),2,otherRow);
}
if ( errors[3] == 1) {
Link tournamentFix = getLocalizedLink("tournament.check_tournament","Check Tournament");
tournamentFix.setWindowToOpen(TournamentCreatorWindow.class);
tournamentFix.addParameter("tournament",tournament.getID());
tournamentFix.addParameter("tournament_control_mode","edit");
rejects.add(tournamentFix,2,rejectsRow);
}
}
}
}
}
}
/*
* Group registration !!! ( ONLY TEE 1 implemented ADD TEE 10 )!!!
*/
boolean useGroups = tournament.getTournamentType().getUseGroups();
if (useGroups && tournament.getNumberInTournamentGroup() > 1) {
String[] names = (String[]) modinfo.getParameterValues("groupname_for_group_"+i);
int membersPerTournamentGroup = tournament.getNumberInTournamentGroup();
int numInGrupNum = tournament.getNumberInGroup();
int numberOfTournamentGroups = numInGrupNum / membersPerTournamentGroup;
for (int k = 0; k < numberOfTournamentGroups; k++) {
String groupName = names[k];
numbers = (String[]) modinfo.getParameterValues("social_security_number_for_group_"+i+"_"+k);
if (numbers != null) {
// Checking for valid entries
boolean validNumbers = true;
String defaultName = "";
for (int j = 0; j < numbers.length; j++) {
if (defaultName.equals("")) {
defaultName = numbers[j].trim();
}
validNumbers &= !numbers[j].trim().equalsIgnoreCase("");
}
for (int j = 0; j < numbers.length && validNumbers; j++) {
if (!numbers[j].equals("")) {
boolean isSSN = false;
try {
Integer.parseInt(numbers[j]);
isSSN = true;
} catch (Exception e) {
isSSN = false;
}
member = (Member) MemberBMPBean.getMember(numbers[j]);
if (member == null && isSSN) {
++otherRow;
other.add(numbers[j],1,otherRow);
other.add(new HiddenInput("extra_player_social_security_number",numbers[j]),1,otherRow);
other.add(new HiddenInput("extra_player_starting_tee","1"),1,otherRow);
derName = new TextInput("extra_player_name");
other.add(derName,3,otherRow);
TextInput hand = new TextInput("extra_player_handicap");
hand.setSize(3);
try {
Integer.parseInt(numbers[j].substring(0,6));
Integer.parseInt(numbers[j].substring(9,10));
}
catch (NumberFormatException n) {
derName.setContent(iwrb.getLocalizedString("tournament.ssn_is_wrong","Social security number is incorrect"));
}
if (numbers[j].length() < 10) {
derName.setContent(iwrb.getLocalizedString("tournament.ssn_is_wrong","Social security number is incorrect"));
}
other.add(allGroups,5,otherRow);
other.add(hand,7,otherRow);
other.add(memberGender, 9,otherRow);
other.add(new HiddenInput("extra_player_starting_time",""+i),1,otherRow);
CheckBox box = new CheckBox("extra_player",""+ (otherRow-2));
other.add(box,11,otherRow);
}
else {
boolean isRegistered = false;
if (member != null) {
isRegistered = getTournamentBusiness(modinfo).isMemberRegisteredInTournament(tournament, ((TournamentRoundHome) IDOLookup.getHomeLegacy(TournamentRound.class)).findByPrimaryKey(iTournamentRoundId),tournament.getNumberInGroup(),member);
errors = getTournamentBusiness(modinfo).isMemberAllowedToRegister(member,tournament);
} else {
errors = new int[]{0, 0, 0, 0};
}
if ((groupName == null || groupName.trim().equals("")) && j==0) {
if (member != null) {
groupName = member.getName();
} else {
groupName = numbers[j];
}
}
if ( (errors[0] == 0) && (errors[1] == 0) && (errors[2] == 0) && (errors[3] == 0)){
if (!isRegistered ) {
List tGroups = getTournamentBusiness(modinfo).getTournamentGroups(member,tournament);
if (tGroups != null) {
++tableRow;
if (member != null) {
table.add(groupName +" - "+member.getName(),1,tableRow);
} else {
table.add(groupName +" - "+numbers[j],1,tableRow);
}
table.add(new HiddenInput("group_name",groupName),1,tableRow);
if (member != null) {
table.add(new HiddenInput("member_id",""+member.getID()),1,tableRow);
table.add(new HiddenInput("member_name",""),1,tableRow);
} else {
table.add(new HiddenInput("member_id","-1"),1,tableRow);
table.add(new HiddenInput("member_name",numbers[j]),1,tableRow);
}
table.add(new HiddenInput("starting_time",""+i),1,tableRow);
table.add(new HiddenInput("starting_tee","1"),1,tableRow);
table.add(new DropdownMenu(tGroups),3,tableRow);
if (member != null) {
if (member.getGender().equalsIgnoreCase("M")) {
if (member.getHandicap() > tournament.getMaxHandicap() ) {
table.add(tournament.getMaxHandicap()+" *("+member.getHandicap()+")",5,tableRow);
star = true;
}
else {
table.add(TextSoap.singleDecimalFormat(member.getHandicap())+"",5,tableRow);
}
}
else {
if (member.getHandicap() > tournament.getFemaleMaxHandicap() ) {
table.add(tournament.getFemaleMaxHandicap()+" *("+member.getHandicap()+")",5,tableRow);
star = true;
}
else {
table.add(member.getHandicap()+"",5,tableRow);
}
}
}
correction = new TextInput("handicap_correction");
correction.setSize(3);
if (member == null) {
correction.setContent("36");
}
table.add(correction,7,tableRow);
}
}
else {
++doneRow;
done.setAlignment(1,doneRow,"left");
done.add(member.getName(),1,doneRow);
}
}
else {
++rejectsRow;
rejects.setAlignment(1,rejectsRow,"left");
rejects.add(member.getName(),1,rejectsRow);
if ( errors[0] == 1) {
memberCorrect = getLocalizedLink("tournament.check_member","Check Member");
memberCorrect.setWindowToOpen(MemberCorrectWindow.class);
memberCorrect.addParameter("member_id",member.getID());
rejects.add(memberCorrect,2,rejectsRow);
rejects.add(" ",2,rejectsRow);
}
if ( errors[1] == 1) {
unionCorrect = getLocalizedLink("trounament.check_club_membership","Check Club Membership");
unionCorrect.setWindowToOpen(UnionCorrectWindow.class);
unionCorrect.addParameter("member_id",member.getID());
rejects.add(unionCorrect,2,rejectsRow);
}
if ( errors[2] == 1) {
rejects.add(iwrb.getLocalizedString("tournament.groups","Groups"),2,otherRow);
}
if ( errors[3] == 1) {
Link tournamentFix = getLocalizedLink("tournament.check_tournament","Check Tournament");
tournamentFix.setWindowToOpen(TournamentCreatorWindow.class);
tournamentFix.addParameter("tournament",tournament.getID());
tournamentFix.addParameter("tournament_control_mode","edit");
rejects.add(tournamentFix,2,rejectsRow);
}
}
}
}
}
if (!validNumbers && !defaultName.equals("")) {
++rejectsRow;
rejects.setAlignment(1,rejectsRow,"left");
if (groupName.equals("")) {
rejects.add(defaultName,1,rejectsRow);
} else {
rejects.add(groupName,1,rejectsRow);
}
rejects.add(getResourceBundle().getLocalizedString("too_few_golfers_in_group", "Too few golfers in the group"),2,rejectsRow);
}
}
}
}
/*
* Group Registration DONE
*/
}
if (tableRow > 1) {
noOne = false;
form.add(table);
content.add(form);
content.addBreak();
}
if (otherRow > 1) {
if (noOne) {
content.add(form);
}
noOne = false;
form.add(other);
content.addBreak();
}
Table buttonTable = new Table(1,1);
buttonTable.setAlignment(1,1,"right");
buttonTable.setWidth("100%");
buttonTable.add(getTournamentBusiness(modinfo).getAheadButton(modinfo,"",""));
form.add(buttonTable);
if (doneRow > 1) {
noOne = false;
content.add(done);
content.addBreak();
}
if (rejectsRow > 1) {
noOne = false;
content.add(rejects);
}
if (!noOne) {
add(content);
}
if (star) {
//content.add("* Kylfingur spilar � h�marskforgj�f m�ts<br>");
}
if (otherRow > 1) {
Table ruleTable = new Table();
ruleTable.setAlignment("center");
ruleTable.setWidth("100%");
ruleTable.setAlignment(1,1,"left");
ruleTable.setAlignment(1,2,"left");
ruleTable.setAlignment(1,3,"left");
ruleTable.setAlignment(1,4,"left");
ruleTable.setAlignment(1,5,"left");
ruleTable.add("<u>"+iwrb.getLocalizedString("tournament.ssn_rule_header","Rules concerning social security number of foreign visitors")+"</u>",1,1);
ruleTable.add(iwrb.getLocalizedString("tournament.ssn_rule_1","Social security number must be 10 letters"),1,2);
ruleTable.add(iwrb.getLocalizedString("tournament.ssn_rule_2","First 6 : DD/MM/YY"),1,3);
ruleTable.add(iwrb.getLocalizedString("tournament.ssn_rule_3","Next 3 are whatever you like"),1,4);
ruleTable.add(iwrb.getLocalizedString("tournament.ssn_rule_4","Last is the second number in the year ( 1998 => 9 )"),1,5);
content.add("<br>");
content.add(ruleTable);
}
++tableRow;
table.setAlignment(3,tableRow,"right");
Table flippTable = new Table();
flippTable.setWidth("100%");
flippTable.setAlignment(1,1,"left");
flippTable.add(getTournamentBusiness(modinfo).getBackLink(modinfo),1,1);
content.add("<br>");
content.add(flippTable);
}
catch (Exception e) {
e.printStackTrace(System.err);
}
try {
if (noOne) {
getDirectRegistrationTable(modinfo, false, iwrb);
}
}
catch (Exception ex) {
ex.printStackTrace(System.err);
}
}
public void getUnionMemberList(IWContext modinfo,IWResourceBundle iwrb) throws SQLException, RemoteException {
try {
Member member = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(AccessControl.getMember(modinfo).getID());
Union union = member.getMainUnion();
List members = getMembersInUnion(union);
this.drawTableWithMembers(modinfo,members,iwrb);
}
catch (FinderException fe) {
throw new SQLException(fe.getMessage());
}
}
public List getMembersInUnion(Union union) throws SQLException{
List members = union.getMembersInUnion();
java.util.Collections.sort(members,new is.idega.idegaweb.golf.member.GenericMemberComparator(is.idega.idegaweb.golf.member.GenericMemberComparator.FIRSTLASTMIDDLE));
return members;
}
public List getMembersInTournamentList(Tournament tournament) throws SQLException{
List members = null;
try {
members = com.idega.data.EntityFinder.findReverseRelated(tournament,(Member) IDOLookup.instanciateEntity(Member.class));
if (members != null) {
java.util.Collections.sort(members,new is.idega.idegaweb.golf.member.GenericMemberComparator(is.idega.idegaweb.golf.member.GenericMemberComparator.FIRSTLASTMIDDLE));
}
}
catch (Exception sql) {
sql.printStackTrace(System.err);
}
return members;
}
public void searchByName(IWContext modinfo,IWResourceBundle iwrb) throws SQLException{
Form form = new Form();
Table table2 = new Table(2,3);
table2.setWidth(200);
table2.setAlignment("center");
table2.setAlignment(2,3,"right");
table2.mergeCells(1,1,2,1);
table2.mergeCells(1,2,2,2);
table2.add(iwrb.getLocalizedString("tournament.enter_names","Enter names")+":",1,1);
TextArea numberInput = new TextArea("name");
numberInput.setWidth(30);
numberInput.setHeight(5);
HiddenInput hidden = new HiddenInput("action","getSearchByNameResults");
table2.add(numberInput,1,2);
table2.add(hidden,1,2);
if (AccessControl.isClubAdmin(modinfo)) {
int union_id = ((Member )(AccessControl.getMember(modinfo))).getMainUnionID();
CheckBox checkBox = new CheckBox("search_for_member_in_union_id",""+union_id);
table2.add(iwrb.getLocalizedString("tournament.search_in_club","Search in club only")+" ",1,3);
table2.add(checkBox,1,3);
}
GenericButton leitaButton = getButton(new SubmitButton(localize("tournament.search","Search")));
table2.add(leitaButton,2,3);
form.add(table2);
add(form);
}
public void getSearchByNameResults(IWContext modinfo,IWResourceBundle iwrb) throws SQLException, RemoteException {
String names = modinfo.getParameter("name");
Member[] theMembers = this.findMembersByName(modinfo, names);
drawTableWithMembers(modinfo, theMembers, iwrb);
}
public void getSearchBySocialSecurityNumberResults(IWContext modinfo,IWResourceBundle iwrb) throws SQLException, RemoteException {
String socialSecurityNumbers = modinfo.getParameter("socialSecurityNumbers");
Member[] theMembers = this.findMembersBySocialSecurityNumber(modinfo,socialSecurityNumbers);
List guests = this.findGuestsBySocialSecurityNumber(modinfo,socialSecurityNumbers);
drawTableWithMembers(modinfo, theMembers, guests, iwrb);
}
public void searchBySocialSecurityNumber(IWContext modinfo,IWResourceBundle iwrb) throws SQLException{
Form form = new Form();
Table table2 = new Table(2,3);
table2.setWidth(200);
table2.setAlignment("center");
table2.setAlignment(2,3,"right");
table2.add(iwrb.getLocalizedString("tournament.enter_social_security_number","Enter social security number")+":",1,1);
table2.mergeCells(1,1,2,1);
table2.mergeCells(1,2,2,2);
TextArea numberInput = new TextArea("socialSecurityNumbers");
numberInput.setWidth(30);
numberInput.setHeight(5);
HiddenInput hidden = new HiddenInput("action","getSearchBySocialSecurityNumberResults");
table2.add(numberInput,1,2);
table2.add(hidden,1,3);
GenericButton leitaButton = getButton(new SubmitButton(localize("tournament.search","Search")));
table2.add(leitaButton,2,3);
if (AccessControl.isClubAdmin(modinfo)) {
int union_id = ((Member )(AccessControl.getMember(modinfo))).getMainUnionID();
CheckBox checkBox = new CheckBox("search_for_member_in_union_id",""+union_id);
table2.add(iwrb.getLocalizedString("tournament.search_in_club","Search in club only")+" ",1,3);
table2.add(checkBox,1,3);
}
form.add(table2);
add(form);
}
public void drawTableWithMembers(IWContext modinfo, List theMembers, IWResourceBundle iwrb) throws RemoteException {
is.idega.idegaweb.golf.entity.Member[] theMembersArray = new is.idega.idegaweb.golf.entity.Member[theMembers.size()];
for (int i = 0; i < theMembersArray.length; i++) {
theMembersArray[i] = (is.idega.idegaweb.golf.entity.Member) theMembers.get(i);
}
drawTableWithMembers(modinfo,theMembersArray, iwrb);
}
public void drawTableWithMembers(IWContext modinfo, Member[] theMembers, IWResourceBundle iwrb) throws RemoteException {
drawTableWithMembers(modinfo, theMembers, null, iwrb);
}
public void drawTableWithMembers(IWContext modinfo, Member[] theMembers, List guests,IWResourceBundle iwrb) throws RemoteException {
int tableHeight = 5;
int numberOfMember = 0;
if (theMembers != null) {
numberOfMember = theMembers.length;
tableHeight += theMembers.length;
}
Form form = new Form();
Table table = new Table();
table.setBorder(0);
table.setCellpadding(2);
table.setCellspacing(0);
table.setWidth("90%");
table.setAlignment("center");
table.setAlignment(1,tableHeight,"center");
table.mergeCells(1,1,8,1);
table.add(iwrb.getLocalizedString("tournament.search_results","Search results"),1,1);
form.add(table);
Table bottom = new Table(2,1);
bottom.setWidth("90%");
bottom.setAlignment(1,1,"left");
bottom.setAlignment(2,1,"right");
boolean ahead = false;
boolean back = false;
Member member = null;
Union union = null;
Member[] members = null;
CheckBox checker = null;
boolean error = false;
boolean notFound = false;
boolean doSearch = true;
String memberSocialNumber;
String memberName;
Link link = null;
int memberId;
int row = 1;
++row;
table.add("<u>"+iwrb.getLocalizedString("tournament.social_security_number","Social security number")+"</u>",1,row);
table.add("<u>"+iwrb.getLocalizedString("tournament.name","Name")+"</u>",3,row);
table.add("<u>"+iwrb.getLocalizedString("tournament.club","Club")+"</u>",5,row);
if (theMembers != null) {
if (theMembers.length > 0) {
for (int i = 0; i < theMembers.length; i++) {
++row;
memberSocialNumber = theMembers[i].getSocialSecurityNumber();
memberName = theMembers[i].getName();
memberId = theMembers[i].getID();
checker = new CheckBox("checkedMemberId_"+memberId);
link = new Link(iwrb.getLocalizedString("tournament.register","Register in tournament"),modinfo.getRequestURI());
link.addParameter("action","registermarkedmembers");
link.addParameter("checker","true");
link.addParameter("member_id",memberId+"");
table.add(memberSocialNumber,1,row);
table.add(memberName,3,row);
try {
union = theMembers[i].getMainUnion();
table.add(union.getAbbrevation(),5,row);
}
catch (Exception e) {
e.printStackTrace(System.err);
table.add("-",5,row);
}
table.add(link,7,row);
table.add(checker,8,row);
table.add(new HiddenInput("member_id",memberId+""),2,row);
table.setAlignment(8,row,"right");
}
++row;
++row;
ahead = true;
back = true;
}
else {
++row;
back = true;
}
}
else {
++row;
back = true;
}
// table.resize(8,row);
boolean rules = false;
if (guests != null) {
if (guests.size() > 0) {
for (int i = 0; i < guests.size(); i++) {
ahead = true;
rules = true;
++row;
memberSocialNumber = (String) guests.get(i);
memberName = "gestur ?";
memberId = -10;
checker = new CheckBox("checkedMemberId_"+memberSocialNumber);
link = new Link(iwrb.getLocalizedString("tournament.register","Register in tournament"),modinfo.getRequestURI());
link.addParameter("action","registermarkedmembers");
link.addParameter("checker","true");
link.addParameter("member_id",memberId+"");
table.add(memberSocialNumber,1,row);
table.add(memberName,3,row);
table.add("-",5,row);
table.add(link,7,row);
table.add(checker,8,row);
table.add(new HiddenInput("member_id",memberId+""),2,row);
table.add(new HiddenInput("ssn",memberSocialNumber),2,row);
table.setAlignment(8,row,"right");
}
}
}
if (ahead) {
GenericButton skraButton = getButton(new SubmitButton(localize("tournament.continue","Continue")));
bottom.add(skraButton,2,1);
bottom.add(new HiddenInput("action","registermarkedmembers"));
}
else {
table.add(iwrb.getLocalizedString("tournament.no_one_was_found","No one was found"),1,row);
}
table.setColumnAlignment(1,"left");
table.setColumnAlignment(3,"left");
table.setColumnAlignment(5,"left");
table.setColumnAlignment(7,"left");
bottom.add(getTournamentBusiness(modinfo).getBackLink(modinfo),1,1);
form.addBreak();
form.add(bottom);
add(form);
}
public void registerMarkedMembers(IWContext modinfo,IWResourceBundle iwrb) throws SQLException, RemoteException{
Tournament tournament = getTournament(modinfo);
String[] extraPlayers = modinfo.getParameterValues("extra_player");
String[] member_id = modinfo.getParameterValues("member_id");
String[] tournament_group_id = modinfo.getParameterValues("tournament_group");
String handicap_correction = "";
int isError = 0;
int row = 1;
int rowOne = 2;
int rowTwo = 2;
int rowThree = 2;
Member member = null;
Table table = new Table();
table.setBorder(1);
table.setCellspacing(0);
table.setCellpadding(2);
table.setWidth("80%");
table.setWidth(1,"33%");
table.setWidth(2,"33%");
table.setWidth(3,"33%");
table.setAlignment(1,row,"center");
table.setAlignment(2,row,"center");
table.setAlignment(3,row,"center");
table.add(iwrb.getLocalizedString("tournament.registered","Registered"),1,row);
table.add(iwrb.getLocalizedString("tournament.did_not_register","Did not register"),2,row);
table.add(iwrb.getLocalizedString("tournament.already_registered_si","Already registered"),3,row);
add(table);
if (member_id != null) {
try {
if (isSaveEnabled(modinfo)) {
for (int i = 0; i < member_id.length; i++) {
member = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(member_id[i]));
handicap_correction = modinfo.getParameter("corrected_handicap_"+member.getID());
if (!handicap_correction.equals("")) {
correctHandicap(modinfo,member , handicap_correction);
}
isError = getTournamentBusiness(modinfo).registerMember(member,tournament,tournament_group_id[i]);
disableSave(modinfo);
switch (isError) {
case 0:
rowOne++;
row = rowOne;
break;
case 1:
rowTwo++;
row = rowTwo;
break;
case 2:
rowThree++;
row = rowThree;
break;
}
table.add(member.getName(),(isError+1),row);
}
}
}
catch (Exception e) {
e.printStackTrace(System.err);
}
Form form = new Form();
form.add(new HiddenInput("action","selectmember"));
form.add(new SubmitButton(localize("tournament.back","Back")));
add(form);
}
if (extraPlayers != null) {
String[] XPSocial = modinfo.getParameterValues("extra_player_social_security_number");
String[] XPStartingtime = modinfo.getParameterValues("extra_player_starting_time");
String[] XPName = modinfo.getParameterValues("extra_player_name");
String[] XPGroups = modinfo.getParameterValues("extra_player_groups");
String[] XPGender = modinfo.getParameterValues("extra_player_gender");
String[] XPHandicap = modinfo.getParameterValues("extra_player_handicap");
IWTimestamp dateStamp;
int year;
int XP = 0;
javax.transaction.TransactionManager tm = com.idega.transaction.IdegaTransactionManager.getInstance();
for (int i = 0; i < extraPlayers.length; i++) {
try {
tm.begin();
XP = Integer.parseInt(extraPlayers[i]);
dateStamp = new IWTimestamp();
year = Integer.parseInt(XPSocial[XP].substring(4,6));
if ( XPSocial[XP].substring(9,10).equals("9")) {
year = 1900 + year;
}else if ( XPSocial[XP].substring(9,10).equals("0")) {
year = 2000 + year;
}else if ( XPSocial[XP].substring(9,10).equals("8")) {
year = 1800 + year;
}else if ( XPSocial[XP].substring(9,10).equals("1")) {
year = 2100 + year;
}
dateStamp.setYear(year);
dateStamp.setMonth(Integer.parseInt(XPSocial[XP].substring(2,4)));
dateStamp.setDay(Integer.parseInt(XPSocial[XP].substring(0,2)));
Member XPmember = (Member) IDOLookup.createLegacy(Member.class);
XPmember.setSocialSecurityNumber(XPSocial[XP]);
XPmember.setFirstName(XPName[XP]);
XPmember.setDateOfBirth(dateStamp.getSQLDate());
XPmember.setGender(XPGender[XP]);
XPmember.insert();
MemberInfo memberInfo = (MemberInfo) IDOLookup.createLegacy(MemberInfo.class);
memberInfo.setMemberId(XPmember.getID());
memberInfo.setHandicap(Float.parseFloat(XPHandicap[XP]));
memberInfo.setFirstHandicap(Float.parseFloat(XPHandicap[XP]));
memberInfo.insert();
UnionMemberInfo uMInfo = (UnionMemberInfo) IDOLookup.createLegacy(UnionMemberInfo.class);
uMInfo.setUnionID(1);
uMInfo.setMemberID(XPmember.getID() );
uMInfo.setMembershipType("main");
uMInfo.setMemberStatus("A");
uMInfo.insert();
isError = getTournamentBusiness(modinfo).registerMember(XPmember,tournament,XPGroups[XP]);
switch (isError) {
case 0:
rowOne++;
row = rowOne;
break;
case 1:
rowTwo++;
row = rowTwo;
break;
case 2:
rowThree++;
row = rowThree;
break;
}
table.add(XPmember.getName(),(isError+1),row);
tm.commit();
}
catch (Exception e) {
try {
tm.rollback();
}
catch (javax.transaction.SystemException se) {
se.printStackTrace(System.err);
}
rowThree++;
row = rowThree;
isError = 2;
table.add(XPSocial[XP],(isError+1),row);
e.printStackTrace(System.err);
}
}
}
if ((member == null)&&(extraPlayers == null)){
add(iwrb.getLocalizedString("tournament.no_one_was_chosen","No on was chosen")+"<br><br>");
add(getTournamentBusiness(modinfo).getBackLink(modinfo));
}
}
public void correctHandicap(IWContext modinfo,Member member ,String handicapString) {
try {
float handicap = 100;
if ( handicapString != null && handicapString.length() > 0 ) {
if ( handicapString.indexOf(",") != -1 ) {
handicapString = handicapString.replace(',','.');
}
handicap = Float.parseFloat(handicapString);
}
MemberInfo[] infos = (MemberInfo[]) ((MemberInfo) IDOLookup.instanciateEntity(MemberInfo.class)).findAllByColumnEquals("member_id",member.getID()+"");
MemberInfo memberInfo;
if (infos.length > 0) {
try {
memberInfo = ((MemberInfoHome) IDOLookup.getHomeLegacy(MemberInfo.class)).findByPrimaryKey(member.getID());
}
catch (FinderException fe) {
throw new SQLException(fe.getMessage());
}
memberInfo.setHandicap(handicap);
memberInfo.update();
}
else {
memberInfo = (MemberInfo) IDOLookup.createLegacy(MemberInfo.class);
memberInfo.setMemberId(member.getID());
memberInfo.setHandicap(handicap);
memberInfo.setFirstHandicap(handicap);
memberInfo.insert();
}
Tournament tournament = getTournament(modinfo);
IWTimestamp stampur = new IWTimestamp(tournament.getStartTime());
stampur.addDays(-1);
Scorecard scoreCard = (Scorecard) IDOLookup.createLegacy(Scorecard.class);
scoreCard.setMemberId(member.getID());
scoreCard.setTournamentRoundId(1);
scoreCard.setScorecardDate(stampur.getTimestamp());
scoreCard.setTotalPoints(0);
scoreCard.setHandicapBefore(memberInfo.getHandicap());
scoreCard.setHandicapAfter(handicap);
scoreCard.setSlope(0);
scoreCard.setCourseRating(0);
scoreCard.setTeeColorID(0);
scoreCard.setFieldID(0);
scoreCard.setHandicapCorrection(true);
scoreCard.insert();
}
catch (SQLException sq ) {
sq.printStackTrace(System.err);
}
}
public void checkMarkedMembers(IWContext modinfo, IWResourceBundle iwrb) throws SQLException, RemoteException {
enableSave(modinfo);
Tournament tournament = getTournament(modinfo);
String[] member_id = (String[]) modinfo.getParameterValues("member_id");
String checker;
Member member;
int numberOK = 0;
int otherGOK = 0;
TournamentGroup[] groups = tournament.getTournamentGroups();
if (groups.length > 0) {
int row = 1;
Form form = new Form();
Table table = new Table();
table.setBorder(0);
table.setWidth("90%");
table.add("<u>"+iwrb.getLocalizedString("tournament.social_security_number","Social security number")+"</u>",1,row);
table.add("<u>"+iwrb.getLocalizedString("tournament.name","Name")+"</u>",3,row);
table.add("<u>"+iwrb.getLocalizedString("tournament.group","Group")+"</u>",5,row);
table.add("<u>"+iwrb.getLocalizedString("tournament.handicap","Handicap")+"</u>",7,row);
table.add("<u>"+iwrb.getLocalizedString("tournament.correction","Correction")+"</u>",9,row);
add(form);
TextInput correction;
int[] errors = new int[4];
Link unionCorrect = null;
Link memberCorrect = null;
Table otherG = new Table();
Table bottom = new Table(2,1);
bottom.setWidth("90%");
bottom.setAlignment(1,1,"left");
bottom.setAlignment(2,1,"right");
Table already = new Table();
already.setWidth("90%");
already.add("<u>"+iwrb.getLocalizedString("tournament.already_registered","Already registered")+":</u>",1,1);
int alreadyRow = 1;
Table other = new Table();
other.setWidth("90%");
other.add("<u>"+iwrb.getLocalizedString("tournament.can_not_register_pl","Can not register")+":</u>",1,1);
int otherRow = 1;
Text tooMany = new Text("*");
tooMany.setFontColor("red");
DropdownMenu tGroups;
List tGroupsList;
for (int i = 0; i < member_id.length; i++) {
checker = modinfo.getParameter("checkedMemberId_"+member_id[i]);
if (checker == null) {
if (modinfo.getParameter("checker") != null) {
checker = "";
}
}
if ((checker != null)&& (!member_id[i].equals("-10"))){
try {
member = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(member_id[i]));
}
catch (FinderException fe) {
throw new SQLException(fe.getMessage());
}
if (!getTournamentBusiness(modinfo).isMemberRegisteredInTournament(tournament, member) ) {
errors = getTournamentBusiness(modinfo).isMemberAllowedToRegister(member,tournament);
if ( (errors[0] == 0) && (errors[1] == 0) && (errors[2] == 0) && (errors[3] == 0) ){
// if (TournamentController.isMemberAllowedToRegister(member,tournament) == 0) {
++row;
table.add(member.getSocialSecurityNumber(),1,row);
table.add(member.getName(),3,row);
table.add(new HiddenInput("member_id",member.getID()+""));
tGroupsList = getTournamentBusiness(modinfo).getTournamentGroups(member,tournament);
tGroups = new DropdownMenu(tGroupsList);
table.add(tGroups,5,row);
if (tGroupsList.size() > 1) {
table.add(tooMany,5,row);
}
table.add(member.getHandicap()+"",7,row);
correction = new TextInput("corrected_handicap_"+member.getID());
correction.setSize(3);
table.add(correction,9,row);
table.setVerticalAlignment(1,row,"top");
table.setVerticalAlignment(3,row,"top");
table.setVerticalAlignment(5,row,"top");
table.setVerticalAlignment(7,row,"top");
table.setVerticalAlignment(9,row,"top");
++numberOK;
}
else {
++otherRow;
other.setAlignment(1,otherRow,"left");
other.add(member.getName(),1,otherRow);
if ( errors[0] == 1) {
memberCorrect = getLocalizedLink("tournament.check_member","Check Member");
memberCorrect.setWindowToOpen(MemberCorrectWindow.class);
memberCorrect.addParameter("member_id",member.getID());
other.add(memberCorrect,2,otherRow);
other.add(" ",2,otherRow);
}
if ( errors[1] == 1) {
unionCorrect = getLocalizedLink("tournament.check_club_membership","Check Club Membership");
unionCorrect.setWindowToOpen(UnionCorrectWindow.class);
unionCorrect.addParameter("member_id",member.getID());
other.add(unionCorrect,2,otherRow);
}
if ( errors[2] == 1) {
other.add(iwrb.getLocalizedString("tournament.groups","Groups"),2,otherRow);
}
if ( errors[3] == 1) {
Link tournamentFix = getLocalizedLink("tournament.check_tournament","Check Tournament");
tournamentFix.setWindowToOpen(TournamentCreatorWindow.class);
tournamentFix.addParameter("tournament",tournament.getID());
tournamentFix.addParameter("tournament_control_mode","edit");
other.add(tournamentFix,2,otherRow);
}
//++otherRow;
//other.add(member.getName(),1,otherRow);
}
}
else {
++alreadyRow;
already.add(member.getName(),1,alreadyRow);
}
}
}
boolean rules = false;
String[] ssns = modinfo.getParameterValues("ssn");
if (ssns != null) {
if (ssns.length > 0) {
otherG.setBorder(0);
int otherGRow = 1;
otherG.setWidth("90%");
otherG.add("<u>"+iwrb.getLocalizedString("tournament.social_security_number","Social security number")+"</u>",1,otherGRow);
otherG.add("<u>"+iwrb.getLocalizedString("tournament.name","Name")+"</u>",3,otherGRow);
otherG.add("<u>"+iwrb.getLocalizedString("tournament.group","Group")+"</u>",5,otherGRow);
otherG.add("<u>"+iwrb.getLocalizedString("tournament.handicap","Handicap")+"</u>",7,otherGRow);
otherG.add("<u>"+iwrb.getLocalizedString("tournament.sex","Sex")+"</u>",9,otherGRow);
otherG.add("<u>"+iwrb.getLocalizedString("tournament.register_sm","Register")+"</u>",11,otherGRow);
String ssn;
TextInput derName;
TournamentGroup[] allGroupsInTournament = tournament.getTournamentGroups();
DropdownMenu memberGender = new DropdownMenu("extra_player_gender");
memberGender.addMenuElement("M",iwrb.getLocalizedString("tournament.male","Male"));
memberGender.addMenuElement("F",iwrb.getLocalizedString("tournament.female","Female"));
DropdownMenu allGroups = new DropdownMenu(allGroupsInTournament,"extra_player_groups");
for (int i = 0; i < ssns.length; i++) {
if ( modinfo.getParameter("checkedMemberId_"+ssns[i]) != null ) {
++otherGOK;
++otherGRow;
ssn = ssns[i];
otherG.add(ssn,1,otherGRow);
otherG.add(new HiddenInput("extra_player_social_security_number",ssn),1,otherGRow);
derName = new TextInput("extra_player_name");
otherG.add(derName,3,otherGRow);
TextInput hand = new TextInput("extra_player_handicap");
hand.setSize(3);
if (ssn.length() == 10) {
try {
Integer.parseInt(ssn.substring(0,6));
Integer.parseInt(ssn.substring(9,10));
}
catch (NumberFormatException n) {
derName.setContent(iwrb.getLocalizedString("tournament.ssn_is_wrong","Social security number is incorrect"));
rules = true;
}
}
if (ssn.length() != 10) {
derName.setContent(iwrb.getLocalizedString("tournament.ssn_is_wrong","Social security number is incorrect"));
rules = true;
}
otherG.add(allGroups,5,otherGRow);
otherG.add(hand,7,otherGRow);
otherG.add(memberGender, 9,otherGRow);
otherG.add(new HiddenInput("extra_player_starting_time",""+i),1,otherGRow);
CheckBox box = new CheckBox("extra_player",""+ (otherGRow-2));
otherG.add(box,11,otherGRow);
}
}
otherG.setColumnAlignment(1,"left");
otherG.setColumnAlignment(3,"left");
otherG.setColumnAlignment(5,"left");
otherG.setColumnAlignment(7,"left");
otherG.setColumnAlignment(9,"left");
otherG.setColumnAlignment(11,"left");
}
}
table.setColumnAlignment(1,"left");
table.setColumnAlignment(3,"left");
table.setColumnAlignment(5,"left");
table.setColumnAlignment(7,"left");
table.setColumnAlignment(9,"left");
++row;
table.setAlignment(5,row,"right");
if (row > 2) {
form.add(table);
}
if (otherGOK > 0) {
form.addBreak();
form.add(otherG);
}
if (alreadyRow > 1) {
form.addBreak();
form.add(already);
already.setColumnAlignment(1,"left");
}
if (otherRow > 1) {
form.addBreak();
form.add(other);
other.setColumnAlignment(1,"left");
}
if (rules) {
Table ruleTable = new Table();
ruleTable.setAlignment("center");
ruleTable.setWidth("90%");
ruleTable.setAlignment(1,1,"left");
ruleTable.setAlignment(1,2,"left");
ruleTable.setAlignment(1,3,"left");
ruleTable.setAlignment(1,4,"left");
ruleTable.setAlignment(1,5,"left");
ruleTable.add("<u>"+iwrb.getLocalizedString("tournament.ssn_rule_header","Rules concerning social security number of foreign visitors")+"</u>",1,1);
ruleTable.add(iwrb.getLocalizedString("tournament.ssn_rule_1","Social security number must be 10 letters"),1,2);
ruleTable.add(iwrb.getLocalizedString("tournament.ssn_rule_2","First 6 : DD/MM/YY"),1,3);
ruleTable.add(iwrb.getLocalizedString("tournament.ssn_rule_3","Next 3 are whatever you like"),1,4);
ruleTable.add(iwrb.getLocalizedString("tournament.ssn_rule_4","Last is the second number in the year ( 1998 => 9 )"),1,5);
form.addBreak();
form.add(ruleTable);
}
if ((numberOK > 0) || (otherGOK>0)) {
bottom.add(getButton(new SubmitButton(localize("tournament.continue","Continue"))),2,1);
bottom.add(new HiddenInput("action","confirmRegisterMarkedMembers"),2,1);
}
bottom.add(getTournamentBusiness(modinfo).getBackLink(modinfo),1,1);
form.addBreak();
form.add(bottom);
}
else {
add(iwrb.getLocalizedString("tournament.no_tournament_groups_in_tournament","There are no tournament groups set up in the tournament"));
//add("<br>H�gt a� b�ta �eim vi� � \"Breyta m�ti\".<br>");
add(getTournamentBusiness(modinfo).getBackLink(modinfo));
}
}
public void unregisterMember(Member member, Tournament theTournament) throws SQLException{
// temp lausn....
try {
member.removeFrom(theTournament);
add("<br>Me�limur : \""+member.getName()+"\" hefur veri� skr��/ur �r m�tinu \"");
add(theTournament.getName()+"\"");
}
catch (SQLException s) {
try {
Tournament[] tour = (Tournament[]) member.findRelated(theTournament);
if (tour.length == 0) {
add("<br>Me�limur : \""+member.getName()+"\" er ekki skr��/ur � m�ti�");
}
}
catch (SQLException sq) {
sq.printStackTrace(System.err);
add("<br>Me�limur : \""+member.getName()+"\" skr��ist ekki �r m�tinu");
}
}
//...temp lausn endar h�r
}
public int getAge(Member member) {
int currentYear = IWTimestamp.RightNow().getYear();
int memberYear = 0;
java.sql.Date date = member.getDateOfBirth();
if (date != null) {
IWTimestamp stamp = new IWTimestamp(date);
memberYear = stamp.getYear();
}
else {
String socialSecurityNumber = member.getSocialSecurityNumber();
if ( socialSecurityNumber != null) {
if (socialSecurityNumber.length() >= 6) {
try {
memberYear = Integer.parseInt(socialSecurityNumber.substring(4,6));
}
catch (NumberFormatException n) {
}
}
}
}
return currentYear - memberYear;
}
public Member[] findMembersBySocialSecurityNumber(IWContext modinfo, String socialSecurityNumbers) throws SQLException{
StringTokenizer token = new StringTokenizer(socialSecurityNumbers," \n\r\t\f,;:.+");
Vector vector = new Vector();
while (token.hasMoreTokens()) {
vector.addElement(token.nextToken());
}
return findMembersBySocialSecurityNumber(modinfo,vector);
}
public List findGuestsBySocialSecurityNumber(IWContext modinfo, String socialSecurityNumbers) throws SQLException{
StringTokenizer token = new StringTokenizer(socialSecurityNumbers," \n\r\t\f,;:.+");
Vector vector = new Vector();
while (token.hasMoreTokens()) {
vector.addElement(token.nextToken());
}
return findGuestsBySocialSecurityNumber(modinfo,vector);
}
public List findGuestsBySocialSecurityNumber(IWContext modinfo, Vector ssn) {
//Optimized by Sigtryggur 27.6.05
Vector returner = new Vector(ssn);
Vector reducer = new Vector();
if (returner != null) {
String[] ssnString = null;
try {
IDOQuery idoQuery = IDOQuery.getStaticInstance();
ssnString = SimpleQuerier.executeStringQuery("Select social_security_number from member where social_security_number in ("+idoQuery.appendCommaDelimitedWithinSingleQuotes(returner)+")");
for (int i=0; i<ssnString.length; i++ ) {
reducer.add(ssnString[i]);
}
returner.removeAll(reducer);
}catch (Exception e){
}
}
return returner;
}
public Member[] findMembersByName(IWContext modinfo, String socialSecurityNumbers) throws SQLException{
StringTokenizer token = new StringTokenizer(socialSecurityNumbers,"\n\r\t\f,;:.+");
Vector vector = new Vector();
while (token.hasMoreTokens()) {
vector.addElement(token.nextToken());
}
return findMembersByName(modinfo, vector);
}
public Member[] findMembersByName(IWContext modinfo, Vector 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 union_id = modinfo.getParameter("search_for_member_in_union_id");
String SQLString = "Select * from member where ";
String tempSQLString = "";
for (int i = 0; i < name.size(); i++) {
try {
manyNames = 0;
fullName = "";
firstName = "";
middleName = "";
lastName = "";
tempSQLString = "";
fullName = (String) name.elementAt(i);
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:
tempSQLString = "Select * from member, union_member_info where member.member_id = union_member_info.member_id AND first_name like '"+firstName+"%'";
break;
case 2:
tempSQLString = "Select * 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:
tempSQLString = "Select * 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 (!tempSQLString.equalsIgnoreCase("")) {
if (union_id != null) {
tempSQLString += " AND union_member_info.union_id = "+union_id+" AND union_member_info.MEMBERSHIP_TYPE = 'A'";
}
tempMembers = (Member[]) ((Member) IDOLookup.instanciateEntity(Member.class)).findAll(tempSQLString);
for (int g = 0; g < tempMembers.length; g++) {
if (numberInserted != 0) {
SQLString += " OR ";
}
++ numberInserted;
SQLString += " member_id = "+tempMembers[g].getID();
//System.out.println("Me�limur n�mer "+tempMembers[g].getID()+" fundinn : "+idegaTimestamp.RightNow().toSQLTimeString());
}
}
}
catch (Exception e) {
}
}
if (union_id != null) {
}
if (numberInserted != 0) {
SQLString += " order by first_name, last_name, middle_name";
members = (Member[]) ((Member) IDOLookup.instanciateEntity(Member.class)).findAll(SQLString);
System.out.println("Buinn ad smida array : "+IWTimestamp.RightNow().toSQLTimeString() );
}
return members;
}
public Member[] findMembersBySocialSecurityNumber(IWContext modinfo,Vector socialSecurityNumbers) throws SQLException {
Member[] members = null;
/*
String union_id = modinfo.getParameter("search_for_member_in_union_id");
String SQLString = "Select * from member, union_member_info where member.member_id = union_member_info.member_id AND union_member_info.MEMBERSHIP_TYPE = 'main' AND (";
int numberInserted = 0;
for (int i = 0; i < socialSecurityNumbers.size() ; i++) {
try {
securityNumber = (String) socialSecurityNumbers.elementAt(i);
if (securityNumber.equals("")) {
securityNumber = "idega_engin_kennitala";
}
members = (Member[]) (new Member()).findAll("Select * from member where social_security_number like '%"+securityNumber+"%' ");
if (members.length > 0) {
for (int j = 0; j < members.length; j++) {
if (numberInserted != 0) {
SQLString += " OR ";
}
else {++numberInserted;}
SQLString += "member_id = "+members[j].getID();
}
}
}
catch (SQLException s){
s.printStackTrace(System.err);
}
}
SQLString += ")";
if (union_id != null) {
SQLString += " AND union_member_info.union_id = "+union_id+" AND union_member_info.MEMBER_STATUS = 'A'";
}
// SQLString += "order by first_name,last_name,middle_name";
SQLString += "order by social_security_number";
*/
//Optimized by Sigtryggur 27.6.05
IDOQuery idoQuery = IDOQuery.getStaticInstance();
members = (Member[]) ((Member) IDOLookup.instanciateEntity(Member.class)).findAll("Select * from member where social_security_number in ("+idoQuery.appendCommaDelimitedWithinSingleQuotes(socialSecurityNumbers)+") order by social_security_number");
return members;
}
public void enableSave(IWContext modinfo) {
modinfo.setSessionAttribute("isSaveEnabled",new Boolean(true));
}
public void disableSave(IWContext modinfo) {
modinfo.setSessionAttribute("isSaveEnabled",new Boolean(false));
}
public boolean isSaveEnabled(IWContext modinfo) {
Boolean isSaveEnabled = (Boolean) modinfo.getSessionAttribute("isSaveEnabled");
boolean returner = false;
try {
if (isSaveEnabled != null) {
returner = isSaveEnabled.booleanValue();
}
}
catch (Exception e) {
e.printStackTrace(System.err);
}
return returner;
}
}