EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "", "ACCORD" TO F.ACCORD ELSE STOP
OPEN "", "ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "", "ASSOCIATION" TO F.ASSOCIATION ELSE STOP
OPEN "", "CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "", "FUSION" TO F.FUSION ELSE STOP
OPEN "", "ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
OPEN "", "RUBSAISIETELEGESTION" TO F.RUBSAISIETELEGESTION ELSE STOP

10
PRINT "Entit juridique (3N) : ":
INPUT W_CodeAsso
READ ENR_ASSOCIATION FROM F.ASSOCIATION,W_CodeAsso THEN
END ELSE
   PRINT "erreur dans le code de l'entit juridique"
   GOTO 10
END

20
PRINT "Nom du prestataire : ":
INPUT W_NomPrest
IF TRIM(W_NomPrest) = "" THEN
   PRINT "Veuillez saisir un nom de prestataire !"
   GOTO 20
END

30
PRINT "Priode  traiter (AAAAMM) : ":
INPUT W_PeriodeTrait
IF TRIM(W_PeriodeTrait) = "" THEN
   PRINT "Veuillez saisir une priode  traiter !"
   GOTO 30
END

GOSUB 40

W_DebMois=ICONV("01/":W_PeriodeTrait[5,2]:"/":W_PeriodeTrait[1,4],"D4/")
W_FinMois=W_DebMois + 32
W_FinMois=OCONV(W_FinMois,"D4/")
W_FinMois=ICONV("01":W_FinMois[3,8],"D4/") - 1

GOSUB 50

EXECUTE 'EFFACER-LISTE W_RequeteRub'
EXECUTE 'EFFACER-LISTE W_RequeteAcc'

STOP


********************************************************
* slection et mise en table des rubriques de saisie telegestion
40
W_RequeteRub=""
W_TabRub=""
EXECUTE 'SELECT RUBSAISIETELEGESTION AVEC 2 = "':W_CodeAsso:']"'
EXECUTE 'SAUVE-LISTE W_RequeteRub'
EXECUTE "LISTE W_RequeteRub" RETURNING MSGCODE

IF MSGCODE<1> = 209 THEN
   PRINT "Pas de rubriques de saisie telegestion !"
   STOP
END ELSE
   SELECT F.RUBSAISIETELEGESTION TO W_RequeteRub
   W_Fini="FAUX"
   LOOP
      READNEXT W_CleRub FROM W_RequeteRub ELSE W_Fini="VRAI"
   WHILE W_Fini="FAUX" DO
      READ ENR_RUBSAISIETELEGESTION FROM F.RUBSAISIETELEGESTION,W_CleRub THEN
         W_ActiviteRub=ENR_RUBSAISIETELEGESTION<2>
         W_ActiviteRub=W_ActiviteRub[4,3]
         W_TabRub<W_ActiviteRub>=W_CleRub[1,2]
      END ELSE
         PRINT " Erreur lecture rubrique de saisie telegestion : ":W_CleRub
      END
   REPEAT

END
RETURN


********************************************************
* slection et mise en table des rubriques de saisie telegestion
50
W_RequeteAcc=""
ENR_FUSION=""
iFusion=1

W_Requete = 'SSELECT ACCORD AVEC TypeOrg ="P" AND AVEC 18 # "O" AND AVEC EntiteAccord = "':W_CodeAsso:'"'
W_Requete = W_Requete:' AND AVEC 5 <= "':W_FinMois:'" AND AVEC 6 => "':W_DebMois:'" AND AVEC DateSortieAideAccord >= "':W_DebMois:'" OR = ""'
W_Requete = W_Requete:' PAR CodAideAccord PAR 8 PAR 5 PAR-DECR 6'

EXECUTE W_Requete
EXECUTE 'SAUVE-LISTE W_RequeteAcc'
EXECUTE "LISTE W_RequeteAcc" RETURNING MSGCODE1

