package fr.mch.mdo.restaurant.web.struts.actions;
import fr.mch.mdo.restaurant.Constants;
import fr.mch.mdo.restaurant.business.managers.tables.orders.ITablesOrdersManager;
import fr.mch.mdo.restaurant.dto.beans.MdoUserContext;
import fr.mch.mdo.restaurant.dto.beans.OrderLineDtoBean;
import fr.mch.mdo.restaurant.dto.beans.ProductDtoBean;
import fr.mch.mdo.restaurant.dto.beans.TablesOrdersDtoBean;
import fr.mch.mdo.restaurant.ioc.MdoBeanFactory;
import fr.mch.mdo.restaurant.ui.forms.TablesOrdersForm;
public final class TablesOrdersWebAction extends MdoAbstractWebAction
{
/**
*
*/
private static final long serialVersionUID = -1L;
public TablesOrdersWebAction()
{
super(MdoBeanFactory.getInstance().getLogger(TablesOrdersWebAction.class.getName()), new TablesOrdersForm());
}
public String form() throws Exception
{
String result = "ajax-response-form";
TablesOrdersDtoBean dtoBean = (TablesOrdersDtoBean) super.getForm().getDtoBean();
//Table name
String tableNumber = dtoBean.getDinnerTableDtoBean().getTableNumber();
super.getLogger().debug("Table name : " + tableNumber);
try
{
ITablesOrdersManager iTablesOrdersManager = MdoBeanFactory.getInstance().getTablesOrdersManager();
dtoBean.setDinnerTableDtoBean(iTablesOrdersManager.getTableByTableNumber(dtoBean.getUserContext(), tableNumber));
MdoUserContext userContext = (MdoUserContext)super.getUserContext();
userContext.setCurrentTable(dtoBean.getDinnerTableDtoBean());
}
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();
//Prefix table name
String prefixTableNumber = dtoBean.getPrefixTableNumber();
super.getLogger().debug("Prefix table name : " + prefixTableNumber);
try
{
ITablesOrdersManager iTableOrdersManager = MdoBeanFactory.getInstance().getTablesOrdersManager();
dtoBean.setTablesNames(iTableOrdersManager.lookupTablesNamesByPrefix(dtoBean.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";
TablesOrdersDtoBean dtoBean = (TablesOrdersDtoBean) super.getForm().getDtoBean();
String tableNumber = dtoBean.getDinnerTableDtoBean().getTableNumber();
super.getLogger().debug("Table name : " + tableNumber);
try
{
ITablesOrdersManager iTableOrdersManager = MdoBeanFactory.getInstance().getTablesOrdersManager();
dtoBean.getDinnerTableDtoBean().setCustomersNumber(iTableOrdersManager.getCustomersNumberByTableNumber(dtoBean.getUserContext(), 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";
TablesOrdersDtoBean dtoBean = (TablesOrdersDtoBean) super.getForm().getDtoBean();
//Prefix product code
String prefixProductCode = dtoBean.getPrefixProductCode();
super.getLogger().debug("Prefix product code : " + prefixProductCode);
try
{
if(prefixProductCode!=null)
{
ITablesOrdersManager iTablesOrdersManager = MdoBeanFactory.getInstance().getTablesOrdersManager();
dtoBean.setProductsCodes(iTablesOrdersManager.lookupProductsCodesByPrefix(dtoBean.getUserContext(), 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";
TablesOrdersDtoBean dtoBean = (TablesOrdersDtoBean) super.getForm().getDtoBean();
//Order line
OrderLineDtoBean orderLine = dtoBean.getOrderLine();
super.getLogger().debug("Product code : " + orderLine.getCode());
try
{
ITablesOrdersManager iTablesOrdersManager = MdoBeanFactory.getInstance().getTablesOrdersManager();
iTablesOrdersManager.saveOrderLine(dtoBean.getUserContext(), orderLine);
}
catch (Exception e)
{
addActionError(getText("error.save.order.line.product"));
}
// Forward control to the specified success URI
return forwardPage;
}
}