*PARAMETRES*
*Extraction des donnes de facturation*
*Association (ex : 001) |3N|TXT|O*
*Priode de dbut (ex : 200907) |6N|TXT|O*
*Priode de fin (ex : 200907) |6N|TXT|O*
*Activit (P,M ou I) |1X|TXT|N*
*Factures aids (0 = Non, 1=Oui) |1N|TXT|O*
*Factures organismes (0 = Non, 1=Oui) |1N|TXT|O*
*Accords (0 = Non, 1=Oui) |1N|TXT|O*
*FIN PARAMETRES*

SUBROUTINE EXTRACTFACTORGACC(RETURNVAL,PARAMETRES,W_Sortie)
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

*--Ce programme extrait les donnes des factures dans trois fichiers CSV

*** Ouverture des fichiers
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE W_Sortie="Erreur ouverture FACTURAIDE";RETURN
OPEN "","FACTURORG" TO F.FACTURORG ELSE W_Sortie="Erreur ouverture FACTURORG";RETURN
OPEN "","ACCORD" TO F.ACCORD ELSE W_Sortie="Erreur ouverture ACCORD";RETURN
OPEN "","FUSION" TO F.FUSION ELSE W_Sortie="Erreur ouverture FUSION";RETURN
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE W_Sortie="Erreur ouverture ORGPRISECHARGE";RETURN
OPEN "","TABLES" TO F.TABLES ELSE W_Sortie="Erreur ouverture TABLES";RETURN
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE W_Sortie="Erreur ouverture CIVILAIDE";RETURN
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE W_Sortie="Erreur ouverture CIVILAIDANT";RETURN
OPEN "","SECTEUR" TO F.SECTEUR ELSE W_Sortie="Erreur ouverture SECTEUR";RETURN
OPEN "","RESPONSABLE" TO F.RESPONSABLE ELSE W_Sortie="Erreur ouverture RESPONSABLE";RETURN
* Modif Anthony 27/02/12
OPEN "","AGGIRAIDE" TO F.AGGIRAIDE ELSE W_Sortie = "Erreur ouverture AGGIRAIDE";RETURN
* Modif Guillaume DA12006
OPEN "","TABLES" TO F.TABLES ELSE W_Sortie = "Erreur ouverture TABLES";RETURN
READ ENR_TAUXTVA FROM F.TABLES, "TAUXTVA" ELSE W_Sortie = "Erreur lecture TAUXTVA";RETURN
* modif vanessa 10/02/14 - DA13103
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE W_Sortie = "Erreur ouverture ACTIVITESAIDE";RETURN
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE W_Sortie = "Erreur ouverture ASSOCIATION";RETURN

*** Rcupration des paramtres
W_Association = PARAMETRES<1>
W_PeriodeDeb = PARAMETRES<2>
W_PeriodeFin = PARAMETRES<3>
W_Activite = PARAMETRES<4>

*** Dclaration des variables
W_Infos = "Rapport de traitement : ":CHAR(13):CHAR(13)
W_CSV = ""
W_Req = ""
W_Motif = ""

