*PARAMETRES*
*Extraction des bulletins de salaires*
*Priode de dbut (AAAAMM)|6N|TXT|O*
*Priode de fin (AAAAMM)|6N|TXT|O*
*Entit Juridique (3N)|3N|TXT|N*
*Type d'activit (P ou M)|1X|TXT|N*
*Code rubrique de saisie avant brut (3N - facultatif)|3N|TXT|N*
*Code rubrique de saisie aprs net (3N - facultatif)|3N|TXT|N*
*Code rubrique de charge (3N - facultatif)|3N|TXT|N*
*Code de l'aidant (5N - facultatif)|5N|TXT|N*
*Code secteur (3N - facultatif)|3X|TXT|N*
*FIN PARAMETRES*

***************************************************
* PRX - Extraction DETAILCALCUL
* Auteur : Matthieu
* Date : 16 Mai 2008
* Modifier le 02/06/2008 par priscilla
* Modifier le 31/03/2010 par mikael suite appel de saumur
* MODIF VANESSA le 12/05/10 - rajoute l'employeur + base brute, montant brut, montant imposable, montant  payer
* Modifier le 18/08/2010 par mikael suite appel de DOUAIS AJOUT TYPE RUB CHARGE ET ETABLISSEMENT
***************************************************
* MODIF VANES LE 19/03/09 pour extraire toutes les rubriques de saisie et de charge
* Modif Greg - 08/04/11 - Insertion de 3 colonnes, pour lister les att. 24 et 25 de DETAILCALCUL (un code rubrique, un libell et une base).
***************************************************

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

OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE RETURN
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE RETURN
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE RETURN
OPEN "","FUSION" TO F.FUSION ELSE RETURN
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE RETURN
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE RETURN
OPEN "","SECTEUR" TO F.SECTEUR ELSE RETURN
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE RETURN
OPEN "","CONTRAT" TO F.CONTRAT ELSE RETURN
OPEN "","GRILLESCC" TO F.GRILLESCC ELSE RETURN
OPEN "","TABLES" TO F.TABLES ELSE RETURN
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE RETURN
OPEN "","SOUSSECTEUR" TO F.SOUSSECTEUR ELSE RETURN
OPEN "","QUARTIER" TO F.QUARTIER ELSE RETURN
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE RETURN
OPEN "","RIBAIDANT" TO F.RIBAIDANT ELSE RETURN

********************************
* Initialisation des variables *
********************************
W_Sortie = ""
W_RequeteDet = ""
W_RESULTAT = ""
W_NumOrdre = ""
W_Fin = "FAUX"
W_Ligne = ""
W_CSV = ""
W_Count = ""
W_Soussecteur = ""
W_Quartier = ""
W_DateDebCont = ""
W_DateFinCont = ""
W_NomPatronymique = ""

*******************************
* Rcupration des paramtres *
*******************************
W_PeriodeDebut = PARAMETRES<1>
W_PeriodeFin = PARAMETRES<2>
W_Entite = PARAMETRES<3>
W_TypeAct = PARAMETRES<4>
W_RubSaisie2 = PARAMETRES<5>
W_RubSaisie17 = PARAMETRES<6>
W_RubCharge = PARAMETRES<7>
W_CodeAidant = PARAMETRES<8>
W_Secteur = PARAMETRES<9>

********************
* Test des erreurs *
********************

IF W_PeriodeDebut = "" THEN
	W_Sortie = "ERREUR : Vous devez saisir une priode de dbut."
	RETURN
END

IF W_PeriodeFin = "" THEN
	W_Sortie = "ERREUR : Vous devez saisir une periode de fin."
	RETURN
END

*IF W_RubSaisie2 = "" AND W_RubSaisie17 = "" AND W_RubCharge = "" THEN
*	W_Sortie = "ERREUR : Vous devez au moins saisir un code rubrique de saisie ou rubrique de charge."
*	RETURN
*END

