validarPeriodoApuracao static method

String? validarPeriodoApuracao(
  1. String? periodoApuracao
)

Valida período de apuração no formato AAAAMM

Retorna null se válido, ou uma mensagem de erro se inválido

Implementation

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

  // Verifica se tem exatamente 6 caracteres
  if (periodoApuracao.length != 6) {
    return 'Período de apuração deve ter formato AAAAMM';
  }

  // Verifica se são apenas números
  if (!RegExp(r'^\d{6}$').hasMatch(periodoApuracao)) {
    return 'Período de apuração deve conter apenas números no formato AAAAMM';
  }

  // Verifica se é um período válido
  final ano = int.parse(periodoApuracao.substring(0, 4));
  final mes = int.parse(periodoApuracao.substring(4, 6));

  if (ano < 2000 || ano > 2100) {
    return 'Ano do período deve estar entre 2000 e 2100';
  }

  if (mes < 1 || mes > 12) {
    return 'Mês do período deve estar entre 01 e 12';
  }

  return null;
}