super.insert(item);
}
@Override
public void update(ItensCompras item) throws ServiceBusinessException {
ItensCompras oldItem = dao.findById(item.getId());
if(item.isTipoInsumo()){
item.getInsumo().setTipoMovimentacao(TipoMovimentacao.COMPRA_INSUMO);
if(oldItem.getInsumo().equals(item.getInsumo()))
insumoService.update(item.getInsumo(),(oldItem.getQuantidade().intValue() - item.getQuantidade().intValue()), -1);
else{
oldItem.getInsumo().setTipoMovimentacao(TipoMovimentacao.COMPRA_INSUMO);
insumoService.update(oldItem.getInsumo(), oldItem.getQuantidade().intValue(), -1);
insumoService.update(item.getInsumo(), item.getQuantidade().intValue(), 1);
}
}else if (item.isTipoRacao()){
item.getRacao().setTipoMovimentacao(TipoMovimentacao.COMPRA_RACAO);
if(oldItem.getRacao().equals(item.getRacao()))
racaoService.update(item.getRacao(),(oldItem.getQuantidade().intValue() - item.getQuantidade().intValue()), -1);
else{
oldItem.getRacao().setTipoMovimentacao(TipoMovimentacao.COMPRA_RACAO);
racaoService.update(oldItem.getRacao(), oldItem.getQuantidade().intValue(), -1);
racaoService.update(item.getRacao(), item.getQuantidade().intValue(), 1);
}
}else if(item.isTipoProduto()){
item.getProduto().setTipoMovimentacao(TipoMovimentacao.COMPRA_PRODUTO);
Integer oldQuant = oldItem.getQuantidade().intValue();
Integer newQuant = item.getQuantidade().intValue();
if(item.getProduto().getOvos()){
oldQuant *=oldItem.getTipobandeja().getQuantidade().intValue();
newQuant *=item.getTipobandeja().getQuantidade().intValue();
}
if(oldItem.getProduto().equals(item.getProduto()))
produtoService.update(item.getProduto(),(oldQuant - newQuant), -1);
else{
oldItem.getProduto().setTipoMovimentacao(TipoMovimentacao.COMPRA_PRODUTO);
produtoService.update(oldItem.getProduto(), oldQuant, -1);
produtoService.update(item.getProduto(), newQuant, 1);
}
}
item.setAtivo(true);