/*
* $Id: ChangeMultipleContracts.java,v 1.2.2.1 2005/11/16 01:17:36 palli Exp $
* Created on Jun 13, 2005
*
* Copyright (C) 2005 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package se.idega.idegaweb.commune.childcare.presentation;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.Iterator;
import se.idega.idegaweb.commune.care.data.ChildCareContract;
import com.idega.block.school.data.School;
import com.idega.business.IBORuntimeException;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.text.Break;
import com.idega.presentation.ui.DateInput;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.InterfaceObject;
import com.idega.presentation.ui.Label;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextInput;
import com.idega.user.data.User;
import com.idega.util.IWTimestamp;
import com.idega.util.PersonalIDFormatter;
import com.idega.util.text.Name;
/**
* Last modified: $Date: 2005/11/16 01:17:36 $ by $Author: palli $
*
* @author <a href="mailto:laddi@idega.com">laddi</a>
* @version $Revision: 1.2.2.1 $
*/
public class ChangeMultipleContracts extends ChildCareBlock {
private static final String PARAMETER_CHANGE = "change_all";
private static final String PARAMETER_FROM_CARE_TIME = "from_care_time";
private static final String PARAMETER_TO_CARE_TIME = "to_care_time";
private static final String PARAMETER_DATE_OF_CHANGE = "date_of_change";
private static final String PARAMETER_FROM_DATE_OF_BIRTH = "from_date_of_birth";
private static final String PARAMETER_TO_DATE_OF_BIRTH = "to_date_of_birth";
public void init(IWContext iwc) throws Exception {
if (iwc.isParameterSet(PARAMETER_CHANGE)) {
changeContracts(iwc);
}
else {
showForm();
}
}
private void showForm() {
Form form = new Form();
form.addParameter(PARAMETER_CHANGE, Boolean.TRUE.toString());
form.setID("changeContractsForm");
InterfaceObject fromCareTime = null;
if (isUsePredefinedCareTimeValues()) {
fromCareTime = getCareTimeMenu(PARAMETER_FROM_CARE_TIME);
}
else {
fromCareTime = getStyledInterface(new TextInput(PARAMETER_FROM_CARE_TIME));
((TextInput) fromCareTime).setAsNotEmpty(localize("child_care.child_care_time_required", "You must fill in the child care time."));
((TextInput) fromCareTime).setAsIntegers(localize("child_care.only_integers_allowed", "Not a valid child care time."));
}
Label fromCareLabel = new Label(localize("child_care.from_care_time", "From care time"), fromCareTime);
form.add(fromCareLabel);
form.add(fromCareTime);
form.add(new Break());
InterfaceObject toCareTime = null;
if (isUsePredefinedCareTimeValues()) {
toCareTime = getCareTimeMenu(PARAMETER_TO_CARE_TIME);
}
else {
toCareTime = getStyledInterface(new TextInput(PARAMETER_TO_CARE_TIME));
((TextInput) toCareTime).setAsNotEmpty(localize("child_care.child_care_time_required", "You must fill in the child care time."));
((TextInput) toCareTime).setAsIntegers(localize("child_care.only_integers_allowed", "Not a valid child care time."));
}
Label toCareLabel = new Label(localize("child_care.to_care_time", "To care time"), toCareTime);
form.add(toCareLabel);
form.add(toCareTime);
form.add(new Break());
IWTimestamp stamp = new IWTimestamp();
DateInput dateOfChange = (DateInput) getStyledInterface(new DateInput(PARAMETER_DATE_OF_CHANGE));
dateOfChange.setDate(stamp.getDate());
Label dateOfChangeLabel = new Label(localize("child_care.date_of_change", "Date of change"), dateOfChange);
form.add(dateOfChangeLabel);
form.add(dateOfChange);
form.add(new Break());
IWTimestamp fromDate = new IWTimestamp();
fromDate.addYears(-4);
fromDate.setDay(1);
fromDate.setMonth(1);
DateInput fromDateOfBirth = (DateInput) getStyledInterface(new DateInput(PARAMETER_FROM_DATE_OF_BIRTH));
fromDateOfBirth.setDate(fromDate.getDate());
Label fromDateOfBirthLabel = new Label(localize("child_care.from_date_of_birth", "From date of birth"), fromDateOfBirth);
form.add(fromDateOfBirthLabel);
form.add(fromDateOfBirth);
form.add(new Break());
IWTimestamp toDate = new IWTimestamp();
toDate.addYears(-4);
toDate.setDay(31);
toDate.setMonth(12);
DateInput toDateOfBirth = (DateInput) getStyledInterface(new DateInput(PARAMETER_TO_DATE_OF_BIRTH));
toDateOfBirth.setDate(toDate.getDate());
Label toDateOfBirthLabel = new Label(localize("child_care.to_date_of_birth", "To date of birth"), toDateOfBirth);
form.add(toDateOfBirthLabel);
form.add(toDateOfBirth);
form.add(new Break());
SubmitButton submit = (SubmitButton) getButton(new SubmitButton(localize("change_contracts", "Change contracts")));
form.add(new Break());
form.add(submit);
add(form);
}
private void changeContracts(IWContext iwc) {
String fromCareTime = iwc.getParameter(PARAMETER_FROM_CARE_TIME);
String toCareTime = iwc.getParameter(PARAMETER_TO_CARE_TIME);
IWTimestamp dateOfChange = new IWTimestamp(iwc.getParameter(PARAMETER_DATE_OF_CHANGE));
IWTimestamp fromDateOfBirth = new IWTimestamp(iwc.getParameter(PARAMETER_FROM_DATE_OF_BIRTH));
IWTimestamp toDateOfBirth = new IWTimestamp(iwc.getParameter(PARAMETER_TO_DATE_OF_BIRTH));
try {
Collection contracts = getBusiness().changeAllContractsInRange(fromCareTime, toCareTime, dateOfChange.getDate(), fromDateOfBirth.getDate(), toDateOfBirth.getDate(), iwc.getCurrentUser(), iwc.getCurrentLocale());
Table table = new Table();
table.setCellpadding(getCellpadding());
table.setCellspacing(getCellspacing());
table.setColumns(3);
table.setRowColor(1, getHeaderColor());
int row = 1;
int column = 1;
table.add(getLocalizedSmallHeader("child_care.name","Name"), column++, row);
table.add(getLocalizedSmallHeader("child_care.personal_id","Personal ID"), column++, row);
table.add(getLocalizedSmallHeader("child_care.provider","Provider"), column++, row++);
Iterator iter = contracts.iterator();
while (iter.hasNext()) {
column = 1;
ChildCareContract contract = (ChildCareContract) iter.next();
User user = contract.getChild();
School school = contract.getApplication().getProvider();
Name name = new Name(user.getFirstName(), user.getMiddleName(), user.getLastName());
table.add(getSmallText(name.getName(iwc.getCurrentLocale(), true)), column++, row);
table.add(getSmallText(PersonalIDFormatter.format(user.getPersonalID(), iwc.getCurrentLocale())), column++, row);
table.add(getSmallText(school.getSchoolName()), column, row++);
}
add(getHeader(localize("child_care.care_time_from", "Care time from") + ": "));
add(getCareTime(fromCareTime));
add(new Break());
add(getHeader(localize("child_care.care_time_to", "Care time to") + ": "));
add(getCareTime(toCareTime));
add(new Break(2));
add(getHeader(localize("child_care.changed_contracts_for_children", "Contracts changed for the following children:")));
add(new Break(2));
add(table);
}
catch (RemoteException re) {
throw new IBORuntimeException(re);
}
}
}