package eu.ggnet.dwoss.redtape;
import eu.ggnet.dwoss.stock.entity.LogicTransaction;
import eu.ggnet.dwoss.stock.entity.StockTransaction;
import eu.ggnet.dwoss.stock.entity.StockUnit;
import eu.ggnet.dwoss.stock.entity.Stock;
import java.util.Arrays;
import java.util.Date;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import eu.ggnet.dwoss.redtape.assist.RedTapes;
import eu.ggnet.dwoss.redtape.eao.DocumentEao;
import eu.ggnet.dwoss.redtape.entity.Document;
import eu.ggnet.dwoss.stock.assist.Stocks;
import eu.ggnet.dwoss.stock.eao.LogicTransactionEao;
import eu.ggnet.dwoss.stock.eao.StockUnitEao;
import eu.ggnet.dwoss.stock.emo.StockLocationDiscoverer;
import eu.ggnet.dwoss.stock.emo.StockTransactionEmo;
/**
*
* @author oliver.guenther
*/
@Stateless
public class SupportBean {
@Inject
@Stocks
private EntityManager stockEm;
@Inject
@RedTapes
private EntityManager redTapeEm;
public LogicTransaction findByDossierId(long id) {
LogicTransaction lt = new LogicTransactionEao(stockEm).findByDossierId(id);
lt.getUnits().size();
return lt;
}
public StockUnit changeStock(int uniqueUnitId, int target) {
StockUnit stockUnit1 = new StockUnitEao(stockEm).findByUniqueUnitId(uniqueUnitId);
StockLocationDiscoverer discoverer = new StockLocationDiscoverer(stockEm);
Stock notDestination = stockEm.find(Stock.class, target);
discoverer.discoverAndSetLocation(stockUnit1, notDestination);
return stockUnit1;
}
public StockUnit rollOut(int uniqueUnitId) {
StockTransactionEmo transactionEmo = new StockTransactionEmo(stockEm);
StockUnit stockUnit2 = new StockUnitEao(stockEm).findByUniqueUnitId(uniqueUnitId);
StockTransaction rollOut = transactionEmo.requestRollOutPrepared(stockUnit2.getStock().getId(), "JUnit", "JUnit");
rollOut.addUnit(stockUnit2);
transactionEmo.completeRollOut("JUnit", Arrays.asList(rollOut));
return stockUnit2;
}
public Document changeActual(Document doc, Date date) {
doc = new DocumentEao(redTapeEm).findById(doc.getId());
doc.setActual(date);
return doc;
}
}