#' @title Augmentation de la contribution sur les salaires
#'
#' @description Ce module calcule la somme d'une augmentation des cotisations sur les salaires
#'
#' @param PARAM_AUGMENTATION_COTISATION_AVS dataframe d'une seule ligne, dont nous utilisons les
#'   paramètres suivants:
#'   - `taux`: augmentation en points de pourcentage du taux de cotisation,
#'   - `debut`: debut de la première augmentation du taux,
#'   - `taux_2`: augmentation en points de pourcentage de la première + la dexième augmentation du taux de cotisation,
#'   - `debut_2`: debut de la première augmentation du taux,
#'   - `taux_3`: augmentation en points de pourcentage de la première + la dexième + la troisièeme augmentation du taux de cotisation,
#'   - `debut_3`: debut de la troisième augmentation du taux,
#'   - `fin`: fin de l'augmentation des taux
#'   
#'
#' @param AHV_LOHNSUMME data frame contenant la somme des salaires.
#' jusqu'à jahr_ende calculée dans \code{\link{mod_ahv_rentensumme}}.
#'
#' @return une `tidylist` contenant le data frame suivant:
#'   - `DELTA_EINN_BTR_VS_AG`
#'
#' @author [MAS BSV](mailto:sekretariat.mas@bsv.admin.ch)

#' @export


mod_ahv_augmentation_cotisation <- function(AHV_LOHNSUMME,
                                            PARAM_MASSNAHMEN
                                            ) {
    
    print("Run module: mod_ahv_augmentation_cotisation")

  # Si taux 2 et 3 ne sont pas inclus dans les paramètres, nous prenons les données relatives au premier taux
  if("taux_2" %in% colnames(PARAM_MASSNAHMEN)== FALSE){
    PARAM_MASSNAHMEN$taux_2 <- PARAM_MASSNAHMEN$taux
    PARAM_MASSNAHMEN$debut_2 <- PARAM_MASSNAHMEN$debut
  }
  
  
  if("taux_3" %in% colnames(PARAM_MASSNAHMEN)==FALSE){
    PARAM_MASSNAHMEN$taux_3 <- PARAM_MASSNAHMEN$taux_2
    PARAM_MASSNAHMEN$debut_3 <- PARAM_MASSNAHMEN$debut_2
  }

  DELTA_EINN_BTR_VS_AG <- AHV_LOHNSUMME %>%
    mutate(
      wert = case_when(
        jahr >=PARAM_MASSNAHMEN$debut ~ ahv_lohnsumme*PARAM_MASSNAHMEN$taux/100,
        TRUE ~ 0
      )
    ) %>%
    mutate(
      wert = case_when(
        jahr >=PARAM_MASSNAHMEN$debut_2 ~ ahv_lohnsumme*PARAM_MASSNAHMEN$taux_2/100,
        TRUE ~ wert
      )
    ) %>%
    mutate(
      wert = case_when(
        jahr >=PARAM_MASSNAHMEN$debut_3 ~ ahv_lohnsumme*PARAM_MASSNAHMEN$taux_3/100,
        TRUE ~ wert
      )
    ) %>%
    mutate(
      wert = case_when(
        jahr >PARAM_MASSNAHMEN$fin ~ 0,
        TRUE ~ wert
      )
    ) %>%
    dplyr::select(
      jahr,
      wert
    )

  return(list(
      DELTA_EINN_BTR_VS_AG = DELTA_EINN_BTR_VS_AG
  ))
}
