package is.idega.idegaweb.golf.service.member;
import is.idega.idegaweb.golf.entity.PaymentType;
import is.idega.idegaweb.golf.entity.PriceCatalogue;
import is.idega.idegaweb.golf.entity.UnionMemberInfo;
import is.idega.idegaweb.golf.service.Tariffer;
import java.sql.Date;
import java.sql.SQLException;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.ListIterator;
import java.util.Vector;
import com.idega.data.IDOLookup;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.presentation.ui.BorderTable;
import com.idega.presentation.ui.DateInput;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.TextArea;
import com.idega.presentation.ui.TextInput;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company:
* @author
* @version 1.0
*/
public class UnionMemberInfoInsert extends EntityInsert {
private UnionMemberInfo eUMI;
private TextInput inputMemberNumber;
private DropdownMenu dropMemberShipType;
private DropdownMenu dropFamilyStatus;
private DropdownMenu dropNumberOfPaiments;
private TextInput inputLocker;
private DateInput dateInputFirstPayday;
private TextArea areaComment;
private DropdownMenu dropVisible;
private DropdownMenu dropPaymentTypes;
private DropdownMenu dropCatalogue;
private DropdownMenu dropActive;
private final String inputMemberNumberName = "UnionMemberInfoInsert_member_number";
private final String dropMemberShipTypeName = "UnionMemberInfoInsert_mbshiptype";
private final String dropFamilyStatusName = "UnionMemberInfoInsert_family_status";
private final String dropNumberOfPaimentsName = "UnionMemberInfoInsert_numpayments";
private final String inputLockerName = "UnionMemberInfoInsert_locker";
private final String dateInputFirstPaydayName = "UnionMemberInfoInsert_firstpayday";
private final String areaCommentName = "UnionMemberInfoInsert_comment";
private final String dropVisibleName = "UnionMemberInfoInsert_isvisible";
private final String dropPaymentTypesName = "UnionMemberInfoInsert_paymenttypes";
private final String dropCatalogueName = "UnionMemberInfoInsert_catalogue";
private final String dropActiveName = "UnionMemberInfoInsert_isactive";
private String inputMemberNumberValue;
private String dropMemberShipTypeValue;
private String dropFamilyStatusValue;
private String dropNumberOfPaimentsValue;
private String inputLockerValue;
private Date dateInputFirstPaydayValue;
private String areaCommentValue;
private String dropVisibleValue;
private String dropPaymentTypesValue;
private String dropCatalogueValue;
private String dropActiveValue;
public UnionMemberInfoInsert(int iUnionId) throws java.sql.SQLException{
bUpdate = false;
this.eUMI = (UnionMemberInfo) IDOLookup.createLegacy(UnionMemberInfo.class);
GregorianCalendar cal = new GregorianCalendar();
dateInputFirstPayday = new DateInput(dateInputFirstPaydayName, true);
dateInputFirstPayday.setDay(1);
dateInputFirstPayday.setMonth(2);
dateInputFirstPayday.setYear(cal.get(cal.YEAR));
eUMI.setUnionID( iUnionId);
eUMI.setRegistrationDate(new Date(System.currentTimeMillis()));
inputMemberNumber = new TextInput(inputMemberNumberName);
inputMemberNumber.setLength(4);
inputLocker = new TextInput(inputLockerName);
inputLocker.setSize(8);
areaComment = new TextArea(areaCommentName);
dropMemberShipType = mbshiptypeDropdown(dropMemberShipTypeName,"main");
dropVisible = visibleDropdown(dropVisibleName, "Y");
dropPaymentTypes = paymentTypeDrop(dropPaymentTypesName, "1");
dropCatalogue = catalogueDrop(dropCatalogueName, "0");
dropActive = activeDropdown(dropActiveName, "A");
dropNumberOfPaiments = numberOfPaymentDrop(dropNumberOfPaimentsName, "0");
dropFamilyStatus = familyStatusDropdown(dropFamilyStatusName, "head");
init();
}
public UnionMemberInfoInsert(UnionMemberInfo umi)throws SQLException {
this.eUMI = umi;
bUpdate = true;
GregorianCalendar cal = new GregorianCalendar();
dateInputFirstPayday = new DateInput(dateInputFirstPaydayName, true);
dateInputFirstPayday.setYear(cal.get(cal.YEAR));
if(eUMI.getMemberStatus() != null) {
dropActive = activeDropdown(dropActiveName, eUMI.getMemberStatus());
}
else
dropActive = activeDropdown(dropActiveName, "A");
if(eUMI.getFamilyStatus() != null)
dropFamilyStatus = familyStatusDropdown(dropFamilyStatusName, eUMI.getFamilyStatus());
else
dropFamilyStatus = familyStatusDropdown(dropFamilyStatusName, "head");
if(eUMI.getPreferredInstallmentNr() != -1)
dropNumberOfPaiments = numberOfPaymentDrop(dropNumberOfPaimentsName, String.valueOf(eUMI.getPreferredInstallmentNr()));
else
dropNumberOfPaiments = numberOfPaymentDrop(dropNumberOfPaimentsName, "0");
if(eUMI.getLockerNumber() != null)
inputLocker = new TextInput(inputLockerName, eUMI.getLockerNumber());
else
inputLocker = new TextInput(inputLockerName);
if(eUMI.getComment() != null)
areaComment = new TextArea(areaCommentName, eUMI.getComment());
else
areaComment = new TextArea(areaCommentName);
if(eUMI.getVisible())
dropVisible = visibleDropdown(dropVisibleName, "Y");
else
dropVisible = visibleDropdown(dropVisibleName, "N");
if(eUMI.getPaymentTypeID() != -1)
dropPaymentTypes = paymentTypeDrop(dropPaymentTypesName, String.valueOf(eUMI.getPaymentTypeID()));
else
dropPaymentTypes = paymentTypeDrop(dropPaymentTypesName, "1");
if(eUMI.getFirstInstallmentDate() != null) {
dateInputFirstPayday.setDate(eUMI.getFirstInstallmentDate());
}
else {
dateInputFirstPayday.setDay(1);
dateInputFirstPayday.setMonth(2);
}
if(eUMI.getMembershipType()!=null){
dropMemberShipType = mbshiptypeDropdown(dropMemberShipTypeName,eUMI.getMembershipType());
}
else{
dropMemberShipType = mbshiptypeDropdown(dropMemberShipTypeName,"main");
}
String mn = String.valueOf(eUMI.getMemberNumber());
inputMemberNumber = new TextInput(inputMemberNumberName,mn);
dropCatalogue = catalogueDrop(dropCatalogueName, String.valueOf(eUMI.getPriceCatalogueID()));
init();
}
private void init(){
inputMemberNumber.setLength(4);
inputLocker.setSize(8);
dateInputFirstPayday.setStyle(this.styleAttribute);
setStyle(inputMemberNumber);
setStyle(inputLocker);
setStyle(areaComment);
setStyle(dropMemberShipType);
setStyle(dropPaymentTypes);
setStyle(dropVisible);
setStyle(dropCatalogue);
setStyle(dropActive);
setStyle(dropNumberOfPaiments);
setStyle(dropFamilyStatus);
}
public TextInput getInputMemberNumber() {
return inputMemberNumber;
}
public UnionMemberInfo getUnionMemberInfo() {
return this.eUMI;
}
public void setUnionId(int id ) {
this.eUMI.setUnionID(id);
}
public void setMemberId(int id ) {
this.eUMI.setMemberID(id);
}
public void setCardId(int id ) {
this.eUMI.setCardId(id);
}
//debug added by eiki
public void setMemberStatus( String status ) {
this.eUMI.setMemberStatus(status);
}
//debug added by eiki
public void setMembershipType(String type ) {
this.eUMI.setMembershipType(type);
}
public DropdownMenu getDropdownNumberOfPayments() {
return this.dropNumberOfPaiments;
}
public DropdownMenu getDropdownFamilyStatus() {
return this.dropFamilyStatus;
}
public TextInput getInputLocker() {
return this.inputLocker;
}
public DateInput getDateInputFirstPaymentDate() {
return dateInputFirstPayday;
}
public DropdownMenu getDropVisible() {
return this.dropVisible;
}
public DropdownMenu getDropCatalogue() {
return dropCatalogue;
}
public DropdownMenu getDropMemberStatus() {
return dropActive;
}
public DropdownMenu getDropMemberShipType() {
return dropMemberShipType;
}
public DropdownMenu getDropdownPaymentType() {
return dropPaymentTypes;
}
public TextArea getAreaComment() {
return areaComment;
}
public Vector getEmptyFields() {
Vector vec = new Vector();
if ( isInvalid(inputLockerValue)) {
vec.addElement("Sk�pan�mer");
}
if (! isDateInputValid(dateInputFirstPaydayName)) {
vec.addElement("Dagsetning fyrstu afborgunar");
}
return vec;
}
public Vector getNeededEmptyFields(IWContext modinfo) {
return new Vector();
}
public boolean areSomeFieldsEmpty(IWContext modinfo) {
return (getEmptyFields().size() > 0);
}
public boolean areNeededFieldsEmpty(IWContext modinfo) {
return (getNeededEmptyFields(modinfo).size() > 0);
}
public void store(IWContext modinfo) throws java.io.IOException, java.sql.SQLException {
setVariables(modinfo);
if(isUpdate())
eUMI.update();
else {
if(eUMI.getUnionID() == 0 || eUMI.getUnionID() == -1 || eUMI.getMemberID() == 0 || eUMI.getMemberID() == -1)
throw new SQLException("Vantar UNION_ID OG/E�A MEMBER_ID GILDI A KALLINN");
int nextNumber = eUMI.getMaxColumnValue("member_number", "union_id", String.valueOf(eUMI.getUnionID()));
nextNumber++;
eUMI.setMemberNumber(nextNumber);
eUMI.insert();
}
}
public BorderTable getInputTable() {
Table table = null;
Link link = Tariffer.getExtraCatalogueLink("Skr� Gjaldflokk", String.valueOf(eUMI.getUnionID()));
link.setObject(new Image("/pics/formtakks/edit.gif"));
if(isUpdate()) {
table = new Table(2, 8);
table.add(formatText("N�mer"), 1, 1);
table.add(formatText("Sta�a"), 1, 2);
table.add(formatText("Grei�slur"), 1, 3);
table.add(formatText("1.Gjaldd."), 1, 4);
//table.add(formatText("Grei�slum�ti"), 1, 5);
table.add(formatText("Vefur"), 1, 5);
table.add(formatText("Sk�pur"), 1, 6);
table.add(formatText("Fj.sta�a"), 1, 7);
table.add(formatText("S�rgjald"), 1, 8);
table.add(getInputMemberNumber(), 2, 1);
table.add(getDropMemberStatus(), 2, 2);
table.add(getDropMemberShipType(),2,2);
table.add(getDropdownNumberOfPayments(), 2, 3);
table.add(getDropdownPaymentType(), 2, 3);
table.add(getDateInputFirstPaymentDate(), 2, 4);
table.add(getDropVisible(), 2, 5);
table.add(getInputLocker(), 2, 6);
table.add(getDropdownFamilyStatus(), 2, 7);
table.add(getDropCatalogue(), 2,8);
table.add(link, 2, 8);
}
else {
table = new Table(2, 8);
table.add(formatText("Sta�a"), 1, 2);
table.add(formatText("Grei�slur"), 1, 3);
table.add(formatText("1.Gjalddagi"), 1, 4);
//table.add(formatText("Grei�slum�ti"), 1, 4);
table.add(formatText("Vefur"), 1, 5);
table.add(formatText("Sk�pur"), 1, 6);
table.add(formatText("Fj.sta�a"), 1, 7);
table.add(formatText("S�rgjald"), 1, 8);
table.add(getDropMemberStatus(), 2, 2);
table.add(getDropMemberShipType(),2,2);
table.add(getDropdownNumberOfPayments(), 2, 3);
table.add(getDropdownPaymentType(), 2, 3);
table.add(getDateInputFirstPaymentDate(), 2, 4);
table.add(getDropVisible(), 2, 5);
table.add(getInputLocker(), 2, 6);
table.add(getDropdownFamilyStatus(), 2, 7);
table.add(getDropCatalogue(), 2, 8);
table.add(link, 2, 8);
}
BorderTable hTable = new BorderTable();
hTable.add(table);
return hTable;
}
public void setVariables(IWContext modinfo) {
inputMemberNumberValue = getValue(modinfo,inputMemberNumberName);
dropMemberShipTypeValue = getValue(modinfo,dropMemberShipTypeName);
dropNumberOfPaimentsValue = getValue(modinfo,dropNumberOfPaimentsName);
inputLockerValue = getValue(modinfo,inputLockerName);
dateInputFirstPaydayValue = getDateFromInput(modinfo,dateInputFirstPaydayName);
areaCommentValue = getValue(modinfo,areaCommentName);
dropVisibleValue = getValue(modinfo,dropVisibleName);
dropPaymentTypesValue = getValue(modinfo,dropPaymentTypesName);
dropCatalogueValue = getValue(modinfo,dropCatalogueName);
dropActiveValue = getValue(modinfo,dropActiveName);
dropFamilyStatusValue = getValue(modinfo,dropFamilyStatusName);
setEntity();
}
private void setEntity() {
if (! isInvalid(dropNumberOfPaimentsValue)) {
if(isDigitOnly(dropNumberOfPaimentsValue))
eUMI.setPreferredInstallmentNr(new Integer(dropNumberOfPaimentsValue));
}
if(inputMemberNumberValue != null){
try {
int number = Integer.parseInt(inputMemberNumberValue);
eUMI.setMemberNumber(number);
}
catch (NumberFormatException ex) {
System.err.println("membernumber not integer:");
ex.printStackTrace();
}
}
if (inputLockerValue != null) {
eUMI.setLockerNumber(inputLockerValue);
}
if (dateInputFirstPaydayValue != null) {
eUMI.setFirstInstallmentDate(dateInputFirstPaydayValue);
}
/*if (! isInvalid(areaCommentValue)) {
member.setComment(areaCommentValue);
}*/
if (! isInvalid(dropVisibleValue)) {
if(dropVisibleValue.equalsIgnoreCase("Y"))
eUMI.setVisible(true);
else
eUMI.setVisible(false);
}
if (! isInvalid(dropPaymentTypesValue)) {
eUMI.setPaymentTypeID(new Integer(dropPaymentTypesValue));
}
if(! isInvalid(dropCatalogueValue)) {
eUMI.setPriceCatalogueID(Integer.parseInt(dropCatalogueValue));
}
eUMI.setMembershipType( dropMemberShipTypeValue);
eUMI.setMemberStatus(dropActiveValue);
eUMI.setFamilyStatus(dropFamilyStatusValue);
}
public DropdownMenu paymentTypeDrop(String name, String selected)throws java.sql.SQLException {
DropdownMenu drp = new DropdownMenu(name);
PaymentType type = (PaymentType) IDOLookup.instanciateEntity(PaymentType.class);
PaymentType[] types = (PaymentType[]) type.findAll();
for( int i=0;i<types.length;i++){
String sname = types[i].getName();
if(sname.length() > 5)
sname = sname.substring(0,5);
drp.addMenuElement(types[i].getID(),sname);
}
drp.setSelectedElement(selected);
return drp;
}
public DropdownMenu catalogueDrop(String name, String selected)throws java.sql.SQLException {
if(selected.equals("-1"))
selected = "0";
DropdownMenu drp = new DropdownMenu( name);
drp.addMenuElement(0, "-----");
List list = Tariffer.getExtraCatalogList(String.valueOf(this.eUMI.getUnionID()));
if(list != null) {
ListIterator iter = list.listIterator();
PriceCatalogue cate = null;
String sname;
while(iter.hasNext()) {
cate = (PriceCatalogue) iter.next();
sname = cate.getName();
if(sname.length() > 15)
sname = sname.substring(0,15)+"..";
drp.addMenuElement(cate.getID(), sname);
}
drp.setSelectedElement(selected);
}
return drp;
}
public DropdownMenu numberOfPaymentDrop(String name, String selected) {
DropdownMenu drp = new DropdownMenu( name);
drp.addMenuElement(0, "--");
for(int i = 1; i < 13; i++) {
drp.addMenuElement(i, String.valueOf(i));
}
drp.setSelectedElement(selected);
return drp;
}
public DropdownMenu mbshiptypeDropdown(String name,String selected){
DropdownMenu drp = new DropdownMenu(name);
drp.addMenuElement("main","A�alkl.");
drp.addMenuElement("sub","Aukakl.");
drp.setSelectedElement(selected);
return drp;
}
public DropdownMenu activeDropdown(String name, String selected) {
DropdownMenu drp = new DropdownMenu(name);
drp.addMenuElement("A", "Virkur");
drp.addMenuElement("I", "�virkur");
drp.addMenuElement("W", "� bi�");
drp.addMenuElement("Q", "H�ttur");
drp.addMenuElement("D", "L�tinn");
drp.setSelectedElement(selected);
return drp;
}
public DropdownMenu familyStatusDropdown(String name, String selected) {
DropdownMenu drp = new DropdownMenu(name);
drp.addMenuElement("head", "H�fu�");
drp.addMenuElement("partner", "Maki");
drp.addMenuElement("child", "Barn");
drp.setSelectedElement(selected);
return drp;
}
public DropdownMenu visibleDropdown(String name, String selected) {
DropdownMenu drp = new DropdownMenu(name);
drp.addMenuElement("Y", "Sj�st � vef");
drp.addMenuElement("N", "Ekki sj�st � vef");
drp.setSelectedElement(selected);
return drp;
}
}