validarParcelaDisponivelParaEmissao static method

String? validarParcelaDisponivelParaEmissao(
  1. int parcelaParaEmitir
)

Valida se a parcela está disponível para emissão

Implementation

static String? validarParcelaDisponivelParaEmissao(int parcelaParaEmitir) {
  final hoje = DateTime.now();
  final parcelaStr = parcelaParaEmitir.toString();

  if (parcelaStr.length != 6) {
    return 'Formato de parcela inválido';
  }

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

  // Verifica se a parcela não é muito antiga (mais de 5 anos)
  final limiteAntigo = DateTime(hoje.year - 5, hoje.month);
  if (parcelaData.isBefore(limiteAntigo)) {
    return 'Parcela muito antiga para emissão';
  }

  // Verifica se a parcela não é muito futura (mais de 1 ano)
  final limiteFuturo = DateTime(hoje.year + 1, hoje.month);
  if (parcelaData.isAfter(limiteFuturo)) {
    return 'Parcela muito futura para emissão';
  }

  return null;
}