**********************************************************
*  bascule les bordereaux aux caisses sous excel
*  Vanessa
*  juin 2003
**********************************************************
* Ouvertures des fichiers

EXECUTE "DATE.FORMAT"
OPEN "","ARCHIVEBORDCAISSE" TO F.ARCHIVEBORDCAISSE ELSE PRINT "OUVERTURE ARCHIVEBORDCAISSE" ;* en lecture
OPEN "","FUSION" TO F.FUSION ELSE PRINT "OUVERTURE FUSION" ;* en lecture
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE PRINT "OUVERTURE ORGPRISECHARGE" ;* en lecture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en lecture
*********************************************************
* initialisation des variables

ENR_TEMPO=""
ENR_FUSION=""
W_Sauve=""
W_Org=""
W_Ind=1
W_Indiv="FAUX"
W_AncCle=""
W_Cle=""
*********************************************************
* Recuperation des arguments

PROCREAD ARGUMENTS ELSE STOP
W_Periode=FIELD(ARGUMENTS," ",2)
W_Entite=FIELD(ARGUMENTS," ",3)
W_Act=FIELD(ARGUMENTS," ",4)

*********************************************************
* PROGRAMME PRINCIPAL

   EXECUTE "SET-DEC ,"
   EXECUTE "SET-THOUS ."

   READ W_Requete FROM F.TEMPO,"REQUETEBORDEXCEL" ELSE W_Requete=""

   GOSUB 10

   W_Org=W_Requete<1,1>

   i=1
   LOOP
   UNTIL W_Requete<i,1> = "" DO

      W_AncCle=W_Cle
      W_Cle=W_Entite:W_Act:W_Requete<i,1>:W_Periode:W_Requete<i,2>

      READ ENR_ARCHIVEBORDCAISSE FROM F.ARCHIVEBORDCAISSE,W_Cle ELSE ENR_ARCHIVEBORDCAISSE=""

      READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_Requete<i,1> ELSE ENR_ORGPRISECHARGE=""

      IF ENR_ORGPRISECHARGE<39> ="I" THEN

         IF W_Org # W_Requete<i,1> THEN

            IF W_Indiv="VRAI" THEN
               ENR_FUSION = CONVERT("",";",ENR_FUSION)
               WRITE ENR_FUSION ON F.FUSION,W_Cle[1,13]:".CSV"
               ENR_TEMPO<W_Ind>=W_Cle[1,13]:".CSV"
               W_Ind=W_Ind+1
            END

            ENR_FUSION=""
            W_Org = W_Requete<i,1>

            GOSUB 20
            W_Indiv="VRAI"
         END ELSE
            GOSUB 20
            W_Indiv="VRAI"
         END

      END ELSE

         IF W_Indiv="VRAI" THEN
            ENR_FUSION = CONVERT("",";",ENR_FUSION)
            WRITE ENR_FUSION ON F.FUSION,W_AncCle[1,13]:".CSV"
            ENR_TEMPO<W_Ind>=W_AncCle[1,13]:".CSV"
            W_Ind=W_Ind+1
	 END

         ENR_FUSION=""
         W_Indiv="FAUX"
         GOSUB 20

         ENR_FUSION = CONVERT("",";",ENR_FUSION)
         WRITE ENR_FUSION ON F.FUSION,W_Cle:".CSV"
         ENR_TEMPO<W_Ind>=W_Cle:".CSV"
         W_Ind=W_Ind+1
         W_Org=W_Requete<i,1>
      END

      i=i+1
   REPEAT

   IF ENR_ORGPRISECHARGE<39> ="I" THEN
      ENR_FUSION = CONVERT("",";",ENR_FUSION)
      WRITE ENR_FUSION ON F.FUSION,W_Cle[1,13]:".CSV"
      ENR_TEMPO<W_Ind>=W_Cle[1,13]:".CSV"
   END

   IF ENR_TEMPO # "" THEN
      WRITE ENR_TEMPO ON F.TEMPO,"BORDCAISSEEXCEL"
   END

   EXECUTE "SET-DEC ."
   EXECUTE "SET-THOUS ,"

STOP

********************************************************************************************
* Tri W_Requete par code organisme,  par numro de facture

