********************************************
* TRAITEMENT DES PRELEVEMENTS VIA PICK     *
* SUITE AUX PLANTAGES MEMOIRES...          *
* RECUPERATION ET CONVERSION DES FONCTIONS *
* DU PROG ORIGINAL SOUS VB                 *
*                       	  	           *
* JEROME		      		  MAI     2000 *
* MAJUSCULE                   JUILLET 2000 *
* FAUX NUM EMETTEUR PRELEV    JUILLET 2000 *
* REVISION AJOUTPVT           AOUT    2000 *
* SUPP ERREUR SUB 600         OCTOBRE 2000 *
* STEPHANE                                 *
*   -> INTEGRATION CODE PRELEV (08 OU 85)  *
*                             JUILLET 2001 *
*                                          *
********************************************

************
* FICHIERS *
************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","PRELEVEMENT" TO F.PRELEVEMENT ELSE STOP
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE STOP
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","AJOUTPVT" TO F.AJOUTPVT ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE STOP
OPEN "","PERIODESPAIE" TO F.PERIODESPAIE ELSE STOP

******************************
* Rcupration des arguments *
******************************
PROCREAD ARGUMENTS ELSE PRINT "PROCREAD"

W_REQUETEFACTURACTIVITE=FIELD(ARGUMENTS,"|",2)
W_REQUETEFACTURAIDE=FIELD(ARGUMENTS,"|",3)
W_PERIODE=FIELD(ARGUMENTS,"|",4)
W_TYPACT=FIELD(ARGUMENTS,"|",5)
W_CODASSOC=FIELD(ARGUMENTS,"|",6)
W_CAC=FIELD(ARGUMENTS,"|",7)
*---Modifs Matthieu, le 06 04 2009
*W_DATEPREL=FIELD(ARGUMENTS,"|",8)
*W_CODEPREL=FIELD(ARGUMENTS,"|",9)
*---Fin Modifs
W_CODEPREL=FIELD(ARGUMENTS,"|",8)


****************************
* Procdures               *
****************************
*   100  -->  DESTINATAIRE
*   200  -->  REMPLIR TABLEAU LISTAGE
*   300  -->  EMETTEUR
*   400  -->  REQUETE AJOUT PVT RESTANT
*   500  -->  DESTINATAIRE RESTANT
*   600  -->  PRELEVEMENT SUPP
*   700  -->  SELECT APURATION
*   800  -->  RECHERCHE CODE
*   900  -->  BOUCLE RECURSIVE
*  1000  -->  TRAITEMENT DES FACTURAIDE
*  1100  -->  MAJ W_REQUETEACTIVITE
*  1200  -->  MISE A 0 ATT 2 DE AJOUTPVT DE LA PERIODE
*  1300  -->  TRAITEMENT EVENTUEL AJOUTPVT SANS AUCUNE FACTURAIDE

****************************
* Initialisation           *
****************************
W_REQUETEAJOUT = ""
W_REQAJOUTPVT = ""
W_REQUETEPREL = ""
W_RequeteAct = ""
W_REQUETEPVT = ""
W_RequeteFacturAide = ""
W_AjoutPvt = ""

