Ir para conteúdo
  • Cadastre-se

Rodrigo Cardilo

Membros Pro
  • Total de ítens

    260
  • Registro em

  • Última visita

Tudo que Rodrigo Cardilo postou

  1. Prezados, Migrei um sistema multi camadas para o Firedac a algum tempo e percebi uma lentidão para gravar em algumas tabelas com muitos registros. Minha estrutura é Servidor de Aplicação com Firedac, Cliente Datasnap utilizando ClientDatamodule. O problema só acontece quando tento gravar uma tabela com mais de 500.000 registros (Tabela de Venda) Alguém já passou por isso e conseguiu alguma solução? Grato desde já,
  2. Também percebi isso e concordo mas, como eu disse anteriormente, eu utilizei um auditor independente que apresentou como possível motivo para advertência por alguns SEFAZ. Achei interessante compartilhar a informação. A alguns meses o SEFAZ/MG notificou um cliente a utilizar a seriação dos documentos fiscais com 3 zeros. Exemplo: Nota 10 Série 1 tem q ser apresentada como Série 001. Parece besteira mas uma discussão com a fiscalização é inútil.
  3. Bom dia, Segue unit corrigida. Aguardo atualização no svn. ACBrEFDBloco_C_Class.pas
  4. A quem possa interessar resolvi mudando a seguinte linha na unit ifthen(FBloco_0.Registro0000.COD_VER > vlVersao111, LFill(VL_ABAT_NT, 0, 2, True), ''); para ifthen(FBloco_0.Registro0000.COD_VER > vlVersao111, LFill(VL_ABAT_NT, 0, 2), ''); Segue anexo arquivo corrigido. ACBrEFDBloco_C_Class.pas
  5. Prezados, Averiguei um problema na geração do registro C170. O campo Vl_ABAT_NT tem que ir zerado (utilizo auditor para conferir os arquivos). Porém ele está indo vazio. Achei essa linha na unit ACBrEFDBloco_C_Class ifthen( FBloco_0.Registro0000.COD_VER > vlVersao111 ,LFill( VL_ABAT_NT, 0, 2,True ),''); Porém já alterei o valor e não funciona. Quando coloco um valor maior que zero ele gera sem problemas. Alguém pode me ajudar como resolvo esse problema? Grato
  6. Ja tentei sim.. Não funciona. :(
  7. Boa tarde amigos, Estou com um seguinte dilema. Criei uma tela de download onde eu não preencho a propriedade fACBrDownload.DownloadNomeArq. Portanto quando eu coloco a propriedade fACBrDownload.DownloadUrl o componente automaticamente salva o arquivo com o mesmo nome do arquivo da url. Eu gostaria de saber se tem como eu pegar o nome do arquivo após o download, ou seja, se eu digitei a url www.cardilo.com/remoto.exe eu queria obter o nome remoto.exe para eu executar automaticamente após o download. Preenchendo a propriedade fACBrDownload.DownloadNomeArq fica fácil, porém como vou deixar o usuário colocar a url nem sempre vou saber qual arquivo ele vai baixar. Segue exemplo do meu código: fACBrDownload.DownloadDest := '.\'; //aqui eu defini pra salvar o arquivo na mesma pasta do executavel fACBrDownload.DownloadUrl := Edit1.Text; //aqui o usuário digita a url fACBrDownload.StartDownload; Obrigado desde já
  8. Boa tarde amigos, Eu acabei de receber a mesma recusa do amigo Fernando pelo Bradesco. Discuti com eles que no Manual (em anexo) não é explícito essa informação do Sequencial na linha 2 porém não tem discussão. Alterei o arquivo na mão e foi aceito perfeitamente. Fiz manualmente a alteração proposta pelo Fernando e não tenho mais problema com o Bradesco. ACBrBancoBradesco.pas 4008-524-0339-mp-operacionais-troca-arquivos-240-posicoes.pdf
  9. Boa tarde amigos, Estou gerando o sped fiscal e o registro 0305 não está sendo gerado. Estou utilizando o código abaixo: with Registro0300New do begin COD_IND_BEM := DM1.TB07100CODIGO.AsString; IDENT_MERC := DM1.TB07100TIPO.Value; DESCR_ITEM := DM1.TB07100DESCRICAO.Value; COD_PRNC := ''; if DM1.TB07100TIPO.Value = 2 then COD_PRNC := DM1.TB07100CODPRINCIPAL.AsString; COD_CTA := DM1.TB07100CODCTA.AsString; NR_PARC := DM1.TB07100PARCELAS.Value; // FILHO with Registro0305New do begin COD_CCUS := DM1.TB07100CODCUSTO.Value; VIDA_UTIL := DM1.TB07100VIDAUTIL.Value; FUNC := DM1.TB07100FUNCAO.Value; end; end; Alguém sabe me dizer se estou fazendo algo errado pois no arquivo não aparece o registro 0305, somente o 0300. Grato desde já
  10. Eu também estava com esse problema. Resolvi assim: ACBrNFe1.SSL.SSLXmlSignLib := xsLibXml2;
  11. Galera de MG, Vou explicar como resolvi. Eu fui no SIARE. Segui os passos do credenciamento conforme explica no manual http://www.sped.fazenda.mg.gov.br/spedmg/export/sites/spedmg/cte/downloads/Manual_Credenciamento_CTe_Julho2017.pdf. Na hora de liberar (tem que esperar as 2 horas) vai perguntar o tipo de modal. Eu marquei rodoviário e CTE-OS. A contabilidade antes só tinha marcado CTE-OS e não estava funcionando. Pode ser coincidência mas agora tá funcionando normalmente. Espero ter ajudado.
  12. Oi amigos, Estou com um problema na emissão de CTE-OS, Até dezembro eu enviava sem problemas. Porém fui enviar hoje e apareceu a mensagem Rejeicao: Versao informada para o modal nao suportada. Eu já conferi o xml de trás pra frente e não achei problema algum. Estou postando caso alguém possa me ajudar, fico agradecido. 0-env-lot.xml 0-pro-lot.xml
  13. Segue como resolvi: (Faça as adaptações ao seu projeto) Eu tenho um procedure onde habilito ou não as propriedades do componente: procedure TFRC_CTE.LerConfiguracao; var Ok: Boolean; StreamMemo: TMemoryStream; begin DM1.ACBrCTe1.Configuracoes.Certificados.NumeroSerie := DM1.TB99840NUMSERIE.Value; DM1.ACBrCTe1.Configuracoes.Certificados.Senha := DM1.TB99840SENHA_CERTIFICADO.Value; case DM1.TB99840FORMAEMISSAOCTE.Value of 1: DM1.ACBrCTe1.Configuracoes.Geral.FormaEmissao := teNormal; 8: DM1.ACBrCTe1.Configuracoes.Geral.FormaEmissao := teSVCSP; end; case DM1.TB99840SALVAR.Value of 0: DM1.ACBrCTe1.Configuracoes.Geral.Salvar := False; 1: DM1.ACBrCTe1.Configuracoes.Geral.Salvar := True; end; // rotina adicionada para salvar pasta mensal DM1.ACBrCTe1.Configuracoes.Arquivos.Salvar := True; DM1.ACBrCTe1.Configuracoes.Geral.Salvar := True; DM1.ACBrCTe1.Configuracoes.WebServices.Salvar := True; DM1.ACBrCTe1.Configuracoes.Arquivos.EmissaoPathCTe := True; DM1.ACBrCTe1.Configuracoes.Arquivos.SepararPorMes := True; DM1.ACBrCTe1.Configuracoes.Arquivos.AdicionarLiteral := True; DM1.ACBrCTe1.Configuracoes.Arquivos.PathSalvar := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value); DM1.ACBrCTe1.Configuracoes.Arquivos.PathCTe := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value); DM1.ACBrCTe1.Configuracoes.Arquivos.PathInu := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value); DM1.ACBrCTe1.Configuracoes.Arquivos.PathEvento := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value); DM1.ACBrCTe1.Configuracoes.Arquivos.PathSchemas := ExtractFilePath(Application.ExeName) + '\SchemasCte'; DM1.ACBrCTe1.DACTe.PathPDF := PastaMensalCTe(DtInicial, 'PDF'); DM1.ACBrCTe1.Configuracoes.WebServices.UF := DMG.TB99100UF.Value; DM1.ACBrCTe1.Configuracoes.WebServices.Ambiente := StrToTpAmb(Ok, DM1.TB99840AMBIENTECTE.AsString); if DM1.ACBrCTe1.DACTe <> nil then begin DM1.ACBrCTe1.DACTe.Logo := DM1.TB99840LOGO.Value; DM1.ACBrCTeDACTeRL1.Logo := DM1.TB99840LOGO.Value; case DM1.TB99840DACTE.Value of 1: DM1.ACBrCTe1.DACTe.TipoDACTe := tiRetrato; 2: DM1.ACBrCTe1.DACTe.TipoDACTe := tiPaisagem; end; case DM1.TB99840VISUALIZADACTE.Value of 0: DM1.ACBrCTe1.DACTe.MostrarPreview := False; 1: DM1.ACBrCTe1.DACTe.MostrarPreview := True; end; end; case DM1.TB99840EMAILAUTO.Value of 0: EmailAuto := False; 1: EmailAuto := True; end; end; Daí criei uma procedure para ativar ou desativar os campos que "atrapalham" o local de salvar o pdf procedure TFRC_CTE.ConfigPDF(Liga: Boolean); begin with DM1.ACBrCTe1 do begin Configuracoes.Arquivos.OrdenacaoPath.Clear; Configuracoes.Arquivos.AdicionarLiteral := Liga; Configuracoes.Arquivos.Salvar := Liga; Configuracoes.Arquivos.SepararPorAno := False; Configuracoes.Arquivos.SepararPorCNPJ := False; Configuracoes.Arquivos.SepararPorDia := False; Configuracoes.Arquivos.SepararPorMes := Liga; Configuracoes.Arquivos.SepararPorModelo := False; end; end; Agora ficou fácil. Toda vez que vou gerar o pdf antes eu chamo a procedure ConfigPDF(False); Depois de gerar o pdf eu chamo a procedure novamente : ConfigPDF(True) ; Lembrando que pra geração de e-mail deve ser feito a mesma coisa. Espero ter ajudado.
  14. Boa tarde amigos, Atualizei os fontes hoje e estou tentando salvar o pdf. Antes eu fazia da seguinte forma. Dentro da pasta do anomes (201710) eu criava uma pasta PDF e lá salvava o arquivo normalmente. A propriedade pastapdf do dacte ficava por exemplo: C:\Sistema\ArqCte\201710\PDF Isso já bastava para salvar automaticamente nessa pasta Porém depois de atualizar eu continuo alimentando o componente com o mesmo path mas agora salva na seguinte pasta: C:\Sistema\ArqCTE\201710\PDF\CTeOS. Uma alternativa que eu percebi alterar a propriedade AdicionarLiteral para False porém isso vai atrapalhar o local para salvar o xml. Alguém sabe me dizer porque foi mudado isso no componente e como voltar como era antes? Grato
  15. Bom dia amigos, Preciso de programador free-lance com experiência em Delphi e Firebird (Datasnap, Dbxpress, firedac e ACBR) Caso alguém esteja interessado favor entrar em contato pelo skype cardilo ou pelo email rodrigo@cardilo.com Obrigado.
  16. Cara, é só seguir esse modelo que funciona. with seg.Add do begin if RadioGroup5.ItemIndex = 0 then respSeg := rsEmitente else respSeg := rsTomadorServico; end; with seg.Add do begin CNPJ := trim(cxTextEdit21.Text); xSeg := copy(trim(cxTextEdit19.Text), 1, 30); //CNPJCPF := trim(cxTextEdit21.Text); nApol := copy(trim(cxTextEdit20.Text), 1, 20); with aver.Add do begin nAver := '9988444'; end; end; Estou enviando sem problema.
  17. sim, isso mesmo
  18. nAver não pode ser zero. Usei a seguinte regra: Na NT 2017.002 há o seguinte: 4. Orientações de Preenchimento Informações da averbação do seguro (modal rodoviário): 1.Em caso de sucesso na comunicação entre transportador e seguradora, o campo número da averbação (nAver) poderá ser preenchido com o protocolo gerado pela seguradora. 2.Em caso de falha na integração entre transportadora e o sistema da seguradora da carga, poderá ser preenchida a tag do número da averbação (nAver) com a sequência 99999.
  19. Estou fazendo dessa maneira. A maioria das seguradoras que não tem o sistema integrado me retornaram dizendo que só geram o numero de averbação no mês subsequente da emissão dos ctes.
  20. Bom dia Bruno, Você não prefere utilizar essas configurações pelo banco de dados? Fica mais simples e fácil de alterar. Eu tenho cliente que possuem carteira de até 5 bancos ao mesmo tempo e funciona perfeitamente. Fica a dica. Abraço
  21. Galera, desculpe minha ignorância mas procurei vários exemplos no google para fazer esse método e não consegui achar nada que se enquadre em minha estrutura DataSnap (Firedac no servidor e DBX no cliente). Alguém aí tem alguma idéia ou um exemplo de como consigo fazer esse método? Grato
  22. Entendi.. Vou pesquisar esse método e tentar aqui.. Obrigado a todos pelas dicas.
  23. Mas como eu aplicaria o commit pela aplicação cliente?
  24. Amigo xyberx, eu imaginei que seria isso, mas na tecnologia firedac não tenho a mínima noção de como acionar o commit após o comando. Você sabe de algum exemplo que possa me explicar melhor o uso do commit? Grato desde já
  25. Agradeço a dica mas não resolve meu problema. Grato.
×
×
  • 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 9 segundos...