*****************************************************************
* TESTS LIES A L'ENREGISTREMENT DES INTERVENTIONS DU PLANNING
* CELINE MARS 2002
*****************************************************************

* Ouvertures des fichiers

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","TPSDETAILINTERV" TO F.TPSDETAILINTERV ELSE PRINT "OUVERTURE TPSDETAILINTERV" ;* en lecture
OPEN "","TPSPARAMETRES" TO F.TPSPARAMETRES ELSE PRINT "OUVERTURE TPSPARAMETRES" ;* en lecture
OPEN "","TEMPO" TO F.TEMPO ELSE PRINT "OUVERTURE TEMPO" ;* en ecriture 
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE PRINT "OUVERTURE CIVILAIDE" ;* en lecture
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
OPEN "","CONTRAT" TO F.CONTRAT ELSE PRINT "OUVERTURE CONTRAT" ;* en lecture
OPEN "","ACTIVITESAIDE" TO F.ACTIVITESAIDE ELSE PRINT "OUVERTURE ACTIVITESAIDE" ;* en lecture
OPEN "","ACTIVITES" TO F.ACTIVITES ELSE PRINT "OUVERTURE ACTIVITES" ;* en lecture
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE PRINT "OUVERTURE CONSTANTESPAIE" ;* en lecture
OPEN "","ACCORD" TO F.ACCORD ELSE PRINT "OUVERTURE ACCORD" ;* en lecture
OPEN "","DEMANDACC" TO F.DEMANDACC ELSE PRINT "OUVERTURE DEMANDACC" ;* en lecture
OPEN "","TPSAIDANTDISPO" TO F.TPSAIDANTDISPO ELSE PRINT "OUVERTURE TPSAIDANTDISPO" ;* en lecture
OPEN "","CONSTANTESPAIE" TO F.CONSTANTESPAIE ELSE PRINT "OUVERTURE CONSTANTESPAIE" ;* en lecture
OPEN "","CONVENTIONCOL" TO F.CONVENTIONCOL ELSE PRINT "OUVERTURE CONVENTIONCOL" ;* en lecture
*********************************************************
* initialisation des variables
W_CountDdeAcc=""
iDdeAcc=""
W_CountAcc=""
iAcc=""
W_HeuresAllouees=0
W_HeuresPrevues=0
W_HeurePrest=0
W_Valeur=0
W_TabActAide=""
W_CountTab=0
iHoraire=""
j=""
k=""
iTpsInterv=""
W_CountTpsInterv=""
W_CountHoraire=""
W_CountActivite=""
W_CountValeur=""
W_CountInterv=""
W_Calcul = "False"
W_FinAct="False"
W_ValeurTotale = 0
W_ValeurDispo=0
W_HoraireLegalCCN=0
W_ValeurTotaleContrat=0
W_Valeur=0
W_RequeteDdeAccord=""
W_RequeteAccord=""
W_RequeteHoraire=""
W_RequetePlageHoraire=""
W_RequeteActivites=""
ENR_TEMPO=""
*******************************************************
*RECUPERATION DES ARGUMENTS
*******************************************************
PROCREAD ARGUMENTS ELSE STOP

W_Debut=FIELD(ARGUMENTS," ",2)
W_Fin=FIELD(ARGUMENTS," ",3)
W_Asso=FIELD(ARGUMENTS," ",4)
W_CodeAide=FIELD(ARGUMENTS," ",5)
W_CodeAidant=FIELD(ARGUMENTS," ",6)
W_CodeActivite=FIELD(ARGUMENTS," ",7)
W_JourIndex=FIELD(ARGUMENTS," ",8)
W_HreA=FIELD(ARGUMENTS," ",9)
W_HreDe=FIELD(ARGUMENTS," ",10)
W_FreqIndex=FIELD(ARGUMENTS," ",11)
W_DateFin=FIELD(ARGUMENTS," ",12)
W_CodeContratPrest=FIELD(ARGUMENTS," ",13)
W_CodeContratMand=FIELD(ARGUMENTS," ",14)
W_ZoneValeur=FIELD(ARGUMENTS," ",15)
W_Modif=FIELD(ARGUMENTS," ",16)
W_AncJour=FIELD(ARGUMENTS," ",17)
W_AncHreDe=FIELD(ARGUMENTS," ",18)
W_AncHreA=FIELD(ARGUMENTS," ",19)
*******************************************************
*PROGRAMME PRINCIPAL
*******************************************************

IF W_Modif = "Vrai" OR W_Modif = "True" THEN
	W_CleInt = W_CodeAidant:W_CodeAide:W_Debut:W_CodeActivite

	READ ENR_TPSDETAILINTERV FROM F.TPSDETAILINTERV,W_CleInt ELSE ENR_TPSDETAILINTERV=""

	W_CountTpsInterv=DCOUNT(ENR_TPSDETAILINTERV<2>,CHAR(253))

	FOR iTpsInterv=1 TO W_CountTpsInterv

