Ir para conteúdo
  • Cadastre-se

Antonio Gomes

Membros
  • Total de ítens

    898
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Antonio Gomes postou

  1. Eu hoje, 28/12/15, ao testar com um produto isento, não gerou as tags, devido o teste, pelo que consta no manual, o grupo deve quando: - Operação Interestadual (idDest=2) e - Operação com Consumidor Final (indFinal=1) e - Operação com Não Contribuinte (indIEDest=9) e - Não é operação de prestação de serviços (não existe tag “ISSQN”). Para mim se o estado exigir valores para o CST icms =41 seria um despautério (mais 1).
  2. Mas CST=10 para consumidor final ? E com destaque de ST ? Sei lá, acho que ST é contribuinte apenas.... a partilha ao meu ver é uma ST camuflada... Depois de deparar com o erro: mudei para <indFinal>1</indFinal> e passou. é tanta tag redundante que as vezes esquecemos uma.
  3. é justamente por isso ítalo, não sei quando o usuário cancelou um processo, ou computador desligou no ato da transmissão, ou pior, se ele foi no pacote de ida e não voltou, seja por motivo do mais simples, como a internet perder conexão na hora, então, ao tentar transmitir sempre verifico, se tem ele já ativo na sefaz, simplesmente gravo o protocolo e finalizo o processo ali mesmo, caso contrário aciono o envio do lote. é tudo uma questão de não confiar no usuário - trem danado para zicar as coisas. Lembre-se, ainda estou enebriado de internet ruim aqui.
  4. Na verdade, acontece isso sempre, basta debugar (Meu cenário Rad Studio XE2). Não sei todos aqui tem o habito de antes de iniciar o envio de um lote de consultar se existe o recibo para a chave. Pois o envio no meu caso só vai se retornar 217 no status da consulta. É justamente nesse momento que ocorre o erro.
  5. Alguém já deparou com esse erro? Na minha maquina funciona, a que desenvolvo, e outras 2 não: Segue erro: org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed. Isso acontece ao consultar NFS-e por RPS e no envio de lote. Problema resolvido: Ginfes.ini desatualizado: faltavam as linhas: [ConsNFSeRps] IncluiEncodingCab=0 IncluiEncodingDados=0
  6. Quem fez uso desse artifício, com Trunk2 não mais precisa do evento frxPDFExport_NFSe_BeginExport. Faça o teste antes.
  7. Ao debugar, identifiquei o problema no procedimento abaixo, olhe o trecho em vermelho. Segue trecho e código fonte alterado procedure NotaFiscal.Assinar(Assina: Boolean); var XMLStr: String; XMLUTF8: AnsiString; Leitor: TLeitor; CNPJEmitente, CNPJCertificado: String; begin // VErificando se pode assinar esse XML (O XML tem o mesmo CNPJ do Certificado ??) CNPJEmitente := OnlyNumber(NFSe.Prestador.CNPJ); CNPJCertificado := OnlyNumber(TACBrNFSe(TNotasFiscais(Collection).ACBrNFSe).SSL.CertCNPJ); // verificar somente os 8 primeiros digitos, para evitar problemas quando // a filial estiver utilizando o certificado da matriz {if Copy(CNPJEmitente, 1, 8) <> Copy(CNPJCertificado, 1, 8) then raise EACBrNFSeException.Create('Erro ao Assinar. O XML informado possui CNPJ diferente do Certificado Digital' );} // Gera novamente, para processar propriedades que podem ter sido modificadas XMLStr := GerarXML; // XML já deve estar em UTF8, para poder ser assinado // XMLUTF8 := ConverteXMLtoUTF8(XMLStr); FXMLOriginal := XMLUTF8; with TACBrNFSe(TNotasFiscais(Collection).ACBrNFSe) do begin if Assina then FXMLAssinado := SSL.Assinar(String(XMLUTF8), 'Rps', Configuracoes.Geral.ConfigGeral.Prefixo3 + 'InfRps') else FXMLAssinado := FXMLOriginal; // FXMLOriginal := FXMLAssinado; Leitor := TLeitor.Create; try leitor.Grupo := FXMLAssinado; NFSe.signature.URI := Leitor.rAtributo('Reference URI='); NFSe.signature.DigestValue := Leitor.rCampo(tcStr, 'DigestValue'); NFSe.signature.SignatureValue := Leitor.rCampo(tcStr, 'SignatureValue'); NFSe.signature.X509Certificate := Leitor.rCampo(tcStr, 'X509Certificate'); finally Leitor.Free; end; if Configuracoes.Arquivos.Salvar then Gravar(CalcularNomeArquivoCompleto(), ifThen(Assina, FXMLAssinado, FXMLOriginal)); end; end; Outro ponto que do meu ponto de vista está com problema, trata-se do retorno da consulta, as variaveis i e ii foram usadas de forma indiscriminada, incrementou a variavel para um colletion, e usou em outro, com isso as vezes a consulta retorna erro de List of bounds (-1). Segue unit ACBrNFSeWebServices.pas devida apreciação do moderador ACBrNFSeNotasFiscais.pas ACBrNFSeWebServices.pas
  8. O trecho da unit ACBrDFeCapicom, quando passa na função, XmlEstaAssinado() não deveria ter um exit ? Pois quando o xml já assinado é submetido novamente está gerando um erro desconhecido na linha: // Assinando com MSXML e CryptoLib // signedKey := xmldsig.sign(dsigKey, $00000002); << Erro aqui if (signedKey = nil) then raise EACBrDFeException.Create('Assinatura Falhou.'); Segue trecho do código para analise: function TDFeCapicom.Assinar(const ConteudoXML, docElement, infElement: String): String; var PosIni, PosFim: integer; URI, AXml, TagEndDocElement, XmlAss: String; xmldoc: IXMLDOMDocument3; xmldsig: IXMLDigitalSignature; dsigKey: IXMLDSigKey; signedKey: IXMLDSigKey; PrivateKey: IPrivateKey; begin CoInitialize(nil); try CarregarCertificadoSeNecessario; AXml := ConteudoXML; XmlAss := ''; if not XmlEstaAssinado(AXml) then begin URI := ExtraiURI(AXml); TagEndDocElement := '</' + docElement + '>'; AXml := copy(AXml, 1, PosLast(TagEndDocElement, AXml) - 1); AXml := AXml + SignatureElement(URI, False) + TagEndDocElement; end;
  9. já temos 2 relatos do mesmo problema. Cartao A3 - conseguiu achar uma solucao ?
  10. Juliomar: Segue unit com uma variavel que foi esquecida de colocar. Ao enviar o e-mail o pdf para anexar, com isso esqueci de colocar o NFSe.IdentificacaoRps.Serie somado do numero da NFS-e. ACBrNFSeDANFSeFR.pas
  11. Juliomar: Mais um datamodule que necessita ser removido do projeto ACBr, senão vai ser essa dor de cabeça pelo resto da vida. E além de remover, tem que colocar o objeto sendo instanciado no carregar do componente, nada de ficar pregado na tela. Mesmo trabalho que enviei para vocês dias atrás da NFS-e....
  12. Comecei fazer no meu software, o MDF-e, é mais um ponto a ser removido o Datamodule... Moderador, poderia eu mexer e enviar o código fonte alterado ?
  13. usei a mesma chamada que já existia
  14. Um outro detalhe: o instalador vai ter que ser ajustado, acabei de testar aqui. Se eu puder mexer nele também e mandar...
  15. Nao entendi Juliomar, essas units foram as que sobraram, apos retirar as chamadas delas. Na verdade é o TDatamodule isso dai. seria isso seu questionamento ?
  16. Funcao de consulta de lote por RPS com erro também, ao terminar de consulta destroi a componente com o retorno que veio do webservice, segue codigo fonte comentado 2 linhas. ACBrNFSeWebServices.pas
  17. Esqueci de mencionar, pode deletar as units ACBrNFSeDANFSeFRDM.dfm e ACBrNFSeDANFSeFRDM.pas
  18. A alteração está correta, e como já estou em um ponto que é usado para o envio de e-mail, o trecho abaixo é chamado na função: procedure NotaFiscal.EnviarEmail(sPara, sAssunto: String; sMensagem: TStrings; EnviaPDF: Boolean; sCC: TStrings; Anexos: TStrings); Trecho com problema no nome do pdf gerado: if (EnviaPDF) then begin if Assigned(DANFSE) then begin DANFSE.ImprimirDANFSEPDF(FNFSe); NomeArq := PathWithDelim(DANFSE.PathPDF) + NumID + '-nfse.pdf'; AnexosEmail.Add(NomeArq); end; end; Uma sugestão boba, que coloquem essa procedure DANFSE.ImprimirDANFSEPDF(FNFSe); como funcao, e nela retorne o nome do arquivo pdf salvo. Para piorar ainda mais a coisa, no ato de gerar o pdf na unit relativa ao fast report, colocaram isso, que pode mudar o nome do pdf, logo, ao enviar o e-mail não vai encontrar o arquivo. with TACBrNFSe(ACBrNFSe).NotasFiscais.Items do begin if TACBrNFSe(ACBrNFSe).Configuracoes.Arquivos.NomeLongoNFSe then NomeArqXML := GerarNomeNFSe(UFparaCodigo(NFSe.PrestadorServico.Endereco.UF), NFSe.DataEmissao, NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj, StrToIntDef(NFSe.Numero, 0)) else NomeArqXML := NFSe.Numero; end; E então, qual a sugestão ? Código fonte testado impressão no Ginfes. Qualquer problema notifique-me. ACBrNFSeDANFSeFR.pas
  19. Embora voce tenha aceitado a correção, o que acha de não existir esse datamodule e sim apenas uma unit com a classe, e os TFields removidos e criados em tempo de execução? Eu mudaria isso e enviaria, nunca mais daria problema de propriedade em dfm.
  20. Estou utilizando as versoes 4.13.15 do fast report e atualizado para 5.2.3 Porem, ao abrir o programa apresenta a mensagem de erro de Property Transparency not found no componente TFrxPDFExport. Como solução, alterei na criação do datamodule para instanciar esses 2 componentes manual. São eles TFrxReport e TFrxPDFExport. Com isso, não dá falta de propriedade não gravada no dfm. Todas as propriedades foram setadas no evento Create do form. Segue codigo fonte para analise e apreciação. ACBrNFSeDANFSeFRDM.dfm ACBrNFSeDANFSeFRDM.pas
  21. segue fonte comentado para analise, se possivel ACBrNFSeWebServices.pas
  22. Antonio Gomes

    funcao sem scopo

    A função abaixo da unit ACBrNFSeWebServices, sem conteúdo, não poderia ser removida? Pois o uso da mesma gera violação de acesso. se for usado variáveis carregadas por ela após. O segundo overload está correto. function TWebServices.ConsultaLoteRps(ANumLote, AProtocolo: String; const CarregaProps: boolean): Boolean; begin (* if CarregaProps then begin FConsLote.FCNPJ := ''; FConsLote.FIM := ''; end; FConsLote.FNumeroLote := ANumLote; FConsLote.FProtocolo := AProtocolo; Result := FConsLote.Executar; if not (Result) then FConsLote.GerarException( FConsLote.Msg ); *) end;
  23. Antonio Gomes

    Ginfes - Trunk2

    Alguns fontes ao finalizar o acesso ao serviço, no meu caso, consulta de nfse por rps, de acordo com essa funcao abaixo - Logo apos eu consultar eu nao posso ter acesso a lista de notas ? procedure TNFSeConsultarNfseRPS.FinalizarServico; begin inherited FinalizarServico; if Assigned(FRetornoNFSe) then FreeAndNil(FRetornoNFSe); end; Sempre utilizei do retorno da consulta para atualizar os dados da minha nota, pois esse provedor acontece de perder conexao, então sempre consulto antes para saber se existe a nota, e pego o retorno em ACBrNFSe1.WebServices.ConsNFSeRps.RetornoNFSe.ListaNFSe.CompNFSe.Count esse problema tem como ser resolvido ? Eu comentei as linhas: if Assigned(FRetornoNFSe) then FreeAndNil(FRetornoNFSe);
  24. De acordo com o manual CNAB400, o documento do cedente será idenficado como: 4. Notas (1) TIPO/Nº DE INSCRIÇÃO DA EMPRESA/SACADOR TIPO INSCRIÇÃO NÚMERO DE INSCRIÇÃO 01 Nº DO CPF DO CEDENTE 02 Nº DO CNPJ DO CEDENTE 03 CPF DO SACADOR 04 CNPJ DO SACADOR Normalmente definem o tipo (CPF/CNPJ) e o número de inscrição do cedente. Se o título for negociado, deverão ser utilizados para indicar o CNPJ/CPF do sacador (cedente original), uma vez que os cartórios exigem essa informação para efetivação dos protestos. Para este fim, também poderá ser utilizado o registro tipo “5”. Porém o banco manda o tipo de inscrição com o numero = 02 - como cnpj. Tenho retorno meu da minha conta física o cpf vem com formatação similar ao do cnpj, preenchido com zeros antes... Solução que arrumei: Acessei o arquivo .RET e troquei para 01 para funcionar... talvez se não houvesse a validação do cnpj/cpf ou até mesmo usar uma propriedade para ignorar certas discrepâncias vindas dos bancos. No entanto, mesmo após colocar o 01 no arquivo, o mesmo insistia no erro de cnpj/cpf errado, pois o tipo de inscrição do cedente estava sendo trocado logo após a propriedade CNPJCPF ser trocado, com isso o evento Write da property aciona o SetCNPJCPF, que por sua vez faz a validação do dado informado. O que fiz foi apenas inverter a linha onde seta o tipo de inscrição, fazendo o componente saber antes do CNPJ/CPF ser informado, que tipo de informação será validada. Foi alterado no CNAB 240 e no 400. Segue unit alterada do trunk2. ACBrBancoItau.pas
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...