

-- =============================================
-- Author:      Gcarlo
-- Create date: 
-- Description: In base al database corrente passato ritorno la corretta libreria di AS400
-- che deve essere utilizzata
-- =============================================
CREATE FUNCTION [dbo].[f_getLibreriaAS400]
(
     @CurrentDB nVarchar(128)
    ,@Function  nVarchar(50)
)
RETURNS nvarchar(100)
AS
BEGIN
    -- FORSE MEGLIO USARE IL NOME DELLA STORED CHE LA RICHIAMA CON ... nella stored che la richiama
    -- DECLARE @StoredName AS NVARCHAR(256);
    -- SET @StoredName = OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID)
    -- Declare the return variable here
    DECLARE @As400File nvarchar(100)

    -- Valorizzo la corretta libreria in base al database passato
    SET @As400File = 
                   CASE    
                     -- impostazione tramite stored che richiama la function
                     WHEN @Function = 'BatchQueue.stp_registraMovMag' THEN    -- Registrazione Movimenti Magazzino
                        CASE 
                            -- S.POSSIDONIO
                            WHEN ( @CurrentDB = 'SP_GMW' )     THEN 'POSN_DATV3.???'
                            WHEN ( @CurrentDB = 'SP_GMWTest' ) THEN 'MAZZT_DTV3.MWMV230F'  -- TEST SP
                            -- TEKAL 
                            WHEN ( @CurrentDB = 'TK_GMW' )     THEN 'TEKA_DATV3.MWMV260F'
                            WHEN ( @CurrentDB = 'TK_GMWTest' ) THEN 'MAZZT_DTV3.MWMV230F'  -- TEST TEKAL
                            ELSE 'DB_NON_TROVATO'
                         END

                     WHEN @Function = 'dbo.stp_BORI_caricaDatiBolla' THEN        -- carica dati bolla
                       CASE
                            -- S.POSSIDONIO
                            WHEN ( @CurrentDB = 'SP_GMW' )     THEN 'POSN_AZI.BORI202J'
                            WHEN ( @CurrentDB = 'SP_GMWTest' ) THEN 'POSN_AZI.BORI202J'  -- TEST SP
                            -- TEKAL
                            WHEN ( @CurrentDB = 'TK_GMW' )           THEN 'TEKA_AZI.BORI202J'
                            WHEN ( @CurrentDB = 'TK_GMWTest' )       THEN 'TEKA_AZI.BORI202J'  -- TEST TEKAL
                            WHEN ( @CurrentDB = 'TK_GMWTestCopy' )   THEN 'TEKA_AZI.BORI202J'  -- TEST TEKAL
                            ELSE 'DB_NON_TROVATO'
                         END 

                     WHEN @Function = 'BatchQueue.stp_consumaMP' THEN        -- consuma UDC rapporti qualita
                       CASE
                            -- S.POSSIDONIO
                            WHEN ( @CurrentDB = 'SP_GMW' )     THEN 'POSN_DATV3.XOGIX00F'
                            WHEN ( @CurrentDB = 'SP_GMWTest' ) THEN 'MAZZT_DTV3.XOGIX00F'  -- TEST SP
                            -- TEKAL
                            WHEN ( @CurrentDB = 'TK_GMW' )           THEN 'TEKA_DATV3.XOGIX00F'
                            WHEN ( @CurrentDB = 'TK_GMWTest' )       THEN 'MAZZT_DTV3.XOGIX00F'  -- TEST TEKAL
                            WHEN ( @CurrentDB = 'TK_GMWTestCopy' )   THEN 'MAZZT_DTV3.XOGIX00F'  -- TEST TEKAL
                            ELSE 'DB_NON_TROVATO'
                         END

                     WHEN @Function = 'BatchQueue.stp_batch_RapQual_S01'  -- legge cartellini dei rapporti qualita x caricamento
                       OR @Function = 'As400.stp_SelectRappQualita'       -- legge cartellini di un rapporto qualita
                     THEN        
                       CASE
                            -- S.POSSIDONIO
                            WHEN ( @CurrentDB = 'SP_GMW' )     THEN 'POSN_DATV3.XOGIX00F'
                            WHEN ( @CurrentDB = 'SP_GMWTest' ) THEN 'POSN_DATV3.XOGIX00F'  -- TEST SP
                            -- TEKAL 
                            WHEN ( @CurrentDB = 'TK_GMW' )           THEN 'TEKA_DATV3.XOGIX00F'
                            WHEN ( @CurrentDB = 'TK_GMWTest' )       THEN 'TEKA_DATV3.XOGIX00F'  -- TEST TEKAL
                            WHEN ( @CurrentDB = 'TK_GMWTestCopy' )   THEN 'TEKA_DATV3.XOGIX00F'  -- TEST TEKAL
                            ELSE 'DB_NON_TROVATO'
                         END 

                     WHEN @Function = 'XOGIX' THEN        -- NON USATO
                       CASE
                            -- S.POSSIDONIO
                            WHEN ( @CurrentDB = 'SP_GMW' )     THEN 'POSN_DATV3.XOGIX00F'
                            WHEN ( @CurrentDB = 'SP_GMWTest' ) THEN 'MAZZT_DTV3.XOGIX00F'  -- TEST SP
                            -- TEKAL 
                            WHEN ( @CurrentDB = 'TK_GMW' )     THEN 'TEKA_DATV3.XOGIX00F'
                            WHEN ( @CurrentDB = 'TK_GMWTest' ) THEN 'MAZZT_DTV3.XOGIX00F'  -- TEST TEKAL
                            ELSE 'DB_NON_TROVATO'
                         END

                     ELSE 'STORED_NON_TROVATA'
                   END

    -- Return the result of the function
    RETURN @As400File

END

