**********************************************************
*  dition de la provision des congs pays
*  Programme chaine  partir d'un projet VB
*  Vanessa
*  MARS 2004
**********************************************************

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "DATE.FORMAT"
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE PRINT "OUVERTURE ACTIVITES" ;* en lecture
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE PRINT "OUVERTURE ASSOCIATION" ;* en lecture
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE PRINT "OUVERTURE CONSTANTESPAIE" ;* en lecture
OPEN "","CONTRAT" TO F.CONTRAT ELSE PRINT "OUVERTURE CONTRAT" ;* en lecture
OPEN "","CONVENTIONCOL" TO F.CONVENTIONCOL ELSE PRINT "OUVERTURE CONVENTIONCOL" ;* en lecture
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE PRINT "OUVERTURE DETAILCALCUL" ;* en lecture
OPEN "","ETABLISSEMENT" TO F.ETABLISSEMENT ELSE PRINT "OUVERTURE ETABLISSEMENT" ;* en lecture
OPEN "","SECTEUR" TO F.SECTEUR ELSE PRINT "OUVERTURE SECTEUR" ;* en lecture
OPEN "","TABLES" TO F.TABLES ELSE PRINT "OUVERTURE TABLES" ;* en lecture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en criture

*********************************************************
* initialisation des variables

W_Requete=""
W_RequeteDet=""
W_Temp=""
W_Page=1
W_CumulTotal=0
W_Cumul=0
W_CumulSecteur=0
W_Type=""
W_Secteur=""
W_SectionAnal=""
W_ChangePage=0
*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_User=FIELD(ARGUMENTS," ",2)
W_Entite=FIELD(ARGUMENTS," ",3)
W_DernierJour=FIELD(ARGUMENTS," ",4)
W_TypeEclatement=FIELD(ARGUMENTS," ",5)
W_ListeDetail=FIELD(ARGUMENTS," ",6)
*********************************************************
* PROGRAMME PRINCIPAL

   EXECUTE "SET-DEC ,"

   READ ENR_TEMPO FROM F.TEMPO,"PROVCP":W_User THEN
      DELETE F.TEMPO,"PROVCP":W_User
   END
   ENR_TEMPO=""

   READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_Entite ELSE ENR_ASSOCIATION=""
   READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,"1" ELSE ENR_CONSTANTESPAIE=""
   READ ENR_SECTANAL FROM F.TABLES,"SECTANAL" ELSE ENR_SECTANAL=""

   * slectionne les contrats non mandataires actifs au dernier jour du mois
   W_Temp = 'SSELECT CONTRAT AVEC 1 # "02" AND AVEC 2 = "':W_Entite:'"'
   W_Temp = W_Temp:' AND AVEC 7 <= "':W_DernierJour:'"'
   W_Temp = W_Temp:' AND AVEC 8 > "':W_DernierJour:'" OR = ""'
   W_Temp = W_Temp:' AND AVEC 65 # "O"'

   IF W_TypeEclatement = 2 THEN
      W_Temp = W_Temp:' PAR 6 PAR NomPrenomAidantContrat PAR CodeAidant'
   END ELSE
      IF W_TypeEclatement = 3 THEN
         W_Temp = W_Temp:' PAR 6 PAR LibSecteurContrat PAR NomPrenomAidantContrat PAR CodeAidant'
      END
   END

   EXECUTE W_Temp
   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_End="FAUX"
      i=1
      W_Premier="VRAI"
      GOSUB 10

      LOOP
         READNEXT W_Cle FROM W_Requete ELSE W_End = "VRAI"
      WHILE W_End = "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=""


	 IF W_Premier = "VRAI" THEN 
            W_Type=ENR_CONTRAT<6>
            W_Secteur=ENR_CIVILAIDANT<31>

            IF W_TypeEclatement = 2 THEN
               GOSUB 30
            END ELSE
               IF W_TypeEclatement = 3 THEN
                  GOSUB 40
                  GOSUB 30
               END
            END

            W_Premier = "FAUX"
         END

         GOSUB 50

         IF W_TypeEclatement # 1 THEN
            IF (W_TypeEclatement = 2 AND W_Type=ENR_CONTRAT<6>) OR (W_TypeEclatement = 3 AND W_Type=ENR_CONTRAT<6> AND W_Secteur=ENR_CIVILAIDANT<31>) THEN
               GOSUB 110

            END ELSE
               IF W_TypeEclatement = 3 AND W_Secteur=ENR_CIVILAIDANT<31> THEN
                  W_Changt="FAUX"
                  GOSUB 120
               END ELSE
                  W_Changt="VRAI"
                  GOSUB 120
               END
            END            

            W_CumulTotal=W_CumulTotal+W_MontantJourneeTotal

            IF MOD(W_ChangePage,45) = 0 THEN
               ENR_TEMPO<i>="#"
               i=i+1
               GOSUB 10

               IF W_TypeEclatement = 3 THEN
                  GOSUB 40
               END

               GOSUB 30

            END

         END
      REPEAT

      IF W_TypeEclatement = 1 THEN
         W_NbSectAnal=DCOUNT(W_SectionAnal<1>,CHAR(253))

         FOR j=1 TO W_NbSectAnal
            GOSUB 130
         NEXT j

         GOSUB 5

         ENR_TEMPO<i>="{TOTAL":SPACE(59):W_CumulTotal*100 "R26(#12)":"}"
         i=i+1
         W_ChangePage=W_ChangePage+1

      END ELSE

         IF W_ListeDetail = 1 THEN
            GOSUB 5
            ENR_TEMPO<i>="Total personnel":SPACE(49):W_Cumul*100 "R26(#12)"
            i=i+1
            W_ChangePage=W_ChangePage+1
         END ELSE
            ENR_TEMPO<i>=SPACE(64):W_Cumul*100 "R26(#12)"
            i=i+1
            W_ChangePage=W_ChangePage+1
         END
         
         IF W_TypeEclatement = 3 THEN
            GOSUB 5
            ENR_TEMPO<i>="Total secteur":SPACE(51):W_CumulSecteur*100 "R26(#12)"
            i=i+1
            W_ChangePage=W_ChangePage+1
         END

         GOSUB 5

         ENR_TEMPO<i>="{TOTAL":SPACE(59):W_CumulTotal*100 "R26(#12)":"}"
         i=i+1
         W_ChangePage=W_ChangePage+1

      END
      WRITE ENR_TEMPO ON F.TEMPO,"PROVCP":W_User

   END

   EXECUTE "SET-DEC ."

