***********************************************************
* PROGRAMME QUI REGENERE LE FICHIER DETAILCALCUL          *
* SUITE A MIGRATION MANDATAIRE DE TOULOUSE                *
* VANESSA                                                 *
* MARS 2004                                               *
***********************************************************

**************************************
* Ouvertures des fichiers            *
**************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","FUSION" TO F.FUSION ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE STOP
**************************************
* Dclaration des variables          *
**************************************

W_NomContrat=""
W_NomFichier=""
W_Ligne=2
ENR_DETAILCALCUL=""
W_Requete=""


W_NomFichierExcel="CLASSEURTEST.csv"


**************************************
* Programme principal                *
**************************************

	READ ENR_FUSION FROM F.FUSION,W_NomFichierExcel ELSE ENR_FUSION=""
	READ ENR_RUBCHARGE FROM F.RUBCHARGE,"020" ELSE ENR_RUBCHARGE=""
	W_TauxSal=ENR_RUBCHARGE<10>

	EXECUTE 'SELECT CONTRAT AVEC 65 # "O" AND AVEC 1 = "02" PAR NomPrenomAidantContrat PAR NomAideContrat PAR PrenomAideContrat'
	EXECUTE 'SAUVE-LISTE W_Requete'
	EXECUTE "LISTE W_Requete" RETURNING MSGCODE

	IF MSGCODE<1>=209 THEN
		STOP
	END ELSE
		SELECT F.CONTRAT TO W_Requete

		W_FINI = "FAUX"
		LOOP
			READNEXT W_CLE FROM W_Requete ELSE W_FINI = "VRAI"
		WHILE W_FINI = "FAUX" DO
			READ ENR_CONTRAT FROM F.CONTRAT,W_CLE ELSE ENR_CONTRAT=""
			READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_CLE[1,5] ELSE ENR_CIVILAIDANT=""
			READ ENR_CIVILAIDE FROM F.CIVILAIDE,ENR_CONTRAT<3> ELSE ENR_CIVILAIDE=""

			* met en forme nom et prnom aidant / aid du contrat
                        W_NomContrat=ENR_CIVILAIDANT<2>:ENR_CIVILAIDANT<3>:ENR_CIVILAIDE<2>:ENR_CIVILAIDE<3>
			W_Var=W_NomContrat
			GOSUB 20
			W_NomContrat=W_Var
			W_NomContrat=ICONV(W_NomContrat,"MCA")
			W_NomContrat=ICONV(W_NomContrat,"MCU")

			GOSUB 5

			LOOP    
			UNTIL W_NomContrat <= W_NomFichier OR W_NomFichier = "" DO

      				W_Ligne=W_Ligne+1
				GOSUB 5

			REPEAT

			IF W_NomContrat=W_NomFichier THEN

				W_Sauve=W_NomFichier
				LOOP 
				WHILE W_Sauve=W_NomFichier AND W_NomFichier # "" DO

					GOSUB 10

      					W_Ligne=W_Ligne+1
					GOSUB 5

				REPEAT
			END
		REPEAT

	END

STOP

*******************************************************
5
* mise en forme nom et prnom aidant / aid du fichier csv 

	W_NomFichier=FIELD(ENR_FUSION<W_Ligne>,";",5):FIELD(ENR_FUSION<W_Ligne>,";",6)
	W_Var=W_NomFichier
	GOSUB 20
	W_NomFichier=W_Var
	W_NomFichier=ICONV(W_NomFichier,"MCA")
	W_NomFichier=ICONV(W_NomFichier,"MCU")

RETURN

*******************************************************
10
* criture DETAILCALCUL

	W_PeriodeDeb=OCONV(ENR_CONTRAT<7>,"D4/")
	W_PeriodeDeb=W_PeriodeDeb[7,4]:W_PeriodeDeb[4,2]
	IF ENR_CONTRAT<8> # "" THEN
		W_PeriodeFin=OCONV(ENR_CONTRAT<8>,"D4/")
		W_PeriodeFin=W_PeriodeFin[7,4]:W_PeriodeFin[4,2]
	END ELSE
		W_PeriodeFin="999999"
	END

	W_Periode=FIELD(ENR_FUSION<W_Ligne>,";",1)

	IF W_PeriodeDeb <= W_Periode AND W_PeriodeFin >= W_Periode THEN

		ENR_DETAILCALCUL<1>="P"
		ENR_DETAILCALCUL<6>=FIELD(ENR_FUSION<W_Ligne>,";",8) * 100
 		ENR_DETAILCALCUL<7>=FIELD(ENR_FUSION<W_Ligne>,";",9) * 100
		ENR_DETAILCALCUL<8>="020"
		ENR_DETAILCALCUL<9>=FIELD(ENR_FUSION<W_Ligne>,";",9) * 100
		ENR_DETAILCALCUL<10>=W_TauxSal
		W_Montant=INT((ENR_DETAILCALCUL<9>*ENR_DETAILCALCUL<10>)/1000)
		ENR_DETAILCALCUL<11>=-W_Montant
		ENR_DETAILCALCUL<12>=FIELD(ENR_FUSION<W_Ligne>,";",9) * 100
		ENR_DETAILCALCUL<13>="0"
		ENR_DETAILCALCUL<14>="0"
		ENR_DETAILCALCUL<15>=FIELD(ENR_FUSION<W_Ligne>,";",15) * 100
		ENR_DETAILCALCUL<16>=FIELD(ENR_FUSION<W_Ligne>,";",16) * 100
		ENR_DETAILCALCUL<21>=FIELD(ENR_FUSION<W_Ligne>,";",24) * 100

		FOR i=29 TO 32
			ENR_DETAILCALCUL<i>="0"
  		NEXT i
		FOR i=41 TO 47
			ENR_DETAILCALCUL<i>="0"
  		NEXT i

   		WRITE ENR_DETAILCALCUL ON F.DETAILCALCUL,W_CLE:FIELD(ENR_FUSION<W_Ligne>,";",1)

	END

RETURN

*****************************************************************************
*  CONVERTIR LETTRE ACCENTUEE 
20

   W_Var=CONVERT("","a",W_Var)
   W_Var=CONVERT("","a",W_Var)
   W_Var=CONVERT("","e",W_Var)
   W_Var=CONVERT("","e",W_Var)
   W_Var=CONVERT("","e",W_Var)
   W_Var=CONVERT("","e",W_Var)
   W_Var=CONVERT("","o",W_Var)
   W_Var=CONVERT("","u",W_Var)

RETURN
