**************************************************************
*Generation du fichier DetailPrestInv a partir de DetailPrest
*Programme chaine a partir d'un projet VB
*alain
**************************************************************
* Ouvertures des fichiers
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","ACCORD" TO F.ACCORD ELSE STOP
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","DEMANDACC" TO F.DEMANDACC ELSE STOP
OPEN "","DETAILPREST" TO F.DETAILPREST ELSE STOP
OPEN "","DETAILPRESTINV" TO F.DETAILPRESTINV ELSE STOP
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE STOP
OPEN "","FACTURORG" TO F.FACTURORG ELSE STOP
OPEN "","HRESATTENTE" TO F.HRESATTENTE ELSE STOP
OPEN "","HRESHISTOR" TO F.HRESHISTOR ELSE STOP
OPEN "","NUMEROFACT" TO F.NUMEROFACT ELSE STOP
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
OPEN "","PARAMINTEGROPT" TO F.PARAMINTEGROPT ELSE STOP
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE STOP
OPEN "","TABLES" TO F.TABLES ELSE STOP
OPEN "","TEMPFACTURAIDE" TO F.TEMPFACTURAIDE ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP
*********************************************************
* Recuperation des arguments

W_CodAssoc = ""
W_CboAnneeMois = ""

LOOP WHILE LEN(W_CodAssoc) # 3 
  PRINT "Saisissez le code de l'entit juridique"
  INPUT W_CodAssoc
REPEAT

PRINT "Saisissez la priode sous la forme AAAAMM"
INPUT W_CboAnneeMois

********************************************************************
* Prog Principal

   W_RequetePrest = ""
   W_RequeteRub = ""
   W_RequeteAct = ""
   W_RequeteAcc = ""

   EXECUTE 'VIDER-FICHIER DETAILPRESTINV'

   MOIS = W_CboAnneeMois[5,2]
   AN = W_CboAnneeMois[1,4]
   ANF = AN

   MOISDEB = MOIS
   MOISFIN = MOIS + 1	

   IF MOISDEB > 12 THEN
	MOISDEB = MOISDEB - 12
	AN = AN + 1
   END

   IF MOISFIN > 12 THEN
	MOISFIN = MOISFIN - 12
	ANF = ANF + 1
   END

   MOISDEB = MOISDEB "R(%2)"
   MOISFIN = MOISFIN "R(%2)"	

   W_DATEDEB = ICONV("01/":MOISDEB:"/":AN,"D4/")
   W_DATEFIN = ICONV("01/":MOISFIN:"/":ANF,"D4/")
   W_DATEFIN= W_DATEFIN - 1

   W_ENTETE = ""
   W_ENTETE<1> = SPACE(29):"DETAIL DES HEURES PRESTATAIRES PAR AIDES AVEC LISTE DES PRISES EN CHARGES"
   W_ENTETE<2> = SPACE(48):'ENTRE LE ':OCONV(W_DATEDEB,"D4/"):' ET LE ':OCONV(W_DATEFIN,"D4/")
   W_ENTETE<3> = '|Code|Nom prenom aide Organisme':SPACE(7):'|R|T|D.Accord|F.Accord|    Base      |Code |Nom-prenom aida|Hres N |Hres D |Hres F | Total |EXO|'
   W_ENTETE<4> = '|------------------------------------------------------------------------------------------------------------------------------------|'
   EXECUTE 'SSELECT ACTIVITES AVEC 0 = "':W_CodAssoc:']" AND AVEC 12 = "P"'
   EXECUTE 'SAUVE-LISTE W_RequeteAct'
   EXECUTE "LISTE W_RequeteAct" RETURNING MSGCODE
   IF MSGCODE<1>#209 THEN
      SELECT F.ACTIVITES TO W_RequeteAct
   END ELSE
	STOP
   END

   W_FiniAct = "FAUX"
   W_NbActivites = 0
   W_ListeActivites = ""

   LOOP
       READNEXT W_CleAct FROM W_RequeteAct ELSE W_FiniAct="VRAI"
   WHILE W_FiniAct="FAUX" DO
	W_NbActivites = W_NbActivites + 1
	W_ListeActivites<W_NbActivites> = W_CleAct
   REPEAT

   W_Activites = ""
   W_SectionAnal = ""

   IF W_NbActivites # 1 THEN
      FOR i=1 TO W_NbActivites
         W_Activites=REPLACE(W_Activites,i;W_ListeActivites<i>)
         READ ENR_ACTIVITES FROM F.ACTIVITES,W_Activites<i> ELSE PRINT "ACTIVITES 1"
         W_Activites<i,2>=ENR_ACTIVITES<2>
         j=1
         jTrouve="FAUX"
         LOOP
         WHILE W_SectionAnal<j> # "" AND jTrouve#"VRAI" DO
            IF W_SectionAnal<j,1>=ENR_ACTIVITES<2> THEN
               jTrouve="VRAI"
            END ELSE
               j=j+1
            END
         REPEAT
         IF jTrouve#"VRAI" THEN
            W_SectionAnal<j>=ENR_ACTIVITES<2>
            W_SectionAnal<j,2>=0
            W_SectionAnal<j,3>=W_Activites<i,1>
         END ELSE
            W_CountSectAnal=DCOUNT(W_SectionAnal<j,3>,CHAR(252))+1
            W_SectionAnal<j,3,W_CountSectAnal>=W_Activites<i,1>            
         END
      NEXT i
   END ELSE
      W_Activites=REPLACE(W_Activites,1;W_ListeActivites)
      READ ENR_ACTIVITES FROM F.ACTIVITES,W_Activites<1> ELSE PRINT "ACTIVITES 2"
      W_Activites<1,2>=ENR_ACTIVITES<2>
      W_SectionAnal<1>=ENR_ACTIVITES<2>
      W_SectionAnal<1,2>=0
      W_SectionAnal<1,3>=W_Activites<1,1>
   END

   * Requete Rubsaisie
   W_RienSelect="FAUX"
   GOSUB 150

   IF W_RienSelect="FAUX" THEN
     * Requete DetailPrest
     GOSUB 100

     * Gestion Requete
     GOSUB 110
   END
   
   EXECUTE 'EFFACER-LISTE W_RequeteRub'
   EXECUTE 'EFFACER-LISTE W_RequetePrest'

   EXECUTE 'SSELECT DETAILPRESTINV PAR NomAideInv PAR PrenomAideInv'
   EXECUTE 'SAUVE-LISTE W_RequetePrest'
   EXECUTE "LISTE W_RequetePrest" RETURNING MSGCODE
   IF MSGCODE<1>#209 THEN
      SELECT F.DETAILPRESTINV TO W_RequetePrest

	GOSUB 200

	GOSUB 500

   END