10

   W_Count=DCOUNT(W_Requete,CHAR(254))

   FOR i = 1 TO W_Count
      j=i+1

      IF W_Requete<i,1> > W_Requete<j,1> THEN
         IF i # W_Count THEN
            W_Sauve<1>=W_Requete<i,1>
            W_Sauve<2>=W_Requete<i,2>
            W_Requete<i,1>=W_Requete<j,1>
            W_Requete<i,2>=W_Requete<j,2>
            W_Requete<j,1>=W_Sauve<1>
            W_Requete<j,2>=W_Sauve<2>
            GOSUB 10
         END
      END ELSE
         IF W_Requete<i,1> = W_Requete<j,1> THEN
            IF W_Requete<i,2> > W_Requete<j,2> THEN
               IF i # W_Count THEN
                  W_Sauve=W_Requete<i,2>
                  W_Requete<i,2>=W_Requete<j,2>
                  W_Requete<j,2>=W_Sauve
                  GOSUB 10
               END
            END
         END
      END
   NEXT i

RETURN

********************************************************************************************
* ECRIT LE FICHIER EXCEL

20

   IF ENR_FUSION="" THEN	

      * RECHERCHE ZONE #2 POUR LIGNE ENTETE
      J=1
      I=1
      LOOP
      UNTIL ENR_ARCHIVEBORDCAISSE<I>="#2" DO

         IF ENR_ORGPRISECHARGE<39> # "I" THEN
            IF ENR_ARCHIVEBORDCAISSE<I> # "%" AND ENR_ARCHIVEBORDCAISSE<I>[1,1] # "#" THEN
     	       ENR_FUSION<J>=ENR_ARCHIVEBORDCAISSE<I,1>
               IF ENR_ARCHIVEBORDCAISSE<I,2> # "" THEN
                  ENR_FUSION<J,7>=ENR_ARCHIVEBORDCAISSE<I,2>
               END
               J=J+1
            END
         END
         I=I+1
      REPEAT
      I=I+1

      LOOP
      UNTIL ENR_ARCHIVEBORDCAISSE<I>="#3" DO

 	 ENR_FUSION<J>=ENR_ARCHIVEBORDCAISSE<I>

         J=J+1
	 I=I+1
      REPEAT		
      I=I+1

   END

   I=1
   LOOP
   UNTIL ENR_ARCHIVEBORDCAISSE<I>="#3" DO
      I=I+1
   REPEAT
   I=I+1

   * REMPLIT FICHIER JUSQU'A #5 OU #4
   * ECRITURE LIGNE DETAIL

   LOOP
   UNTIL ENR_ARCHIVEBORDCAISSE<I>="#4" OR ENR_ARCHIVEBORDCAISSE<I>="#5" OR ENR_ARCHIVEBORDCAISSE<I>="" DO
		
      ENR_FUSION<J>=ENR_ARCHIVEBORDCAISSE<I>
		
      J=J+1
      I=I+1
   REPEAT


***************************************************************
*    code pour indiquer le pied de bordereau		      *
*    ne pas utiliser pour l'instant			      *
*    si doit tre utilis, le tester car a n'a pas t fait  *
***************************************************************

*   I=I+1

*   IF ENR_ORGPRISECHARGE<39>="R" THEN

*      LOOP
*      UNTIL ENR_ARCHIVEBORDCAISSE<I>="" DO

*         IF ENR_ARCHIVEBORDCAISSE<I> # "%" AND ENR_ARCHIVEBORDCAISSE<I>[1,1] # "#" THEN
* 	    ENR_FUSION<J>=ENR_ARCHIVEBORDCAISSE<I>
*            J=J+1
*         END
*         I=I+1
*      REPEAT
*   END ELSE

*      IF ENR_ORGPRISECHARGE<39>="M" THEN
* 	 ENR_FUSION<J,8>=ENR_ARCHIVEBORDCAISSE<I>
*      END ELSE

*         IF ENR_ORGPRISECHARGE="" THEN
* 	    ENR_FUSION<J,3>=ENR_ARCHIVEBORDCAISSE<I,1>
* 	    ENR_FUSION<J,5>=ENR_ARCHIVEBORDCAISSE<I,2>
*         END
*      END
*   END

RETURN
