Ir para conteúdo
  • Cadastre-se

Marcos Gerene

Membros
  • Total de ítens

    514
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Marcos Gerene postou

  1. Boa tarde a todos, Estou com um "dilema teórico". Hoje guardo meus XMLs de DFes (documentos fiscais eletronicos, como NFe, SAT, MDFe, etc.). em uma pasta na instalação principal do sistema (servidor) e compartilho esta pasta para ser usado entre os clientes que vão ler, modificar, salvar novos arquivos nestas pastas. Bom isto funciona perfeitamente, mas requer uma instalação mais "profissional" do sistema, ou seja, uma intervenção minha ou de terceiros para compartilhar esta pasta, setar localmente nos clientes e afins. Para melhorar isto, a tempos venho cogitando salvar estes XMLs no banco de dados, mais precisamente em tabelas "próprias" (ex: alem da tabela NFe, teria a NFE_XML com a chave, a acao (envio, cancelamento) e o arquivo.xml salvo em um blob) para não atrapalhar na performace das tabelas principais (ex: NFe, CFe). Com isto posso ter um instalador simples aonde eu simplesmente abro a porta do banco de dados e instalo o sistema "completo" ou na versão client buscando o banco de dados instalado. Eis alguns pontos que levantei: - Performace: acredito que separando as tabelas dos XMLs não tenho grandes perdas, até tenho algum ganho em redes ruins (na busca pelo arquivo XML); - Tamanho do BD: meus maiores clientes hoje emitem em dias de pico 200 DFes (entre SAT, NFe, MDFe), isto multiplicado por 26 (dias do mes de segunda a sabado) por uma média de 10Kb me daria 48Mb/mês, ou pouco mais de meio Gb ano, 5Gbs em 10 anos, não vejo este tamanho como grande problema (repare que estou trabalhando com dias de pico nos maiores clientes como padrão). - Programação: Acho que refatoro isso no sistema em 5/6 dias; Hoje o meio maior custo seria importar os XMLs dos meus clientes já existentes para o banco, isto levaria tempo e teria um custo um pouco alto, então não queria dar este passo a toa. Bem, minha dúvida é: alguém aqui trata os arquivos XMLs dessa forma? Quais seriam os pontos negativos desta mudança? hoje me parecer ser uma ideia muito viável... Obrigado a todos pela força,
  2. O executável caiu para 6Mb, porém não consigo debugar. Pelo que entendi, quando eu compilar para debugar devo marcar esta opção, quando for compilar para release devo desmarcar, certo? Obrigado pela ajuda, abraço
  3. Boa tarde, Tenho uma aplicaçãozinha em Lazarus cujo o único objetivo é imprimir os XMLs gerados pelo ACBr.Net.Sat. A aplicação usa p ACBrSat e o ACBrSATExtratoFortesFr. O problema é que a aplicação compilada fica com quase (impressionantes) 50Mb. Até então isto me causava um certo incomodo mas nunca foi um problema. Hoje, navegando "a paisana" eu "tropecei" neste post https://www.vivaolinux.com.br/dica/Reduzindo-o-tamanho-dos-executaveis-gerados-pelo-Lazarus-(via-IDE) gostaria de saber da opinião da comunidade se é válido fazer esta mudança ou se prejudicaria em algo a saúde do executável. Abraços
  4. Bom dia, Talvez eu tenha me expressado mal, mas apesar de ser vital, não se trata do ACBr em si. Trocando em miúdos, a existência deste sub-forum foi o que me serviu de base para dar a sugestão acima, na minha visão (como membro da comunidade) acho que não seria algo tão "na contramão" do que já temos. Agradeço a atenção e a cordialidade e aguardo seu retorno, Abraço
  5. Boa noite a todos, Acredito que muitos aqui diariamente tem contato vários bancos de dados diferentes, seja por meio de importações de outros sistemas, seja para acessar sistemas de terceiros para trocar informações e afins. Recentemente ajudei um colega recuperar um banco Firebird que não estava restaurando com técnicas básicas como ignorar índices e reativa-los manualmente, parece simples, mas para um iniciante sem domínio do inglês, encontrar a solução seria penoso. Isto me fez recordar de quando a um bom tempo atrás tive dificuldades com o Lazarus e que um sub-forum aqui da comunidade (http://www.projetoacbr.com.br/forum/forum/12-object-pascal-delphi-lazarus/) me ajudou muito. Ao meu ver, este sub-forum não tem relação nenhuma com o ACBr, o que. para mim, significa que o forum vai além de uma "Comunidade ACBr" e é uma comunidade de desenvolvedores. Pensando desta forma, vim dar a sugestão de que fosse criado um novo sub-forum "Banco de Dados", aonde poderiamos debater e trocar informações sobre os bancos de dados disponíveis no mercado. É só uma sugestão, acredito que fuja completamente da finalidade de nossa comunidade, mas visto o tamanho da comunidade (número de adeptos) ACBr e que aqui, se não todos, a esmagadora maioria tem contato com banco de dados todos os dias, ao meu ver, seria pertinente. Abraço a todos, Marcos Gerene
  6. Bom dia Juliomar, Agradeço a atenção, mas além do meu prazo já ter estourado não tenho conhecimento o suficiente para tal e continuo com o problema do WebService... Este tópico acabou tendo o assunto desviado, posso reabri-lo ou deixo como está?
  7. Todos os estados do GNRe são atendidos pelo PE, menos RJ, ES e SP que tem estrutura completamente distintas, acredito que ou eu ou você estamos equivocados nisto. A estrutura do ACBrGNRe (até aonde me parece, me corrija se eu estiver errado) foi toda feita para PE (nacional), logo não atenderia RJ e ES, justamente por isso estou usando o Webservice, logicamente seria muito mais comodo usar o ACBr...
  8. hoje o ACBRGNRe já atende Rio de Janeiro e Espírito Santo? Até a minha ultima tentativa de utilizar só atendia PE... Aliás, você mesmo disse isto aqui: Estou com esta dificuldade (RJ) a algum tempo nos dois tópicos obtive resposta diferentes, estou um pouco confuso, pois pelo que vi do código ele foi todo desenvolvido para estrutura do PE.
  9. Juliomar,o ACBrGNRe já atende o RJ e ES? Se sim, esta foi a melhor noticia do dia,rs. Consigo mudar em tempo de execução? Preciso usar PE, ES e RJ
  10. Boa tarde, Estou tentando consumir o webservice do gnre do estado do Rio de Janeiro. Alimento os campos, mas na hora de enviar os dados recebo o seguinte retorno: Para ver o xml que estava sendo gerado no meu compoente Request (do tipo THTTPRio) coloquei o seguinte no BeforeExecute; procedure TFrmPrincipal.RequestBeforeExecute(const MethodName: string; SOAPRequest: TStream); var xml:TXMLDocument; begin try xml := TXMLDocument.Create(Self); xml.XML.Add( WideString(SOAPRequest) ); xml.SaveToFile('C:\temp\Request.xml'); finally xml.Free; end; end; Porém na linha que tentava pagar o SOAPRequest eu recebia AcessViolation porque o mesmo estava null. Estou tentando entrar em contato com o Sefaz do RJ para buscar apoio, mas ainda não obtive resposta. Em anexo está minha função que deveria gerar o GNRe e o webservice, alguém que consome pode me apontar aonde estou errando? PS: Sei que não se trata de um componente ACBR, justamente por isto estou postando em dúvidas sobre Delphi/Lazarus e como presumo que mais gente use o webservice do rj aqui para GNRe achei que seria viável questionar. funcao.txt GerarDocumentoArrecadacaoWS1.pas Obrigado desde já, Marcos Desculpem, faltou postar o "erro inicial".
  11. Na verdade minha dúvida é sobre Lazarus (que ainda era novidade para mim), acabou que o problema foi direcionado ao Firebird, mas obrigado pela ajuda, você me respondeu prontamente, e esteve disposto a ajudar, obrigado mesmo. Fiz um teste aqui usando o Zeos com o Lazarus e setando tudo bonitinho, Character Set para NONE e marcando a opção AutoEncodeString e "por mágica" funcionou perfeitamente. Muito obrigado Daniel e Isaque, Abraços PS: A solução no meu caso foi migrar para o Zeos.
  12. @Isaque Pinheiro e @Daniel Simoes Tentei no sql da Query usar um cast assim CAST( CAMPO AS VARCHAR(X) CHARACTER SET WIN1252) Continuou igual... Sei que o @Daniel Simoes usa Linux, sabe dizer se o Win1252 (por ser Microsoft) rodaria no Linux?
  13. Não uso somente para o ACBr, acabei usando o Lazarus para mais coisas como relatórios, não gostei do ReportViewer e adaptei o FortesReport para meus relatórios também, e foi justamente nos relatórios que notei este problema.
  14. Migrei minha base usando no restore -FIX_FSS_M e -FIX_FSS_D para WIN1252, UTF8 e ISO8859_1 e não obtive sucesso. Parâmetros usados no Backup -b -v -n Parâmetros usados no Restore -create -v -fis_fss_m -fix_fss_d Migrei errado?
  15. Boa tarde Isaque, Obrigado pela resposta. 4 Perguntas: 1. mudo na base? 2. posso usar ISO8859_1 ao invés de WIN1252? 3. WIN1252 vai rodar em Linux? 4. Tem como mudar todas as tabelas de uma vez?
  16. Bom dia, Tenho uma aplicação em C# (WinForms com VS 2015 Community) e uso o Firebird 2.5.5 para armazenamento no banco. Para poder usar o ACBr, criei um módulo em Lazarus (versão 1.4.4) com o qual troco XMLs de requisição e respostas. O problema é que em campos varchar no meu banco de dados, no VS2015 (C#) está ok e no Lazarus não. Exemplo: JOÃO -> Visual Studio JO?O -> Lazarus Uso no lazarus o TIBConnection para conexão (aquele nativo que tem o iconezinho do firebird). Meu banco Firebird está com o Character Set definido como NONE. Devo fazer alguma alteração na base? É possível "corrigir" de forma simples no Lazarus (tenho preferência de mexer na base somente em ultimos casos). Obrigado, Marcos Gerene
  17. Boa noite a todos, Estou desenvolvendo uma aplicação em Lazarus para rodar em Windows, Linux e OSX (Apple PC). Os únicos componentes não-nativo que uso neste sistema são o FortesReporteCE (para o ACBr) e o ACBr (SAT, NFe, MDFe e SPED). Li em diversos tópicos que o pessoal roda com sucesso o ACBr no Linux, mas pesquisando sobre OSX achei somente este tópico abaixo que já é um pouco antigo (trunk1 ainda): Podem me informar como andam estas questões com a mudança para o Trunk2? Alguém hoje usa os componentes que listei em OSX? Obrigado, Marcos
  18. Bom dia, Não,só preencher o valor e boa...Na Elgin coloquei 50 para cortar aonde eu queria (meio centímetro abaixo do QRCode). []'s
  19. Bom dia a todos, Existe alguma forma de pegar a data de um arquivo na web pela URL via Delphi? Ex:http://www.meuservidor.combr/arquivo_atualizacao.exe
  20. @Daniel Simoes, Se puder corrigir, por favor suba as 2 units abaixo. Motivos: 1. Estava colocando o tamanho depois de calcular o tamanho total do cupom, no meu caso ate dava certo porque era exatamente o que eu usava, então passou desapercebido 2. Quando testei colocava uma linha no final, sem essa linha o panel "em branco" simplesmente não funcionava, testei agora sem a linha e não foi, voltei a linha e funcionou, então algo tem que ser colocado no panel para que ele não seja "ignorado". ACBrSATExtratoFortesFr.pas ACBrSATExtratoFortesFr.lfm Obrigado, abraços
  21. Boa noite a todos, Fiz uma pequena alteração acrescentando uma propriedade "Espaço Final" com valor padrão 0 que determina o tamanho de um panel no bottom do rodapé da venda e do cancelamento do SAT. O objetivo é remover a necessidade atual do cliente avançar o papel manualmente para não cortar em cima do QrCode em impressoras como a Elgin i9. Segue units para commit. ACBrSATExtratoFortes.pas ACBrSATExtratoFortesFr.lfm ACBrSATExtratoFortesFr.pas Feliz Páscoa a todos. []'s Perdão galera, acabei subindo antes de testar, a propriedade é a Height (altura) e não Width (largura) como eu havia dito anteriormente, segue a unit corrigida: ACBrSATExtratoFortesFr.pas
  22. Boa tarde @Juliomar Marchetti, Justamente por isso postei em Object Pascal - Delphi & Lazarus , minha dúvida é sobre o consumo do webservice, não tem relação alguma com o ACBrGNRe. []'s
  23. Boa tarde a todos, Estou tentando consumir o webservice do Rio de Janeiro para emissão de Guias do GNRe mas venho tendo um pouco de dificuldade. O que estou fazendo: procedure TFrmPrincipal.GerarRJ; const url_rj:string='http://www1.fazenda.rj.gov.br/projetoGCTBradesco/br/gov/rj/sef/gct/webservice/GerarDocumentoArrecadacaoWS.jws?WSDL'; codigo_produto:integer=469; { 469 - Produtos alimentícios } var idx:integer; wsrjEmit:WSGnreRJ.Emitente; wsrjDocs:WSGnreRJ.ArrayOfDocumento; wsrjItens:WSGnreRJ.ArrayOfItemPagamento; wsrj:WSGnreRJ.GerarDocumentoArrecadacaoWS; wsrjRetorno:WSGnreRJ.ChamadaDadosWebServiceRefLote; begin try wsrjEmit := WSGnreRJ.Emitente.Create; wsrjEmit.CnpjEmitente := StrToInt64(getCNPJ(QryEmpresa.FieldByName('EMP_CNPJ').AsString)); wsrjEmit.Email := QryEmpresa.FieldByName('EMP_EMAIL').AsString; SetLength(wsrjDocs, 1); wsrjDocs[0] := WSGnreRJ.Documento.Create; wsrjDocs[0].DataPagamento := FormatDateTime('dd/mm/yyyy', IncDay(Date(),1)); wsrjDocs[0].TipoDocumento := 2; { 1. DARJ, 2. GNRE } wsrjDocs[0].TipoPagamento := 1; { 1. ICMS/FCP } try QryNotasFiscais.DisableControls; QryNotasFiscais.First; while not QryNotasFiscais.Eof do begin if ( QryNotasFiscais.FieldByName('VEN_SELECIONADO').AsInteger = 1 ) then begin idx :=Length(wsrjItens); SetLength(wsrjItens, idx+1); wsrjItens[idx] := WSGnreRJ.ItemPagamento.Create; wsrjItens[idx].CepContribuinte := StrToIntDef(SoNumeros(QryEmpresa.FieldByName('EMP_CEP').AsString),0); wsrjItens[idx].Cnpj := wsrjEmit.CnpjEmitente; wsrjItens[idx].CodigoProduto := codigo_produto; wsrjItens[idx].DataFatoGerador := FormatDateTime('dd/mm/yyyy', QryNotasFiscais.FieldByName('VEN_FATURAMENTO').AsDateTime); wsrjItens[idx].DataVencimento := wsrjDocs[0].DataPagamento; wsrjItens[idx].EnderecoContribuinte := TiraAcento(QryEmpresa.FieldByName('EMP_ENDERECO').AsString + ', ' + QryEmpresa.FieldByName('EMP_NUMERO').AsString); wsrjItens[idx].MunicipioContribuinte := TiraAcento(QryEmpresa.FieldByName('CID_DESCRICAO').AsString); wsrjItens[idx].UfContribuinte := TiraAcento(QryEmpresa.FieldByName('CID_UF').AsString); wsrjItens[idx].Natureza := 3; { 3. Diferencial de Alíquota } wsrjItens[idx].NaturezaQualificacao := 1; { 1. Normal } wsrjItens[idx].NomeRazaoSocial := TiraAcento(QryEmpresa.FieldByName('EMP_RAZAO').AsString); wsrjItens[idx].NotaFiscalCnpj := wsrjEmit.CnpjEmitente; wsrjItens[idx].NotaFiscalDataEmissao := wsrjItens[idx].DataFatoGerador; wsrjItens[idx].NotaFiscalNumero := QryNotasFiscais.FieldByName('VEN_NF').AsInteger; wsrjItens[idx].NotaFiscalSerie := QryNotasFiscais.FieldByName('VEN_SERIE').AsInteger; wsrjItens[idx].NotaFiscalTipo := 'NF-e'; { M - Manual, PD - Processamento de Dados, NF-e - Nota Fiscal Eletrônica } wsrjItens[idx].NumControleContribuinte := QryNotasFiscais.FieldByName('VEN_NF').AsString + QryNotasFiscais.FieldByName('VEN_SERIE').AsString; wsrjItens[idx].PeriodoReferenciaAno := StrToInt( Copy(wsrjItens[idx].DataFatoGerador,7,4) ); wsrjItens[idx].PeriodoReferenciaMes := StrToInt( Copy(wsrjItens[idx].DataFatoGerador,4,2) ); wsrjItens[idx].TipoId := 1; {1. CNPJ, 2. CPF, 3. Passaporte} wsrjItens[idx].ValorFECPPrincipal := QryNotasFiscais.FieldByName('VALOR_FCP').AsFloat; wsrjItens[idx].ValorICMSPrincipal := QryNotasFiscais.FieldByName('VALOR_DESTINATARIO').AsFloat; wsrjItens[idx].ValorTotal := wsrjItens[idx].ValorICMSPrincipal + wsrjItens[idx].ValorFECPPrincipal; end; QryNotasFiscais.Next; end; finally QryNotasFiscais.EnableControls; end; if (Length(wsrjItens) > 0) then begin wsrjDocs[0].ItensPagamentos := wsrjItens; Request.URL := url_rj; wsrj := Request as GerarDocumentoArrecadacaoWS; wsrj := GetGerarDocumentoArrecadacaoWS(true, '', Request); wsrjRetorno := wsrj.enviarDados(wsrjEmit, wsrjDocs); Memo1.Lines.Add('----------------'); Memo1.Lines.Add('IdSessao: '+wsrjRetorno.IdSessao); Memo1.Lines.Add('Cod. Retorno: ' + IntToStr( wsrjRetorno.Retorno.CodigoRetorno )); Memo1.Lines.Add('Msg. Retorno: ' + wsrjRetorno.Retorno.MensagemRetorno); end; finally wsrjEmit.Free; end; end; Unit do webservice: WSGnreRJ.pas O erro: Ocorre na linha: wsrjRetorno := wsrj.enviarDados(wsrjEmit, wsrjDocs); Tentei ver o que havia nesse XML no evento beforepost do meu objeto Request(THTTPRIO) dessa forma: procedure TFrmPrincipal.RequestBeforeExecute(const MethodName: string; SOAPRequest: TStream); var xml:TXMLDocument; begin try xml := TXMLDocument.Create(Self); xml.XML.Add( WideString(SOAPRequest) ); xml.SaveToFile('C:\temp\Request.xml'); finally xml.Free; end; end; Porém o parâmetro SOAPRequest vem vazio, como se a requisição fosse sem nenhum dado. ========================================================================= Meu ambiente: Windows 10 Delphi 2010 ========================================================================= Obrigado pela força galera, []'s
  24. Boa tarde, Não entendi o que quis dizer... SP não tem webservice, mas RJ e ES tem, só não são atendidos por PE... eu quero mandar guias para o RJ e ES, a minha dúvida é se o componente atende ou se alguém pretende implementar para que eu possa ajudar. abraço
  25. Marcos Gerene

    [GNRe] - RJ e ES

    Boa tarde, O componente ACBrGNRe atende os estados de RJ e ES? Se não atende, alguém já fez a integração de outra forma? Existe alguém pensando em implementar RJ ou ES no ACBrGNRe para que eu possa colaborar? Obrigado, Marcos
×
×
  • 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...