*******************************************************************
*                      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

EXECUTE 'COMO ON VerifBULLFACT.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
W_RUPTAIDE=""
W_CUMSAL=0
IF MSGCODE<1> # "209" THEN

	SELECT F.CONTRAT TO W_Contrats
	W_Fin = "F"
	LOOP
		READNEXT W_Cle FROM W_Contrats ELSE W_Fin = "O"
	UNTIL W_Fin = "O" DO
		
		READ ENR_CONTRAT FROM F.CONTRAT, W_Cle[1,8] THEN

                   IF W_RUPTAIDE="" THEN W_RUPTAIDE=ENR_CONTRAT<3>
		   IF ENR_CONTRAT<3> # W_RUPTAIDE THEN
			GOSUB 100
                        W_RUPTAIDE=ENR_CONTRAT<3>
                        W_CUMSAL=0
		   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" OR ENR_DETAILCALCUL<17,Z>="824" THEN W_MONTACPT=W_MONTACPT+ENR_DETAILCALCUL<20,Z>
				Z=Z+1
			REPEAT

			W_CUMSAL = W_CUMSAL + ENR_DETAILCALCUL<21> - W_MONTACPT	
		   END

		END

	REPEAT


	GOSUB 100

END
EXECUTE "COMO OFF"
STOP

100 EXECUTE 'SELECT FACTURAIDE AVEC 0 = "[':W_Asso:'M':W_Periode:']" AND AVEC 0 = "':W_RUPTAIDE:']" 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
   READNEXT W_CLEFACT FROM W_Factures THEN
    READ ENR_FACTURAIDE FROM F.FACTURAIDE,W_CLEFACT THEN
	  W_CUMFACT = 0
          W_CountLigne=DCOUNT(ENR_FACTURAIDE<1>,CHAR(253))
          FOR i=1 TO W_CountLigne
             W_Ligne=ENR_FACTURAIDE<2,i>
             IF W_Ligne[1,13] = "SALAIRE VERSE" THEN
			W_CUMFACT = W_CUMFACT + INT(ENR_FACTURAIDE<5,i>)
             END
          NEXT i
    END
   END
END
IF W_CUMSAL#W_CUMFACT THEN PRINT "DIFFERENCE ":W_RUPTAIDE:" ":W_CUMSAL:" ":W_CUMFACT
RETURN