package is.idega.idegaweb.golf.service.member;
import is.idega.idegaweb.golf.entity.Card;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Vector;
import com.idega.data.IDOLookup;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.ui.BorderTable;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.TextInput;
import com.idega.util.IWTimestamp;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company:
* @author
* @version 1.0
*/
public class CardInsert extends EntityInsert{
private Card eCard;
private TextInput nameInput;
private TextInput socialInput;
private TextInput numberInput;
private DropdownMenu typeDrop;
private DropdownMenu expireMonth;
private DropdownMenu expireYear;
private String ownerName = "CardInsert_name";
private String socialName = "CardInsert_social";
private String numberName = "CardInsert_number";
private String typeName = "CardInsert_type";
private String expireMonthName = "CardInsert_expiremonth";
private String expireYearName = "CardInsert_expireyear";
private String ownerValue = null;
private String socialValue = null;
private String numberValue = null;
private String typeValue = null;
private String expireMonthValue = null;
private String expireYearValue = null;
private String headerText = "Kortauppl�singar";
public CardInsert() {
eCard = (Card) IDOLookup.createLegacy(Card.class);
this.bUpdate = false;
nameInput = new TextInput(ownerName);
socialInput = new TextInput(socialName);
numberInput = new TextInput(numberName);
typeDrop = typeDropDown(typeName, "");
setExireDate(null);
init();
}
public CardInsert(Card card)throws SQLException {
this.bUpdate = true;
eCard = card;
if(card.getName() != null)
nameInput = new TextInput(ownerName, eCard.getName());
else
nameInput = new TextInput(ownerName);
if(card.getSocialSecurityNumber() != null)
socialInput = new TextInput(socialName, eCard.getSocialSecurityNumber());
else
socialInput = new TextInput(socialName);
if(card.getCardNumber() != null)
numberInput = new TextInput(numberName, eCard.getCardNumber());
else
numberInput = new TextInput(numberName);
if(card.getCardType() != null)
typeDrop = typeDropDown(typeName, eCard.getCardType());
else
typeDrop = typeDropDown(typeName, "");
setExireDate(card.getExpireDate());
init();
}
private void init(){
setStyle(nameInput);
setStyle(socialInput);
setStyle(numberInput);
setStyle(typeDrop);
setStyle(expireMonth);
setStyle(expireYear);
}
private void setExireDate(java.sql.Date date) {
GregorianCalendar cal = new GregorianCalendar();
if(date != null) {
IWTimestamp stamp = new IWTimestamp(date);
expireMonth = monthDropDown(expireMonthName, String.valueOf(stamp.getMonth()));
expireYear = yearDropDown(expireYearName, String.valueOf(stamp.getYear()), (cal.get(Calendar.YEAR)-5), (cal.get(Calendar.YEAR)+3));
}
else {
expireMonth = monthDropDown(expireMonthName, "");
expireYear = yearDropDown(expireYearName, "", (cal.get(Calendar.YEAR)-5), (cal.get(Calendar.YEAR)+3));
}
}
public Card getCard() {
return eCard;
}
public TextInput getNameInput() {
return this.nameInput;
}
public TextInput getSocialSequrityNumberInput() {
return this.socialInput;
}
public TextInput getNumberInput() {
return this.numberInput;
}
public DropdownMenu getDropYear() {
return this.expireYear;
}
public DropdownMenu getDropMonth() {
return this.expireMonth;
}
public DropdownMenu getTypeDrop() {
return this.typeDrop;
}
public boolean areNeededFieldsEmpty(IWContext modinfo) {
if(areAllFieldsEmpty(modinfo))
return false;
else return areSomeFieldsEmpty(modinfo);
}
public boolean areAllFieldsEmpty(IWContext modinfo) {
boolean isEmpty = true;
isEmpty = (isInvalid(expireMonthValue) && isInvalid(expireYearValue)/*expireValue == null*/ && isEmpty(modinfo,ownerName) &&
isEmpty(modinfo,numberName) && isEmpty(modinfo,socialName) && isEmpty(modinfo,typeName));
return isEmpty;
}
public boolean areSomeFieldsEmpty(IWContext modinfo) {
return (isInvalid(expireMonthValue) || isInvalid(expireYearValue) || (ownerValue == null) ||
(numberValue == null) || (socialValue == null) || (typeValue == null) || ! ownerValue.equals("") ||
! numberValue.equals("") || ! socialValue.equals("") || ! typeValue.equals(""));
}
public void setVariables(IWContext modinfo) {
ownerValue = getValue(modinfo,ownerName);
numberValue = getValue(modinfo,numberName);
socialValue = getValue(modinfo,socialName);
typeValue = getValue(modinfo,typeName);
expireMonthValue = getValue(modinfo,expireMonthName);
expireYearValue = getValue(modinfo,expireYearName);
if (numberValue != null) {
eCard.setCardNumber(numberValue);
}
if(! isInvalid(expireMonthValue) && ! isInvalid(expireYearValue)) {
IWTimestamp stamp = new IWTimestamp(1, Integer.parseInt(expireMonthValue), Integer.parseInt(expireYearValue));
eCard.setExpireDate(stamp.getSQLDate());
}
if (typeValue != null) {
eCard.setCardType(typeValue);
}
if (ownerValue != null) {
eCard.setName(ownerValue);
}
if (numberValue != null) {
eCard.setCardNumber(numberValue);
}
if(socialValue != null) {
eCard.setSocialSecurityNumber(socialValue);
}
}
public Vector getNeededEmptyFields(IWContext modinfo){
return getEmptyFields();
}
public Vector getEmptyFields() {
Vector vec = new Vector();
if (isInvalid(expireMonthValue) || isInvalid(expireYearValue)) {
vec.addElement("Gildist�mi");
}
if (isInvalid(ownerValue)) {
vec.addElement("Korthafi");
}
if (isInvalid(numberValue)) {
vec.addElement("Kortan�mer");
}
if (isInvalid(socialValue)) {
vec.addElement("Kennitala");
}
if (isInvalid(typeValue)) {
vec.addElement("Tegund korts");
}
return vec;
}
public void store(IWContext modinfo)throws SQLException, IOException {
setVariables(modinfo);
Vector vError = getEmptyFields();
int errSize = vError.size();
if((! bUpdate) && errSize == 5) {
return;
}
else if((! bUpdate) && errSize > 0) {
return;
}
if(bUpdate) {
eCard.update();
}
else {
eCard.insert();
}
}
public BorderTable getInputTable() {
BorderTable hTable = new BorderTable();
Table table = new Table(2, 5);
hTable.add(table);
table.add(formatText("Kennitala"), 1, 1);
table.add(getSocialSequrityNumberInput(), 2, 1);
table.add(formatText("Gildist�mi"), 1, 2);
table.add(getDropMonth(), 2, 2);
table.add(getDropYear(), 2, 2);
table.add(formatText("Korthafi"), 1, 3);
table.add(getNameInput(), 2, 3);
table.add(formatText("Kortan�mer"), 1, 4);
table.add(getNumberInput(), 2, 4);
table.add(formatText("Tegund"), 1, 5);
table.add(getTypeDrop(), 2, 5);
return hTable;
}
private DropdownMenu monthDropDown(String name, String selected) {
DropdownMenu drp = new DropdownMenu(name);
String month = null;
drp.addMenuElement("", "M�n.");
for(int i = 1; i < 13; i++) {
if(i < 10)
month = "0"+i;
else
month = String.valueOf(i);
drp.addMenuElement(String.valueOf(i), month);
}
drp.setSelectedElement(selected);
return drp;
}
private DropdownMenu yearDropDown(String name, String selected, int from, int to) {
DropdownMenu drp = new DropdownMenu(name);
drp.addMenuElement("", "�r");
for(int i = from; i <= to; i++) {
drp.addMenuElement(String.valueOf(i), String.valueOf(i));
}
drp.setSelectedElement(selected);
return drp;
}
private DropdownMenu typeDropDown(String name, String selected) {
DropdownMenu drp = new DropdownMenu(name);
drp.addMenuElement("", "Tegund");
drp.addMenuElement("visa", "V�sa");
drp.addMenuElement("eurocard", "Eurocard");
drp.setSelectedElement(selected);
return drp;
}
}