SUBROUTINE CONTMULTIETABL (RETURNVAL,W_Entree,W_Sortie)

W_Annee=W_Entree<1>
W_Asso=W_Entree<2>

W_Sortie=""
W_NbErreur=0

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","HISTORCUMUL" TO F.HISTORCUMUL ELSE STOP
OPEN "","HISTORCUMULETABL" TO F.HISTORCUMULETABL ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP

W_RequeteCumul=""

EXECUTE 'SELECT HISTORCUMUL AVEC 23  # "" AND AVEC EmployeurHistCum = "':W_Asso:'" AND AVEC PeriodeHistCum = "':W_Annee:'" PAR NomPrenomAidant'

EXECUTE 'SAUVE-LISTE W_RequeteCumul'
EXECUTE "LISTE W_RequeteCumul" RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN
   SELECT F.HISTORCUMUL TO W_RequeteCumul

   W_Fini="FAUX"
   LOOP
      READNEXT W_CleCumul FROM W_RequeteCumul ELSE W_Fini="VRAI"
   WHILE W_Fini="FAUX" DO
      READ ENR_HISTORCUMUL FROM F.HISTORCUMUL ,W_CleCumul THEN
         W_Cumul5=0
         W_Cumul6=0
         W_Cumul17=""

         W_NbRub=DCOUNT(ENR_HISTORCUMUL<17>,CHAR(253))
	   FOR i=1 TO W_NbRub
            W_Cumul17<1,i>=0
         NEXT i

         W_NbEtabl=DCOUNT(ENR_HISTORCUMUL<23>,CHAR(253))
	   FOR i=1 TO W_NbEtabl
            W_CleCumulEtabl=ENR_HISTORCUMUL<23,i>
            READ ENR_HISTORCUMULETABL FROM F.HISTORCUMULETABL ,W_CleCumulEtabl THEN
               W_Erreur="FAUX"

               W_Cumul5=W_Cumul5 + ENR_HISTORCUMULETABL<5>
               W_Cumul6=W_Cumul6 + ENR_HISTORCUMULETABL<6>

               W_NbRubEtabl=DCOUNT(ENR_HISTORCUMULETABL<17>,CHAR(253))
               iRub=1
        	   FOR iRub=1 TO W_NbRub
                  iRubEtabl=1
         	      FOR iRubEtabl=1 TO W_NbRubEtabl
                      IF ENR_HISTORCUMUL<15,iRub> = ENR_HISTORCUMULETABL<15,iRubEtabl> THEN
                         W_Cumul17<1,iRub>=W_Cumul17<1,iRub> + ENR_HISTORCUMULETABL<17,iRubEtabl>
                         ENR_HISTORCUMULETABL=DELETE(ENR_HISTORCUMULETABL,15,iRubEtabl)
                         ENR_HISTORCUMULETABL=DELETE(ENR_HISTORCUMULETABL,17,iRubEtabl)
                         W_NbRubEtabl=W_NbRubEtabl - 1
                         EXIT
                      END
                  NEXT iRubEtabl
          
               NEXT iRub
               IF W_NbRubEtabl > 0 THEN
                  * Erreur
	* Michael le 24/01/07 : lignes ci dessous inutiles : on peut avoir supprim une rub car intuile , donc mis les deux lignes ci dessous en commentaire... :
                  *W_Erreur="VRAI"
                  *EXIT
               END
            END
         NEXT i

         IF W_Erreur = "FAUX" THEN

    	      FOR iRub=1 TO W_NbRub
               IF W_Cumul17<1,iRub> # ENR_HISTORCUMUL<17,iRub> THEN
                  * Erreur

                  W_Erreur="VRAI"
                  EXIT
               END
	      NEXT iRub
         END

         * erreur
         IF W_Cumul5 # ENR_HISTORCUMUL<5> OR W_Cumul6 # ENR_HISTORCUMUL<6> OR W_Erreur="VRAI" THEN
            READ ENR_CIVILAIDANT FROM F.CIVILAIDANT ,W_CleCumul[1,5] THEN
               W_NbErreur=W_NbErreur + 1
               W_Sortie<W_NbErreur>=W_CleCumul[1,5]:"   ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
            END
         END

	END
   REPEAT

END

EXECUTE 'EFFACER-LISTE W_RequeteCumul'


RETURN
