EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP

PRINT "Association :":
INPUT W_Asso

PRINT "Priode (AAAAMM) :":
INPUT W_Periode

* EXECUTE 'SETPTR 0,,,,,1, "MODE=RAW",DEST \\SERVEURINF\MATRICEPSON,NOHEAD,NOFMT,EJECT,COPIES 1,BRIEF'
* PRINTER ON

W_RequeteContrat=""
W_RequeteMoul=""
W_CleAnc=""
W_DebutPeriode=ICONV("01/":W_Periode[5,2]:"/":W_Periode[1,4],"D4/")
W_FinPeriode=ICONV("01/":W_Periode[5,2]:"/":W_Periode[1,4],"D4/")+32
W_FinPeriode=OCONV(W_FinPeriode,"D4/")
W_FinPeriode=ICONV("01/":W_FinPeriode[5,2]:W_FinPeriode[7,4],"D4/")-1

EXECUTE 'SELECT FACTURAIDE AVEC @ID = "[':W_Asso:"M":W_Periode:']" PAR-DECR @ID'

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

W_FraisGestion=0
W_SansIncidence=0
W_FactSansIncidence=""
CompteErr=0
IF MSGCODE<1> # 209 THEN
   SELECT F.FACTURAIDE TO W_RequeteMoul

   W_Fini="FAUX"
   LOOP
      READNEXT W_Cle FROM W_RequeteMoul ELSE W_Fini="VRAI"
   WHILE W_Fini="FAUX" DO
    IF W_Cle[1,25] # W_CleAnc[1,25] THEN
      READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_Cle ELSE PRINT "facturaide"
      W_CountAidant=DCOUNT(ENR_FACTURAIDE<10>,CHAR(253))
      FOR i=1 TO W_CountAidant
         READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,ENR_FACTURAIDE<10,i> ELSE PRINT "civilaidant :":ENR_FACTURAIDE<10,i>
         ENR_FACTURAIDE<15,i>=ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
      NEXT i

      W_CountLigne=DCOUNT(ENR_FACTURAIDE<1>,CHAR(253))

      FOR i=1 TO W_CountLigne
         W_Ligne=ENR_FACTURAIDE<2,i>
         IF W_Ligne[1,15] = "SALAIRE VERSE A" THEN
            W_Salaire=0
            FOR j=1 TO W_CountAidant
               IF W_Ligne[17,99] = ENR_FACTURAIDE<15,j> THEN
                  EXECUTE 'SELECT CONTRAT AVEC @ID = "':ENR_FACTURAIDE<10,j>:']" AND AVEC 3 = "':W_Cle[1,5]:'" AND AVEC 7 <= "':W_FinPeriode:'" AND AVEC 8 >= "':W_DebutPeriode:'" OR ="" PAR-DECR @ID'
                  EXECUTE 'SAUVE-LISTE W_RequeteContrat'
                  EXECUTE "LISTE W_RequeteContrat" RETURNING MSGCODE2
                  W_Salaire=0
                  IF MSGCODE2<1> # 209 THEN
                     SELECT F.CONTRAT TO W_RequeteContrat
                     W_FiniCont="FAUX"
                     LOOP
                        READNEXT W_CleContrat FROM W_RequeteContrat ELSE W_FiniCont="VRAI"
                     WHILE W_FiniCont="FAUX" DO
                        W_ClePaie=W_CleContrat:W_Periode
                        READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_ClePaie THEN
                           W_Salaire=W_Salaire+ENR_DETAILCALCUL<21>
                        END
                     REPEAT
                  END
                  IF W_Salaire # ENR_FACTURAIDE<5,i> THEN
                     PRINT W_Cle:"   ":W_ClePaie
                     PRINT "W_Salaire :":W_Salaire:"        ":"Facture :":ENR_FACTURAIDE<5,i>
                     PRINT ""
                     DEBUG
                     CompteErr=CompteErr+1
                   END                         
                  j=99
               END
            NEXT j
         END ELSE
            IF W_Ligne[1,16] = "FRAIS DE GESTION" THEN
               W_FraisGestion=W_FraisGestion + ENR_FACTURAIDE<5,i>
            END
         END 
         IF ENR_FACTURAIDE<14,i> = "1" THEN
            W_SansIncidence=W_SansIncidence + ENR_FACTURAIDE<5,i>
            W_FactSansIncidence<-1>=W_Cle
         END
      NEXT i
      W_CleAnc=W_Cle
    END
   REPEAT

END

PRINT "CompteErr :":CompteErr
PRINT "W_FraisGestion :":W_FraisGestion
PRINT "W_SansIncidence :":W_SansIncidence
PRINT "W_FactSansIncidence :":W_FactSansIncidence

STOP