STOP

*****************************************************************************
*  SAUT LIGNE
5

   ENR_TEMPO<i>=" "
   i=i+1
   W_ChangePage=W_ChangePage+1

RETURN

*****************************************************************************
*  ENTETE PAGE
10

   W_ChangePage=0
   ENR_TEMPO<i>="Date : ":OCONV(DATE(),"D4/"):SPACE(90):"Page : ":W_Page
   W_Page=W_Page+1
   i=i+1
   W_ChangePage=W_ChangePage+1
   GOSUB 5

   W_Date = OCONV(DATE(), "D")
   GOSUB 140
   W_Date = W_Date[1,3]:W_Mois:" ":W_Date[8,4]

   ENR_TEMPO<i>=SPACE(30):"PROVISION DES CONGES A PAYER - POINT AU ":W_Date
   i=i+1
   W_ChangePage=W_ChangePage+1

   GOSUB 5
   ENR_TEMPO<i>="|Entit juridique|"
   ENR_TEMPO<i>=ENR_TEMPO<i>:" : ":ENR_ASSOCIATION<1>:SPACE(37-LEN(ENR_ASSOCIATION<1>)):" "
   GOSUB 20
   ENR_TEMPO<i>=ENR_TEMPO<i>:W_Adresse
   i=i+1
   W_ChangePage=W_ChangePage+1

   IF ENR_ASSOCIATION<7> # "" THEN
      ENR_TEMPO<i>=SPACE(57):ENR_ASSOCIATION<7>
      i=i+1
      W_ChangePage=W_ChangePage+1
   END
   ENR_TEMPO<i>=SPACE(57):ENR_ASSOCIATION<8>:" ":ENR_ASSOCIATION<9>
   i=i+1
   W_ChangePage=W_ChangePage+1

RETURN