*PRINT "W_AncJour :":W_AncJour
*PRINT "ENR_TPSDETAILINTERV<2,iTpsInterv> :":ENR_TPSDETAILINTERV<2,iTpsInterv>
*PRINT "W_AncHreDe :":W_AncHreDe
*PRINT "ENR_TPSDETAILINTERV<3,iTpsInterv> :":ENR_TPSDETAILINTERV<3,iTpsInterv>
*PRINT "W_AncHreA :":W_AncHreA
*PRINT "ENR_TPSDETAILINTERV<4,iTpsInterv> :":ENR_TPSDETAILINTERV<4,iTpsInterv>
*DEBUG

		IF W_AncJour=ENR_TPSDETAILINTERV<2,iTpsInterv> AND W_AncHreDe=ENR_TPSDETAILINTERV<3,iTpsInterv> AND W_AncHreA=ENR_TPSDETAILINTERV<4,iTpsInterv> THEN

			ENR_TPSDETAILINTERV=DELETE(ENR_TPSDETAILINTERV,2,iTpsInterv)
			ENR_TPSDETAILINTERV=DELETE(ENR_TPSDETAILINTERV,3,iTpsInterv)
			ENR_TPSDETAILINTERV=DELETE(ENR_TPSDETAILINTERV,4,iTpsInterv)
			ENR_TPSDETAILINTERV=DELETE(ENR_TPSDETAILINTERV,5,iTpsInterv)
			ENR_TPSDETAILINTERV=DELETE(ENR_TPSDETAILINTERV,8,iTpsInterv)
			ENR_TPSDETAILINTERV=DELETE(ENR_TPSDETAILINTERV,9,iTpsInterv)	

			WRITE ENR_TPSDETAILINTERV ON F.TPSDETAILINTERV,W_CleInt

		END
	NEXT iTpsInterv

END


	     READ ENR_ACTIVITES FROM F.ACTIVITES,W_CodeActivite ELSE ENR_ACTIVITES=""
		IF ENR_ACTIVITES<12> = "P" THEN
			W_CodeContrat=W_CodeContratPrest
		END ELSE
			IF ENR_ACTIVITES<12>="M" THEN
				W_CodeContrat=W_CodeContratMand
			END
		END

*CALCUL HEURES DEMANDE ACCORD
GOSUB 30

*CALCUL HEURES ACCORD
GOSUB 40

*CALCUL HEURES LEGAL HEBDOMADAIRE
GOSUB 50

*MESSAGES DE DEPASSEMENT
GOSUB 20

*TEST PLAGE HORAIRE OCCUPEE
GOSUB 60

WRITE ENR_TEMPO ON F.TEMPO,"INTERVPLANNING"

STOP


