********************************************
* 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 "","ACCORD" TO F.ACCORD ELSE STOP
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE STOP
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE STOP
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","FACTURATION" TO F.FACTURATION ELSE STOP
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP

******************************
* Recuperation des arguments *
******************************

W_Periode="200601"
W_DateDeb="13881"
W_DateFin="13911"

W_CodAssoc="001"

PRINT "Code organisme de prise en charge CRAM (3N) : "
INPUT W_Org

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

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

	ENR_FACTURATION=""
	W_Tampon=""
	W_RequeteAcc=""
	W_IndicTrait=0
	W_HeuresNormales=0
	W_HeuresFeriees=0
	GOSUB 100
STOP

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

W_Requete = 'SELECT ACCORD AVEC 18 = "" AND AVEC 1 = "':W_Org:'" AND AVEC 5 <= "':W_DateFin:'" AND AVEC 6 >= "':W_DateDeb:'"'

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

	IF MSGCODE<1>#209 THEN
		W_IndicTrait=W_IndicTrait+1
		SELECT F.ACCORD TO W_RequeteAcc
		GOSUB 200
    	END

	IF W_IndicTrait<>0  THEN

		W_CleFichier="CRAM":W_Periode:W_CodAssoc:W_Org
		WRITE ENR_FACTURATION ON F.FACTURATION,W_CleFichier

		PRINT "Nb d'heures : ":W_HeuresNormales
		PRINT "Nb d'enregistrements : ":i
		PRINT "Nom du fichier gnr dans le rpertoire FACTURATION : ":W_CleFichier
	END

RETURN

********************
* PARCOURS FACTURE *
********************
200

	i=0
	W_FINI="FAUX"

	LOOP
		READNEXT W_Cle FROM W_RequeteAcc ELSE W_FINI="VRAI"
	WHILE W_FINI="FAUX" DO
		READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_Cle[1,5] ELSE STOP
		W_Count=DCOUNT(ENR_ACTIVITESAIDE<1>,CHAR(253))
		W_Passe = "FAUX"
		FOR j=1 TO W_Count
			READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ACTIVITESAIDE<1,j> ELSE STOP
			IF ENR_ACTIVITES<12>="P" THEN
				IF ENR_ACTIVITESAIDE<2,j>="" THEN
					W_Passe = "VRAI"
					EXIT
				END ELSE
					IF ENR_ACTIVITESAIDE<3,j>="" THEN
						IF ENR_ACTIVITESAIDE<2,j> <= W_DateFin THEN
							W_Passe = "VRAI"
							EXIT
						END
					END ELSE
						IF ENR_ACTIVITESAIDE<2,j> <= W_DateFin AND ENR_ACTIVITESAIDE<3,j> >= W_DateDeb THEN
							W_Passe = "VRAI"
							EXIT
						END
					END
				END
			END
		NEXT j

		IF W_Passe = "VRAI" THEN
			GOSUB 300
		END

	REPEAT

RETURN

********************
* CREATION FICHIER *
********************
300

	READ ENR_ACCORD FROM F.ACCORD,W_Cle ELSE STOP
	READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE STOP
        READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_Cle[1,5] ELSE STOP
        READ ENR_SECTEUR FROM F.SECTEUR,ENR_CIVILAIDE<40>[1,3] ELSE STOP

	* identification service
        IF ENR_SECTEUR<20> # "" THEN
 	      W_Tampon = ENR_SECTEUR<20>
        END ELSE
	      W_Tampon = ENR_ORGPRISECHARGE<42>
        END 

	W_Ligne = W_Tampon "L#15"

	* n dossier
        W_Tampon = ENR_ACCORD<2>
	GOSUB 400
        W_Tampon = W_Tampon "L%10"
        W_Ligne = W_Ligne:W_Tampon

        W_Ligne = W_Ligne:SPACE(3)

	* priode des heures
        W_Ligne = W_Ligne:"0601"

        W_Ligne = W_Ligne:"00000"

	* nom prnom
        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"

	* date debut accord
        W_Ligne = W_Ligne:OCONV(ENR_ACCORD<5>, "D4/")[9,2]:OCONV(ENR_ACCORD<5>, "D4/")[4,2]

	* date fin accord
        W_Ligne = W_Ligne:OCONV(ENR_ACCORD<6>, "D4/")[9,2]:OCONV(ENR_ACCORD<6>, "D4/")[4,2]
        W_Ligne = W_Ligne:"0000000000"

	* nbre heures normales
        W_Heures = ENR_ACCORD<9>

        W_HeuresNormales = W_HeuresNormales + W_Heures
        W_Ligne = W_Ligne:W_Heures"R%5"

	* code saisie heure
        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:"                "

	* hres dimanche
        W_Heures = 0
        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)

	LOOP
	WHILE k < 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

	REPEAT

RETURN
