*******************************************************************
*                      PRMOUL COMPBBULLFACT				*
*											*
*    Compare les montants des cotisations des bulletins 		*
* mandataires avec les lignes des factures selon le libelle 	*
* "PREVOYANCE IRCEM" et indique toutes les erreurs possibles : 	*
* pas de facture,	factures sans bulletins, ou diffrence entre 	*
* les montants...									*
* Rq : Ne gre pas les cas ou 2 salaires sur le mois pour le 	*
* couple !!! (les mets en erreur !)						*
*											*
* 06/08/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
OPEN "", "RUBCHARGE" TO F.RUBCHARGE ELSE STOP

PRINT "Association :"
INPUT W_Asso

PRINT "Priode (AAAAMM) :"
INPUT W_Periode

LOOP
PRINT "1ere rubrique IRCEM supplmentaire :"
INPUT W_Rub1
W_Rub1 = W_Rub1"R%3"
W_OK = "V"
READ ENR_RUB1 FROM F.RUBCHARGE, W_Rub1 ELSE W_OK = "F"
WHILE W_OK = "F"
REPEAT


LOOP
PRINT "2eme rubrique IRCEM supplmentaire (facultative) :"
INPUT W_Rub2
IF W_Rub2 = "" THEN
	W_OK = "V"
END ELSE
	W_Rub2 = W_Rub2"R%3"
	W_OK = "V"
	READ ENR_RUB1 FROM F.RUBCHARGE, W_Rub1 ELSE W_OK = "F"
END
WHILE W_OK = "F"
REPEAT

PRINT W_Rub1:" ":W_Rub2

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.DETAILCALCUL TO W_Contrats

	W_MontantCotisBull = 0
	W_BaseCotisBull= 0
	W_TotalCotis = 0
	W_TotalBase = 0
	W_TotalFact = 0
	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_TotalBase = W_TotalBase + W_BaseCotisBull
			W_TotalCotis = W_TotalCotis + W_MontantCotisBull
			W_TamponAide = TRIM(ENR_CONTRAT<3>)
			W_MontantCotisBull = 0
			W_BaseCotisBull = 0
			W_IndNomPrenom = 1
		   END

		   
		
		   READ ENR_DETAILCALCUL FROM F.DETAILCALCUL, W_Cle THEN
			W_Trouve1 = "F"
			IF W_Rub2 # "" THEN
				W_Trouve2 = "F"
			END ELSE
				W_Trouve2 = "V"
			END
			i = 0
			LOOP
				i = i + 1
			WHILE ENR_DETAILCALCUL<8,i> # "" AND (W_Trouve1 # "V" OR W_Trouve2 # "V")
			    IF ENR_DETAILCALCUL<8,i> = W_Rub1 OR ENR_DETAILCALCUL<8,i> = W_Rub2 THEN
				W_MontantCotisBull = W_MontantCotisBull - INT(ENR_DETAILCALCUL<11,i>) + INT(ENR_DETAILCALCUL<14,i>)
				W_BaseCotisBull = W_BaseCotisBull + INT(ENR_DETAILCALCUL<12,i>)
				IF ENR_DETAILCALCUL<8,i> = W_Rub1 THEN
					W_Trouve1 = "V"
				END ELSE
					W_Trouve2 = "V"
				END
			    END
			REPEAT
			
		   END

		END


	REPEAT


	GOSUB 100
	GOSUB 500

	PRINT " "
	PRINT " *********** Bilan ***********************************"
	PRINT " "
	PRINT a:" cas prsentant des diffrences."
	PRINT b:" factures parcourues."
	PRINT c:" factures sans anomalie"
	PRINT " "
	PRINT "Montant base total : ":W_TotalBase
	PRINT "Montant cotis total : ":W_TotalCotis
	PRINT "Total factur : ":W_TotalFact
	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"		
			FOR iNom = 1 TO W_IndNomPrenom - 1
			   IF INT(W_MontantCotisBull) # 0 THEN
				GOSUB 300
			   END
		    	NEXT iNom
			
			
		END
	END ELSE
		
		W_LibCleFact = "Aucune"
		FOR iNom = 1 TO W_IndNomPrenom - 1
		    IF INT(W_MontantCotisBull) # 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 "Cotisations sur bulletins : "
*	FOR k = 1 TO W_IndNomPrenom - 1
		PRINT W_MontantCotisBull
*	NEXT k
	PRINT "Total base cotisation : ":W_BaseCotisBull
	PRINT " "
	PRINT "Facture : ":W_LibCleFact
	
	a = a + 1
END
W_DernierAideImprime = W_TamponAide
IF W_LibCleFact[1,5] # "Aucun" THEN
	PRINT ENR_FACTURAIDE<2,i>:" : ":ENR_FACTURAIDE<5,i>/100
END

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>, "CHARGES PREVOYANCE SUPPLEMENTAIRE",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>, "CHARGES PREVOYANCE SUPPLEMENTAIRE",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_CountLigne=DCOUNT(ENR_FACTURAIDE<1>,CHAR(253))
	    W_Trouve = "F"
          FOR i=1 TO W_CountLigne
             W_Ligne=ENR_FACTURAIDE<2,i>
             IF W_Ligne[1,33] = "CHARGES PREVOYANCE SUPPLEMENTAIRE" THEN
		W_Trouve = "V"
			W_TotalFact = W_TotalFact + INT(ENR_FACTURAIDE<5,i>)
                IF W_MontantCotisBull # ENR_FACTURAIDE<5,i> THEN
			W_LibCleFact = W_CleFact
			GOSUB 300
                END ELSE
			* Ne fais rien	
			c = c + 1	
                END     
	     END
          NEXT i
	  IF W_Trouve = "F" THEN
		W_LibCleFact = W_CleFact
		GOSUB 300
	  END
	
END 
RETURN
