validarParcelaParaEmitir static method

String? validarParcelaParaEmitir(
  1. int? parcelaParaEmitir
)

Valida a parcela para emissão (formato AAAAMM)

Implementation

static String? validarParcelaParaEmitir(int? parcelaParaEmitir) {
  if (parcelaParaEmitir == null) {
    return 'Parcela para emitir é obrigatória';
  }

  final parcelaStr = parcelaParaEmitir.toString();
  if (parcelaStr.length != 6) {
    return 'Parcela para emitir deve ter 6 dígitos (AAAAMM)';
  }

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

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

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

  // Validação adicional: não pode ser uma parcela muito futura
  final hoje = DateTime.now();
  final parcelaData = DateTime(ano, mes);
  final limiteFuturo = DateTime(hoje.year + 2, hoje.month);

  if (parcelaData.isAfter(limiteFuturo)) {
    return 'Parcela não pode ser mais de 2 anos no futuro';
  }

  return null;
}