-
Total de ítens
670 -
Registro em
-
Última visita
-
Days Won
1
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Antonio Gomes postou
-
Daniel? porque no instalador não selecionar isso ? E o instalador ir lá e mexer no acbr.inc ?
- 43 replies
-
- 1
-
Mantenedores: Na procedure abaixo, não existe o parametro para atender a função usada no final do procedimento, que é a FiltrarTextoXML(FOpcoes.FRetirarEspacos, ConteudoProcessado, FOpcoes.FRetirarAcentos) procedure wCampo(const Tipo: TpcnTipoCampo; ID, TAG: string; const min, max, ocorrencias: smallint; const valor: variant; const Descricao: string = ''; ParseTextoXML : Boolean = True; Atributo: String = ''); Essa função FiltrarTextoXML, a assinatura dela, tem um parâmetro default = True, que causa um salto de linha nas informações complementares no danfe - mesmo que eu não queira essas quebras.. Pergunta: Não seria interessante colocar esse parâmetro true no caso de informação complementar se eu quiser? *************************************************************************************************** minha resposta ***************** Solução encontrada por enquanto: (note que eu pus a minha quebra...) InfAdic.InfAdFisco := ''; ListaDeStrings.Text := IBDSPai.FieldByName('INF_COMPLEMENTAR_NF').AsWideString; for I := 0 to ListaDeStrings.Count - 1 do begin S := ListaDeStrings; S := S + ';'; ListaDeStrings := S; end; ListaDeStrings.Text := AcbrUtil.ChangeLineBreak(ListaDeStrings.Text, ' '); ListaDeStrings.Text := StringReplace(ListaDeStrings.Text, ' ', ' ', [rfReplaceAll]); InfAdic.InfCpl := ListaDeStrings.Text;
-
Grupo de ICMS para UF Destino - Produto Isento
Antonio Gomes replied to marcoslondrina's tópico in ACBrNFe
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). -
Rejeição: Informado indevidamente o grupo de ICMS para a UF de destino
Antonio Gomes replied to Guto.Costa's tópico in ACBrNFe
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.- 11 replies
-
- nota tecnica
- 2015 003
-
(e 1 mais)
Tags:
-
é 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.
-
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.
-
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
-
Quem fez uso desse artifício, com Trunk2 não mais precisa do evento frxPDFExport_NFSe_BeginExport. Faça o teste antes.
-
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
-
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;
-
Certificado A3 Pronova Sendo Excluido
Antonio Gomes replied to [email protected]'s tópico in ACBrNFe
já temos 2 relatos do mesmo problema. Cartao A3 - conseguiu achar uma solucao ? -
Fast Report - Propriedades novas/removidas
Antonio Gomes replied to Antonio Gomes's tópico in ACBrNFSe
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 -
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....
- 14 replies
-
- AcbrBoleto
- FastReport
-
(e 1 mais)
Tags:
-
Fast Report - Propriedades novas/removidas
Antonio Gomes replied to Antonio Gomes's tópico in ACBrNFSe
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 ? -
Fast Report - Propriedades novas/removidas
Antonio Gomes replied to Antonio Gomes's tópico in ACBrNFSe
usei a mesma chamada que já existia -
Fast Report - Propriedades novas/removidas
Antonio Gomes replied to Antonio Gomes's tópico in ACBrNFSe
Um outro detalhe: o instalador vai ter que ser ajustado, acabei de testar aqui. Se eu puder mexer nele também e mandar... -
Fast Report - Propriedades novas/removidas
Antonio Gomes replied to Antonio Gomes's tópico in ACBrNFSe
Nao entendi Juliomar, essas units foram as que sobraram, apos retirar as chamadas delas. Na verdade é o TDatamodule isso dai. seria isso seu questionamento ? -
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
-
Fast Report - Propriedades novas/removidas
Antonio Gomes replied to Antonio Gomes's tópico in ACBrNFSe
Esqueci de mencionar, pode deletar as units ACBrNFSeDANFSeFRDM.dfm e ACBrNFSeDANFSeFRDM.pas -
Fast Report - Propriedades novas/removidas
Antonio Gomes replied to Antonio Gomes's tópico in ACBrNFSe
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 -
Fast Report - Propriedades novas/removidas
Antonio Gomes replied to Antonio Gomes's tópico in ACBrNFSe
Exato! -
Fast Report - Propriedades novas/removidas
Antonio Gomes replied to Antonio Gomes's tópico in ACBrNFSe
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. -
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
-
segue fonte comentado para analise, se possivel ACBrNFSeWebServices.pas
-
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;