*******************************************************
* MESSAGES DE DEPASSEMENT 
*******************************************************
20
            IF W_HeuresAllouees <> "0" THEN
                W_HeuresAllouees = (W_HeuresAllouees * 12) / 52
            END

            IF INT(W_HeuresAllouees) < INT(W_HeurePrest) THEN
                *CalculDdeAccord
                IF W_HeuresAllouees + W_HeuresPrevues <> "0" THEN
                    IF INT(W_HeuresAllouees + W_HeuresPrevues) < INT(W_HeurePrest) THEN
                       ENR_TEMPO<1>="Les interventions de l'aid dpassent les droits des accords."
                    END
                END ELSE
                   ENR_TEMPO<2>="Il y a ni accord, ni demande d'accord sur la priode slectionne."
                END
	    END ELSE
		ENR_TEMPO<1>="0"
		ENR_TEMPO<2>="0"
            END

            IF INT(W_ValeurTotale) > INT(ENR_CONSTANTESPAIE<10>) THEN
                ENR_TEMPO<3>="Pour information : le nombre d'heures hebdomadaire de cet aidant dpasse l'horaire lgal hebdomadaire."
            END ELSE
			ENR_TEMPO<3>="0"
            END


	     READ ENR_TPSAIDANTDISPO FROM F.TPSAIDANTDISPO,W_CodeAidant ELSE ENR_TPSAIDANTDISPO=""

	     IF ENR_TPSAIDANTDISPO<2>="4" THEN
		W_ValeurDispo=ENR_TPSAIDANTDISPO<1>/52
	     END ELSE
		IF ENR_TPSAIDANTDISPO<2>="3" THEN
			W_ValeurDispo=(ENR_TPSAIDANTDISPO<1>*12)/52
		END ELSE
			IF ENR_TPSAIDANTDISPO<2>="2" THEN
				W_ValeurDispo=ENR_TPSAIDANTDISPO<1>/2
			END ELSE
				IF ENR_TPSAIDANTDISPO<1>="1" THEN
					W_ValeurDispo=ENR_TPSAIDANTDISPO<1>
				END
			END
		END
	     END

		IF W_ValeurDispo # "" AND W_ValeurDispo # "0" THEN
		     IF INT(W_ValeurTotale) > INT(W_ValeurDispo) THEN
			ENR_TEMPO<4>="Pour information : le nombre d'heures hebdomadaire de cet aidant dpasse ses disponibilits."
		     END ELSE
			ENR_TEMPO<4>="0"
		     END
		END ELSE
			ENR_TEMPO<4>="0"
		END

	     READ ENR_ACTIVITES FROM F.ACTIVITES,W_CodeActivite ELSE ENR_ACTIVITES=""
		IF ENR_ACTIVITES<12> = "P" THEN
			READ ENR_CONTRAT FROM F.CONTRAT,W_CodeContratPrest ELSE ENR_CONTRAT=""
		END ELSE
			IF ENR_ACTIVITES<12>="M" THEN
				READ ENR_CONTRAT FROM F.CONTRAT,W_CodeContratMand ELSE ENR_CONTRAT=""
			END
		END

            IF ENR_CONTRAT<25> = "2" THEN
			IF ENR_CONTRAT<24># "" THEN
		                W_HoraireLegal = ENR_CONTRAT<24> / 2
			END
            END ELSE
                IF ENR_CONTRAT<25> = "3" THEN
			IF ENR_CONTRAT<24># "" THEN
        	            W_HoraireLegal = (ENR_CONTRAT<24>*12)/52
			END
                END ELSE
                    IF ENR_CONTRAT<25> = "4" THEN
			IF ENR_CONTRAT<24># "" THEN
        	                W_HoraireLegal = ENR_CONTRAT<24> / 52
			END
                    END ELSE
			IF ENR_CONTRAT<24># "" THEN		
        	                W_HoraireLegal = ENR_CONTRAT<24>
			END
                    END
                END
            END

            IF INT(W_ValeurTotaleContrat) > INT(W_HoraireLegal) THEN
                ENR_TEMPO<5>="Pour information : le nombre d'heures hebdomadaire de cet aidant dpasse l'horaire hebdomadaire du contrat de travail."
	    END ELSE
		    ENR_TEMPO<5>="0"
            END

	    READ ENR_CONVENTIONCOL FROM F.CONVENTIONCOL,ENR_CONTRAT<1> ELSE ENR_CONVENTIONCOL=""
	   
	    IF ENR_CONVENTIONCOL<10> # "" AND ENR_CONVENTIONCOL<10> # "0" THEN
		ENR_CONVENTIONCOL<10>=ENR_CONVENTIONCOL<10>/100
		W_HoraireLegalCCN=W_HoraireLegal
		W_HoraireLegalCCN=W_HoraireLegal*ENR_CONVENTIONCOL<10>
		W_HoraireLegalCCN=W_HoraireLegalCCN/100
		W_HoraireLegalCCN=W_HoraireLegal+W_HoraireLegalCCN
	    END

	    IF W_HoraireLegalCCN # "" THEN
		IF INT(W_HoraireLegalCCN)<INT(W_ValeurTotaleContrat) THEN
			ENR_TEMPO<8>="Pour Information : le nombre d'heures hebdomadaire de cet aidant dpasse le pourcentage de travail supplmentaire autoris par la CCN lie au contrat."
		END ELSE
			ENR_TEMPO<8>="0"
		END
	    END ELSE
		ENR_TEMPO<8>="0"
	    END

RETURN

*******************************************************
* procedure calcul demande accord
*******************************************************
30
   
	READ ENR_DEMANDACC FROM F.DEMANDACC,W_CodeAide THEN 	
        
	 IF ENR_DEMANDACC<1> # "" THEN
        W_CountDdeAcc =DCOUNT(ENR_DEMANDACC<1>,CHAR(253))
        FOR iDde = 1 TO W_CountDdeAcc
		IF ENR_DEMANDACC<4,iDde> >= W_Debut THEN
			IF W_Fin<> "" THEN
				IF ENR_DEMANDACC<3,iDde> <= W_Fin THEN
        			        W_HeuresPrevues = W_HeuresPrevues + ENR_DEMANDACC<5, iDde>
				END
			END ELSE
				IF ENR_DEMANDACC<3,iDde> <= W_Debut THEN
        			        W_HeuresPrevues = W_HeuresPrevues + ENR_DEMANDACC<5, iDde>
				END
			END
		END
        NEXT iDde	
	 END
	END ELSE
		ENR_DEMANDACC=""
		RETURN
	END
    
RETURN


