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

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
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_CANCEL = "O"
ENR_FUSION = ""

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

W_REQ = 'SELECT CONTRAT AVEC 65 # "O" AND AVEC 4 = "I" '

IF W_REP = "ADM" THEN
	W_REQ = W_REQ:'AND AVEC 6 = "A" AND AVEC 1 = "01" '
	W_DET = 'AND AVEC TypePersonnel = "A"'
	W_TRI = 'PAR NomPrenomAidantContrat PAR CodeAidant'
	W_CLEFUSION = "ADM"
END ELSE
	IF W_REP = "AAD" THEN
		W_REQ = W_REQ:'AND AVEC 6 = "P" AND AVEC 1 = "01" '
		W_DET = 'AND AVEC ConvColContratDetailCalcul = "01" AND AVEC TypePersonnel = "P"'
		W_TRI = 'PAR SecteurContrat PAR NomPrenomAidantContrat PAR CodeAidant'
		W_CLEFUSION = "AAD"
	END ELSE
		W_REQ = W_REQ:'AND AVEC 1 = "05" '
		W_DET = 'AND AVEC ConvColContratDetailCalcul = "06" AND AVEC TypePersonnel = "P"'
		W_TRI = 'PAR NomPrenomAidantContrat PAR CodeAidant'
		W_CLEFUSION = "SIAD"
	END
END
	
W_REQ = W_REQ:'AND AVEC 7 <= "13028" AND AVEC 8 => "13028" OR = "" ':W_TRI

EXECUTE W_REQ
EXECUTE 'SAUVE-LISTE W_RESULTAT' 
EXECUTE "LISTE W_RESULTAT" RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN

	W_FINI = "FAUX"
	W_AIDANT=""
	W_ANCAIDANT = ""
	W_SECT = ""
	W_SECTANC = ""
	CLE.CONTRAT=""
	ENR_FUSION = ""
	I = 1
	GOSUB 10

	SELECT F.CONTRAT TO W_RESULTAT

    	LOOP
		READNEXT CLE.CONTRAT FROM W_RESULTAT ELSE W_FINI="VRAI"
	WHILE W_FINI = "FAUX" DO
		I = I + 1
		W_AIDANT = CLE.CONTRAT[1,5]
		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_AIDANT ELSE ENR_CIVILAIDANT = ""
		READ ENR_CONTRAT FROM F.CONTRAT,CLE.CONTRAT ELSE ENR_CONTRAT = ""
		W_RESULTATDET = ""
		IF W_REP = "AAD" THEN
			W_SECT = ENR_CIVILAIDANT<31>
			IF W_SECTANC # W_SECT THEN
				IF W_SECTANC # "" THEN
					W_CLEFUSION = W_CLEFUSION:W_SECTANC:'.CSV'
					CONVERT CHAR(253) TO ';' IN ENR_FUSION
					WRITE ENR_FUSION TO F.FUSION,W_CLEFUSION
					ENR_FUSION = ""
					W_CLEFUSION = "AAD"
					I = 1
					GOSUB 10
					I = 2
				END
				W_SECTANC = W_SECT
			END
		END
		
		*Donnes aidant 
		GOSUB 100
		ENR_FUSION<I,1> = W_AIDANT
		ENR_FUSION<I,2> = W_Nom
		ENR_FUSION<I,3> = W_Prenom
		ENR_FUSION<I,4> = W_Adr1
		ENR_FUSION<I,5> = W_Adr2
		ENR_FUSION<I,6> = W_CP
		ENR_FUSION<I,7> = W_Ville
		ENR_FUSION<I,8> = W_LibSecteur
		ENR_FUSION<I,9> = OCONV(ENR_CONTRAT<7>,"D4/")
		W_NUMAVENANT = DCOUNT(ENR_CONTRAT<14>,CHAR(253))
		ENR_FUSION<I,10> = ENR_CONTRAT<16,W_NUMAVENANT>
		* Donns Categorie
		GOSUB 200
		ENR_FUSION<I,11> = W_CAT
		W_COEFF = ENR_CONTRAT<22,W_NUMAVENANT>/1000
		ENR_FUSION<I,12> = W_COEFF
		TXHOR = INT((((W_COEFF*5)/151.67)*1000)+(1/2))
		TXHOR = TXHOR / 1000
		TXHOR = TXHOR "R3"
		ENR_FUSION<I,13> = TXHOR
		ENR_FUSION<I,14> = '0.00'
		ENR_FUSION<I,15> = '0.00'
		ENR_FUSION<I,16> = '0.00'
		ENR_FUSION<I,17> = '0.00'
		ENR_FUSION<I,18> = '0.00'
		ENR_FUSION<I,19> = '0.00'
		ENR_FUSION<I,20> = '0.00'

	REPEAT

	IF W_REP = "AAD" THEN
		W_CLEFUSION = W_CLEFUSION:W_SECT:'.CSV'
	END ELSE
		W_CLEFUSION = W_CLEFUSION:'.CSV'
	END

	CONVERT CHAR(253) TO ';' IN ENR_FUSION

	WRITE ENR_FUSION TO F.FUSION,W_CLEFUSION

