gerarDasCodigoBarras method

Future<GerarDasCodigoBarrasResponse> gerarDasCodigoBarras({
  1. String? cnpj,
  2. required String periodoApuracao,
  3. String? dataConsolidacao,
  4. String? contratanteNumero,
  5. String? autorPedidoDadosNumero,
})

GERARDASCODBARRA22 - Gerar DAS apenas com código de barras

Gera o Documento de Arrecadação do Simples Nacional contendo apenas código de barras, sem PDF, para contribuintes MEI

cnpj CNPJ do contribuinte MEI periodoApuracao Período no formato AAAAMM dataConsolidacao Data de consolidação no formato AAAAMMDD (opcional) contratanteNumero CNPJ da empresa contratante (opcional) autorPedidoDadosNumero CPF/CNPJ do autor (opcional)

Implementation

Future<GerarDasCodigoBarrasResponse> gerarDasCodigoBarras({
  String? cnpj,
  required String periodoApuracao,
  String? dataConsolidacao,
  String? contratanteNumero,
  String? autorPedidoDadosNumero,
}) async {
  final resolvedCnpj =
      cnpj ??
      _apiClient.contribuinteNumero ??
      (throw ArgumentError('CNPJ do contribuinte é obrigatório'));
  // Validações de entrada
  ValidacoesUtils.validateCNPJ(resolvedCnpj);
  final validacaoPeriodo = PgmeiValidations.validarPeriodoApuracao(
    periodoApuracao,
  );
  if (validacaoPeriodo != null) throw ArgumentError(validacaoPeriodo);
  if (dataConsolidacao != null) {
    final validacao = PgmeiValidations.validarDataConsolidacao(
      dataConsolidacao,
    );
    if (validacao != null) throw ArgumentError(validacao);
  }

  // Criação dos dados de entrada
  final requestData = GerarDasRequest(
    periodoApuracao: periodoApuracao,
    dataConsolidacao: dataConsolidacao,
  );

  // Montagem da requisição
  final request = BaseRequest(
    contribuinteNumero: resolvedCnpj,
    pedidoDados: PedidoDados(
      idSistema: 'PGMEI',
      idServico: 'GERARDASCODBARRA22',
      versaoSistema: '1.0',
      dados: requestData.toJsonString(),
    ),
  );

  // Chamada à API
  final response = await _apiClient.post(
    '/Emitir',
    request,
    contratanteNumero: contratanteNumero,
    autorPedidoDadosNumero: autorPedidoDadosNumero,
  );

  return GerarDasCodigoBarrasResponse.fromJson(response);
}