Version 62

Version 6

Calcul de plafond

PL_HRSDUREE : Durée en heures pour les temps partiels

Correctif pour prendre en compte les forfaits jours

Avant

CONSTANTE(CONTRAT.HORAIREMENSREEL)+[NBHRSCOMPL.MONTANT]-[TPT_NONPAYE.DUREE]

Après

si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
alors (
  CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)
  /
  CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)
)
SINON(
  CONSTANTE(CONTRAT.HORAIREMENSREEL)+[NBHRSCOMPL.MONTANT]-[TPT_NONPAYE.DUREE]
)

V_AGCP.HREMU

Correctif pour l'horaire collectif des forfaits jours

Remplacement de 218 par CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)

Avant

 {Forfait Annuel en jours}
               si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
               alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)/218
                      *
                       si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0))
                       alors ([BC_BRUT_URSAFF.MONTANT]
                               /
                               ([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT])
                       )
                       sinon (1)
                      )
               sinon (

Après

 {Forfait Annuel en jours}
               si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
               alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTE(CONTRAT.JOUR_FORFAIT)/CONSTANTE(CONTRAT.FORFAITJOURCOLLECTIF)
                      *
                       si (([IJBRUT.MONTANT]<>0) ou ([ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT]<>0))
                       alors ([BC_BRUT_URSAFF.MONTANT]
                               /
                               ([BC_BRUT_URSAFF.MONTANT]+[IJBRUT.MONTANT] +[ABSTOTALV.MONTANT]-[ABSTOTALM.MONTANT])
                       )
                       sinon (1)
                      )
               sinon (

Calcul AGCP et SMICPRORATE

Remplacement de histocumulsitu par histo cumuljoint car le calcul annuel se fait désormais tout contrat confondu

BC_MALCOMP25 : Assiette complément maladie si salaire>2.5 SMIC

Avant

si (
   (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
   et ([V_AGCP.CUMREMUCOEF]>0)
   et ([V_AGCP.CUMSMICPRORATE]>0)
   )
alors (
        histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
        - histocumulsitu([BC_MALCOMP25.MONTANT])
      )
sinon (
        histocumulsitu([BC_MALCOMP25.MONTANT])*(-1)
      )

Après

si (
   (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
   et ([V_AGCP.CUMREMUCOEF]>0)
   et ([V_AGCP.CUMSMICPRORATE]>0)
   )
alors (
        histocumuljoint([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
        - histocumuljoint([BC_MALCOMP25.MONTANT])
      )
sinon (
        histocumuljoint([BC_MALCOMP25.MONTANT])*(-1)
      )
BC_REG_ALLOC Base régularisation alloc

Avant

si (
      ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE]))
      ou ([V_AGCP.CUMREMUCOEF]<=0)
      ou ([V_AGCP.CUMSMICPRORATE]<=0)
      )
alors (
              histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
              -histocumulsitu([BC_REG_ALLOC.MONTANT])
      )
sinon (
            histocumulsitu([V_ALLOC.BASEALLOCRED])
            +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
      )

Après

si (
      ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE]))
      ou ([V_AGCP.CUMREMUCOEF]<=0)
      ou ([V_AGCP.CUMSMICPRORATE]<=0)
      )
alors (
              histocumuljoint([V_ALLOC.BASEALLOC])*(-1)
              -histocumuljoint([BC_REG_ALLOC.MONTANT])
      )
sinon (
            histocumuljoint([V_ALLOC.BASEALLOCRED])
            +histocumuljoint([BC_REG_ALLOCRE.MONTANT])
      )
Correctif sur fonction F_AGCP

Avant

si ((si (moisfin=0) alors (12) sinon (moisfin))<[AGCPDEBUT.MONTANT])
alors (0)
sinon (
si ((moisdebut=0) ou (moisfin=0))
alors (histocumulsitu(RUBACUMULER))
sinon (
        histocumulsitu(RUBACUMULER;
                          maximum(1;(si (moisdebut=0) alors (1) sinon (moisdebut));[AGCPDEBUT.MONTANT]);
                          CONSTANTE(GENERAL.ANNEE_PAYE);
                          (si (moisfin=0) alors (12) sinon (moisfin));
                          CONSTANTE(GENERAL.ANNEE_PAYE)
               )
       )
       )

