********************************************
* TRAITEMENT MAGNETIQUE CRAM VERSION PICK  *
* SUITE AU PLANTAGE MEMOIRE                *
* JEROME                      JUILLET 2000 *
* RAJOUT REJET                AOUT    2000 *
* MODIF INIT                  OCTOBRE 2000 *
********************************************

************
* FICHIERS *
************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","TEMPO" TO F.TEMPO ELSE STOP
OPEN "","FACTURATION" TO F.FACTURATION ELSE STOP
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
OPEN "","ACCORD" TO F.ACCORD ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","FACTURORG" TO F.FACTURORG ELSE STOP
OPEN "","REJETSORGCHG" TO F.REJETSORGCHG ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP

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

W_Periode=FIELD(ARGUMENTS,"|",2)
Txt_CodAssoc=FIELD(ARGUMENTS,"|",3)
W_Requete=FIELD(ARGUMENTS,"|",4)

****************************
* Procdures               *
****************************
* 100  --->   REQUETE
* 200  --->   PARCOURS FACTURE
* 250  --->   PARCOURS REJET
* 300  --->   CREATION LIGNES FACTURES
* 350  --->   CREATION LIGNES REJET
* 400  --->   SUPPRESSION D'ESPACES NON REDONDANTS

****************************
* Initialisation           *
****************************
	ENR_FACTURATION=""
	W_Tampon=""
	W_RequeteFacture=""
	W_RequeteRejet=""
	W_IndicTrait=0
	W_CodOrga=""
	W_HeuresNormales=0
	W_HeuresFeriees=0
	ENR_TEMPO=""
	GOSUB 100
STOP

*********************
* EXECUTION REQUETE *
*********************
100

	EXECUTE W_Requete
	EXECUTE 'SAUVE-LISTE W_RequeteFacture'
	EXECUTE "LISTE W_RequeteFacture" RETURNING MSGCODE
 
	IF MSGCODE<1>#209 THEN
		W_IndicTrait=W_IndicTrait+1
		SELECT F.FACTURORG TO W_RequeteFacture
		GOSUB 200
    	END

	
	EXECUTE 'SELECT REJETSORGCHG AVEC CodAssoRejet = "':Txt_CodAssoc:'" AND AVEC CodOrgaRejet = "':W_CodOrga:'" PAR NomPrenomAideRejet PAR @ID'
	EXECUTE 'SAUVE-LISTE W_RequeteRejet'
	EXECUTE "LISTE W_RequeteRejet" RETURNING MSGCODE
 
	IF MSGCODE<1>#209 THEN
		W_IndicTrait=W_IndicTrait+1
		SELECT F.REJETSORGCHG TO W_RequeteRejet
		GOSUB 250
    	END


	IF W_IndicTrait<>0  THEN
		WRITE ENR_FACTURATION ON F.FACTURATION,"CRAM":W_Periode:Txt_CodAssoc
		ENR_TEMPO<1>=W_HeuresNormales
		ENR_TEMPO<2>=W_HeuresFeriees
		ENR_TEMPO<3>=i
		WRITE ENR_TEMPO ON F.TEMPO,"CRAM"
	END

RETURN

********************
* PARCOURS FACTURE *
********************
200
	i=0
	W_FINI="FAUX"

	LOOP
		READNEXT W_Cle FROM W_RequeteFacture ELSE W_FINI="VRAI"
	WHILE W_FINI="FAUX" DO
		IF W_CodOrga="" THEN
			W_CodOrga=W_Cle[1,3]
		END
		GOSUB 300
	REPEAT

RETURN


******************
* PARCOURS REJET *
******************
250
	IF i="" THEN
		i=0
	END

	W_FINIREJ="FAUX"

	LOOP
		READNEXT W_Cle FROM W_RequeteRejet ELSE W_FINIREJ="VRAI"
	WHILE W_FINIREJ="FAUX" DO
		GOSUB 350
		DELETE F.REJETSORGCHG,W_Cle
	REPEAT

RETURN


********************
* CREATION FICHIER *
********************
300
    
	READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_Cle[1,3] ELSE STOP
        READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_Cle[5,5] ELSE STOP
        READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE STOP
        IF ENR_SECTEUR<20> # "" THEN
	   W_Tampon = ENR_SECTEUR<20>
        END ELSE
	   W_Tampon = ENR_ORGPRISECHARGE<42>
        END 

