Ivan Orosco
Membros-
Total de ítens
63 -
Registro em
-
Última visita
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
Ivan Orosco's Achievements
-
NFSeX - Método para gerar imagem BMP da Nota Fiscal
Ivan Orosco replied to Ivan Orosco's tópico in ACBrNFSe
Boa tarde, então, antes de implementar isso pesquisei e vi esse PDFToolkit, ele é pago... outras soluções disponíveis dependem da instalação da aplicação para abrir o pdf na maquina do usuário e não funcionaram muito bem, por isso acabei implementando a exportação de imagem mesmo. No entanto... entendo que faz sentido ter o mesmo recurso de uma engine de relatório para os outros já existentes, mas também entendo que uma coisa não exclui a outra, se alguém tiver a necessidade de fazer a mesma coisa que eu fiz para outro engine como o fast, que implemente, ja tem até o exemplo do código funcional pra isso... afinal eh um código aberto. Enfim, é uma pequena contribuição que fiz para o Fortes, um recurso a mais para o ACBRNFSeX, mas se não for aceita vou viver fazendo merge aqui só -
NFSeX - Método para gerar imagem BMP da Nota Fiscal
Ivan Orosco replied to Ivan Orosco's tópico in ACBrNFSe
Sim claro, tenho um pequeno sistema de controle de cobrança do qual existe uma funcionalidade que gera uma "previsão" de envio de cobrança, onde ele apresenta a mensagem que será enviada por e-mail "traduzida" de acordo com uma configuração de tags dinâmicas na mensagem original, e também apresenta a imagem do boleto gerado e a imagem da nota fiscal, tudo de uma maneira bastante simples, separado por 3 abas (Mensagem, Boleto, NFSe) para que o usuário visualize rapidamente essas informações antes de fazer o envio por e-mail. Se eu fosse utilizar o método de pré-visualização do componente de impressão não seria possível obter o mesmo resultado, nem mesmo utilizando o arquivo PDF gerado, que me forçaria a utilizar componentes externos para visualizar o seu conteúdo, por isso utilizei a implementação de geração de imagem de boleto que já existia e a refiz no ACBRNFSeX, pois inclusive quando a nota fiscal é gerada eu já gravo a imagem da mesma no banco para ser utilizada nessa pré-visualização de cobrança, resultando em uma operação muito mais rápida do que executar novamente o componente do ACBRNFSeX para montar a exibição da nota fiscal. []'s -
Ivan Orosco started following NFSeX - Método para gerar imagem BMP da Nota Fiscal
-
Olá, tive a necessidade de implementar um método para gerar a NFSe em formato de imagem BMP, gostaria que fosse anexado aos fontes do projeto, segue abaixo as alterações que realizei e os arquivos anexados: ACBrNFSeXDANFSeClass.pas: ///declaração procedure SalvarDANFSeBMP(NFSe: TNFSe = nil); overload; virtual; ///implementação procedure TACBrNFSeXDANFSeClass.SalvarDANFSeBMP(NFSe: TNFSe); begin ErroAbstract('SalvarDANFSeBMP'); end; ACBrNFSeXDANFSeRLClass.pas ///declaração procedure SalvarDANFSeBMP(NFSe: TNFSe = nil); overload; override; ///implementação procedure TACBrNFSeXDANFSeRL.SalvarDANFSeBMP(NFSe: TNFSe); var i: integer; begin TfrlXDANFSeRLRetrato.QuebradeLinha(TACBrNFSeX(ACBrNFSe).Provider.ConfigGeral.QuebradeLinha); if NFSe = nil then begin for i := 0 to TACBrNFSeX(ACBrNFSe).NotasFiscais.Count - 1 do begin if Trim(self.NomeDocumento) <> '' then FPArquivoPDF := PathWithDelim(Self.PathPDF) + self.NomeDocumento + '.bmp' else FPArquivoPDF := PathWithDelim(Self.PathPDF) + TACBrNFSeX(ACBrNFSe).NumID[TACBrNFSeX(ACBrNFSe).NotasFiscais.Items[i].NFSe] + '.bmp'; TfrlXDANFSeRLRetrato.SalvarBMP(Self, TACBrNFSeX(ACBrNFSe).NotasFiscais.Items[i].NFSe, FPArquivoPDF); end; end else begin if Trim(self.NomeDocumento) <> '' then FPArquivoPDF := PathWithDelim(Self.PathPDF) + self.NomeDocumento + '.bmp' else FPArquivoPDF := PathWithDelim(Self.PathPDF) + TACBrNFSeX(ACBrNFSe).NumID[NFSe] + '.bmp'; TfrlXDANFSeRLRetrato.SalvarBMP(Self, NFSe, FPArquivoPDF); end; end; ACBrNFSeXDANFSeRL.pas ///declaração class procedure SalvarBMP(ADANFSe: TACBrNFSeXDANFSeRL; ANFSe: TNFSe; AFile: String); overload; ///implementação class procedure TfrlXDANFSeRL.SalvarBMP(ADANFSe: TACBrNFSeXDANFSeRL; ANFSe: TNFSe; AFile: String); var DANFSeReport: TfrlXDANFSeRL; Bitmap: TBitmap; i: integer; NomeArquivo: string; begin DANFSeReport := Create(nil); try DANFSeReport.fpNFSe := ANFSe; DANFSeReport.fpDANFSe := ADANFSe; if ADANFSe.AlterarEscalaPadrao then begin DANFSeReport.Scaled := False; DANFSeReport.ScaleBy(ADANFSe.NovaEscala , Screen.PixelsPerInch); end; TDFeReportFortes.AjustarReport(DANFSeReport.RLNFSe, DANFSeReport.fpDANFSe); DANFSeReport.RLNFSe.Prepare; for i := 0 to DANFSeReport.RLNFSe.Pages.PageCount - 1 do begin Bitmap := NeedAuxBitmap; Bitmap.Width := DANFSeReport.RLNFSe.Pages[i].Width; Bitmap.Height := DANFSeReport.RLNFSe.Pages[i].Height; Bitmap.PixelFormat := pf32bit; Bitmap.Canvas.Brush.Color := clWhite; Bitmap.Canvas.Brush.Style := bsSolid; Bitmap.Canvas.FillRect(Rect(0, 0, Bitmap.Width, Bitmap.Height)); DANFSeReport.RLNFSe.Pages[i].PaintTo(Bitmap.Canvas, Rect(0, 0, Bitmap.Width, Bitmap.Height)); NomeArquivo := ChangeFileExt(AFile, ''); Bitmap.SaveToFile(NomeArquivo + FormatCurr('000', I+1) + '.bmp'); end; finally FreeAndNil(DANFSeReport); end; end; []'s ACBrNFSeXDANFSeClass.pas ACBrNFSeXDANFSeRL.pas ACBrNFSeXDANFSeRLClass.pas
-
UIA !!!!! RAPAIZ !!! Resolveu meu problema !!! tenho vários clientes que só usam POS, valeu Daniel, muito bom !!! Obrigado !!
-
Pesquisei aqui e vi que a REDE, CIELO e GETNET também dispõem dessas API para integração, aliás a da Cielo parece ser mais bem detalhada, será que não seria a hora de criar um novo componente ?ACBrPOS talvez ?
-
Ah sim, concordo que não apenas para uma, a idéia da stone foi apenas um exemplo onde temos uma API e um caso já implementado (vhsys) para "talvez" servir de base, vejo que assim como foi feito com o TEF e vários outros componentes, para cada adquirente existiria sua propria unit com os seus endereços das API para consumo. Não sei nem como seria o nome disso, acredito que não poderia ser TEF pois a aplicação apenas se integra ao POS, não realiza as transações financeias... por outro lado, as coisas são mais fáceis para o cliente final que apenas faz uso deste POS sem intermediários, além da flexibilidade de uso do POS de forma independente (fora do uso da aplicação) e também poder capturar essas transações. Enfim, fica a idéia
-
Entendi... então essa integração com a stone (por exemplo) não está cogitada então... na verdade, esse exemplo que dei é uma automatização da aplicação em utilizar as máquinas independentes da stone... nem sei dizer se isso se categoriza como TEF... pois pelo o que eu entendi a própria maquininha faz tudo com a operadora e apenas devolve o estado que pode ser capturado pela aplicação através de consulta da API no webservice deles né... Será que isso não vai se tornar uma tendência das operadoras e componentizar isso seria algo interessante ?
-
Daniel, aproveitando o gancho, vi no fórum dois posts seus comentando sobre o ACBrTEFAPI, que pelo que entendi ainda não está utilizável, por acaso seria algo que funcione conforme a API da stone ? descrita no link: https://connect.stone.com.br/docs e https://connect.stone.com.br/reference/token (métodos da API) Vi uma aplicação que já faz uso desta API, segue https://suporte.vhsys.com.br/integracao-com-stone/ Vai ser algo nesta linha ? []'s
-
Erro "Resource ACBR not found" ao atualizar ACBr
Ivan Orosco replied to Ivan Orosco's tópico in ACBrDiversos
Rapaiz, era isso mesmo !!! Muito Obrigado !!! []'s -
Prezados, boa noite... Utilizo XE7 aqui e mandei atualizar meu ACBR hoje logo cedo, dai executei o instalador sem problemas, ele compila e instala tudo com sucesso, mas ao abrir o delphi recebo o erro de falha ao carregar os componentes recém instalados. Inclusive se eu for no Install Packages e selecionar o ACBr - Biblioteca Designtime Comum (que é o ACBr_Comum e está desmarcado devido a falha na carga), ele apenas retorna o erro de "Resource ACBR not found", como consequência nenhum outro pacote mais funciona já que os que dependem dele não carregam. Já removi todos os componente do ACBR manualmente do Install Packages, já executei o apagarAcbr.bat para excluir tudo o que foi criado dele e até já exclui a pasta do ACBR e baixei ela inteira novamente, porém o problema persiste. Também já tentei limpar tudo de novo e compilar manualmente, dai compilo o pacote synapse, compilo o ACBr_Comum e ao tentar INSTALAR (compilar vai) o pacote DCLACBr_Comum ele já me dá o erro "Resource ACBR not found". Me parece estar faltando alguma configuração específica de alguma coisa... Alguém teria alguma dica ?
-
Pessoal, boa tarde, estou tendo problemas para utilizar o servidor Smarapd, esta retornando a mensagem de "Senha Invalida", vi que este problema já foi discutido neste tópico porém sem explicação de como resolvê-lo. Já acessei o site com o login e senha normalmente, porém utilizando o ACBRNFSe ele simplesmente retorna o erro, o cliente diz que não acessa por certificado digital, então fico na dúvida de como configurar o componente. Configurei a propriedade SSLLIB como libWinCrypt, também testei como Capicom e SSLType como LT_all, porém o erro permanece, alguém tem algum exemplo de configuração para este provedor para a cidade de SERRA (3205002) ?
-
Retorno da Receita de SP - Rejeição: Falha no schema XML
Ivan Orosco replied to Isael Faria Junior's tópico in ACBrNFe
Apenas para tentar contribuir... eu estava com este problema ontem, resolvi configurando diretamente no componente as seguinte propriedades: ACBrNFe1.Configuracoes.Geral.SSLCryptLib com cryWinCrypt ACBrNFe1.Configuracoes.Geral.SSLHttpLibe com httpWinHttp ACBrNFe1.Configuracoes.Geral.SSLLib com libCustom ACBrNFe1.Configuracoes.Geral.SSLXmlSignLib com xsMsXml Detalhe que quando se seta a propriedade SSLCrypt para o valor WinCrypt ele já ajusta as outras propriedades porém na SSLXmsSignLib ele atribui xsMsXml2, dai dava o erro, foi eu trocar ele para xsMsXml e passou a validar e transmitir corretamente para o webservice de SP, acho que tem a ver com as bibliotes de validações de xml gerenciadas pelo windows. Espero que ajude. []'s -
Pessoal, para ajudar quem estiver passando pela mesma situação, consegui "resolver" o meu problema aqui (graças a umas dicas valiosas do Regys), não sei se é a melhor maneira, mas funcionou, basicamente configurei diretamente no meu componente as propriedades da seguinte maneira: //estes configurei diretamente no componente ACBrNFe1.Configuracoes.Geral.SSLCryptLib := cryWinCrypt; ACBrNFe1.Configuracoes.Geral.HttpLib := httpWinHttp; ACBrNFe1.Configuracoes.Geral.SSLLib := libCustom; ACBrNFe1.Configuracoes.Geral.SSLXmlSignsLib := xsMsXml; ACBrNFe1.Configuracoes.WebServices.SSLType:=LT_TLSv1_2; //estes foram diretamente via código ACBrNFe1.Configuracoes.WebServices.TimeOut := 15000; ACBrNFe1.Configuracoes.WebServices.AguardarConsultaRet := 5000; ACBrNFe1.Configuracoes.WebServices.IntervaloTentativas := 5000; ACBrNFe1.Configuracoes.WebServices.Tentativas := 10; ACBrNFe1.Configuracoes.WebServices.AjustaAguardaConsultaRet := True; ACBrNFe1.SSL.SSLType:=LT_TLSv1_2; Dai foi !!! Como disse, não sei se é a melhor ou a maneira mais correta, se alguém tiver alguma observação fique a vontade para comentar e contribuir. []'s
-
Bom dia, estou com 2 clientes que estão com este mesmo problema de erro em branco e não conseguem emitir nenhuma nota. Notei que se simplesmente mandar consultar o status do serviço pelo componente também ocorre o mesmo erro, já segui as orientações do Regys mais acima e também já fiz o teste utilizando sleep sugerido pelo Jakson, porém, depurando eu vejo que o problema sempre ocorre com o retorno da chamada do webservice voltando em branco sempre mesmo antes de passar pelo sleep. Este cliente estava emitindo notas normalmente até dia 31/07/2018 e não houve nenhuma alteração de versão, ambiente, nada, simplesmente começou a retornar este erro em branco. Será que teria a ver com alguma definição nova que passou a vigorar a partir de 01/08 pela Receita de SP ? Curiosamente tenho outros clientes que continuam emitindo nota normalmente, apenas estes dois não conseguem emitir de maneira nenhuma e já comparei as configurações e estão todas idênticas. Alguém teria alguma sugestão ? []'s