super.insert(item);
}
@Override
public void update(ItensVendas item) throws ServiceBusinessException {
ItensVendas oldItem = dao.findById(item.getId());
if(item.isTipoInsumo()){
item.getInsumo().setTipoMovimentacao(TipoMovimentacao.VENDA_INSUMO);
if(oldItem.getInsumo().equals(item.getInsumo()))
insumoService.update(item.getInsumo(),(oldItem.getQuantidade().intValue() - item.getQuantidade().intValue()), 1);
else{
oldItem.getInsumo().setTipoMovimentacao(TipoMovimentacao.VENDA_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.VENDA_RACAO);
if(oldItem.getRacao().equals(item.getRacao()))
racaoService.update(item.getRacao(),(oldItem.getQuantidade().intValue() - item.getQuantidade().intValue()), 1);
else{
oldItem.getRacao().setTipoMovimentacao(TipoMovimentacao.VENDA_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.VENDA_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.VENDA_PRODUTO);
produtoService.update(oldItem.getProduto(), oldQuant, 1);
produtoService.update(item.getProduto(), newQuant, -1);
}
}
item.setAtivo(true);