Après

si ((si (moisfin=0) alors (12) sinon (moisfin))<[AGCPDEBUT.MONTANT])
alors (0)
sinon (
si ((moisdebut=0) ou (moisfin=0))
alors (histocumuljoint(RUBACUMULER))
sinon (
        histocumuljoint(RUBACUMULER;
                          maximum(1;(si (moisdebut=0) alors (1) sinon (moisdebut));[AGCPDEBUT.MONTANT]);
                          CONSTANTE(GENERAL.ANNEE_PAYE);
                          (si (moisfin=0) alors (12) sinon (moisfin));
                          CONSTANTE(GENERAL.ANNEE_PAYE)
               )
       )
       )

 

Assistantes familiales

66_AFDISPO : Indemnité de disponibilité

A saisir en variable de paye
Indemnité de disponibilité qui « ne peut être inférieure
à 2.25 fois le montant du salaire minimum de croissance, sans pouvoir être
inférieure à 90% de la rémunération prévue par le contrat de travail ».
Pour chaque journée de disponibilité, une comparaison doit être effectuée entre le salaire
légal (2.25 x Smic horaire) et contractuel (90% de la rémunération contractuelle).

66_AFPARTMIXTE : Part accueil mixte

Correctif pour que la rubrique fonctionne même si pas d'enfant au contrat.

Et comparatif entre le légal et le conventionnel

Avant :

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0) )
alors (
      [66_AFJRSINTER.MONTANT]/26
      *([66_AF_1ENF.RESULTAT])
      *[VP.VP]*(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100)
      )
sinon (0)

Après

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) )
alors (
      maximum(
              [66_AFJRSINTER.BASE]*5.06*CONSTANTE(GENERAL.SMICHOR)
              ;
              [66_AFJRSINTER.MONTANT]/26
              *([66_AF_1ENF.RESULTAT])
              *[VP.VP]*(1+CONSTANTE(GENERAL.TAUXSUJETION66)/100)
              )
      )
sinon (0)
66_AFNBJINT : Nombre de jours d'accueil permanent intermittent

Erreur sur la formule sur le nombre de jour d'accueil enfant 2

Avant

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0)
   et ([66_AFACCINTER.MONTANT]=1))
alors (
      [66_AFNBJENF1.MONTANT]
      +
      si ([66_AFNBENF.MONTANT]>=2)
      alors (
            [66_AFNBJENF2.MONTANT]=0
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=3)
      alors (
            [66_AFNBJENF3.MONTANT]
            )
      sinon (0)
      )
sinon (0)

Après

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0)
   et ([66_AFACCINTER.MONTANT]=1))
alors (
      [66_AFNBJENF1.MONTANT]
      +
      si ([66_AFNBENF.MONTANT]>=2)
      alors (
            [66_AFNBJENF2.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=3)
      alors (
            [66_AFNBJENF3.MONTANT]
            )
      sinon (0)
      )
sinon (0)
66_AFNBJABSCP : Nombre de jour absence convenance personnelle

Création de la rubrique pour minorer l'accueil non réalisé

66_AFNBJABS1

Création de la rubrique pour minorer l'accueil non réalisé par enfant

Comment faire lorsque le nombre d'enfant contractuel change en cours de mois ?

Exemple 1 : Du 1er au 10 -> 2 enfants et du 11 au 30 -> 1 enfant

Exemple 2 : Du 1er au 10 -> 1 enfant et du 11 au 30 -> 2 enfant

Augmenter le nombre d'enfant

Afin de simplifier la rubrique 66_AF, on va créer des fonctions qui donneront le résultat.

Création d'une fonction :

66AF (REMU , CONV , NBJACCUEIL,NBJABSCP , PROG , PRECPROG,NUMERO)

Passage à 5 enfants :

Création des rubriques suivantes sur le même modèle que les autres :

Il n'y a pas d'indemnité pour accueil non réalisé pour les enfants 4 et 5

66_AFIACCNE : Indemnité compensatrice pour accueil non réalisé

si ([66_AF.PRENDRELEG1]=1)
      alors ([66_AF.ABSLEG1])
      sinon ([66_AF.ABSCONV1])
+
si ( [66_AFNBENF.MONTANT]>1
   )
alors (
      si ([66_AF.PRENDRELEG2]=1)
      alors ([66_AF.ABSLEG2])
      sinon ([66_AF.ABSCONV2])
      )
sinon (0)
+
si ( [66_AFNBENF.MONTANT]>2
   )
alors (
      si ([66_AF.PRENDRELEG3]=1)
      alors ([66_AF.ABSLEG3])
      sinon ([66_AF.ABSCONV3])
      )
sinon (0)

66_AFBASE : Salaire de base

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0) )
alors (
                [66_AFPART1.MONTANT]
                +[66_AFPART2.MONTANT]
                +[66_AFPART3.MONTANT]
                +[66_AFPART4.MONTANT]
                +[66_AFPART5.MONTANT]
                +[66_AFPARTMIXTE.MONTANT]
       )
