InvoiceBean.java
package allaire.samples.invoice;
import allaire.samples.invoice.InvoiceException;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Serializable;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import javax.servlet.jsp.PageContext;
public class InvoiceBean implements Serializable {
private static final String DATE_FORMAT_PATTERN = "yyyy-MM-dd";
private static final String[] DAYS =
{"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};
private String[] hours = new String[7];
private String dayName;
private String invoiceDate;
private String item;
private InvoiceDataModel dataModel;
public InvoiceBean() throws InvoiceException {
dataModel = new InvoiceDataModel();
}
public String getBalanceDue() {
String result = "";
try {
double rate = Double.parseDouble( getDeveloperRate() );
double hours = Double.parseDouble( getTotalHours() );
double balance = rate * hours;
result = String.valueOf( balance );
} catch ( Exception exc ) {
exc.printStackTrace();
}
return result;
}
public String getClientAddress() throws InvoiceException {
return dataModel.getProperty( "clientAddress" );
}
public String getClientCompany() throws InvoiceException {
return dataModel.getProperty( "clientCompany" );
}
public String getClientPO() throws InvoiceException {
return dataModel.getProperty( "clientPO" );
}
public String[] getCompanies() throws InvoiceException {
return dataModel.getCompanies();
}
public String[] getDays() {
return DAYS;
}
public String getDeveloperName() throws InvoiceException {
return dataModel.getProperty( "developerName" );
}
public String getDeveloperRate() throws InvoiceException {
return dataModel.getProperty( "developerRate" );
}
public String getDayName() {
return dayName;
}
public String getDayHours() {
String result = null;
int index;
if ( dayName.equals( "Mon" ) ) {
index = 0;
} else if ( dayName.equals( "Tue" ) ) {
index = 1;
} else if ( dayName.equals( "Wed" ) ) {
index = 2;
} else if ( dayName.equals( "Thu" ) ) {
index = 3;
} else if ( dayName.equals( "Fri" ) ) {
index = 4;
} else if ( dayName.equals( "Sat" ) ) {
index = 5;
} else {
index = 6;
}
return hours[index];
}
public String getInvoiceDate() {
if ( invoiceDate == null ) {
String dateFormat = "MMM d, yyyy";
SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
invoiceDate = formatter.format(new Date());
}
return invoiceDate;
}
public String getItem() {
return item;
}
public String getSelected() {
String result = dataModel.getSelected( item );
return result;
}
public String getTotalHours()
throws Exception {
String result = null;
double sum = 0.0;
for (int i = 0; i < 7; i++) {
if ( hours[i] != null ) {
sum += Double.parseDouble( hours[i] );
}
}
result = String.valueOf( sum );
return result;
}
public String getWeekEnding() throws InvoiceException {
return dataModel.getProperty( "weekEnding" );
}
public String[] getWeeks() {
return dataModel.getWeeks();
}
public void setClientCompany( String company ) {
dataModel.setClientCompany( company );
}
public void setDayName( String name ) {
dayName = name;
}
public void setItem( String item ) {
this.item = item;
}
public void setPageContext( PageContext pageContext ) {
dataModel.setPageContext( pageContext );
}
public void setWeekEnding( String date ) throws InvoiceException {
dataModel.setWeekEnding( date );
hours = dataModel.getHours();
}
}