package is.idega.idegaweb.campus.block.allocation.presentation; import is.idega.idegaweb.campus.block.allocation.data.Contract; import is.idega.idegaweb.campus.presentation.CampusWindow; import is.idega.idegaweb.campus.presentation.Edit; import java.rmi.RemoteException; import com.idega.block.application.data.Applicant; import com.idega.block.building.business.BuildingService; import com.idega.block.building.data.Apartment; import com.idega.block.building.data.Building; import com.idega.block.building.data.Complex; import com.idega.block.building.data.Floor; import com.idega.business.IBOLookup; import com.idega.presentation.IWContext; import com.idega.presentation.PresentationObject; import com.idega.presentation.Table; import com.idega.presentation.ui.CheckBox; import com.idega.presentation.ui.CloseButton; import com.idega.presentation.ui.DataTable; import com.idega.presentation.ui.DateInput; import com.idega.presentation.ui.DoubleInput; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.HiddenInput; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextArea; import com.idega.presentation.ui.TimestampInput; import com.idega.user.business.UserBusiness; import com.idega.user.data.User; import com.idega.util.IWTimestamp; /** * Title: idegaclasses Description: Copyright: Copyright (c) 2001 Company: * * @author <a href="mailto:aron@idega.is">aron@idega.is * @version 1.0 */ public class ContractEditWindow extends CampusWindow { protected final int ACT1 = 1, ACT2 = 2, ACT3 = 3, ACT4 = 4, ACT5 = 5; private User eUser = null; private BuildingService buildingService = null; /* * Bl?r litur ? topp # 27324B Hv?tur litur fyrir ne?an ?a? # FFFFFF Lj?sbl?r * litur ? t?flu # ECEEF0 Auka litur ?rl?ti? dekkri (? lagi a? nota l?ka) # * CBCFD3 */ public ContractEditWindow() { setWidth(530); setHeight(370); setResizable(true); } protected void control(IWContext iwc) throws RemoteException { // debugParameters(iwc); buildingService = (BuildingService) IBOLookup.getServiceInstance(iwc, BuildingService.class); if (iwc.isParameterSet("save") || iwc.isParameterSet("save.x")) { doSaveContract(iwc); } add(getEditTable(iwc)); // add(getText(localize("access_denied","Access denied"))); // add(String.valueOf(iSubjectId)); } public PresentationObject makeLinkTable(int menuNr) { Table LinkTable = new Table(6, 1); return LinkTable; } private PresentationObject getEditTable(IWContext iwc) { int iContractId = Integer.parseInt(iwc.getParameter("contract_id")); // Table T = new Table(2,8); DataTable T = new DataTable(); T.setWidth("100%"); T.addTitle(localize("contract_info", "Contract info")); T.addButton(new CloseButton(getResourceBundle().getImage("close.gif"))); T.addButton(new SubmitButton(getResourceBundle().getImage("save.gif"), "save")); int row = 1; int col = 1; try { if (iContractId > 0) { Contract eContract = ((is.idega.idegaweb.campus.block.allocation.data.ContractHome) com.idega.data.IDOLookup .getHome(Contract.class)).findByPrimaryKey(new Integer( iContractId)); Applicant eApplicant = eContract.getApplicant(); User user = eContract.getUser(); boolean isContractUser = user.getPrimaryKey().toString() .equals(eUser.getPrimaryKey().toString()); if (user != null) { T.add(new HiddenInput("contract_id", eContract .getPrimaryKey().toString()), 1, row); T.add(getText(localize("name", "Name")), 1, row); T.add(getText(user.getName()), 2, row); row++; T.add(getText(localize("ssn", "SocialNumber")), 1, row); T.add(getText(eApplicant.getSSN()), 2, row); row++; T.add(getText(localize("apartment", "Apartment")), 1, row); T.add(getText(getApartmentString(eContract.getApartment())), 2, row); row++; IWTimestamp today = IWTimestamp.RightNow(); DateInput from = new DateInput("from_date", true); from.setYearRange(today.getYear() - 3, today.getYear() + 7); if (eContract.getValidFrom() != null) from.setDate(eContract.getValidFrom()); T.add(getText(localize("valid_from", "Valid from")), 1, row); T.add(from, 2, row); row++; DateInput to = new DateInput("to_date", true); to.setYearRange(today.getYear() - 3, today.getYear() + 7); if (eContract.getValidTo() != null) to.setDate(eContract.getValidTo()); T.add(getText(localize("valid_to", "Valid to")), 1, row); T.add(to, 2, row); row++; DateInput moving = new DateInput("moving_date", true); moving.setYearRange(today.getYear() - 3, today.getYear() + 7); if (eContract.getMovingDate() != null) moving.setDate(eContract.getMovingDate()); T.add(getText(localize("moving_to", "Moving date")), 1, row); T.add(moving, 2, row); row++; TimestampInput deliver = new TimestampInput("deliver_date", true); deliver.setYearRange(today.getYear() - 3, today.getYear() + 7); if (eContract.getDeliverTime() != null) deliver.setTimestamp(eContract.getDeliverTime()); T.add(getText(localize("deliver_date", "Deliver date")), 1, row); T.add(deliver, 2, row); row++; TimestampInput returnd = new TimestampInput("return_date", true); returnd.setYearRange(today.getYear() - 3, today.getYear() + 7); if (eContract.getReturnTime() != null) returnd.setTimestamp(eContract.getReturnTime()); T.add(getText(localize("return_date", "Return date")), 1, row); T.add(returnd, 2, row); row++; T.add(getText(localize("has_key", "Has key")), 1, row); // T.add(status,2,row); T.add(getText(getStatus(eContract.getIsRented() ? "yes" : "no")), 2, row); row++; DropdownMenu status = getStatusDropdown("status",eContract.getStatus()); Edit.setStyle(status); T.add(getText(localize("status", "Status")), 1, row); T.add(status,2,row); //T.add(getText(getStatus(eContract.getStatus())), 2, row); row++; T.add(getText(localize("status_date", "Status date")), 1, row); if (eContract.getStatusDate() != null) { String sdate = eContract.getStatusDate().toString(); T.add(getText(sdate), 2, row); } row++; TextArea info = new TextArea("info"); if (eContract.getResignInfo() != null) info.setContent(eContract.getResignInfo()); T.add(getText(localize("resign_info", "Resign info")), 1, row); T.add(info, 2, row); row++; CheckBox hasPhone = new CheckBox("hasPhone"); hasPhone.setChecked(eContract.getHasPhone()); T.add(getText(localize("has_phone", "Has phone")), 1, row); T.add(hasPhone, 2, row); row++; DoubleInput discount = new DoubleInput("dicount"); discount.setValue(eContract.getDiscountPercentage()); T.add(getText(localize("discount", "Discount")), 1, row); T.add(discount, 2, row); row++; } } } catch (Exception ex) { } Form F = new Form(); F.add(T); return F; } private DropdownMenu getStatusDropdown(String name, String selected) { DropdownMenu drp = new DropdownMenu(name); drp.addMenuElement("C", getStatus("C")); drp.addMenuElement("P", getStatus("P")); drp.addMenuElement("S", getStatus("S")); drp.addMenuElement("R", getStatus("R")); drp.addMenuElement("U", getStatus("U")); drp.addMenuElement("E", getStatus("E")); drp.addMenuElement("G", getStatus("G")); drp.setSelectedElement(selected); return drp; } private void doSaveContract(IWContext iwc) { try { int id = Integer.parseInt(iwc.getParameter("contract_id")); Contract eContract = ((is.idega.idegaweb.campus.block.allocation.data.ContractHome) com.idega.data.IDOLookup .getHome(Contract.class)).findByPrimaryKey(new Integer(id)); IWTimestamp from = null, to = null, moving = null, deliver = null, retur = null; String sfrom = iwc.getParameter("from_date"); if (sfrom != null && sfrom.length() == 10) eContract.setValidFrom(new IWTimestamp(sfrom).getDate()); String to_date = iwc.getParameter("to_date"); if (to_date != null && to_date.length() == 10) eContract.setValidTo(new IWTimestamp(to_date).getDate()); String moving_date = iwc.getParameter("moving_date"); if (moving_date != null && moving_date.length() == 10) eContract.setMovingDate(new IWTimestamp(moving_date).getDate()); String deliver_date = iwc.getParameter("deliver_date"); if (deliver_date != null && deliver_date.length() > 0) eContract.setDeliverTime(new IWTimestamp(deliver_date) .getTimestamp()); String return_date = iwc.getParameter("return_date"); if (return_date != null && return_date.length() > 0) eContract.setReturnTime(new IWTimestamp(return_date) .getTimestamp()); if (iwc.isParameterSet("status")) { eContract.setStatus((iwc.getParameter("status"))); eContract.setStatusDate(IWTimestamp.RightNow().getDate()); } if (iwc.isParameterSet("info")) { eContract.setResignInfo((iwc.getParameter("info"))); } eContract.setHasPhone(iwc.isParameterSet("hasPhone")); if (iwc.isParameterSet("discount")) { eContract.setDiscountPercentage(new Double(iwc.getParameter("discount")).doubleValue()); } eContract.store(); } catch (Exception ex) { ex.printStackTrace(); } } private void doAddEmail(int iUserId, IWContext iwc) { String sEmail = iwc.getParameter("new_email"); try { UserBusiness ub = (UserBusiness) IBOLookup.getServiceInstance(iwc, UserBusiness.class); ub.addNewUserEmail(iUserId, sEmail); } catch (RemoteException e) { e.printStackTrace(); } } private String getApartmentString(Apartment A) { StringBuffer S = new StringBuffer(); S.append(A.getName()); S.append(" "); Floor F = A.getFloor(); S.append(F.getName()); S.append(" "); Building B = F.getBuilding(); S.append(B.getName()); S.append(" "); Complex C = B.getComplex(); S.append(C.getName()); return S.toString(); } public void main(IWContext iwc) throws Exception { eUser = iwc.getCurrentUser(); // isStaff = com.idega.core.accesscontrol.business.AccessControl control(iwc); } private String getStatus(String status) { String r = ""; char c = status.charAt(0); switch (c) { case 'C': r = localize("created", "Created"); break; case 'P': r = localize("printed", "Printed"); break; case 'S': r = localize("signed", "Signed"); break; case 'R': r = localize("rejected", "Rejected"); break; case 'T': r = localize("terminated", "Terminated"); break; case 'U': r = localize("resigned", "Resigned"); break; case 'E': r = localize("ended", "Ended"); break; case 'G': r = localize("garbaged", "Canned"); break; } return r; } }