******************************************************************
* Programme de rassemblement des informations pour l'dition des *
* listes de rattrapage.                                          *
******************************************************************
* Guillaume le 08/01/2007                                        *
******************************************************************
******************************************************************

EXECUTE 'DATE.FORMAT'
EXECUTE 'SET-DEC ,'
EXECUTE "SET-THOUS ."

**************************
* Ouverture des fichiers *
**************************
OPEN "","RATTSALANT" TO F.RATTSALANT ELSE PRINT "PROBLEME OUVERTURE RATTSALANT"
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "PROBLEME OUVERTURE CIVILAIDANT"
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "PROBLEME OUVERTURE TEMPO"
OPEN "","STATAIDANT" TO F.STATAIDANT ELSE PRINT "PROBLEME OUVERTURE STATDAIDANT"
OPEN "","SECTEUR" TO F.SECTEUR ELSE PRINT "PROBLEME OUVERTURE SECTEUR"

********************************
* Initialisation des variables *
********************************
ENR_RATTSALANT = ""
ENR_CIVILAIDANT = ""
ENR_STATAIDANT = ""
ENR_SECTEUR = ""
ENR_TEMPO = ""
W_Fini = ""
W_Cle = ""
W_CodeAidant = ""
W_CodePrec = ""
W_Tableau = ""
W_TableauValid = ""
W_ListeReq = ""

*******************************
* Rcupration des paramtres *
*******************************

PROCREAD PARAMETRES ELSE STOP

W_Entite = FIELD(PARAMETRES,"|",2)
W_ConvCol = FIELD(PARAMETRES,"|",3)
W_Tri = FIELD(PARAMETRES,"|",4)

IF W_Tri[1,1] # "T" THEN
	IF W_Tri[1,1] = "S" THEN
		W_Secteur = FIELD(PARAMETRES,"|",4)
		W_Commune = ""
	END ELSE
		W_Secteur = ""
		W_Commune = FIELD(PARAMETRES,"|",4)
	END
END ELSE
	W_Secteur = ""
	W_Commune = ""
END

W_Administratifs = FIELD(PARAMETRES,"|",5)
W_Production = FIELD(PARAMETRES,"|",6)
W_Format = FIELD(PARAMETRES,"|",7)

**************************
* Excution du programme *
**************************

* Requtage
GOSUB 100

* Parcours requte
GOSUB 200

* Enregistrement
GOSUB 300

STOP

*************
* Requtage *
*************
100

	W_Requete = 'SSELECT RATTSALANT AVEC '
	
	IF W_Administratifs = 1 THEN
		IF W_Production = 1 THEN
			W_Requete = W_Requete:'FonctionContrat = "A" OR = "P" '
		END ELSE
			W_Requete = W_Requete:'FonctionContrat = "A" '
		END
	END ELSE
		IF W_Production = 1 THEN
			W_Requete = W_Requete:'FonctionContrat = "P" '
		END
	END

	IF W_Entite # "" THEN
		W_Requete = W_Requete:'AND AVEC EntiteJuridique = "':W_Entite:'" '
	END

	IF W_ConvCol # "" THEN
		W_Requete = W_Requete:'AND AVEC ConvCol = "':W_ConvCol:'" '
	END

	IF W_Secteur # "" THEN
		
		IF W_Secteur[2,3] # "" THEN
			W_Requete = W_Requete:'AND AVEC SecteurAidant = "':W_Secteur[2,3]:'" '
		END
		W_Requete = W_Requete:'PAR LibSectAidant '
	END
	
	IF W_Commune # "" THEN
		IF W_Commune[2,5] # "" THEN
			W_Requete = W_Requete:'AND AVEC CommuneAidant = "':W_Commune[2,26]:'" '
		END
		W_Requete = W_Requete:'PAR CommuneAidant '
	END

	W_Requete = W_Requete:'PAR NomAidant PAR PrenomAidant '

	PRINT W_Requete
RETURN
	
	
	
********************
* Parcours requte *
********************
200

	EXECUTE W_Requete
	EXECUTE 'SAUVE-LISTE W_ListeReq'
	EXECUTE "LISTE W_ListeReq" RETURNING MSGCODE
	
	IF MSGCODE<1> # 209 THEN
		W_Fini = "FAUX"
		W_CodePrec = ""
		i = 0
		SELECT F.RATTSALANT TO W_ListeReq
		
		LOOP
			READNEXT W_Cle FROM W_ListeReq ELSE W_Fini = "VRAI"
			W_CodeAidant = W_Cle[1,5]
			
			IF (W_CodeAidant # W_CodePrec OR W_Fini = "VRAI") AND i # 0  THEN
				READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, W_CodePrec ELSE ENR_CIVILAIDANT = ""

				IF W_Tri[1,1] = "S" THEN
					READ ENR_SECTEUR FROM F.SECTEUR, ENR_CIVILAIDANT<31> ELSE ENR_CIVILAIDANT = ""
					W_Tableau<i,1> = ENR_SECTEUR<1>
				END ELSE
					IF W_Tri[1,1] = "C" THEN
						W_Tableau<i,1> = ENR_CIVILAIDANT<11>
					END ELSE
						W_Tableau<i,1> = ""
					END
				END
				
				W_Tableau<i,2> = W_CodePrec
				W_Tableau<i,3> = TRIM(ENR_CIVILAIDANT<2>):" ":TRIM(ENR_CIVILAIDANT<3>)
				i = i + 1
			END
			
			WHILE W_Fini = "FAUX"
				IF i = 0 THEN i = i + 1
				READ ENR_RATTSALANT FROM F.RATTSALANT, W_Cle ELSE ENR_RATTSALANT = ""
				W_Tableau<i,4> = W_Tableau<i,4> + ENR_RATTSALANT<1>
				
				W_CodePrec = W_CodeAidant
		REPEAT
	END ELSE
		W_Tableau<1> = "VIDE"
	END
	
RETURN

******************
* Enregistrement *
******************
300

	IF W_Tableau<1> = "VIDE" THEN
		WRITE W_Tableau ON F.TEMPO, "EDITRATTSAL"
		RETURN
	END

	W_Cle = ""
	IF W_Format = "G" THEN
		W_TableauValid<1> = "Libell tri;Code aidant;Nom-prnom;Montant rattrapage"
		
		j = 2
		FOR i = 1 TO DCOUNT(W_Tableau,CHAR(254))
			W_TableauValid<j> = W_Tableau<i,1>:";":W_Tableau<i,2>:";":W_Tableau<i,3>:";":W_Tableau<i,4>/100
			j = j + 1
		NEXT i
		
		W_Ordre = 1
		W_Ecrit = "FAUX"
		LOOP
			WHILE W_Ecrit = "FAUX"
				W_Cle = "SALAIREANTERIEUR":OCONV(DATE(),"D4/")[1,2]:OCONV(DATE(),"D4/")[4,2]:OCONV(DATE(),"D4/")[7,4]:W_Ordre:".csv"
				READ ENR_STATAIDANT FROM F.STATAIDANT, W_Cle ELSE ENR_STATAIDANT = ""
				
				IF ENR_STATAIDANT = "" THEN
					WRITE W_TableauValid ON F.STATAIDANT, W_Cle
					ENR_TEMPO<1> = W_Cle
					WRITE ENR_TEMPO ON F.TEMPO, "EDITRATTSAL"
					W_Ecrit = "VRAI"
				END ELSE
					W_Ordre = W_Ordre + 1
				END
		REPEAT
		
	END ELSE
		WRITE W_Tableau ON F.TEMPO, "EDITRATTSAL"
	END

RETURN