W_DATEPREL = OCONV(DATE(),"D4/")


    READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE, "1" ELSE ENR_CONSTANTESPAIE = ""
    READ ENR_PERIODESPAIE FROM F.PERIODESPAIE,"1" ELSE ENR_PERIODESPAIE = ""
    W_DateDetail = "01/":W_PERIODE[5,2]:"/":W_PERIODE[1,4]
    W_DateDetail=ICONV(W_DateDetail,"D4/")
    IF W_DateDetail < ENR_CONSTANTESPAIE<9> THEN
	IF ENR_CONSTANTESPAIE<9> = 12420 AND ENR_PERIODESPAIE<1> = "200112" THEN
		W_Monnaie = "E"
	END ELSE
		W_Monnaie = "F"
	END
    END ELSE
	W_Monnaie = "E"
    END

    W_RequeteActSelect=""
    ENR_PRELEVEMENT=""
    ENR_TEMPO=""

    READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CODASSOC ELSE STOP

    * MAJ REQUETE ACTIVITE
    GOSUB 1100
    * SUPPRESSION VIEUX PRELEVEMENT
    GOSUB 700
    * VIDAGE ATT 2 SUR PERIODE
	*---Modifs Matthieu, le 06 04 2009
    * GOSUB 1200
	*---Fin Modifs

    EXECUTE W_REQUETEFACTURAIDE
    EXECUTE 'SAUVE-LISTE W_RequeteFacturAide'
    EXECUTE "LISTE W_RequeteFacturAide" RETURNING MSGCODE	
 
    IF MSGCODE<1>#209 THEN

		SELECT F.FACTURAIDE TO W_RequeteFacturAide
		GOSUB 1000

		*-- Modifications Matthieu - Le 07/04/2009
		*-- chancier
		
		* Total
		*ENR_PRELEVEMENT<W_NbrPrelevements+1> = "08":W_CODEPREL:SPACE(8):W_NumEmet:SPACE(84):W_CumulTotal "R%16":SPACE(42)
		*WRITE ENR_PRELEVEMENT ON F.PRELEVEMENT,W_CodeFichier
		*WRITE ENR_TEMPO ON F.TEMPO,"PRELEVEMENT"

		*ENR_TEMPO=""
		*ENR_TEMPO<1>=W_NbrPrelevements
		*ENR_TEMPO<2>=W_CumulTotal
		*ENR_TEMPO<3>=W_CodeFichier
		*WRITE ENR_TEMPO ON F.TEMPO,"PRELEV"

		*-- Fin Modifications Matthieu
		
    END ELSE

		GOSUB 1300

    END

STOP


****************
* DESTINATAIRE *
****************
100
    READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_CLEPRINC ELSE STOP  
    W_Code = W_CLEPRINC[1,5]
            
    * Destinataire
    READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_Code ELSE STOP

    READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_Code THEN

        IF LEN (ENR_ELTSFACTAIDE<18>) = 5 THEN
            W_CodBanq = ENR_ELTSFACTAIDE<18>
        END ELSE
            W_CodBanq = "00000"
        END
        
        IF LEN (ENR_ELTSFACTAIDE<19>) = 5 THEN
            W_CodGuichet = ENR_ELTSFACTAIDE<19>
        END ELSE
            W_CodGuichet = "00000"
        END
        
        IF LEN (ENR_ELTSFACTAIDE<20>) = 11 THEN
            W_NoCpte = ENR_ELTSFACTAIDE<20>
        END ELSE
            W_NoCpte = "00000000000"
        END

    END ELSE

        W_CodBanq = "00000"
        W_CodGuichet = "00000"
        W_NoCpte = "00000000000"

    END

    W_LibelleDest = "RELEVE ":W_CLEPRINC[16,10]

    W_Montant = 0
    W_Count = DCOUNT(ENR_FACTURAIDE<5>,CHAR(253))

    FOR ICOMPT = 1 TO W_Count
        W_Montant = W_Montant + ENR_FACTURAIDE<5,ICOMPT>
    NEXT ICOMPT

    W_Montant = W_Montant + ENR_FACTURAIDE<9>

    IF W_Montant < 0 THEN W_Montant = 0

    IF W_AjoutPvt = 0 THEN
     	  GOSUB 600
    END ELSE
	  W_Montant=W_Montant+W_AjoutPvt
	  IF W_Montant < 0 THEN 
		W_AjoutPvt=W_Montant
	  END ELSE
		W_AjoutPvt=0
	  END
    END

    IF W_Montant > 0 THEN
	  IF ENR_CONSTANTESPAIE<9> = 12420 AND ENR_PERIODESPAIE<1> = "200112" THEN
		W_Montant = W_Montant / (6.55957)
		W_Montant = INT(W_Montant + (1/2))
	  END
        W_Mont = W_Montant
        * indice
        W_NbrPrelevements = W_NbrPrelevements + 1

	  **** MAJ 03/08/2004 (DA 301-01) ****
	  W_NomPrenom = TRIM(ENR_ELTSFACTAIDE<16>)
	  IF W_NomPrenom = "" THEN
		W_NomPrenom = ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
	  END
        ENR_PRELEVEMENT<W_NbrPrelevements> = "06":W_CODEPREL:SPACE(8):W_NumEmet:SPACE(7):W_CLEPRINC[1,5]:(W_NomPrenom)[1,24] "L#24":(ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)[1,24] "L#24":SPACE(8):W_CodGuichet:W_NoCpte:W_Mont "R%16":W_LibelleDest "L#31":W_CodBanq:SPACE(6)
    
    END ELSE

        W_Montant = 0

    END