*******************************************************
* procedure calcul accord
*******************************************************
40
   
    W_Temp='SELECT ACCORD AVEC @ID = "':W_CodeAide:"]":'" AND AVEC 18 <> "':"O":'" AND AVEC EntiteAccord = "':W_Asso:'" AND AVEC TypeOrg = "':"P":'" AND AVEC NotifOrg = "':"H":'" AND AVEC ActivitesOrg = "':W_CodeActivite:'" AND AVEC PlafDroitOrgChg = "':"1":'" OR = "':"2":'" AND AVEC 6 >= "':W_Debut:'"'
    
    IF W_DateFin = "Vrai" OR W_DateFin = "True" THEN
        IF W_Fin <> "" THEN
            W_Temp = W_Temp:' AND AVEC 5 <= "':W_Fin:'"'
        END ELSE
            W_Temp = W_Temp:' AND AVEC 5 <= "':W_Debut:'"'
        END
    END ELSE
        W_Temp = W_Temp:' AND AVEC 5 <= "':W_Debut:'"'
    END

   EXECUTE W_Temp
   EXECUTE 'SAUVE-LISTE W_RequeteAccord'
   EXECUTE "LISTE W_RequeteAccord" RETURNING MSGCODE
    
   IF MSGCODE<1>#209 THEN
      SELECT F.ACCORD TO W_RequeteAccord
      W_EndAcc="FAUX"
      LOOP
         READNEXT W_CleAcc FROM W_RequeteAccord ELSE W_EndAcc = "VRAI"
      WHILE W_EndAcc = "FAUX" DO
	
         READ ENR_ACCORD FROM F.ACCORD,W_CleAcc ELSE ENR_ACCORD=""
	W_HeuresAllouees=W_HeuresAllouees+ENR_ACCORD<9>

      REPEAT
   END
    
RETURN

******************************************************
*calcul horaire legal hebdo
******************************************************
50
    
	READ ENR_CONSTANTESPAIE FROM F.CONSTANTESPAIE,1 ELSE ENR_CONSTANTESPAIE=""

    W_Temp= 'SELECT TPSDETAILINTERV AVEC CodeAidant = "':W_CodeAidant:'"'

   EXECUTE W_Temp
   EXECUTE 'SAUVE-LISTE W_RequeteHoraire'
   EXECUTE "LISTE W_RequeteHoraire" RETURNING MSGCODE
    
   IF MSGCODE<1>#209 THEN
      SELECT F.ACCORD TO W_RequeteHoraire

      W_EndHoraire="FAUX"
      LOOP
         READNEXT W_CleHoraire FROM W_RequeteHoraire ELSE W_EndHoraire = "VRAI"
      WHILE W_EndHoraire = "FAUX" DO
	

            READ ENR_TPSDETAILINTERV FROM F.TPSDETAILINTERV,W_CleHoraire ELSE ENR_TPSDETAILINTERV= ""

            IF W_Fin <> "" THEN
                IF ENR_TPSDETAILINTERV<1> <> "" THEN
                    IF INT(W_Fin) > INT(W_CleHoraire[11,5]) AND INT(W_Debut) < INT(ENR_TPSDETAILINTERV<1>) THEN
                        W_Calcul = "True"
                    END
                END ELSE
                    IF INT(W_Fin) >= INT(W_CleHoraire[11, 5]) THEN
                        W_Calcul = "True"
                    END
                END
            END ELSE
                IF ENR_TPSDETAILINTERV<1> <> "" THEN
                    IF INT(W_Debut) <= INT(ENR_TPSDETAILINTERV<1>) THEN
                        W_Calcul = "True"
                    END
                END ELSE
                    W_Calcul = "True"
                END
            END

            IF W_Calcul = "True" THEN
                W_CountValeur = DCOUNT(ENR_TPSDETAILINTERV<5>,CHAR(253))

                FOR k = 1 TO W_CountValeur
                    IF ENR_TPSDETAILINTERV<5, k> = "1" THEN
                        W_Valeur = ENR_TPSDETAILINTERV<9, k> / 2
                    END ELSE
                        IF ENR_TPSDETAILINTERV<5, k> = "2" THEN
                            W_Valeur = ENR_TPSDETAILINTERV<9, k> / 3
                        END ELSE
                            IF ENR_TPSDETAILINTERV<5, k> = "3" THEN
                                W_Valeur = (ENR_TPSDETAILINTERV<9, k>*12)/52
                            END ELSE
                                W_Valeur = ENR_TPSDETAILINTERV<9, k>
                            END
                        END
                    END

		IF ENR_TPSDETAILINTERV<13> = W_CodeContrat THEN
			W_ValeurTotaleContrat=W_ValeurTotaleContrat+W_Valeur
		END

		    READ ENR_ACTIVITES FROM F.ACTIVITES,W_CleHoraire[16,6] ELSE ENR_ACTIVITES=""
		    IF ENR_ACTIVITES<12> = "P" AND W_CleHoraire[6,5] = W_CodeAide THEN
			W_HeurePrest=W_HeurePrest + W_Valeur
		    END	
                    W_ValeurTotale = W_ValeurTotale + W_Valeur
                NEXT k
            END
	REPEAT

   END    

	*AJOUT VALEUR EN COURS ET VALEURS EN COURS POUR HRES PRESTATAIRE
	READ ENR_ACTIVITES FROM F.ACTIVITES,W_CodeActivite ELSE ENR_ACTIVITE=""

	IF W_FreqIndex = "1" THEN
		W_ZoneValeur=W_ZoneValeur/2
	END ELSE
		IF W_FreqIndex = "2" THEN
			W_ZoneValeur=W_ZoneValeur/3
		END ELSE
			IF W_FreqIndex = "3" THEN
				W_ZoneValeur=(W_ZoneValeur*12)/52
			END
		END
	END

	IF ENR_ACTIVITES<12> = "P" THEN
		W_HeurePrest=W_HeurePrest+W_ZoneValeur
	END


	W_ValeurTotale = W_ValeurTotale + W_ZoneValeur
	W_ValeurTotaleContrat=W_ValeurTotaleContrat+W_ZoneValeur

