*****************************
*Exportation des produits CEGID*
*Entit juridique |3N|TXT|N*
*Code du journal |3N|TXT|N*
*Priode (AAAAMM)|6N|TXT|N*
*Nom du fichier gnr |30X|TXT|N*
*Date d'chance (JJMMAAAA Optionelle) |8X|TXT|N*
*****************************

*******************************************************
*                  PR D'EXPORTATION                  *
*                     Mars 2013                       *
*                      Alexandre                      *
*                  SPECIF ASMADCHTX					  *
* Sur demande de l'ASMAD, il ne reste que les critures dans ce fichier*
*******************************************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"

***************************************************************************
***						Ouverture des fichiers							***
***************************************************************************
OPEN "","CIVILAIDE" TO F.CIVILAIDE ELSE W_Sortie="ERREUR OUVERTURE CIVILAIDE"
OPEN "","ELTSFACTAIDE" TO F.ELTSFACTAIDE ELSE W_Sortie="ERREUR OUVERTURE ELTSFACTAIDE"
OPEN "","BROUILLARDDETAIL" TO F.BROUILLARDDETAIL ELSE W_Sortie="ERREUR OUVERTURE BROUILLARDDETAIL"
OPEN "","BROUILLARDTETE" TO F.BROUILLARDTETE ELSE W_Sortie="ERREUR OUVERTURE BROUILLARDTETE"
OPEN "","LIENCOMPTA" TO F.LIENCOMPTA ELSE W_Sortie="ERREUR OUVERTURE LIENCOMPTA"
OPEN "","FACTURAIDE" TO F.FACTURAIDE ELSE W_Sortie="ERREUR OUVERTURE FACTURAIDE"

***************************************************************************
***						Rcupration des arguments						***
***************************************************************************
PROCREAD ARGUMENTS ELSE PRINT "PROCREAD"

W_EntiteJur = FIELD(ARGUMENTS," ",2) 
W_TypeAct = FIELD(ARGUMENTS," ", 3)
W_CodeJourn = FIELD(ARGUMENTS," ",4)
W_Periode = FIELD(ARGUMENTS," ",5) 
W_NomFicGen = FIELD(ARGUMENTS," ",6) 
W_DateEcheance = FIELD(ARGUMENTS," ",7)

***************************************************************************
***						Initialisation des variables					***
***************************************************************************
W_Date=""
W_DateReq=""
W_Requete=""
W_Temp=""
W_Cle=""
W_Ligne=""
W_CleBrouiDetail=""
ENR_ELTSFACTAIDE=""
ENR_BROUILLARDDETAIL=""
ENR_BROUILLARDTETE=""
W_TabDonnees=""
W_TabDebug=""
***************************************************************************
***						    Dbut du traitement 						***
***************************************************************************
***************************************************************************
***						 Traitement des brouillards						***
***************************************************************************
W_Temp='SELECT BROUILLARDTETE  AVEC 0 ="':W_EntiteJur:W_CodeJourn:']"'

EXECUTE W_Temp
EXECUTE 'SAUVE-LISTE W_Requete'
EXECUTE "LISTE W_Requete" RETURNING MSGCODE

