package fr.mch.mdo.restaurant.web.struts.actions;
import java.util.List;
import fr.mch.mdo.restaurant.dto.beans.DinnerTableDto;
import fr.mch.mdo.restaurant.dto.beans.MdoUserContext;
import fr.mch.mdo.restaurant.dto.beans.OrderLineDto;
import fr.mch.mdo.restaurant.dto.beans.TablesOrdersDtoBean;
import fr.mch.mdo.restaurant.ioc.spring.WebRestaurantBeanFactory;
import fr.mch.mdo.restaurant.services.business.managers.tables.IDinnerTablesManager;
import fr.mch.mdo.restaurant.ui.forms.TablesOrdersForm;
public final class TablesOrdersWebAction extends RestaurantWebAction
{
/**
* Default Serial Version UID.
*/
private static final long serialVersionUID = -1L;
IDinnerTablesManager manager = WebRestaurantBeanFactory.getInstance().getDinnerTablesManager();
public TablesOrdersWebAction() {
super(WebRestaurantBeanFactory.getInstance().getLogger(TablesOrdersWebAction.class.getName()), new TablesOrdersForm());
}
public String form() throws Exception {
String result = "ajax-response-form";
TablesOrdersForm form = (TablesOrdersForm) super.getForm();
TablesOrdersDtoBean dtoBean = (TablesOrdersDtoBean) form.getDtoBean();
// Table name
String tableNumber = dtoBean.getDinnerTable().getNumber();
super.getLogger().debug("Table name : " + tableNumber);
try {
MdoUserContext userContext = (MdoUserContext) form.getUserContext();
dtoBean.setDinnerTable(manager.findTableByNumber(userContext, tableNumber));
userContext.setCurrentTable(dtoBean.getDinnerTable());
} catch (Exception e) {
addActionError(getText("error.table.name"));
}
return result;
}
public String autoCompleteTablesNames() throws Exception {
String forwardPage = "ajax-response-auto-complete-tables-names";
TablesOrdersDtoBean dtoBean = (TablesOrdersDtoBean) super.getForm().getDtoBean();
TablesOrdersForm form = (TablesOrdersForm) super.getForm();
// Prefix table name
String prefixTableNumber = dtoBean.getPrefixTableNumber();
super.getLogger().debug("Prefix table name : " + prefixTableNumber);
try {
dtoBean.setTablesNames(manager.findAllTableNamesByPrefix(form.getUserContext(), prefixTableNumber));
} catch (Exception e) {
addActionError(getText("error.auto.complete.tables.names"));
}
// Forward control to the specified success URI
return forwardPage;
}
public String tableCustomersNumber() throws Exception {
String forwardPage = "ajax-response-table-customers-number";
TablesOrdersForm form = (TablesOrdersForm) super.getForm();
DinnerTableDto dtoBean = (DinnerTableDto) form.getDtoBean();
String tableNumber = dtoBean.getNumber();
super.getLogger().debug("Table name : " + tableNumber);
try {
MdoUserContext userContext = (MdoUserContext) form.getUserContext();
dtoBean.setCustomersNumber(manager.getCustomersNumberByNumber(userContext, tableNumber));
} catch (Exception e) {
addActionError(getText("error.table.customers.number"));
}
return forwardPage;
}
public String autoCompleteProductsCodes() throws Exception {
String forwardPage = "ajax-response-auto-complete-products-codes";
TablesOrdersForm form = (TablesOrdersForm) super.getForm();
TablesOrdersDtoBean dtoBean = (TablesOrdersDtoBean) form.getDtoBean();
// Prefix product code
String prefixProductCode = dtoBean.getPrefixProductCode();
super.getLogger().debug("Prefix product code : " + prefixProductCode);
try {
if (prefixProductCode != null) {
MdoUserContext userContext = (MdoUserContext) form.getUserContext();
dtoBean.setProductsCodes(manager.findAllProductCodesByPrefix(userContext, prefixProductCode));
}
} catch (Exception e) {
addActionError(getText("error.auto.complete.products.codes"));
}
// Forward control to the specified success URI
return forwardPage;
}
public String saveOrderLine() throws Exception {
String forwardPage = "ajax-response-save-order-line";
TablesOrdersForm form = (TablesOrdersForm) super.getForm();
TablesOrdersDtoBean dtoBean = (TablesOrdersDtoBean) form.getDtoBean();
// Order line
OrderLineDto orderLine = dtoBean.getOrderLine();
super.getLogger().debug("Product code : " + orderLine.getCode());
try {
MdoUserContext userContext = (MdoUserContext) form.getUserContext();
manager.addOrderLine(userContext, orderLine);
} catch (Exception e) {
addActionError(getText("error.save.order.line.product"));
}
// Forward control to the specified success URI
return forwardPage;
}
@SuppressWarnings("unchecked")
public String list() throws Exception {
String forwardPage = "list";
TablesOrdersForm form = (TablesOrdersForm) super.getForm();
super.getLogger().debug("Tables list");
try {
MdoUserContext userContext = (MdoUserContext) form.getUserContext();
@SuppressWarnings("rawtypes")
List objects = manager.findAllFreeTables(userContext);
form.setList(objects);
} catch (Exception e) {
addActionError(getText("message.error.action.list.tables"));
}
// Forward control to the specified success URI
return forwardPage;
}
}