CREATE FUNCTION [PLANTA_F_CALC_PERIOD_FACTOR]
( 
   @p_einh_tag NUMERIC(8, 2),
   @p_berechnung NUMERIC(8, 2) = 0,
   @p_wert       NUMERIC(8, 2) = 0, 
   @p_einheit    VARCHAR(2) = 'h', 
   @p_faktor_be  NUMERIC(8, 2) = 1
)
RETURNS NUMERIC(8, 2)
AS 
BEGIN		   
	DECLARE
         @v_result       NUMERIC(8, 2),
         @wert_std       NUMERIC(8, 2),
         @berechnungstyp NUMERIC(8, 2),
         -- Default Values, falls Parameter als NULL geliefert werden
         @einh_tag       NUMERIC(8, 2)      = 8,
         @berechnung     NUMERIC(1)   = 0,
         @wert           NUMERIC(8,2) = 0,
         @einheit        VARCHAR(2)   = 'h',
         @faktor_be      NUMERIC(8,2) = 1
	
    -- Default Values überschreiben, falls Parameter Werte geliefert wurden
    if @p_einh_tag is not null 
    begin 
        set @einh_tag = @p_einh_tag;
    end
    
    if @p_berechnung is not null
    begin
        set @berechnung = @p_berechnung;
    end
        
    if @p_wert is not null
    begin
        set @wert = @p_wert;
    end
    
    if @p_einheit is not null
    begin
        set @einheit = @p_einheit;
    end
    
    if @p_faktor_be is not null
    begin
        set @faktor_be = @p_faktor_be;
    end
    
    --------------------------------------------
    
    if @einheit = 'h' or @einheit = 'T'
    begin
        set @wert_std = @wert * @faktor_be;
    end
    else
    begin
        set @wert_std = @wert / 100 * @einh_tag;
    end
    
    if @berechnung = 0
    begin
        set @berechnungstyp = 1;
    end
    else
    begin
        set @berechnungstyp = -1;
    end
    
    set @v_result = (@wert_std * @berechnungstyp)
    
	RETURN @v_result

END;