*******************************************************************
*                      PRMOUL COMPBBULLFACT				*
*											*
*    Compare les montants  payer des bulletins mandataires 	*
* avec les lignes des factures selon le libelle "SALAIRE VERSE"	*
* et indique toutes les erreurs possibles : pas de facture,		*
* factures sans bulletins, ou diffrence entre les montants...	*
*											*
*											*
* 23/07/02	MICHAEL								*
*******************************************************************




EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "", "CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "", "DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "", "FACTURAIDE" TO F.FACTURAIDE ELSE STOP
OPEN "", "CIVILAIDE" TO F.CIVILAIDE ELSE STOP
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP

PRINT "Association :":
INPUT W_Asso

PRINT "Priode (AAAAMM) :":
INPUT W_Periode


GOSUB 200
W_FinFact = ""
W_CodeAideFact = 99999

W_LibCleFact = "Aucune"
W_DernierAideImprime = ""

EXECUTE 'COMO ON VerifProv.txt'

EXECUTE 'SELECT DETAILCALCUL AVEC ConvColContratDetailCalcul = "02" AND AVEC CodAssoContratDetailCalcul = "':W_Asso:'" AND AVEC PeriodeDetailCalcul = "':W_Periode:'" PAR-DECR CodeAideDetailCalcul PAR @ID'
EXECUTE 'SAUVE-LISTE W_Contrats'
EXECUTE "LISTE W_Contrats" RETURNING MSGCODE

a = 0
b = 0
c = 0

W_AideTraite = "V"

IF MSGCODE<1> # "209" THEN

	SELECT F.CONTRAT TO W_Contrats

	W_TabNomPrenom = ""
	W_IndNomPrenom = 1

	W_TamponAide  = ""
	W_Fin = "F"
	LOOP
		READNEXT W_Cle FROM W_Contrats ELSE W_Fin = "O"
	WHILE W_Fin = "F"
		
		READ ENR_CONTRAT FROM F.CONTRAT, W_Cle[1,8] THEN

		   IF TRIM(ENR_CONTRAT<3>) # W_TamponAide THEN

			IF W_TamponAide # "" THEN
				GOSUB 100
			
			END

			W_TamponAide = TRIM(ENR_CONTRAT<3>)
			W_TabNomPrenom = ""
			W_IndNomPrenom = 1
		   END

		   READ ENR_CIVILAIDANT FROM F.CIVILAIDANT, W_Cle[1,5] THEN
			W_TabNomPrenom<W_IndNomPrenom,1> = ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
			IF LEN(W_TabNomPrenom<W_IndNomPrenom,1>) > 24 THEN
				W_TabNomPrenom<W_IndNomPrenom,1> = W_TabNomPrenom<W_IndNomPrenom,1>[1,24]
			END
		   END

		   READ ENR_DETAILCALCUL FROM F.DETAILCALCUL, W_Cle THEN
			Z=1
			W_MONTACPT=0
			LOOP
				UNTIL ENR_DETAILCALCUL<17,Z>="" DO
				IF ENR_DETAILCALCUL<17,Z>="816" THEN W_MONTACPT=ENR_DETAILCALCUL<20,Z>
				Z=Z+1
			REPEAT

			W_TabNomPrenom<W_IndNomPrenom,2> = ENR_DETAILCALCUL<21>	- W_MONTACPT	
		   END

		END
		W_IndNomPrenom = W_IndNomPrenom + 1

	REPEAT


	GOSUB 100
	GOSUB 500

	PRINT " "
	PRINT " *********** Bilan ***********************************"
	PRINT " "
	PRINT a:" cas prsentant des diffrences."
	PRINT b:" factures parcourues."
	
	EXECUTE 'COMO OFF'

END
STOP

100


IF W_CodeAideFact = W_TamponAide THEN
	GOSUB 600
	W_AideTraite = "V"
END ELSE
	IF INT(W_CodeAideFact) > INT(W_TamponAide) THEN
		GOSUB 500
		IF W_CodeAideFact = W_TamponAide THEN
			GOSUB 600
			W_AideTraite = "V"
		END ELSE
			W_Prov = 0
			W_Repr = 0
			W_LibCleFact = "Aucune"		
			ENR_FACTURAIDE = ""
			FOR iNom = 1 TO W_IndNomPrenom - 1
			   IF INT(W_TabNomPrenom<iNom,2>) # 0 THEN
				GOSUB 300
			   END
		    	NEXT iNom
			
			
		END
	END ELSE
		
		W_LibCleFact = "Aucune"
		ENR_FACTURAIDE = ""
		FOR iNom = 1 TO W_IndNomPrenom - 1
		    IF INT(W_TabNomPrenom<iNom,2>) # 0 THEN
			GOSUB 300
		    END
		NEXT iNom
		
	END
