/*
* Created on 4.3.2004
*/
package is.idega.idegaweb.golf.clubs.presentation;
import is.idega.idegaweb.golf.access.AccessControl;
import is.idega.idegaweb.golf.business.GolfCacher;
import is.idega.idegaweb.golf.entity.Member;
import is.idega.idegaweb.golf.entity.MemberHome;
import is.idega.idegaweb.golf.entity.MemberInfo;
import is.idega.idegaweb.golf.entity.Union;
import is.idega.idegaweb.golf.entity.UnionMemberInfo;
import java.sql.SQLException;
import java.util.List;
import javax.ejb.FinderException;
import com.idega.data.EntityFinder;
import com.idega.data.IDOLookup;
import com.idega.presentation.Editor;
import com.idega.presentation.IWContext;
import com.idega.presentation.PresentationObject;
import com.idega.presentation.Table;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.CloseButton;
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;
/**
* @author laddi
*/
public class MemberCorrect extends Editor {
Member eMember = null;
List eMembers = null;
List eUMIs = null;
String sSocSecNum = null;
protected PresentationObject makeLinkTable(int l) {
return new Text("");
}
protected void control(IWContext modinfo) {
String member_id = modinfo.getParameter("member_id");
String SSN = modinfo.getParameter("ssn");
String hSSN = modinfo.getParameter("hssn");
this.makeView();
if (isAdmin || AccessControl.isClubAdmin(modinfo)) {
try {
if (modinfo.isParameterSet("save")) {
if (modinfo.getParameter("rb") != null && hSSN != null) {
/** @todo */
int iMemberId = Integer.parseInt(modinfo.getParameter("rb"));
eMembers = EntityFinder.findAllByColumnEquals((Member) IDOLookup.instanciateEntity(Member.class), "social_security_number", hSSN);
if (eMembers != null) {
deleteMembers(eMembers, iMemberId);
eMembers = EntityFinder.findAllByColumnEquals((Member) IDOLookup.instanciateEntity(Member.class), "social_security_number", hSSN);
}
}
}
else if (modinfo.isParameterSet("ok")) {
String ssn = modinfo.getParameter("ssn").trim();
if (ssn != null && ssn.length() > 5) {
sSocSecNum = ssn;
add(sSocSecNum);
eMembers = EntityFinder.findAllByColumnEquals((Member) IDOLookup.instanciateEntity(Member.class), "social_security_number", ssn);
}
}
else if (member_id != null) {
eMember = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(member_id));
}
else if (SSN != null) {
eMembers = EntityFinder.findAllByColumnEquals((Member) IDOLookup.instanciateEntity(Member.class), "social_security_number", SSN);
}
else
add("enginn valinn");
this.addLinks(formatText("F�lagi"));
this.addMain(doView());
this.setBorder(2);
}
catch (SQLException sql) {
add("sql vandr��i");
sql.printStackTrace();
}
catch (FinderException sql) {
add("sql vandr��i");
sql.printStackTrace();
}
}
else
this.addMain(formatText("Ekki R�ttindi"));
}
private PresentationObject doView() {
Table T = new Table();
T.setCellpadding(0);
T.setCellspacing(0);
T.setWidth("100%");
TextInput SSN = new TextInput("ssn");
SSN.setMaxlength(10);
SSN.setLength(10);
T.add(SSN, 1, 1);
if (sSocSecNum != null)
T.add(new HiddenInput("hssn", sSocSecNum));
setTextFontColor("#FF0000");
T.add(formatText(" Velji� r�ttan me�lim hinum ver�ur eytt :"), 1, 3);
setTextFontColor(DarkColor);
T.add(getMemberTable(), 1, 5);
SubmitButton ok = new SubmitButton("ok", "Leita");
SubmitButton save = new SubmitButton("save", "Vista");
CloseButton close = new CloseButton("Loka");
T.add(ok, 1, 1);
T.add(save, 1, 7);
T.add(close, 1, 7);
Form myForm = new Form();
myForm.add(T);
return myForm;
}
public Table getMemberTable() {
Table bTable = new Table();
bTable.setWidth("100%");
if (eMembers != null) {
int len = eMembers.size();
Table T = new Table(5, len + 1);
T.setCellpadding(0);
T.setCellspacing(3);
T.setColumnAlignment(1, "left");
T.setColumnAlignment(2, "left");
//T.setWidth("100%");
T.add(formatText("Nafn"), 2, 1);
T.add(formatText("Kennitala"), 3, 1);
T.add(formatText("Kl�bbar"), 4, 1);
T.add(formatText("Forgj�f"), 5, 1);
Member eMb;
int iUnId;
String color = DarkColor;
List umis = null;
for (int i = 0; i < len; i++) {
eMb = (Member) eMembers.get(i);
MemberInfo MI = eMb.getMemberInfo();
try {
eUMIs = EntityFinder.findAllByColumn((UnionMemberInfo) IDOLookup.instanciateEntity(UnionMemberInfo.class), "member_id", eMb.getID());
}
catch (SQLException sql) {
}
RadioButton RB = new RadioButton("rb", String.valueOf(eMb.getID()));
T.add(RB, 1, i + 2);
T.add(formatText(eMb.getName()), 2, i + 2);
T.add(formatText(eMb.getSocialSecurityNumber()), 3, i + 2);
if (eUMIs != null)
T.add(getUMItable(eUMIs), 4, i + 2);
if (MI != null)
T.add(formatText(String.valueOf(MI.getHandicap())), 5, i + 2);
eUMIs = null;
}
bTable.add(T);
}
return bTable;
}
private PresentationObject getUMItable(List eUmis) {
int len = eUmis.size();
Table T = new Table(len, 1);
T.setBorder(1);
T.setCellpadding(0);
T.setCellspacing(0);
UnionMemberInfo umi;
Union U;
for (int i = 0; i < len; i++) {
umi = (UnionMemberInfo) eUmis.get(i);
U = GolfCacher.getCachedUnion(umi.getUnionID());
T.add(formatText(U.getAbbrevation() + " "), i + 1, 1);
T.add(formatText(mbsShipMap(umi.getMembershipType())), i + 1, 1);
T.setWidth(i + 1, 1, "70");
}
return T;
}
private void deleteMembers(List eMembers, int notdelete) {
for (int i = 0; i < eMembers.size(); i++) {
Member m = (Member) eMembers.get(i);
if (m.getID() != notdelete) {
try {
//m.debug = true;
m.delete();
}
catch (SQLException sql) {
System.err.println("MemberCorrect:");
sql.printStackTrace();
}
}
}
}
private String mbsShipMap(String type) {
if ("main".equalsIgnoreCase(type))
return "A�alkl.";
else if ("sub".equalsIgnoreCase(type))
return "Aukakl.";
else
return "";
}
public Text headerText(String s) {
Text T = new Text();
if (s != null) {
T = new Text(s);
T.setFontColor(this.DarkColor);
T.setFontSize(this.fontSize);
T.setBold();
}
return T;
}
public Text headerText(int i) {
return headerText(String.valueOf(i));
}
}