IF PARAMETRES<5>="1" THEN
	*** Partie FACTURAIDE
        * Modif Guillaume 18/04/2011
		W_Requete = 'SSELECT FACTURAIDE AVEC CodeEntiteFact = "':W_Association:'" AND AVEC PeriodeCleFactAide >= "':W_PeriodeDeb:'" AND <= "':W_PeriodeFin:'"'
		IF W_Activite # "" THEN
			IF W_Activite = "P" OR W_Activite = "M" OR W_Activite = "I" THEN
				W_Requete = W_Requete:' AND AVEC ActiviteFact = "':W_Activite:'"'
			END
		END
		
		W_Requete = W_Requete:" PAR-DECR @ID"
		
		EXECUTE W_Requete
		EXECUTE 'SAUVE-LISTE W_Req'
		EXECUTE 'LISTE W_Req' RETURNING MSGCODE

		IF MSGCODE<1> # "209" THEN
			SELECT F.FACTURAIDE TO W_Req
			
			* Modif Greg - 09/05/12 - Ajout date de naissance de l'aid
			W_CSV<-1> = "Entit juridique;Code Aid;Nom Prnom;Num voie;Nom voie;Compl voie;Nature voie;Complement adresse;Code postal;Commune;Responsable;Secteur;Date nais. aid;Priode de traitement;Type d'activit;Numro de facture;Priode des heures;Libell facture;Base;Taux;Montant;Code comptable;Section analytique;Valeur TVA;Montant TVA;Date de prlvement;Code accord ou rajustement;T.V.A.;Prlev;Facture dite;Type de facture;Exonration"
			W_MaxTot=0
			W_CleAv = ""
			
			W_Fin = "F"
			LOOP
				READNEXT W_Cle FROM W_Req ELSE W_Fin = "O"
			WHILE W_Fin = "F"
				
				IF W_CleAv[1,25] # W_Cle[1,25] THEN
					W_CleAv = W_Cle
					READ ENR_FACTURAIDE FROM F.FACTURAIDE, W_Cle THEN
						
						W_CodeAide = W_Cle[1,5]
						W_Entite = W_Cle[6,3]
						W_TypeAct = W_Cle[9,1]
						* Modif Guillaume 18/04/2011
                        W_Periode = W_Cle[10,6]
                        
						BEGIN CASE
							CASE W_TypeAct = "P"
								W_TypeAct = "PRESTATAIRE"
							CASE W_TypeAct = "M"
								W_TypeAct = "MANDATAIRE"
							CASE W_TypeAct = "I"
								W_TypeAct = "INTERMEDIAIRE"
						END CASE
						
						W_NumFact = W_Cle[16,10]
						
						BEGIN CASE
							CASE ENR_FACTURAIDE<11> = "0"
								W_Editee = "Non"
							CASE ENR_FACTURAIDE<11> = ""
								W_Editee = "Non"
							CASE ENR_FACTURAIDE<11> = "1"
								W_Editee = "Oui"
						END CASE
												
						IF ENR_FACTURAIDE<17> = "O" THEN
							W_Preleve = "Oui"
						END ELSE
							W_Preleve = "Non"
						END
						
						IF W_Cle[26,1] = "1" THEN
							W_Corrige = "Corrig"
						END ELSE
							W_Corrige = "Initiale"
						END

						W_CodePostal=""
						W_Commune=""
						W_Responsable=""
						W_Secteur=""
						W_Adr=""
						
						READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_CodeAide THEN
							W_NomPrenomAide = ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
							W_CodePostal=ENR_CIVILAIDE<10>
							W_Commune=ENR_CIVILAIDE<11>
					
							IF ENR_CIVILAIDE<5> # "" THEN
								W_Adr = ENR_CIVILAIDE<5>
							END 
							IF ENR_CIVILAIDE<6>#"" THEN
								W_Adr=W_Adr:";":ENR_CIVILAIDE<6>
							END ELSE
								W_Adr=W_Adr:";"
							END
							IF ENR_CIVILAIDE<7>#"" THEN
								W_Adr=W_Adr:";":ENR_CIVILAIDE<7>
							END ELSE
								W_Adr=W_Adr:";"
							END
							
							IF ENR_CIVILAIDE<8>#"" THEN
								W_Adr=W_Adr:";":ENR_CIVILAIDE<8>
							END ELSE
								W_Adr=W_Adr:";"
							END
							IF ENR_CIVILAIDE<9>#"" THEN
								W_Adr=W_Adr:";":ENR_CIVILAIDE<9>
							END ELSE
								W_Adr=W_Adr:";"
							END												
							READ ENR_SECTEUR FROM F.SECTEUR, ENR_CIVILAIDE<40>[1,3] ELSE ENR_SECTEUR=""
							W_Secteur=ENR_SECTEUR<1>
							
							READ ENR_RESPONSABLE FROM F.RESPONSABLE, ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE=""
							W_Responsable=ENR_RESPONSABLE<1>
						END
						
						W_Aidant=""
						
						W_MaxAidant= DCOUNT(ENR_FACTURAIDE<10>,CHAR(253))
						IF W_MaxTot < W_MaxAidant THEN
							W_MaxTot = W_MaxAidant 
						END
						
						
						FOR IAidant = 1 TO W_MaxAidant
							READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, ENR_FACTURAIDE<10,IAidant> ELSE ENR_CIVILAIDANT=""
							IF W_Aidant="" THEN
								W_Aidant=ENR_CIVILAIDANT<1>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
							END ELSE
								W_Aidant=W_Aidant:";":ENR_CIVILAIDANT<1>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
							END
						NEXT IAidant
						
						* modif vanessa 10/02/14 - DA13103
						READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE, W_CodeAide THEN
							IF ENR_ACTIVITESAIDE<5> = "1" THEN
								W_Exo = "Oui"
							END ELSE
								W_Exo = "Non"
							END
						END
						
						FOR I = 1 TO DCOUNT(ENR_FACTURAIDE<5>,CHAR(253))
						    W_TVA = ""
							* Modif Guillaume DA12006
    						FOR iTaux = 1 TO DCOUNT(ENR_TAUXTVA<2>,CHAR(253))
                                IF ENR_TAUXTVA<2,iTaux> = ENR_FACTURAIDE<16,I> THEN
                                    W_TVA = ENR_TAUXTVA<4,iTaux> / 100
                                    EXIT
                                END
                            NEXT iTaux						