RETURN


***************************
* REMPLIR TABLEAU LISTAGE *
***************************
200
    W_POSITION=W_POSITION+1
    * Civilaidant
    ENR_TEMPO<W_POSITION,1> = W_CODEAID "L#5":SPACE(1):(ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)[1,25] "L#25"
    
    * Banque
    ENR_TEMPO<W_POSITION,1>=ENR_TEMPO<W_POSITION,1>:" ":ENR_ELTSFACTAIDE<17>[1,24] "L#25"
    
    * Donnees sur le compte
    ENR_TEMPO<W_POSITION,1>=ENR_TEMPO<W_POSITION,1>:ENR_ELTSFACTAIDE<16>[1,24] "L#25"
    ENR_TEMPO<W_POSITION,1>=ENR_TEMPO<W_POSITION,1>:" ":W_CodBanq:"  ":W_CodGuichet:"   ":W_NoCpte
    ENR_TEMPO<W_POSITION,1>=ENR_TEMPO<W_POSITION,1>:ENR_ELTSFACTAIDE<21> "L%2"
    
    * Montant  payer
    ENR_TEMPO<W_POSITION,1>=ENR_TEMPO<W_POSITION,1>:" ":W_Montant "R#15"
	
	*-- Modifications Matthieu - Le 08/04/2009
	ENR_TEMPO<W_POSITION,2> = W_SAUVDATE
	*-- Fin Modifications

RETURN

************
* EMETTEUR *
************
300

    GOSUB 800
    ENR_PRELEVEMENT = ""
   ***********************************************
   * MAJ 02/01/02 - MICHAEL
   ***********************************************
   W_IndAct = 0
   LOOP
	    W_IndAct = W_IndAct + 1
   WHILE W_RequeteActSelect<W_IndAct, 8> # W_TYPACT AND W_RequeteActSelect<W_IndAct,1> # ""  
   REPEAT
    IF W_RequeteActSelect<W_IndAct, 3> = "" THEN

        IF LEN(ENR_ASSOCIATION<22>) = 6 THEN
            W_NumEmet = ENR_ASSOCIATION<22>
        END ELSE
            W_NumEmet = "000000"
        END

        IF LEN(ENR_ASSOCIATION<18>) = 5 THEN
            W_CodeGuichet = ENR_ASSOCIATION<18>
        END ELSE
            W_CodeGuichet = "00000"
        END

        IF LEN(ENR_ASSOCIATION<19>) = 11 THEN
            W_NumCompte = ENR_ASSOCIATION<19>
        END ELSE
            W_NumCompte = "00000000000"
        END

        IF LEN(ENR_ASSOCIATION<17>) = 5 THEN
            W_CodeEtabli = ENR_ASSOCIATION<17>
        END ELSE
            W_CodeEtabli = "00000"
        END
        
    END ELSE

        IF LEN(W_RequeteActSelect<W_IndAct,7>) = 6 THEN
            W_NumEmet = W_RequeteActSelect<W_IndAct,7>
        END ELSE
            W_NumEmet = "000000"
        END

        IF LEN(W_RequeteActSelect<W_IndAct,4>) = 5 THEN
            W_CodeGuichet = W_RequeteActSelect<W_IndAct,4>
        END ELSE
            W_CodeGuichet = "00000"
        END

        IF LEN(W_RequeteActSelect<W_IndAct,5>) = 11 THEN
            W_NumCompte = W_RequeteActSelect<W_IndAct,5>
       END ELSE
            W_NumCompte = "00000000000"
        END

        IF LEN(W_RequeteActSelect<W_IndAct,3>) = 5 THEN
            W_CodeEtabli = W_RequeteActSelect<W_IndAct,3>
        END ELSE
            W_CodeEtabli = "00000"
        END

    END
	
    *Emetteur
    W_Date=W_DATEPREL[1,2]:W_DATEPREL[4,2]:W_DATEPREL[10,1]

    ENR_PRELEVEMENT<1> = "03":W_CODEPREL:SPACE(8):W_NumEmet:SPACE(7):W_Date:ENR_ASSOCIATION<1>[1,24] "L#24":SPACE(26):W_Monnaie:SPACE(5):W_CodeGuichet:W_NumCompte:SPACE(47):W_CodeEtabli:SPACE(6)
    W_NbrPrelevements = 1

