**********************
* REMPLI L'ENREGISTREMENT LISTACC DANS TEMPO 
* 11/04/2001 ALAIN
* 02/05/2002 GREGORY
* 03/12/2002 GREGORY
*   2 modifs :
*	- si accord global ou report, edition de l'att 9 d'ACCORD si l'att 17 est vide
*	- edition de la premiere valeur de l'att 13 si accord pas encore commence
*   1 correction de bug :
*	- probleme de decalage
* 07/06/2004 CYPRIEN
*   1 correction de bug :
*       - problme de dcalage sur les libells d'organisme coups
**********************

***************************
* Ouvertures des 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 "","COMMUNES" TO F.COMMUNES ELSE STOP
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE STOP
OPEN "","FEDEASSOC" TO F.FEDEASSOC ELSE STOP
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
OPEN "","RESPONSABLE" TO F.RESPONSABLE ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP
OPEN "","TEMPO" TO F.TEMPO ELSE STOP

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

W_ASSOC=FIELD(ARGUMENTS,"|",2)
W_CODEACTIVITE=FIELD(ARGUMENTS,"|",3)
W_DATEFIN=FIELD(ARGUMENTS,"|",4)
W_TYPESELECTION=FIELD(ARGUMENTS,"|",5)
W_REQACCORD=FIELD(ARGUMENTS,"|",6)
W_CODORGA=FIELD(ARGUMENTS,"|",7)
W_DATEDEB=FIELD(ARGUMENTS,"|",8)
*********************
* TRAITEMENT GLOBAL *
*********************

READ ENR_COMPTEUR FROM F.COMPTEUR,'999' ELSE ENR_COMPTEUR = ""

**IF W_CODORGA # "" THEN
**	READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_CODORGA ELSE ENR_ORGPRISECHARGE=""
**	W_LIBORGA=ENR_ORGPRISECHARGE<1>
**END

ENR_TEMPO =""
WRITE ENR_TEMPO TO F.TEMPO,"LISTACCORD"

W_SELECTION = ""
W_ASSOCIATION=W_ASSOC
IF W_CODEACTIVITE # "" THEN
	W_CODEACTIVITE = W_ASSOC:W_CODEACTIVITE
END

EXECUTE W_REQACCORD
EXECUTE 'SAUVE-LISTE W_RESULTAT' 
EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE

IF MSGCODE<1> # "209" THEN

	SELECT F.ACCORD TO W_RESULTAT

	W_FINI = "FAUX"	
	W_ENR = 1

	LOOP
		READNEXT CLE.ACCORD FROM W_RESULTAT ELSE W_FINI="VRAI"
		W_ORG = "FAUX"
		W_ACT = "FAUX"
	WHILE W_FINI = "FAUX"
		W_AIDE = CLE.ACCORD[1,5]
		READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_AIDE ELSE ENR_ACTIVITESAIDE = ""
		READ ENR_ACCORD FROM F.ACCORD,CLE.ACCORD ELSE ENR_ACCORD = ""
		READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,ENR_ACCORD<1> ELSE ENR_ORGPRISECHARGE=""
		READ ENR_CIVILAIDE FROM F.CIVILAIDE,W_AIDE ELSE ENR_CIVILAIDE = ""
		READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_AIDE ELSE ENR_ACTIVITESAIDE = ""

		IF W_TYPESELECTION = "R" THEN
			W_SELECT = ENR_CIVILAIDE<39>
		END ELSE
			IF W_TYPESELECTION = "S" THEN
				SECT = ENR_CIVILAIDE<40>
				SECT = SECT[1,3]
				READ ENR_SECTEUR FROM F.SECTEUR,SECT ELSE ENR_SECTEUR=""
				W_SELECT = ENR_SECTEUR<1>
			END ELSE
				IF W_TYPESELECTION = "C" THEN
					W_SELECT = ENR_CIVILAIDE<11>
				END ELSE
					W_SELECT = ""
				END
			END
		END

