Delimiter //
/**
 * importation des MATCHINGCODES
 * 
 * Cette table correspond à la relation Lettrage / écriture, 
 * et donc à la table ENTRIES_MATCHCOD
 * 
 * 
 */
Drop Procedure if exists LOADER_CREATE_TABLE_MATCHINGCODES//

Create Procedure LOADER_CREATE_TABLE_MATCHINGCODES ()
Begin

    Drop Table If Exists LOADER_MATCHINGCODES;

    Create Table LOADER_MATCHINGCODES(

        -- champs pour le traitements de l'import
        LOADER_STATUS_ID_LOADER_STATUS Int Not Null,

        -- champ auto increment, initialisé avant chanque import
        ID_LOADER_MATCHINGCODES Int Unsigned Not Null Auto_increment,

        -- Pour trouver l'entry
        ACCOUNTS_REF Varchar(60) Not Null,
        ACCOUNTS_ID_ACCOUNTS Int Unsigned Null,
        ENTRIES_ACC_EXT_REF Varchar(45) Not Null,
        ID_ENTRIES Int Unsigned Null,
        MATCHINGCODES_ID_MATCHINGCODES Int Unsigned Null, -- en mode lettrage "persistance" id du lettrage existant

        ENTRIES_MATCHCOD_ORDER Smallint Null Default 0, -- Not null
        ENTRIES_MATCHCOD_CURRENT Smallint Null Default 1, -- Not null
        MATCHINGCODES_UNMATCH_FORCED Smallint Not Null Default 0,


		-- mapper MATCHINGCODES_CODE  ou MATCHINGCODES_ACCOUNTS_CODE en fonction 
		-- de la regle a appliquer
		-- pour retro compatibilité on tiendra d'abbord compte de MATCHINGCODES_CODE
        MATCHINGCODES_CODE Varchar(20) Null, -- le code lettrage ne tien pas compte du compte
											-- si le même code lettrage existe pour des ecritures appartenant 
											-- à des comptes différents ils seront lettrés ensemble quand même
											-- si ce champ est utilisé IL FAUT ACTIVER l'option 
											-- D'IMPORT "MTCHNG-IN-ENTTS" (lettrage inter-compte, intra entitié)
												
        MATCHINGCODES_ACCOUNTS_CODE Varchar(20) Null, -- issu du ticket suite #6259
											-- si le même code lettrage existe pour des ecritures appartenant 
											-- à des comptes différents ils ne seront pas lettrés ensemble
											-- si ce champ est utilisé IL FAUT ACTIVER l'option 
											-- D'IMPORT "MTCHNG-IN-ACCNT" (lettrage intra-compte) (valeur par défaut)
        MATCHINGCODES_DATE date Null,
        MATCHINGCODES_BATCH_NUM Int Null,

		-- ticket #6291 statue de lettrage forcé (indépandant de la balance)
		MATCHINGCODES_STATE_CODE Varchar(45) Null, -- code status "forcé" de letrrage
		MATCHINGCODE_STATE Int Unsigned Null , -- ici si on map directement l'id, permet de vérifier que l'id existe bien
		DF_MATCHINGCODE_STATE_ID_DF_MATCHINGCODE_STATE Int Unsigned Null , -- champ status issu de la normalisation

        -- contraintes et indexes
        primary key (ID_LOADER_MATCHINGCODES)
        , Index (LOADER_STATUS_ID_LOADER_STATUS)
        , Index (ACCOUNTS_REF)
        , Index (ACCOUNTS_ID_ACCOUNTS, ENTRIES_ACC_EXT_REF)
        , Index (ID_ENTRIES)
        , Index (MATCHINGCODES_CODE)
        , Index (MATCHINGCODES_ACCOUNTS_CODE)
        , Index (MATCHINGCODES_STATE_CODE)
        , Index (MATCHINGCODE_STATE)
        
    ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

End //

Delimiter ;
CALL LOADER_CREATE_TABLE_MATCHINGCODES();