package io.oasp.gastronomy.restaurant.salesmanagement.logic.impl;
import io.oasp.gastronomy.restaurant.general.logic.api.UseCase;
import io.oasp.gastronomy.restaurant.general.logic.base.AbstractComponentFacade;
import io.oasp.gastronomy.restaurant.offermanagement.logic.api.to.OfferEto;
import io.oasp.gastronomy.restaurant.salesmanagement.common.api.datatype.PaymentStatus;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.Salesmanagement;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.to.BillCto;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.to.BillEto;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.to.OrderCto;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.to.OrderEto;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.to.OrderPositionEto;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.to.OrderPositionSearchCriteriaTo;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.to.OrderSearchCriteriaTo;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.to.PaymentData;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.usecase.UcChangeTable;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.usecase.UcFindBill;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.usecase.UcFindOrder;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.usecase.UcFindOrderPosition;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.usecase.UcManageBill;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.usecase.UcManageOrder;
import io.oasp.gastronomy.restaurant.salesmanagement.logic.api.usecase.UcManageOrderPosition;
import io.oasp.module.jpa.common.api.to.PaginatedListTo;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
import javax.transaction.Transactional;
/**
* This is the implementation of {@link Salesmanagement}.
*
*/
@Named
@Transactional
public class SalesmanagementImpl extends AbstractComponentFacade implements Salesmanagement {
private UcFindOrderPosition ucFindOrderPosition;
private UcManageOrderPosition ucManageOrderPosition;
private UcFindOrder ucFindOrder;
private UcManageOrder ucManageOrder;
private UcFindBill ucFindBill;
private UcManageBill ucManageBill;
private UcChangeTable ucChangeTable;
/**
* The constructor.
*/
public SalesmanagementImpl() {
super();
}
/**
* @param ucFindOrderPosition the {@link UcFindOrderPosition} to {@link Inject}.
*/
@Inject
@UseCase
public void setUcFindOrderPosition(UcFindOrderPosition ucFindOrderPosition) {
this.ucFindOrderPosition = ucFindOrderPosition;
}
/**
* @param ucManageOrderPosition the {@link UcManageOrderPosition} to {@link Inject}.
*/
@Inject
@UseCase
public void setUcManageOrderPosition(UcManageOrderPosition ucManageOrderPosition) {
this.ucManageOrderPosition = ucManageOrderPosition;
}
/**
* @param ucFindBill the {@link UcFindBill} to {@link Inject}.
*/
@Inject
@UseCase
public void setUcFindBill(UcFindBill ucFindBill) {
this.ucFindBill = ucFindBill;
}
/**
* @param ucFindOrder the {@link UcFindOrder} to {@link Inject}.
*/
@Inject
@UseCase
public void setUcFindOrder(UcFindOrder ucFindOrder) {
this.ucFindOrder = ucFindOrder;
}
/**
* @param ucManageOrder the {@link UcManageOrder} to {@link Inject}.
*/
@Inject
@UseCase
public void setUcManageOrder(UcManageOrder ucManageOrder) {
this.ucManageOrder = ucManageOrder;
}
/**
* @param ucManageBill the {@link UcManageBill} to {@link Inject}.
*/
@Inject
@UseCase
public void setUcManageBill(UcManageBill ucManageBill) {
this.ucManageBill = ucManageBill;
}
/**
* @param ucChangeTable the {@link UcChangeTable} to {@link Inject}.
*/
@Inject
@UseCase
public void setUcChangeTable(UcChangeTable ucChangeTable) {
this.ucChangeTable = ucChangeTable;
}
@Override
public OrderEto findOrder(long id) {
return this.ucFindOrder.findOrder(id);
}
@Override
public PaginatedListTo<OrderEto> findOrderEtos(OrderSearchCriteriaTo criteria) {
return this.ucFindOrder.findOrderEtos(criteria);
}
@Override
public PaginatedListTo<OrderCto> findOrderCtos(OrderSearchCriteriaTo criteria) {
return this.ucFindOrder.findOrderCtos(criteria);
}
@Override
public OrderCto findOrderCto(OrderEto order) {
return this.ucFindOrder.findOrderCto(order);
}
@Override
public OrderEto findOpenOrderForTable(long tableId) {
return this.ucFindOrder.findOpenOrderForTable(tableId);
}
@Override
public void changeTable(long orderId, long tableId) {
this.ucChangeTable.changeTable(orderId, tableId);
}
@Override
public OrderPositionEto createOrderPosition(OfferEto offer, OrderEto order, String comment) {
return this.ucManageOrderPosition.createOrderPosition(offer, order, comment);
}
@Override
public OrderPositionEto findOrderPosition(long orderPositionId) {
return this.ucFindOrderPosition.findOrderPosition(orderPositionId);
}
@Override
public List<OrderPositionEto> findOrderPositions(OrderPositionSearchCriteriaTo criteria) {
return this.ucFindOrderPosition.findOrderPositions(criteria);
}
@Override
public List<OrderPositionEto> findOrderPositionsByOrderId(long orderId) {
return this.ucFindOrderPosition.findOrderPositionsByOrderId(orderId);
}
@Override
public List<OrderPositionEto> findOpenOrderPositionsByOrderId(long orderId) {
return this.ucFindOrderPosition.findOpenOrderPositionsByOrderId(orderId);
}
@Override
public PaymentStatus doPayment(BillEto bill) {
return this.ucManageBill.doPayment(bill);
}
@Override
public PaymentStatus doPayment(BillEto bill, PaymentData paymentData) {
return this.ucManageBill.doPayment(bill, paymentData);
}
@Override
public BillCto findBill(long id) {
return this.ucFindBill.findBill(id);
}
@Override
public void deleteBill(long billId) {
this.ucManageBill.deleteBill(billId);
}
@Override
public void deleteOrder(long id) {
this.ucManageOrder.deleteOrder(id);
}
@Override
public OrderCto saveOrder(OrderCto order) {
return this.ucManageOrder.saveOrder(order);
}
@Override
public OrderEto saveOrder(OrderEto order) {
return this.ucManageOrder.saveOrder(order);
}
@Override
public OrderPositionEto saveOrderPosition(OrderPositionEto orderPosition) {
return this.ucManageOrderPosition.saveOrderPosition(orderPosition);
}
@Override
public BillEto createBill(BillEto bill) {
return this.ucManageBill.createBill(bill);
}
}