**		IF W_CODORGA # "" THEN
**			IF W_LIBORGA # ENR_ORGPRISECHARGE<1> THEN
**				W_ORG="VRAI"
**			END
**		END

		IF W_ORG = "FAUX" THEN
			J = 1
			LOOP
			WHILE ENR_ACTIVITESAIDE<1,J> # "" AND W_ACT # "VRAI"
				L = 1
				LOOP
				WHILE ENR_ORGPRISECHARGE<47,L> # "" AND W_ACT # "VRAI"
					IF W_CODEACTIVITE = "" THEN
						IF ENR_ACTIVITESAIDE<1,J> = ENR_ORGPRISECHARGE<47,L> THEN
							IF ((ENR_ACTIVITESAIDE<3,J> >= ENR_ACCORD<5> AND ENR_ACTIVITESAIDE<3,J> >= W_DATEDEB) OR ENR_ACTIVITESAIDE<3,J> = "") AND ENR_ACTIVITESAIDE<2,J> <= ENR_ACCORD<6> AND ENR_ACTIVITESAIDE<2,J> <= W_DATEFIN  THEN
								W_ACT = "VRAI"
							END
						END
					END ELSE
						IF ENR_ACTIVITESAIDE<1,J> = W_CODEACTIVITE THEN
							IF ENR_ORGPRISECHARGE<47,L> = W_CODEACTIVITE THEN
								IF ((ENR_ACTIVITESAIDE<3,J> >= ENR_ACCORD<5> AND ENR_ACTIVITESAIDE<3,J> >= W_DATEDEB) OR ENR_ACTIVITESAIDE<3,J> = "") AND ENR_ACTIVITESAIDE<2,J> <= ENR_ACCORD<6> AND ENR_ACTIVITESAIDE<2,J> <= W_DATEFIN THEN
									W_ACT = "VRAI"
								END
							END
						END
					END
					L = L + 1
				REPEAT
				J = J + 1
			REPEAT
		END

 		IF W_ORG = "FAUX" AND W_ACT = "VRAI" THEN
			IMP = SPACE(1):W_AIDE:SPACE(1)
			INTER = ENR_CIVILAIDE<2>:' ':ENR_CIVILAIDE<3>
			IF LEN(INTER) <= 23 THEN
				IMP = IMP:INTER:SPACE(24-(LEN(INTER)))
			END ELSE
				IMP = IMP:INTER[1,23]:SPACE(1)
			END
			INTER = ENR_ORGPRISECHARGE<1>
			IF LEN(INTER) <= 22 THEN
				IMP = IMP:INTER:SPACE(23-(LEN(INTER)))
			END ELSE
				IMP = IMP:INTER[1,22]:SPACE(1)
			END
			IMP = IMP:SPACE(2):ENR_ORGPRISECHARGE<18>:SPACE(2):OCONV(ENR_ACCORD<5>,"D4/"):SPACE(1):OCONV(ENR_ACCORD<6>,"D4/")
			INTER = ENR_ACCORD<9>/100
			INTER = INTER "R2"
			IMP = IMP:SPACE(8-(LEN(INTER))):INTER

			IF ( ENR_ORGPRISECHARGE<24> = "H" AND ENR_ORGPRISECHARGE<19> = "1" ) OR ( ENR_ORGPRISECHARGE<24> = "H" AND ENR_ORGPRISECHARGE<19> = "2" ) THEN
				IMP = IMP:SPACE(1):"HRES AU MOIS"
			END ELSE
				IF ENR_ORGPRISECHARGE<24> = "H" AND ENR_ORGPRISECHARGE<19> = "3" THEN
                        	IMP = IMP:SPACE(1):"HRES/ACCORD"
				END ELSE                                        	
					IF ( ENR_ORGPRISECHARGE<24> = "M" AND ENR_ORGPRISECHARGE<19> = "1" ) OR ( ENR_ORGPRISECHARGE<24> = "M" AND ENR_ORGPRISECHARGE<19> = "2" ) THEN
						IMP = IMP:SPACE(1):"MONT AU MOIS"
					END ELSE
						IF ENR_ORGPRISECHARGE<24> = "M" AND ENR_ORGPRISECHARGE<19> = "3" THEN
							IMP = IMP:SPACE(1):"MONT/ACCORD"
						END ELSE
							IMP = IMP:SPACE(12)
                        			END
                        		END
                  		END
			END
		
			ESPACE = "0"	

			IF ENR_ORGPRISECHARGE<19> = "3" THEN
				IF ENR_ACCORD<17> <> "" THEN
					INTER = ENR_ACCORD<17,1>/100
					INTER = INTER "R2"
					IMP = IMP:SPACE(9-(LEN(INTER))):INTER
					ESPACE = "1"
				END ELSE
					IF ENR_ORGPRISECHARGE<24> = "H" THEN
						INTER = ENR_ACCORD<9>/100
						INTER = INTER "R2"
						IMP = IMP:SPACE(9-(LEN(INTER))):INTER
						ESPACE = "1"	
					END ELSE
	                  			ESPACE = "9"
					END
            			END
			END ELSE
				ESPACE= "9"
			END

			IF ENR_ORGPRISECHARGE<48> # "%" THEN

				I = "1"
				LOOP
				WHILE ENR_ACCORD<11,I> <> ""
					IF ENR_ACCORD<5>>=W_DATEFIN THEN
						IF ENR_ACCORD<13,I> <> "" THEN
							IF ENR_ACCORD<13,I> = "0" OR ENR_ACCORD<13,I> = "000" THEN
								INTER = "0"					
							END ELSE
								INTER = ENR_ACCORD<13,I>/100
							END	
							INTER = INTER "R2"
							IMP = IMP:SPACE((ESPACE+9)-LEN(INTER)):INTER
							EXIT
						END ELSE
							IMP = IMP:SPACE(ESPACE+9)
							EXIT	
						END
					END				
					IF ENR_ACCORD<11,I> <= W_DATEFIN AND ENR_ACCORD<11,I> <> "" THEN
						IF ENR_ACCORD<13,I> <> "" THEN
							IF ENR_ACCORD<13,I> = "0" OR ENR_ACCORD<13,I> = "000" THEN
								INTER = "0"					
							END ELSE
								INTER = ENR_ACCORD<13,I>/100
							END	
							INTER = INTER "R2"
							IMP = IMP:SPACE((ESPACE+9)-LEN(INTER)):INTER
							EXIT
						END ELSE
							IMP = IMP:SPACE(ESPACE+9)
							EXIT	
						END
					END ELSE
						I = I + 1
					END
				REPEAT

			END ELSE
				IACC = 1
				LOOP
				WHILE ENR_ACCORD<11,IACC> <> "" DO
					IF ENR_ACCORD<11,IACC> <= W_DATEFIN AND ENR_ACCORD<11,IACC> <> "" THEN
						W_TAUX = ENR_ACCORD<10,IACC>
						EXIT
					END ELSE
						W_TAUX = 0
					END
					IACC = IACC + 1
				REPEAT
				IF ENR_ACCORD<6> < W_DATEFIN THEN
					W_DATEFINTX = ENR_ACCORD<6>
				END ELSE
					W_DATEFINTX = W_DATEFIN
				END
				I = 1
				LOOP
				WHILE ENR_ORGPRISECHARGE<26,I> # ""
					IF ENR_ORGPRISECHARGE<25,I> <= W_DATEFINTX AND ENR_ORGPRISECHARGE<25,I> <> "" THEN
						IF ENR_ORGPRISECHARGE<26,I> = "0" OR ENR_ORGPRISECHARGE<26,I> = "000" THEN
							W_FEDE = "FAUX"
							W_CoutPrest = 0
							IF ENR_COMPTEUR<17> # "" THEN
								READ ENR_FEDEASSOC FROM F.FEDEASSOC,ENR_CIVILAIDE<40>[1,3] ELSE ENR_FEDEASSOC = "RIEN"
								IF ENR_FEDEASSOC = "RIEN" THEN
									READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> ELSE ENR_ACTIVITES = ""
								END ELSE
									W_FEDE = "VRAI"
								END
							END ELSE
								READ ENR_ACTIVITES FROM F.ACTIVITES,ENR_ORGPRISECHARGE<47,1> ELSE ENR_ACTIVITES = ""
							END

							IF W_FEDE = "FAUX" THEN
								W_NbTarif=DCOUNT(ENR_ACTIVITES<15>,CHAR(253))
								*PARCOURS DES DATES POUR TROUVER LE TAUX
								FOR ITarif=1 TO W_NbTarif
									*IF ITarif=1 THEN
									*	IF (W_DATEDEB >= ENR_ACTIVITES<15,ITarif> AND ENR_ACTIVITES<20,ITarif> = "2") OR (ENR_ACTIVITES<15,ITarif> <= W_DATEDEB AND ENR_ACTIVITES<15,ITarif> >= W_DATEFIN AND ENR_ACTIVITES<20,ITarif> = "2") THEN
									*		W_CoutPrest=ENR_ACTIVITES<14,ITarif>
									*		W_Orga="TRUE"
									*		EXIT
									*	END
									*END ELSE
										IF ENR_ACTIVITES<15,ITarif> <= W_DATEFINTX AND ENR_ACTIVITES<20,ITarif> = "2" THEN
											W_CoutPrest=ENR_ACTIVITES<14,ITarif>
											W_Orga="TRUE"
											EXIT
										END
									*END
								NEXT ITarif
							END ELSE
								W_NbTarif=DCOUNT(ENR_FEDEASSOC<49>,CHAR(253))
								*PARCOURS DES DATES POUR TROUVER LE TAUX
								FOR ITarif=1 TO W_NbTarif
									*IF ITarif=1 THEN
									*	IF (W_DATEDEB >= ENR_FEDEASSOC<49,ITarif> AND ENR_FEDEASSOC<50,ITarif> = "2") OR (ENR_FEDEASSOC<15,ITarif> <= W_DATEDEB AND ENR_FEDEASSOC<49,ITarif> >= W_DATEFIN AND ENR_FEDEASSOC<50,ITarif> = "2") THEN
									*		W_CoutPrest=ENR_FEDEASSOC<51,ITarif>
									*		W_Orga="TRUE"
									*		EXIT
									*	END
									*END ELSE
										IF ENR_FEDEASSOC<49,ITarif> <= W_DATEFINTX AND ENR_FEDEASSOC<50,ITarif> = "2" AND (ENR_FEDEASSOC<49,ITarif-1>-1) >= W_DATEDEB THEN
											W_CoutPrest=ENR_FEDEASSOC<51,ITarif>
											W_Orga="TRUE"
											EXIT
										END
									*END
								NEXT ITarif
							END
							IF W_CoutPrest = "0" OR W_CoutPrest = "000" OR W_TAUX = "0" OR W_TAUX = "000" THEN
								INTER = "0"
							END ELSE
								INTER = INT(((W_TAUX*W_CoutPrest)/10000)+(1/2))
								INTER = INTER/100
							END
							INTER = INTER "R2"
							IMP = IMP:SPACE((ESPACE+9)-LEN(INTER)):INTER
							EXIT
						END ELSE
							IF W_TAUX = "0" OR W_TAUX = "000" THEN
								INTER = "0"
							END ELSE
								INTER = INT(((W_TAUX*ENR_ORGPRISECHARGE<26,I>)/10000)+(1/2))
								INTER = INTER/100
							END
							INTER = INTER "R2"
							IMP = IMP:SPACE((ESPACE+9)-LEN(INTER)):INTER
							EXIT
						END
					END 
					I = I + 1
				REPEAT
			
			END

			IF ENR_ACCORD<11,I> = "" THEN
				IMP = IMP:SPACE(ESPACE+9)
			END

			INTER = ENR_ACCORD<14,1>
			IMP = IMP:SPACE(1):INTER[5,2]:SPACE(1):INTER[1,4]

			ENR_TEMPO<W_ENR,1> = IMP
			ENR_TEMPO<W_ENR,2> = W_SELECT
			W_ENR = W_ENR + 1 
		END
	REPEAT

	IF ENR_TEMPO<1> = "" THEN
		ENR_TEMPO<1> = "NEANT"
	END

END ELSE

	ENR_TEMPO<1> = "NEANT"

END

PRINT I

WRITE ENR_TEMPO TO F.TEMPO,"LISTACCORD"

EXECUTE 'EFFACER-LISTE W_RESULTAT'
STOP
