/*
* $Id: CashierQueueViewer.java,v 1.1 2005/07/07 02:59:05 gimmi Exp $
* Created on Jul 6, 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 is.idega.idegaweb.travel.presentation;
import is.idega.idegaweb.travel.block.search.business.SearchEventListener;
import is.idega.idegaweb.travel.block.search.business.ServiceSearchBusinessBean;
import is.idega.idegaweb.travel.data.CashierQueue;
import is.idega.idegaweb.travel.data.CashierQueueHome;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.Iterator;
import javax.ejb.EJBException;
import javax.ejb.FinderException;
import javax.ejb.RemoveException;
import com.idega.block.trade.stockroom.business.TradeConstants;
import com.idega.data.IDOLookup;
import com.idega.data.IDOLookupException;
import com.idega.data.IDORelationshipException;
import com.idega.data.IDORuntimeException;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.presentation.text.Text;
public class CashierQueueViewer extends TravelManager {
private static final String ACTION = "cqv_a";
private static final String ACTION_DELETE = "cqv_ad";
private static final String PARAMETER_QUEUE_ID = "cqv_qi";
public void main(IWContext iwc) throws Exception {
super.main(iwc);
delete(iwc);
add(Text.BREAK);
if (hasRole(iwc, TradeConstants.ROLE_SUPPLIER_MANAGER_CASHIER_STAFF)) {
showList();
}
}
private void delete(IWContext iwc) {
String id = iwc.getParameter(PARAMETER_QUEUE_ID);
if (id != null) {
try {
CashierQueue queue = getCashierQueueHome().findByPrimaryKey(new Integer(id));
queue.removeAndDisableBookings();
}
catch (NumberFormatException e) {
e.printStackTrace();
}
catch (FinderException e) {
e.printStackTrace();
}
catch (EJBException e) {
e.printStackTrace();
}
catch (RemoveException e) {
e.printStackTrace();
}
}
}
private void showList() throws RemoteException {
try {
IWResourceBundle iwrb = getResourceBundle();
Collection queueItems = getCashierQueueHome().findAllBySupplierManager(getSupplierManager());
Table table = getTable();
table.setWidth("60%");
int row = 1;
table.add(getHeaderText(iwrb.getLocalizedString("travel.cashier_queue", "Cashier Queue")), 1, row);
table.mergeCells(1, row, 4, row);
table.setRowColor(row++, backgroundColor);
if (queueItems == null || queueItems.isEmpty()) {
table.add(getText(iwrb.getLocalizedString("travel.nothing_in_queue", "Nothing in queue")), 1, row);
table.mergeCells(1, row, 4, row);
table.setRowColor(row++, GRAY);
} else {
Iterator iter = queueItems.iterator();
CashierQueue queueItem;
Link book;
Link delete;
while (iter.hasNext()) {
queueItem = (CashierQueue) iter.next();
table.add(getText(queueItem.getPrimaryKey().toString()), 1, row);
table.add(getText(queueItem.getClientName()), 2, row);
book = new Link(getText(iwrb.getLocalizedString("travel.book", "Book")), SupplierBrowserBookingForm.class);
book.setEventListener(SearchEventListener.class);
book.addParameter(SupplierBrowserBookingForm.PARAMETER_CASHIER_QUEUE_ID, queueItem.getPrimaryKey().toString());
Collection bookingIDs = queueItem.getBookingIDs();
if (bookingIDs != null && !bookingIDs.isEmpty()) {
Iterator biter = bookingIDs.iterator();
while (biter.hasNext()) {
book.addParameter(ServiceSearchBusinessBean.PARAMETER_BOOKING_IDS_FOR_BASKET, biter.next().toString());
}
}
table.add(book, 3, row);
delete = new Link(getText(iwrb.getLocalizedString("travel.link_delete", " Delete ")));
delete.addParameter(ACTION, ACTION_DELETE);
delete.setOnClick("return confirm('"+super.getResourceBundle().getLocalizedString("travel.are_you_sure","Are you sure")+"?');");
delete.addParameter(PARAMETER_QUEUE_ID, queueItem.getPrimaryKey().toString());
table.add(delete, 4, row);
table.setRowColor(row++, GRAY);
}
}
table.setWidth(1, "40");
table.setWidth(3, "60");
table.setColumnAlignment(3, Table.HORIZONTAL_ALIGN_RIGHT);
table.setWidth(4, "60");
table.setColumnAlignment(4, Table.HORIZONTAL_ALIGN_RIGHT);
add(table);
}
catch (FinderException e) {
e.printStackTrace();
}
catch (IDORelationshipException e) {
e.printStackTrace();
}
}
private CashierQueueHome getCashierQueueHome() {
try {
return (CashierQueueHome) IDOLookup.getHome(CashierQueue.class);
}
catch (IDOLookupException e) {
throw new IDORuntimeException(e);
}
}
}