*PARAMETRES*
*Jour fri - Exceptions*
*Entite juridique |3N|TXT|O*
*Date du jour fri (JJ/MM/AAAA) |10X|TXT|O*
*Type activite (P ou M) |1X|TXT|O*
*Code secteur (3N - facultatif)|3X|TXT|N*
*FIN PARAMETRES*

SUBROUTINE XEXCEPTJF(RETURNVAL,PARAMETRES,W_Sortie)

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "", "TPSEXCEPTIONS" TO F.TPSEXCEPTIONS ELSE RETURN
OPEN "", "TPSTEMPO" TO F.TPSTEMPO ELSE RETURN
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE RETURN
OPEN "", "_PH_" TO F.PH ELSE RETURN


Asso=PARAMETRES<1>
W_Date=PARAMETRES<2>
TypeAct=PARAMETRES<3>
W_Secteur=PARAMETRES<4>

READ ENR_ASSO FROM F.ASSOCIATION, Asso ELSE
	W_Sortie="Aucune entite juridique correspondant a ce code."
	RETURN
END

W_Date = ICONV(W_Date,"D4/")
IF W_Date = "" THEN
	W_Sortie="Date de jour fri incorrecte."
	RETURN
END

W_JourFerieProsp=W_Date
GOSUB 4000
IF Ferie = "SEMAI" THEN
	DateClair=OCONV(W_Date,"D4/")
	W_Sortie="Le ":DateClair:" n'est pas un jour fri."
	RETURN
END
JourClair = MOD(W_Date,7) - 1
IF JourClair = -1 THEN
	W_JourClair = 6
END

IF TypeAct="p" THEN TypeAct="P"
IF TypeAct="m" THEN TypeAct="M"
IF TypeAct<>"P" AND TypeAct<>"M" THEN
	W_Sortie="Type d'activit incorrect."
	RETURN
END

DateNomFichier=OCONV(W_Date,"D4/")
DateNomFichier=DateNomFichier[7,4]:DateNomFichier[4,2]:DateNomFichier[1,2]

ENR_PH=""
IF W_Secteur ="" THEN
READ ENR_PH FROM F.PH, 'O_ExceptJF':DateNomFichier:TypeAct:'.txt' THEN
	W_Sortie="Le traitement de ce type d'activit pour ce jour fri a dj t effectu."
	RETURN
END
END ELSE
READ ENR_PH FROM F.PH, 'O_ExceptJF':DateNomFichier:W_Secteur:TypeAct:'.txt' THEN
	W_Sortie="Le traitement de ce type d'activit pour ce jour fri a dj t effectu."
	RETURN
END
END

W_CleRetour="EXCEPTJF":TypeAct
IF W_Secteur # "" THEN
	W_Params = "AFFICHEPLANNING |" : W_CleRetour : "|":Asso:"|":TypeAct:"|":W_Date:"|":W_Date:"|S|":W_Secteur:"||E|"
END ELSE
	W_Params = "AFFICHEPLANNING |" : W_CleRetour : "|":Asso:"|":TypeAct:"|":W_Date:"|":W_Date:"||||E|"
END
EXECUTE W_Params
READ TabInterv FROM F.TPSTEMPO, "AFFICHEPLANNING":W_CleRetour ELSE
	TabInterv = ""
	TabInterv<1> = "#FIN"
END
ENR = ""
i = 0
W_Jour=0
LOOP
i = i + 1
W_Jour=W_Jour+1
WHILE TabInterv<i>[1,4] # "#FIN"
IF TabInterv<i>[1,1] # "#" THEN
	k = 0
	LOOP
	k = k + 1
	WHILE TabInterv<i,1,k> # ""
		IF TabInterv<i,1,k>[1,6] = "Interv" AND LEN(TabInterv<i,1,k>) = 7 THEN
			ENR<1>=TabInterv<i,4,k>[1,26]
			WRITE ENR ON F.TPSEXCEPTIONS, TabInterv<i,4,k>[1,10]:W_Date:TabInterv<i,4,k>[16,11]
		END
		
	REPEAT
END ELSE
END
REPEAT

ENR_PH=""
IF W_Secteur="" THEN
	WRITE ENR_PH ON F.PH, 'O_ExceptJF':DateNomFichier:TypeAct:'.txt'
	W_Sortie="Traitement termin."
END ELSE
	WRITE ENR_PH ON F.PH, 'O_ExceptJF':DateNomFichier:W_Secteur:TypeAct:'.txt'
	W_Sortie="Traitement termin."
END
RETURN
4000 **************************************************************************
*  On dtermine W_RubDefautFerieProsp selon que la date interne		      *
* W_JourFerieProsp soit un dimanche, 1er mai,etc...			      *
*******************************************************************************
* ATTENTION : ne pas utiliser variables i, k, W_NbMv,...
* pour viter tous risques, les variables utilises par cette procdure se nomment toutes [XX]FerieProsp
* + penser en dbut de programme a initialiser W_DerniereAnneeFerieProsp afin d'viter les avertissements d'unidata.
W_JF4000 = "F"
W_JourClairFerieProsp = OCONV(W_JourFerieProsp,"D4/")
W_Param4000=W_JourClairFerieProsp:"|":Asso
CALL DIMJF(RETURNVAL,W_Param4000,Ferie)
RETURN
