********************************************************************
* cumuls des bruts et des charges patronnale par semestre sur 2003 *
* spcifique toulouse DA131-01                                     *
* ALAIN 15/10/2003                                                 *
********************************************************************

EXECUTE "SET-THOUS ."
EXECUTE "DATE.FORMAT"
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "","FUSION" TO F.FUSION ELSE STOP
OPEN "","SECTEUR" TO F.SECTEUR ELSE STOP

W_RESULTAT = ""
W_REP = ""
W_FICHIER = ""
W_CANCEL = "O"
ENR_FUSION = "VIDE"
W_TROUV = "FAUX"

EXECUTE 'SET-DEC ,'

LOOP
WHILE W_CANCEL = "O" AND W_TROUV = "FAUX" DO

	PRINT 'SAISSISEZ LE NOM DU FICHIER A INTEGRER : '
	INPUT W_REP
	W_REP = ICONV(W_REP,"MCU")	
	
	READ ENR_FUSION FROM F.FUSION,W_REP ELSE ENR_FUSION = "VIDE"

	IF ENR_FUSION = "VIDE" THEN
		PRINT 'VOUS N AVEZ PAS SAISI UN NOM DE FICHIER CORRECT, VOULEZ-VOUS CONTINUER ? (O/N)'
		INPUT W_CANCEL
		W_TROUV = "FAUX"
		W_CANCEL = ICONV(W_CANCEL,"MCU")
	END ELSE
		W_TROUV = "VRAI"
		W_FICHIER = W_REP
	END

REPEAT

IF W_CANCEL = "N" THEN
	STOP
END

LOOP
WHILE W_REP # "AAD" AND W_REP # "SIAD" AND W_REP # "ADM" AND W_CANCEL # "N" DO

	PRINT 'SAISSISEZ LE TYPE DE PERSONNEL A TRAITER (ADMINISTRATIF = ADM, SOIGNANT = SIAD ET AIDE A DOMICILE = AAD) : '
	INPUT W_REP
	W_REP = ICONV(W_REP,"MCU")	

	IF W_REP # "AAD" AND W_REP # "SIAD" AND W_REP # "ADM" THEN
		PRINT 'VOUS N AVEZ PAS SAISSI UN TYPE DE PERSONNEL CORRECT, VOULEZ-VOUS CONTINUER ? (O/N)'
		INPUT W_CANCEL
		W_CANCEL = ICONV(W_CANCEL,"MCU")
	END

REPEAT

IF W_CANCEL = "N" THEN
	STOP
END

IF ENR_FUSION # "" THEN

	CONVERT ';' TO CHAR(253) IN ENR_FUSION
	W_AIDANT=""
	W_CLECONT=""
	ENR_ERREUR = ""
	ENR_INTEGRE = ""
	I = 1
	IERR = 1
	IINTEGRE = 1
