validarPrazoEmissaoParcela static method

String? validarPrazoEmissaoParcela(
  1. int parcelaParaEmitir
)

Valida o prazo para emissão de uma parcela

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

Implementation

static String? validarPrazoEmissaoParcela(int parcelaParaEmitir) {
  final validacaoBasica = validarParcelaParaEmitir(parcelaParaEmitir);
  if (validacaoBasica != null) {
    return validacaoBasica;
  }

  final anoMesStr = parcelaParaEmitir.toString();
  final ano = int.parse(anoMesStr.substring(0, 4));
  final mes = int.parse(anoMesStr.substring(4, 6));

  final dataParcela = DateTime(ano, mes);
  final hoje = DateTime.now();
  final dataLimite = DateTime(hoje.year, hoje.month + 3); // 3 meses no futuro

  if (dataParcela.isAfter(dataLimite)) {
    return 'Parcela não pode ser emitida com mais de 3 meses de antecedência';
  }

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

  return null;
}