Delimiter //
/**
    In batchnum Int : num du lot, si 0 ou null traitement de l'ensembles des lignes
*/
Drop Procedure if exists LOADER_MATCHINGCODES_ENTRIES_DELETE//
Create Procedure LOADER_MATCHINGCODES_ENTRIES_DELETE (
    In batchnum int
)
Begin
		-- ticket #6291 mise à jour du status de lettrage par ecritures
		-- afin de pouvoir exclure ces ecriture de la mise à jour du status de lettrage, on utilise la table ENTRIES_COMPUTED_DATA
		-- purge de la table ENTRIES_COMPUTED_DATA des ecriture impacté par ce lettrage
		-- => les ecritures fournis dans le fichier de lettrage
		-- => les ecriture delettré
		-- la table LOADER_MATCHINGCODES_ENTRIES_TOREMOVE contien les données nécéssaires

		Delete
            ECD
        From
			LOADER_MATCHINGCODES_ENTRIES_TOREMOVE src
			Inner Join ENTRIES_COMPUTED_DATA ECD
-- 				On src.ID_ENTRIES_MATCHCOD = ECD.ENTRIES_ID_ENTRIES
				On src.ENTRIES_ID_ENTRIES = ECD.ENTRIES_ID_ENTRIES
				And ECD.ENTRIES_COMPUTED_DATA_KEY = 'FORCEDMATCHSTS'
        ;

		-- en enleve également le flag pour toutes les ecriture en cours de lettrage
		-- le flag sera re-créer si besoin à lors de la copie
		-- 
		Delete
            ECD
        From
            ENTRIES_COMPUTED_DATA ECD
			Inner Join LOADER_MATCHINGCODES LM
				On ECD.ENTRIES_ID_ENTRIES = LM.ID_ENTRIES
			Inner Join LOADER_STATUS LS
				On LM.LOADER_STATUS_ID_LOADER_STATUS = LS.ID_LOADER_STATUS
		Where
			LS.LOADER_STATUS_ERRCOUNT = 0
			And ECD.ENTRIES_COMPUTED_DATA_KEY = 'FORCEDMATCHSTS'
			And LS.LOADER_STATUS_BATCH_NUM = batchnum
        ;

		-- supression normal 
        Delete
            trgt
        From
            ENTRIES_MATCHCOD trgt
            Inner Join LOADER_MATCHINGCODES_ENTRIES_TOREMOVE src
                On trgt.ENTRIES_ID_ENTRIES = src.ENTRIES_ID_ENTRIES
        ;
		-- pour toutes les écritures délétrées
		-- on applique un code statue ouvert
		Set @OpenEntry = (Select ID_DF_MATCHINGCODE_STATE From DF_MATCHINGCODE_STATE Where DF_MATCHINGCODE_STATE_CODE = 'OPEN ENTRY');
		Update
			ENTRIES trgt
			Inner Join LOADER_MATCHINGCODES_ENTRIES_TOREMOVE src
                On trgt.ID_ENTRIES = src.ENTRIES_ID_ENTRIES
		Set 
			trgt.DF_MATCH_STAT_ID_DF_MATCH_STAT = @OpenEntry
		;

End //

Delimiter ;


