package ch.elexis.core.data.service;
import java.util.List;
import ch.elexis.core.model.IOrder;
import ch.elexis.core.model.IOrderEntry;
import ch.elexis.core.model.IStockEntry;
import ch.elexis.core.services.IOrderService;
import ch.elexis.data.Artikel;
import ch.elexis.data.BestellungEntry;
import ch.elexis.data.Query;
import ch.elexis.data.StockEntry;
public class OrderService implements IOrderService {
public IOrderEntry findOpenOrderEntryForStockEntry(IStockEntry ise){
StockEntry se = (StockEntry) ise;
Artikel article = se.getArticle();
Query<BestellungEntry> qre = new Query<BestellungEntry>(BestellungEntry.class);
qre.add(BestellungEntry.FLD_STOCK, Query.EQUALS, se.getStock().getId());
qre.add(BestellungEntry.FLD_ARTICLE_TYPE, Query.EQUALS, article.getClass().getName());
qre.add(BestellungEntry.FLD_ARTICLE_ID, Query.EQUALS, article.getId());
qre.add(BestellungEntry.FLD_STATE, Query.NOT_EQUAL,
Integer.toString(BestellungEntry.STATE_DONE));
List<BestellungEntry> execute = qre.execute();
if (execute.size() == 1) {
return execute.get(0);
}
return null;
}
@Override
public IOrderEntry addRefillForStockEntryToOrder(IStockEntry ise, IOrder order){
int current = ise.getCurrentStock();
int max = ise.getMaximumStock();
if (max == 0) {
max = ise.getMinimumStock();
}
int toOrder = max - current;
return order.addEntry(ise.getArticle(), ise.getStock(), ise.getProvider(), toOrder);
}
}