emitirDas method

Future<EmitirDasResponse> emitirDas(
  1. String? contribuinteNumero,
  2. int parcelaParaEmitir
)

Emite documento de arrecadação na modalidade PERTMEI

contribuinteNumero - CNPJ do contribuinte (obrigatório) parcelaParaEmitir - Ano e mês da parcela para emitir o DAS no formato AAAAMM (obrigatório)

Retorna PDF do DAS em formato base64 ou erro detalhado

Implementation

Future<EmitirDasResponse> emitirDas(
  String? contribuinteNumero,
  int parcelaParaEmitir,
) async {
  try {
    final resolvedContribuinte =
        contribuinteNumero ?? _apiClient.contribuinteNumero;
    // Validação dos dados obrigatórios
    if (resolvedContribuinte == null || resolvedContribuinte.isEmpty) {
      return EmitirDasResponse(
        status: '400',
        mensagens: [
          Mensagem(
            codigo: '[Erro-PERTMEI-VALIDATION]',
            texto: 'CNPJ do contribuinte é obrigatório',
          ),
        ],
        dados: null,
      );
    }

    if (parcelaParaEmitir < 202001 || parcelaParaEmitir > 209912) {
      return EmitirDasResponse(
        status: '400',
        mensagens: [
          Mensagem(
            codigo: '[Erro-PERTMEI-VALIDATION]',
            texto:
                'Parcela para emitir deve estar no formato AAAAMM (ex: 202306)',
          ),
        ],
        dados: null,
      );
    }

    final request = BaseRequest(
      contribuinteNumero: resolvedContribuinte,
      pedidoDados: PedidoDados(
        idSistema: 'PERTMEI',
        idServico: 'GERARDAS221',
        versaoSistema: '1.0',
        dados: jsonEncode({'parcelaParaEmitir': parcelaParaEmitir}),
      ),
    );

    final response = await _apiClient.post('/Emitir', request);
    return EmitirDasResponse.fromJson(response);
  } catch (e) {
    return EmitirDasResponse(
      status: '500',
      mensagens: [
        Mensagem(
          codigo: '[Erro-PERTMEI-INTERNAL]',
          texto: 'Erro interno: $e',
        ),
      ],
      dados: null,
    );
  }
}