****************************************************
* CALCUL DU RATTRAPAGE EN CCN 01 SUITE A NOUVELLE INTEGRATION 
* FICHIER EXCEL CCU QUI A REMIS A JOUR LES CONTRATS DE TRAVAIL
****************************************************
EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","CONTRAT" TO F.CONTRAT ELSE STOP
OPEN "","DG" TO F.DG ELSE STOP
OPEN "","RATTSALANT" TO F.RATTSALANT ELSE STOP
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE STOP
OPEN "","RUBSAISIE" TO F.RUBSAISIE ELSE STOP
OPEN "","GRILLESCC" TO F.GRILLESCC ELSE STOP
EXECUTE "COMO ON REGULCCU"
EXECUTE 'SELECT DETAILCALCUL AVEC ConvColContratDetailCalcul = "01" AND AVEC FonctionContrat= "P" AND AVEC 0 = "[200308"'
FINI="NON"
LOOP
 READNEXT CLE ELSE FINI="OUI"
 UNTIL FINI="OUI" DO
  READ ENRDETAILCALCUL FROM F.DETAILCALCUL,CLE[1,8]:"200307" THEN
   GOSUB 100
   IF TAUXHOR07=0 THEN
    PRINT "CALCUL IMPOSSIBLE - CONTRAT SANS TAUX HORAIRE SUR JUILLET : ":CLE[1,8]
   END ELSE
    READ ENRDETAILCALCUL FROM F.DETAILCALCUL,CLE ELSE ENRDETAILCALCUL=""
    GOSUB 200
    IF TAUXHOR08=0 THEN
     PRINT "CALCUL IMPOSSIBLE - CONTRAT SANS TAUX HORAIRE SUR AOUT : ":CLE[1,8]
    END ELSE
     IF TAUXHOR08<TAUXHOR07 THEN
      PRINT "CALCUL IMPOSSIBLE - CONTRAT AVEC TAUX HORAIRE AOUT < TAUX HORAIRE JUILLET : ":CLE[1,8]
     END ELSE
      IF TAUXHOR08=TAUXHOR07 THEN
       PRINT "CONTRAT SANS RATTRAPAGE : ":CLE[1,8]
      END ELSE
       IF TAUXHOR08<"7730" THEN
        PRINT "PAS DE CALCUL - CONTRAT AVEC PRIME DIFFERENTIELLE SUR AOUT : ":CLE[1,8]
       END ELSE
        GOSUB 400
        IF W_TAUXHOR#TAUXHOR07 THEN
         PRINT "ANOMALIE : TAUX HORAIRE RECALCULE # TAUX HORAIRE JUILLET - CONTRAT : ":CLE[1,8]
        END ELSE
         GOSUB 300
         ENRRATTSALANT=""
         ENRRATTSALANT<1>=MONTANTREGUL-MONTANTANC
         WRITE ENRRATTSALANT ON F.RATTSALANT,CLE[1,8]
         END
       END
      END
     END
    END
   END
  END ELSE
   PRINT "CONTRAT SANS BULLETIN SUR JUILLET : ":CLE[1,8]
  END
REPEAT
EXECUTE "COMO OFF"
STOP

***
100 I=1
TAUXHOR07=0
LOOP
 RUB=ENRDETAILCALCUL<2,I>
 UNTIL RUB="" DO
  READ ENRRUBSAISIE FROM F.RUBSAISIE,RUB ELSE ENRRUBSAISIE=""
  IF ENRRUBSAISIE<2>#"4" AND ENRRUBSAISIE<8>="2" THEN
   IF TAUXHOR07=0 THEN TAUXHOR07=INT((ENRDETAILCALCUL<4,I>/ENRRUBSAISIE<9>*100000)+1/2)
  END
  I=I+1
REPEAT
RETURN