*	GOSUB 400 
	W_Ligne = W_Tampon "L#15"

        READ ENR_ACCORD FROM F.ACCORD,W_Cle[5,8] ELSE STOP
        W_Tampon = TRIM(ENR_ACCORD<2>)
	GOSUB 400
        W_Tampon = W_Tampon "L%10"
        W_Ligne = W_Ligne:W_Tampon

        W_Ligne = W_Ligne:SPACE(3)
        W_Ligne = W_Ligne:W_Cle[15,4] "L#4"
        W_Ligne = W_Ligne:"00000"

        IF ENR_CIVILAIDE<4> # "" THEN
            W_Tampon = ENR_CIVILAIDE<4>:" ":ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
        END ELSE
            W_Tampon = ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
        END
        W_Ligne = W_Ligne:W_Tampon "L#40"
        W_Ligne = W_Ligne:"0000000"
        W_Ligne = W_Ligne:OCONV(ENR_ACCORD<5>, "D4/")[9,2]:OCONV(ENR_ACCORD<5>, "D4/")[4,2]
        W_Ligne = W_Ligne:OCONV(ENR_ACCORD<6>, "D4/")[9,2]:OCONV(ENR_ACCORD<6>, "D4/")[4,2]
        W_Ligne = W_Ligne:"0000000000"
    
        READ ENR_FACTURORG FROM F.FACTURORG,W_Cle ELSE STOP
        W_NbVal = DCOUNT(ENR_FACTURORG<1>,CHAR(253))
        W_Heures = 0
        FOR j = 1 TO W_NbVal
            W_Heures = W_Heures + ENR_FACTURORG<1, j>
        NEXT j
        W_HeuresNormales = W_HeuresNormales + W_Heures
        W_Ligne = W_Ligne:W_Heures"R%5"
    
        IF W_Heures = "" OR W_Heures = 0 THEN
            W_Ligne = W_Ligne:"0"
        END ELSE
            W_Ligne = W_Ligne:"1"
        END
        
        W_Ligne = W_Ligne:"                "
        W_Heures = ENR_FACTURORG<5>
        W_Ligne = W_Ligne:W_Heures "R%5"
        W_HeuresFeriees = W_HeuresFeriees + W_Heures
        
        IF W_Heures = "" OR W_Heures = 0 THEN                                                            
            W_Ligne = W_Ligne:"0"
        END ELSE
            W_Ligne = W_Ligne:"1"
        END
    
        W_Ligne = W_Ligne:"                    "
	i=i+1
        ENR_FACTURATION<i> = W_Ligne

RETURN


********************
* CREATION FICHIER *
********************
350
    
	READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_Cle[15,3] ELSE STOP
	READ ENR_REJETSORGCHG FROM F.REJETSORGCHG,W_Cle ELSE STOP
	W_Tampon = ENR_ORGPRISECHARGE<42>
	GOSUB 400 
	W_Ligne = W_Tampon "L#15"

        READ ENR_ACCORD FROM F.ACCORD,W_Cle[1,5]:ENR_REJETSORGCHG<4> ELSE STOP
        W_Tampon = TRIM(ENR_ACCORD<2>)
        GOSUB 400
        W_Tampon = W_Tampon "L%10"
        W_Ligne = W_Ligne:W_Tampon

        W_Ligne = W_Ligne:SPACE(3)
        W_Ligne = W_Ligne:W_Cle[8,4] "L#4"
        W_Ligne = W_Ligne:"00000"
        READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_Cle[1, 5] ELSE STOP
        IF ENR_CIVILAIDE<4> # "" THEN
            W_Tampon = ENR_CIVILAIDE<4>:" ":ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
        END ELSE
            W_Tampon = ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
        END
        W_Ligne = W_Ligne:W_Tampon "L#40"
        W_Ligne = W_Ligne:"0000000"

        W_Ligne = W_Ligne:OCONV(ENR_ACCORD<5>, "D4/")[9,2]:OCONV(ENR_ACCORD<5>, "D4/")[4,2]
        W_Ligne = W_Ligne:OCONV(ENR_ACCORD<6>, "D4/")[9,2]:OCONV(ENR_ACCORD<6>, "D4/")[4,2]

        W_Ligne = W_Ligne:"0000000000"

        W_Heures = ENR_REJETSORGCHG<1>

        W_HeuresNormales = W_HeuresNormales + W_Heures
        W_Ligne = W_Ligne:W_Heures"R%5"
    
        IF W_Heures = "" OR W_Heures = 0 THEN
            W_Ligne = W_Ligne:"0"
        END ELSE
            W_Ligne = W_Ligne:"1"
        END
        
        W_Ligne = W_Ligne:"                "
        W_Heures = ENR_REJETSORGCHG<2>
        W_Ligne = W_Ligne:W_Heures "R%5"
        W_HeuresFeriees = W_HeuresFeriees + W_Heures
        
        IF W_Heures = "" OR W_Heures = 0 THEN                                                            
            W_Ligne = W_Ligne:"0"
        END ELSE
            W_Ligne = W_Ligne:"1"
        END
    
        W_Ligne = W_Ligne:"                    "
	i=i+1
        ENR_FACTURATION<i> = W_Ligne


RETURN


************************
* SUPPRESSION D'ESPACE *
************************
400
	k=1
	W_Long=LEN(W_Tampon)
	l=1

	LOOP
	WHILE l < W_Long
		IF W_Tampon[k,1]=" " THEN
			W_Tampon=W_Tampon[1,k-1]:W_Tampon[k+1,W_Long-k]
			W_Long=W_Long-1	
		END ELSE
			k=k+1
		END
        	l=l+1
	REPEAT

RETURN