STOP

******************************************
* Requete sur DETAILPREST
******************************************
100
   EXECUTE 'SSELECT DETAILPREST AVEC AssoContratPrest = "':W_CodAssoc:'" AND AVEC @ID = "[':W_CboAnneeMois:'" BY.EXP 1'
   EXECUTE 'SAUVE-LISTE W_RequetePrest'
   EXECUTE "LISTE W_RequetePrest" RETURNING MSGCODE
   IF MSGCODE<1>#209 THEN
      SELECT F.DETAILPREST TO W_RequetePrest
   END

RETURN
*********************************************************************
* Generation du fichier DetailPrestInv
110 
    W_CleDetailPrestPrec=""
    W_Fini="FAUX"
    ENR_DETAILPREST=""
    ENR_DETAILPRESTINV=""
    W_CodeInvAv=""
    LOOP
       READNEXT W_Cle FROM W_RequetePrest ELSE W_Fini="VRAI"
       W_CleDetailPrest=FIELD(W_Cle,CHAR(253),1)
    WHILE W_Fini="FAUX" DO
       IF W_CleDetailPrest # W_CleDetailPrestPrec THEN
          READ ENR_DETAILPREST FROM F.DETAILPREST,W_CleDetailPrest ELSE PRINT "DETAILPREST 1"
       END
       W_PlaceMv=FIELD(W_Cle,CHAR(253),2)
       IF ENR_DETAILPREST<2,W_PlaceMv> # "" THEN
          IF ENR_DETAILPREST<3,W_PlaceMv> # 0 THEN
             * Teste si la rubrique est dim Jf
             W_Rub=ENR_DETAILPREST<2,W_PlaceMv>
             GOSUB 120
             * Recherche si l'activite est presente
             W_Act=ENR_DETAILPREST<4,W_PlaceMv>
             GOSUB 130
             IF W_CodeInvAv # ENR_DETAILPREST<1,W_PlaceMv> THEN
                IF W_CodeInvAv # "" THEN                 
                   WRITE ENR_DETAILPRESTINV ON F.DETAILPRESTINV,W_CodeInvAv:W_CodAssoc:W_CboAnneeMois
                   ENR_DETAILPRESTINV=""
                END
                W_CodeInvAv=ENR_DETAILPREST<1,W_PlaceMv>
                W_IndiceInv=0
             END
             W_IndiceInv=W_IndiceInv+1
             IF W_ResRub=4 THEN
                W_Insert=1
             END ELSE
                W_Insert=W_IndiceInv
             END
             IF W_ResAct#"FAUX" THEN
                ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,1,W_Insert;W_CleDetailPrest[1,8])
                ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,2,W_Insert;ENR_DETAILPREST<2,W_PlaceMv>)
                ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,3,W_Insert;ENR_DETAILPREST<3,W_PlaceMv>)
                ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,4,W_Insert;ENR_DETAILPREST<4,W_PlaceMv>)

                ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,5,W_Insert;"")
                ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,6,W_Insert;"")
                ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,7,W_Insert;"")
                ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,8,W_Insert;"")
		IF W_ResRub=4 THEN
		   ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,9,W_Insert;"1")
		END ELSE
		   ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,9,W_Insert;"2")
		END

             END
          END
       END ELSE
          W_TabMs=""
          j=1
          W_DimFer="FAUX"
          W_IndiceTab=0
          *FOR j=1 TO 4
          *   W_TabMs=REPLACE(W_TabMs,j,2;"0")
          *NEXT j
          LOOP
          WHILE ENR_DETAILPREST<10,W_PlaceMv,j>#"" DO
             * Teste si la rubrique est est dim Jf
             IF ENR_DETAILPREST<11,W_PlaceMv,j> # 0 THEN
                W_Rub=ENR_DETAILPREST<11,W_PlaceMv,j>
                GOSUB 120
                IF W_ResRub=4 THEN
                   W_DimFer="VRAI"
                END
                * Recherche si l'activite est presente
                W_Act=ENR_DETAILPREST<13,W_PlaceMv,j>
                GOSUB 130
                IF W_ResAct="VRAI" THEN
                   W_IndiceTab=W_IndiceTab+1
                   FOR k=1 TO 4
                      W_TabMs=REPLACE(W_TabMs,k,1,W_IndiceTab;ENR_DETAILPREST<k+9,W_PlaceMv,j>)
                   NEXT k
                END
             END
             j=j+1
          REPEAT
          IF W_TabMs#"" THEN
             W_Temp=ENR_DETAILPREST<1,W_PlaceMv>
             IF W_Temp#W_CodeInvAv THEN
                IF W_CodeInvAv#"" THEN
                   WRITE ENR_DETAILPRESTINV ON F.DETAILPRESTINV,W_CodeInvAv:W_CodAssoc:W_CboAnneeMois
                   ENR_DETAILPRESTINV=""
                END
                W_CodeInvAv=ENR_DETAILPREST<1,W_PlaceMv>
                W_IndiceInv=0
             END
             W_IndiceInv=W_IndiceInv+1
             IF W_DimFer="VRAI" THEN
                W_Insert=1
             END ELSE
                W_Insert=W_IndiceInv
             END
             * Copie le tableau tampon dans DetailPrestInv
             GOSUB 140
          END
       END
       W_CleDetailPrestPrec=W_CleDetailPrest
    REPEAT

    IF W_CodeInvAv # "" THEN
       WRITE ENR_DETAILPRESTINV ON F.DETAILPRESTINV,W_CodeInvAv:W_CodAssoc:W_CboAnneeMois
       ENR_DETAILPRESTINV=""
    END
    
