EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "", "DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "", "CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "", "ORGPRISECHARGE" TO F.ORGPRISECHARGE ELSE STOP
OPEN "", "FACTURORG" TO F.FACTURORG ELSE STOP
OPEN "", "ACCORD" TO F.ACCORD ELSE STOP

0
PRINT "Veuillez saisir la priode concerne (AAAAMM)"
INPUT W_Periode
IF W_Periode MATCH "6N" ELSE GOSUB 0

LOOP
   PRINT "Veuillez saisir le code de l'organisme MSA (3 caractres)"
   INPUT W_CodOrg
   READ ENR_ORGPRISECHARGE FROM F.ORGPRISECHARGE, W_CodOrg ELSE ENR_ORGPRISECHARGE = ""
WHILE ENR_ORGPRISECHARGE = ""
	IF ENR_ORGPRISECHARGE = "" THEN
	  PRINT "Cet organisme n'existe pas !"
	END
REPEAT

W_DebPer = ICONV("01/":W_Periode[5,2]:"/":W_Periode[1,4],"D4/")
W_FinPer = W_Periode[5,2] + 1
IF W_FinPer = 13 THEN
   W_FinPer = ICONV("31/12/":W_Periode[1,4],"D4/")
END ELSE
   W_FinPer = ICONV("01/":W_FinPer"R%2":"/":W_Periode[1,4],"D4/") - 1
END

W_TabAnomalies = ""
W_IndAnomalies = 1
EXECUTE 'SELECT FACTURORG AVEC 10 = "[':W_Periode:']" AND AVEC 0 = "':W_CodOrg:']" PAR PeriodeFacturOrg PAR NomPrenomFacturOrg'

EXECUTE 'SAUVE-LISTE W_ReqFact'
EXECUTE 'LISTE W_ReqFact' RETURNING MSGCODE

