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

SUBROUTINE XCOPIEPLGDATE(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 "", "TPSDETAILSINTERV" TO F.TPSDETAILSINTERV ELSE RETURN
OPEN "", "_PH_" TO F.PH ELSE RETURN
OPEN "","ASSOCIATION" TO F.ASSOCIATION ELSE RETURN

Asso=PARAMETRES<1>
W_DateJF=PARAMETRES<2>
W_DateDim=PARAMETRES<3>
TypeAct=PARAMETRES<4>
W_Secteur=PARAMETRES<5>

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

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

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

W_DateDim = ICONV(W_DateDim,"D4/")
IF W_DateDim="" THEN
	W_Sortie="La date du dimanche source est incorrecte."
	RETURN
END

IF OCONV(W_DateDim,"DW")#"0" THEN 
	DateClair=OCONV(W_DateDim,"D4/")
	W_Sortie="Le ":DateClair:" n'est pas un dimanche."
	RETURN
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_DateJF,"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' ELSE
	W_Sortie='Vous devez d':CHAR(39):'abord lancer le programme "Jour fri - Exceptions".'
	RETURN
END
END ELSE

READ ENR_PH FROM F.PH, 'O_ExceptJF':DateNomFichier:W_Secteur:TypeAct:'.txt' ELSE
	W_Sortie='Vous devez d':CHAR(39):'abord lancer le programme "Jour fri - Exceptions".'
	RETURN
END
END

IF W_Secteur="" THEN
READ ENR_PH FROM F.PH, 'O_RapportCopieDate':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_RapportCopieDate':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="COPIEDIMJF1"

IF W_Secteur # "" THEN
	W_Params = "AFFICHEPLANNING |" : W_CleRetour : "||":TypeAct:"|":W_DateJF:"|":W_DateJF:"|S|":W_Secteur:"||E|"
END ELSE
	W_Params = "AFFICHEPLANNING |" : W_CleRetour : "||":TypeAct:"|":W_DateJF:"|":W_DateJF:"||||E|"
END

EXECUTE W_Params
READ TabIntervRef FROM F.TPSTEMPO, "AFFICHEPLANNING":W_CleRetour ELSE
	TabIntervRef = ""
	TabIntervRef<1> = "#FIN"
END
W_CleRetour="COPIEDIMJF2"

IF W_Secteur # "" THEN
	W_Params = "AFFICHEPLANNING |" : W_CleRetour : "||":TypeAct:"|":W_DateDim:"|":W_DateDim:"|S|":W_Secteur:"||E|"
END ELSE
	W_Params = "AFFICHEPLANNING |" : W_CleRetour : "||":TypeAct:"|":W_DateDim:"|":W_DateDim:"||||E|"
END

EXECUTE W_Params
READ TabInterv FROM F.TPSTEMPO, "AFFICHEPLANNING":W_CleRetour ELSE
	TabInterv = ""
	TabInterv<1> = "#FIN"
END


IF W_Secteur="" THEN
EXECUTE 'COMO ON RapportCopieDate':DateNomFichier:TypeAct:'.txt'
END ELSE
EXECUTE 'COMO ON RapportCopieDate':DateNomFichier:W_Secteur:TypeAct:'.txt'

END
ENR = ""
i = 0
y = 0
W_Jour=0
LOOP
i = i + 1
W_Jour=W_Jour+1
WHILE TabInterv<i>[1,4] # "#FIN"
IF TabInterv<i>[1,7] = "#Interv" THEN
	W_CodeAidant100 = TabInterv<i>[8,5]
	i = i + 1
	W_UneCopie = "F"
	W_CopiePossible = "V"
	GOSUB 100
	k = 0
	LOOP
	k = k + 1
	WHILE TabInterv<i,1,k> # "" AND W_CopiePossible = "V"
		IF TabInterv<i,1,k>[1,6] = "Interv" AND LEN(TabInterv<i,1,k>) = 7 THEN
			READ ENR FROM F.TPSDETAILSINTERV, TabInterv<i,4,k>[1,26] THEN
				ENR<6> = ""
				ENR<1> = W_DateJF
				WRITE ENR ON F.TPSDETAILSINTERV, TabInterv<i,4,k>[1,10]:W_DateJF:TabInterv<i,4,k>[16,6]:JourClair:TabInterv<i,4,k>[23,4]
				W_UneCopie = "V"
			END
		END
	REPEAT
	IF W_UneCopie = "V" THEN
		PRINT "Aidant ":W_CodeAidant100:" : Copie effectue."
	END
END ELSE
END
REPEAT
EXECUTE 'COMO OFF'

W_Sortie='Traitement termin. Rapport gnr dans le rpertoire "_PH_" de la base Infologis, sous le nom "O_RapportCopieDate':DateNomFichier:TypeAct:'.txt".'
RETURN
100 ***********************************************************************
* Recherche dans W_TabIntervRefsi salari disponible sur toute la journee
***************************************************************************
W_Trouve100 = "F"
y = 0
LOOP
y = y + 1
WHILE TabIntervRef<y>[1,4] # "#FIN" AND W_Trouve100 = "F"
IF TabIntervRef<y>[1,12] = "#Interv":W_CodeAidant100 THEN
	y = y + 1
	k = 0
	LOOP
	k = k + 1
	WHILE TabIntervRef<y,1,k> # "" AND W_CopiePossible = "V"
		IF TabIntervRef<y,1,k>[1,6] = "Interv" AND LEN(TabIntervRef<y,1,k>) = 7 THEN
			PRINT "Aidant : ":W_CodeAidant100:" : Impossible d'effectuer la copie car des interventions sont prvues le ":OCONV(W_DateJF,"D4/"):"."
			W_CopiePossible = "F"
			W_Trouve100 = "V"
		END
	REPEAT
END ELSE
END
REPEAT
y= y - 1
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
