*PARAMETRES*
*Lettre d'information SEPA*
*Code association |3N|TXT|O*
*Date de rfrence (JJ/MM/AAAA, vide pour date du jour) |10X|TXT|N*
*Code aid (pour traitement individuel) |5N|TXT|N*
*FIN PARAMETRES*

SUBROUTINE LETTREINFOSEPA(RETURNVAL,PARAMETRES,W_Sortie)
***********************************
* La gnration des RUM permet d'diter lettres d'informations SEPA que
* doivent retourner les bnficiaires. Afin de permettre une plus grande
* personnalisation pour les structures le demandent, ce PRX se contente
* de gnrer un fichier CSV avec les donnes ncessaires. Libre ensuite
* aux structures de crer le courrier qu'elles souhaitent sous Word.                  
*
* Grgory - 13/01/14
***********************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE RETURN
OPEN "","FUSION" TO F.FUSION ELSE RETURN
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE RETURN
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE RETURN
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE RETURN
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE RETURN
OPEN "","BIC" TO F.BIC ELSE RETURN

W_CodAssoc=PARAMETRES<1>
W_DateRef=PARAMETRES<2>
W_CodeAideParam=PARAMETRES<3>

IF W_DateRef="" THEN
	W_DateRef=OCONV(DATE(),"D4/")
END

W_DateRef=ICONV(W_DateRef,"D4/")
IF W_DateRef="" THEN
	W_Sortie="Erreur de saisie dans la date."
	RETURN
END

ENR_CIVILAIDE=""
ENR_FUSION=""
ENR_ELTSFACTAIDE=""
ENR_ASSOCIATION=""
ENR_ACTIVITES=""
ENR_ACTIVITESAIDE=""
ENR_BIC=""

READ ENR_ASSOCIATION FROM F.ASSOCIATION, W_CodAssoc THEN
	W_Asso=ENR_ASSOCIATION<1>
	W_AdresseAsso=TRIM(ENR_ASSOCIATION<3>:" ":ENR_ASSOCIATION<4>:" ":ENR_ASSOCIATION<5>:" ":ENR_ASSOCIATION<6>)
	W_ComplAdresseAsso=ENR_ASSOCIATION<7>
	W_CodePostalAsso=ENR_ASSOCIATION<8>
	W_CommuneAsso=ENR_ASSOCIATION<9>
	W_IdAsso=ENR_ASSOCIATION<22>
END ELSE
	W_Sortie="Code association inexistant."
	RETURN
END

ENR_FUSION<1>="CodeAide;NomPrenom;Adresse;ComplAdresse;CodePostal;Commune;Banque;IBAN;BIC;RUM;Asso;AdresseAsso;ComplAdressAsso;CodePostalAsso;CommuneAsso;IdAsso"

W_ExtSepa=""
IF W_CodeAideParam="" THEN
	EXECUTE 'SELECT ELTSFACTAIDE AVEC DatSortiEltsFactAide = "" OR >= "':W_DateRef:'" AND AVEC 29 <> "" PAR NomAideEltsFactAide PAR PrenomAideEltsFactAide'
END ELSE
	EXECUTE 'SELECT ELTSFACTAIDE AVEC DatSortiEltsFactAide = "" OR >= "':W_DateRef:'" AND AVEC 29 <> "" AND AVEC 0 = "':W_CodeAideParam:'"'
END
EXECUTE 'SAUVE-LISTE W_ExtSepa'
EXECUTE 'LISTE W_ExtSepa' RETURNING MSGCODE