*     						IF ENR_FACTURAIDE<16> = "O" THEN
*     							W_TVA = "Oui"
*     						END ELSE
*     							W_TVA = "Non"
*     						END
							
							* Modif Greg - 09/05/12 - Ajout date de naissance aid
							W_CSV<-1> = W_Entite:";":W_CodeAide:";":W_NomPrenomAide:";":W_Adr:";":W_CodePostal:";":W_Commune:";":W_Responsable:";":W_Secteur:';':OCONV(ENR_CIVILAIDE<20>,"D4/"):";":W_Periode:";":W_TypeAct:";":W_NumFact:";":ENR_FACTURAIDE<1,I>:";":ENR_FACTURAIDE<2,I>:";":ENR_FACTURAIDE<3,I> "MR2":";":ENR_FACTURAIDE<4,I> "MR2":";":ENR_FACTURAIDE<5,I> "MR2":";":ENR_FACTURAIDE<6,I>:";":ENR_FACTURAIDE<7,I>:";":ENR_FACTURAIDE<8>:";":ENR_FACTURAIDE<9>:";":OCONV(ENR_FACTURAIDE<12>,"D4/"):";":ENR_FACTURAIDE<15,I>:";":W_TVA:";":W_Preleve:";":W_Editee:";":W_Corrige:";":W_Exo:";":W_Aidant

						NEXT I
					END
				END
			
			REPEAT
			
			FOR IMax = 1 TO  W_MaxTot
				W_CSV<1> =W_CSV<1>:";":"Intervenant ":IMax
			NEXT IMax
			
			W_NomFichier = "Factures-Aides-":OCONV(DATE(),"D4-"):".csv"
			
			WRITE W_CSV ON F.FUSION,W_NomFichier
			W_CSV = ""
			
			W_Infos = W_Infos:" - Factures aids : Le fichier ":W_NomFichier:" a t gnr dans le dossier FUSION":CHAR(13)
			
		END ELSE
			W_Infos = W_Infos:" - Factures aids : Aucune donnes":CHAR(13)
		END
		
		EXECUTE 'EFFACER-LISTE W_Req'
		
END

IF PARAMETRES<6>="1" THEN
	*** Partie FACTURORG
        * Modif Guillaume 18/04/2011
        * Modif Guillaume 26/02/2013 : revu requte pour rcuprer les taux prestation + changer slection sur attribut 10 par PeriodeFacturOrg
	* Modif Greg - 22/01/14 - A leur demande, on remet en place l'att. 10 (priode de traitement) plutt que PeriodeFacturOrg (priode des heures).
	* Car quand ils demandent la priode 201312 par exemple, c'est sous-entendu la priode de traitement.
		W_Requete = 'SSELECT FACTURORG AVEC EntiteFacturOrg = "':W_Association:'" AND AVEC 10 >= "':W_PeriodeDeb:'" AND <= "':W_PeriodeFin:'"'
		IF W_Activite # "" THEN
			IF W_Activite = "P" OR W_Activite = "M" OR W_Activite = "I" THEN
				W_Requete = W_Requete:' AND AVEC TypeActiviteFacturOrg = "':W_Activite:'"'
			END
		END

		W_Requete = W_Requete:' OR AVEC 0 = "000]" AND AVEC EntTxPrestFacturOrg = "':W_Association:'" AND AVEC 10>= "':W_PeriodeDeb:'" AND <= "':W_PeriodeFin:'"'
		IF W_Activite # "" THEN
			IF W_Activite = "P" OR W_Activite = "M" OR W_Activite = "I" THEN
				W_Requete = W_Requete:' AND AVEC TypeActiviteFacturOrg = "':W_Activite:'"'
			END
		END

		EXECUTE W_Requete
		EXECUTE 'SAUVE-LISTE W_Req'
		EXECUTE 'LISTE W_Req' RETURNING MSGCODE

		IF MSGCODE<1> # "209" THEN
			SELECT F.FACTURORG TO W_Req

