**********************************************************
*  gnration d'un fichier de type DIR qui reprend la liste des factures bnficiaires
*  pour la MAJ automatique de la compta (spcifique pour TROYES pour SAARI)
*  Programme chaine  partir d'un projet VB
*  Vanessa
*  JUILLET 2000
*  modif le 19/05/05 par fanny 
*****************************************************

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","LIENCOMPTA" TO F.LIENCOMPTA ELSE PRINT "OUVERTURE LIENCOMPTA" ;* en lecture criture
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE PRINT "OUVERTURE FACTURAIDE" ;* en lecture
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "OUVERTURE CIVILAIDE" ;* en lecture
OPEN "","FEDEASSOC" TO F.FEDEASSOC ELSE PRINT "OUVERTURE FEDEASSOC" ;* en lecture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en lecture criture
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE STOP
*********************************************************
* initialisation des variables

ENR_LIENCOMPTA=""
W_NbEnr=0
W_TotalDebit=0
ENR_TEMPO=""
W_TamponCle = ""
W_RequeteComptaFact=""
*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_Periode=FIELD(ARGUMENTS," ",2)
W_Assoc=FIELD(ARGUMENTS," ",3)
W_NomFichier=FIELD(ARGUMENTS," ",4)
*********************************************************
* PROGRAMME PRINCIPAL

   READ ENR_FEDEASSOC FROM F.FEDEASSOC,W_Assoc ELSE ENR_FEDEASSOC=""

   W_Temp='SELECT FACTURAIDE AVEC PeriodeCleFactAide = "':W_Periode:'"'
   W_Temp=W_Temp:' AND AVEC CodeSecteurFact = "':ENR_FEDEASSOC<41,1>:'"'

   W_Count=DCOUNT(ENR_FEDEASSOC<41>,CHAR(253))
   FOR i=2 TO W_Count
      W_Temp=W_Temp:' OR = "':ENR_FEDEASSOC<41,i>:'"'
   NEXT i

   W_Temp=W_Temp:' PAR NomAideFact PAR PrenomAideFact PAR-DECR 0'

   EXECUTE W_Temp
   EXECUTE 'SAUVE-LISTE W_RequeteComptaFact'
   EXECUTE "LISTE W_RequeteComptaFact" RETURNING MSGCODE

   IF MSGCODE<1>=209 THEN
      STOP
   END ELSE
      SELECT F.FACTURAIDE TO W_RequeteComptaFact
 
      W_End="FAUX"
      i=2
     
      LOOP
         READNEXT W_CleFact FROM W_RequeteComptaFact ELSE W_End = "VRAI"
	 
      WHILE W_End = "FAUX" DO
	IF W_CleFact[1,25] # W_TamponCle THEN       
	  READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_CleFact ELSE ENR_FACTURAIDE=""

         * ligne dbit
         W_NbEnr=W_NbEnr+1

         * recherche le dernier jour du mois
         W_Mois=W_Periode[5,2]+1
         W_An=W_Periode[1,4]
         IF W_Mois="13" THEN
            W_Mois="01"
            W_An=W_An+1
         END
         W_Date=ICONV("01/":W_Mois:"/":W_An,"D4/")-1
         W_Date=OCONV(W_Date,"D2/")
         W_Date=W_Date[1,2]:W_Date[4,2]:W_Date[7,2]

	   * lit le nom de l'aide
	   READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleFact[1,5] ELSE ENR_CIVILAIDE=""
	   W_Nom=CONVERT(" ","",ENR_CIVILAIDE<2>)
	   W_Nom = W_Nom[1,3]
         *ENR_LIENCOMPTA<i>="VEN":W_Date:"FC411000       XM":W_CleFact[1,5]:"000000 "
         ENR_LIENCOMPTA<i>="VEN":W_Date:"FC411000       X":W_Nom:W_CleFact[1,5]:"00000"


         * calcule le montant de la facture
         W_Montant=0
         W_Count=DCOUNT(ENR_FACTURAIDE<5>,CHAR(253))
         FOR j=1 TO W_Count
            W_Montant = W_Montant + ENR_FACTURAIDE<5,j>
         NEXT j
         IF ENR_FACTURAIDE<9> # "" THEN
            W_Montant = W_Montant + ENR_FACTURAIDE<9>
         END

         W_TotalDebit=W_TotalDebit+W_Montant

         W_NumFact=INT(W_CleFact[16,10])
         IF W_Montant >= 0 THEN
            ENR_LIENCOMPTA<i>=ENR_LIENCOMPTA<i>:W_NumFact:SPACE(13-LEN(W_NumFact))
         END ELSE
            IF LEN(W_NumFact) > 7 THEN
               ENR_LIENCOMPTA<i>=ENR_LIENCOMPTA<i>:"AVOIR ":W_NumFact[1,7]
            END ELSE
               ENR_LIENCOMPTA<i>=ENR_LIENCOMPTA<i>:"AVOIR ":W_NumFact:SPACE(7-LEN(W_NumFact))
            END
         END

         * lit le nom prnom de l'aid
         READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CleFact[1,5] ELSE ENR_CIVILAIDE=""
         W_Aidant=ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>

         IF LEN(W_Aidant) > 25 THEN
            ENR_LIENCOMPTA<i> = ENR_LIENCOMPTA<i>:W_Aidant[1,25]
         END ELSE
            ENR_LIENCOMPTA<i> = ENR_LIENCOMPTA<i>:W_Aidant:SPACE(25-LEN(W_Aidant))
         END

	   READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,W_CleFact[1,5] ELSE ENR_ELTSFACTAIDE=""
 
	   IF ENR_ELTSFACTAIDE<20> # "" AND ENR_ELTSFACTAIDE<25> # 1 THEN
	      W_ModePaiement = "P" 
	   END ELSE
	      W_ModePaiement = "C"
	   END

	   * rcupration de la date d'chance
	   
	   W_DateEcheance = OCONV(ENR_FACTURAIDE<12>,"D4/")
	   W_DateEcheance = W_DateEcheance[1,2]:W_DateEcheance[4,2]:W_DateEcheance[9,2]
	   W_DateEcheance = W_DateEcheance "R%6"	   

         IF W_Montant # 0 THEN
            *ENR_LIENCOMPTA<i> = ENR_LIENCOMPTA<i>:W_ModePaiement:W_Date:"D":SPACE(10):SPACE(9-LEN(W_Montant)):W_Montant[1,LEN(W_Montant)-2]:".":W_Montant[LEN(W_Montant)-1,2]:"N"
      	ENR_LIENCOMPTA<i> = ENR_LIENCOMPTA<i>:W_ModePaiement:W_DateEcheance:"D":SPACE(10):SPACE(9-LEN(W_Montant)):W_Montant[1,LEN(W_Montant)-2]:".":W_Montant[LEN(W_Montant)-1,2]:"N"
	   END ELSE
	    W_Montant = "000"
            *ENR_LIENCOMPTA<i> = ENR_LIENCOMPTA<i>:W_ModePaiement:W_Date:"D":SPACE(10):SPACE(9-LEN(W_Montant)):W_Montant[1,LEN(W_Montant)-2]:".":W_Montant[LEN(W_Montant)-1,2]:"N"
            ENR_LIENCOMPTA<i> = ENR_LIENCOMPTA<i>:W_ModePaiement:W_DateEcheance:"D":SPACE(10):SPACE(9-LEN(W_Montant)):W_Montant[1,LEN(W_Montant)-2]:".":W_Montant[LEN(W_Montant)-1,2]:"N"         
	   END

         i=i+1

         * ligne crdit
         W_NbEnr=W_NbEnr+1

         ENR_LIENCOMPTA<i>="VEN":W_Date:"FC706100    ":SPACE(17)

         W_NumFact=INT(W_CleFact[16,10])
         IF W_Montant >= 0 THEN
            ENR_LIENCOMPTA<i>=ENR_LIENCOMPTA<i>:W_NumFact:SPACE(13-LEN(W_NumFact))
         END ELSE
            IF LEN(W_NumFact) > 7 THEN
               ENR_LIENCOMPTA<i>=ENR_LIENCOMPTA<i>:"AVOIR ":W_NumFact[1,7]
            END ELSE
               ENR_LIENCOMPTA<i>=ENR_LIENCOMPTA<i>:"AVOIR ":W_NumFact:SPACE(7-LEN(W_NumFact))
            END
         END

         ENR_LIENCOMPTA<i> = ENR_LIENCOMPTA<i>:W_Aidant[1,25]:SPACE(25-LEN(W_Aidant[1,25]))

         *ENR_LIENCOMPTA<i> = ENR_LIENCOMPTA<i>:W_ModePaiement:W_Date:"C":SPACE(10):SPACE(9-LEN(W_Montant)):W_Montant[1,LEN(W_Montant)-2]:".":W_Montant[LEN(W_Montant)-1,2]:"N"
         ENR_LIENCOMPTA<i> = ENR_LIENCOMPTA<i>:W_ModePaiement:W_DateEcheance:"C":SPACE(10):SPACE(9-LEN(W_Montant)):W_Montant[1,LEN(W_Montant)-2]:".":W_Montant[LEN(W_Montant)-1,2]:"N"
         

         i=i+1
	END
	W_TamponCle = W_CleFact[1,25]
      REPEAT
   END

   WRITE ENR_LIENCOMPTA ON F.LIENCOMPTA,W_NomFichier

   ENR_TEMPO<1>=W_NbEnr
   ENR_TEMPO<2>=W_TotalDebit
   WRITE ENR_TEMPO ON F.TEMPO,"RAPPORTCOMPTAFACT"

STOP