*****************************************************************************
*  MISE EN FORME ADRESSE
20

    W_Adresse = ""
    
    IF ENR_ASSOCIATION<3> # "" THEN
       W_Adresse = ENR_ASSOCIATION<3>:SPACE(1)
    END
    
    IF ENR_ASSOCIATION<4> # "" THEN
        W_Adresse = W_Adresse:ENR_ASSOCIATION<4>:SPACE(1)
    END
    
    IF ENR_ASSOCIATION<5> # "" THEN
        W_Adresse = W_Adresse:ENR_ASSOCIATION<5>:SPACE(1)
    END
    
    IF ENR_ASSOCIATION<6> # "" THEN
        W_Adresse = W_Adresse:ENR_ASSOCIATION<6>
    END

RETURN

*****************************************************************************
*  ENTETE PERSONNEL
30

   GOSUB 5
   GOSUB 5

   ENR_TEMPO<i>="|Type personnel|"
   IF W_Type="P" THEN
      ENR_TEMPO<i>=ENR_TEMPO<i>:"   : Production":SPACE(30)
   END ELSE
      ENR_TEMPO<i>=ENR_TEMPO<i>:"   : Administration":SPACE(26)
   END

   ENR_TEMPO<i>=ENR_TEMPO<i>:"|Montant provision|"
   i=i+1
   W_ChangePage=W_ChangePage+1

   GOSUB 5

RETURN

*****************************************************************************
*  ENTETE SECTEUR
40

   READ ENR_SECTEUR FROM F.SECTEUR,W_Secteur ELSE ENR_SECTEUR=""
   ENR_TEMPO<i>="|Secteur|"
   ENR_TEMPO<i>=ENR_TEMPO<i>:"          : ":ENR_SECTEUR<1>
   i=i+1
   W_ChangePage=W_ChangePage+1

RETURN