IF MSGCODE1<1> # 209 THEN
   SELECT F.ACCORD TO W_RequeteAcc

   W_AncienAide=""

   W_Fini="FAUX"
   LOOP
      READNEXT W_CleAcc FROM W_RequeteAcc ELSE W_Fini="VRAI"
   WHILE W_Fini="FAUX" DO
      READ ENR_ACCORD FROM F.ACCORD,W_CleAcc THEN
         W_CodeAide=W_CleAcc[1,5]
         IF W_AncienAide # W_CodeAide THEN
            READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_CodeAide THEN
               * Traitement de l'aide
               GOSUB 60
            END ELSE
               ENR_CIVILAIDE=""
            END
         END

         W_CodeOrganisme=ENR_ACCORD<1>
         READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_CodeOrganisme THEN
            * Traitement de l'accord
            GOSUB 70
         END ELSE
            PRINT "Impossible de lire l'organisme : ":W_CodeOrganisme
         END

      END ELSE
         PRINT "Impossible de lire l'accord : ":W_CleAcc
      END

      W_AncienAide = W_CodeAide

   REPEAT

   WRITE ENR_FUSION ON F.FUSION,"ACCORDSDOM.TXT"

END ELSE
   PRINT "Aucuns accords actifs sur la priode !"
   STOP
END

RETURN


********************************************************
* Taitement de l'aide
60

W_Civilite=ENR_CIVILAIDE<1>
IF W_Civilite = "" THEN
   W_Civilite="MME"
END ELSE
   IF W_Civilite = "MLE" THEN
      W_Civilite="MLLE"
   END
END

W_Tel=CONVERT(" ","",ENR_CIVILAIDE<14>)
W_Tel=CONVERT("/","",W_Tel)
W_Tel=CONVERT(".","",W_Tel)
IF W_Tel ="" THEN
   W_Tel="XXXXXXXXXX"
END


RETURN


********************************************************
* Constitution du fichier resultant ACCORDSDOM.TXT
70

W_NumDossier=CONVERT(" ","",ENR_ACCORD<2>)
IF W_NumDossier ="" THEN
   W_NumDossier="EN COURS"
END ELSE
   IF LEN(ENR_ACCORD<2>) > 20 THEN
      IF LEN(W_NumDossier) > 20 THEN
         W_NumDossier=W_NumDossier[1,20]
      END
   END ELSE
      W_NumDossier=ENR_ACCORD<2>
   END
END

W_DebAccord=OCONV(ENR_ACCORD<5>,"D4/")
W_FinAccord=OCONV(ENR_ACCORD<6>,"D4/")

READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> THEN
   W_NaturePrestation=ENR_ACTIVITES<12>
END ELSE
   W_NaturePrestation="P"
END

W_HeureMontAide = ENR_ACCORD<9> "MR2"
W_HeureMontAide=CONVERT(",",".",W_HeureMontAide)

IF ENR_ORGPRISECHARGE<24> = "H" THEN
   * gestion en heure

   IF ENR_ORGPRISECHARGE<51>=1 THEN
      * gestion exclu dimanche
      W_HeureMontAide=";;":W_HeureMontAide:";"
   END ELSE
      * gestion semaine ou totalite
      W_HeureMontAide=";":W_HeureMontAide:";;"
   END
END ELSE
   * Gestion en montant
   W_HeureMontAide=";;;":W_HeureMontAide
END

W_CountAct = DCOUNT(ENR_ORGPRISECHARGE<47>,CHAR(253))
FOR iActOrg = 1 TO W_CountAct
    W_ActOrg=ENR_ORGPRISECHARGE<47,iActOrg>
   IF W_ActOrg[1,3] = W_CodeAsso THEN
      IF W_TabRub<W_ActOrg[4,3]> # "" THEN
         ENR_FUSION<iFusion>=W_NomPrest:";":W_Tel:";":W_Civilite:";":W_CodeAide:";":W_CodeOrganisme:";"
         ENR_FUSION<iFusion>=ENR_FUSION<iFusion>:W_NumDossier:";":W_DebAccord:";":W_FinAccord:";"
         ENR_FUSION<iFusion>=ENR_FUSION<iFusion>:W_NaturePrestation:";":W_TabRub<W_ActOrg[4,3]>:W_HeureMontAide
         iFusion = iFusion + 1
      END
   END
NEXT iActOrg

RETURN