* Didier 06/06/2014 : ajout code organisme
			* modif vanessa 20/07/16 - ticket 13604 - floralys - ajout responsable
			W_CSV<-1> = "Code Aid;Nom Prnom Aid;Commune;Responsable;Secteur;GIR;Organismes de prise en charge;Type d'activit;Code accord;Priode des heures;Numro ordre;Nombre d'heures;Participation aid;Participation organisme;Montant organisme;Nombre heures (dim. et JF);Participation aid (dim. et JF);Participation organisme (dim. et JF);Montant organisme (dim. et JF);Numro de facture;Priode de traitement;Dpenses engages;Montant de la P.S.;Montant Organisme sans P.S.;Participation Organisme sans P.S.;Dbit;Crdit;Regroupement statistiques;Exonration;Code organisme;Code Conjoint;Nom Prenom Conjoint"
			
			W_Fin = "F"
			LOOP
				READNEXT W_Cle FROM W_Req ELSE W_Fin = "O"
			WHILE W_Fin = "F"
			
				READ ENR_FACTURORG FROM F.FACTURORG, W_Cle THEN
					
					W_CodeAide = W_Cle[5,5]
					* Modif Guillaume 18/04/2011
					W_Periode = W_Cle[13,6]
                    				
					* modif vanessa 15/10/10 - rajoute compte debit et credit
					W_Debit=""
					W_Credit=""
					READ ENR_ORG FROM F.ORGPRISECHARGE, W_Cle[1,3] THEN
						W_Org = ENR_ORG<1>
						W_Debit=ENR_ORG<22>
						W_Credit=ENR_ORG<23>
					END ELSE
					   * Modif Guillaume 26/02/2013 : Si pas de lecture, on met le libell TAUX PRESTATION car organisme 000
					   W_Org = "TAUX PRESTATION"
					END
					W_TypeAct = W_Cle[4,1]
					
					BEGIN CASE
						CASE W_TypeAct = "P"
							W_TypeAct = "PRESTATAIRE"
						CASE W_TypeAct = "M"
							W_TypeAct = "MANDATAIRE"
						CASE W_TypeAct = "I"
							W_TypeAct = "INTERMEDIAIRE"
					END CASE
					
					READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_CodeAide THEN
						* Mikael le 24/03/2016 Ajout notion de commune suite ticket 12434
						W_NomPrenomAide = ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>:";":ENR_CIVILAIDE<11>
						
						* modif vanessa 20/07/16 - ticket 13604 - floralys - ajout responsable
						READ ENR_RESPONSABLE FROM F.RESPONSABLE, ENR_CIVILAIDE<39> ELSE ENR_RESPONSABLE=""
						W_NomPrenomAide = W_NomPrenomAide:";":ENR_RESPONSABLE<1>						
						
						READ ENR_SECTEUR FROM F.SECTEUR, ENR_CIVILAIDE<40>[1,3] THEN
							W_NomPrenomAide = W_NomPrenomAide:";":ENR_SECTEUR<1>
						END
						
						* Mikael le 24/03/2016 Ajout notion de GIR suite ticket 12424
						READ ENR_AGGIRAIDE FROM F.AGGIRAIDE, W_CodeAide THEN
							W_NomPrenomAide = W_NomPrenomAide:";":ENR_AGGIRAIDE<19>:ENR_AGGIRAIDE<20>
						END ELSE
							W_NomPrenomAide = W_NomPrenomAide:";"
						END
						
						* Modification mikael le 31/03/2016 suite ticket 12230
						IF ENR_CIVILAIDE<45> # "" THEN
							READ ENR_CIVILCONJOINT FROM F.CIVILAIDE, ENR_CIVILAIDE<45> THEN							
								W_CodeConjoint= ENR_CIVILAIDE<45>
								W_NomPrenomConjoint=ENR_CIVILCONJOINT<2>:" ":ENR_CIVILCONJOINT<3>
							END
						END ELSE
							W_CodeConjoint= ""
							W_NomPrenomConjoint=""
						END
						
						
						
					END
					
					* modif vanessa 10/02/14 - DA13103
					READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE, W_CodeAide THEN
						IF ENR_ACTIVITESAIDE<5> = "1" THEN
							W_Exo = "Oui"
						END ELSE
							W_Exo = "Non"
						END
					END

					W_NumFact = ENR_FACTURORG<9>
					W_CodeAccord = W_Cle[5,8]
					
					* Modif Greg - 09/11/09 - Dans les cas des mutuelles, on peut avoir 2 lignes, mais la 2me
					* ne doit pas tre affiche car elle est dj inclue dans la premire. Pour viter , on pourrait
					* lire l'organisme pour savoir si c'est une mutuelle ou pas. Et si c'est le cas, on pourrait lire
					* l'accord pour savoir si l'att. 4 (code mutuelle MFP) est renseign ou pas. Et si c'est le cas, il
					* ne faudrait prendre que la premire ligne. Mais dans la pratique, c'est le seul cas o on peut
					* avoir 2 lignes au lieu de d'une. Donc pour viter de faire des lectures et des tests en plus,
					* on peut tout simplement grer uniquement la premire MV, en dur, pour tous les cas.
					* Pour les mutuelles du coup on aura bien que la premire ligne de gre et pour les autres organismes,
					* on continuera  prendre la seule ligne qu'ils ont dans FACTURORG.
					
					* Christophe le 22/02/2010 - il faut cumuler les part caisses et montant pour les cas mutuelles.
					W_FacturOrg3=0
					W_FacturOrg4=0
					FOR I = 1 TO DCOUNT(ENR_FACTURORG<2>,CHAR(253))
						W_FacturOrg3=W_FacturOrg3+ENR_FACTURORG<3,I>
						W_FacturOrg4=W_FacturOrg4+ENR_FACTURORG<4,I>
					NEXT I

					W_RegroupStat=""
					READ ENR_TABLES FROM F.TABLES, "STATORGCHG" THEN
					
						FOR I = 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
							IF ENR_TABLES<2,I> = ENR_ORG<43> THEN
								W_RegroupStat = ENR_TABLES<3,I>
								EXIT
							END
						NEXT I
					END
					
					*Modification mikael 19/06/2012 sur notion de periode de traitement
					* modif vanessa 10/02/14 - DA13103 - exoneration
					* Didier 06/06/2014 : ajout code organisme
					W_CSV<-1> = W_CodeAide:";":W_NomPrenomAide:";":W_Org:";":W_TypeAct:";":W_CodeAccord:";":W_Cle[13,6]:";":W_Cle[19,2]:";":ENR_FACTURORG<1,1> "MR2":";":ENR_FACTURORG<2,1> "MR2":";":W_FacturOrg3 "MR2":";":W_FacturOrg4 "MR2":";":ENR_FACTURORG<5> "MR2":";":ENR_FACTURORG<6> "MR2":";":ENR_FACTURORG<7> "MR2":";":ENR_FACTURORG<8> "MR2":";":ENR_FACTURORG<9>:";":ENR_FACTURORG<10>:";":ENR_FACTURORG<14> "MR2":";":ENR_FACTURORG<15> "MR2":";":ENR_FACTURORG<16> "MR2":";":ENR_FACTURORG<17> "MR2":";":W_Debit:";":W_Credit:";":W_RegroupStat:";":W_Exo:";":W_Cle[1,3]:";":W_CodeConjoint:";":W_NomPrenomConjoint

					*W_CSV<-1> = W_CodeAide:";":W_NomPrenomAide:";":W_Org:";":W_TypeAct:";":W_CodeAccord:";":W_Cle[13,6]:";":W_Cle[19,2]:";":ENR_FACTURORG<1,1> "MR2":";":ENR_FACTURORG<2,1> "MR2":";":W_FacturOrg3 "MR2":";":W_FacturOrg4 "MR2":";":ENR_FACTURORG<5> "MR2":";":ENR_FACTURORG<6> "MR2":";":ENR_FACTURORG<7> "MR2":";":ENR_FACTURORG<8> "MR2":";":ENR_FACTURORG<9>:";":W_Periode:";":ENR_FACTURORG<14> "MR2":";":ENR_FACTURORG<15> "MR2":";":ENR_FACTURORG<16> "MR2":";":ENR_FACTURORG<17> "MR2":";":W_Debit:";":W_Credit:";":W_RegroupStat

					*W_CSV<-1> = W_CodeAide:";":W_NomPrenomAide:";":W_Org:";":W_TypeAct:";":W_CodeAccord:";":W_Cle[13,6]:";":W_Cle[19,2]:";":ENR_FACTURORG<1,1> "MR2":";":ENR_FACTURORG<2,1> "MR2":";":ENR_FACTURORG<3,1> "MR2":";":ENR_FACTURORG<4,1> "MR2":";":ENR_FACTURORG<5> "MR2":";":ENR_FACTURORG<6> "MR2":";":ENR_FACTURORG<7> "MR2":";":ENR_FACTURORG<8> "MR2":";":ENR_FACTURORG<9>:";":W_Periode:";":ENR_FACTURORG<14> "MR2":";":ENR_FACTURORG<15> "MR2":";":ENR_FACTURORG<16> "MR2":";":ENR_FACTURORG<17> "MR2"
				
				END
			
			REPEAT
			
			W_NomFichier = "Factures-Organismes-":OCONV(DATE(),"D4-"):".csv"
			
			WRITE W_CSV ON F.FUSION,W_NomFichier
			W_CSV = ""
			
			W_Infos = W_Infos:" - Factures organismes : Le fichier ":W_NomFichier:" a t gnr dans le dossier FUSION":CHAR(13)
			
		END ELSE
			W_Infos = W_Infos:" - Factures organismes : Aucune donnes":CHAR(13)
		END	
		
		EXECUTE 'EFFACER-LISTE W_Req'