sinon (0)

66_AFNBJRPER : Nombre de jours d'accueil Permanent continu

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0)
   et ([66_AFACCINTER.MONTANT]=0))
alors (
      [66_AFNBJENF1.MONTANT]
      +
      si ([66_AFNBENF.MONTANT]>=2)
      alors (
            [66_AFNBJENF2.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=3)
      alors (
            [66_AFNBJENF3.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=4)
      alors (
            [66_AFNBJENF4.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=5)
      alors (
            [66_AFNBJENF5.MONTANT]
            )
      sinon (0)
      )
sinon (0)

66_AFNBJINT : Nombre de jours d'accueil permanent intermittent

si ( (CONSTANTE(CONTRAT.NATURECONTRAT)=3) et ([NUMCONV.NUMCONV]=66) et ([66_AFNBENF.MONTANT]<>0)
   et ([66_AFACCINTER.MONTANT]=1))
alors (
      [66_AFNBJENF1.MONTANT]
      +
      si ([66_AFNBENF.MONTANT]>=2)
      alors (
            [66_AFNBJENF2.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=3)
      alors (
            [66_AFNBJENF3.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=4)
      alors (
            [66_AFNBJENF4.MONTANT]
            )
      sinon (0)
      +
      si ([66_AFNBENF.MONTANT]>=5)
      alors (
            [66_AFNBJENF5.MONTANT]
            )
      sinon (0)

      )
sinon (0)

 

Version 7 : AGCP

Fonction F_AGCPSMICMENS : Recalcul du smic mensuel proraté d'un mois

Paramètres :

si ((CONSTANTE(GENERAL.MOIS_PAYE)>=MACALCULER) et (MDEBUT<=MACALCULER))
alors (
         (histoactifjoint(HREMU;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))/
          CONSTANTE(CONTRAT.HORAIRECOLLECTIF)*CONSTANTEHIS(GENERAL.SMICMENS;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))
          )
          *histoactifjoint(HORBASE;MACALCULER;CONSTANTE(GENERAL.ANNEE_PAYE))/1607
       )
sinon (0)

Rubriques créées

V_NEWAGCP : Rubrique libre nouveau calcul AGCP

Liste des formules :

Si la constante SMICAGCP (recalcule smic chaque mois) est à oui, utilise TOTSMICPRO sinon comme avant

si (CONSTANTE(GENERAL.SMICAGCP)=0)
alors (0)
sinon (si (CONSTANTE(GENERAL.ANNEE_PAYE)>=2024)
      alors (
            F_AGCPSMICMENS([AGCPDEBUT.BASE];1;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];2;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];3;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];4;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];5;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];6;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];7;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];8;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];9;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];10;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];11;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];12;[V_NEWAGCP.HREMU];[V_NEWAGCP.HORBASE])
            )
      sinon (
            F_AGCPSMICMENS([AGCPDEBUT.BASE];1;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];2;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];3;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];4;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];5;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];6;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];7;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];8;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];9;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];10;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];11;[V_AGCP.HREMU];[V_AGCP.HORBASE])
           +F_AGCPSMICMENS([AGCPDEBUT.BASE];12;[V_AGCP.HREMU];[V_AGCP.HORBASE])
            )
      )