RETURN

*****************************
* REQUETE AJOUT PVT RESTANT *
*****************************
400

    EXECUTE 'SSELECT AJOUTPVT AVEC 2 <> "':"1":'" AND AVEC @ID = "':"[":W_CODASSOC:W_TYPACT:W_PERIODE:'"'
    EXECUTE 'SAUVE-LISTE W_REQUETEAJOUT'
    EXECUTE "LISTE W_REQUETEAJOUT" RETURNING MSGCODE	
 
    IF MSGCODE<1>#209 THEN

	SELECT F.AJOUTPVT TO W_REQUETEAJOUT

	W_FINIAJOUT="FAUX"
	LOOP
		READNEXT W_CLEAJOUT FROM W_REQUETEAJOUT ELSE W_FINIAJOUT="VRAI"
	WHILE W_FINIAJOUT="FAUX" DO

		W_Code = W_CLEAJOUT

		GOSUB 500
            	W_CumulTotal = W_CumulTotal + W_Montant

		IF W_CAC=1 THEN
			W_CODEAID = W_Code[1,5]
			GOSUB 200
		END

	REPEAT

    END

RETURN

************************
* DESTINATAIRE RESTANT *
************************
500
    READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_Code[1,5] ELSE PRINT "CIVILAIDE"
    READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_Code[1,5] ELSE PRINT "ELTSFACTAIDE"
    READ ENR_AJOUTPVT FROM F.AJOUTPVT,W_Code ELSE PRINT "AJOUTPVT"
	        
    IF LEN(ENR_ELTSFACTAIDE<18>) = 5 THEN
        W_CodBanq = ENR_ELTSFACTAIDE<18>
    END ELSE
        W_CodBanq = "00000"
    END
    
    IF LEN(ENR_ELTSFACTAIDE<19>) = 5 THEN
        W_CodGuichet = ENR_ELTSFACTAIDE<19>
    END ELSE
        W_CodGuichet = "00000"
    END
    
    IF LEN(ENR_ELTSFACTAIDE<20>) = 11 THEN
        W_NoCpte = ENR_ELTSFACTAIDE<20>
    END ELSE
        W_NoCpte = "00000000000"
    END
    
    W_LibelleDest = "RELEVE ":ENR_ASSOCIATION<1>
    W_Montant = ENR_AJOUTPVT<1>

    ENR_AJOUTPVT<2> = 1
    WRITE ENR_AJOUTPVT TO F.AJOUTPVT,W_Code
   
    IF W_Montant > 0 THEN
	  IF ENR_CONSTANTESPAIE<9> = 12420 AND ENR_PERIODESPAIE<1> = "200112" THEN
		W_Montant = W_Montant / (6.55957)
		W_Montant = INT(W_Montant + (1/2))
	  END
	    *indice
	    W_NbrPrelevements = W_NbrPrelevements + 1
	*    ENR_PRELEVEMENT<W_NbrPrelevements> = "06":W_CODEPREL:SPACE(8):W_NumEmet:SPACE(7):ENR_CIVILAIDE<0>:(ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)[1,24]:ENR_ELTSFACTAIDE<2>[1,20]:SPACE(12):W_CodGuichet:W_NoCpte:W_Montant "R%16" :W_LibelleDest "L#31":W_CodBanq:SPACE(6)
	    ENR_PRELEVEMENT<W_NbrPrelevements> = "06":W_CODEPREL:SPACE(8):W_NumEmet:SPACE(7):W_Code[1,5]:(ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>)[1,24] "L#24":ENR_ELTSFACTAIDE<2>[1,20] "L#20":SPACE(12):W_CodGuichet:W_NoCpte:W_Montant "R%16" :W_LibelleDest "L#31":W_CodBanq:SPACE(6)
    END ELSE
	    W_Montant = 0
    END

