Delimiter //
/**
 * Si le titre du contact est fourni dans le fichier d'importation :
 * - Rechercher le titre abrégé de l'environnement administratif (insensible à la casse).
 *   - Si trouve : l’initialiser au contact
 *   - Si ne trouve pas : warning « Titre abrégé à créer : [nom agrégé du titre recherché] »
 * 
 * @param int batchnum
 * @author Jean-François
 * @ticket #3779 #4128
 */ 
Drop Procedure if Exists LOADER_CONTACTS_NORMALIZE_MAP_TITLE_PROVIDED//
 
Create Procedure LOADER_CONTACTS_NORMALIZE_MAP_TITLE_PROVIDED (
    In batchnum int
)
Begin
 
    Set @idAdminParams = GET_LOADER_INFO('ID_ADMIN_PARAMS', batchnum);
    Set @idLng = GET_LOADER_INFO('ID_LANGUAGES', batchnum);
    
    UPDATE
        LOADER_CONTACTS C
        INNER JOIN LOADER_STATUS S
            ON S.ID_LOADER_STATUS = C.LOADER_STATUS_ID_LOADER_STATUS
        LEFT JOIN DF_TITLES T
            ON T.ADMIN_ID_ADMIN = @idAdminParams
            AND T.DF_LANGUAGES_ID_DF_LANGUAGES = @idLng
            AND UPPER(T.DF_TITLES_SHORT_TITLE) collate utf8_bin = UPPER(C.DF_TITLES_SHORT_TITLE) collate utf8_bin
    SET
        C.DF_TITLES_ID_DF_TITLES = T.ID_DF_TITLES
        , S.LOADER_STATUS_WARNCOUNT =
            (CASE WHEN T.ID_DF_TITLES IS NULL
                THEN S.LOADER_STATUS_WARNCOUNT + 1
                ELSE S.LOADER_STATUS_WARNCOUNT
            END)
        , S.LOADER_STATUS_WARNMSGS =
            (CASE WHEN T.ID_DF_TITLES IS NULL
                THEN LOADER_CONCAT_ERR(S.LOADER_STATUS_WARNMSGS, CONCAT('Titre abrégé à créer : ', C.DF_TITLES_SHORT_TITLE) ) 
                ELSE S.LOADER_STATUS_WARNMSGS
            END)

    WHERE 
        S.LOADER_STATUS_BATCH_NUM = batchnum
        AND Coalesce(C.DF_TITLES_SHORT_TITLE, '') != ''
    ;
    
End //
Delimiter ;