RETURN

******************************************
120 * Teste si la rubrique est dim et Jf
   W_FiniRub="FAUX"
   W_ResRub=3
   LOOP
      READNEXT W_CleRub FROM W_RequeteRub ELSE W_FiniRub="VRAI"
   WHILE W_FiniRub#"VRAI" DO
      IF W_CleRub=W_Rub THEN
         W_ResRub=4
         W_FiniRub="VRAI"
      END
   REPEAT

   EXECUTE "LISTE W_RequeteRub"
   SELECT F.RUBSAISIE TO W_RequeteRub

RETURN
******************************************
130 * Recherche si l'activite est presente
   W_ResAct="FAUX"
   FOR iActPres=1 TO W_NbActivites
      IF W_Activites<iActPres,1>=W_Act THEN
         W_ResAct="VRAI"
         EXIT
      END
   NEXT iActPres
RETURN

******************************************************************
* Copie le tableau tampon dans DetailPrestInv
140
   ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,1,W_Insert;W_CleDetailPrest[1,8])

   ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,2,W_Insert;"")
   ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,3,W_Insert;"")
   ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,4,W_Insert;"")

   ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,5,W_Insert;W_TabMs<1,1,1>)
   ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,6,W_Insert;W_TabMs<2,1,1>)
   ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,7,W_Insert;W_TabMs<3,1,1>)
   ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,8,W_Insert;W_TabMs<4,1,1>)
   W_Rub=W_TabMs<2,1,1>
   GOSUB 120
   IF W_ResRub=4 THEN
      ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,9,W_Insert;"1")
   END ELSE
      ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,9,W_Insert;"2")
   END

   k=2
   LOOP
   WHILE W_TabMs<1,1,k>#"" DO
      ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,5,W_Insert,k;W_TabMs<1,1,k>)
      ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,6,W_Insert,k;W_TabMs<2,1,k>)
      ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,7,W_Insert,k;W_TabMs<3,1,k>)
      ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,8,W_Insert,k;W_TabMs<4,1,k>)
      W_Rub=W_TabMs<2,1,k>
      GOSUB 120
      IF W_ResRub=4 THEN
         ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,9,W_Insert,k;"1")
      END ELSE
         ENR_DETAILPRESTINV=INSERT(ENR_DETAILPRESTINV,9,W_Insert,k;"2")
      END
      k=k+1
   REPEAT

