gerarDas method
GERARDASPDF21 - Gerar DAS com PDF completo
Gera o Documento de Arrecadação do Simples Nacional com PDF completo para contribuintes MEI (Microempreendedor Individual)
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<PgmeiGerarDasResponse> gerarDas({
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: 'GERARDASPDF21',
versaoSistema: '1.0',
dados: requestData.toJsonString(),
),
);
// Chamada à API
final response = await _apiClient.post(
'/Emitir',
request,
contratanteNumero: contratanteNumero,
autorPedidoDadosNumero: autorPedidoDadosNumero,
);
return PgmeiGerarDasResponse.fromJson(response);
}