***********************************************************
*                                                         *
* CALCUL DES COMPLEMENTS DE FACTURATION                   *
*                                                         *
* JUIN 2000                               STEPHANE HERVET *
*                                                         *
***********************************************************

***********************************************************
***********************************************************
* OUVERTURE DES FICHIERS

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","BAREMEPARTEMP" TO F.BAREMEPARTEMP ELSE STOP
OPEN "","COMPLFACT" TO F.COMPLFACT ELSE STOP
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE STOP
OPEN "","NUMEROFACT" TO F.NUMEROFACT ELSE STOP
OPEN "","PERIODESPAIE" TO F.PERIODESPAIE ELSE STOP

***********************************************************
* DEBUT TRAITEMENT DES ARTICLES

PROCREAD PARAMETRES ELSE STOP

* RECUPERE LE CODE ENTITE
W_RANGENTITE=INDEX(PARAMETRES," ",2)
W_CODEENTITE=PARAMETRES[W_RANGENTITE+1,3]

***********************************************************
* CHARGEMENT DE LA LISTE DES ARTICLES SELECTIONNES

READ ENR_PERIODESPAIE FROM F.PERIODESPAIE,"1" ELSE ENR_PERIODESPAIE=""

READ ENR_NUMEROFACT FROM F.NUMEROFACT,W_CODEENTITE ELSE ENR_NUMEROFACT=""

EXECUTE "LISTE LISTECOMPLFACT" CAPTURING MSG RETURNING MSGCODE

IF MSGCODE<1>=209 THEN 
    *PRINT "ERREUR MSGCODE"
    STOP
END

SELECT F.COMPLFACT TO LISTECOMPLFACT

W_REQVIDE="FAUX"

LOOP
    * LECTURE RESULTAT REQUETE JUSQUE REQUETE = VIDE
    READNEXT CLE FROM LISTECOMPLFACT ELSE W_REQVIDE="VRAI"
    UNTIL W_REQVIDE="VRAI" DO

    * LECTURE COMPLFACT
    READ ENR_COMPLFACT FROM F.COMPLFACT,CLE ELSE ENR_COMPLFACT=""

    * LECTURE BAREMEPARTEMP
    READ ENR_BAREMEPARTEMP FROM F.BAREMEPARTEMP,CLE[1,5] ELSE ENR_BAREMEPARTEMP=""

    * ECRITURE FACTURAIDE
    J=1
    I=1
    ENR_FACTURAIDE=""
    LOOP 
	 UNTIL ENR_COMPLFACT<1,J>="" DO	
         ENR_FACTURAIDE<1,I>=ENR_PERIODESPAIE<1>
         ENR_FACTURAIDE<2,I>=ENR_COMPLFACT<1,J>
         ENR_FACTURAIDE<3,I>=ENR_COMPLFACT<2,J>
         * PASSAGE A 3 DEC. SI BAREME FCT RUB. SAISIE
         IF ENR_BAREMEPARTEMP<2>=4 THEN
             IF ENR_COMPLFACT<3,J><>"" THEN ENR_COMPLFACT<3,J>=ENR_COMPLFACT<3,J>*10
         END
         ENR_FACTURAIDE<4,I>=ENR_COMPLFACT<3,J>
         ENR_FACTURAIDE<5,I>=ENR_COMPLFACT<4,J>
         ENR_FACTURAIDE<6,I>=ENR_COMPLFACT<5,J>
         ENR_FACTURAIDE<7,I>=ENR_COMPLFACT<6,J>
	 I=I+1
         J=J+1
    REPEAT

    * SI PRESTATAIRE
    IF CLE[9,1]="P" THEN
        WRITE ENR_FACTURAIDE ON F.FACTURAIDE,CLE:ENR_PERIODESPAIE<1>:ENR_NUMEROFACT<1>:"0"
        ENR_NUMEROFACT<1>=ENR_NUMEROFACT<1>+1 "R%10"
    END

    * SI MANDATAIRE
    IF CLE[9,1]="M" THEN
        WRITE ENR_FACTURAIDE ON F.FACTURAIDE,CLE:ENR_PERIODESPAIE<1>:ENR_NUMEROFACT<3>:"0"
        ENR_NUMEROFACT<3>=ENR_NUMEROFACT<3>+1 "R%10"
    END 

    * SI INTERMEDIAIRE
    IF CLE[9,1]="I" THEN
        WRITE ENR_FACTURAIDE ON F.FACTURAIDE,CLE:ENR_PERIODESPAIE<1>:ENR_NUMEROFACT<5>:"0"
        ENR_NUMEROFACT<5>=ENR_NUMEROFACT<5>+1 "R%10"
    END

    * EFFACE LE COMPLEMENT DE FACTURATION TRAITE
    DELETE F.COMPLFACT,CLE

REPEAT

WRITE ENR_NUMEROFACT ON F.NUMEROFACT,W_CODEENTITE
