atualizarBeneficio method
ATUBENEFICIO23 - Atualizar Benefício
Permite registrar benefício para determinada apuração do PGMEI
cnpj CNPJ do contribuinte MEI
anoCalendario Ano calendário no formato AAAA
beneficios Lista de informações de benefícios por período
contratanteNumero CNPJ da empresa contratante (opcional)
autorPedidoDadosNumero CPF/CNPJ do autor (opcional)
Implementation
Future<AtualizarBeneficioResponse> atualizarBeneficio({
String? cnpj,
required int anoCalendario,
required List<InfoBeneficio> beneficios,
String? contratanteNumero,
String? autorPedidoDadosNumero,
}) async {
final resolvedCnpj =
cnpj ??
_apiClient.contribuinteNumero ??
(throw ArgumentError('CNPJ do contribuinte é obrigatório'));
// Validações de entrada
ValidacoesUtils.validateCNPJ(resolvedCnpj);
// Valida ano (1900-2099)
if (anoCalendario < 1900 || anoCalendario > 2099) {
throw ArgumentError('Ano calendário deve estar entre 1900 e 2099');
}
// Verifica se não é ano muito futuro
final anoAtual = DateTime.now().year;
if (anoCalendario > anoAtual + 1) {
printW('Aviso: Ano calendário é futuro ($anoCalendario)');
}
final validacaoBeneficios = PgmeiValidations.validarInfoBeneficio(
beneficios,
);
if (validacaoBeneficios != null) throw ArgumentError(validacaoBeneficios);
// Criação dos dados de entrada
final requestData = AtualizarBeneficioRequest(
anoCalendario: anoCalendario,
infoBeneficio: beneficios,
);
// Montagem da requisição
final request = BaseRequest(
contribuinteNumero: resolvedCnpj,
pedidoDados: PedidoDados(
idSistema: 'PGMEI',
idServico: 'ATUBENEFICIO23',
versaoSistema: '1.0',
dados: requestData.toJsonString(),
),
);
// Chamada à API
final response = await _apiClient.post(
'/Emitir',
request,
contratanteNumero: contratanteNumero,
autorPedidoDadosNumero: autorPedidoDadosNumero,
);
return AtualizarBeneficioResponse.fromJson(response);
}