validarPeriodoApuracaoRange static method

String? validarPeriodoApuracaoRange(
  1. int? periodoApuracao
)

Valida se o período de apuração está dentro de um range válido

Implementation

static String? validarPeriodoApuracaoRange(int? periodoApuracao) {
  if (periodoApuracao == null) {
    return 'Período de apuração é obrigatório';
  }

  final hoje = DateTime.now();
  final periodoStr = periodoApuracao.toString();

  if (periodoStr.length != 6) {
    return 'Período de apuração deve ter 6 dígitos (AAAAMM)';
  }

  final ano = int.parse(periodoStr.substring(0, 4));
  final mes = int.parse(periodoStr.substring(4, 6));

  // Verifica se não é muito antigo (mais de 10 anos)
  if (ano < hoje.year - 10) {
    return 'Período de apuração muito antigo';
  }

  // Verifica se não é futuro
  if (ano > hoje.year || (ano == hoje.year && mes > hoje.month)) {
    return 'Período de apuração não pode ser futuro';
  }

  return null;
}