**************
* Traitement *
**************

W_Requete = 'SSELECT DETAILCALCUL'
W_RequeteDet = ' AVEC PeriodeDetailCalcul <= "':W_PeriodeFin:'"'
W_RequeteDet = W_RequeteDet:' AND AVEC PeriodeDetailCalcul >= "':W_PeriodeDebut:'"'

* Modif Greg - 02/03/11 - Ajout du secteur aidant comme critre non obligatoire.
IF W_Secteur<>"" THEN
	W_RequeteDet = W_RequeteDet:' AND AVEC SecteurAidantDetailCalcul = "':W_Secteur:'"'
END

IF W_Entite # "" THEN
	W_RequeteDet = W_RequeteDet:' AND AVEC CodAssoContratDetailCalcul = "':W_Entite:'"'
END

*--Modif flavien--06/01/2011--Possibilit de faire une extraction sur 1 code aidant
IF W_CodeAidant # "" THEN
	W_RequeteDet = W_RequeteDet:' AND AVEC CodeAidantDetailCalcul = "':W_CodeAidant:'"'
END

IF W_TypeAct # "" THEN
	W_RequeteDet = W_RequeteDet:' AND AVEC TypeActiviteDetail = "':W_TypeAct:'"'
END
W_Requete=W_Requete:W_RequeteDet

W_Passe="FAUX"
IF W_RubSaisie2 # "" THEN
	W_Requete = W_Requete:' AND AVEC 2 = "':W_RubSaisie2:'"'
	W_Passe="VRAI"
END

IF W_RubSaisie17 # "" THEN
	IF W_Passe="VRAI" THEN
		W_Requete = W_Requete:' OR ':W_RequeteDet
	END 
	W_Requete = W_Requete:' AND AVEC 17 = "':W_RubSaisie17:'"'
	W_Passe="VRAI"
END

IF W_RubCharge # "" THEN
	IF W_Passe="VRAI" THEN
		W_Requete = W_Requete:' OR ':W_RequeteDet
	END 
	W_Requete = W_Requete:' AND AVEC 8 = "':W_RubCharge:'"'
END