RETURN

********************
* PRELEVEMENT SUPP *
********************
600
    
    READ ENR_AJOUTPVT FROM F.AJOUTPVT,W_CLEPRINC[1,5]:W_CODASSOC:W_TYPACT:W_PERIODE THEN
	IF ENR_AJOUTPVT<2> # 1 THEN
        W_Montant = W_Montant + ENR_AJOUTPVT<1>
	  IF W_Montant < 0 THEN
		W_AjoutPvt = W_Montant
	  END
        ENR_AJOUTPVT<2> = 1
        WRITE ENR_AJOUTPVT TO F.AJOUTPVT,W_CLEPRINC[1,5]:W_CODASSOC:W_TYPACT:W_PERIODE
      END
*   END ELSE
*PRINT*"AJOUTPVT"
    END

RETURN

********************
* SELECT APURATION *
********************
700
    W_Date=OCONV(@DATE,"D4/")
    W_Date=W_Date[7,4]:W_Date[4,2]
    W_Mois=(W_Date[5,2] - 2) "R%2"

    IF W_Mois="00" THEN
	W_Date=(W_Date[1,4]-1):"12"
    END ELSE
	IF W_Mois="99" THEN
		W_Date=(W_Date[1,4]-1):"11"
	END ELSE
		W_Date=W_Date[1,4]:W_Mois
	END
    END

    EXECUTE 'SSELECT PRELEVEMENT AVEC @ID < "':W_Date:"]":'"'
    EXECUTE 'SAUVE-LISTE W_REQUETEPREL'
    EXECUTE "LISTE W_REQUETEPREL" RETURNING MSGCODE	
 
    IF MSGCODE<1>#209 THEN

	SELECT F.PRELEVEMENT TO W_REQUETEPREL

	W_FINIPREL="FAUX"
	LOOP
		READNEXT W_CLEPREL FROM W_REQUETEPREL ELSE W_FINIPREL="VRAI"
	WHILE W_FINIPREL="FAUX" DO
		DELETE F.PRELEVEMENT,W_CLEPREL
	REPEAT

    END

RETURN


******************
* RECHERCHE CODE *
******************
800
    *W_DateRec = OCONV(@DATE,"D4/")

    W_DateRec=W_DATEPREL[7,4]:W_DATEPREL[4,2]:W_DATEPREL[1,2]
    W_CodeFichier = W_DateRec:W_CODASSOC

    RechercheCode = W_CodeFichier:"1"
    GOSUB 900
    W_CodeFichier=RechercheCode

RETURN

***********************
* BOUCLE DE RECHERCHE *
***********************
900
    READ ENR_PRELEVEMENT FROM F.PRELEVEMENT,RechercheCode THEN
    	RechercheCode = RechercheCode + 1
        GOSUB 900
    END

RETURN