END

IF PARAMETRES<7>="1" THEN
	*** Partie ACCORD
	    * Modif Guillaume 18/04/2011
		W_DateDebPeriode = "01/":W_PeriodeDeb[5,2]:"/":W_PeriodeDeb[1,4]
		W_DateDebPeriode = ICONV(W_DateDebPeriode,"D4/")
		
		W_DateFinPeriode = "01/":W_PeriodeFin[5,2]+1"R%2":"/":W_PeriodeFin[1,4]
		
		*-- Modification mikael le 25/04/2014
		IF W_PeriodeFin[5,2]+1 = 13 THEN
			W_DateFinPeriode = "01/01/":W_PeriodeFin[1,4]+1
		END
		*-- Fin modification
		W_DateFinPeriode = ICONV(W_DateFinPeriode,"D4/") - 1
		
		
		W_Requete = 'SSELECT ACCORD AVEC EntiteAccord="':W_Association:'" AND AVEC DateFinAcc >="':W_DateDebPeriode:'" AND AVEC DateDebAcc <="':W_DateFinPeriode:'" AND AVEC 18 # "O"'
		EXECUTE W_Requete
		EXECUTE 'SAUVE-LISTE W_Req'
		EXECUTE 'LISTE W_Req' RETURNING MSGCODE

		IF MSGCODE<1> # "209" THEN
			SELECT F.ACCORD TO W_Req
			
