Ir para conteúdo
  • Cadastre-se

everson.turossi

Membros
  • Total de ítens

    206
  • Registro em

  • Última visita

Community Answers

  1. 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
  2. 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
  3. 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
     
  4. everson.turossi's post in Reimpressão do DACTe was marked as the answer   
    ACBrCTe.Conhecimentos.Clear; ACBrCTe.Conhecimentos.LoadFromString(VariavelStringComXML); ACBrCTe.Conhecimentos.Imprimir;  
  5. 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);  
  6. 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';  
  7. 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
  8. 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.
  9. 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
  10. 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.
  11. 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;  
  12. 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.
  13. 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.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.