package is.idega.idegaweb.travel.service.tour.presentation;
import is.idega.idegaweb.travel.business.ServiceNotFoundException;
import is.idega.idegaweb.travel.business.TimeframeNotFoundException;
import is.idega.idegaweb.travel.data.Contract;
import is.idega.idegaweb.travel.data.ContractHome;
import is.idega.idegaweb.travel.data.GeneralBooking;
import is.idega.idegaweb.travel.data.Inquery;
import is.idega.idegaweb.travel.data.Service;
import is.idega.idegaweb.travel.data.ServiceDay;
import is.idega.idegaweb.travel.data.ServiceDayHome;
import is.idega.idegaweb.travel.interfaces.Booking;
import is.idega.idegaweb.travel.presentation.BookingDeleterWindow;
import is.idega.idegaweb.travel.presentation.LinkGenerator;
import is.idega.idegaweb.travel.presentation.VoucherWindow;
import is.idega.idegaweb.travel.service.presentation.AbstractBookingOverview;
import is.idega.idegaweb.travel.service.presentation.BookingForm;
import is.idega.idegaweb.travel.service.tour.business.TourBooker;
import is.idega.idegaweb.travel.service.tour.business.TourBusiness;
import is.idega.idegaweb.travel.service.tour.business.TourNotFoundException;
import is.idega.idegaweb.travel.service.tour.data.Tour;
import is.idega.idegaweb.travel.service.tour.data.TourHome;
import java.rmi.RemoteException;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import com.idega.block.trade.stockroom.data.Product;
import com.idega.block.trade.stockroom.data.ProductHome;
import com.idega.block.trade.stockroom.data.Reseller;
import com.idega.block.trade.stockroom.data.Supplier;
import com.idega.block.trade.stockroom.data.TravelAddress;
import com.idega.business.IBOLookup;
import com.idega.data.IDOLookup;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.idegaweb.presentation.CalendarParameters;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.presentation.text.Text;
import com.idega.user.data.User;
import com.idega.user.data.UserHome;
import com.idega.util.IWCalendar;
import com.idega.util.IWTimestamp;
/**
* <p>Title: idegaWeb TravelBooking</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2001</p>
* <p>Company: idega</p>
* @author <a href="mailto:gimmi@idega.is">Grimur Jonsson</a>
* @version 1.0
*/
public class TourBookingOverview extends AbstractBookingOverview {
private String CELL_WIDTH = "50";
private Tour _tour;
private TourHome _tHome;
private IWResourceBundle _iwrb;
private Supplier _supplier;
private Reseller _reseller;
private Service _service;
public TourBookingOverview() {
}
public TourBookingOverview(IWContext iwc) throws RemoteException{
super.main(iwc);
this.init(iwc);
}
private void init(IWContext iwc) throws RemoteException{
_tHome = (TourHome) IDOLookup.getHome(Tour.class);
_iwrb = super.getTravelSessionManager(iwc).getIWResourceBundle();
_supplier = super.getTravelSessionManager(iwc).getSupplier();
_reseller = super.getTravelSessionManager(iwc).getReseller();
}
public Table getBookingOverviewTable(IWContext iwc, Collection products) throws CreateException, RemoteException, FinderException {
Table table = new Table();
table.setCellspacing(1);
table.setCellpadding(4);
table.setColor(super.WHITE);
table.setWidth("90%");
int row = 1;
Text dateText = (Text) theText.clone();
dateText.setText(super.getTravelSessionManager(iwc).getIWResourceBundle().getLocalizedString("travel.date_sm","date"));
Text nameText = (Text) theText.clone();
nameText.setText(super.getTravelSessionManager(iwc).getIWResourceBundle().getLocalizedString("travel.product_name_sm","name of product"));
Text countText = (Text) theText.clone();
countText.setText(super.getTravelSessionManager(iwc).getIWResourceBundle().getLocalizedString("travel.count_sm","count"));
Text assignedText = (Text) theText.clone();
assignedText.setText(super.getTravelSessionManager(iwc).getIWResourceBundle().getLocalizedString("travel.assigned_small_sm","assigned"));
Text inqText = (Text) theText.clone();
inqText.setText(super.getTravelSessionManager(iwc).getIWResourceBundle().getLocalizedString("travel.inqueries_sm","inquiries"));
Text bookedText = (Text) theText.clone();
bookedText.setText(super.getTravelSessionManager(iwc).getIWResourceBundle().getLocalizedString("travel.booked_sm","booked"));
Text availableText = (Text) theText.clone();
availableText.setText(super.getTravelSessionManager(iwc).getIWResourceBundle().getLocalizedString("travel.available_small_sm","avail."));
Text dateTextBold = (Text) theSmallBoldText.clone();
Text nameTextBold = (Text) theSmallBoldText.clone();
Text countTextBold = (Text) theSmallBoldText.clone();
Text assignedTextBold = (Text) theSmallBoldText.clone();
Text inqTextBold = (Text) theSmallBoldText.clone();
Text bookedTextBold = (Text) theSmallBoldText.clone();
Text availableTextBold = (Text) theSmallBoldText.clone();
table.add(dateText,1,row);
table.add(nameText,2,row);
table.add(countText,3,row);
table.add(assignedText,4,row);
table.add(inqText,5,row);
table.add(bookedText,6,row);
table.add(availableText,7,row);
table.add(" ",8,row);
table.setRowColor(row, super.backgroundColor);
Product prod;
int supplierId = 0;
if (_supplier != null)
supplierId = _supplier.getID();
IWCalendar cal = new IWCalendar();
int dayOfWeek;
boolean upALine = false;
Service service;
int iCount = 0;
int iBooked =0;
int iInquery=0;
int iAvailable=0;
int iAssigned=0;
String theColor = super.GRAY;
IWTimestamp fromStamp = super.getTimestampFrom(iwc);
IWTimestamp toStamp = super.getTimestampTo(iwc);
IWTimestamp tempStamp = new IWTimestamp(fromStamp);
ServiceDayHome sDayHome = (ServiceDayHome) IDOLookup.getHome(ServiceDay.class);
ServiceDay sDay;// = sDayHome.create();
toStamp.addDays(1);
while (toStamp.isLaterThan(tempStamp)) {
dayOfWeek = cal.getDayOfWeek(tempStamp.getYear(), tempStamp.getMonth(), tempStamp.getDay());
upALine = false;
++row;
dateTextBold = (Text) theSmallBoldText.clone();
cal = new IWCalendar(tempStamp);
dateTextBold.setText(cal.getLocaleDate());
dateTextBold.setFontColor(super.BLACK);
table.add(dateTextBold,1,row);
table.setRowColor(row, super.GRAY);
boolean bContinue= false;
ProductHome pHome = (ProductHome) IDOLookup.getHome(Product.class);
Iterator iter = products.iterator();
while (iter.hasNext()) {
try {
prod = (Product) iter.next();
if (_supplier != null) {
bContinue = getTravelStockroomBusiness(iwc).getIfDay(iwc,prod,tempStamp);
}else if (_reseller != null) {
bContinue = getTravelStockroomBusiness(iwc).getIfDay(iwc,getContract(iwc, prod),prod,tempStamp);
}
if (bContinue) {
iCount = 0;
iBooked =0;
iInquery=0;
iAvailable=0;
iAssigned=0;
service = getTravelStockroomBusiness(iwc).getService(prod);
_tour = getTourBusiness(iwc).getTour(prod);
if (_supplier != null) {
iCount = getTourBusiness(iwc).getMaxBookings(prod, tempStamp);
// if (sDay != null) {
// iCount = sDay.getMax();
// if (iCount < 1) {
// iCount = _tour.getTotalSeats();
// }
// }else {
// iCount = _tour.getTotalSeats();
// }
// if (iCount < 1) {
// iCount = _tour.getTotalSeats();
// }
// iCount = _tour.getTotalSeats();
// if (iCount == BookingForm.UNLIMITED_AVAILABILITY) {
// iCount = 0;
// }
iBooked = getTourBooker(iwc).getBookingsTotalCount(((Integer) service.getPrimaryKey()).intValue(), tempStamp, -1);
iAssigned = getAssigner(iwc).getNumberOfAssignedSeats(prod, tempStamp);
int resellerBookings = getBooker(iwc).getBookingsTotalCountByResellers(((Integer) service.getPrimaryKey()).intValue(), tempStamp);
if (iAssigned != 0) {
iAssigned = iAssigned - resellerBookings;
}
iInquery = getInquirer(iwc).getInqueredSeats(((Integer) service.getPrimaryKey()).intValue(), tempStamp, true);//getInqueredSeats(service.getID() ,tempStamp, true);
//iInquery = Inquirer.getInqueredSeats(service.getID() ,tempStamp, true);
iAvailable = iCount - iBooked - iAssigned;
}else if (_reseller != null) {
iCount = getContract(iwc, prod).getAlotment();
iBooked = getBooker(iwc).getBookingsTotalCountByReseller(_reseller.getID() ,((Integer) service.getPrimaryKey()).intValue(), tempStamp);
iAssigned = 0;
iInquery = getInquirer(iwc).getInquiryHome().getInqueredSeats(((Integer) service.getPrimaryKey()).intValue(),tempStamp,_reseller.getID(), true);
iAvailable = iCount - iBooked - iAssigned -iInquery;
//iCount = iCount -iBooked;
}
// countTextBold.setText(Integer.toString(iCount));
nameTextBold = (Text) theSmallBoldText.clone();
nameTextBold.setText(service.getName(super.getTravelSessionManager(iwc).getLocaleId() ));
assignedTextBold = (Text) theSmallBoldText.clone();
assignedTextBold.setText(Integer.toString(iAssigned));
countTextBold = (Text) theSmallBoldText.clone();
countTextBold.setText(Integer.toString(iCount));
inqTextBold = (Text) theSmallBoldText.clone();
inqTextBold.setText(Integer.toString(iInquery));
bookedTextBold = (Text) theSmallBoldText.clone();
bookedTextBold.setText(Integer.toString(iBooked));
availableTextBold = (Text) theSmallBoldText.clone();
availableTextBold.setText(Integer.toString(iAvailable));
nameTextBold.setFontColor(super.BLACK);
countTextBold.setFontColor(super.BLACK);
assignedTextBold.setFontColor(super.BLACK);
inqTextBold.setFontColor(super.BLACK);
bookedTextBold.setFontColor(super.BLACK);
availableTextBold.setFontColor(super.BLACK);
Link btnNanar = new Link(super.getTravelSessionManager(iwc).getIWResourceBundle().getImage("buttons/closer.gif"));
btnNanar.addParameter(PARAMETER_CLOSER_LOOK_DATE,tempStamp.toSQLDateString());
btnNanar.addParameter(is.idega.idegaweb.travel.presentation.Booking.parameterProductId, prod.getID());
Link btnBook = new Link(super.getTravelSessionManager(iwc).getIWResourceBundle().getImage("buttons/book.gif"), is.idega.idegaweb.travel.presentation.Booking.class);
btnBook.addParameter(is.idega.idegaweb.travel.presentation.Booking.parameterProductId, prod.getID());
btnBook.addParameter("year",tempStamp.getYear());
btnBook.addParameter("month",tempStamp.getMonth());
btnBook.addParameter("day",tempStamp.getDay());
table.add(nameTextBold,2,row);
table.add(assignedTextBold,4,row);
table.add(inqTextBold,5,row);
table.add(bookedTextBold,6,row);
if (iCount != BookingForm.UNLIMITED_AVAILABILITY) {
table.add(countTextBold,3,row);
table.add(availableTextBold,7,row);
}
table.add(btnNanar,8,row);
if (_supplier != null) {
table.add(Text.NON_BREAKING_SPACE+Text.NON_BREAKING_SPACE,8,row);
table.add(btnBook,8,row);
} else if (_reseller != null) {
if (!getTravelStockroomBusiness(iwc).getIfExpired(getContract(iwc, prod), tempStamp))
table.add(btnBook,8,row);
}
table.setRowColor(row,theColor);
if (iInquery > 0) {
table.setColor(5,row,super.YELLOW);
}
++row;
upALine = true;
}
}catch (SQLException sql) {
sql.printStackTrace(System.err);
}catch (ServiceNotFoundException snfe) {
snfe.printStackTrace(System.err);
}catch (TourNotFoundException tnfe) {
tnfe.printStackTrace(System.err);
}catch (TimeframeNotFoundException tfnfe) {
tfnfe.printStackTrace(System.err);
}
}
if (upALine) --row;
tempStamp.addDays(1);
}
toStamp.addDays(-1);
table.setWidth(3,CELL_WIDTH);
table.setWidth(4,CELL_WIDTH);
table.setWidth(5,CELL_WIDTH);
table.setWidth(6,CELL_WIDTH);
table.setWidth(7,CELL_WIDTH);
table.setColumnAlignment(1,"left");
table.setColumnAlignment(2,"left");
table.setColumnAlignment(3,"center");
table.setColumnAlignment(4,"center");
table.setColumnAlignment(5,"center");
table.setColumnAlignment(6,"center");
table.setColumnAlignment(7,"center");
table.setColumnAlignment(8,"right");
return table;
}
public Table getDetailedInfo(IWContext iwc, Product product, IWTimestamp stamp) throws FinderException, CreateException, RemoteException {
_tour = _tHome.findByPrimaryKey(product.getPrimaryKey());
Contract contract = null;
if ((_reseller != null) && (product != null)){
try {
ContractHome cHome = (ContractHome) IDOLookup.getHome(Contract.class);
contract = cHome.findByProductAndReseller(product.getID(), _reseller.getID());
/* Contract[] contracts = (Contract[]) (is.idega.idegaweb.travel.data.ContractBMPBean.getStaticInstance(Contract.class)).findAllByColumn(is.idega.idegaweb.travel.data.ContractBMPBean.getColumnNameResellerId(), Integer.toString(_reseller.getID()), is.idega.idegaweb.travel.data.ContractBMPBean.getColumnNameServiceId(), Integer.toString(product.getID()) );
if (contracts.length > 0) {
contract = contracts[0];
}*/
}catch (FinderException sql) {
sql.printStackTrace(System.err);
}
}
Table table = new Table();
table.setWidth("95%");
table.setBorder(0);
table.setCellspacing(1);
table.setCellpadding(2);
table.setColor(super.WHITE);
int row = 1;
Text dateTextBold = (Text) theSmallBoldText.clone();
Text nameTextBold = (Text) theSmallBoldText.clone();
Text countTextBold = (Text) theSmallBoldText.clone();
Text assignedTextBold = (Text) theSmallBoldText.clone();
Text inqTextBold = (Text) theSmallBoldText.clone();
Text bookedTextBold = (Text) theSmallBoldText.clone();
Text availableTextBold = (Text) theSmallBoldText.clone();
Text hotelPickupTextBold = (Text) theSmallBoldText.clone();
table.add(getHeaderText(_iwrb.getLocalizedString("travel.date","Date")), 1, row);
table.add(getHeaderText(_iwrb.getLocalizedString("travel.product_name","Product name")), 2, row);
table.add(getHeaderText(_iwrb.getLocalizedString("travel.count","Count")), 3, row);
table.add(getHeaderText(_iwrb.getLocalizedString("travel.assigned","Assigned")), 4, row);
table.add(getHeaderText(_iwrb.getLocalizedString("travel.inquiries","Inquiries")), 5, row);
table.add(getHeaderText(_iwrb.getLocalizedString("travel.booked","Booked")), 6, row);
table.add(getHeaderText(_iwrb.getLocalizedString("travel.available","Available")), 7, row);
table.add(getHeaderText(_iwrb.getLocalizedString("travel.booked_by","Booked by")), 8, row);
table.add(getHeaderText(Text.NON_BREAKING_SPACE), 9, row);
table.setRowColor(row, super.backgroundColor);
// IWTimestamp currentStamp = new IWTimestamp(view_date);
int seats = 0;
int assigned = 0;
int iInqueries = 0;
int booked = 0;
int available = 0;
if (_supplier != null) {
seats = getTourBusiness(iwc).getMaxBookings(product, stamp);
// if (seats < 1) {
// seats = _tour.getTotalSeats();
// }
// if (seats == BookingForm.UNLIMITED_AVAILABILITY) {
// seats = 0;
// }
// ServiceDayHome sDayHome = (ServiceDayHome) IDOLookup.getHome(ServiceDay.class);
// ServiceDay sDay;// = sDayHome.create();
// sDay = sDayHome.findByServiceAndDay(((Integer) product.getPrimaryKey()).intValue(), stamp.getDayOfWeek());
// if (sDay != null) {
// seats = sDay.getMax();
// if (seats < 1) {
// seats = _tour.getTotalSeats();
// }
// }else {
// seats = _tour.getTotalSeats();
// }
// seats = _tour.getTotalSeats();
assigned = getAssigner(iwc).getNumberOfAssignedSeats(((Integer) product.getPrimaryKey()).intValue(), stamp);
iInqueries = getInquirer(iwc).getInqueredSeats(product.getID() , stamp, true);
booked = getBooker(iwc).getBookingsTotalCount(product.getID(), stamp, -1);
available = seats - booked;
}else if (_reseller != null) {
seats = contract.getAlotment();
assigned = 0;
iInqueries = getInquirer(iwc).getInquiryHome().getInqueredSeats(product.getID() , stamp, _reseller.getID(), true);
booked = getBooker(iwc).getBookingsTotalCountByReseller(_reseller.getID(),product.getID(), stamp);
available = seats - booked - iInqueries;
}
IWCalendar cal =new IWCalendar(stamp);
dateTextBold.setText(cal.getLocaleDate());
nameTextBold.setText(product.getProductName(super.getLocaleId()));
countTextBold.setText(Integer.toString(seats));
availableTextBold.setText(Integer.toString(available));
assignedTextBold.setText(Integer.toString(assigned));
inqTextBold.setText(Integer.toString(iInqueries));
bookedTextBold.setText(Integer.toString(booked));
dateTextBold.setFontColor(super.BLACK);
nameTextBold.setFontColor(super.BLACK);
countTextBold.setFontColor(super.BLACK);
availableTextBold.setFontColor(super.BLACK);
assignedTextBold.setFontColor(super.BLACK);
inqTextBold.setFontColor(super.BLACK);
bookedTextBold.setFontColor(super.BLACK);
++row;
table.add(dateTextBold,1,row);
table.add(nameTextBold,2,row);
table.setAlignment(3,row,"center");
table.add(assignedTextBold,4,row);
table.add(inqTextBold,5,row);
table.add(bookedTextBold,6,row);
if (seats != BookingForm.UNLIMITED_AVAILABILITY) {
table.add(countTextBold,3,row);
table.add(availableTextBold,7,row);
}
table.setRowColor(row, super.GRAY);
Text Tname;
Text Temail;
Text TbookedBy = (Text) super.theSmallBoldText.clone();
Text Tbooked;
java.util.List emails;
// ------------------ ASSIGNED -----------------------
if (assigned > 0) {
Reseller[] resellers = getContractBusiness(iwc).getResellers(product.getID(), stamp);
for (int i = 0; i < resellers.length; i++) {
++row;
Tname = (Text) super.theSmallBoldText.clone();
Tname.setText(resellers[i].getName());
Temail = (Text) super.theSmallBoldText.clone();
Tname.setFontColor(super.BLACK);
Temail.setFontColor(super.BLACK);
try {
emails = resellers[i].getEmails();
if (emails != null) {
for (int j = 0; j < emails.size(); j++) {
if (j > 0) Temail.addToText(", ");
Temail.addToText( ((com.idega.core.contact.data.Email) emails.get(j)).getEmailAddress());
}
}
}catch (SQLException sql) {sql.printStackTrace(System.err);}
// Temail.setText(_reseller[i].getEmail());
Tbooked = (Text) super.theSmallBoldText.clone();
Tbooked.setFontColor(super.BLACK);
Tbooked.setText(Integer.toString(getAssigner(iwc).getNumberOfAssignedSeats(product.getID(), resellers[i].getID() ,stamp)));
table.mergeCells(2,row,3, row);
table.add(Tname,1,row);
table.add(Temail,3,row);
table.setAlignment(3,row,"left");
table.add(Tbooked,4,row);
table.setRowColor(row, super.GRAY);
}
}
//List addresses = product.getDepartureAddresses(true);
List addresses = super.getProductBusiness(iwc).getDepartureAddresses(product, stamp, true); TravelAddress trAddress;
int addressesSize = addresses.size();
int tempRow;
int tempTotal;
int tempBookings;
int tempAvail;
int tempInq;
Collection travelAddressIds;
// int trAddrBookings = 0;
for (int g = 0; g < addressesSize; g++) {
trAddress = (TravelAddress) addresses.get(g);
++row;
tempRow = row;
tempTotal = 0;
tempAvail = 0;
tempInq = 0;
table.mergeCells(1, row, 2, row);
table.add(getHeaderText(trAddress.getName()), 1, row);
table.setRowColor(row, super.backgroundColor);
Link link;
// ------------------ INQUERIES ------------------------
Link answerLink = new Link(_iwrb.getLocalizedImageButton("travel.answer","Answer"),is.idega.idegaweb.travel.presentation.Booking.class);
answerLink.addParameter(CalendarParameters.PARAMETER_YEAR, stamp.getYear());
answerLink.addParameter(CalendarParameters.PARAMETER_MONTH, stamp.getMonth());
answerLink.addParameter(CalendarParameters.PARAMETER_DAY, stamp.getDay());
Inquery[] inqueries = null;
int[] iNumbers;
if (_supplier != null) inqueries = getInquirer(iwc).getInqueries(product.getID(), stamp, true, trAddress, is.idega.idegaweb.travel.data.InqueryBMPBean.getNameColumnName());
if (_reseller != null) {
//inqueries = inqueries = getInquirer(iwc).getInqueries(product.getID(), stamp, true, trAddress, is.idega.idegaweb.travel.data.InqueryBMPBean.getNameColumnName());
Collection coll = getInquirer(iwc).getInquiryHome().findInqueries(product.getID(), stamp, _reseller.getID(),true, trAddress,is.idega.idegaweb.travel.data.InqueryBMPBean.getNameColumnName());
inqueries = getInquirer(iwc).collectionToInqueryArray(coll);
}
for (int i = 0; i < inqueries.length; i++) {
++row;
iNumbers = getInquirer(iwc).getMultibleInquiriesNumber(inqueries[i]);
tempInq += inqueries[i].getNumberOfSeats();
Tname = (Text) super.theSmallBoldText.clone();
Tname.setText(inqueries[i].getName());
if ( iNumbers[0] != 0 ) {
Tname.addToText(Text.NON_BREAKING_SPACE+"( "+iNumbers[0]+" / "+iNumbers[1]+" )");
}
Temail = (Text) super.theSmallBoldText.clone();
Temail.setText(inqueries[i].getEmail());
Tbooked = (Text) super.theSmallBoldText.clone();
Tbooked.setText(Integer.toString(inqueries[i].getNumberOfSeats()));
Tname.setFontColor(super.BLACK);
Temail.setFontColor(super.BLACK);
Tbooked.setFontColor(super.BLACK);
table.mergeCells(2,row,4, row);
table.add(Tname,1,row);
table.add(Temail,2,row);
table.setAlignment(3,row,"left");
table.add(Tbooked,5,row);
table.setRowColor(row, super.YELLOW);
// table.setRowColor(row, super.GRAY);
link = (Link) answerLink.clone();
link.addParameter(TourBookingForm.parameterDepartureAddressId, trAddress.getID());
table.add(link, 9, row);
}
// int tempBookingTest = getBooker(iwc).getGeneralBookingHome().getNumberOfBookings(product.getID(), stamp, null, -1, new int[]{}, getTravelStockroomBusiness(iwc).getTravelAddressIdsFromRefill(product, trAddress) );
// table.add(getHeaderText(Integer.toString(tempBookingTest)), 6, row);
// ------------------ BOOKINGS ------------------------
Link changeLink = new Link(_iwrb.getImage("buttons/change.gif"),is.idega.idegaweb.travel.presentation.Booking.class);
Link deleteLink = new Link(_iwrb.getImage("buttons/delete.gif"));
deleteLink.setWindowToOpen(BookingDeleterWindow.class);
Booking[] bookings = {};
GeneralBooking booking;
int[] bNumbers;
if (this._supplier != null) {
bookings = getBooker(iwc).getBookings(((Integer) product.getPrimaryKey()).intValue(), stamp, trAddress);
}else if (this._reseller != null) {
Collection coll = getBooker(iwc).getGeneralBookingHome().findBookings(_reseller.getID(), product.getID(), stamp, trAddress);
bookings = getBooker(iwc).collectionToBookingsArray(coll);
}
Object serviceType;
User bUser;
int depAddressId = -1;
TravelAddress ta;
Reseller bReseller;
int idForLink = -1;
for (int i = 0; i < bookings.length; i++) {
++row;
booking = ((is.idega.idegaweb.travel.data.GeneralBookingHome)com.idega.data.IDOLookup.getHome(GeneralBooking.class)).findByPrimaryKey(bookings[i].getPrimaryKey());
serviceType = getBooker(iwc).getServiceType(product.getID());
ta = getBooker(iwc).getDepartureAddress(booking);
if (ta != null) {
depAddressId = ta.getID();
}else {
depAddressId = -1;
}
Tname = (Text) super.theSmallBoldText.clone();
Tname.setText(bookings[i].getName());
bNumbers = getBooker(iwc).getMultipleBookingNumber(booking);
if ( bNumbers[0] != 0 ) {
Tname.addToText(Text.NON_BREAKING_SPACE+"( "+bNumbers[0]+" / "+bNumbers[1]+" )");
idForLink = bNumbers[2];
}else {
idForLink = booking.getID();
}
tempBookings = bookings[i].getTotalCount();
tempTotal += tempBookings;
// trAddrBookings += tempBookings;
Temail = (Text) super.theSmallBoldText.clone();
Temail.setText(bookings[i].getEmail());
Tbooked = (Text) super.theSmallBoldText.clone();
Tbooked.setText(Integer.toString(tempBookings));
Tname.setFontColor(super.BLACK);
Temail.setFontColor(super.BLACK);
Tbooked.setFontColor(super.BLACK);
TbookedBy = (Text) super.theSmallBoldText.clone();
TbookedBy.setFontColor(super.BLACK);
if (bookings[i].getUserId() != -1) {
bUser = ((UserHome)com.idega.data.IDOLookup.getHome(User.class)).findByPrimaryKey(new Integer(bookings[i].getUserId()));
bReseller = getResellerManager(iwc).getReseller(bUser);
TbookedBy.setText(bUser.getName());
if (bReseller != null) {
if (this._reseller != bReseller) {
TbookedBy.addToText(" ( "+bReseller.getName()+" ) ");
}
}
}else {
TbookedBy.setText(_iwrb.getLocalizedString("travel.online","Online"));
}
link = VoucherWindow.getVoucherLink(idForLink);
link.setText(Tname);
table.mergeCells(2, row, 5, row);
table.add(link, 1, row);
table.add(Temail, 2, row);
table.setAlignment(3, row, "left");
table.add(Tbooked, 6, row);
table.add(TbookedBy, 8, row);
table.setRowColor(row, super.GRAY);
link = (Link) changeLink.clone();
link.addParameter(is.idega.idegaweb.travel.presentation.Booking.BookingAction,is.idega.idegaweb.travel.presentation.Booking.parameterUpdateBooking);
link.addParameter(is.idega.idegaweb.travel.presentation.Booking.parameterBookingId,idForLink);
link.addParameter(BookingForm.parameterDepartureAddressId, trAddress.getID());
table.add(link, 9, row);
table.add(Text.NON_BREAKING_SPACE,9,row);
link = (Link) deleteLink.clone();
link.addParameter(BookingDeleterWindow.bookingIdParameter,idForLink);
table.add(link, 9, row);
}
if (seats != BookingForm.UNLIMITED_AVAILABILITY) {
table.add(getHeaderText(Integer.toString(seats)), 3, tempRow);
}
table.add(getHeaderText(Integer.toString(assigned)), 4, tempRow);
table.add(getHeaderText(Integer.toString(tempInq)), 5, tempRow);
table.add(getHeaderText(Integer.toString(tempTotal)), 6, tempRow);
if (seats != BookingForm.UNLIMITED_AVAILABILITY) {
travelAddressIds = super.getTravelStockroomBusiness(iwc).getTravelAddressIdsFromRefill(product, trAddress);
// TODO Mismunandi eftir hvort supplier eda reseller...
tempAvail = seats - getBooker(iwc).getGeneralBookingHome().getBookingsTotalCount(( (Integer) product.getPrimaryKey()).intValue(), stamp, null, -1, new int[]{}, travelAddressIds );
table.add(getHeaderText(Integer.toString(tempAvail)), 7, tempRow);
}
Link daLink = LinkGenerator.getLink(iwc, product.getID(), is.idega.idegaweb.travel.presentation.Booking.class);
daLink.addParameter(TourBookingForm.parameterDepartureAddressId, trAddress.getID());
daLink.setPresentationObject(_iwrb.getImage("buttons/book.gif"));
table.add(Text.NON_BREAKING_SPACE, 1, tempRow);
table.add(daLink, 9, tempRow);
table.setAlignment(9, tempRow, Table.HORIZONTAL_ALIGN_RIGHT);
}
++row;
table.mergeCells(1,row,6,row);
availableTextBold.setText(Integer.toString(available));
availableTextBold.setFontColor(super.BLACK);
Text Tavail = (Text) super.theSmallBoldText.clone();
Tavail.setFontColor(super.BLACK);
Tavail.setText(_iwrb.getLocalizedString("travel.available_seats","Available seats"));
if (seats != BookingForm.UNLIMITED_AVAILABILITY) {
table.add(Tavail, 1, row);
table.add(availableTextBold, 7, row);
}
table.setRowColor(row, super.GRAY);
table.setColumnAlignment(1,"left");
table.setColumnAlignment(2,"left");
table.setColumnAlignment(3,"center");
table.setColumnAlignment(4,"center");
table.setColumnAlignment(5,"center");
table.setColumnAlignment(6,"center");
table.setColumnAlignment(7,"center");
table.setColumnAlignment(8,"left");
table.setWidth(3,CELL_WIDTH);
table.setWidth(4,CELL_WIDTH);
table.setWidth(5,CELL_WIDTH);
table.setWidth(6,CELL_WIDTH);
table.setWidth(7,CELL_WIDTH);
table.setWidth(9,"140");
return table;
}
protected TourBusiness getTourBusiness(IWContext iwc) throws RemoteException{
return (TourBusiness) IBOLookup.getServiceInstance(iwc, TourBusiness.class);
}
public TourBooker getTourBooker(IWContext iwc) throws RemoteException {
return (TourBooker) IBOLookup.getServiceInstance(iwc, TourBooker.class);
}
}