consultarDeclaracoes method

Future<ConsultarDeclaracoesResponse> consultarDeclaracoes({
  1. String? contribuinteNumero,
  2. String? anoCalendario,
  3. String? periodoApuracao,
  4. String? contratanteNumero,
  5. String? autorPedidoDadosNumero,
})

Consultar declarações transmitidas por ano-calendário ou período de apuração

contribuinteNumero CNPJ do contribuinte anoCalendario Ano-calendário (formato: AAAA) - forneça este OU periodoApuracao periodoApuracao Período de apuração (formato: AAAAMM) - forneça este OU anoCalendario contratanteNumero CNPJ do contratante (opcional, usa dados da autenticação se não informado) autorPedidoDadosNumero CPF/CNPJ do autor do pedido (opcional, usa dados da autenticação se não informado)

Implementation

Future<ConsultarDeclaracoesResponse> consultarDeclaracoes({
  String? contribuinteNumero,
  String? anoCalendario,
  String? periodoApuracao,
  String? contratanteNumero,
  String? autorPedidoDadosNumero,
}) async {
  final resolvedContribuinte =
      contribuinteNumero ??
      _apiClient.contribuinteNumero ??
      (throw ArgumentError('CNPJ do contribuinte é obrigatório'));
  final consultaRequest = anoCalendario != null
      ? ConsultarDeclaracoesRequest.porAnoCalendario(anoCalendario)
      : ConsultarDeclaracoesRequest.porPeriodoApuracao(periodoApuracao!);

  if (!consultaRequest.isValid) {
    throw ArgumentError('Dados da consulta inválidos');
  }

  final baseRequest = BaseRequest(
    contribuinteNumero: resolvedContribuinte,
    pedidoDados: PedidoDados(
      idSistema: 'PGDASD',
      idServico: 'CONSDECLARACAO13',
      versaoSistema: '1.0',
      dados: consultaRequest.toJson().toString(),
    ),
  );

  final response = await _apiClient.post(
    '/Consultar',
    baseRequest,
    contratanteNumero: contratanteNumero,
    autorPedidoDadosNumero: autorPedidoDadosNumero,
  );
  return ConsultarDeclaracoesResponse.fromJson(response);
}