IF MSGCODE<1> # "209" THEN
	SELECT F.ELTSFACTAIDE TO W_ExtSepa

	W_Fin = "F"
	LOOP
		READNEXT W_Cle FROM W_ExtSepa ELSE W_Fin = "O"
	WHILE W_Fin = "F"		
		READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE, W_Cle THEN
			W_CodeAide=W_Cle
			W_NomPrenom=""
			W_Adresse=""
			W_ComplAdresse=""
			W_CodePostal=""
			W_Commune=""
			W_Banque=""
			W_IBAN=""
			W_BIC=""
			W_RUM=""
		
			GOSUB 10
			IF TestActiviteValide = "OUI" THEN
				W_MV=0
				W_CountRum = DCOUNT(ENR_ELTSFACTAIDE(27),CHAR(253))
				W_TrouveRum = "NON"
				FOR lRum = 1 TO W_CountRum
					IF ENR_ELTSFACTAIDE<27,lRum> = W_CodAssoc AND ENR_ELTSFACTAIDE<31,lRum>>W_DateRef THEN
						W_MV = lRum
						EXIT
					END
				NEXT lRum
			
				IF W_MV>0 THEN
					READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_CodeAide THEN
						READ ENR_BIC FROM F.BIC, ENR_ELTSFACTAIDE<18> THEN
							* Rien
						END ELSE
							W_SelBic=""
							EXECUTE 'SELECT BIC'
							EXECUTE 'SAUVE-LISTE W_SelBic'
							EXECUTE 'LISTE W_SelBic' RETURNING MSGCODE
							
							IF MSGCODE<1> # "209" THEN
								SELECT F.BIC TO W_SelBic

								W_FinBic = "F"
								LOOP
									READNEXT W_CleBic FROM W_SelBic ELSE W_FinBic = "O"
								WHILE W_FinBic = "F"		
									READ ENR_BIC FROM F.BIC, W_CleBic THEN
										* Rien
									END ELSE
										ENR_BIC=""
									END
								REPEAT
							END ELSE
								ENR_BIC=""
							END
						END
						
						W_CodeAide=W_Cle
						W_NomPrenom=ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
						W_Adresse=TRIM(ENR_CIVILAIDE<5>:" ":ENR_CIVILAIDE<6>:" ":ENR_CIVILAIDE<7>:" ":ENR_CIVILAIDE<8>)
						W_ComplAdresse=ENR_CIVILAIDE<9>
						W_CodePostal=ENR_CIVILAIDE<10>
						W_Commune=ENR_CIVILAIDE<11>
						
						I=0
						LOOP
							I=I+1
						WHILE ENR_BIC<1,I><>""
							IF ENR_BIC<1,I> = ENR_ELTSFACTAIDE<17>  THEN
								W_Banque=ENR_BIC<2,I>
							END
						REPEAT

						W_IBAN=ENR_ELTSFACTAIDE<16>
						W_BIC=ENR_ELTSFACTAIDE<17>
						W_RUM=ENR_ELTSFACTAIDE<29,W_MV>
						
						ENR_FUSION<-1>=W_CodeAide:';':W_NomPrenom:';':W_Adresse:';':W_ComplAdresse:';':W_CodePostal:';':W_Commune:';':W_Banque:';':W_IBAN:';':W_BIC:';':W_RUM:';':W_Asso:";":W_AdresseAsso:";":W_ComplAdresseAsso:";":W_CodePostalAsso:";":W_CommuneAsso:";":W_IdAsso
					END
				END
			END
		END
	REPEAT
END

EXECUTE "EFFACER-LISTE W_ExtSepa"

IF ENR_FUSION<2><>"" THEN
	W_DateClaire=OCONV(W_DateRef,"D4/")[7,4]:'-':OCONV(W_DateRef,"D4/")[4,2]:'-':OCONV(W_DateRef,"D4/")[1,2]
	IF W_CodeAideParam="" THEN
		W_Fichier="Lettre info SEPA - Date ref ":W_DateClaire:".csv"
	END ELSE
		W_Fichier="Lettre info SEPA - Date ref ":W_DateClaire:" - ":W_NomPrenom:".csv"
	END
	WRITE ENR_FUSION ON F.FUSION,W_Fichier
	
	W_Sortie='Le fichier "':W_Fichier:'" a t gnr dans le rpertoire FUSION de la base de donnes.'
END ELSE
	W_Sortie="Aucun aid trouv."
END

RETURN
**************************************
*
*********************
10

    TestActiviteValide = "NON"
    READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE, W_CodeAide THEN
        W_CountAct = DCOUNT(ENR_ACTIVITESAIDE<1>,CHAR(253))
        FOR iAct = 1 TO W_CountAct
            W_CodeAssoAct = ENR_ACTIVITESAIDE<1,iAct>[1,3]
            IF W_CodeAssoAct = W_CodAssoc THEN
                IF ENR_ACTIVITESAIDE<3,iAct>="" THEN
                    TestActiviteValide = "OUI"
                    EXIT
                END ELSE
                    IF ENR_ACTIVITESAIDE<3,iAct> >= W_DateRef THEN
                        TestActiviteValide = "OUI"
                        EXIT
                    END
                END
			END
        NEXT iAct
	END
	
RETURN