RETURN

*****************************************************************
* test plage horaire
*****************************************************************
60

    IF W_Fin <> "" THEN
        W_Temp = 'SELECT TPSDETAILINTERV AVEC CodeAidant = "':W_CodeAidant:'" AND AVEC DateDebInterv <= "':W_Fin:'" AND AVEC 1 >= "':W_Debut:'" OR = "':"":'" PAR @ID'
    END ELSE
        W_Temp = 'SELECT TPSDETAILINTERV AVEC CodeAidant = "':W_CodeAidant:'" AND AVEC 1 >= "':W_Debut:'" OR = "':"":'" PAR @ID'
    END
        
    TestPlageHoraire = "False"
    *W_ClePlageHoraire = W_CodeAidant & W_CodeAide & W_Debut & W_CodeActivite

   EXECUTE W_Temp
   EXECUTE 'SAUVE-LISTE W_RequetePlageHoraire'
   EXECUTE "LISTE W_RequetePlageHoraire" RETURNING MSGCODE
    
   IF MSGCODE<1>#209 THEN
      SELECT F.TPSDETAILINTERV TO W_RequetePlageHoraire

      W_EndPlageHoraire="FAUX"
      LOOP
         READNEXT W_ClePlageHoraire FROM W_RequetePlageHoraire ELSE W_EndPlageHoraire = "VRAI"
      WHILE W_EndPlageHoraire = "FAUX" DO

            READ ENR_TPSDETAILINTERVVERIF FROM F.TPSDETAILINTERV,W_ClePlageHoraire ELSE ENR_TPSDETAILINTERVVERIF= ""
            W_CountJour = DCOUNT(ENR_TPSDETAILINTERVVERIF<2>,CHAR(253))
            READ ENR_ACTIVITESAIDE FROM F.ACTIVITESAIDE,W_ClePlageHoraire[6, 5] ELSE ENR_ACTIVITESAIDE= ""
            W_CountActAide = DCOUNT(ENR_ACTIVITESAIDE<1>,CHAR(253))
            
            *FOR j = 1 TO W_CountJour
                IF W_TabActAide <> "" THEN
                    W_CountTab =DCOUNT(W_TabActAide,CHAR(254))
                    FOR iTab = 1 TO W_CountTab
                        IF W_ClePlageHoraire[6, 5] <> W_TabActAide<iTab, 1> THEN
                            FOR iAct = 1 TO W_CountActAide
                                IF W_ClePlageHoraire[6, 5] = ENR_ACTIVITESAIDE<1, iAct> THEN
                                    W_TabActAide<iAct, 1> = ENR_ACTIVITESAIDE<1, iAct>
                                    W_TabActAide<iAct, 2> = ENR_ACTIVITESAIDE<3, iAct>
                                    IF ENR_ACTIVITESAIDE<3, iAct> <> "" THEN
                                        W_FinAct = "True"
                                    END
                                    EXIT
                                END
                            NEXT iAct
                        END
                    NEXT iTab
                END ELSE
                    FOR iAct = 1 TO W_CountActAide
                        IF W_ClePlageHoraire[6, 5] = ENR_ACTIVITESAIDE<1, iAct> THEN
                            W_TabActAide<iAct, 1> = ENR_ACTIVITESAIDE<1, iAct>
                            W_TabActAide<iAct, 2> = ENR_ACTIVITESAIDE<3, iAct>
                            IF ENR_ACTIVITESAIDE<3, iAct> <> "" THEN
                                W_FinAct = "True"
                            END
                            EXIT
                        END
                    NEXT iAct
                
                END

            FOR j = 1 TO W_CountJour