IF MSGCODE<1> # 209 THEN
   SELECT F.FACTURORG TO W_ReqFact
   PRINTER ON
   
   PRINT "Journal de paie des employeurs ":ENR_ORGPRISECHARGE<1>:"          Edite le ":OCONV(DATE(),"D4/")
   W_NbLigne = 1
   W_FinFact = "F"
   W_TamponAide = ""
   LOOP
	READNEXT W_CleFact FROM W_ReqFact ELSE W_FinFact = "V"	
	
   WHILE W_FinFact = "F" DO

	    W_AideImprime = "False"
	    	    	
	    EXECUTE 'SELECT DETAILCALCUL AVEC CodeAideDetailCalcul = "':W_CleFact[5,5]:'" AND AVEC @ID = "[':W_CleFact[13,6]:'" PAR CodeAidantDetailCalcul'
	    
	    W_Fin = "F"

	    LOOP
		READNEXT W_Cle ELSE W_Fin = "V"
	    WHILE W_Fin = "F" DO
		READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, W_Cle[1,5] ELSE ENR_CIVILAIDANT = ""
		READ ENR_DETAILCALCUL FROM F.DETAILCALCUL, W_Cle THEN
		   IF W_AideImprime = "False" OR (62 - W_NbLigne) < 7 THEN
			GOSUB 100
			W_AideImprime = "True"
		   END
		   W_NbHresConges = 0
		   W_MtntConges=0
		   W_NbHresNorm = 0
		   W_MtntNorm = 0
		   i = 0
		   LOOP 
			i = i + 1
		   WHILE ENR_DETAILCALCUL<2,i> # "" DO
			IF INDEX("802 803 804 817 818 819 ",ENR_DETAILCALCUL<2,i>:" ",1) <> 0 THEN
				W_NbHresConges = W_NbHresConges + ENR_DETAILCALCUL<3,i> / 100
				W_MtntConges = W_MtntConges + ENR_DETAILCALCUL<5,i> / 100
			END 
		   REPEAT
	         W_NbHresNorm = ENR_DETAILCALCUL<6>/100 - W_NbHresConges
		   W_MtntNorm = ENR_DETAILCALCUL<7>/100 - W_MtntConges
		   W_NbHresConges = W_NbHresConges"R2"
		   W_MtntConges = W_MtntConges"R2"
		   W_NbHresNorm = W_NbHresNorm"R2"
		   W_MtntNorm = W_MtntNorm"R2"	
		   PRINT "    PERIODE : ":W_CleFact[15,4]:" SALARIE : MATRICULE ":W_Cle[1,5]:", NOM-PRENOM : ":TRIM(ENR_CIVILAIDANT<1>"L#3":" ":ENR_CIVILAIDANT<2>[1,15]:" ":ENR_CIVILAIDANT<3>[1,30 - 5 - LEN(ENR_CIVILAIDANT<2>[1,15])]):SPACE(30-LEN(TRIM(ENR_CIVILAIDANT<1>"L#3":" ":ENR_CIVILAIDANT<2>[1,15]:" ":ENR_CIVILAIDANT<3>[1,30 - 5 - LEN(ENR_CIVILAIDANT<2>[1,15])]))):"  No Sec. Soc. ":ENR_CIVILAIDANT<17>:" ":ENR_CIVILAIDANT<18>
		   PRINT "    ADRESSE : ":TRIM(ENR_CIVILAIDANT<5>:" ":ENR_CIVILAIDANT<6>:" ":ENR_CIVILAIDANT<7>:" ":ENR_CIVILAIDANT<8>:" ":ENR_CIVILAIDANT<9>:" ":ENR_CIVILAIDANT<10>:" ":ENR_CIVILAIDANT<11>)
   		   PRINT "    Heures normales  : ":W_NbHresNorm"R#6":"   ":W_MtntNorm"R#8":"    Conges payes : ":W_NbHresConges"R#6":"   ":W_MtntConges"R#8"
		   PRINT "    Brut acquis      : ":((ENR_DETAILCALCUL<6>/100)"R2")"R#6":"   ":((ENR_DETAILCALCUL<7>/100)"R2")"R#8":"    Net fiscal   :          ":((ENR_DETAILCALCUL<15>/100)"R2")"R#8"
		   PRINT "    Net a payer      :          ":((ENR_DETAILCALCUL<16>/100)"R2")"R#8"
		   PRINT " "
		   PRINT "==========================================================================================================================="
		   W_NbLignes = W_NbLigne + 7
		END
	      REPEAT 	 
   REPEAT

END
STOP

100
* Impression de l'en-tte employeur
IF W_NbLigne > (62 - 11) THEN
	PAGE
	PRINT "Journal de paie des employeurs ":ENR_ORGPRISECHARGE<1>:"          Edite le ":OCONV(DATE(),"D4/")
	W_NbLigne = 1
END

READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_CleFact[5,5] ELSE ENR_CIVILAIDE = ""

PRINT "***************************************************************************************************************************"
PRINT "EMPLOYEUR : MATRICULE ":W_CleFact[5,5]:", NOM-PRENOM : ":TRIM(ENR_CIVILAIDE<1>"L#3":" ":ENR_CIVILAIDE<2>[1,20]:" ":ENR_CIVILAIDE<3>[1,20]):SPACE(45-LEN(TRIM(ENR_CIVILAIDE<1>"L#3":" ":ENR_CIVILAIDE<2>[1,20]:" ":ENR_CIVILAIDE<3>[1,20]))):"  No Sec. Soc. ":ENR_CIVILAIDE<18>:" ":ENR_CIVILAIDE<19>
PRINT "ADRESSE   : ":TRIM(ENR_CIVILAIDE<5>:" ":ENR_CIVILAIDE<6>:" ":ENR_CIVILAIDE<7>:" ":ENR_CIVILAIDE<8>:" ":ENR_CIVILAIDE<9>:" ":ENR_CIVILAIDE<10>:" ":ENR_CIVILAIDE<11>)
PRINT "==========================================================================================================================="
W_NbLigne = W_NbLigne + 4
RETURN