***
200 I=1
TAUXHOR08=0
LOOP
 RUB=ENRDETAILCALCUL<2,I>
 UNTIL RUB="" DO
  READ ENRRUBSAISIE FROM F.RUBSAISIE,RUB ELSE ENRRUBSAISIE=""
  IF ENRRUBSAISIE<2>#"4" AND ENRRUBSAISIE<8>="2" THEN
   IF TAUXHOR08=0 THEN TAUXHOR08=INT((ENRDETAILCALCUL<4,I>/ENRRUBSAISIE<9>*100000)+1/2)
  END
  I=I+1
REPEAT
RETURN

***
300 I=1
MONTANTANC=0
MONTANTREGUL=0
LOOP
 RUB=ENRDETAILCALCUL<2,I>
 UNTIL RUB="" DO
  READ ENRRUBSAISIE FROM F.RUBSAISIE,RUB ELSE ENRRUBSAISIE=""
  IF ENRRUBSAISIE<8>="2" THEN
   MONTANTANC=MONTANTANC+ENRDETAILCALCUL<5,I>   
   IF ENRRUBSAISIE<2>="4" AND ENRRUBSAISIE<9>="1250000" THEN
    W_TAUXHORREGUL=W_TAUXHOR+INT(W_TAUXHORDIMJF*25/100+1/2)
    IF ENRDETAILCALCUL<3,I><0 THEN
     MONTANTREGUL=MONTANTREGUL+INT(ENRDETAILCALCUL<3,I>*W_TAUXHORREGUL/1000-1/2)
    END ELSE
     MONTANTREGUL=MONTANTREGUL+INT(ENRDETAILCALCUL<3,I>*W_TAUXHORREGUL/1000+1/2)
    END
   END ELSE
    W_TAUXHORREGUL=INT(W_TAUXHOR*ENRRUBSAISIE<9>/1000000+1/2)
    IF ENRDETAILCALCUL<3,I><0 THEN
     MONTANTREGUL=MONTANTREGUL+INT(ENRDETAILCALCUL<3,I>*W_TAUXHORREGUL/1000-1/2)
    END ELSE
     MONTANTREGUL=MONTANTREGUL+INT(ENRDETAILCALCUL<3,I>*W_TAUXHORREGUL/1000+1/2)
    END
   END
  END
  I=I+1
REPEAT
RETURN

***
400 READ ENRCONTRAT FROM F.CONTRAT,CLE[1,8] ELSE ENRCONTRAT=""
W_AVENANT = DCOUNT(EXTRACT(ENRCONTRAT,14),CHAR(253))
W_DATEANC = OCONV(ENRCONTRAT<21,W_AVENANT>,"D4/")
W_GRILLE = ENRCONTRAT<20,W_AVENANT>
READ ENR_GRILLE FROM F.GRILLESCC, W_GRILLE ELSE ENR_GRILLE = ""
IF W_GRILLE[3,1] = "1" THEN
 IF W_GRILLE[4,2] = "00" THEN
  W_NOUVAN = W_DATEANC[7,4] + 2
  W_DATEANC = W_DATEANC[1,6]:W_NOUVAN
 END ELSE
  W_NOUVAN = W_DATEANC[7,4] + 3
  W_DATEANC = W_DATEANC[1,6]:W_NOUVAN
 END
END
W_DATEANC = ICONV(W_DATEANC,"D4/")
ENRCONTRAT<21,W_AVENANT> = W_DATEANC
ENRCONTRAT<20,W_AVENANT> = W_GRILLE
WRITE ENRCONTRAT ON F.CONTRAT,CLE[1,8]
W_PARAMS=""
W_SORTIE=""
W_PARAMS<1>=CLE[1,8]
W_PARAMS<2>=W_AVENANT
W_PARAMS<3>="200308"
CALL CALCCOEFFTXHOR("",W_PARAMS,W_SORTIE)
W_COEFF=W_SORTIE<1>
W_TAUXHOR=W_SORTIE<2>
W_TAUXHORDIMJF=W_SORTIE<3>
ENRCONTRAT=REPLACE(ENRCONTRAT,22,W_AVENANT;W_COEFF)
ENRCONTRAT=REPLACE(ENRCONTRAT,23,W_AVENANT;W_TAUXHOR)
WRITE ENRCONTRAT ON F.DG,CLE[1,8]
RETURN
