-
Total de ítens
260 -
Registro em
-
Última visita
Tudo que Rodrigo Cardilo postou
-
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á,
-
Problema ao Gerar VL_ABAT_NT no registro C170
Rodrigo Cardilo replied to Rodrigo Cardilo's tópico in ACBrSPEDFiscal
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. -
Problema ao Gerar VL_ABAT_NT no registro C170
Rodrigo Cardilo replied to Rodrigo Cardilo's tópico in ACBrSPEDFiscal
Bom dia, Segue unit corrigida. Aguardo atualização no svn. ACBrEFDBloco_C_Class.pas -
Problema ao Gerar VL_ABAT_NT no registro C170
Rodrigo Cardilo replied to Rodrigo Cardilo's tópico in ACBrSPEDFiscal
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 -
Problema ao Gerar VL_ABAT_NT no registro C170
um tópico no fórum postou Rodrigo Cardilo ACBrSPEDFiscal
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 -
Ja tentei sim.. Não funciona. :(
-
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á
-
Homologação arquivo remessa Bradesco CNAB 240
Rodrigo Cardilo replied to Fernando Rodrigo's tópico in ACBrBoleto
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 -
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á
-
Eu também estava com esse problema. Resolvi assim: ACBrNFe1.SSL.SSLXmlSignLib := xsLibXml2;
-
CTEOS Rejeicao: Versao informada para o modal nao suportada
Rodrigo Cardilo replied to Rodrigo Cardilo's tópico in ACBrCTe
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. -
CTEOS Rejeicao: Versao informada para o modal nao suportada
um tópico no fórum postou Rodrigo Cardilo ACBrCTe
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 -
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.
-
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
-
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.
-
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.
-
sim, isso mesmo
-
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.
-
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.
-
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
-
Delphi com DataSnap e FireDAC
Rodrigo Cardilo replied to Michel Ouriques's tópico in Object Pascal - Delphi & Lazarus
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 -
Delphi com DataSnap e FireDAC
Rodrigo Cardilo replied to Michel Ouriques's tópico in Object Pascal - Delphi & Lazarus
Entendi.. Vou pesquisar esse método e tentar aqui.. Obrigado a todos pelas dicas. -
Delphi com DataSnap e FireDAC
Rodrigo Cardilo replied to Michel Ouriques's tópico in Object Pascal - Delphi & Lazarus
Mas como eu aplicaria o commit pela aplicação cliente? -
Delphi com DataSnap e FireDAC
Rodrigo Cardilo replied to Michel Ouriques's tópico in Object Pascal - Delphi & Lazarus
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á -
Delphi com DataSnap e FireDAC
Rodrigo Cardilo replied to Michel Ouriques's tópico in Object Pascal - Delphi & Lazarus
Agradeço a dica mas não resolve meu problema. Grato.