-
Total de ítens
206 -
Registro em
-
Última visita
Community Answers
-
everson.turossi's post in Implementação do evento 112150 - Atualização da Data de Previsão de Entrega was marked as the answer
Estou submetendo a implementação do evento 112150 - Atualização da Data de Previsão de Entrega adicionado através da NT2025_002 v1.30.
Para esse evento não existia um tipo Enum criado.
O Evento já foi homologado junto ao SVRS.
Toda via, em minhas alterações constam também as alterações feitas no post abaixo e o inicio da implementação da leitura dos dados atrávez de JSON
pcnConversao.pas pcnConversaoNFe.pas ACBrNFe.EventoClass.pas ACBrNFe.EnvEvento.pas ACBrNFe.Conversao.pas ACBrNFeWebServices.pas ACBrDFe.Conversao.pas
-
everson.turossi's post in Implementação para os eventos 112130 e 112140 e Leitura Json was marked as the answer
ACBrNFeWebServices.pas
pcnConversao.pas ACBrDFe.Conversao.pas pcnConversaoNFe.pas ACBrNFe.Conversao.pas ACBrNFe.EventoClass.pas ACBrNFe.EnvEvento.pas
ACBrNFeWebServices.pas
pcnConversao.pas ACBrDFe.Conversao.pas pcnConversaoNFe.pas ACBrNFe.Conversao.pas ACBrNFe.EventoClass.pas ACBrNFe.EnvEvento.pas
Estou anexando implementações para os eventos
112130 Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor
112140 Fornecimento não realizado com pagamento antecipado
Essas implementações contém o que já foi implementados nos tópicos abaixo e também leitura de alguns eventos em Json.
Os 4 eventos implementados foram gerados e transmitidos com sucesso para o Sefaz.
Para as implementações de leitura dos dados através de Json em eventos já implementados, também foram homologados no Sefaz (implementação seguindo ao padrão do XSD).
https://www.projetoacbr.com.br/forum/topic/87185-implementação-do-evento-112150-atualização-da-data-de-previsão-de-entrega/
https://www.projetoacbr.com.br/forum/topic/87048-cancelamento-de-evento-110001-divergência-entre-nt-e-schema-na-descrição-do-evento/
Segue lista de alterações por unit aplicadas nos 3 tópicos aberto
ACBrNFe.EnvEvento.pas e ACBrNFe.WebServices.pas
Implementado geração de XML para os tipos:
teAtualizacaoDataPrevisaoEntrega
tePerecPerdaRouboFurtoTranspContratFornec
teFornecNaoRealizPagAntec
teAceiteDebitoApuracaoNotaCredito
ACBrNFe.EnvEvento.pas
Implementado leitura para Json para os tipos:
teCancGenerico
tePagIntegLibCredPresAdq
teDestItemConsPessoal
teAceiteDebitoApuracaoNotaCredito
teAtualizacaoDataPrevisaoEntrega
tePerecPerdaRouboFurtoTranspContratFornec
teFornecNaoRealizPagAntec
teSolicApropCredPres
tePerecPerdaRouboFurtoTranspContratAqu
teImobilizacaoItem
teSolicApropCredBensServicos
ACBrDFe.Conversao.pas
TACBrTipoEvento adicionado teAtualizacaoDataPrevisaoEntrega
TACBrTipoEventoArrayStrings adicionado 112150
TACBrTipoEventoDescricaoArrayStrings AtualizacaoDataPrevisaoEntrega
TryStrTocCredPres ajustado para adicionar zero a esquerda se tiver apenas 1 digito (adicionado uses ACBrUtil.Strings)
ACBrNFe.Conversao.pas
TSchemaNFe adicionado schAtualizacaoDataPrevisaoEntrega
TSchemaNFeArrayStrings adicionado AtualizacaoDataPrevisaoEntrega
TEventoArrayStrings adicionado e212120
TIndAceitacao e TIndAceitacaoArrayStrings novo Enum e seus valores utilizados nos eventos 211128, 212110 e 212120
IndAceitacaoToStr e StrToIndAceitacao conversão para TIndAceitacao
StrToTpEventoNFe adicionado 110001, 212120, teCancGenerico, teAtualizacaoDataPrevisaoEntrega
SchemaEventoToStr adicionado e110001, e112150, schCancGenerico, schAtualizacaoDataPrevisaoEntrega
pcnConversao.pas
adicionado teAtualizacaoDataPrevisaoEntrega nas constantes
TpcnTpEventoString adicionado 112150
TpEventoToDescStr adicionado AtualizacaoDataPrevisaoEntrega e teAtualizacaoDataPrevisaoEntrega
pcnConversaoNFe.pas
TSchemaNFe adicionado schAtualizacaoDataPrevisaoEntrega
TSchemaNFeArrayStrings adicionado AtualizacaoDataPrevisaoEntrega
TEventoArrayStrings adicionado e212110 e212120
adicionado TIndAceitacao e TIndAceitacaoArrayStrings
adicionado IndAceitacaoToStr e StrToIndAceitacao
StrToTpEventoNFe 110001, 112150, teCancGenerico, teAtualizacaoDataPrevisaoEntrega,
SchemaEventoToStr e110001, e112150, schCancGenerico, schAtualizacaoDataPrevisaoEntrega
ACBr.EventoClass.pas
Adicionado classe TgItemNaoFornecidoCollectionItem
adicionado classe TgItemNaoFornecidoCollection
TgControleEstoquePerecimento adicionado FvIBS e FvCBS
TDetEvento adicionado gItemNaoFornecido indAceitacao dPrevEntrega
getDescEvento/DescricaoTipoEvento ajuste descrição teCancGenerico e adicionado descrição para teAtualizacaoDataPrevisaoEntrega
Usei o recurso de arrastar e soltar, acabou invertendo a ordem entre o post e os arquivos
-
everson.turossi's post in Access Violation dsnap260.bpl was marked as the answer
Deve estar com uma versão antiga da Midas.dll em algum lugar
-
everson.turossi's post in Reimpressão do DACTe was marked as the answer
ACBrCTe.Conhecimentos.Clear; ACBrCTe.Conhecimentos.LoadFromString(VariavelStringComXML); ACBrCTe.Conhecimentos.Imprimir;
-
everson.turossi's post in Certificado A1: DadosPFX não são válidos was marked as the answer
Eu cheguei a ler em algum tópico onde era aconselhado converter o conteúdo do certificado pra Base64 e guardar no banco de dados. Tenta da seguinte forma:
// Armazenar cdsCertifDADOS_PFX.AsAnsiString := EncodeBase64(LerCertificado('...')); // uses synacode // Ler vACBrNFe.Configuracoes.Certificados.DadosPFX := DecodeBase64(cdsCertifDADOS_PFX.AsAnsiString);
-
everson.turossi's post in Assinar NFe com ACBr usando string do certificado. was marked as the answer
Tenta dessa forma, passando o caminho do .pfx como parâmetro
function GetCertificado(APFXFile: String): AnsiString; var FS: TFileStream; begin FS := TFileStream.Create(APFXFile, fmOpenRead); try Result := ReadStrFromStream(FS, FS.Size); // de USES no pacote synautil finally FS.Free; end; end; ACBrNFe1.Configuracoes.Certificados.DadosPFX := GetCertificado('c:\certificado.pfx'); ACBrNFe1.Configuracoes.Certificados.Senha := 'senha';
-
everson.turossi's post in Falha na validação dos dados da nota utilizando CST 60 was marked as the answer
Momento, vou anexar uma Unit para teste.
Testa com essa.
pcnNFeW.pas
-
everson.turossi's post in Erro ao Gerar Nfe - Element '{http://www.portalfiscal.inf.br/nfe}pST': This element is not expected. Expected is ( {http://www.portalfiscal.inf.br/nfe}vICMSSTRet ). was marked as the answer
Se está com os fontes atualizados e utilizando em produção talvez tenha ajustar a unit pcnNFeW.pas. Tenta o seguinte, localiza na unit o seguinte código do case que gera para cstRep41 e cstRep60
if (NFe.infNFe.Versao >= 4) then begin Gerador.wCampo(IIf(FUsar_tcDe4,tcDe4,tcDe2), 'N26a', 'pST', 01, IIf(FUsar_tcDe4,07,05), 1, nfe.Det[i].Imposto.ICMS.pST, DSC_PST); if (NFe.Ide.tpAmb = taHomologacao) or (NFe.Ide.dEmi > EncodeDate(2019, 04, 29)) then Gerador.wCampo(tcDe2, 'N26b', 'vICMSSubstituto', 01, 15, 1, nfe.Det[i].Imposto.ICMS.vICMSSubstituto, DSC_VICMSSUBSTITUTO); end; E Altera por:
if (NFe.infNFe.Versao >= 4) then begin if (NFe.Ide.tpAmb = taHomologacao) or (NFe.Ide.dEmi > EncodeDate(2019, 04, 29)) then begin Gerador.wCampo(IIf(FUsar_tcDe4,tcDe4,tcDe2), 'N26a', 'pST', 01, IIf(FUsar_tcDe4,07,05), 1, nfe.Det[i].Imposto.ICMS.pST, DSC_PST); Gerador.wCampo(tcDe2, 'N26b', 'vICMSSubstituto', 01, 15, 1, nfe.Det[i].Imposto.ICMS.vICMSSubstituto, DSC_VICMSSUBSTITUTO); end; end; Lembrando que se alterar o ambiente continua se fazendo necessário a substituição do arquivo leiauteNFe_v4.00 para o ambiente em questão.
-
everson.turossi's post in Consulta Cadastro não funciona em MG versão 4.0 was marked as the answer
Webservice de consulta de cadastro versão 4.00 para MG funcionando.
Em caso de exceção por Timeout, aumentar o tempo consideravelmente.
ACBrNFeServicos.ini
ACBrNFeWebServices.pas
-
everson.turossi's post in Descomprimir XML retornado pela Sefaz. was marked as the answer
var LDocZip: TdocZipCollectionItem; begin {...} for I := 0 to Pred(ACBrCTe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count) do begin LDocZip := ACBrCTe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[I]; XML := LDocZip.XML; if (LDocZip.schema = schprocCTe) then begin ChaveAcesso := LDocZip.resCTe.chCTe; CnpjEmitente := LDocZip.resCTe.CNPJCPF; NomeEmitente := LDocZip.resCTe.xNome; ValorDocumento := LDocZip.resCTe.vNF; {...} end; if (LDocZip.schema = schprocEventoCTe) then begin { evento como cancelamento } ChaveAcesso := LDocZip.procEvento.chCTe; CnpjEmitente := LDocZip.procEvento.CNPJ; DataEvento := LDocZip.procEvento.dhEvento; Descricao := TpEventoToStr(LDocZip.procEvento.tpEvento) + ' - ' + LDocZip.procEvento.detEvento.descEvento; {...} end; end;
Componente já faz tudo, segue um exemplo de como acessar os dados após a consulta.
-
everson.turossi's post in Loop entre os certificados was marked as the answer
Tenta assim:
var I: integer; begin ACBrNFe1.SSL.ListaCertificados.Clear; ACBrNFe1.SSL.LerCertificadosStore; For I := 0 to ACBrNFe1.SSL.ListaCertificados.Count-1 do begin LOG.Lines.Add('Encontrado!'); LOG.Lines.Add(ACBrMDFe1.SSL.ListaCertificados[I].CNPJ); end; end;
-
everson.turossi's post in Provedor recebe RPS mais não tenho retorno was marked as the answer
Infelizmente é isso mesmo, vai ter que utilizar o método ACBrNFSe.WebServices.ConsultaNFSeporRps(...) alguns segundos após o envio para o webservice.
-
everson.turossi's post in Grupo Duplicatas was marked as the answer
O grupo Dup teve sua descrição alterada de Duplicata para Parcela assim como as demais tags desse grupo. Estou fazendo testes tem Homologação nos servidores do RS e está aceitando sempre que houver pagamento.
