-
Total de ítens
189 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que nolher postou
-
Bom dia pessoal! Se puderem conceder uma atenção nesse problema, eu lhes agradeço! Estou finalizando a implementação da versão 3.00 e estou pendente somente nesse quesito. Pessoal até tentei corrigir aqui, mas não entendi a nova codificação. O problema é quando a quantidade de CT-e/NF-e no MDF-e ultrapassa o que pode ser impresso em uma unica pagina, isto é, a quantidade de CT-e/NF-e não cabe apenas em uma página, tenho clientes que fazem isso e não poderei liberar desta forma. Na versão anterior isso era possível! Certo da atenção de sempre, antecipo agradecimentos, Atenciosamente,
-
Bom dia! Ainda aguardo parecer de nossos moderadores Desde já agradecemos a atenção, Atenciosamente,
- 7 replies
-
- obternomearquivo
- nome de arquivo
- (e 2 mais)
-
Bom dia pessoal! Estou com esse mesmo problema. Me desculpem, tente entender as informações postadas assim e não consegui entender! Percebi que o problema é na validação, isto é, antes de ir pro SEFAZ correto? Qual é o procedimento adotado para solução do mesmo? Mais uma vez certo de suas atenção, Antecipamos agradecimentos,
-
Bom dia a todos, Estamos realizando os testes de emissão do DAMDFe na versão 3.00. Encontra uma falha ao imprimir mais de uma página. Temos cliente que emite muitos CT-e e na impressão não está imprimindo as chaves na primeira página, e emitindo todas as chaves na segunda mesmo não cabendo. segue em anexo xml 31170421912781000160580010000001031000000082-mdfe.xml e pdf Manifesto Eletrônico de Documentos Fiscais - MDF-e.pdf do teste realizado. tentamos resolver mas tivemos dificuldades de entender o funcionamento dessa nova versão. Certo de suas atenção, Atenciosamente,
-
Bom dia! Italo! Como vc pode observar foi implantado as duas opções, sendo assim não muda o formato que existe hoje! Apenas adiciona a possibilidade de ter essa outra possibilidades de ter esse outro formato, com já debatemos aqui em outra época, qual nomenclatura usar é questão de interpretação, não si se lembra mas chegamos até ver com o SEFAZ. Veja o tópico: Não é uma alteração que irá prejudicar o bom funcionamento do componente, mas irá nos beneficiar por demais pois toda alteração de componente temos que repassar todas essas alterações simplesmente para reimplementa-lá! Sendo assim peço encarecidamente que publique nossas implementações. Certo de vossa atenção antecipo agradecimentos, Atenciosamente,
- 7 replies
-
- obternomearquivo
- nome de arquivo
- (e 2 mais)
-
Boa tarde a todos! Como não obtive resposta sobre meu tópico realizei a devidas implementações e gostaria que seja publicado. Segue em anexo a classes alteradas: 1- Alterado classe da pasta ACBr\Fontes\ACBrDFe\ACBrCTe\PCNCTe 1.1- Unit pcteConversaoCTe.pas, apenas criado um enumerator TModeloCTe = (moCTe, moCTeOS); TVersaoCTe = (ve200, ve300); TpctePadraoNome = (tpnPublico, tpnPrivado); TpcteFormaPagamento = (fpPago, fpAPagar, fpOutros); TpcteTipoCTe = (tcNormal, tcComplemento, tcAnulacao, tcSubstituto); TpcteTipoServico = (tsNormal, tsSubcontratacao, tsRedespacho, tsIntermediario, 1.2- Unit pcteProcCTe.pas 1.2.1- Eliminado o enumerator TPcnPadraoNomeProcCTe 1.2.2- Troco a declaração do enumerator TPcnPadraoNomeProcCTe por TpctePadraoNomepor(utilizando da unit pcteConversaoCTe.pas que é padrão) 1.3- Unit pcteRetEnvEventoCTe.pas criado o procedimento ObterNomeArquivo 1.4- Unit pcteRetInutCTe.pas criado o procedimento ObterNomeArquivo 2- Alterado classe da pasta ACBr\Fontes\ACBrDFe\ACBrCTe 2.1- Unit ACBrCTeConfiguracoes.pas criado a propriedade PadraoNome 2.2- Unit ACBrCTeWebServices.pas implementado os procedimentos para definir o nome do arquivo xml através do procedimento ObterNomeArquiv e propriedade PadraoNome 2.2.1- Xml protocolado: // Salva o XML do CT-e assinado e protocolado if SalvarXML then begin NomeXMLSalvo := CTe.procCTe.ObterNomeArquivo(FPConfiguracoesCTe.Arquivos.PadraoNome); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if NaoEstaVazio(NomeArq) and FileExists(NomeArq) then begin FPDFeOwner.Gravar( NomeArq, XMLOriginal ); // Atualiza o XML carregado NomeXMLSalvo := NomeArq; end; // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if (NomeXMLSalvo <> CalcularNomeArquivoCompleto()) then GravarXML(NomeXMLSalvo); // Salva na pasta baseado nas configurações do PathCTe end; 2.2.2- Gravação do xml a partir da consulta if (FRetCTeDFe <> '') {and FPConfiguracoesCTe.Geral.Salvar} then FPDFeOwner.Gravar( FCTeChave + '-CTeDFe.xml', FRetCTeDFe, sPathCTe); // Salva o XML do CT-e assinado e protocolado NomeXMLSalvo := CTeRetorno.protCTe.ObterNomeArquivo(tpnPublico); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if NaoEstaVazio(NomeArq) and FileExists(NomeArq) then begin FPDFeOwner.Gravar( NomeArq, XMLOriginal ); // Atualiza o XML carregado NomeXMLSalvo := NomeArq; end; // Salva na pasta baseado nas configurações do PathCTe if (NomeXMLSalvo <> CalcularNomeArquivoCompleto()) then GravarXML(NomeXMLSalvo); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo 2.2.3- Gravação do xml da Inutilização FNomeArquivo := PathWithDelim(GerarPathPorCNPJ) + CTeRetorno.ObterNomeArquivo(FPConfiguracoesCTe.Arquivos.PadraoNome); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if FPConfiguracoesCTe.Arquivos.Salvar then FPDFeOwner.Gravar(FNomeArquivo, FXML_ProcInutCTe, GerarPathPorCNPJ); 2.2.4- Gravação de xml de Eventos if FPConfiguracoesCTe.Arquivos.Salvar then begin NomeArq := EventoRetorno.ObterNomeArquivo(EventoRetorno.retEvento.Items[j].RetInfEvento.tpEvento, FPConfiguracoesCTe.Arquivos.PadraoNome); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo PathArq := PathWithDelim(GerarPathEvento(FEvento.Evento.Items.InfEvento.CNPJ)); FPDFeOwner.Gravar(NomeArq, Texto, PathArq); FEventoRetorno.retEvento.Items[J].RetInfEvento.NomeArquivo := PathArq + NomeArq; FEvento.Evento.Items.RetInfEvento.NomeArquivo := PathArq + NomeArq; end; Foram alterações pontuais e de fácil entendimento, sendo assim solicito a atualização em breve. Sem mais para o momento, Atenciosamente;
- 7 replies
-
- obternomearquivo
- nome de arquivo
- (e 2 mais)
-
Bom dia a todos! Estou tentando implementar um procedimento existente no ACBrCTe e estou com algumas dificuldades, e se possível gostaria de ajuda. Existe uma procedimento chamado "ObterNomeArquivo", gostaria de ter uma auxilio para usa-lá, e implementar em todas a geração de arquivos xml. Gostaria ter uma auxílio para melhor utilizar e poder publicar, pois havia criado procedimentos nossos aqui e toda mudança de versão temos um enorme trabalho para entender o código e saber onde colocar nossas implementações, mas vimos que com esse procedimento resolvem nosso problema. Vamos, lá estou atuando na classe "ACBrCTeWebServices" implementei na parte do código onde grava o xml protocolado: with FConhecimentos.Items[J] do begin XMLOriginal := AProcCTe.Gerador.ArquivoFormatoXML; CTe.procCTe.Versao := AProcCTe.Versao;// Alterado por Nilton Olher em 11/04/2016 - Implementado porque no procedimento ObterNomeArquivo a versão não estava chegando if FPConfiguracoesCTe.Arquivos.Salvar then begin SalvarXML := (not FPConfiguracoesCTe.Arquivos.SalvarApenasCTeProcessados) or Processado; // Salva o XML do CT-e assinado e protocolado if SalvarXML then begin NomeXMLSalvo := CTe.procCTe.ObterNomeArquivo(tpnPublico); // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if NaoEstaVazio(NomeArq) and FileExists(NomeArq) then begin FPDFeOwner.Gravar( NomeArq, XMLOriginal ); // Atualiza o XML carregado NomeXMLSalvo := NomeArq; end; // Alterado por Nilton Olher em 11/04/2016 - para usar nome padrão manual CT-e para os arquivos de protocolo if (NomeXMLSalvo <> CalcularNomeArquivoCompleto()) then GravarXML(NomeXMLSalvo); // Salva na pasta baseado nas configurações do PathCTe end; end; O procedimento ObterNomeArquivo esta na classe "ProcCTe" da seguinte forma: function TProcCTe.ObterNomeArquivo(const PadraoNome: TPcnPadraoNomeProcCTe = tpnPrivado): String; begin Result := FchCTe + '-procCTe.xml'; if PadraoNome = tpnPublico then begin Result := FnProt + '_v' + FVersao + '-procCTe.xml'; // Modificado de Versao para FVersao para serguir o FnProt. end; end; O mesmo procedimento ObterNomeArquivo esta nas classes Gostaria de saber de nossos moderadores, os seguintes detalhes: 1- Se posso trabalhar nessa linha e poder publica-lá ou se tem outras ideias; 2- Se há possibilidades de inserir como propriedade do componente esse parâmetro "PadraoNome"; 3-E se podemos implementar esse procedimento ObterNomeArquivo para as demais classe tento em vista que esta somente na classe "ProcCTe" e temos as classes "TRetInutCTe", Certo de sua atenção antecipamos agradecimentos, Sem mais para o momento,
- 7 replies
-
- obternomearquivo
- nome de arquivo
- (e 2 mais)
-
Bom dia! Pesquisei no forum informações sobre o "ProcCTe" em específico a função "ObterNomeArquivo" e não obtive informações, como já tínhamos esse tópico ainda em aberto resolvi colocar no mesmo! Bom, estou atualizando o ACBr para nos preparar para o CTe 3.00, e me voltei a uma velho problema em relação a nomeclatura, não necessariamente precisamos voltar a esse dilema, apenas identifiquei que há a classe situada acima e com a função "ObterNomeArquivo" que faz exatamente o que precisamos, só não consegui identificar como utiliza-lá, tem como me oferecer um auxilio? Dentro do componente como ativo essa classe com essa função? desde já antecipo agradecimentos,
-
Valeu, muito obrigado pela atenção!
-
Boa tarde! Daniel eu vi no tópico falando do arquivo "SAT_Bematech_senha-123456" o qual não consegui baixa-lo! Por isso perguntei si há outra de DLL bematech. Mas, estudando o programa teste da ACBr percebi que utilizando que setando o Modelo para satDinamico_cdecl ocorre o mesmo problema, enquanto se setar o Modelo para satdDinamico_stdcal não ocorre. Poderiam me oferecer uma orientação melhor entre esses dois modelos, e o principal qual realmente é indicado para trabalhar com o equipamento SAT bematech Sem mais para o momento, antecipamos agradecimentos. Atenciosamente,
-
Boa tarde a todos! Estramos trabalhando em um aplicação nossa em Delphi XE! A aplicação esta funcionando perfeitamente no emulador! Quando colocamos para se comunicar com o equipamento SAT Bematech, não estamos conseguindo obter os resultados. O retorno inserido em uma variável AnsiString, simplesmente esta sendo limpa em um determinando momento e ocorre erro de memoria. Vi aqui no forum que existe uma outra Dll fornecida pela Bematech, mas não consegui fazer o download dela. Essa dll ainda esta disponível? É possível nos enviar? Existe alguma outra dica que possa nos oferecer? Sem mais para o momento, Atenciosamente,
-
Bom dia, a todos! Alguém chegou a verificar essa questão acima? Tem alguma informação para nós? Pode ser alterado? Atenciosamente,
-
Bom dia, boa tarde e boa noite! Conforme for a hora pra todos. Pessoal estamos com CT-e e MDF-e em produção, e fomos questionados pela mudança de mascara da Chave de Acesso, e gostaria de questionar o motivo desta mudança. Em Trunk1 (ACBrCTeUtil) havia a seguinte função de Mascarar a Chave de Acesso: class function CTeUtil.FormatarChaveAcesso(AValue: String; Mascara: Boolean = False ): String; begin AValue := DFeUtil.LimpaNumero(AValue); if Mascara then Result := copy(AValue,1,2) + '-' + copy(AValue,3,2) + '/' + copy(AValue,5,2) + '-' + copy(AValue,7,2) + '.' + copy(AValue,9,3) + '.' + copy(AValue,12,3) + '/' + copy(AValue,15,4) + '-' + copy(AValue,19,2) + '-' + copy(AValue,21,2) + '-' + copy(AValue,23,3) + '-' + copy(AValue,26,3) + '.' + copy(AValue,29,3) + '.' + copy(AValue,32,3) + '-' + copy(AValue,35,1) + '-' + copy(AValue,36,2) + '.' + copy(AValue,38,3) + '.' + copy(AValue,41,3) + '-' + copy(AValue,44,1) else Result := copy(AValue,1,4) + ' ' + copy(AValue,5,4) + ' ' + copy(AValue,9,4) + ' ' + copy(AValue,13,4) + ' ' + copy(AValue,17,4) + ' ' + copy(AValue,21,4) + ' ' + copy(AValue,25,4) + ' ' + copy(AValue,29,4) + ' ' + copy(AValue,33,4) + ' ' + copy(AValue,37,4) + ' ' + copy(AValue,41,4); end; Em Trunk2 (ACBrDFeUtil) há a seguinte função de Mascarar a Chave de Acesso: function FormatarChaveAcesso(AValue: String): String; var I: Integer; begin AValue := OnlyNumber(AValue); I := 1; Result := ''; while I < Length(AValue) do begin Result := Result+copy(AValue,I,4)+' '; Inc( I, 4); end; Result := Trim(Result); end; O porque dessa mudança e porque tirou a opção da primeira mascara. Certo de vossas atenção, antecipo agradecimentos, Atenciosamente
-
Bom dia Italo, Desculpe a demora para retorno. Estamos utilizando os serviços de transmissão, cancelamento e consulta e esse 3 serviços para o provedor GovDigital esta 100% . Qualquer dúvida estamos a disposição. Mais uma vez, agradecemos o empenho, atenção e paciência, principalmente sua, mas se estendendo a toda a equipe ACBr. Atenciosamente,
-
Bom dia, Italo. Me desculpe pela demora de resposta. Realizei uma unica modificação na unit ACBrNFSeWebServices.pas, na linha 969 e 974: if (FProvedor in [proInfisc, proGovDigital]) then FProtocolo := FRetornoNFSe.ListaNFSe.CompNFSe[0].NFSe.Protocolo; Pois o número do protocolo esta por fora do xml de retorno. Sem mais para o momento, Agradeço a atenção Atenciosamente,
-
Bom dia, Italo. Bom, como havia lhe falado, as diferenças do arquivo INI, eram orientações da Prefeitura de Divinópolis junto com a empresa responsável pelo software da prefeitura. Mas realizei um teste abortando tudo isso, e coloquei o arquivo INI exatamente como foi disponibilizado por vocês. Aí realmente deu certo, o meu receio era de que poderia atrapalhar o que já estava funcionando e que era mais importante pra nós que seria a transmissão. Mas agora deu tudo certo. Me desculpe os transtornos que possa ter causado. E muitíssimo obrigado por sua atenção de sempre, Atenciosamente,
-
Sim, Italo. As diferenças aí, são orientações da Prefeitura de Divinópolis junto com a empresa responsável pelo software da prefeitura. Inclusive o envio esta funcionando normalmente, e até mesmo o serviço de cancelamento também esta funcionando, a única falha é que não consigo obter a resposta. Tem aqui inclusive os xml gerado de envio e cancelamento.
-
Sim, Italo, Estou lhe enviando em anexo. 2020A-comp-nfse-soap.xml Italo, Você precisa são do que foi enviado certo? Esta em anexo também o XML base do envio. 2020A-con-nfse-rps.xml 2020A-con-nfse-rps-soap.xml
-
Italo, Já realizei esse teste e sim, ocorre esse mesmo erro. Em anexo o xml 2020A-comp-nfse.xml de retorno da consulta. Como sempre, lhe agradeço sua atenção, E no aguardo de alguma orientação, Atenciosamente,
-
Boa tarde Italo, O problema inicial realmente veio do cancelamento. Pois após o envio do cancelamento, o componente esta realizando uma consulta, para obter as informações de resposta deste cancelamento e aí onde esta ocorrendo a falha. Em minha verificação e analise verifiquei que o problema esta especifica na consulta, sendo assim foquei na consulta para tentar resolver. Inclusive na versão anterior (Trunk1) não usava a consulta no cancelamento, se houver alguma forma de contorna essa situação não realizando a consulta já me ajudaria bastante. Como sempre, lhe agradeço sua atenção, E no aguardo de alguma orientação, Atenciosamente, _____________________________ Nilton Olher Serafim Analista de Sistema Email: [email protected] Skype: nolher
-
Boa tarde Italo, Buscando soluções aqui, e até mesmo junto ao forum da empresa que presta serviço para prefeitura de Divinópolis, consegui apenas a seguinte informação: Em anexo temos o XML gerado pela ACBr 21072A-con-nfse-rps.xml e o XML que eles afirmam que deveria ser enviado seria baseado no Base de Consulta NFSe.xml . A principal diferença que vejo no xml deles é "<ConsultarNfseRpsEnvio xmlns="http://www.abrasf.org.br/nfse.xsd"xmlnsig="http://www.w3.org/2000/09/xmldsig#"> " e no do componente é "<ConsultarNfseRpsEnvio xmlns="http://www.abrasf.org.br/nfse.xsd">" O que vocês acham desse analise, faz algum sentindo? Mais uma vez muito obrigado por sua atenção. Atenciosamente, _____________________________ Nilton Olher Serafim Analista de Sistema Email: [email protected] Skype: nolher
-
Boa noite Italo, Foi realizado as atualizações, e sim estamos no Trunk2! A transmissão esta tudo correto. O único problema esta no cancelamento. Mais uma vez muito obrigado por sua atenção.
-
Bom dia, Italo. Me desculpe pela demora pra lhe dar resposta, pois ontem estava muito garrado! Infelizmente ainda não deu certo. Esta ocorrendo a seguinte falha "Valide o xml segundo o schema fornecido no manual." Sempre lhe agradecendo sua atenção, aguardo sua opinião. 21069A-comp-nfse.xml 21069A-comp-nfse-soap.xml 21069A-con-nfse-rps.xml 21069A-con-nfse-rps-soap.xml 21069-env-lotS.xml 21069-env-lotS-soap.xml 21069-lista-nfse.xml 21069-lista-nfse-soap.xml 2013-can.xml 3116020434378100017856000002013-nfse.xml
-
Bom dia Italo, Realmente eu fiquei um pouco confuso, nesse ponto. Mas, a falha ocorre na segunda passagem na procedure "TratarResposta" que acredito que seja na consulta. Porém o xml gerado de cancelamento, não foi gerado perfeitamente, pois ele nem consegue abrir no "Internet Explorer" e nem no aplicativo "XML Notepad". E acredito que possar ser justamente na formação desse xml que esta ocorrendo a falha. Mais uma vez agradecemos o seu pronto atendimento,
-
Olá, boa noite! Estamos finalizando o processo da Nota Fiscal de serviço e me deparei com um problema. Estou com problema na recepção do xml da Nota cancelada. realiza o cancelamento perfeitamente, mas quando vai pra gravar o xml está ocorrendo erro. Não conseguir definir muito bem o problema, pois a rotinas esta passando 2 vezes pela procedure TratarResposta e na segunda vez ocorre erro. Segue em anexo os xmls gerados. Xml final é 1990-can.xml Configuração do meu arquivo INI GovDigital.INI Certo da atenção de todos antecipo agradecimentos. 1990-can.xml 1990-can-soap.xml 1990-ped-can.xml 1990-ped-can-soap.xml