END ELSE

	PRINT 'AUCUNE DONNES DISPONIBLE POUR CE TYPE DE PERSONNEL'

END

STOP

10
******************************
* GENRATION LIGNE DE LIBELLE *
******************************

ENR_FUSION<I,1> = 'Matricule de l aidant'
ENR_FUSION<I,2> = 'Nom'
ENR_FUSION<I,3> = 'Prnom'
ENR_FUSION<I,4> = 'Ligne adresse 1'
ENR_FUSION<I,5> = 'Ligne adresse 2'
ENR_FUSION<I,6> = 'Code postal'
ENR_FUSION<I,7> = 'Ville'
ENR_FUSION<I,8> = 'Libell secteur'
ENR_FUSION<I,9> = 'Date d entre'
ENR_FUSION<I,10> = 'Qualification professionnelle'
ENR_FUSION<I,11> = 'Catgorie'
ENR_FUSION<I,12> = 'Coefficient'
ENR_FUSION<I,13> = 'Nouveau taux horaire au 01/10/2003'
ENR_FUSION<I,14> = 'Nombre d heures actuel'
ENR_FUSION<I,15> = 'Heures RTT'
ENR_FUSION<I,16> = 'Nombre d heures hebdomadaire et MOI'
ENR_FUSION<I,17> = 'Temps de travail effectif annuel'
ENR_FUSION<I,18> = 'Dure mensuelle de travail'
ENR_FUSION<I,19> = 'Rmunration annuelle brute'
ENR_FUSION<I,20> = 'Rmunration mensuelle brute'

RETURN
100
*************************************************
* 		Donnes aidant			      *
*************************************************
W_Nom = ""
W_Prenom = ""
W_Adr1 = ""
W_Adr2 = ""
W_CP = ""
W_Ville = ""
W_LibSecteur = ""

W_Nom = ENR_CIVILAIDANT<2>
W_Prenom = ENR_CIVILAIDANT<3>
W_Adr1 = TRIM(ENR_CIVILAIDANT<5>:" ":ENR_CIVILAIDANT<6>:" ":ENR_CIVILAIDANT<7>:" ":ENR_CIVILAIDANT<8>)
W_Adr2 = TRIM(ENR_CIVILAIDANT<9>)
IF W_Adr1 = "" THEN
	W_Adr1 = W_Adr2
	W_Adr2 = ""
END
CONVERT ";" TO ' ' IN W_Adr1
CONVERT ";" TO ' ' IN W_Adr2

W_CP = ENR_CIVILAIDANT<10>
W_Ville = ENR_CIVILAIDANT<11>

READ ENR_SECTEUR FROM F.SECTEUR, ENR_CIVILAIDANT<31> ELSE ENR_SECTEUR = ""
W_LibSecteur = ENR_SECTEUR<1>

RETURN

200
*********************************
* DETERMINATION DE LA CATEGORIE *
*********************************
W_CAT = ""

BEGIN CASE
   CASE ENR_CONTRAT<20,W_NUMAVENANT>[5,1] = "0"
	W_CAT = "A"
   CASE ENR_CONTRAT<20,W_NUMAVENANT>[5,1] = "1"
	W_CAT = "B"
   CASE ENR_CONTRAT<20,W_NUMAVENANT>[5,1] = "2"
	W_CAT = "C"
   CASE ENR_CONTRAT<20,W_NUMAVENANT>[5,1] = "3"
	W_CAT = "D"
   CASE ENR_CONTRAT<20,W_NUMAVENANT>[5,1] = "4"
	W_CAT = "E"
   CASE ENR_CONTRAT<20,W_NUMAVENANT>[5,1] = "5"
	W_CAT = "F"
   CASE ENR_CONTRAT<20,W_NUMAVENANT>[5,1] = "6"
	W_CAT = "G"
   CASE ENR_CONTRAT<20,W_NUMAVENANT>[5,1] = "7"
	W_CAT = "H"
   CASE ENR_CONTRAT<20,W_NUMAVENANT>[5,1] = "8"
	W_CAT = "I"
END CASE

RETURN