*			W_CSV<-1> = "Code Aid;Nom Prnom Aid;Secteur;Organismes de prise en charge;Code accord;Date de dbut;Date de fin;Date de notification;Numro de dossier;Motif de l'accord;Droit allou;Date d'effet;% de participation;Part mutuelle;Part aid ou organisme;Type d'accord;Plafond des droits  consommer;Attribution des notifications d'accord;Type de participation;Regroupement statistiques"
			* Modif Greg - 24/06/16 - Ajout d'une colonne pour indiquer si l'aid a une seule caisse + ajout d'une colonne avec le code caisse
			W_CSV<-1> = "Code Aid;Nom Prnom Aid;Commune;Secteur;Code org.;Organismes de prise en charge;Code accord;Date de dbut;Date de fin;Date de notification;Numro de dossier;Motif de l'accord;Droit allou;Date d'effet;% de participation;Part mutuelle;Part aid ou organisme;Type d'accord;Plafond des droits  consommer;Attribution des notifications d'accord;Type de participation;Regroupement statistiques;Date naissance;Date dcs;Code GIR;Periode historique;Montant Historique; Nbr heures Historique; Report Hres historique;Caisse unique"
			
			W_Fin = "F"
			LOOP
				READNEXT W_Cle FROM W_Req ELSE W_Fin = "O"
			WHILE W_Fin = "F"
			
				READ ENR_ACCORD FROM F.ACCORD, W_Cle THEN
					W_LigneAccord =""
					W_DateMax = ""
					W_Rang = 0
					
					FOR I = 1 TO DCOUNT(ENR_ACCORD<11>,CHAR(253))
						IF ENR_ACCORD<11,I> > W_DateMax THEN
							W_DateMax = ENR_ACCORD<11,I>
							W_Rang = I
						END
					NEXT I
					
					W_CodeAide = W_Cle[1,5]
					READ ENR_ORG FROM F.ORGPRISECHARGE, ENR_ACCORD<1> THEN
						W_Org = ENR_ORG<1>
						
						IF ENR_ORG<18> = "P" THEN
							W_TypeAcc = "Principal"
						END ELSE
							W_TypeAcc = "Complmentaire"
						END
						
						BEGIN CASE
							CASE ENR_ORG<19> = "1"
								W_TypePlaf = "Mensuellement avec report des crdits"
							CASE ENR_ORG<19> = "2"
								W_TypePlaf = "Mensuellement sans report des crdits"
							CASE ENR_ORG<19> = "3"
								W_TypePlaf = "Globalement"
						END CASE
						
						IF ENR_ORG<24> = "H" THEN
							W_TypeNotif = "Heures"
						END ELSE
							W_TypeNotif = "Montant"
						END
						
						IF ENR_ORG<48> = "%" THEN
							W_TypePart = "Pourcentage"
						END ELSE
							W_TypePart = "Montant"
						END
						
					END
					
					READ ENR_TABLES FROM F.TABLES, "MOTIFACCORD" THEN
					
						FOR I = 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
							IF ENR_TABLES<2,I> = ENR_ACCORD<3> THEN
								W_Motif = ENR_TABLES<3,I>
								EXIT
							END
						NEXT I
					END

					W_RegroupStat=""
					READ ENR_TABLES FROM F.TABLES, "STATORGCHG" THEN
					
						FOR I = 1 TO DCOUNT(ENR_TABLES<2>,CHAR(253))
							IF ENR_TABLES<2,I> = ENR_ORG<43> THEN
								W_RegroupStat = ENR_TABLES<3,I>
								EXIT
							END
						NEXT I
					END
					
					READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_CodeAide THEN
					
						*Modif Anthony 27/02/12
						W_DateNaiss=OCONV(ENR_CIVILAIDE<20>,"D4/")
						W_DateDeces=OCONV(ENR_CIVILAIDE<48>,"D4/")
						
						READ ENR_AGGIRAIDE FROM F.AGGIRAIDE, W_CodeAide THEN
							W_Gir=ENR_AGGIRAIDE<19>:ENR_AGGIRAIDE<20>
						END ELSE
							*Christophe 22/07/2016 - Ajout END ELSE W_Gir =""
							W_Gir=""
						END
						*Fin Anthony 

						W_NomPrenomAide = ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>:";":ENR_CIVILAIDE<11>
						READ ENR_SECTEUR FROM F.SECTEUR, ENR_CIVILAIDE<40>[1,3] THEN
							W_NomPrenomAide = W_NomPrenomAide:";":ENR_SECTEUR<1>
						END ELSE
                            W_NomPrenomAide = W_NomPrenomAide:";"
                        END
					END
					
					*Modification mikael suite ticket 2734 le 31/01/2013
					* Modif Greg - 24/06/16 - Ajout d'une colonne avec le code caisse.
					W_LigneAccord =W_CodeAide:";":W_NomPrenomAide:";":ENR_ACCORD<1>:";":W_Org:";":W_Cle:";":OCONV(ENR_ACCORD<5>,"D4/"):";":OCONV(ENR_ACCORD<6>,"D4/"):";":OCONV(ENR_ACCORD<7>,"D4/"):";":ENR_ACCORD<2>:";":W_Motif:";":(ENR_ACCORD<9>/100):";":OCONV(ENR_ACCORD<11,W_Rang>,"D4/"):";":(ENR_ACCORD<10,W_Rang>/100):";":(ENR_ACCORD<12,W_Rang>/100):";":(ENR_ACCORD<13,W_Rang>/100):";":W_TypeAcc:";":W_TypePlaf:";":W_TypeNotif:";":W_TypePart:";":W_RegroupStat:";":W_DateNaiss:";":W_DateDeces:";":W_Gir
					
					FOR IAcc = 1 TO DCOUNT(ENR_ACCORD<14>,CHAR(253)) 
						IF ENR_ACCORD<14,IAcc> >= W_PeriodeDeb AND ENR_ACCORD<14,IAcc> <= W_PeriodeFin THEN
							W_CSV<-1> = W_LigneAccord:";":ENR_ACCORD<14,IAcc>:";":(ENR_ACCORD<15,IAcc>/100):";":(ENR_ACCORD<16,IAcc>/100):";":(ENR_ACCORD<17,IAcc>/100)
						END
					
					NEXT IAcc
					
					
					
				END
			
			REPEAT
			
			* Modif Greg - 24/06/16 - Les utilisateurs peuvent vouloir savoir si l'aid a des accords sur une seule caisse.
			* Il faut donc reparcourir le fichier pour renseigner une nouvelle colonne.
			W_IndDebAide=2
			W_AncAide=""
			FOR I = 2 TO DCOUNT(W_CSV,CHAR(254))
				IF W_AncAide="" THEN W_AncAide=FIELD(W_CSV<I>,";",1)
				IF W_AncAide<>FIELD(W_CSV<I>,";",1) THEN
					TAB_CAISSES=""
					FOR J = W_IndDebAide TO I-1
						IF INDEX(TAB_CAISSES,FIELD(W_CSV<J>,";",5),1) = 0 THEN
							TAB_CAISSES<-1>=FIELD(W_CSV<J>,";",5)
						END
					NEXT J
					
					IF DCOUNT(TAB_CAISSES,CHAR(254)) > 1 THEN
						W_Lib=";"
					END ELSE
						W_Lib=";Oui"
					END
					
					FOR J = W_IndDebAide TO I-1
						W_CSV<J>=W_CSV<J>:W_Lib
					NEXT J
					
					W_IndDebAide=I
					W_AncAide=FIELD(W_CSV<I>,";",1)
				END
			NEXT I
			
			TAB_CAISSES=""
			FOR J = W_IndDebAide TO I-1
				IF INDEX(TAB_CAISSES,FIELD(W_CSV<J>,";",5),1) = 0 THEN
					TAB_CAISSES<-1>=FIELD(W_CSV<J>,";",5)
				END
			NEXT J
			
			IF DCOUNT(TAB_CAISSES,CHAR(254)) > 1 THEN
				W_Lib=";"
			END ELSE
				W_Lib=";Oui"
			END
			
			FOR J = W_IndDebAide TO I-1
				W_CSV<J>=W_CSV<J>:W_Lib
			NEXT J
			* Fin modif Greg - 24/06/2016
			
			W_NomFichier = "Accords-":OCONV(DATE(),"D4-"):".csv"
			
			WRITE W_CSV ON F.FUSION,W_NomFichier
			W_CSV = ""
			
			W_Infos = W_Infos:" - Accords : Le fichier ":W_NomFichier:" a t gnr dans le dossier FUSION":CHAR(13)
			
		END ELSE
			W_Infos = W_Infos:" - Accords : Aucune donnes":CHAR(13)
		END	
		
		EXECUTE 'EFFACER-LISTE W_Req'
		
END

W_Sortie=W_Infos
RETURN
