validarPrazoEmissaoParcela static method

String? validarPrazoEmissaoParcela(
  1. int parcelaParaEmitir
)

Valida se a parcela está dentro do prazo para emissão

Implementation

static String? validarPrazoEmissaoParcela(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);

  // Parcela do mês corrente só pode ser emitida a partir do dia 1º
  if (parcelaData.year == hoje.year && parcelaData.month == hoje.month) {
    if (hoje.day < 1) {
      return 'O DAS da parcela do mês corrente só pode ser emitido a partir do dia 1º';
    }
  }

  // Parcela futura não pode ser emitida
  if (parcelaData.isAfter(DateTime(hoje.year, hoje.month))) {
    return 'Não é possível emitir DAS para parcelas futuras';
  }

  return null;
}