*PARAMETRES*
*Extraction des donnes de facturation CG36*
*Priode de facturation (ex : 201301)|6N|TXT|O*
*Code organisme APA semaine|3N|TXT|O*
*Code organisme APA dimanche|3N|TXT|O*
*FIN PARAMETRES*

SUBROUTINE FACTURECG36INFODB(RETURNVAL,PARAMETRES,W_Sortie)
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

*--Ce programme extrait les donnes des factures dans un fichier CSV

*******  ATTENTION !!!  ***********
* il faut que l'exe de winrar soit dans c:\INFOLOGIS

*** Ouverture des fichiers
OPEN "","ACCORD" TO F.ACCORD ELSE W_Sortie="Erreur ouverture ACCORD";RETURN
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE W_Sortie="Erreur ouverture CIVILAIDE";RETURN
OPEN "","COMPTEUR" TO F.COMPTEUR ELSE W_Sortie="Erreur ouverture COMPTEUR";RETURN
OPEN "","FACTURORG" TO F.FACTURORG ELSE W_Sortie="Erreur ouverture FACTURORG";RETURN
OPEN "","FACTURATION" TO F.FACTURATION ELSE W_Sortie="Erreur ouverture FACTURATION";RETURN
OPEN "","ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE W_Sortie="Erreur ouverture ORGPRISECHARGE";RETURN

*** Rcupration des paramtres
W_Periode = PARAMETRES<1>
W_CodeOrgSem = PARAMETRES<2>
W_CodeOrgDim = PARAMETRES<3>

