CREATE OR REPLACE FUNCTION consistegravaestoque(bigint)

  RETURNS void AS
$func$
DECLARE
	p_controle     alias for $1;
   _produto_id int;
   _filial_id int;
	_data_entrada_saida date;   
   controle BIGINT;
BEGIN
	controle = 137170;
   -- example makes no sense, just a loop demo
   FOR _produto_id, _filial_id, _data_entrada_saida IN
      SELECT i.fat_produto_id, docto.cad_filial_id, docto.dataentradasaida 
	  FROM fat_docto_i i JOIN fat_docto_c docto on i.fat_docto_c_controle 
	  = docto.controle where i.fat_docto_c_controle = p_controle 
   LOOP
   	PERFORM padrao.gravaestoque(_produto_id, _filial_id, _data_entrada_saida, false);
    --RAISE NOTICE 'ATUALIZANDO PRODUTO(%), FILIAL(%), DATAENTRADASAIDA(%)', _produto_id, _filial_id,_data_entrada_saida ;
	  
   END LOOP;
END
$func$  LANGUAGE plpgsql;


select consistegravaestoque(136898);



