dietCheck <- function(diets, category, mthnames, logger){
  
  dietnames <- c()
  
  for(ct in category){
    dtnms <- unlist(lapply(mthnames, function(m) ct[[m]]))
    dietnames <- c(dietnames, unique(dtnms))
  }
  
  dietnames <- dietnames[!is.na(dietnames)]
  # TODO CHECAR DIETA PARA CADA CATEGORIA
  if(!all(dietnames %in% diets)){
    dff <- setdiff(dietnames, diets)
    log4r::fatal(logger, paste0("The diets '", paste0(dff, collapse = "', '"), "' aren't listed in Diet's sheet."))
    stop()
  }
}

dietsSetting <- function(filepath, logger, pars){
  
  df <- readDF(filepath = filepath, sht = "Diet", logger = logger, skip = 2)
  
  if(length(df) == 0){
    log4r::fatal(logger, "Input file has empty Diet sheet.")
    stop()
  }
  
  allCol <- c("Category", "Diet", "Dig", "CP", "LWG.Ref", "AdditiveName", "AdditiveReduction")
  if(!all(colnames(df) %in% allCol)){
    log4r::fatal(logger, paste0("Diet's sheet columns must be: '", paste0(allCol, collapse = "', '"), "', respectively."))
    stop()
  }
  
  obligCol <- c("Dig", "CP", "LWG.Ref")
  if(any(is.na(df[,obligCol]))){ 
    log4r::fatal(logger, paste0("Empty information: columns '", paste0(obligCol, collapse = "', '"), "' must be completely filled."))
    stop()
  }
  
  df[which(is.na(df[,"Diet"])),] <- NULL
  df[, "Diet"] <- paste0(df[, "Category"], "_", df[, "Diet"])
  typenames <- df[,"Diet"]
  df[,"Diet"] <- NULL
  df[,"Category"] <- NULL
  inpData <- split(df, 1:nrow(df))
  names(inpData) <- typenames
  
  return(inpData)
}