EXECUTE W_Requete
EXECUTE 'SAUVE-LISTE W_RESULTAT' 
EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN
	* -- Modification mikael le 05/04/2011
	READ ENR_QUALIF FROM F.TABLES, "QUALIF" ELSE ENR_QUALIF=""
	READ ENR_REGROUPBUDGET FROM F.TABLES, "REGROUPBUDGET" ELSE ENR_REGROUPBUDGET=""
	* -- fin modification
	
	READ ENR_TABLES FROM F.TABLES, "TYPEORGANISME" ELSE ENR_TABLES = ""
	W_MaxTypeOrganisme = DCOUNT(ENR_TABLES<2>,CHAR(253))
	* -- modification mikael
	W_CSV<1> = "Periode;Code aidant;Nom Prnom aidant;Nom Patronymique;Code Employeur; Nom employeur;Code rubrique de saisie avant brut;Libelle rubrique de saisie avant brut;"
	W_CSV<1> = W_CSV<1>:"base rubrique de saisie avant brut;taux rubrique de saisie avant brut;montant rubrique de saisie avant brut;Code rub. de saisie MOD;Lib. rub. de saisie MOD;Base rub. de saisie MOD;Mont. saisie MOD;Act. saisie MOD;"
	W_CSV<1> = W_CSV<1>:"Code rub 'DONT';Lib rub 'DONT';Base rub 'DONT';Taux rub 'DONT';Montant rub 'DONT';"
	W_CSV<1> = W_CSV<1>:"Code Rubrique de saisie aprs net;"
	W_CSV<1> = W_CSV<1>:"Libell Rubrique de saisie aprs net;base Rubrique de saisie aprs net;taux Rubrique de saisie aprs net;montant Rubrique de saisie aprs net;"
	W_CSV<1> = W_CSV<1>:"Code Rubrique de charge Salariale;Libell Rubrique de charge Salariale;Type Charge;Base Rubrique de charge Salariale;Taux Rubrique de charge Salariale;Montant Rubrique de charge Salariale;"
	W_CSV<1> = W_CSV<1>:"Base Rubrique de charge Patronale;Taux Rubrique de charge Patronale;Montant Rubrique de charge Patronale;Base brute;Montant brut;Net imposable;"
	W_CSV<1> = W_CSV<1>:"Net  payer;Secteur;Sous Secteur;Quartier;Qualification professionnelle;Fonction;Catgorie personnel;Date avenant;BaseContrat;Date dbut contrat;Date fin contrat;"
	W_CSV<1> = W_CSV<1>:"Date de naissance;Etablissement;Regroupement budget;RIB - Code banque;RIB - Code guichet;RIB - Compte;RIB - Cl compte;N. scu. aidant;Cl num. scu."
	*-- Mikael ajout ventilation comptable suite  la demande du mans
	W_CSV<1> = W_CSV<1>:";Dbit rubrique saisie;Crdit rubrique saisie;Dbit salarial rubrique de charge;Crdit salarial rubrique de charge;Dbit patronal rubrique de charge;Crdit patronal rubrique de charge"
	*-- Fin mikael
	
	
	* -- fin modification
	SELECT F.DETAILCALCUL TO W_RESULTAT
	
	LOOP
		READNEXT W_Cle FROM W_RESULTAT ELSE W_Fin = "VRAI"
	WHILE W_Fin = "FAUX" DO
	
	    READ ENR_DETAILCALCUL FROM F.DETAILCALCUL, W_Cle ELSE ENR_DETAILCALCUL = ""
	    READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, W_Cle[1,5] ELSE EN_CIVILAIDANT = ""
		
		* Modif Greg - 11/04/11 - Ajout des donnes de scu et du RIB.
		W_NumSecu=ENR_CIVILAIDANT<17>
		W_CleSecu=ENR_CIVILAIDANT<18>
		
		READ ENR_RIBAIDANT FROM F.RIBAIDANT, W_Cle[1,5] ELSE ENR_RIBAIDANT=""
		W_RibBanque=ENR_RIBAIDANT<3>
		W_RibGuichet=ENR_RIBAIDANT<4>
		W_RibCompte=ENR_RIBAIDANT<5>
		W_RibCle=ENR_RIBAIDANT<6>
		
		*Flavien ajout notion de sousecteur, quartier, datedebut, datefin de contrat, et nom patronymique
		READ ENR_SOUSSECTEUR FROM F.SOUSSECTEUR, ENR_CIVILAIDANT<32> ELSE ENR_SOUSSECTEUR = ""
		READ ENR_QUARTIER FROM F.QUARTIER, ENR_CIVILAIDANT<33> ELSE ENR_QUARTIER = ""
		W_Soussecteur = ENR_SOUSSECTEUR<1>
		W_Quartier = ENR_QUARTIER<1>
		W_NomPatronymique = ENR_CIVILAIDANT<4>
		*Mika ajout notion de secteur suite a la demande de saumur par rapport  la rubrique KM
		READ ENR_SECTEUR FROM F.SECTEUR, ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR = ""
		W_Secteur=ENR_SECTEUR<1>
		
		READ ENR_CONTRAT FROM F.CONTRAT, W_Cle[1,8] ELSE ENR_CONTRAT = ""
		W_DateDebCont = OCONV(ENR_CONTRAT<7>,"D4/")
		W_DateFinCont = OCONV(ENR_CONTRAT<8>,"D4/")
		* -- Modification Matthieu - Le 29/07/2010	
		* W_FinMois = ICONV("30/":W_Cle[13,2]:"/":W_Cle[9,4],"D4/")
		* modif vanessa 27/07/2012 (car le 30 fvrier, il aime pas...)
		W_Mois=W_Cle[13,2]
		W_An=W_Cle[9,4]
		W_Mois=W_Mois+1
		IF W_Mois = "13" THEN
			W_Mois="01"
			W_An=W_An+1
		END
		W_FinMois=ICONV("01/":W_Mois:"/":W_An,"D4/")-1
		
		W_Pos = 0
		FOR W_Av = 1 TO DCOUNT(ENR_CONTRAT<15>,CHAR(253))
			IF ENR_CONTRAT<15,W_Av> <= W_FinMois THEN
				W_Pos = W_Av
			END ELSE
				EXIT
			END
		NEXT W_Av
		
		IF W_Pos = 0 THEN W_Pos = ENR_CONTRAT<15,DCOUNT(ENR_CONTRAT<15>,CHAR(253))>
		
		W_DateEffet = OCONV(ENR_CONTRAT<15,W_Pos>,"D4/")
		
		W_CategoriePerso = ""
		IF ENR_CONTRAT<20,W_Pos> # "" THEN
			READ ENR_GRILLE FROM F.GRILLESCC, ENR_CONTRAT<20,W_Pos> ELSE ENR_GRILLE = ""
			W_CategoriePerso = ENR_GRILLE<7>
		END ELSE
			W_CategoriePerso = ENR_CONTRAT<108,DCOUNT(ENR_CONTRAT<108>,CHAR(253))>
		END

		W_Hres = 0
		BEGIN CASE
			  CASE ENR_CONTRAT<25,W_Pos> = "1"
			  W_Hres = INT(((ENR_CONTRAT<24,W_Pos>*52)/12) + (1/2))

			  CASE ENR_CONTRAT<25,W_Pos> = "2"
			  W_Hres = INT(((ENR_CONTRAT<24,W_Pos>*26)/12) + (1/2))

			  CASE ENR_CONTRAT<25,W_Pos> = "3"
			  W_Hres = INT(ENR_CONTRAT<24,W_Pos> + 1/2)

			  CASE ENR_CONTRAT<25,W_Pos> = "4"
			  W_Hres = INT(((ENR_CONTRAT<24,W_Pos>)/12) + (1/2))

			  CASE 1
			  W_Hres = 0
		END CASE
		W_Hres=W_Hres/100
		
		* -- Fin Modification
		
		W_QualifProf=""
		IF DCOUNT(ENR_CONTRAT<16>,CHAR(253)) = 0 THEN
			W_QualifProf=ENR_CONTRAT<16>
		END ELSE
			W_QualifProf=ENR_CONTRAT<16,DCOUNT(ENR_CONTRAT<16>,CHAR(253))>
		END		
		
		* -- modification mikael le 05/04/2011
		W_RegroupBudget=""
		IQualif=""
		IRegroup=""
		
		FOR IQualif = 1 TO DCOUNT(ENR_QUALIF<2>,CHAR(253))
			IF W_QualifProf = ENR_QUALIF<2,IQualif> THEN
				FOR IRegroup=1 TO DCOUNT(ENR_REGROUPBUDGET<2>,CHAR(253))
					IF ENR_QUALIF<4,IQualif>=ENR_REGROUPBUDGET<2,IRegroup> THEN
						W_RegroupBudget=ENR_REGROUPBUDGET<3,IRegroup>
						EXIT
					END
				NEXT IRegroup
				EXIT
			END
		NEXT IQualif
		
		* -- fin modification

		IF W_TypeAct = "M" THEN
			READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE = ""
			W_CodeEmpl=ENR_CONTRAT<3>
			W_NomEmpl=ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
		END ELSE
			READ ENR_ASSOCIATION FROM F.ASSOCIATION,ENR_CONTRAT<3>[1,3] ELSE ENR_ASSOCIATION = ""
			W_CodeEmpl=ENR_CONTRAT<3>[1,3]
			W_NomEmpl=ENR_ASSOCIATION<1>
			READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,ENR_CONTRAT<3> ELSE ENR_ETABLISSEMENT = ""
			W_Etablissement=ENR_ETABLISSEMENT<1>
		END
		
		IF ENR_DETAILCALCUL<2> # "" THEN
			W_Count = DCOUNT(ENR_DETAILCALCUL<2>,CHAR(253))
			FOR i = 1 TO W_Count
				IF (W_RubSaisie2="" AND W_RubSaisie17="" AND W_RubCharge="") OR (ENR_DETAILCALCUL<2,i> = W_RubSaisie2) THEN
					READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<2,i> ELSE ENR_RUBSAISIE = ""
					W_Ligne = W_Cle[9,6]:";":W_Cle[1,5]:";":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:";":W_NomPatronymique:";":W_CodeEmpl:";":W_NomEmpl:";"
					W_Ligne = W_Ligne : ENR_DETAILCALCUL<2,i>:";":ENR_RUBSAISIE<1>:";":ENR_DETAILCALCUL<3,i>/100:";":ENR_DETAILCALCUL<4,i>/10000:";":ENR_DETAILCALCUL<5,i>/100:";"
					W_Ligne = W_Ligne:";;;;;;;;;;;;;;;;;;;;;;;;;;;;":W_Secteur:";":W_Soussecteur:";":W_Quartier:";":W_QualifProf:";":ENR_CONTRAT<6>:";":W_CategoriePerso:";":W_DateEffet:";":W_Hres:";":W_DateDebCont:";":W_DateFinCont:";":OCONV(ENR_CIVILAIDANT<26>,"D4/"):";":W_Etablissement:";":W_RegroupBudget:";":W_RibBanque:";":W_RibGuichet:";":W_RibCompte:";":W_RibCle:";":W_NumSecu:";":W_CleSecu
					W_CSV<-1> = W_Ligne:";":ENR_RUBSAISIE<12>:";":ENR_RUBSAISIE<13>
				END
			NEXT i
	    END
		
		* Modif Greg - 08/04/11 - Gestion des att. 24 et 25. Ils sont  prendre en compte  partir du moment o l'utilisateur veut lister
		* au moins une rubrique avant brut. Cela est le cas si il n'a renseign ni de rubrique de charge, ni de rubrique aprs paie, car
		* cela signifie soit qu'il a saisi une rubrique avant brut, soit il n'a rien renseign pour tout lister.
		IF ENR_DETAILCALCUL<24><>"" AND W_RubSaisie17="" AND W_RubCharge="" THEN
			FOR I = 1 TO DCOUNT(ENR_DETAILCALCUL<24>,CHAR(253))
				READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<24,I> ELSE ENR_RUBSAISIE = ""
				READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_DETAILCALCUL<26,I> ELSE ENR_ACTIVITES = ""
				W_Ligne = W_Cle[9,6]:";":W_Cle[1,5]:";":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:";":W_NomPatronymique:";":W_CodeEmpl:";":W_NomEmpl:";"
				W_Ligne = W_Ligne:";;;;;":ENR_DETAILCALCUL<24,I>:";":ENR_RUBSAISIE<1>:";":ENR_DETAILCALCUL<25,I>/100:";":ENR_DETAILCALCUL<27,I>/100:";":ENR_ACTIVITES<1>:";"
				W_Ligne = W_Ligne:";;;;;;;;;;;;;;;;;;;;;;;":W_Secteur:";":W_Soussecteur:";":W_Quartier:";":W_QualifProf:";":ENR_CONTRAT<6>:";":W_CategoriePerso:";":W_DateEffet:";":W_Hres:";":W_DateDebCont:";":W_DateFinCont:";":OCONV(ENR_CIVILAIDANT<26>,"D4/"):";":W_Etablissement:";":W_RegroupBudget:";":W_RibBanque:";":W_RibGuichet:";":W_RibCompte:";":W_RibCle:";":W_NumSecu:";":W_CleSecu
				W_CSV<-1> = W_Ligne:";":ENR_RUBSAISIE<12>:";":ENR_RUBSAISIE<13>
			NEXT I
		END
		
		* Modif Greg - 27/02/12 - Gestion des lignes 'DONT'. On ne les indique que si l'utilisateur a "demand" une extraction complte.
		IF ENR_DETAILCALCUL<33><>"" AND W_RubSaisie2="" AND W_RubSaisie17="" AND W_RubCharge="" THEN
			FOR I = 1 TO DCOUNT(ENR_DETAILCALCUL<33>,CHAR(253))
				READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<33,I> ELSE ENR_RUBSAISIE = ""
				W_Ligne = W_Cle[9,6]:";":W_Cle[1,5]:";":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:";":W_NomPatronymique:";":W_CodeEmpl:";":W_NomEmpl:";"
				W_Ligne = W_Ligne:";;;;;;;;;;"
				W_Ligne = W_Ligne:ENR_DETAILCALCUL<33,I>:";":ENR_RUBSAISIE<1>:";":ENR_DETAILCALCUL<34,I>/100:";":ENR_DETAILCALCUL<35,I>/10000:";":ENR_DETAILCALCUL<36,I>/100:";"
				W_Ligne = W_Ligne:";;;;;;;;;;;;;;;;;;":W_Secteur:";":W_Soussecteur:";":W_Quartier:";":W_QualifProf:";":ENR_CONTRAT<6>:";":W_CategoriePerso:";":W_DateEffet:";":W_Hres:";":W_DateDebCont:";":W_DateFinCont:";":OCONV(ENR_CIVILAIDANT<26>,"D4/"):";":W_Etablissement:";":W_RegroupBudget:";":W_RibBanque:";":W_RibGuichet:";":W_RibCompte:";":W_RibCle:";":W_NumSecu:";":W_CleSecu
			
				W_CSV<-1> = W_Ligne:";":ENR_RUBSAISIE<12>:";":ENR_RUBSAISIE<13>
			NEXT I
		END		
		
		IF ENR_DETAILCALCUL<17> # "" THEN		
			W_Count = DCOUNT(ENR_DETAILCALCUL<17>,CHAR(253))
			FOR i = 1 TO W_Count
				IF (W_RubSaisie2="" AND W_RubSaisie17="" AND W_RubCharge="") OR (ENR_DETAILCALCUL<17,i> = W_RubSaisie17) THEN
					READ ENR_RUBSAISIE FROM F.RUBSAISIE,ENR_DETAILCALCUL<17,i> ELSE ENR_RUBSAISIE = ""				
					W_Ligne = W_Cle[9,6]:";":W_Cle[1,5]:";":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:";":W_NomPatronymique:";":W_CodeEmpl:";":W_NomEmpl:";":";;;;;;;;;;;;;;;"
					W_Ligne = W_Ligne : ENR_DETAILCALCUL<17,i>:";":ENR_RUBSAISIE<1>:";": ENR_DETAILCALCUL<18,i>/100:";":ENR_DETAILCALCUL<19,i>/10000:";":ENR_DETAILCALCUL<20,i>/100:";"
					W_Ligne = W_Ligne:";;;;;;;;;;;;;":W_Secteur:";":W_Soussecteur:";":W_Quartier:";":W_QualifProf:";":ENR_CONTRAT<6>:";":W_CategoriePerso:";":W_DateEffet:";":W_Hres:";":W_DateDebCont:";":W_DateFinCont:";":OCONV(ENR_CIVILAIDANT<26>,"D4/"):";":W_Etablissement:";":W_RegroupBudget:";":W_RibBanque:";":W_RibGuichet:";":W_RibCompte:";":W_RibCle:";":W_NumSecu:";":W_CleSecu
					W_CSV<-1> = W_Ligne:";":ENR_RUBSAISIE<12>:";":ENR_RUBSAISIE<13>
				END
			NEXT i
	    END
		
		IF ENR_DETAILCALCUL<8> # "" THEN
			W_Count = DCOUNT(ENR_DETAILCALCUL<8>,CHAR(253))
			FOR i = 1 TO W_Count
				IF (W_RubSaisie2="" AND W_RubSaisie17="" AND W_RubCharge="") OR (ENR_DETAILCALCUL<8,i> = W_RubCharge) THEN
					READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_DETAILCALCUL<8,i> ELSE ENR_RUBCHARGE = ""				
					W_LibelleTypeOrganisme=""
					FOR iTables=1 TO W_MaxTypeOrganisme
						IF ENR_TABLES<2,iTables> =ENR_RUBCHARGE<16> THEN
							W_LibelleTypeOrganisme=ENR_TABLES<3,iTables>
						END
					NEXT iTables
					
					
					W_Ligne = W_Cle[9,6]:";":W_Cle[1,5]:";":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:";":W_NomPatronymique:";":W_CodeEmpl:";":W_NomEmpl:";":";;;;;;;;;;;;;;;":";;;;;"
					W_Ligne = W_Ligne : ENR_DETAILCALCUL<8,i>:";":ENR_RUBCHARGE<1>:";":W_LibelleTypeOrganisme:";":ENR_DETAILCALCUL<9,i>/100:";":ENR_DETAILCALCUL<10,i>/1000:";":ENR_DETAILCALCUL<11,i>/100:";":ENR_DETAILCALCUL<12,i>/100:";":ENR_DETAILCALCUL<13,i>/1000:";":ENR_DETAILCALCUL<14,i>/100
					W_Ligne = W_Ligne:";;;;;":W_Secteur:";":W_Soussecteur:";":W_Quartier:";":W_QualifProf:";":ENR_CONTRAT<6>:";":W_CategoriePerso:";":W_DateEffet:";":W_Hres:";":W_DateDebCont:";":W_DateFinCont:";":OCONV(ENR_CIVILAIDANT<26>,"D4/"):";":W_Etablissement:";":W_RegroupBudget:";":W_RibBanque:";":W_RibGuichet:";":W_RibCompte:";":W_RibCle:";":W_NumSecu:";":W_CleSecu
					
					W_CSV<-1> = W_Ligne:";;;":ENR_RUBCHARGE<20>:";":ENR_RUBCHARGE<21>:";":ENR_RUBCHARGE<22>:";":ENR_RUBCHARGE<23>
				END
			NEXT i
		END
		
		W_CSV<-1> = W_Cle[9,6]:";":W_Cle[1,5]:";":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:";":W_NomPatronymique:";":W_CodeEmpl:";":W_NomEmpl:";":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;":ENR_DETAILCALCUL<6>/100:";":ENR_DETAILCALCUL<7>/100:";":ENR_DETAILCALCUL<15>/100:";":ENR_DETAILCALCUL<21>/100:";":W_Secteur:";":W_Soussecteur:";":W_Quartier:";":W_QualifProf:";":ENR_CONTRAT<6>:";":W_CategoriePerso:";":W_DateEffet:";":W_Hres:";":W_DateDebCont:";":W_DateFinCont:";":OCONV(ENR_CIVILAIDANT<26>,"D4/"):";":W_Etablissement:";":W_RegroupBudget:";":W_RibBanque:";":W_RibGuichet:";":W_RibCompte:";":W_RibCle:";":W_NumSecu:";":W_CleSecu
		
	REPEAT
	
	WRITE W_CSV ON F.FUSION, "ExtractionBulletinPaie.csv"
	W_Sortie="Le fichier 'ExtractionBulletinPaie.csv' a t gnr dans le rpertoire FUSION."
	
END ELSE
	W_Sortie="Aucun enregistrement ne correspond aux critres renseigns"
END

RETURN