Ir para conteúdo
  • Cadastre-se

Antonio Gomes

Membros
  • Total de ítens

    735
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Antonio Gomes postou

  1. usei a mesma chamada que já existia
  2. Um outro detalhe: o instalador vai ter que ser ajustado, acabei de testar aqui. Se eu puder mexer nele também e mandar...
  3. Nao entendi Juliomar, essas units foram as que sobraram, apos retirar as chamadas delas. Na verdade é o TDatamodule isso dai. seria isso seu questionamento ?
  4. 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
  5. Esqueci de mencionar, pode deletar as units ACBrNFSeDANFSeFRDM.dfm e ACBrNFSeDANFSeFRDM.pas
  6. 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
  7. 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.
  8. 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
  9. segue fonte comentado para analise, se possivel ACBrNFSeWebServices.pas
  10. 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;
  11. 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);
  12. 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
  13. Porque não mudou apenas a propriedade de mascarar valores ? no TFrxmemoview, ao inves de criar 2 arquivos.
  14. Solução alá peppa pig: criei um evento: procedure TFTransmissaoNFS.frxPDFExport_NFSe_BeginExport(Sender: TObject); begin if Sender is TfrxPDFExport then TfrxPDFExport(Sender).FileName := NomeArquivoPDF_TempFastReport; end; Antes de iniciar o processamento eu fiz: NomeArquivoPDF_TempFastReport := ''; if dmComercial.ACBrNFSe1.DANFSe is TACBrNFSeDANFSeFR then NomeArquivoPDF_TempFastReport := dmComercial.ACBrNFSe1.DANFSe.PathPDF + dmComercial.ACBrNFSe1.NotasFiscais.Items[0].Nfse.Numero + '-nfse.pdf'; if dmComercial.ACBrNFSe1.DANFSe is TACBrNFSeDANFSeFR then begin TACBrNFSeDANFSeFR(dmComercial.ACBrNFSe1.DANFSe).dmDanfse.frxReport.OnGetValue := frReport_TransmiteNFSe_GetValue; TACBrNFSeDANFSeFR(dmComercial.ACBrNFSe1.DANFSe).dmDanfse.frxReport.OnBeforePrint := frReport_TransmiteNFSe_BeforePrint; TACBrNFSeDANFSeFR(dmComercial.ACBrNFSe1.DANFSe).dmDanfse.frxPDFExport.OnBeginExport := frxPDFExport_NFSe_BeginExport; end; Com isso, ao iniciar a geração do pdf lá pelo filtro export do fast report, o nome do arquivo a ser anexado no e-mail fica correto.
  15. Na funcao: procedure NotaFiscal.EnviarEmail(...) No ponto abaixo, onde seta o nome do arquivo xml, está setando como numero da nfse + '-nfse.pdf', porém chamar a impressão do pdf na unit ACBrNFSeDANFSeFR, pela função ImprimirDANFSePDF está trocando: Unit: ACBrNFSeNotasFiscais if (EnviaPDF) then begin if TACBrNFSe( TNotasFiscais( Collection ).ACBrNFSe ).DANFSE <> nil then begin TACBrNFSe( TNotasFiscais( Collection ).ACBrNFSe ).DANFSE.ImprimirDANFSEPDF(NFSe); NomeArqPDF := NomeArqXML; NomeArqPDF := StringReplace(NomeArqPDF, 'NFSe', '', [rfIgnoreCase]); NomeArqPDF := PathWithDelim(TACBrNFSe( TNotasFiscais( Collection ).ACBrNFSe ).DANFSE.PathPDF) + NomeArqPDF + '-nfse.pdf'; AnexosEmail.Add(NomeArqPDF); end; end; procedure TACBrNFSeDANFSeFR.ImprimirDANFSePDF(NFSe: TNFSe); const TITULO_PDF = 'Nota Fiscal de Serviço Eletrônica'; var I: Integer; begin if PrepareReport(NFSe) then begin dmDanfse.frxPDFExport.Author := Sistema; dmDanfse.frxPDFExport.Creator := Sistema; // dmDanfse.frxPDFExport.Producer := Sistema; // dmDanfse.frxPDFExport.Title := TITULO_PDF; dmDanfse.frxPDFExport.Subject := TITULO_PDF; // dmDanfse.frxPDFExport.Keywords := TITULO_PDF; dmDanfse.frxPDFExport.ShowDialog := False; for I := 0 to TACBrNFSe(ACBrNFSe).NotasFiscais.Count -1 do begin // dmDanfse.frxPDFExport.FileName := PathPDF+ dmDanfse.NFSe.Numero+dmDanfse.NFSe.CodigoVerificacao+'.pdf'; dmDanfse.frxPDFExport.FileName := PathPDF+ dmDanfse.NFSe.Numero+'.pdf'; << Diferente aqui dmDanfse.frxReport.Export(dmDanfse.frxPDFExport); end; end; end; Não anexei fonte, pois estou desatualizado e baseado no trunck apenas.
  16. Mais uma alteração no dfm para suprir necessidade de impressão, o campo dataemissao da NFS-e vem com a hora, no entanto, estava com tamanho 10, alterei para suprimir a hora, segue exemplo no xml de retorno da NFS-e <DataEmissao>2014-09-11T17:25:50</DataEmissao> ACBrNFSeDANFSeFRDM.pas ACBrNFSeDANFSeFRDM.dfm
  17. Outro problema encontrado: o tipo tsCodigoTributacao C Código de Tributação 20 no manual está como string de 20, no dmdanfse está como string1, logo ao ler o campo do xml CodigoTributacaoMunicipio dá problema e pega apenas o primeiro digito. <Servico> <Valores> <ValorServicos>100</ValorServicos> <IssRetido>2</IssRetido> <ValorIss>3</ValorIss> <BaseCalculo>100</BaseCalculo> <Aliquota>3</Aliquota> <ValorLiquidoNfse>100</ValorLiquidoNfse> </Valores> <ItemListaServico>1406</ItemListaServico> <CodigoTributacaoMunicipio>3329501</CodigoTributacaoMunicipio> <<<<<<<<<< Esse campo <Discriminacao>PRESTACAO DE SERVICOS/MONTAGEM</Discriminacao> <CodigoMunicipio>3169901</CodigoMunicipio> </Servico> Esse problema está no TField declarado no cdsServicos, o mesmo poderia ser mudado para 20 posições, dentro do dfm... segue trecho: object cdsServicosCodigoTributacaoMunicipio: TStringField FieldName = 'CodigoTributacaoMunicipio' Size = 20 end
  18. Estava eu precisando que saísse a serie e o tipo do RPS na impressão, então troquei o arquivo FR3 na chamada do componente por um modelo by ginfes. Questiono: Mudei no fonte para receber a serie da RPS com 5 caracteres e receber o tipo da mesma. Se for útil para alguém e puderem incorporar ao pacote. Me baseei no manual para alterar: TsNumeroRps N Número do RPS 15 TsSerieRps C Número de série do RPS 5 TsTipoRps N Código de tipo de RPS 1 - RPS 2 – Nota Fiscal Conjugada (Mista) 3 – Cupom ACBrNFSeDANFSeFRDM.dfm ACBrNFSeDANFSeFRDM.pas
  19. Não acho Regys, pois a linha que agarra é essa: Propriedades := Extension.EncodedData.Format(True); Em debug isso dai fica... fica...
  20. Como criar esse arquivo .RES ? E qual finalidade ? Pelo que conheço desse arquivo... não captei bem sua idéia.
  21. Descobri o que era: Transicao entre Delphi 2007 e XE2 O chato do unicode! Botei a variavel antes numa string, e usei pelo LoadFromString e funcionou. A saber o caracter era o #0
  22. Sim eu vi. Mas nao sabia que o rps tinha formatação pre fixada...
  23. Esse problema ainda persiste. Pessoal do ACbr, nao tem como remover isso do componente? E colocar o cnpj como propriedade ?
  24. Ainda hoje 30 04 2015 ocorre lentidao na linha Propriedades := Extension.EncodedData.Format(True); No CT-e a coisa fica pior.
×
×
  • 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...