package is.idega.idegaweb.campus.presentation;
import is.idega.idegaweb.campus.data.ContractRenewalOffer;
import java.rmi.RemoteException;
import javax.ejb.FinderException;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.SubmitButton;
import com.idega.util.IWTimestamp;
public class ContractRenewalOfferForm extends CampusBlock {
private static final String RENEWAL_DECLINE = "renewal.decline";
private static final String RENEWAL_ACCEPT = "renewal.accept";
private String offerUUID;
private ContractRenewalOffer offer = null;
public ContractRenewalOfferForm() {
super();
}
protected void control(IWContext iwc) throws RemoteException {
offerUUID = iwc.getParameter(ContractRenewalOfferInput.OFFER_UUID);
try {
offer = getContractRenewalService(iwc)
.getContractRenewalOfferHome().findByUUID(offerUUID, false);
} catch (RemoteException e) {
} catch (FinderException e) {
}
if (iwc.isParameterSet(RENEWAL_ACCEPT)) {
acceptRenewal(iwc);
} else if (iwc.isParameterSet(RENEWAL_DECLINE)) {
declineRenewal(iwc);
}
addOfferLookup(iwc);
}
private void acceptRenewal(IWContext iwc) {
if (offer != null) {
offer.setAnswer(true);
offer.setOfferAnsweredDate(IWTimestamp.getTimestampRightNow());
offer.store();
}
}
private void declineRenewal(IWContext iwc) {
if (offer != null) {
offer.setAnswer(false);
offer.setOfferAnsweredDate(IWTimestamp.getTimestampRightNow());
offer.store();
}
}
private void addOfferLookup(IWContext iwc) {
Form form = new Form();
form.maintainParameter(ContractRenewalOfferInput.OFFER_UUID);
Table table = new Table();
table.setCellpadding(2);
table.setCellspacing(2);
form.add(table);
add(form);
int row = 1;
if (offer == null) {
table.add(
getErrorText(localize("renewal.no_offer_found_for_uuid",
"No offer found for this uuid")), 1, row++);
} else {
if (offer.getOfferAnsweredDate() == null) {
table.add(
getHeader(localize("renewal.offer_info",
"Offer info")), 1, row);
table.mergeCells(1, row, 2, row);
row++;
table.add(
getHeader(localize(
"renewal.offered",
"You have been offered the following.... please select accept/decline")), 1, row);
table.mergeCells(1, row, 2, row);
row++;
table.add(new SubmitButton(RENEWAL_ACCEPT, localize(RENEWAL_ACCEPT, "Accept")), 1, row);
table.add(new SubmitButton(RENEWAL_DECLINE, localize(RENEWAL_DECLINE, "Decline")), 2, row);
} else {
table.add(
getHeader(localize("renewal.offer_info",
"Offer info")), 1, row);
table.mergeCells(1, row, 2, row);
row++;
table.add(
getHeader(localize(
"renewal.already_answered",
"You have already responded to your renewal offer")), 1, row);
table.mergeCells(1, row, 2, row);
}
}
}
public void main(IWContext iwc) {
try {
control(iwc);
} catch (RemoteException e) {
add("Service is unavailable please come back later");
}
}
}