RETURN

********************************************************************
150 * Listage des rubriques dim Jf
   EXECUTE 'SSELECT RUBSAISIE AVEC 2 = "4" PAR 2'
   EXECUTE 'SAUVE-LISTE W_RequeteRub'
   EXECUTE "LISTE W_RequeteRub" RETURNING MSGCODE
   IF MSGCODE<1>=209 THEN
      W_RienSelect="VRAI"
   END ELSE
      SELECT F.RUBSAISIE TO W_RequeteRub
   END

RETURN

************************************
200 * Generation de l'edition

	W_Fini="FAUX"
	READ ENR_PARAMINTEGROPT FROM F.PARAMINTEGROPT,'1' ELSE ENR_PARAMINTEGROPT = ""
	ENR_TEMPO=""
	ENR_AIDANT=""
	ENR_DETAILPRESTINV=""
	ITEMPO=0
	IPAGE=0
	ILIGNE=0
	W_CodeAide=""
	W_CodeAideAnc=""
	W_AIDANT=""
	W_Rub=""
	W_Montant=0
	W_TotGenHN=0
	W_TotGenHD=0
	W_TotGenHF=0
	W_TotGen=0
*EXECUTE 'COMO ON TESTALAIN'
	LOOP
		READNEXT W_Cle FROM W_RequetePrest ELSE W_Fini="VRAI"
	WHILE W_Fini="FAUX" DO
		W_CodeAide = W_Cle[1,5]
		IF W_CodeAide # W_CodeAideAnc THEN
			IF W_CodeAideAnc # "" THEN
				GOSUB 400
			END
			IAIDANT=0
			W_ANCAIDANT=""
			ENR_AIDANT=""
			W_CodeAideAnc = W_CodeAide
		END

		READ ENR_DETAILPRESTINV FROM F.DETAILPRESTINV,W_Cle ELSE ENR_DETAILPRESTINV = ""

		IDET = 1

		LOOP
		WHILE ENR_DETAILPRESTINV<1,IDET> # "" DO
			W_AIDANT = ENR_DETAILPRESTINV<1,IDET>[1,5]
			IF ENR_DETAILPRESTINV<2,IDET> # "" THEN
				W_Rub = ENR_DETAILPRESTINV<2,IDET>
				W_Montant = ENR_DETAILPRESTINV<3,IDET>
				GOSUB 300
			END ELSE
				JDET = 1
				LOOP
				WHILE ENR_DETAILPRESTINV<6,IDET,JDET> # "" DO
					W_Rub=ENR_DETAILPRESTINV<6,IDET,JDET>
					W_Montant=ENR_DETAILPRESTINV<7,IDET,JDET>
					GOSUB 300
					JDET = JDET + 1
				REPEAT
			END
			IDET = IDET + 1
		REPEAT

	REPEAT

	IF W_CodeAideAnc # "" THEN
		GOSUB 400
	END

	ITEMPO = ITEMPO+1
	ILIGNE = ILIGNE+1
	IF W_TotGenHN = "0" THEN
		ENR_TEMPO<ITEMPO> = SPACE(82):'TOTAL GENERAL':SPACE(2):SPACE(8):' '
	END ELSE
		HRES = (W_TotGenHN/100)
		HRES = HRES "R2"
		HRES = HRES "R(#8)"
		ENR_TEMPO<ITEMPO> = SPACE(82):'TOTAL GENERAL':SPACE(2):HRES:' '
	END
	IF W_TotGenHD = "0" THEN
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(7):' '
	END ELSE
		HRES = (W_TotGenHD/100)
		HRES = HRES "R2"
		HRES = HRES "R(#7)"
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:HRES:' '
	END
	IF W_TotGenHF = "0" THEN
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(7):' '
	END ELSE
		HRES = (W_TotGenHF/100)
		HRES = HRES "R2"
		HRES = HRES "R(#7)"
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:HRES:' '
	END
	IF W_TotGen = "0" THEN
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(8):' '
	END ELSE
		HRES = (W_TotGen/100)
		HRES = HRES "R2"
		HRES = HRES "R(#8)"
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:HRES
	END

