/*
* $Id: BatchDeadlineSetter.java,v 1.4 2005/02/17 11:55:35 anders Exp $
* Created on 1.11.2004
*
* Copyright (C) 2004 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.accounting.invoice.presentation;
import java.rmi.RemoteException;
import se.idega.idegaweb.commune.accounting.business.BatchDeadlineService;
import se.idega.idegaweb.commune.accounting.presentation.AccountingBlock;
import com.idega.business.IBOLookup;
import com.idega.presentation.IWContext;
import com.idega.presentation.text.Break;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.SubmitButton;
import com.idega.util.IWCalendar;
import com.idega.util.IWTimestamp;
/**
*
* Last modified: $Date: 2005/02/17 11:55:35 $ by $Author: anders $
*
* @author <a href="mailto:aron@idega.com">aron</a>
* @version $Revision: 1.4 $
*/
public class BatchDeadlineSetter extends AccountingBlock {
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.presentation.AccountingBlock#init(com.idega.presentation.IWContext)
*/
public void init(IWContext iwc) throws Exception {
Form form = new Form();
int deadlineDay = getDeadlineService(iwc).getCurrentDeadlineDay();
IWTimestamp stamp = IWTimestamp.RightNow();
int currentDay = stamp.getDay();
IWCalendar cal = new IWCalendar();
int daysInMonth = cal.getLengthOfMonth(stamp.getMonth(),stamp.getYear());
if(iwc.isParameterSet("deadline_day")){
try {
deadlineDay = Integer.parseInt(iwc.getParameter("deadline_day"));
getDeadlineService(iwc).storeDeadline(deadlineDay);
} catch (Exception e) {}
}
// still valid this month
stamp.setDay(deadlineDay);
if(deadlineDay < currentDay){
stamp.addMonths(1);
}
String date = getShortDateFormat(iwc.getCurrentLocale()).format(stamp.getDate());
Text currentDeadlineText = getHeader(localize("batchdeadline.current_deadline", "Current deadline")+" : "+date);
Text setDeadlineToText = getHeader(localize("batchdeadline.set_deadline_to","Set deadline to"));
DropdownMenu days = (DropdownMenu)getStyledInterface(new DropdownMenu("deadline_day"));
days.addMenuElement(localize("batchdeadline.day","D"));
for (int i = 1; i <= daysInMonth; i++) {
days.addMenuElement(String.valueOf(i));
}
form.add(currentDeadlineText);
form.add(new Break());
form.add(setDeadlineToText);
form.add(Text.getNonBrakingSpace());
form.add(days);
form.add(Text.getNonBrakingSpace());
form.add( getButton(new SubmitButton("save_dld",localize("batchdeadline.save_date","Save date"))));
add(form);
}
public BatchDeadlineService getDeadlineService(IWContext iwc)throws RemoteException{
return (BatchDeadlineService)IBOLookup.getServiceInstance(iwc, BatchDeadlineService.class);
}
}