-
Total de ítens
182 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que nolher postou
-
Bom dia novamente! A url de produção também estão erradas. Verificamos que o componente esta usando a url: https://cte.sefaz.rs.gov.br/ws/CteRecepcaoEvento/CteRecepcaoEvento.asmx E o correto deveria usar a url : https://cte.svrs.rs.gov.br/ws/cterecepcaoevento/CTeRecepcaoEvento.asmx Busquei instruções no próprio fórum e consegui recompilar o ACBrCTEServicos.rc e realizado os devidos testes. Certo de suas atenção, antecipamos nossos agradecimentos Atenciosamente,
-
Bom dia a todos! Estamos com problema de envio em EPEC para clientes de São Paulo na versão atualizada CT-e 3.00! Verificamos que o componente esta usando a url: https://homologacao.cte.sefaz.rs.gov.br/ws/CteRecepcaoEvento/CteRecepcaoEvento.asmx E o correto deveria usar a url : https://cte-homologacao.svrs.rs.gov.br/ws/cterecepcaoevento/cterecepcaoevento.asmx Não consegui identificar onde corrigir, alterei o arquivo ACBrCTeServicos.ini e reinstalei o componente e não resolveu. Qual seria o procedimento para correção? Certo de suas atenção, antecipamos nossos agradecimentos Atenciosamente,
-
Mas uma vez bom dia a todos. Já algum tempo tenho dificuldades em minhas atualizações dos componentes, pois em nossa aplicação trabalhamos com a nomenclatura de xml de acordo com o que esta descrito no manual, isto é, seguimos a nomenclatura definida no item 12.1 Processo de Compartilhamento: CT-e: Número do Protocolo + “_v” + [Versão do arquivo de schema com 5 posições (ex: 99.99)] + “-procCTe.xml”. Exemplo: 143061234567890_v01.00-procCTe.xml. • Inutilização de numeração de CT-e: Número do Protocolo + “_v” + [Versão do arquivo de schema com 5 posições (ex: 99.99)] + “-procInutCTe.xml”. Exemplo: 143061234567890_v01.00-procInutCTe.xml. • Registro de Evento de CT-e: Número do Protocolo + “_v” + [Versão do arquivo de schema com 5 posições (ex: 99.99)] + “-eventoCTe.xml”. Como já discutimos em outra oportunidade, onde até chegamos questionar o Sefaz, é questão de interpretação. Identificamos que já na atual versão já havia disponível parte de código descrito para tratar esse ponto. Sendo assim terminamos de implementar e gostaria que pudessem atualizar na versão atual as classes alteradas, assim como se segue: 1- pcteProcCTe e pcteConversaoCTe onde foi transferido o Tipo TPcnPadraoNomeProcCTe da classe pcteProcCTe para classe pcteConversaoCTe mudando o nome para TPcnPadraoNome Classe alterada pcteProcCTe.pas -> Eliminado o tipo TPcnPadraoNomeProcCTe, corrigido o método já existente ObterNomeArquivo e método PreencherTAG foi corrigido o preenchimento da propriedade "FnProt"; Classe alterada pcteConversaoCTe.pas -> Criado o tipo TPcnPadraoNome com o mesmo padrão do antigo TPcnPadraoNomeProcCTe 2- Na classe ACBrCTeConfiguracoes foi criado uma propriedade chamada PadraoNome com com o tipo TPcnPadraoNome e dendo definido como default "tpnPublico", o que permanecerá com o padrão adotado pela os moderadores ACBr. classe alterada ACBrCTeConfiguracoes.pas -> Criado a propriedade PadraoNome 3- Na classe ACBrCTeWebServices foi implementado na rotinas existente de gravação a chamada do método ObterNomeArquivo; Classe alterada ACBrCTeWebServices.pas -> Na gravação dos xml do CT-e protocolado, na gravação do xml de evento e na gravação do xml de inutilização. Todas as alterações foram identificado com o seguinte comentário: // Alterado por Nilton Olher - ??/??/20017 Certo, de que as alterações não irá impactar para os usuários que utiliza o padrão adotado pela os moderadores da equipe ACBr, solicito essa implementação que irá nos trazer mais facilidade na atualização dos componentes e assim poderemos nos dedicar mais aos testes e implementações que pudermos auxiliar a equipe, evitando o tempo que perdemos e adaptar para nós. Certo, da compreensão e aceito de nossas alterações pelos Moderadores, antecipo nossos mais sinceros agradecimentos. Estamos a disposição para maiores esclarecimentos. Atenciosamente,
-
Bom dia, Italo! E bom dia a todos! Obrigado Italo pela atenção, enviei a dúvida para os Sefaz de Minas e de São Paulo, e estou aguardando um posicionamento. Vou deixar o tópico aberto e qualquer novidade posto aqui. Mais uma vez muito obrigado pela atenção, Atenciosamente,
- 20 replies
-
- evento
- prestdesacordo
- (e 5 mais)
-
Bom dia! Gostaria de saber se a nova versão do componente ACBrCTe já esta preparado para utilizar o padrão de comunicação TSL? Procurei aqui no forum essa informação e não encontrei ! Sem para o momento, Antecipo agradecimentos,
-
Bom dia, Italo! Bom, temos o entendimento que o evento de Prestação de Serviço em Desacordo é um evento emitido pelo tomador e vamos disponibilizar para nossos clientes de NF-e. Estamos implementando na versão 3.00 do CT-e já que é um serviço dos webservices de CT-e! Verifiquei que depois que transferi para a versão 3.00 a carta de correção também está me retornando a mesma rejeição. Gerei o seguinte CT-e 131170001241328_v03.00-procCTe.xml Enviei a seguinte carta de correção: 372-ped-eve.xml E tive a seguinte resposta: 372-eve.xml A proposito o envio de evento de cancelamento esta normal. Se poderem me oferecer alguma dica ficarei muito grato. Desde já antecipo agradecimento, Atenciosamente,
- 20 replies
-
- evento
- prestdesacordo
- (e 5 mais)
-
Boa tarde|! Gostaria de saber se alguém já realizou teste do novo Evento Prestação do Serviço em Desacordo? E se sim, se tiverem a Rejeição 297: Assinatura difere do calculado? Estamos realizando o teste aqui e não consegui entender o motivo desta rejeição, estamos utilizando o componente ACBrCTe para o envio desde evento. Seque em anexos os xml que envolve o Evento: Xml gerado da NF-e no mesmo período: 333170000426982_v03.10-procNFe.xml Xml gerado do CT-e no mesmo período: 131170001241261_v03.00-procCTe.xml Xml gerado do Evento Prestação do Serviço em Desacordo: 1-ped-eve.xml1-ped-eve.xml Xml de resposta do Webservice: 1-eve.xml Se puderem oferecer alguma dica lhes agradeço. Aproveito a oportunidade para agradecer os apoio que sempre recebi aqui desde grande grupo, e também para parabenizar o excelentes trabalho de toda equipe envolvida no projeto. Sem para o momento, Antecipo agradecimentos,
- 20 replies
-
- evento
- prestdesacordo
- (e 5 mais)
-
Bom dia, Juliomar! Você é o cara! Nossa, como não percebi isso! Me senti até envergonhado agora! Valeu mesmo! Dá pra corrigir aí pra gente? Mais uma vez obrigado por sua atenção e a do Italo! Atenciosamente,
- 4 replies
-
- govdigital
- provedor
-
(e 2 mais)
Tags:
-
Bom dia, Italo! Finalmente consegui encontrar a falha: na classe ACBrNFSeWebServices a função abaixo: function TNFSeEnviarSincrono.TratarResposta: Boolean; var i: Integer; begin FPMsg := ''; FaMsg := ''; FPRetWS := ExtrairRetorno(FPConfiguracoesNFSe.Geral.ConfigGrupoMsgRet.GrupoMsg); // FNotaRetornada := (Pos(FPRetWS, 'CompNfse') > 0); // Original não consegue localizar a tag "CompNfse" simplismente sempre volta em zero. FNotaRetornada := (SeparaDados(FPRetWS, 'Comp2Nfse') <> ''); // Solução troquei a função "Pos" pela nossa conhecida "SeparaDados" Dá pra implementar daí? Desde já agradeço a atenção.
- 4 replies
-
- govdigital
- provedor
-
(e 2 mais)
Tags:
-
Boa tarde! Estamos finalizando a atualização dos componentes ACBr, e estamos na atualização do ACBrNFSe. Trabalhamos com provedor GovDigital, e não estamos obtendo as informações de retorno da nota, isto é os campos Numero da Nota, Código Verificação e etc. Em anexo temos o xml de retorno 476-recS.xml e o arquivo ini utilizado GovDigital.INI Abaixo rotina para obter dados com todos os campos em vermelho retornando em branco: if ACBrNFSe.EnviarSincrono(W_NrLote, false) then begin W_Status := '03'; W_Nr_Lote := StrToFloat(ACBrNFSe.WebServices.EnviarSincrono.NumeroLote); W_Dt_Protocolo := ACBrNFSe.WebServices.EnviarSincrono.DataRecebimento; W_Nr_Protocolo := ACBrNFSe.WebServices.EnviarSincrono.Protocolo; W_Msg := 'Autorizado o uso da NFS-e'; GravaResultadoLote(W_Nr_Lote, W_Dt_Protocolo, W_Nr_Protocolo, W_Msg, W_Status); for W_I := 0 to ACBrNFSe.NotasFiscais.Count-1 do begin W_Nr := StrToInt(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Numero); W_Nr_RPS := StrToFloat(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.IdentificacaoRps.Numero); W_Serie := ACBrNFSe.NotasFiscais.Items[W_I].NFSe.IdentificacaoRps.Serie; W_CD_Verificacao := ACBrNFSe.NotasFiscais.Items[W_I].NFSe.CodigoVerificacao; W_ChaveAcesso := Mascarar('00',ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Prestador.cUF) + FormatDateTime('YYMM',ACBrNFSe.NotasFiscais.Items[W_I].NFSe.DataEmissao) + ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Prestador.Cnpj + '56'+ Mascarar('000000000',StrToInt64(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Numero)); BuscaDadosNota(W_Nr_RPS,W_NR_Pedido,W_Cliente, W_NM_Cliente); SQLDS_AuxNotaUpdate.Close; SQLDS_AuxNotaUpdate.Params[00].AsInteger := W_Nr; // NOT_NR SQLDS_AuxNotaUpdate.Params[01].AsDateTime := StrToDate(FormatDateTime('DD/MM/YYYY',ACBrNFSe.NotasFiscais.Items[W_I].NFSe.DataEmissao)); // NOT_DT_EMISSAO SQLDS_AuxNotaUpdate.Params[02].AsString := W_CD_Verificacao; // NOT_CD_VERIFICACAO_NFSE SQLDS_AuxNotaUpdate.Params[03].AsString := W_Nr_Protocolo; // NOT_NR_PROTOCOLO_AUT_NFE SQLDS_AuxNotaUpdate.Params[04].AsDateTime := W_Dt_Protocolo; // NOT_DT_HORA_PROC_NFE SQLDS_AuxNotaUpdate.Params[05].AsString := W_Status; // NOT_STATUS_NFSE SQLDS_AuxNotaUpdate.Params[06].AsString := W_Msg; // NOT_MSG_STATUS_NFE SQLDS_AuxNotaUpdate.Params[07].AsString := '100'; // NOT_STATUS_RETORNO_NFE SQLDS_AuxNotaUpdate.Params[08].AsString := '02'; // NOT_TIPO_SITUACAO SQLDS_AuxNotaUpdate.Params[09].AsFloat := W_Nr_Lote; // Numero do Lote SQLDS_AuxNotaUpdate.Params[10].AsString := W_ChaveAcesso; // Chave de Acesso SQLDS_AuxNotaUpdate.Params[11].AsDateTime := W_Dt_Transmissao; // Data da Nota SQLDS_AuxNotaUpdate.Params[12].AsFloat := StrToFloat(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.IdentificacaoRps.Numero); // Nr. RPS SQLDS_AuxNotaUpdate.ExecSQL; GravaNFSeLote(W_Nr_Lote,W_Nr_RPS,W_Nr,W_NR_Pedido,W_Cliente,W_NM_Cliente, W_Serie,W_CD_Verificacao,W_Msg,W_Status); if CheckBoxGerarPDFNFSe.Checked then ACBrNFSe.DANFSE.ImprimirDANFSePDF; end; W_Flag_Transmitido := True; end Certo de vossa atenção de sempre, antecipamos agradecimentos.
- 4 replies
-
- govdigital
- provedor
-
(e 2 mais)
Tags:
-
Bom dia Juliomar! Muito Obrigado por sua atenção! Aqui, pra nós fizemos com a versão anterior! Mas, ficaremos no aguardo de sua solução. Mais uma vez muito obrigado! Atenciosamente,
-
Bom dia pessoal! Posso enviar a versão antiga modificada corrigindo o problema de impressão em mais de uma página. Não consegui corrigir na versão atual, pois a forma que esta sendo impresso não dá possibilidade de imprimir mais de uma pagina. Certo de suas atenção, antecipo agradecimentos Atenciosamente,
-
Bom dia pessoal! Ainda estou aguardando de um posicionamento de nossos moderadores, referente essa nossa implementação. São alterações que não traz nenhum transtorno para a plataforma atual, muito pelo contrario na minha visão traz beneficio! E como já relatei em anteriormente, irão nos oferecer um beneficio muito grande, quando realizamos a compatibilização de versão. Certo de suas atenção, agradecemos o empenho de todos e a constante colaboração, Atenciosamente,
- 7 replies
-
- obternomearquivo
- nome de arquivo
- (e 2 mais)
-
Bom dia pessoal! Ainda estou aguardando o posicionamento dos moderadores, referente essa nossa alteração. Realizando essa alteração teremos uma maior possibilidade de manter o componente sempre atualizado. Certo de suas atenção, antecipo agradecimentos, Atenciosamente,
- 7 replies
-
- obternomearquivo
- nome de arquivo
- (e 2 mais)
-
Bom dia pessoal! Resolvi o problema aqui, voltando a parte da emissão do DAMDFE a versão anterior. funcionou perfeitamente imprimindo as duas páginas. Não seria prudente voltar a versão anterior onde estava funcionando essa parte onde o MDF-e precisa ser impresso em mais de uma página? Certo de suas atenção, antecipo agradecimentos Atenciosamente,
-
Bom dia a todos! Alguém conseguiu analisar esse problema da emissão do DAMDFE? Se alguém puder, ao menos me oferecer alguma diga, posso me disponibilizar a resolver. Certo de suas atenção, antecipo agradecimentos, Atenciosamente,
-
Bom dia a todos! Meus nobres Moderadores, por gentileza gostaria de obter um parecer de vocês! Já vi que existe atualizações do componente e para nós esta sendo muito sacarifico para manter o componente atualizado e manter essa integridade exigida por alguns contadores de nossos clientes. Desde já agradecemos a atenção, Atenciosamente,
- 7 replies
-
- obternomearquivo
- nome de arquivo
- (e 2 mais)
-
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)