*PRINT "W_ClePlageHoraire :":W_ClePlageHoraire
*PRINT "j :":j
*PRINT "ENR_TPSDETAILINTERVVERIF<2, j> :":ENR_TPSDETAILINTERVVERIF<2, j>
*PRINT "ENR_TPSDETAILINTERVVERIF<3, j> :":ENR_TPSDETAILINTERVVERIF<3, j>
*PRINT "ENR_TPSDETAILINTERVVERIF<4, j> :":ENR_TPSDETAILINTERVVERIF<4, j>
*PRINT "ENR_TPSDETAILINTERVVERIF<5, j> :":ENR_TPSDETAILINTERVVERIF<5, j>
*PRINT "ENR_TPSDETAILINTERVVERIF<2, j+1> :":ENR_TPSDETAILINTERVVERIF<2, j+1>
*PRINT "ENR_TPSDETAILINTERVVERIF<3, j+1> :":ENR_TPSDETAILINTERVVERIF<3, j+1>
*PRINT "ENR_TPSDETAILINTERVVERIF<4, j+1> :":ENR_TPSDETAILINTERVVERIF<4, j+1>
*PRINT "ENR_TPSDETAILINTERVVERIF<5, j+1> :":ENR_TPSDETAILINTERVVERIF<5, j+1>
*PRINT "W_JourIndex :":W_JourIndex
*PRINT "W_HreA :":W_HreA
*PRINT "W_HreDe :":W_HreDe
*PRINT "W_DateFin :":W_DateFin
*PRINT "W_Fin :":W_Fin:"/"
*PRINT "TestPlageHoraire :":TestPlageHoraire
*PRINT "W_ClePlageHoraire[11,5] :":W_ClePlageHoraire[11,5]
*PRINT "W_Debut :":W_Debut
*DEBUG

                        IF ENR_TPSDETAILINTERVVERIF<2, j> <> "" THEN
                            IF W_JourIndex = ENR_TPSDETAILINTERVVERIF<2, j> THEN
                                IF W_DateFin = "Vrai" OR W_DateFin = "True" THEN
                                    IF W_Fin <> "" THEN
                                        IF INT(W_ClePlageHoraire[11, 5]) <= INT(W_Fin) AND INT(ENR_TPSDETAILINTERV<1>) > INT(W_Debut) THEN
                                            IF INT(ENR_TPSDETAILINTERVVERIF<3, j>) < INT(W_HreA) AND INT(ENR_TPSDETAILINTERVVERIF<4, j>) > INT(W_HreDe) THEN
                                                TestPlageHoraire = "True"
                                                *"Cette plage horaire est dj renseigne.", vbOKOnly + vbExclamation, "Message INFOLOGIS"
                                                *Exit Function
                                            END
                                        END
                                    END ELSE
                                        IF INT(W_ClePlageHoraire[11, 5]) <= INT(W_Debut) THEN
                                            IF ENR_TPSDETAILINTERVVERIF<1> <> "" THEN
                                                IF INT(ENR_TPSDETAILINTERVVERIF<1>) >= INT(W_Debut) THEN
                                                    IF INT(ENR_TPSDETAILINTERVVERIF<3, j>) < INT(W_HreA) AND INT(ENR_TPSDETAILINTERVVERIF<4, j>) > INT(W_HreDe) THEN
                                                        TestPlageHoraire = "True"
                                                        *"Cette plage horaire est dj renseigne.", vbOKOnly + vbExclamation, "Message INFOLOGIS"
                                                        *Exit Function
                                                    END
                                                END
                                            END ELSE
                                                IF INT(ENR_TPSDETAILINTERVVERIF<3, j>) < INT(W_HreA) AND INT(ENR_TPSDETAILINTERVVERIF<4, j>) > INT(W_HreDe) THEN
                                                    TestPlageHoraire = "True"
                                                    *"Cette plage horaire est dj renseigne.", vbOKOnly + vbExclamation, "Message INFOLOGIS"
                                                    *Exit Function
                                                END
                                           END
                                        END ELSE
                                            IF INT(ENR_TPSDETAILINTERVVERIF<3, j>) < INT(W_HreA) AND INT(ENR_TPSDETAILINTERVVERIF<4, j>) > INT(W_HreDe) THEN
                                                TestPlageHoraire = "True"
                                                *"Cette plage horaire est dj renseigne.", vbOKOnly + vbExclamation, "Message INFOLOGIS"
                                                *Exit Function
                                            END
                                        END
                                    END
                                END ELSE
                                    IF W_Fin <> "" THEN
                                        IF INT(W_ClePlageHoraire[11, 5]) < INT(W_Fin) AND INT(W_ClePlageHoraire[11, 5]) < INT(W_Debut) THEN
                                            IF INT(ENR_TPSDETAILINTERVVERIF<3, j>) < INT(W_HreA) AND INT(ENR_TPSDETAILINTERVVERIF<4, j>) > INT(W_HreDe) THEN
                                                TestPlageHoraire = "True"
                                                *"Cette plage horaire est dj renseigne.", vbOKOnly + vbExclamation, "Message INFOLOGIS"
                                                *Exit Function
                                            END
                                        END
				    END ELSE
					IF INT(W_ClePlageHoraire[11,5]) <= INT(W_Debut) THEN
						IF INT(ENR_TPSDETAILINTERVVERIF<3, j>) < INT(W_HreA) AND INT(ENR_TPSDETAILINTERVVERIF<4, j>) > INT(W_HreDe) THEN
							TestPlageHoraire = "True"
						END
					END
                                    END
                                END
                            END
                            IF ENR_TPSDETAILINTERVVERIF<2, j> = W_JourIndex - 1 THEN
                                IF INT(ENR_TPSDETAILINTERVVERIF<3, j>) > INT(ENR_TPSDETAILINTERVVERIF<4, j>) THEN
                                    IF INT(ENR_TPSDETAILINTERVVERIF<4, j>) > INT(W_HreDe) THEN
                                        TestPlageHoraire = "True"
                                        *"Cette plage horaire est dj renseigne.", vbOKOnly + vbExclamation, "Message INFOLOGIS"
                                        *Exit Function
                                    END
                                END
                            END ELSE
                                IF ENR_TPSDETAILINTERVVERIF<2, j> = W_JourIndex + 1 THEN
                                    IF INT(W_HreDe) > INT(W_HreA) THEN
                                        IF INT(W_HreA) > INT(ENR_TPSDETAILINTERVVERIF<3, j>) THEN
                                            TestPlageHoraire = "True"
                                            *"Cette plage horaire est dj renseigne.", vbOKOnly + vbExclamation, "Message INFOLOGIS"
                                            *Exit Function
                                        END
                                    END
                                END
                            END
                        END
