*************************************************
*	REMPLISSAGE DE BROUILLARD DETAIL	*
*JEROME				NOVEMBRE 99	*
*       MODIF LONGUEUR LIGNE    MARS 2000       *
*************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","PRELEVEMENT" TO F.PRELEVEMENT ELSE STOP
OPEN "","BROUILLARDDETAIL" TO F.BROUILLARDDETAIL ELSE STOP
OPEN "","JOURNAL" TO F.JOURNAL ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP


****************************
* Recuperation des arguments
****************************
PROCREAD ARGUMENTS ELSE PRINT "PROCREAD"

W_CLEBROUILLARD=FIELD(ARGUMENTS," ",2)
W_LIGNE=FIELD(ARGUMENTS," ",3)
W_CLEPREL=FIELD(ARGUMENTS," ",4)
W_DATE=FIELD(ARGUMENTS," ",5)
W_DATEOP=FIELD(ARGUMENTS," ",6)
W_ENTITE=FIELD(ARGUMENTS," ",7)

****************************
* Initialisation
****************************

ENR_PRELEVEMENT=""
ENR_BROUILLARDDETAIL=""
ENR_ERREURS=""
ENR_TEMPO=""
ENR_JOURNAL=""
W_CLEPRELEV=""
W_NBVALEUR=""
W_NBLIGNE=""
W_TOTALCREDIT=""
W_RECUP=""
W_LONG=""
J=""
W_JOURNAL=""
W_TAMPON=""

W_NBLIGNE=W_LIGNE


****************************
* LECTURE DU FICHIER PRELEVEMENT
****************************
	READ ENR_PRELEVEMENT FROM F.PRELEVEMENT,W_CLEPREL ELSE
		ENR_ERREURS<-1>=W_CLEPREL
	END


****************************
* COMPTE NOMBRE DE LIGNES
****************************
	W_NBVALEUR=DCOUNT(ENR_PRELEVEMENT,CHAR(254))-1	

****************************
* PARCOURS DES LIGNES POUR CREATION
****************************
	GOSUB 100

****************************
* CONTREPARTIE
****************************
	GOSUB 200

****************************
*ECRITURE DES VARIABLES POUR RECUP PAR VB
****************************

	ENR_TEMPO=""
	ENR_TEMPO=REPLACE(ENR_TEMPO,1;W_NBLIGNE)
	ENR_TEMPO=REPLACE(ENR_TEMPO,2;W_TOTALCREDIT)

	WRITE ENR_TEMPO ON F.TEMPO,W_CLEPREL

STOP


****************************
* PARCOURS DES LIGNES POUR CREATION
****************************
100

	FOR I=2 TO W_NBVALEUR
	
		* REINITIALISATION
		ENR_BROUILLARDDETAIL=""
	
		* INCREMENTATION NB LIGNES
		W_NBLIGNE = W_NBLIGNE+1

		* CONVERSION NUMERO DE LIGNE POUR ECRITURE DE LA CLE
		W_LONGUEUR=LEN(W_NBLIGNE)

		BEGIN CASE
			CASE W_LONGUEUR MATCHES 1
				W_NBLIGNE="0000":W_NBLIGNE
			CASE W_LONGUEUR MATCHES 2
				W_NBLIGNE="000":W_NBLIGNE
			CASE W_LONGUEUR MATCHES 3
				W_NBLIGNE="00":W_NBLIGNE
			CASE W_LONGUEUR MATCHES 4
				W_NBLIGNE="0":W_NBLIGNE
		END CASE	

		* MAJ INFOS
		ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,1;W_DATE)
		ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,2;W_DATEOP)		
		ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,3;"A")
		ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,4;ENR_PRELEVEMENT<I>[26,5])
		ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,5;"PRELEVEMENT FACTURE")


		* RECUPERATION NUMERO DE PIECE ET CONVERSION EVENTUEL

		W_RECUP=CONVERT(" ","",ENR_PRELEVEMENT<I>[119,31])
		W_LONG=LEN(W_RECUP)	

		IF W_RECUP[W_LONG,1]="0" OR W_RECUP[W_LONG,1]="1" OR W_RECUP[W_LONG,1]="2" OR W_RECUP[W_LONG,1]="3" OR W_RECUP[W_LONG,1]="4" OR W_RECUP[W_LONG,1]="5" OR W_RECUP[W_LONG,1]="6" OR W_RECUP[W_LONG,1]="7" OR W_RECUP[W_LONG,1]="8" OR W_RECUP[W_LONG,1]="9" THEN
			W_RECUP=W_RECUP[W_LONG-9,10]
		END ELSE
			W_RECUP=""
		END

		ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,6;W_RECUP)	


		* RECUPERATION MONTANT ET CONVERSION
		
		W_RECUP=ENR_PRELEVEMENT<I>[109,10]
		W_LONG=LEN(W_RECUP)
		J=0
		LOOP
			J=J+1
		UNTIL W_RECUP[J,1] # "0"
		REPEAT

		ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,8;W_RECUP[J,W_LONG-J+1])
	
		ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,13;"0000000")	

		* ECRITURE INFO
		WRITE ENR_BROUILLARDDETAIL ON F.BROUILLARDDETAIL,W_CLEBROUILLARD:W_NBLIGNE


		* CUMUL DU TOTAL CREDIT
	
		W_TOTALCREDIT=W_TOTALCREDIT+ENR_BROUILLARDDETAIL<8>

	NEXT I
RETURN

****************************
* CONTREPARTIE
****************************
200
	
	ENR_BROUILLARDDETAIL=""
	W_JOURNAL=W_CLEBROUILLARD[1,5]
	
	* LECTURE JOURNAL
	READ ENR_JOURNAL FROM F.JOURNAL,W_JOURNAL ELSE
		ENR_ERREURS<-1>=W_JOURNAL
	END

	* INCREMENTATION NB LIGNES
	W_NBLIGNE = W_NBLIGNE+1

	* CONVERSION NUMERO DE LIGNE POUR ECRITURE DE LA CLE
	W_LONGUEUR=LEN(W_NBLIGNE)

	BEGIN CASE
		CASE W_LONGUEUR MATCHES 1
			W_NBLIGNE="0000":W_NBLIGNE
		CASE W_LONGUEUR MATCHES 2
			W_NBLIGNE="000":W_NBLIGNE
		CASE W_LONGUEUR MATCHES 3
			W_NBLIGNE="00":W_NBLIGNE
		CASE W_LONGUEUR MATCHES 4
			W_NBLIGNE="0":W_NBLIGNE
	END CASE	

	IF ENR_JOURNAL<3> # "" THEN
		W_TAMPON=W_ENTITE:ENR_JOURNAL<3>[4,10]	
	END ELSE
		W_TAMPON=W_ENTITE:"4710000000"		
	END

	ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,4;W_TAMPON)
	ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,1;W_DATE)	
	ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,2;W_DATEOP)		
	ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,5;"PRELEVEMENTS")
	ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,7;W_TOTALCREDIT)

	ENR_BROUILLARDDETAIL=REPLACE(ENR_BROUILLARDDETAIL,13;"0000000")	

	WRITE ENR_BROUILLARDDETAIL ON F.BROUILLARDDETAIL,W_CLEBROUILLARD:W_NBLIGNE
	
RETURN
