OPEN "", "DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "", "HISTORCUMUL" TO F.HISTORCUMUL ELSE STOP
OPEN "", "CIVILAIDANT" TO F.CIVILAIDANT ELSE STOP
OPEN "", "CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE STOP
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
PRINT "Mois de debut de l'anne de dclaration (AAAAMM) "
INPUT W_MoisDeb
PRINT "Mois de fin de l'anne de dclaration (AAAAMM) "
INPUT W_MoisFin
PRINT "Code entit juridique (3N) "
INPUT W_CodeAsso
W_DateFinPer = ICONV("01/":W_MoisFin[5,2]:"/":W_MoisFin[1,4],"D4/")
W_Fin="F"
W_TABRUBCHG=""
D=1
EXECUTE 'SELECT RUBCHARGE AVEC 28 = "1"'
LOOP
 READNEXT W_CLERUBCHG ELSE W_Fin="V"
 UNTIL W_Fin="V" DO
  READ ENR_RUBCHARGE FROM F.RUBCHARGE,W_CLERUBCHG THEN
   W_TABRUBCHG<D,1>=W_CLERUBCHG
   W_TABRUBCHG<D,2>=ENR_RUBCHARGE<18>
   D=D+1
  END
REPEAT
EXECUTE 'COMO ON ControlUrssafExo.txt'
W_Str =  'SELECT DETAILCALCUL AVEC CodAssoContratDetailCalcul = "':W_CodeAsso:'" AND AVEC ConvColContratDetailCalcul # "02" AND AVEC PeriodeDetailCalcul >= "':W_MoisDeb:'" AND AVEC PeriodeDetailCalcul <= "':W_MoisFin:'" PAR CodeAidantDetailCalcul PAR PeriodeDetailCalcul'
EXECUTE W_Str
W_TamponAidant = ""
W_CumulURSSAFTOT = 0
W_CumulURSSAFPLA = 0
W_Fin = "F"
LOOP
 READNEXT W_Cle ELSE W_Fin = "V"
 WHILE W_Fin = "F" DO
  IF W_TamponAidant="" THEN W_TamponAidant=W_Cle[1,5]
  READ ENR_CONTRAT FROM F.CONTRAT,W_Cle[1,8] ELSE ENR_CONTRAT = ""
  W_DERNPAIECLOT=ENR_CONTRAT<63>
  IF W_Cle[1,5] # W_TamponAidant THEN
   READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_TamponAidant ELSE ENR_CIVILAIDANT=""
   GOSUB 400
   W_TamponAidant = W_Cle[1,5]
  END
  READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_Cle ELSE ENR_DETAILCALCUL = ""
  IF W_Cle[9,6]<=W_DERNPAIECLOT AND W_DERNPAIECLOT#"" THEN	
   J=1
   LOOP
    CODERUBCHG=EXTRACT(ENR_DETAILCALCUL,8,J)
    UNTIL CODERUBCHG="" DO
     D=1
     LOOP
      UNTIL W_TABRUBCHG<D,1>=CODERUBCHG OR W_TABRUBCHG<D,1>="" DO
       D=D+1
     REPEAT
     IF W_TABRUBCHG<D,1>=CODERUBCHG THEN
      IF W_TABRUBCHG<D,2>=1 THEN
       W_CumulURSSAFTOT=W_CumulURSSAFTOT+EXTRACT(ENR_DETAILCALCUL,9,J)
      END ELSE
       W_CumulURSSAFPLA=W_CumulURSSAFPLA+EXTRACT(ENR_DETAILCALCUL,9,J)
      END
     END
     J=J+1
   REPEAT	
  END
REPEAT
GOSUB 400
EXECUTE 'COMO OFF'
STOP

90
* PROBLEME SUR ASSIETTE BRUTE
PRINT W_TamponAidant:" ":ENR_CIVILAIDANT<4>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
PRINT " Pb assiette brute Urssaf --> Cumul DADS : ":ENR_HISTORCUMUL<16,I> "R26,(#10)":"   Cumul bulletin : ":W_CumulURSSAFTOT "R26,(#10)"
PRINT
RETURN

100
* PROBLEME SUR BASE COTISATION URSSAF TOTALITE
PRINT W_TamponAidant:" ":ENR_CIVILAIDANT<4>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
PRINT " Pb Urssaf Totalit --> Cumul DADS : ":W_BASEURSSAFTOT "R26,(#10)":"   Cumul bulletin : ":W_CumulURSSAFTOT "R26,(#10)"
PRINT
RETURN

110
* PROBLEME SUR BASE COTISATION URSSAF PLAFONNE
PRINT W_TamponAidant:" ":ENR_CIVILAIDANT<4>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
PRINT " Pb Urssaf Plafonn --> Cumul DADS : ":W_BASEURSSAFPLA "R26,(#10)":"   Cumul bulletin : ":W_CumulURSSAFPLA "R26,(#10)"
PRINT
RETURN

120
* PROBLEME PAS DE CUMULS DADS
PRINT W_TamponAidant:" ":ENR_CIVILAIDANT<4>:" ":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>
PRINT "Aidant sans cumuls DADS ! "
PRINT	
RETURN

***************************************
* Total Aide
******************************************			
400
READ ENR_HISTORCUMUL FROM F.HISTORCUMUL,W_TamponAidant:W_MoisFin[1,4]:W_CodeAsso THEN
 W_BASEURSSAFTOT=0
 W_BASEURSSAFPLA=0
 W_ANOURSSAF=0
 I=1
 LOOP
  CODERUBCHG=EXTRACT(ENR_HISTORCUMUL,15,I)
  UNTIL CODERUBCHG="" DO
   D=1
   LOOP
    UNTIL W_TABRUBCHG<D,1>=CODERUBCHG OR W_TABRUBCHG<D,1>="" DO
     D=D+1
   REPEAT
   IF W_TABRUBCHG<D,1>=CODERUBCHG THEN
    IF ENR_HISTORCUMUL<16,I>#W_CumulURSSAFTOT THEN 
     IF W_ANOURSSAF=0 THEN GOSUB 90
     W_ANOURSSAF=1
    END
    IF W_TABRUBCHG<D,2>=1 THEN
     W_BASEURSSAFTOT=W_BASEURSSAFTOT+ENR_HISTORCUMUL<17,I>
    END ELSE
     W_BASEURSSAFPLA=W_BASEURSSAFPLA+ENR_HISTORCUMUL<17,I>
    END
   END 
   I=I+1
 REPEAT
 IF W_CumulURSSAFTOT # W_BASEURSSAFTOT THEN GOSUB 100
 IF W_CumulURSSAFPLA # W_BASEURSSAFPLA THEN GOSUB 110
END ELSE
 ENR_HISTORCUMUL = ""
 IF W_CumulURSSAFTOT#0 OR W_CumulURSSAFPLA#0 THEN GOSUB 120
END
W_CumulURSSAFTOT = 0
W_CumulURSSAFPLA = 0
RETURN