W_TabDonnees<1>="!"
IF MSGCODE<1> # 209 THEN
	SELECT F.BROUILLARDTETE TO W_Requete
	W_Fini="FAUX"
	LOOP
		READNEXT W_Cle FROM W_Requete ELSE W_Fini="VRAI"
	WHILE W_Fini="FAUX" DO
		READ ENR_BROUILLARDTETE FROM F.BROUILLARDTETE,W_Cle THEN	
		W_TraitementAide="FAUX"
			FOR i = 1 TO ENR_BROUILLARDTETE<1>
				W_CompteGeneral=""
				W_NatureLigne=""
				W_AuxiSect=""
				W_RefMvtInt=""
				W_CodModPaie=""
				W_DateEcheanMvt=""
				W_SensMvt=""
				W_Montant=""
				W_NumPiece=""
				W_DateSyst=""
				W_MontPremQuant=""
				W_CleFacturaide=""
				W_NumFacture="" ;* Pour la lecture de FACTURAIDE
				W_LibMvt=""
				
				W_NumLigne=i "R%5"
				W_CleBrouiDetail=W_Cle:W_NumLigne
				READ ENR_BROUILLARDDETAIL FROM F.BROUILLARDDETAIL,W_CleBrouiDetail THEN
					**********************************************
					***			Ligne ecriture principal       ***
					**********************************************
					IF ENR_BROUILLARDDETAIL<3> <> "" OR ENR_BROUILLARDDETAIL<7> <> "" OR  W_TypeAct <> "M" OR W_TraitementAide <> "FAUX" THEN
						IF ENR_BROUILLARDDETAIL<3> <> "" OR ENR_BROUILLARDDETAIL<7> = "" OR W_TypeAct <> "M" OR W_TraitementAide <> "VRAI" OR ENR_BROUILLARDDETAIL<4>[4,3]<>"413" THEN							
							W_DateOperation = OCONV(ENR_BROUILLARDDETAIL<2>,"D4/")
							W_DateOperation = W_DateOperation[1,2]:W_DateOperation[4,2]:W_DateOperation[7,4]
							IF ENR_BROUILLARDDETAIL<3>="A" THEN
								W_CompteGeneral="411110000":SPACE(8)
								W_NatureLigne="X"
								W_AuxiSect=ENR_BROUILLARDDETAIL<4> "L#17"
								W_TraitementAide="VRAI"
							END
							
							IF ENR_BROUILLARDDETAIL<3> = "" AND ENR_BROUILLARDDETAIL<4>[4,2]="41" AND W_TypeAct="P" THEN 
								W_CompteGeneral= "411211000":SPACE(8)
								W_NatureLigne="X"
								W_AuxiSect=ENR_BROUILLARDDETAIL<4>[4,LEN(ENR_BROUILLARDDETAIL<4>)-3] "L#17"
							END
								
							IF ENR_BROUILLARDDETAIL<3>="" AND (ENR_BROUILLARDDETAIL<4>[4,1]="7" OR ENR_BROUILLARDDETAIL<4>[4,1]="6") THEN
								W_CompteGeneral=ENR_BROUILLARDDETAIL<4>[4,LEN(ENR_BROUILLARDDETAIL<4>)-3] 
								IF LEN(W_CompteGeneral)>9 THEN
									W_CompteGeneral = W_CompteGeneral[1,9]
								END
								W_CompteGeneral = W_CompteGeneral "L#17"
								W_NatureLigne="H"
								W_AuxiSect=ENR_BROUILLARDDETAIL<11> "L#17"
							END
							
							IF W_CompteGeneral="" THEN
								W_CompteGeneral=ENR_BROUILLARDDETAIL<4>[4,LEN(ENR_BROUILLARDDETAIL<4>)-3] 
								IF LEN(W_CompteGeneral)>9 THEN
									W_CompteGeneral = W_CompteGeneral[1,9]
								END
								W_CompteGeneral = W_CompteGeneral"L#17"
								W_NatureLigne=" "
								W_AuxiSect=SPACE(17)
							END
							
							W_RefMvtInt=ENR_BROUILLARDDETAIL<6>
							IF W_RefMvtInt <> "" THEN
								W_RefMvtInt = W_RefMvtInt *1 ;*Pour enlever les 0 non significatifs
							END
							
							W_RefMvtInt = W_RefMvtInt "L#35"
							
							
							IF ENR_BROUILLARDDETAIL<3> ="A" THEN
								READ ENR_ELTSFACTAIDE FROM F.ELTSFACTAIDE,ENR_BROUILLARDDETAIL<4> THEN
									IF ENR_ELTSFACTAIDE<18> # "" AND ENR_ELTSFACTAIDE<25> = "" THEN
										W_CodModPaie="PRE"
										
			
										*****GESTION DE LA DATE D'ECHANCE EN AIDE
										W_NumFacture=ENR_BROUILLARDDETAIL<6> "R%10"
										W_CleFacturaide=ENR_BROUILLARDDETAIL<4>:W_EntiteJur:W_TypeAct:W_Periode:W_NumFacture:"1"
										
										READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_CleFacturaide THEN
											W_DateEcheanMvt=ENR_FACTURAIDE<12>
											IF W_DateEcheanMvt = "" THEN
												W_DateEcheanMvt = W_DateEcheance
												IF W_DateEcheanceMvt = "" THEN
													W_DateEcheanMvt=SPACE(8)
												END
											END ELSE
												W_DateEcheanMvt=OCONV(W_DateEcheanMvt,"D4/")
												W_DateEcheanMvt=W_DateEcheanMvt[1,2]:W_DateEcheanMvt[4,2]:W_DateEcheanMvt[7,4]
											END
											
										END ELSE
											W_CleFacturaide=ENR_BROUILLARDDETAIL<4>:W_EntiteJur:W_TypeAct:W_Periode:W_NumFacture:"0"
											READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_CleFacturaide THEN
												W_DateEcheanMvt=ENR_FACTURAIDE<12>
												IF W_DateEcheanMvt = "" THEN
													W_DateEcheanMvt = W_DateEcheance
													IF W_DateEcheanceMvt = "" THEN
														W_DateEcheanMvt=SPACE(8)
													END
												END ELSE
													W_DateEcheanMvt=OCONV(W_DateEcheanMvt,"D4/")
													W_DateEcheanMvt=W_DateEcheanMvt[1,2]:W_DateEcheanMvt[4,2]:W_DateEcheanMvt[7,4]
												END
											END ELSE
												W_DateEcheanceMvt=SPACE(8)
											END
										END
									END ELSE
										W_CodModPaie="CHQ"
										W_DateEcheanMvt=W_DateEcheance "L#8"
									END 
								END ELSE
									W_CodModPaie="CHQ"
									W_DateEcheanMvt=W_DateEcheance "L#8"
								END 
							END ELSE
								W_CodModPaie=SPACE(3)
								IF ENR_BROUILLARDDETAIL<4>[4,1] = "4" THEN
									W_DateEcheanMvt=W_DateEcheance "L#8"
								END ELSE
									W_DateEcheanMvt=SPACE(8)
								END
							END
							
							IF ENR_BROUILLARDDETAIL<7>="" THEN
								W_SensMvt="C"
								W_Montant=ENR_BROUILLARDDETAIL<8>
							END ELSE
								W_SensMvt="D"
								W_Montant=ENR_BROUILLARDDETAIL<7>
							END
							IF W_Montant = 0 OR W_Montant = "" THEN
								W_Montant = 0 
							END
							IF W_Montant => 100 THEN
								W_Montant=W_Montant[1,LEN(W_Montant)-2]:".":W_Montant[LEN(W_Montant)-1,2]
							END ELSE
								IF W_Montant < 100 AND W_Montant >= 10 THEN
									W_Montant = "0.":W_Montant
								END ELSE
									IF W_Montant < 10 THEN
										W_Montant = "0.0":W_Montant
									END
								END
							END
							W_Montant=W_Montant "R#20"
							
							W_NumPiece=SPACE(8)
							W_CodeJourn=W_CodeJourn "R%3"
							W_LibMvt=ENR_BROUILLARDDETAIL<5> "L#35"
							
							*Ecriture de la ligne
							W_Ligne = W_CodeJourn:W_DateOperation:"FC":W_CompteGeneral:W_NatureLigne:W_AuxiSect:W_RefMvtInt:W_LibMvt:W_CodModPaie
							W_Ligne = W_Ligne:W_DateEcheanMvt:W_SensMvt:W_Montant:"N":W_NumPiece:"EUR":SPACE(10):"E--":SPACE(43):"A1":SPACE(2)
							
							**********************************************
							***		Ligne ecriture Complementaire #1   ***
							**********************************************
							W_DateSyst = OCONV(ENR_BROUILLARDDETAIL<2>, "D4/")
							W_DateSyst = W_DateSyst[1,2]:W_DateSyst[4,2]:W_DateSyst[7,4]

							W_MontPremQuant=ENR_BROUILLARDDETAIL<10>*100
							IF W_MontPremQuant=0 OR W_MontPremQuant = "" THEN
								W_MontPremQuant=0
								W_MontPremQuant=W_MontPremQuant "R#20"
							END ELSE
								W_MontPremQuant=W_MontPremQuant[1,LEN(W_MontPremQuant)-4]:".":W_MontPremQuant[LEN(W_MontPremQuant)-3,4]
								IF LEN(W_MontPremQuant) = 4 THEN ;* Type .600
									W_MontPremQuant= "0":W_MontPremQuant[1,1]:"0":W_MontPremQuant[2,3] ;* Type 0.0600
								END
								IF LEN(W_MontPremQuant) = 5 THEN ;* Type .6000
									W_MontPremQuant= "0" : W_MontPremQuant ;*Type 0.6000
								END
								W_MontPremQuant=W_MontPremQuant "R#20"
							END
							
							*Ecriture de la ligne
							W_Ligne = W_Ligne:SPACE(43):W_DateSyst:SPACE(31):W_MontPremQuant:SPACE(20):"THC":SPACE(933) ;* Ligne Complmentaire #2 est vide et comptabilise dans le SPACE(933)
							
							*Ecriture final
							DELETE F.BROUILLARDDETAIL,W_CleBrouiDetail
							W_TabDonnees<-1>=W_Ligne
						END
					END
				END
			NEXT i
			
			DELETE F.BROUILLARDTETE,W_Cle
		END
REPEAT
END

WRITE W_TabDonnees ON F.LIENCOMPTA,W_NomFicGen
EXECUTE 'EFFACER-LISTE W_Requete'

RETURN