EXECUTE 'COMO ON VERIFRECUP35ASMAD':W_FICHIER
	
    	LOOP
		I = I + 1
	WHILE ENR_FUSION<I> # "" DO
		W_AIDANT = ENR_FUSION<I,1> "R(%5)"
		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_AIDANT ELSE ENR_CIVILAIDANT = ""
		W_NOM = ENR_CIVILAIDANT<2>:' ':ENR_CIVILAIDANT<3>
		W_NOM = W_NOM:SPACE(51-LEN(W_NOM))

		W_REQ = 'SELECT CONTRAT AVEC 0 = "':W_AIDANT:']" AND AVEC 65 # "O" AND AVEC 4 = "I" '

		IF W_REP = "ADM" THEN
			W_REQ = W_REQ:'AND AVEC 6 = "A" AND AVEC 1 = "01" '
		END ELSE
			IF W_REP = "AAD" THEN
				W_REQ = W_REQ:'AND AVEC 6 = "P" AND AVEC 1 = "01" '
			END ELSE
				W_REQ = W_REQ:'AND AVEC 1 = "05" '
			END
		END
	
		W_REQ = W_REQ:'AND AVEC 7 <= "13058" AND AVEC 8 => "13058" OR = "" '

		EXECUTE W_REQ
		EXECUTE 'SAUVE-LISTE W_RESULTAT' 
		EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE
		
		IF MSGCODE<1> # 209 THEN
			
			W_ERREUR = "FAUX"
			SELECT F.CONTRAT TO W_RESULTAT

			READNEXT W_CLECONT FROM W_RESULTAT ELSE W_CLECONT = ""
		
			READ ENR_CONTRAT FROM F.CONTRAT,W_CLECONT ELSE ENR_CONTRAT = ""

			W_AVENANT = DCOUNT(EXTRACT(ENR_CONTRAT,14),CHAR(253))
			W_NOAVENANT = ENR_CONTRAT<14,W_AVENANT>
			W_AVENANT = W_AVENANT + 1
			W_NOAVENANT = W_NOAVENANT + 1
			W_NOAVENANT = W_NOAVENANT "R(%2)"
               
			ENR_CONTRAT<14,W_AVENANT> = W_NOAVENANT                         
			ENR_CONTRAT<15,W_AVENANT> = "13058"
			ENR_CONTRAT<16,W_AVENANT> = ENR_CONTRAT<16,(W_AVENANT-1)>
			ENR_CONTRAT<17,W_AVENANT> = ENR_CONTRAT<17,(W_AVENANT-1)>
			ENR_CONTRAT<18,W_AVENANT> = ENR_CONTRAT<18,(W_AVENANT-1)>
			ENR_CONTRAT<19,W_AVENANT> = ENR_CONTRAT<19,(W_AVENANT-1)>
			ENR_CONTRAT<20,W_AVENANT> = ENR_CONTRAT<20,(W_AVENANT-1)>
			ENR_CONTRAT<21,W_AVENANT> = ENR_CONTRAT<21,(W_AVENANT-1)>
			ENR_CONTRAT<22,W_AVENANT> = ENR_CONTRAT<22,(W_AVENANT-1)>
			ENR_CONTRAT<25,W_AVENANT> = "3"

			IF TRIM(ENR_FUSION<I,13>) # "" AND TRIM(ENR_FUSION<I,13>) > 0 THEN
				ENR_CONTRAT<23,W_AVENANT> = (ENR_FUSION<I,13>*1000)
			END ELSE
				ENR_CONTRAT<23,W_AVENANT> = ""
				W_ERREUR = "VRAI"
			END

			IF TRIM(ENR_FUSION<I,18>) # "" AND TRIM(ENR_FUSION<I,18>) > 0 THEN
				ENR_CONTRAT<24,W_AVENANT> = (ENR_FUSION<I,18>*100)
			END ELSE
				ENR_CONTRAT<24,W_AVENANT> = ""
				W_ERREUR = "VRAI"
			END

			IF W_REP = "AAD" THEN
				ENR_CONTRAT<68,W_AVENANT> = "1"
				ENR_CONTRAT<69,W_AVENANT> = "L"
				ENR_CONTRAT<5> = "M"
				ENR_CONTRAT<26> = "009"
				ENR_CONTRAT<64> = ""
				ENR_CONTRAT<76> = ""
				ENR_CONTRAT<77> = ""
				ENR_CONTRAT<78> = ""
				ENR_CONTRAT<79> = ""
				ENR_CONTRAT<80> = ""
			END

			IF W_ERREUR = "VRAI" THEN
				IF ENR_CONTRAT<23,W_AVENANT> = "" THEN
					ENR_ERREUR<IERR> = 'Le salarie ':W_NOM:' (':W_AIDANT:') n a pas de nouveau taux horaire au 01/10/2003'
					IERR = IERR + 1
				END ELSE
					ENR_ERREUR<IERR> = 'Le salarie ':W_NOM:' (':W_AIDANT:') n a pas de duree mensuelle'
					IERR = IERR + 1
				END
			END ELSE
				ENR_INTEGRE<IINTEGRE> = W_AIDANT:' ':W_NOM:' pour une duree mensuelle de ':ENR_FUSION<I,18>
				IINTEGRE = IINTEGRE + 1
				WRITE ENR_CONTRAT TO F.CONTRAT,W_CLECONT
			END


		END ELSE
			ENR_ERREUR<IERR> = 'Le salarie ':W_NOM:' (':W_AIDANT:') n a pas de contrat valide au 01/10/2003'
			IERR = IERR + 1
		END

	REPEAT

	PRINTER ON 
	IF ENR_INTEGRE<1> # "" THEN
		PRINT 'Les salaries suivant ont ete integres :'
		PRINT ''
		I = 1
		LOOP
		WHILE ENR_INTEGRE<I> # "" DO
			PRINT ENR_INTEGRE<I>
			I = I + 1
		REPEAT
	END ELSE
		PRINT 'AUCUN SALARIE N A PUT ETRE INTEGRE'
	END

	IF ENR_ERREUR<1> # "" THEN
		PAGE
		PRINT 'Les salaries suivant n ont pas put etre integres :'
		PRINT ''
		I = 1
		LOOP
		WHILE ENR_ERREUR<I> # "" DO
			PRINT ENR_ERREUR<I>
			I = I + 1
		REPEAT
	END
	PRINTER OFF

	IF ENR_INTEGRE<1> # "" THEN
		PRINT 'Les salaries suivant ont ete integres :'
		PRINT ''
		I = 1
		LOOP
		WHILE ENR_INTEGRE<I> # "" DO
			PRINT ENR_INTEGRE<I>
			I = I + 1
		REPEAT
	END ELSE
		PRINT 'AUCUN SALARIE N A PUT ETRE INTEGRE'
	END

	IF ENR_ERREUR<1> # "" THEN
		PAGE
		PRINT 'Les salaries suivant n ont pas put etre integres :'
		PRINT ''
		I = 1
		LOOP
		WHILE ENR_ERREUR<I> # "" DO
			PRINT ENR_ERREUR<I>
			I = I + 1
		REPEAT
	END

EXECUTE 'COMO OFF'

END ELSE

	PRINT 'AUCUNE DONNES DISPONIBLE POUR CE TYPE DE PERSONNEL'

END

STOP