************************
* TRAITEMENT PRINCIPAL *
************************
1000

	*-- Modifications Matthieu - Le 07/04/2009
	*-- chancier

	W_FINIPRINC = "FAUX"
	ENR_TEMPO = ""
	ENR_TEMPO2 = ""
	W_SAUVDATE = ""
	W_CLEANC = ""
	W_POSITION = 0
	
	LOOP
	
		READNEXT W_CLEPRINC FROM W_RequeteFacturAide ELSE W_FINIPRINC = "VRAI"
		
	WHILE W_FINIPRINC = "FAUX" DO
	
		READ ENR_FACTURAIDE FROM F.FACTURAIDE, W_CLEPRINC ELSE PRINT "ERREUR LECTURE FACTURAIDE"
		
		IF ENR_FACTURAIDE<12> # W_SAUVDATE THEN
			IF W_CLEANC # "" THEN
				ENR_PRELEVEMENT<-1> = "08":W_CODEPREL:SPACE(8):W_NumEmet:SPACE(84):W_CumulTotal "R%16":SPACE(42)
				WRITE ENR_PRELEVEMENT ON F.PRELEVEMENT, W_CodeFichier
				
				ENR_TEMPO2<1,-1> = W_NbrPrelevements
				ENR_TEMPO2<2,-1> = W_CumulTotal
				ENR_TEMPO2<3,-1> = W_CodeFichier
				ENR_TEMPO2<4,-1> = OCONV(W_SAUVDATE,"D4/")
			END
			W_CumulTotal = 0
			W_NbrPrelevements = 0
			W_Cumul = 0
			W_SAUVDATE = ENR_FACTURAIDE<12>
			W_DATEPREL = OCONV(ENR_FACTURAIDE<12>,"D4/")
			GOSUB 300
		END
		
		IF W_CLEPRINC[1,25] # W_CLEANC[1,25] THEN
		
			IF W_CLEPRINC[1,5] # W_CLEANC[1,5] THEN
				W_AjoutPvt = 0
			END
			
			*-- DESTINATAIRE
			GOSUB 100
			
			W_CumulTotal = W_CumulTotal + W_Montant
			
			IF W_CAC = 1 AND W_Montant > 0 THEN
				W_CODEAID = W_CLEPRINC[1,5]
				GOSUB 200
			END
		
		END
		
		*-- On marque la facture comme traite
		ENR_FACTURAIDE<17> = "O"
		WRITE ENR_FACTURAIDE TO F.FACTURAIDE, W_CLEPRINC
		
		W_CLEANC = W_CLEPRINC
		
	REPEAT

	*-- On fait les AJOUTPVT restants
	GOSUB 400

	ENR_PRELEVEMENT<-1> = "08":W_CODEPREL:SPACE(8):W_NumEmet:SPACE(84):W_CumulTotal "R%16":SPACE(42)
	WRITE ENR_PRELEVEMENT ON F.PRELEVEMENT, W_CodeFichier
	
	ENR_TEMPO2<1,-1> = W_NbrPrelevements
	ENR_TEMPO2<2,-1> = W_CumulTotal
	ENR_TEMPO2<3,-1> = W_CodeFichier
	ENR_TEMPO2<4,-1> = OCONV(W_SAUVDATE,"D4/")
	
	WRITE ENR_TEMPO ON F.TEMPO, "PRELEVEMENT"
	WRITE ENR_TEMPO2 ON F.TEMPO, "PRELEV"
		
RETURN


******************************
* MAJ DE LA REQUETE ACTIVITE *
******************************
1100
    EXECUTE W_REQUETEFACTURACTIVITE
    EXECUTE 'SAUVE-LISTE W_RequeteAct'
    EXECUTE "LISTE W_RequeteAct" RETURNING MSGCODE	
 
    IF MSGCODE<1>#209 THEN
	IPOSITION=0
	SELECT F.ACTIVITES TO W_RequeteAct

	W_FINIACTIV="FAUX"
	LOOP
		READNEXT W_CLEACTIV FROM W_RequeteAct ELSE W_FINIACTIV="VRAI"
	WHILE W_FINIACTIV="FAUX" DO
		READ ENR_ACTIVITES FROM F.ACTIVITES,W_CLEACTIV ELSE STOP
		IPOSITION=IPOSITION+1
		W_RequeteActSelect<IPOSITION,1>=W_CLEACTIV
		W_RequeteActSelect<IPOSITION,2>=ENR_ACTIVITES<1>
		W_RequeteActSelect<IPOSITION,3>=ENR_ACTIVITES<5>
		W_RequeteActSelect<IPOSITION,4>=ENR_ACTIVITES<6>
		W_RequeteActSelect<IPOSITION,5>=ENR_ACTIVITES<7>
		W_RequeteActSelect<IPOSITION,6>=ENR_ACTIVITES<8>
		W_RequeteActSelect<IPOSITION,7>=ENR_ACTIVITES<10>
		W_RequeteActSelect<IPOSITION,8>=ENR_ACTIVITES<12>
	REPEAT

    END