Les quatre dernières formules permettent de recalculer le total AGCP pour chaque part en fonction du paramètre T actuel. Ainsi, s'il était incorrect en début d'année, le fait de le changer calculera les bons montant AGCP.

V_AD_AGCP : AGCP aide à domicile

Liste des formules :

AD_HNEXO : Heures non exonérées aide à domicile

Rubrique de paye des heures aide à domicile non exonérées. A saisir en variable de paye.

AD_HEXO : Heures aide à domicile exonérées

Rubrique de paye des heures exonérées aide à domicile. Cette rubrique est calculée en fonction des heures non exonérées saisies par la différence entre les heures contractuelles et les heures non exonérées saisies.

Les heures supplémentaires qui sont saisies sont réparties au prorata des heures exonérées et non exonérées.

CUMUL.COMPTEUR

Rubrique toujours égale à 1 pour comptabiliser le nombre de contrat.

Mise en place

ATTENTION : Pour activer  SMICAGCP  il faut faire une modif d'historique de V_NEWAGCP.HREMUOK et l'initialiser à 1 si V_NEWAGCP.HREMU<>0 pour un calcul correct de TOTSMICPRO 

update rhpersonne P set pertypesalarie=5
where exists (select * from rhcontrat C where (ctrempart=1003) and (ctrperid=P.perid))

AD_HEXO et AD_HNEXO

à remplir par les rubriques utilisées précédemment.

V_NEWAGCP.HREMU

Reprendre AGCP.HREMU.

V_NEWAGCP.REMUCOEF

Reprendre AGCP.REMUCOEF.

V_NEWAGCP.HORBASE

si ([V_AGCP.HREMU]=0)
alors (0)
sinon ([V_AGCP.HORBASE])

V_NEWAGCP.HREMUOK

si ([V_NEWAGCP.HREMU]=0)
alors (0)
sinon (1)

V_AD_AGCP.HREMU

Reprendre la rubrique utilisateur AD_AGCP.HREMU.

V_AD_AGCP.REMUCOEF

Reprendre la rubrique utilisateur AD_AGCP.REMUCOEF.

V_AD_AGCP.HORBASE

si ([_V_AD_AGCP.HREMU]=0)
alors (0)
sinon ([_V_AGCP_AD.HORBASE])

V_AD_AGCP.HREMUOK

si ([_V_AGCP_AD.HREMU]=0)
alors (0)
sinon (1)

BC_ADAGCPRUAA

Reprendre la base de cotisation AGCP aide à domicile utilisateur

BC_ADAGCPURSS

Reprendre la base de cotisation AGCP aide à domicile utilisateur

 

 

Version 8

Ajout TH_DIM : paiement des dimanches et fériés pour les TH

Version 9

BC_MALCOMP25

Prise en compte de la constante générale FILLONCONTRAT

Prise en compte de la nouvelle rubrique V_NEWAGCP

Avant