*** Dclaration des variables
W_CSV = ""
W_Req = ""

	W_Requete = 'SELECT FACTURORG AVEC OrgaFacturOrg = "':W_CodeOrgSem:'" OR = "':W_CodeOrgDim:'" AND AVEC 10= "':W_Periode:'"'
	
	EXECUTE W_Requete
	EXECUTE 'SAUVE-LISTE W_Req'
	EXECUTE 'LISTE W_Req' RETURNING MSGCODE
	
	IF MSGCODE<1> # "209" THEN
		SELECT F.FACTURORG TO W_Req
		
		W_Fin = "F"
		LOOP
			READNEXT W_Cle FROM W_Req ELSE W_Fin = "O"
		WHILE W_Fin = "F"
			READ ENR_FACTURORG FROM F.FACTURORG, W_Cle THEN
			
				W_CodeOrg=W_Cle[1,3]
				W_PeriodeCleOrg=W_Cle[13,6]
				READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE,W_CodeOrg ELSE ENR_ORGPRISECHARGE=""
				
				W_CodeAccord=W_Cle[5,8]
				READ ENR_ACCORD FROM F.ACCORD,W_CodeAccord ELSE ENR_ACCORD=""	
				
				W_Identification=ENR_ORGPRISECHARGE<42>
				W_PosTiret=INDEX(W_Identification,"-",1)
				W_CodeTiers=W_Identification[1,W_PosTiret-1]
				W_CodeFinanceur=W_Identification[W_PosTiret+1,LEN(W_Identification)]
				
				W_NumDossier=ENR_ACCORD<2>
				W_PosTiret=INDEX(W_NumDossier,"-",1)
				W_IdClient=W_NumDossier[1,W_PosTiret-1]
				W_RefFinanceur=W_NumDossier[W_PosTiret+1,LEN(W_NumDossier)]

				W_DebutPrestation="01/":W_PeriodeCleOrg[5,2]:"/":W_PeriodeCleOrg[1,4]
				W_DebutPrestationTemp=ICONV("01/":W_PeriodeCleOrg[5,2]:"/":W_PeriodeCleOrg[1,4],"D4/")
				IF ENR_ACCORD<5> > W_DebutPrestationTemp THEN
					W_DebutPrestation=OCONV(ENR_ACCORD<5>,"D4/")
				END
				W_FinPrestation=W_DebutPrestationTemp+32
				W_FinPrestation=OCONV(W_FinPrestation,"D4/")
				W_FinPrestation="01":W_FinPrestation[3,8]
				W_FinPrestation=ICONV(W_FinPrestation,"D4/")-1
				IF ENR_ACCORD<6> < W_FinPrestation THEN
					W_FinPrestation=OCONV(ENR_ACCORD<6>,"D4/")
				END ELSE
					W_FinPrestation=OCONV(W_FinPrestation,"D4/")
				END
				
				W_CodeAide = W_Cle[5,5]
				W_NomAide=""
				W_PrenomAide=""
				W_DateNaisAide=""									
				READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_CodeAide THEN
					W_NomAide = ENR_CIVILAIDE<2>
					W_PrenomAide = ENR_CIVILAIDE<3>
					IF ENR_CIVILAIDE<20> # "" THEN
						W_DateNaisAide = OCONV(ENR_CIVILAIDE<20>,"D4/")
					END
					
				END
				
				* on additionne les heures semaines & dimanches comme a on peut jouer sur les accords si mme taux semaine & dim (cas   CAEN)
				IF ENR_FACTURORG<1>="" THEN ENR_FACTURORG<1>=0
				IF ENR_FACTURORG<5>="" THEN ENR_FACTURORG<5>=0
				W_Quantite=ENR_FACTURORG<1> + ENR_FACTURORG<5>
				W_Quantite=W_Quantite/100

				IF ENR_FACTURORG<4>="" THEN ENR_FACTURORG<4>=0
				IF ENR_FACTURORG<8>="" THEN ENR_FACTURORG<8>=0
				W_MontantFinanceur=ENR_FACTURORG<4> + ENR_FACTURORG<8>
				W_MontantFinanceur=W_MontantFinanceur/100
				
				IF W_CodeOrg = W_CodeOrgSem THEN
					W_Service="prestataire sem"
				END ELSE
					W_Service="prestataire dim"					
				END
				
				IF ENR_FACTURORG<3>="" THEN
					W_MontantUnitaire=ENR_FACTURORG<7>
				END ELSE
					W_MontantUnitaire=ENR_FACTURORG<3>
				END
				W_MontantUnitaire=W_MontantUnitaire/100
				
				W_RefFacture = ENR_FACTURORG<9>
				
				W_CSV<-1> = W_CodeTiers:";":W_CodeFinanceur:";":W_IdClient:";":W_RefFinanceur:";":W_DebutPrestation:";":W_FinPrestation:";":W_Quantite:";":W_MontantFinanceur:";;":W_Service:";":W_MontantUnitaire:";":W_NomAide:";":W_PrenomAide:";":W_DateNaisAide:";":W_RefFacture

			END
		REPEAT
		
		W_Date=OCONV(DATE(),"D4/")
		W_Date=W_Date[1,2]:W_Date[4,2]:W_Date[7,4]
		W_NomFichier = W_CodeTiers:"-":W_CodeFinanceur:"-":W_Date:".fact"
		
		WRITE W_CSV ON F.FACTURATION,W_NomFichier
		W_CSV = ""
		
		W_Infos = "Le fichier ":W_NomFichier:" a t gnr dans le dossier FACTURATION."
		
	END ELSE
		W_Infos = "Pas de facture organisme sur cette priode."
	END	
	
	EXECUTE 'EFFACER-LISTE W_Req'

	W_Sortie=W_Infos
	
	READ ENR_COMPTEUR FROM F.COMPTEUR,"999" THEN
		W_MDP=ENR_COMPTEUR<36>
		
		EXECUTE 'QUI' CAPTURING CHEMIN
		W_Chemin=CHEMIN<1>		
		
		EXECUTE '!c:\infologis\winrar.exe a -afzip -hp':W_MDP:' -ep "':W_Chemin:'\FACTURATION\':W_NomFichier:'.zip" "':W_Chemin:'\FACTURATION\':W_NomFichier:'"'
	END
	
RETURN