BEGIN

	declare ESTOQUE float;
	declare SAIDAS float;
	declare ENTRADAS float;
	declare ENTRADASPECAS float;
	declare SAIDASPECAS float;
	declare AJUSTES float;
	declare VENDAS float;
	declare VENDASPECAS float;
	declare DEVOLUCOES float;
	declare PEDIDOSCOMPRAX float;


	SELECT COALESCE(SUM(s.quantidade), 0) INTO SAIDAS
	FROM submovimentoestoque s
	left join movimentoestoque m on m.ID = s.movimento_id
	WHERE s.codigo = REFERENCIA AND s.loja_id = LOJA_ID and s.movimento='Saída';


	(SELECT COALESCE(SUM(s.quantidade), 0) INTO ENTRADAS
	FROM submovimentoestoque s
	left join movimentoestoque m on m.ID = s.movimento_id
	WHERE s.codigo = REFERENCIA AND s.loja_id = LOJA_ID and s.movimento='Entrada');
	
	(SELECT COALESCE(SUM(s.pecas), 0) INTO ENTRADASPECAS
	FROM submovimentoestoque s
	left join movimentoestoque m on m.ID = s.movimento_id
	WHERE s.codigo = REFERENCIA AND s.loja_id = LOJA_ID and s.movimento='Entrada');
	
	(SELECT COALESCE(SUM(s.pecas), 0) INTO SAIDASPECAS
	FROM submovimentoestoque s
	left join movimentoestoque m on m.ID = s.movimento_id
	WHERE s.codigo = REFERENCIA AND s.loja_id = LOJA_ID and s.movimento='Saída');
	
	(SELECT COALESCE(SUM(s.quantidade), 0) INTO AJUSTES
	FROM submovimentoestoque s
	WHERE s.codigo = REFERENCIA AND s.loja_id = LOJA_ID and s.movimento='Ajuste');
	
	(SELECT COALESCE(SUM(sv.quantidadebruta), 0) INTO VENDAS
	FROM subpedidosvenda sv
	left join pedidosvenda pv on pv.pedido_id = sv.pedido and pv.loja_id = sv.loja_id
	WHERE sv.codigo = REFERENCIA AND sv.loja_id = LOJA_ID and sv.status=0);
	
	(SELECT COALESCE(COUNT(sv.codigo), 0) INTO VENDASPECAS
	FROM subpedidosvenda sv
	left join pedidosvenda pv on pv.pedido_id = sv.pedido and pv.loja_id = sv.loja_id
	WHERE sv.codigo = REFERENCIA AND sv.loja_id = LOJA_ID and sv.status=0);
	
	(SELECT COALESCE(SUM(sd.quantidadebruta), 0) INTO DEVOLUCOES
	FROM subdevolucoes sd
	LEFT JOIN devolucoes d on d.ID = sd.Numero
	WHERE sd.codigo = REFERENCIA AND sd.loja_id = LOJA_ID);
	
	(SELECT COALESCE(SUM(peso), 0) INTO PEDIDOSCOMPRAX
	FROM subpedidoscomprax spx
	left join pedidoscomprax px on px.ID = spx.Pedido
	WHERE spx.produto = REFERENCIA AND px.loja_id = LOJA_ID);


SET ESTOQUE = ENTRADAS + AJUSTES - SAIDAS - VENDAS + DEVOLUCOES + PEDIDOSCOMPRAX;



return ESTOQUE;


END