END

RETURN


200
EXECUTE 'SELECT FACTURAIDE = "[':W_Asso:'M':W_Periode:']" PAR-DECR @ID'
EXECUTE 'SAUVE-LISTE W_Factures'
EXECUTE 'LISTE W_Factures' RETURNING MSGCODE
IF MSGCODE<1> # "209" THEN
	SELECT F.FACTURAIDE TO W_Factures
END
RETURN


300
IF INT(W_DernierAideImprime) # INT(W_TamponAide) THEN
	PRINT " "
	PRINT " "
	PRINT " "

	READ ENR_CIVILAIDE FROM F.CIVILAIDE, W_TamponAide THEN
		PRINT "Aide : ":W_TamponAide:" - ":ENR_CIVILAIDE<2>:" ":ENR_CIVILAIDE<3>
	END ELSE
		PRINT "Aide : ":W_TamponAide:
	END
	PRINT "Salaires verss : "
	FOR k = 1 TO W_IndNomPrenom - 1
		PRINT W_TabNomPrenom<k,1>:" : ":W_TabNomPrenom<k,2>/100"R2"
	NEXT k
	PRINT " "
	PRINT "Facture : ":W_LibCleFact
	
	a = a + 1
END

W_DernierAideImprime = W_TamponAide
FOR i=1 TO W_CountLigne
    W_Ligne=ENR_FACTURAIDE<2,i>
    IF W_Ligne[1,15] = "SALAIRE VERSE A" THEN
	PRINT ENR_FACTURAIDE<2,i>:" : ":ENR_FACTURAIDE<5,i>/100
    END
NEXT i

RETURN



500

W_SauveAide = W_CodeAideFact

IF W_AideTraite = "F" THEN
	READ ENR_FACTURAIDE FROM F.FACTURAIDE, W_CleFact THEN
	    IF INDEX(ENR_FACTURAIDE<2>, "SALAIRE",1) # 0 THEN
		PRINT "Facture ":W_CleFact:" sans bulletin !" 
		PRINT " "
	    END
	END
	b = b + 1
END
LOOP
	READNEXT W_CleFact FROM W_Factures ELSE W_FinFact = "V"
	W_CodeAideFact = W_CleFact[1,5]
WHILE W_FinFact = "" AND INT(W_CodeAideFact) > INT(W_TamponAide)
	
	IF INT(W_CodeAideFact) > INT(W_TamponAide) AND W_SauveAide # W_CodeAideFact THEN
	    READ ENR_FACTURAIDE FROM F.FACTURAIDE, W_CleFact THEN
	        IF INDEX(ENR_FACTURAIDE<2>, "SALAIRE",1) # 0 THEN
		    PRINT "Facture ":W_CleFact:" sans bulletin !" 
		    PRINT " "
	        END
	    END
	    b = b + 1
	END
	W_SauveAide = W_CodeAideFact
REPEAT
W_AideTraite = "F"
RETURN


600
READ ENR_FACTURAIDE FROM F.FACTURAIDE, W_CleFact THEN
b=b+1
	    W_MtntTotFact = 0
          W_CountLigne=DCOUNT(ENR_FACTURAIDE<1>,CHAR(253))

	  W_Fact=0

          FOR i=1 TO W_CountLigne
             W_Ligne=ENR_FACTURAIDE<2,i>
             IF W_Ligne[1,15] = "SALAIRE VERSE A" THEN
			W_MtntTotFact = W_MtntTotFact + INT(ENR_FACTURAIDE<5,i>)
			W_Fact=1
            END
           NEXT i

	   W_MtntTotBull = 0
	   FOR i = 1 TO W_IndNomPrenom - 1
		W_MtntTotBull = W_MtntTotBull + INT(W_TabNomPrenom<i,2>)
	   NEXT i

	  IF W_Fact=1 THEN
	   IF W_MtntTotFact # W_MtntTotBull THEN
		W_LibCleFact = W_CleFact
		GOSUB 300
	   END	
	  END

END 
RETURN