si (
   (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
   et ([V_AGCP.CUMREMUCOEF]>0)
   )
alors (
        histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
        - histocumulsitu([BC_MALCOMP25.MONTANT])
      )
sinon (
        histocumulsitu([BC_MALCOMP25.MONTANT])*(-1)
      )

Après

si (CONSTANTE(GENERAL.FILLONCONTRAT)=1)
alors (
      si (
         (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
         et ([V_AGCP.CUMREMUCOEF]>0)
         )
      alors (
            histocumulsitu([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
            - histocumulsitu([BC_MALCOMP25.MONTANT])
            )
      sinon (
            histocumulsitu([BC_MALCOMP25.MONTANT])*(-1)
            )
      )
sinon (
      si (CONSTANTE(GENERAL.NEWAGCP)= 0)
      alors (
            si (
               (([V_AGCP.CUMREMUCOEF]) >  (2.5*[V_AGCP.CUMSMICPRORATE]))
               et ([V_AGCP.CUMREMUCOEF]>0)
               et ([V_AGCP.CUMSMICPRORATE]>0)
               )
            alors (
                  histocumuljoint([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
                  - histocumuljoint([BC_MALCOMP25.MONTANT])
                  )
            sinon (
                  histocumuljoint([BC_MALCOMP25.MONTANT])*(-1)
                  )
            )
      sinon (
            si (
               (([V_NEWAGCP.CUMREMUCOEF]) >  (2.5*[V_NEWAGCP.CUMSMICPRO]))
               et ([V_NEWAGCP.CUMREMUCOEF]>0)
               et ([V_NEWAGCP.CUMSMICPRORATE]>0)
               )
            alors (
                  histocumuljoint([BC_BRUT_URSAFF.MONTANT])+ [BC_BRUT_URSAFF.MONTANT]
                  - histocumuljoint([BC_MALCOMP25.MONTANT])
                  )
            sinon (
                  histocumuljoint([BC_MALCOMP25.MONTANT])*(-1)
                  )
            )
      )
Allocation familiale

Prise en compte de la nouvelle rubrique V_NEWAGCP

ALLOCFAM.TAUX

Avant

si (
   ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
   et ([V_AGCP.CUMREMUCOEF]>0)
   et ([V_AGCP.CUMSMICPRORATE]>0)
   )
alors (LISTEGEN(TX_ALLOCF;0001))
sinon (0)

Après

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO]>0)
         )
      alors (LISTEGEN(TX_ALLOCF;0001))
      sinon (0)
      )

ALLOCFAMREDUIT.TAUX

Avant

si (([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0))
alors (0)
sinon (LISTEGEN(TX_ALLOCF;0002))

Après

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO]>0)
         )
      alors (0)
      sinon (LISTEGEN(TX_ALLOCF;0002))
      )

ALLOCFAMCOMP.TAUX

Avant

si (([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0))
alors (0)sinon (1.80)

Après

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (0) sinon (1.80)
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO]>0)
         )
      alors (0) sinon (1.80)
      )


ALLOCFAMCOMPNEG.TAUX

Avant

si (([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE]) et ([V_AGCP.CUMREMUCOEF]>0))
alors (0)sinon (-1.80)

Après

si (CONSTANTE(GENERAL.NEWAGCP)=0)
alors (
      si (
         ([V_AGCP.CUMREMUCOEF]>3.5*[V_AGCP.CUMSMICPRORATE])
         et ([V_AGCP.CUMREMUCOEF]>0)
         et ([V_AGCP.CUMSMICPRORATE]>0)
         )
      alors (0) sinon (-1.80)
      )
sinon (
      si (
         ([V_NEWAGCP.CUMREMUCOEF]>3.5*[V_NEWAGCP.CUMSMICPRO])
         et ([V_NEWAGCP.CUMREMUCOEF]>0)
         et ([V_NEWAGCP.CUMSMICPRO]>0)
         )
      alors (0) sinon (-1.80)
      )

BC_REG_ALLOC

Avant

si (([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE]))
      ou ([V_AGCP.CUMREMUCOEF]<=0))
alors (
              histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
              -histocumulsitu([BC_REG_ALLOC.MONTANT])
      )
sinon (
            histocumulsitu([V_ALLOC.BASEALLOCRED])
            +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
      )

Après

si (CONSTANTE(GENERAL.NEWAGCP)=1)
alors (
      si (CONSTANTE(GENERAL.FILLONCONTRAT)=1)
      alors (
            si (
               ([V_NEWAGCP.CUMREMUCOEF]<=(3.5*[V_NEWAGCP.CUMSMICPRO]))
               ou ([V_NEWAGCP.CUMREMUCOEF]<=0)
               ou ([V_NEWAGCP.CUMSMICPRO]<=0)
            )
            alors (
                   histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
                   -histocumulsitu([BC_REG_ALLOC.MONTANT])
                   )
            sinon (
                  histocumulsitu([V_ALLOC.BASEALLOCRED])
                  +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
                  )
            )
      sinon (
            si (
               ([V_NEWAGCP.CUMREMUCOEF]<=(3.5*[V_NEWAGCP.CUMSMICPRO]))
               ou ([V_NEWAGCP.CUMREMUCOEF]<=0)
               ou ([V_NEWAGCP.CUMSMICPRO]<=0)
            )
            alors (
                   histocumuljoint([V_ALLOC.BASEALLOC])*(-1)
                   -histocumuljoint([BC_REG_ALLOC.MONTANT])
                   )
            sinon (
                  histocumuljoint([V_ALLOC.BASEALLOCRED])
                  +histocumuljoint([BC_REG_ALLOCRE.MONTANT])
                  )
            )
      )