*****************************************************************************
*  CALCUL CONGES
50

   READ ENR_CONVENTIONCOL FROM F.CONVENTIONCOL,ENR_CONTRAT<1> ELSE ENR_CONVENTIONCOL=""

   * calcule le nombre de jours de congs restants
   W_JoursCongesDispo=ENR_CONTRAT<39>+ENR_CONTRAT<41>
   IF ENR_CONTRAT<83> # "" THEN
      W_JoursCongesDispo=W_JoursCongesDispo-ENR_CONTRAT<83>
   END

   * transforme congs ouvrs en ouvrable
   IF ENR_CONVENTIONCOL<2> = 1 THEN
      W_JoursCongesDispo=W_JoursCongesDispo * 6 / 5
   END

   W_JoursCongesAncDispo=ENR_CONTRAT<48>
   IF ENR_CONVENTIONCOL<12> = 1 THEN
      W_JoursCongesAncDispo=W_JoursCongesAncDispo * 6 / 5
   END
   W_JoursCongesDispo=W_JoursCongesDispo+W_JoursCongesAncDispo

   W_JoursCongesDispo=W_JoursCongesDispo/100
 
   * congs en-cours d'acquisition
   W_JoursCongesEnCours=ENR_CONTRAT<44>/100

   * recherche l'avenant concern
   W_Rang=1
   IF ENR_CONTRAT<15,2> # "" THEN
      W_CountAvenant = DCOUNT(ENR_CONTRAT<15>,CHAR(253))
      W_Rang=W_CountAvenant
      LOOP
      WHILE ENR_CONTRAT<15,W_CountAvenant> > DATE() AND W_CountAvenant # 1 
         W_CountAvenant=W_CountAvenant-1
         W_Rang=W_CountAvenant
      REPEAT
   END

   * dtermination de la valeur horaire d'une journe
   IF ENR_CONTRAT<5> = "M" OR ENR_CONTRAT<25,W_Rang> = 4 THEN 
      * vrifie si jours ouvrables ou ouvrs
      BEGIN CASE
         CASE ENR_CONTRAT<25,W_Rang>=1
            W_ValeurJournee=ENR_CONTRAT<24,W_Rang> / 6
         CASE ENR_CONTRAT<25,W_Rang>=2
            W_ValeurJournee=ENR_CONTRAT<24,W_Rang> / 12
         CASE ENR_CONTRAT<25,W_Rang>=3
            W_ValeurJournee=ENR_CONTRAT<24,W_Rang> * 12 / 312
         CASE ENR_CONTRAT<25,W_Rang>=4
            W_ValeurJournee=ENR_CONTRAT<24,W_Rang> / 312
      END CASE
      W_ValeurJournee=W_ValeurJournee/100
      * si valeur inf. valeur de base
      IF W_ValeurJournee < (ENR_CONTRAT<42>/100) THEN
         W_ValeurJournee = ENR_CONTRAT<42>/100
      END
   END ELSE
      * pas mensualis
      * vrifie si jours ouvrables ou ouvrs
      IF ENR_CONVENTIONCOL<2> = 2 THEN
         W_ValeurJournee = ENR_CONTRAT<42>/100
      END ELSE
         W_ValeurJournee = ENR_CONTRAT<42>/100 * (5 / 6)
      END
   END

   * recherche du taux horaire
   IF ENR_CONTRAT<23,1> # "0" AND ENR_CONTRAT<23,1> # "" AND ENR_CONTRAT<14,2> = "" THEN
      W_AFacturer=ENR_CONTRAT<23,1>/1000
   END ELSE

      W_PARAMS=""
      W_SORTIE=""
      W_PARAMS<1>=W_Cle
      W_PARAMS<2>="0"
      W_PARAMS<3>=OCONV(DATE(),"D4/")
      W_PARAMS<3>=W_PARAMS<3>[7,4]:W_PARAMS<3>[4,2]

      CALL CALCCOEFFTXHOR("",W_PARAMS,W_SORTIE)

      W_AFacturer=W_SORTIE<2>/1000

   END

   * recherche le taux SMIC en vigueur
   j=1
   LOOP
   UNTIL DATE() <= ENR_CONSTANTESPAIE<4,j> OR ENR_CONSTANTESPAIE<4,j> = "" DO
      j=j+1
   REPEAT

   IF ENR_CONSTANTESPAIE<4,j> = "" THEN 
      j=1
   END
   IF W_AFacturer < ENR_CONSTANTESPAIE<3,j> / 100 THEN
      W_AFacturer = ENR_CONSTANTESPAIE<3,j> / 100
   END

   READ ENR_ETABLISSEMENT FROM F.ETABLISSEMENT,ENR_CONTRAT<3> ELSE ENR_ETABLISSEMENT=""
   IF W_AFacturer < ENR_ETABLISSEMENT<31> / 100 THEN
      W_AFacturer = ENR_ETABLISSEMENT<31> / 100
   END

   * calcule le montant des congs pays
   W_MontantJournee = W_AFacturer * W_ValeurJournee
   IF W_MontantJournee > ENR_CONTRAT<43> / 100 THEN
      W_MontantJournee = W_ValeurJournee * W_JoursCongesDispo * W_AFacturer
   END ELSE
      W_MontantJournee = W_JoursCongesDispo * ENR_CONTRAT<43>/100
   END

   * calcule le montant des congs en-cours
   W_MontantJourneeEnCours = W_ValeurJournee * W_JoursCongesEnCours * W_AFacturer

   W_MontantJourneeEnCours = ENR_CONTRAT<45>/100 * W_AFacturer

   IF W_MontantJourneeEnCours < ENR_CONTRAT<46>/100 THEN
      W_MontantJourneeEnCours = ENR_CONTRAT<46>/100
   END 

   * calcule le montant total des congs
   W_MontantJourneeTotal = W_MontantJournee + W_MontantJourneeEnCours
   W_MontantJourneeTotal = INT(W_MontantJourneeTotal * 100 + 1 / 2)
   W_MontantJourneeTotal = W_MontantJourneeTotal / 100

   IF W_TypeEclatement = 1 THEN
      GOSUB 60
   END

RETURN

*****************************************************************************
*  ECLATEMENT ACTIVITE
60

   IF ENR_CONTRAT<6> = "A" THEN
      GOSUB 70
   END ELSE
      W_Temp = 'SSELECT DETAILCALCUL AVEC 0 = "':W_Cle[1,8]:']" AND AVEC 1 = "P"'
      W_Temp = W_Temp:' AND AVEC 25 # "0" PAR-DECR @ID'

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

      W_PasTrouve="FAUX"
      IF MSGCODE<1>=209 THEN
         W_PasTrouve="VRAI"
         GOSUB 70
      END ELSE
         SELECT F.DETAILCALCUL TO W_RequeteDet

         READNEXT W_CleDet FROM W_RequeteDet THEN

            W_PasTrouve="FAUX"
            READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_CleDet ELSE ENR_DETAILCALCUL=""

            GOSUB 70
         END

      END

   END

