Version 104

Parution pilote : 20/09/2026  Parution officielle : 12/10/2026

Version précédente Version 102   

Correction rubrique BC_TR_C_PREV_NC : Utilise BC_TR_C_PREV_C

Avant

F_TRANCHECPREV([BC_BRUT_PREV_C.MONTANT];[BC_TR_A_PREV_C.MONTANT]  ;[BC_TR_B_PREV_C.MONTANT]  ;[BC_TR_C_PREV_C.MONTANT];[PLAFONDSECU.PLAFOND_OC];[V_PLAFPREV.NB_TRC_NC])

Après

F_TRANCHECPREV([BC_BRUT_PREV_NC.MONTANT];[BC_TR_A_PREV_NC.MONTANT]  ;[BC_TR_B_PREV_NC.MONTANT]  ;[BC_TR_C_PREV_NC.MONTANT];[PLAFONDSECU.PLAFOND_OC];[V_PLAFPREV.NB_TRC_NC])
Mise à jour formule F_RGDU pour nouveau paramètre RGDU AD

Il s'agit d'ajouter le nouveau paramètre Heure Non exonéré.

Le paramètre Heure contrat qui était utilisé précédemment redevient Heure contrat

je fait également la correction des heures sup : ils les envoie proraté alors que le programme les prorate aussi

Avant

declarer (FORFAITJOUR)
affecter (FORFAITJOUR;si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
                      alors (1)
                      sinon (0)
	  )
declarer (AD)
affecter (AD;si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
             alors (1)
             sinon (0)
	  )
declarer (NBHEURES)
affecter (NBHEURES;si (:AD=1)
                  alors ([AD_HNEXO.BASE])
                  sinon (
                        si (:FORFAITJOUR=1)
                        alors (0)
                        sinon (si (CONSTANTE(CONTRAT.TYPESALARIE)=3)
                               alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
                               sinon (CONSTANTE(CONTRAT.HORAIREMENSUEL))
                              )
                        )
          )
declarer (NBJOURS)
affecter (NBJOURS;si ((:FORFAITJOUR=0) ou (:AD=1))
			alors (0)
			sinon (CONSTANTE(CONTRAT.JOUR_FORFAIT))
          )

declarer (HSUP)
affecter (HSUP;si (:AD=1)
               alors([AGCP_HREMUPLUS.MONTANT]*[AD_HNEXO.BASE]/([AD_HNEXO.BASE]+[AD_HEXO.BASE]))
               sinon ([AGCP_HREMUPLUS.MONTANT])
	  )
declarer (HORBASE)
affecter (HORBASE;si ([AGCPHORAN.BASE]=0)
                  alors (
			si (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO))=0)
			alors (1607)
			sinon (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO)))
			)
		  sinon ([AGCPHORAN.BASE])
	  )
declarer (HEXO)
affecter (HEXO;si (:AD=1)
               alors ([AD_HEXO.BASE])
               sinon (0)
         )
declarer (PPV)
affecter (PPV;[P_PPVEXO.MONTANT]+[P_PPVNONEXO.MONTANT])
declarer (ANNEE)
affecter (ANNEE;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.ANNEE_CLOTURE))
                sinon (CONSTANTE(GENERAL.ANNEE_PAYE)))
declarer (MOIS)
affecter (MOIS;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.MOIS_CLOTURE))
                sinon (CONSTANTE(GENERAL.MOIS_PAYE)))

rgdu(TYPEMONTANT;
    :ANNEE;
    :MOIS;
    CONSTANTE(GENERAL.FNAL010);
    :NBHEURES;
    :NBJOURS;
    :HSUP;
    [AGCPITREMU.MONTANT];
    [AGCP_NUMHREMU.MONTANT];
    [B_PXHEURE.MONTANT];
    :HORBASE;
    :AD;
    :HEXO;
    :PPV)

Après

declarer (FORFAITJOUR)
affecter (FORFAITJOUR;si (CONSTANTE(CONTRAT.SITUATIONHORAIRE)=4)
                      alors (1)
                      sinon (0)
	  )
declarer (AD)
affecter (AD;si (CONSTANTE(CONTRAT.TYPESALARIE)=5)
             alors (1)
             sinon (0)
	  )
declarer (NBHEURES)
affecter (NBHEURES;
                        si (:FORFAITJOUR=1)
                        alors (0)
                        sinon (si (CONSTANTE(CONTRAT.TYPESALARIE)=3)
                               alors (CONSTANTE(CONTRAT.HORAIRECOLLECTIF))
                               sinon (CONSTANTE(CONTRAT.HORAIREMENSUEL))
                              )
          )
