* Permet de modifier l'etat d'un bulletin
* Pay, edit, calcul, saisi
* Modifi le 09/09/2010 MIKAEL ajout la notion de secteur  ne pas prendre en slection

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

OPEN "","AIDANTTTE" TO F.AIDANTTTE ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP

W_Code = ""
W_Periode = ""
W_TypeAct = ""
W_EtatDepart = ""
W_EtatFin = ""
W_Sur = ""
W_SecteurAidant = ""
W_SecteurAidantSupp=""

PRINT "                        Modification des bulletins"

LOOP WHILE LEN(W_Code) # 3 
	PRINT "Saisissez le code de l'entit juridique"
	INPUT W_Code
REPEAT

PRINT "Saisissez la priode sous la forme AAAAMM"
INPUT W_Periode

LOOP
WHILE  W_TypeAct # "P" AND W_TypeAct # "M" AND W_TypeAct # "I" AND W_TypeAct # "S"  
	PRINT "Saisissez le type d'activit (P, M, I ou S)"
	INPUT W_TypeAct
REPEAT

PRINT "Saisissez le secteur des aidants concerns (facultatif)"
INPUT W_SecteurAidant

IF W_SecteurAidant="" THEN
	PRINT "Saisissez le secteur des aidants concerns  ne pas prendre (facultatif)"
	INPUT W_SecteurAidantSupp
END


LOOP
   LOOP
   WHILE W_EtatDepart # "C" AND W_EtatDepart # "E" AND W_EtatDepart # "P" 
		PRINT "Quel tat voulez vous supprimer des bulletins : (C)alcul, (E)dit, (P)ay "
		INPUT W_EtatDepart
   REPEAT

   LOOP
   WHILE W_EtatFin # "S" AND W_EtatFin # "C" AND W_EtatFin # "E"
		PRINT "A quel tat voulez-vous passer ce(s) bulletin(s) (S)aisie, (C)alcul, (E)dit"
		INPUT W_EtatFin
   REPEAT

   W_Passe = "Vrai"
   IF W_EtatDepart = "C" THEN
		IF W_EtatFin # "S" THEN
			PRINT "Vous ne pouvez pas avancer l'etat des bulletins"
			W_Passe = "Faux"
			W_EtatDepart = ""
			W_EtatFin = ""
		END
   END ELSE
		IF W_EtatDepart = "E" THEN
			IF W_EtatFin # "S" AND W_EtatFin # "C" THEN
				W_Passe = "Faux"			
				PRINT "Vous ne pouvez pas avancer l'etat des bulletins"
				W_EtatDepart = ""
				W_EtatFin = ""
			END
		END
   END

WHILE W_Passe = "Faux"
REPEAT

IF W_EtatDepart = "C" THEN 
	W_EtatDepart = ""
END

IF W_EtatFin = "C" THEN 
	W_EtatFin = ""
END

W_ApureSuivi="N"
IF W_EtatFin="S" THEN
	PRINT "Apurer les suivis de contrat correspondant ?"
	INPUT W_ApureSuivi
	
	IF W_ApureSuivi="o" THEN W_ApureSuivi="O"
	IF W_ApureSuivi<>"O" THEN W_ApureSuivi="N"
END

LOOP
WHILE W_Sur # "O" AND W_Sur # "N"
	PRINT "Etes-vous sur de vouloir effectuer cette modification (O/N)"
	INPUT W_Sur
REPEAT

IF W_Sur = "N" THEN 
	STOP
END

W_Str = 'SELECT DETAILCALCUL AVEC 0 = "[':W_Periode:'" AND AVEC TypeActivite = "':W_TypeAct:'" AND AVEC CodAssoContratDetailCalcul = "':W_Code:'" AND AVEC 1 = "':W_EtatDepart:'"'

IF W_SecteurAidant # "" THEN
	W_Str = W_Str:' AND AVEC SecteurAidantDetailCalcul = "':W_SecteurAidant:'"'
END
* Modif Greg - 04/11/10 - Le teste se faisait sur la variable d'origine, pas sur la nouvelle..
* Du coup si on voulait exclure  ne fonctionnait pas.
IF W_SecteurAidantSupp # "" THEN
	*W_Str = W_Str:' AND AVEC SecteurAidantDetailCalcul # "':W_SecteurAidantSupp:'"'
W_Str = W_Str:' AND AVEC SecteurAidantDetailCalcul # "999" AND AVEC SecteurAidantDetailCalcul # "010"'
END

EXECUTE W_Str

W_FINI=0
W_Nbrmodif = 0
LOOP
	READNEXT CLE ELSE W_FINI=1
	W_Nbrmodif = W_Nbrmodif + 1

WHILE W_FINI=0 

    READ ENR_DETAILCALCUL FROM F.DETAILCALCUL, CLE ELSE ENR_DETAILCALCUL=""

	IF W_EtatFin # "S" THEN
		ENR_DETAILCALCUL<1>=W_EtatFin
		WRITE ENR_DETAILCALCUL ON F.DETAILCALCUL, CLE
	END ELSE
		DELETE F.DETAILCALCUL, CLE 
		
		IF W_ApureSuivi = "O" THEN
			* Modif Greg - 16/11/10 - Permet d'apurer le suivi de contrat.
			* modif vanessa 10/02/11 - modif pour supprimer suivi contrat de la priode et en TTE
			READ ENR_CONTRAT FROM F.CONTRAT, CLE[1,8] THEN
				i=1
				LOOP
				UNTIL W_Periode = ENR_CONTRAT<76,i> OR ENR_CONTRAT<76,i> = ""
					i=i+1
				REPEAT
				IF ENR_CONTRAT<76,i> # "" THEN
					ENR_CONTRAT=DELETE(ENR_CONTRAT,76,i)
					ENR_CONTRAT=DELETE(ENR_CONTRAT,77,i)
					ENR_CONTRAT=DELETE(ENR_CONTRAT,78,i)
					ENR_CONTRAT=DELETE(ENR_CONTRAT,79,i)
					ENR_CONTRAT=DELETE(ENR_CONTRAT,80,i)
					
					WRITE ENR_CONTRAT ON F.CONTRAT, CLE[1,8]
				END
			END
			
			READ ENR_AIDANTTTE FROM F.AIDANTTTE, CLE[1,8]:W_Periode[1,4] THEN
				i=1
				LOOP
				UNTIL W_Periode = ENR_AIDANTTTE<1,i> OR ENR_AIDANTTTE<1,i> = ""
					i=i+1
				REPEAT
				IF ENR_AIDANTTTE<1,i> # "" THEN
					FOR j = 1 TO 11
						ENR_AIDANTTTE=DELETE(ENR_AIDANTTTE,j,i)					
					NEXT j
					
					WRITE ENR_AIDANTTTE ON F.AIDANTTTE, CLE[1,8]:W_Periode[1,4]
				END
			END			
			
		END
	END
REPEAT

W_Nbrmodif = W_Nbrmodif - 1
PRINT W_Nbrmodif:" enregistrements modifis"

STOP