RETURN

*****************************************************************************
*  RECHERCHE ACTIVITE
70

   IF ENR_CONTRAT<6>="A" THEN
      W_NbActivite=DCOUNT(ENR_CONTRAT<36>,CHAR(253))
   END ELSE
      IF W_PasTrouve="VRAI" THEN
         W_NbActivite=0
         W_Act="SP"
         W_Pourc="10000"
         W_TypePerso="P"
         GOSUB 80

      END ELSE
         W_NbActivite=DCOUNT(ENR_DETAILCALCUL<26>,CHAR(253))
         IF ENR_DETAILCALCUL<26,1>="" THEN
            W_NbActivite=1
            W_Act="SP"
            W_Pourc="10000"
            W_TypePerso="P"
            GOSUB 80
         END
      END
   END

   IF ENR_CONTRAT<6>="A" THEN
      FOR j = 1 TO W_NbActivite
         W_Act=ENR_CONTRAT<36,j>
         W_Pourc=ENR_CONTRAT<37,j>
         W_TypePerso="A"
         GOSUB 80
      NEXT j
   END ELSE
      IF W_NbActivite # 0 THEN
         GOSUB 100
      END
   END

RETURN

*****************************************************************************
*  RECHERCHE SECTANAL
80
 
   IF W_Act # "SP" THEN
      READ ENR_ACTIVITES FROM F.ACTIVITES,W_Act ELSE ENR_ACTIVITES=""

      k=1
      LOOP
      UNTIL W_SectionAnal<1,k> = ENR_ACTIVITES<2> OR W_SectionAnal<1,k> = "" DO
         k=k+1
      REPEAT

      IF W_SectionAnal<1,k> = "" THEN
         W_SectionAnal<1,k>=ENR_ACTIVITES<2>
      END

   END ELSE
      k=1
   END

   * calcul pourcentage de rpartition
   GOSUB 90

RETURN

*****************************************************************************
*  SECTION ANAL
90

   * calcule la rpartition
   IF W_SectionAnal<2,k>="" THEN
      W_SectionAnal<2,k>=0
   END

   W_SectionAnal<2,k> = W_SectionAnal<2,k> + (W_MontantJourneeTotal * (W_Pourc/10000))

RETURN

*****************************************************************************
*  REMPLISSAGE SECT ANAL PAS ADMINISTRATIF
100

   W_Cumul=0
   W_Tampon=""

   FOR j=1 TO W_NbActivite

      W_Indic="FAUX"

      IF j=1 THEN
         W_Tampon<1,1>=ENR_DETAILCALCUL<26,j>
         W_Tampon<2,1>=ENR_DETAILCALCUL<25,j>
         W_Cumul=ENR_DETAILCALCUL<25,j>
      END ELSE
         W_NbAct=DCOUNT(W_Tampon<1>,CHAR(253))

         FOR l = 1 TO W_NbAct
            IF ENR_DETAILCALCUL<26,j> = W_Tampon<1,l> THEN
               W_Indic="VRAI"
               EXIT
            END
         NEXT l

         IF W_Indic="FAUX" THEN
            W_Tampon<1,l>=ENR_DETAILCALCUL<26,j>
         END
         IF W_Tampon<2,l>="" THEN W_Tampon<2,l>=0
         W_Tampon<2,l>=W_Tampon<2,l>+ENR_DETAILCALCUL<25,j>
         W_Cumul=W_Cumul+ENR_DETAILCALCUL<25,j>

      END
   NEXT j

   W_NbAct=DCOUNT(W_Tampon<1>,CHAR(253))
   FOR j=1 TO W_NbAct
      W_Act=W_Tampon<1,j>
      W_Pourc=W_Tampon<2,j>/W_Cumul*10000
      W_TypePerso="P"
      GOSUB 80
   NEXT j

RETURN