*	WRITE ENR_TEMPO ON F.TEMPO,'TESTALAIN'

*EXECUTE 'COMO OFF'

RETURN

******************************************************
300 *Affectation heure

IF W_AIDANT # W_ANCAIDANT THEN
	IAIDANT = IAIDANT + 1
	W_ANCAIDANT = W_AIDANT
END

ENR_AIDANT<IAIDANT,1> = W_AIDANT

IF W_Rub = ENR_PARAMINTEGROPT<2,1> THEN
	ENR_AIDANT<IAIDANT,2> = ENR_AIDANT<IAIDANT,2> + W_Montant
END ELSE
	IF W_Rub = ENR_PARAMINTEGROPT<2,2> THEN
		ENR_AIDANT<IAIDANT,3> = ENR_AIDANT<IAIDANT,3> + W_Montant
	END ELSE
		IF W_Rub = ENR_PARAMINTEGROPT<2,3> OR W_Rub = ENR_PARAMINTEGROPT<2,16> THEN
			ENR_AIDANT<IAIDANT,4> = ENR_AIDANT<IAIDANT,4> + W_Montant
		END
	END
END

RETURN

***************************
400 *Ecriture ligne edition

	EXECUTE 'SSELECT ACCORD AVEC 0 = "':W_CodeAideAnc:']" AND AVEC 18 = "" AND AVEC 5 <= "':W_DATEFIN:'" AND AVEC 6 => "':W_DATEDEB:'" OR = "" PAR-DECR TypeOrg PAR 8 PAR 5'
	EXECUTE 'SAUVE-LISTE W_RequeteAcc'
	EXECUTE "LISTE W_RequeteAcc" RETURNING MSGCODE
	W_NBACC=0
	W_CodAcc = ""
	IF MSGCODE<1>#209 THEN
		SELECT F.ACCORD TO W_RequeteAcc
		W_FinAcc = "FAUX"
		LOOP
			READNEXT W_CleAcc FROM W_RequeteAcc ELSE W_FinAcc="VRAI"
		WHILE W_FinAcc = "FAUX" DO
			W_NBACC=W_NBACC+1
			W_CodAcc<W_NBACC>=W_CleAcc
		REPEAT
	END ELSE
		W_RequeteAcc = ""
	END

	W_NBAIDANT=DCOUNT(EXTRACT(ENR_AIDANT,1),CHAR(253))

	IF ITEMPO = 0 OR (ILIGNE+W_NBACC+1) > 63 OR (ILIGNE+W_NBAIDANT+1) > 63 THEN
		IF ITEMPO # 0 THEN
			ITEMPO = ITEMPO + 1
			ENR_TEMPO<ITEMPO> = "STPAGE"
		END
		IPAGE = IPAGE + 1
		ENR_TEMPO<ITEMPO + 1> = SPACE(120):"PAGE : ":IPAGE
		ENR_TEMPO<ITEMPO + 2> = ""
		ENR_TEMPO<ITEMPO + 3> = W_ENTETE<1>
		ENR_TEMPO<ITEMPO + 4> = W_ENTETE<2>
		ENR_TEMPO<ITEMPO + 5> = ""
		ENR_TEMPO<ITEMPO + 6> = W_ENTETE<4>
		ENR_TEMPO<ITEMPO + 7> = W_ENTETE<3>
		ENR_TEMPO<ITEMPO + 8> = W_ENTETE<4>
		ITEMPO = ITEMPO + 8
		ILIGNE = 8		
	END

	IIMP=0
	W_TotAide=0
	W_TotHNAide=0
	W_TotHDAide=0
	W_TotHFAide=0
	READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CodeAideAnc ELSE ENR_CIVILAIDE = ""
	READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_CodeAideAnc ELSE ENR_ACTIVITESAIDE = ""
	W_NOM = ENR_CIVILAIDE<2>:' ':ENR_CIVILAIDE<3>
	W_NOM = W_NOM[1,15]
	IF ENR_ACTIVITESAIDE<5> = 1 THEN
		W_EXO = "OUI"
	END ELSE
		W_EXO = ""
	END

	LOOP
		IIMP = IIMP + 1
	WHILE ENR_AIDANT<IIMP,1> # "" OR W_CodAcc<IIMP> # "" DO
		ITEMPO = ITEMPO+1
		ILIGNE = ILIGNE+1
		IF IIMP = 1 THEN
			ENR_TEMPO<ITEMPO> = '|':W_CodeAideAnc:'|':W_NOM:SPACE(15-LEN(W_NOM)):'|'
		END ELSE
			ENR_TEMPO<ITEMPO> = '|':SPACE(5):'|':SPACE(15):'|'

		END
		IF W_CodAcc<IIMP> # "" THEN
			READ ENR_ACCORD FROM F.ACCORD,W_CodAcc<IIMP> ELSE ENR_ACCORD = ""
			READ ENR_ORGPRISECHG FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE ENR_ORGPRISECHG = ""
			ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:ENR_ORGPRISECHG<1>[1,15]:SPACE(15-LEN(ENR_ORGPRISECHG<1>[1,15])):'|':ENR_ACCORD<8>:'|':ENR_ORGPRISECHG<18>:'|':OCONV(ENR_ACCORD<5>,"D2/"):'|':OCONV(ENR_ACCORD<6>,"D2/"):'|'
			HRES = (ENR_ACCORD<9>/100)
			HRES = HRES "R2"
			HRES = HRES "R(#7)"
			IF ENR_ORGPRISECHG<19> = 3 THEN
				W_DROIT = HRES:'/ACCORD'
			END ELSE
				W_DROIT = HRES:'/MOIS'
			END
			W_DROIT = W_DROIT[1,14]
			ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:W_DROIT:SPACE(14-LEN(W_DROIT)):'|'
		END ELSE
			ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(15):'| | |':SPACE(8):'|':SPACE(8):'|':SPACE(14):'|'
		END
		IF ENR_AIDANT<IIMP,1> # "" THEN
			READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,ENR_AIDANT<IIMP,1> ELSE ENR_CIVILAIDANT = ""
			W_NOMAIDANT = ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>
			W_NOMAIDANT = W_NOMAIDANT[1,15]
			ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:ENR_AIDANT<IIMP,1>:'|':W_NOMAIDANT:SPACE(15-LEN(W_NOMAIDANT)):'|'
			IF ENR_AIDANT<IIMP,2> = "" OR ENR_AIDANT<IIMP,2> = "0" THEN
				ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(7):'|'
			END ELSE
				HRES = (ENR_AIDANT<IIMP,2>/100)
				HRES = HRES "R2"
				HRES = HRES "R(#7)"
				ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:HRES:'|'
			END
			IF ENR_AIDANT<IIMP,3> = "" OR ENR_AIDANT<IIMP,3> = "0" THEN
				ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(7):'|'
			END ELSE
				HRES = (ENR_AIDANT<IIMP,3>/100)
				HRES = HRES "R2"
				HRES = HRES "R(#7)"
				ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:HRES:'|'
			END
			IF ENR_AIDANT<IIMP,4> = "" OR ENR_AIDANT<IIMP,4> = "0" THEN
				ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(7):'|'
			END ELSE
				HRES = (ENR_AIDANT<IIMP,4>/100)
				HRES = HRES "R2"
				HRES = HRES "R(#7)"
				ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:HRES:'|'
			END
			W_TotHNAide=W_TotHNAide+ENR_AIDANT<IIMP,2>
			W_TotHDAide=W_TotHDAide+ENR_AIDANT<IIMP,3>
			W_TotHFAide=W_TotHFAide+ENR_AIDANT<IIMP,4>
			W_TotAide = W_TotAide + ENR_AIDANT<IIMP,2> + ENR_AIDANT<IIMP,3> + ENR_AIDANT<IIMP,4>
			IF (ENR_AIDANT<IIMP,2>+ENR_AIDANT<IIMP,3>+ENR_AIDANT<IIMP,4>) <= 0 THEN
				ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(7):'|'
			END ELSE
				HRES = ((ENR_AIDANT<IIMP,2>+ENR_AIDANT<IIMP,3>+ENR_AIDANT<IIMP,4>)/100)
				HRES = HRES "R2"
				HRES = HRES "R(#7)"
				ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:HRES:'|'
			END
			IF IIMP = 1 THEN
				IF W_EXO = "" THEN
					ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:'   |'
				END ELSE
					ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:W_EXO:'|'
				END
			END ELSE
				ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:'   |'
			END
		END ELSE
			ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(5):'|':SPACE(15):'|':SPACE(7):'|':SPACE(7):'|':SPACE(7):'|':SPACE(7):'|'
			IF IIMP = 1 THEN
				IF W_EXO = "" THEN
					ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:'   |'
				END ELSE
					ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:W_EXO:'|'
				END
			END ELSE
				ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:'   |'
			END
		END
	REPEAT

	ITEMPO = ITEMPO+1
	ILIGNE = ILIGNE+1
	IF W_TotHNAide = "0" THEN
		ENR_TEMPO<ITEMPO> = '|':SPACE(5):'|':SPACE(15):'|':SPACE(15):'| | |':SPACE(8):'|':SPACE(8):'|':SPACE(14):'|':SPACE(5):'|TOTAL':SPACE(10):'|':SPACE(7):'|'
	END ELSE
		HRES = (W_TotHNAide/100)
		HRES = HRES "R2"
		HRES = HRES "R(#7)"
		ENR_TEMPO<ITEMPO> = '|':SPACE(5):'|':SPACE(15):'|':SPACE(15):'| | |':SPACE(8):'|':SPACE(8):'|':SPACE(14):'|':SPACE(5):'|TOTAL':SPACE(10):'|':HRES:'|'
	END
	IF W_TotHDAide = "0" THEN
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(7):'|'
	END ELSE
		HRES = (W_TotHDAide/100)
		HRES = HRES "R2"
		HRES = HRES "R(#7)"
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:HRES:'|'
	END
	IF W_TotHFAide = "0" THEN
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(7):'|'
	END ELSE
		HRES = (W_TotHFAide/100)
		HRES = HRES "R2"
		HRES = HRES "R(#7)"
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:HRES:'|'
	END
	IF W_TotAide = "0" THEN
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:SPACE(7):'|   |'
	END ELSE
		HRES = (W_TotAide/100)
		HRES = HRES "R2"
		HRES = HRES "R(#7)"
		ENR_TEMPO<ITEMPO> = ENR_TEMPO<ITEMPO>:HRES:'|   |'
	END
	ITEMPO = ITEMPO+1
	ILIGNE = ILIGNE+1
	ENR_TEMPO<ITEMPO> = W_ENTETE<4>

	W_TotGenHN=W_TotGenHN+W_TotHNAide
	W_TotGenHD=W_TotGenHD+W_TotHDAide
	W_TotGenHF=W_TotGenHF+W_TotHFAide
	W_TotGen=W_TotGen+W_TotAide

RETURN

*****************************
500 * LANCEMENT DE L'EDITION

PRINTER ON

FOR IIMP = 1 TO ITEMPO 
	IF ENR_TEMPO<IIMP> = "STPAGE" THEN
		PAGE
	END ELSE
		PRINT ENR_TEMPO<IIMP>
	END
NEXT IIMP

PRINTER OFF

RETURN