declarer (NBJOURS)
affecter (NBJOURS;si ((:FORFAITJOUR=0) ou (:AD=1))
			alors (0)
			sinon (CONSTANTE(CONTRAT.JOUR_FORFAIT))
          )

declarer (HSUP)
affecter (HSUP;[AGCP_HREMUPLUS.MONTANT]
	  )
declarer (HORBASE)
affecter (HORBASE;si ([AGCPHORAN.BASE]=0)
                  alors (
			si (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO))=0)
			alors (1607)
			sinon (LISTEGEN(TPSAN;CONSTANTE(CONTRAT.CATPERSO)))
			)
		  sinon ([AGCPHORAN.BASE])
	  )
declarer (HEXO)
affecter (HEXO;si (:AD=1)
               alors ([AD_HEXO.BASE])
               sinon (0)
         )
declarer (HNEXO)
affecter (HNEXO;si (:AD=1)
               alors ([AD_HNEXO.BASE])
               sinon (0)
         )         
declarer (PPV)
affecter (PPV;[P_PPVEXO.MONTANT]+[P_PPVNONEXO.MONTANT])
declarer (ANNEE)
affecter (ANNEE;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.ANNEE_CLOTURE))
                sinon (CONSTANTE(GENERAL.ANNEE_PAYE)))
declarer (MOIS)
affecter (MOIS;si ([PLAFONDSECU.NUMCAS]=2)
                alors (CONSTANTE(CONTRAT.MOIS_CLOTURE))
                sinon (CONSTANTE(GENERAL.MOIS_PAYE)))

rgdu(TYPEMONTANT;
    :ANNEE;
    :MOIS;
    CONSTANTE(GENERAL.FNAL010);
    :NBHEURES;
    :NBJOURS;
    :HSUP;
    [AGCPITREMU.MONTANT];
    [AGCP_NUMHREMU.MONTANT];
    [B_PXHEURE.MONTANT];
    :HORBASE;
    :AD;
    :HEXO;    
    :PPV;
    :HNEXO)

Mise à jour de la rubrique 51_DIFFSMIC

La rubrique différentiel SMIC se déclenchait pour quelques centimes lorsque le salaire conventionnel était égale au SMIC à cause des arrondi de 151,67.

Avant : 

SI([NUMCONV.NUMCONV] = 51 )
alors (
	si (([51_MINCONV.MONTANT]*151.67/CONSTANTE(CONTRAT.HORAIREMENSUEL))<1400)
    alors (
            maximum((CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))-[51_SALMINSMIC.MONTANT];0)
            )
    sinon (
            maximum((CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))-
                   ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0)
            )
      )
sinon (0)

Après : 

SI([NUMCONV.NUMCONV] = 51 ET (CONSTANTE(GENERAL.SMICMENS) > CONSTANTE(GENERAL.51MINCONV)) )
alors (
	si (([51_MINCONV.MONTANT]*151.67/CONSTANTE(CONTRAT.HORAIREMENSUEL))<1400)
    alors (
            maximum((CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))-[51_SALMINSMIC.MONTANT];0)
            )
    sinon (
            maximum((CONSTANTE(GENERAL.SMICHOR)*MINIMUM(CONSTANTE(CONTRAT.HORAIREMENSUEL);35*52/12))-
                   ([51_SALMINSMIC.MONTANT]-[51_SALMINCONV.MONTANT]+[51_MINCONV.MONTANT]);0)
            )
      )
sinon (0)

Mise à jour de la rubrique BC_TR_C_PRV_NC

Les rubriques utilisées pour le calcul de BC_TR_C_PREV_NC étaient des rubriques de prévoyance Cadre au lieu de rubriques de prévoyance Non-cadre.

Avant : 

F_TRANCHECPREV(
  [BC_BRUT_PREV_C.MONTANT];
  [BC_TR_A_PREV_C.MONTANT];
  [BC_TR_B_PREV_C.MONTANT];
  [BC_TR_C_PREV_C.MONTANT];
  [PLAFONDSECU.PLAFOND_OC];
  [V_PLAFPREV.NB_TRC_NC]
  )

Après :

F_TRANCHECPREV(
  [BC_BRUT_PREV_NC.MONTANT];
  [BC_TR_A_PREV_NC.MONTANT];
  [BC_TR_B_PREV_NC.MONTANT];
  [BC_TR_C_PREV_NC.MONTANT];
  [PLAFONDSECU.PLAFOND_OC];
  [V_PLAFPREV.NB_TRC_NC]
  )

 


Revision #5
Created 17 September 2026 18:26:24 by Valéry HUMEZ
Updated 17 September 2026 18:30:17 by Valéry HUMEZ