Foi enviado para o repositório as mudanças que incluem os eventos dos documentos fiscais. São eles: Carta de correção, Cancelamento, Manifestação do Destinatário, EPEC (Evento Prévio de Emissão em Contingência), Pedido de Prorrogação, Ator Interessado na NF-e.
Lembrando que esses eventos são tratados em um único lugar, mudando apenas o tipo de evento em tpEvento e os campos necessários que cada evento exige. Cada lote aceita um total de 20 eventos.
Exemplo de carta de correção 💡
//limpando qualquer evento emitido anteriormente
m_nfe->eventos->envEvento->clear();
QString _xCondUso = "A Carta de Correcao e disciplinada pelo paragrafo 1o-A do art. ";
_xCondUso += "7o do Convenio S/N, de 15 de dezembro de 1970 e pode ser utilizada ";
_xCondUso += "para regularizacao de erro ocorrido na emissao de documento fiscal, ";
_xCondUso += "desde que o erro nao esteja relacionado com: I - as variaveis que ";
_xCondUso += "determinam o valor do imposto tais como: base de calculo, aliquota, ";
_xCondUso += "diferenca de preco, quantidade, valor da operacao ou da prestacao; ";
_xCondUso += "II - a correcao de dados cadastrais que implique mudanca do remetente ";
_xCondUso += "ou do destinatario; III - a data de emissao ou de saida.";
//m_nfe->eventos->envEvento->evento->obj->set_versao("4.00"); //caso não informe será a ultima versão vigente
m_nfe->eventos->envEvento->evento->obj->infEvento->set_tpEvento(TpEvento::CartaCorrecao);
m_nfe->eventos->envEvento->evento->obj->infEvento->set_chNFe("11220813304036000100550010000000281293823335");
m_nfe->eventos->envEvento->evento->obj->infEvento->set_cOrgao(11);
m_nfe->eventos->envEvento->evento->obj->infEvento->set_CNPJ("12345678910111");
m_nfe->eventos->envEvento->evento->obj->infEvento->set_dhEvento(QDateTime::currentDateTime());
m_nfe->eventos->envEvento->evento->obj->infEvento->set_nSeqEvento(1);
m_nfe->eventos->envEvento->evento->obj->infEvento->detEvento->set_descEvento("Carta de Correcao");
m_nfe->eventos->envEvento->evento->obj->infEvento->detEvento->set_xCorrecao("Teste de carta de correcao");
m_nfe->eventos->envEvento->evento->obj->infEvento->detEvento->set_xCondUso(_xCondUso);
m_nfe->eventos->envEvento->evento->add();
//vinculando nota
//obs: A vinculação serve, apenas, para atualizar o xml carregado com o evento transmitido.
//Você pode, também, pegar os dados acima do xml carregado, mas para isso deverá carrega-lo antes de completar o código acima.
m_nfe->notafiscal->loadFromFile("/home/user/xml/nfe/202208/11220813304036000100550010000000281293823335-nfe.xml");
//enviarEvento(numeroDoLote, vincularxml, salvarNotaVinculada)
//obs: salvar nota vinculada, salvará automáticamente o xml atualizado na pasta que foi configurada em configurações. Caso false, não será salvo automaticamente e você poderá salvar onde desejar.
int nLote = 1;
if (m_nfe->eventos->envEvento->enviarEvento(nLote, true, true))
{
QString _retEvento;
_retEvento = "Lote do Evento \n";
_retEvento += "idLote: " + QString::number(m_nfe->eventos->envEvento->retorno->get_idLote()) +"\n";
_retEvento += "tpAmb: " + ConvNF::tpAmbToStr(m_nfe->eventos->envEvento->retorno->get_tpAmb()) +"\n";
_retEvento += "verAplic: " + m_nfe->eventos->envEvento->retorno->get_verAplic() +"\n";
_retEvento += "cOrgao: " + QString::number(m_nfe->eventos->envEvento->retorno->get_cOrgao()) +"\n";
_retEvento += "cStat: " + QString::number(m_nfe->eventos->envEvento->retorno->get_cStat()) +"\n";
_retEvento += "xMotivo: " + m_nfe->eventos->envEvento->retorno->get_xMotivo() +"\n";
_retEvento += "-----------Evento----------- \n";
for (int i = 0; i < m_nfe->eventos->envEvento->retorno->retEvento->items->count(); ++i) {
_retEvento += "tpAmb: " + ConvNF::tpAmbToStr(m_nfe->eventos->envEvento->retorno->retEvento->items->value(i)->infEvento->get_tpAmb()) +"\n";
_retEvento += "verAplic: " + m_nfe->eventos->envEvento->retorno->retEvento->items->value(i)->infEvento->get_verAplic() +"\n";
_retEvento += "cOrgao: " + QString::number(m_nfe->eventos->envEvento->retorno->retEvento->items->value(i)->infEvento->get_cOrgao()) +"\n";
_retEvento += "cStat: " + QString::number(m_nfe->eventos->envEvento->retorno->retEvento->items->value(i)->infEvento->get_cStat()) +"\n";
_retEvento += "xMotivo: " + m_nfe->eventos->envEvento->retorno->retEvento->items->value(i)->infEvento->get_xMotivo() +"\n";
_retEvento += "chNFe: " + m_nfe->eventos->envEvento->retorno->retEvento->items->value(i)->infEvento->get_chNFe() +"\n";
_retEvento += "tpEvento: " + ConvNF::tpEventoToStr(m_nfe->eventos->envEvento->retorno->retEvento->items->value(i)->infEvento->get_tpEvento()) +"\n";
_retEvento += "nSeqEvento: " + QString::number(m_nfe->eventos->envEvento->retorno->retEvento->items->value(i)->infEvento->get_nSeqEvento()) +"\n";
_retEvento += "dhRegEvento: " + CppUtil::dateTimeToStr(m_nfe->eventos->envEvento->retorno->retEvento->items->value(i)->infEvento->get_dhRegEvento(), DtH::DateTimeBr) +"\n";
}
qInfo() << _retEvento;
}