*****************************************************************************
*  CUMULE TOUT (MEME TYPE PERSO / SECTEUR)
110

   W_Cumul=W_Cumul+W_MontantJourneeTotal
   W_CumulSecteur=W_CumulSecteur+W_MontantJourneeTotal

   IF W_ListeDetail = 1 THEN
      W_Nom=W_Cle[1,5]:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
      IF LEN(W_Nom) > 55 THEN
         W_Nom=W_Nom[1,55]
      END
      ENR_TEMPO<i>=W_Nom:SPACE(64-LEN(W_Nom)):W_MontantJourneeTotal*100 "R26(#12)"
      i=i+1
      W_ChangePage=W_ChangePage+1

   END

RETURN

*****************************************************************************
*  CHANGEMENT TOUT (CHANGEMENT TYPE PERSO / SECTEUR)
120

   GOSUB 5

   IF W_ListeDetail = 1 THEN
      GOSUB 5
      ENR_TEMPO<i>="Total personnel":SPACE(49):W_Cumul*100 "R26(#12)"
      i=i+1
      W_ChangePage=W_ChangePage+1

   END ELSE
      ENR_TEMPO<i>=SPACE(64):W_Cumul*100 "R26(#12)"
      i=i+1
      W_ChangePage=W_ChangePage+1
   END

   IF W_Changt="VRAI" AND W_TypeEclatement = 3 THEN
      GOSUB 5
      ENR_TEMPO<i>="Total secteur":SPACE(51):W_CumulSecteur*100 "R26(#12)"
      i=i+1
      W_ChangePage=W_ChangePage+1
      W_CumulSecteur=0
   END

   ENR_TEMPO<i>="#"
   i=i+1
   GOSUB 10

   W_Type=ENR_CONTRAT<6>
   W_Secteur=ENR_CIVILAIDANT<31>

   IF W_TypeEclatement = 3 THEN
      GOSUB 40
   END

   GOSUB 30

   W_Cumul=W_MontantJourneeTotal
   W_CumulSecteur=W_CumulSecteur+W_MontantJourneeTotal

   IF W_ListeDetail = 1 THEN
      W_Nom=W_Cle[1,5]:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
      IF LEN(W_Nom) > 55 THEN
         W_Nom=W_Nom[1,55]
      END
      ENR_TEMPO<i>=W_Nom:SPACE(64-LEN(W_Nom)):W_MontantJourneeTotal*100 "R26(#12)"
      i=i+1
      W_ChangePage=W_ChangePage+1
   END

RETURN

*****************************************************************************
*  IMPRIME SECTION ANAL
130

   k=1
   LOOP
   WHILE ENR_SECTANAL<2,k> # W_SectionAnal<1,j>
      k=k+1
   REPEAT

   GOSUB 5
   ENR_TEMPO<i>=SPACE(59):"Montant provision"
   i=i+1
   W_ChangePage=W_ChangePage+1
   ENR_TEMPO<i>="|Section analytique|":" : ":ENR_SECTANAL<3,k>:SPACE(42-LEN(ENR_SECTANAL<3,k>)):" ":W_SectionAnal<2,j>*100 "R26(#12)"
   i=i+1
   W_ChangePage=W_ChangePage+1

   W_CumulTotal=W_CumulTotal + W_SectionAnal<2,j>

   IF MOD(W_ChangePage,45) = 0 THEN
      ENR_TEMPO<i>="#"
      i=i+1
      GOSUB 10
   END

RETURN

*****************************************************************************
* Tables de correspondance des mois
140

   BEGIN CASE 
      CASE W_Date[4,3] = "Jan"
         W_Mois = "janvier"
      CASE W_Date[4,3] = "Feb"
         W_Mois = "fvrier"
      CASE W_Date[4,3] = "Mar"
         W_Mois = "mars"
      CASE W_Date[4,3] = "Apr"
         W_Mois = "avril"
      CASE W_Date[4,3] = "May"
         W_Mois = "mai"
      CASE W_Date[4,3] = "Jun"
         W_Mois = "juin"
      CASE W_Date[4,3] = "Jul"
         W_Mois = "juillet"
      CASE W_Date[4,3] = "Aug"
         W_Mois = "aot"
      CASE W_Date[4,3] = "Sep"
         W_Mois = "septembre"
      CASE W_Date[4,3] = "Oct"
         W_Mois = "octobre"
      CASE W_Date[4,3] = "Nov"
         W_Mois = "novembre"
      CASE W_Date[4,3] = "Dec"
         W_Mois = "dcembre"
   END CASE

RETURN