RETURN


********************************************
* MISE A 0 ATT 2 DE AJOUTPVT DE LA PERIODE *
********************************************
1200

    EXECUTE 'SSELECT AJOUTPVT AVEC @ID = "':"[":W_CODASSOC:W_TYPACT:W_PERIODE:'"'
    EXECUTE 'SAUVE-LISTE W_REQUETEPVT'
    EXECUTE "LISTE W_REQUETEPVT" RETURNING MSGCODE	
 
    IF MSGCODE<1>#209 THEN

	SELECT F.AJOUTPVT TO W_REQUETEPVT

	W_FINIPVT="FAUX"
	LOOP
		READNEXT W_CLEPVT FROM W_REQUETEPVT ELSE W_FINIPVT="VRAI"
	WHILE W_FINIPVT="FAUX" DO
		READ ENR_AJOUTPVT FROM F.AJOUTPVT,W_CLEPVT ELSE STOP

        	ENR_AJOUTPVT<2> = ""
        	WRITE ENR_AJOUTPVT TO F.AJOUTPVT,W_CLEPVT

	REPEAT

    END

RETURN


*******************************
* TRAITEMENT SI SEULEMENT PVT *
*******************************
1300

    EXECUTE 'SSELECT AJOUTPVT AVEC 2 <> "':"1":'" AND AVEC @ID = "':"[":W_CODASSOC:W_TYPACT:W_PERIODE:'"'
    EXECUTE 'SAUVE-LISTE W_REQAJOUTPVT'
    EXECUTE "LISTE W_REQAJOUTPVT" RETURNING MSGCODE

    IF MSGCODE<1>#209 THEN
	GOSUB 300

	SELECT F.AJOUTPVT TO W_REQAJOUTPVT
	W_FINIAJOUTPVT="FAUX"

	LOOP
		READNEXT W_CLEAJOUTPVT FROM W_REQAJOUTPVT ELSE W_FINIAJOUTPVT="VRAI"
	WHILE W_FINIAJOUTPVT="FAUX" DO

		W_Code = W_CLEAJOUTPVT

		GOSUB 500
            	W_CumulTotal = W_CumulTotal + W_Montant

		IF W_CAC=1 THEN
			W_CODEAID = W_Code[1,5]
			GOSUB 200
		END

	REPEAT

	* Total
    	ENR_PRELEVEMENT<W_NbrPrelevements+1> = "08":W_CODEPREL:SPACE(8):W_NumEmet:SPACE(84):W_CumulTotal "R%16":SPACE(42)
    	WRITE ENR_PRELEVEMENT ON F.PRELEVEMENT,W_CodeFichier
	WRITE ENR_TEMPO ON F.TEMPO,"PRELEVEMENT"

	ENR_TEMPO=""
	ENR_TEMPO<1>=W_NbrPrelevements
	ENR_TEMPO<2>=W_CumulTotal
        ENR_TEMPO<3>=W_CodeFichier
	WRITE ENR_TEMPO ON F.TEMPO,"PRELEV"

    END ELSE

	ENR_TEMPO=""
        ENR_TEMPO="NEANT"
	WRITE ENR_TEMPO ON F.TEMPO,"PRELEV"

    END

RETURN
