CREATE OR REPLACE FUNCTION tr_raktar_mozgas_fifo()
  RETURNS "trigger" AS
'-- Verzio: V2.01 2009.02.10.

declare

  v_forras_raktar_fifo_ar raktar_mozgas.forras_raktar_fifo_ar%type;
  v_cel_raktar_fifo_ar    raktar_mozgas.cel_raktar_fifo_ar%type;
  v_mennyiseg             raktar_mozgas.mennyiseg%type;

begin
  -- Ha nem keszletet mozgatunk, akkor azt specialisan kell kezelni
  if new.csak_fobizonylat_tetel = ''1'' then

    if new.szallitos_tetel_kod is not null then

      select forras_raktar_fifo_ar,
             cel_raktar_fifo_ar
        into v_forras_raktar_fifo_ar,
             v_cel_raktar_fifo_ar
        from raktar_mozgas
       where kod = new.szallitos_tetel_kod;

       new.forras_raktar_fifo_ar:=v_forras_raktar_fifo_ar;
       new.forras_raktar_fifo_ertek:=v_forras_raktar_fifo_ar * v_mennyiseg;

       new.cel_raktar_fifo_ar:=v_cel_raktar_fifo_ar;
       new.cel_raktar_fifo_ertek:=v_cel_raktar_fifo_ar * v_mennyiseg;       
    end if;
    
  -- Keszletet erinto mozgas
  else  
    perform fifo_tetel(new.tetel_kod);
  end if;
  
  return new;
end;'
  LANGUAGE 'plpgsql' VOLATILE;