*			IF TestPlageHoraire="True" THEN
*PRINT "TestPlageHoraire:":TestPlageHoraire
*PRINT "W_ClePlageHoraire :":W_ClePlageHoraire
*				IF W_FreqIndex # "0" THEN
*PRINT "W_FreqIndex :":W_FreqIndex
*PRINT "j :":j
*PRINT "ENR_TPSDETAILINTERV<2,j> :":ENR_TPSDETAILINTERVVERIF<2,j>
*PRINT "ENR_TPSDETAILINTERV<3,j> :":ENR_TPSDETAILINTERVVERIF<3,j>
*PRINT "ENR_TPSDETAILINTERV<4,j> :":ENR_TPSDETAILINTERVVERIF<4,j>
*PRINT "ENR_TPSDETAILINTERV<5,j> :":ENR_TPSDETAILINTERVVERIF<5,j>
*DEBUG
*					BEGIN CASE
*						CASE ENR_TPSDETAILINTERVVERIF<5,j>="1"
*							BEGIN CASE
*								CASE W_FreqIndex="1"
*PRINT "W_Debut :":W_Debut
*PRINT "W_ClePlageHoraire[11,5] :":W_ClePlageHoraire[11,5]
*PRINT "7+7*ENR_TPSDETAILINTERV<5,j> :":7+7*ENR_TPSDETAILINTERV<5,j>
*PRINT "W_Debut-W_ClePlageHoraire[11,5]+1 :":W_Debut-W_ClePlageHoraire[11,5]+1
*PRINT "MOD(W_Debut-W_ClePlageHoraire[11,5]+1,7+7*ENR_TPSDETAILINTERV<5,j>) :":MOD(W_Debut-W_ClePlageHoraire[11,5]+1,7+7*ENR_TPSDETAILINTERVVERIF<5,j>)
*DEBUG
*									IF (7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < (W_Debut-W_ClePlageHoraire[11,5]+1) THEN
*										IF MOD(W_Debut-W_ClePlageHoraire[11,5]+1,7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < 7 THEN
*											TestPlageHoraire="False"
*										END
*									END ELSE
*										TestPlageHoraire="False"
*									END
*								CASE W_FreqIndex="2"
*									FOR i=1 TO 3
*										IF (7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < (W_Debut-W_ClePlageHoraire[11,5]+1) THEN
*											IF MOD(W_Debut-W_ClePlageHoraire[11,5]+1,7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < 7 THEN
*												TestPlageHoraire="False"
*											*EXIT
*											END ELSE
*												W_Debut=W_Debut+21
*											END
*										END ELSE
*											TestPlageHoraire="False"
*										END
*									NEXT i
*								CASE W_FreqIndex="3"
*									FOR i=1 TO 2
*										IF (7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < (W_Debut-W_ClePlageHoraire[11,5]+1) THEN
*											IF MOD(W_Debut-W_ClePlageHoraire[11,5]+1,7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < 7 THEN
*												TestPlageHoraire="False"
*											END ELSE
*												W_Debut=W_Debut+28
*											END		
*										END ELSE
*											TestPlageHoraire="False"
*										END
*									NEXT i
*							END CASE
*						CASE ENR_TPSDETAILINTERVVERIF<5,j>="2"
*							BEGIN CASE
*								CASE W_FreqIndex="1"
*									FOR i=1 TO 3
*										IF (7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < (W_Debut-W_ClePlageHoraire[11,5]+1) THEN
*											IF MOD(W_Debut-W_ClePlageHoraire[11,5]+1,7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < 7 THEN
*												TestPlageHoraire="False"
*											END
*										END ELSE
*											TestPlageHoraire="False"
*										END
*									NEXT i
*								CASE W_FreqIndex="2"
*									IF (7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < (W_Debut-W_ClePlageHoraire[11,5]+1) THEN
*										IF MOD(W_Debut-W_ClePlageHoraire[11,5]+1,7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < 7 THEN
*											TestPlageHoraire="False"
*										END
*									END ELSE
*										TestPlageHoraire="False"
*									END
*								CASE W_FreqIndex="3"
*									FOR i=1 TO 2
*										IF (7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < (W_Debut-W_ClePlageHoraire[11,5]+1) THEN
*											IF MOD(W_Debut-W_ClePlageHoraire[11,5]+1,7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < 7 THEN	
*												TestPlageHoraire="False"
*											END
*										END ELSE
*											TestPlageHoraire="False"
*										END
*									NEXT i
*							END CASE
*						CASE ENR_TPSDETAILINTERVVERIF<5,j>="3"
*							BEGIN CASE
*								CASE W_FreqIndex="1"
*									FOR i=1 TO 2
*										IF (7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < (W_Debut-W_ClePlageHoraire[11,5]+1) THEN
*											IF MOD(W_Debut-W_ClePlageHoraire[11,5]+1,7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < 7 THEN
*												TestPlageHoraire="False"
*											END
*										END ELSE
*											TestPlageHoraire="False"
*										END
*									NEXT i
*								CASE W_FreqIndex="2"
*									FOR i=1 TO 3
*										IF (7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < (W_Debut-W_ClePlageHoraire[11,5]+1) THEN
*											IF MOD(W_Debut-W_ClePlageHoraire[11,5]+1,7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < 7 THEN
*												TestPlageHoraire="False"
*											END
*										END ELSE
*											TestPlageHoraire="False"
*										END
*									NEXT i
*								CASE W_FreqIndex="3"
*									IF (7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < (W_Debut-W_ClePlageHoraire[11,5]+1) THEN
*										IF MOD(W_Debut-W_ClePlageHoraire[11,5]+1,7+7*ENR_TPSDETAILINTERVVERIF<5,j>) < 7 THEN
*											TestPlageHoraire="False"
*										END
*									END ELSE
*										TestPlageHoraire="False"
*									END
*							END CASE
*					END CASE
*				END
*			END
          NEXT j
	REPEAT
    END
*PRINT "TestPlageHoraire :":TestPlageHoraire
*DEBUG
IF TestPlageHoraire="True" THEN
	ENR_TEMPO<6>="Cette plage horaire est dj renseigne."
END ELSE
	ENR_TEMPO<6>="0"
	*sub recherche position fichier
	GOSUB 70
END

RETURN


****************************************************************
*RECHERCHE POSITION FICHIER
****************************************************************

70
	W_CleInterv=W_CodeAidant:W_CodeAide:W_Debut:W_CodeActivite  

	READ ENR_TPSDETAILINTERV FROM F.TPSDETAILINTERV,W_CleInterv THEN
			
		W_CountInterv= DCOUNT(ENR_TPSDETAILINTERV<2>,CHAR(253))	

*PRINT "W_CleInterv :":W_CleInterv
*PRINT "W_CountInterv :":W_CountInterv
*DEBUG

	    IF W_CountInterv=0 THEN
		ENR_TEMPO<7>="1"
*PRINT "ENR_TEMPO<7> :":ENR_TEMPO<7>
*DEBUG
		RETURN
	    END

	    FOR i = 1 TO W_CountInterv
        
		        IF W_JourIndex > ENR_TPSDETAILINTERV<2, i> THEN
		            IF ENR_TPSDETAILINTERV<2,i + 1> = "" THEN
		                RecherchePositionFichier = i + 1
				EXIT
		            END
		        END ELSE
		            IF W_JourIndex < ENR_TPSDETAILINTERV<2, i> THEN
		                RecherchePositionFichier = i
				EXIT
		            END ELSE
		                IF INT(W_HreDe) < INT(ENR_TPSDETAILINTERV<3, i>) THEN
		                    RecherchePositionFichier = i
					EXIT
		                END ELSE
		                    IF ENR_TPSDETAILINTERV<3, i + 1> <> "" THEN
		                        IF INT(W_HreDe) < INT(ENR_TPSDETAILINTERV<3, i + 1>) THEN
		                            RecherchePositionFichier = i + 1
							EXIT
		                        END
		                    END ELSE
		                        RecherchePositionFichier = i + 1
					EXIT
		                    END
	               		 END
		            END
		        END
	        IF ENR_TPSDETAILINTERV<2, i + 1> <> "" THEN
	       	     IF W_JourIndex > ENR_TPSDETAILINTERV<2, i> AND W_JourIndex < ENR_TPSDETAILINTERV<2, i + 1> THEN
	               RecherchePositionFichier = i + 1
			EXIT
	            END ELSE
	                IF W_JourIndex = ENR_TPSDETAILINTERV<2, i> THEN
	                        IF INT(W_HreDe) > ENR_TPSDETAILINTERV<4, i> AND INT(W_HreA) < ENR_TPSDETAILINTERV<3, i + 1> THEN

	                            *ajouter en i+1
	                        END
	                *tester les heures
	                END
	            END
	        END ELSE
	            RecherchePositionFichier = i + 1
			EXIT
                END
	    NEXT i
	
		ENR_TEMPO<7>=RecherchePositionFichier
	END ELSE
		ENR_TEMPO<7>="1"
	END
RETURN