sinon (
      si (CONSTANTE(GENERAL.FILLONCONTRAT)=1)
      alors (
            si (
               ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE]))
               ou ([V_AGCP.CUMREMUCOEF]<=0)
               ou ([V_AGCP.CUMSMICPRORATE]<=0)
            )
            alors (
                   histocumulsitu([V_ALLOC.BASEALLOC])*(-1)
                   -histocumulsitu([BC_REG_ALLOC.MONTANT])
                   )
            sinon (
                  histocumulsitu([V_ALLOC.BASEALLOCRED])
                  +histocumulsitu([BC_REG_ALLOCRE.MONTANT])
                  )
            )
      sinon (
            si (
               ([V_AGCP.CUMREMUCOEF]<=(3.5*[V_AGCP.CUMSMICPRORATE]))
               ou ([V_AGCP.CUMREMUCOEF]<=0)
               ou ([V_AGCP.CUMSMICPRORATE]<=0)
            )
            alors (
                   histocumuljoint([V_ALLOC.BASEALLOC])*(-1)
                   -histocumuljoint([BC_REG_ALLOC.MONTANT])
                   )
            sinon (
                  histocumuljoint([V_ALLOC.BASEALLOCRED])
                  +histocumuljoint([BC_REG_ALLOCRE.MONTANT])
                  )
            )
      )

 

Version 10

Je supprime la constante FILLONCONTRAT et modifie toutes les formules y faisant référence

 

Version 11

Modification de I_ICP

La formule ne prenait pas en compte l'histo du contrat en changement de situation dans le mois de paye en cours

Avant

DECLARER(MEMB)
AFFECTER(MEMB;CONSTANTE(CONTRAT.MOIS_EMBAUCHE))
DECLARER(AEMB)
AFFECTER(AEMB;CONSTANTE(CONTRAT.ANNEE_EMBAUCHE))
DECLARER(MPAYE)
AFFECTER(MPAYE;CONSTANTE(GENERAL.MOIS_PAYE))
DECLARER(APAYE)
AFFECTER(APAYE;CONSTANTE(GENERAL.ANNEE_PAYE))
SI(
    CONSTANTE(CONTRAT.PAIEMENTCP)=
    (0))
  ALORS(0)
  SINON(
      SI(
        CONSTANTE(CONTRAT.PAIEMENTCP)=2)
      ALORS(
        HISTOCumulsitu([B_ICP.MONTANT];:MEMB;:AEMB;:MPAYE;:APAYE)+([B_ICP.MONTANT])-
        HISTOCumulsitu([I_ICP.BASE];:MEMB;:AEMB;:MPAYE;:APAYE))
      SINON(
          SI(
            CONSTANTE(CONTRAT.CLOTURE)=1)
          ALORS(
            HISTOCumulsitu([B_ICP.MONTANT];:MEMB;:AEMB;:MPAYE;:APAYE)+
            ([B_ICP.MONTANT])-
            HISTOCumulsitu([I_ICP.BASE];:MEMB;:AEMB;:MPAYE;:APAYE))
          SINON(0)))

Après

SI(
    CONSTANTE(CONTRAT.PAIEMENTCP)=
    (0))
  ALORS(0)
  SINON(
      SI(
        CONSTANTE(CONTRAT.PAIEMENTCP)=2)
      ALORS(
        HISTOCumulsitu([B_ICP.MONTANT];1,1980)+([B_ICP.MONTANT])-
        HISTOCumulsitu([I_ICP.BASE];1,1980))
      SINON(
          SI(
            CONSTANTE(CONTRAT.CLOTURE)=1)
          ALORS(
            HISTOCumulsitu([B_ICP.MONTANT];1,1980)+
            ([B_ICP.MONTANT])-
            HISTOCumulsitu([I_ICP.BASE];1,1980))
          SINON(0)))