Ir para conteúdo
  • Cadastre-se

Daniel Schroeder

Membros
  • Total de ítens

    18
  • Registro em

  • Última visita

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Daniel Schroeder's Achievements

Apprentice

Apprentice (3/14)

  • Reacting Well Rare
  • First Post
  • Collaborator Rare
  • Week One Done
  • One Month Later

Recent Badges

7

Reputação

  1. Obrigado!
  2. Tivemos um merge hoje referente a estes novo banco - foi ajustado novamente a unit: ACBRBoleto dai ACBrBoleto.pas
  3. - Testes: RoHS PT-80A 80mm POS-58 Thermal Printer mais antiga Bematech 2500TH (Esta com problema já firmware ou placa - horas funcionava ESC/POS horas não, a modo grafico ficava lento e cortava quando muitos itens - (apesar que bema demais funciona no ESC/POS certo)) - mudemos pra este modo - assim aguenta mais um tempo.
  4. Olá, Esta aparecendo direto algumas impressoras "baratas importadas" que não esta suportando a impressão do QrCode - muitas seguindo mudanças sugeridas aqui no forum funcionam mais outras apenas enviando a imagem do "qrcode", acabei fazendo um certo "xunxo" no ACBrNFeDANFeESCPOS, um meio de customizar já no componente a função patra transformar a url da nfce para bitmap e desta fazer a rasterização com base nos métodos aqui fornecido no forum. Inclui estas propriedades property SuportaTagQRCode : Boolean read FSuportaTagQRCode write FSuportaTagQRCode default True; property TamQRCodeBMP : Integer read FTamQRCodeBMP write FTamQRCodeBMP default 300; e alterando o método: function TACBrNFeDANFeESCPOS.GerarInformacoesQRCode(const DadosQRCode: String; Cancelamento: Boolean): String; Função: function TACBrNFeDANFeESCPOS.GerarInformacoesQRCode(const DadosQRCode: String; Cancelamento: Boolean): String; var InfoQrCode: TStringList; begin InfoQrCode := TStringList.Create; try if Cancelamento then begin InfoQrCode.Add('</fn></linha_simples>'); InfoQrCode.Add('</ce>Consulta via leitor de QR Code'); end; if FSuportaTagQRCode then begin InfoQrCode.Add( '<qrcode_tipo>'+IntToStr(FPosPrinter.ConfigQRCode.Tipo)+'</qrcode_tipo>'+ '<qrcode_error>'+IntToStr(FPosPrinter.ConfigQRCode.ErrorLevel)+'</qrcode_error>'+ '<qrcode_largura>'+IntToStr(FPosPrinter.ConfigQRCode.LarguraModulo)+'</qrcode_largura>'+ '<qrcode>'+DadosQRCode+'</qrcode>'); end else begin var bmp : TBitmap := TBitmap.Create; PintarQRCode(DadosQRCode, bmp, qrAuto); var buffer: TBitmap; buffer := TBitmap.Create; try buffer.SetSize(TamQRCodeBMP, TamQRCodeBMP); buffer.Canvas.StretchDraw(Rect(0, 0, TamQRCodeBMP, TamQRCodeBMP), bmp); bmp.SetSize(TamQRCodeBMP, TamQRCodeBMP); bmp.Canvas.Draw(0, 0, buffer); finally buffer.Free; end; var SL : TStringList := TStringList.Create; var MS : TMemoryStream := TMemoryStream.Create; var AWidth, AHeight: Integer; var ARasterStr: AnsiString; try bmp.SaveToStream(MS); MS.Position := 0; BitmapToRasterStr(bmp, True, AWidth, AHeight, ARasterStr); RasterStrToBMPMono(ARasterStr, AWidth, True, MS); BMPMonoToRasterStr(MS, True, AWidth, AHeight, ARasterStr); RasterStrToAscII(ARasterStr, AWidth, False, SL); InfoQrCode.Add('<bmp>'); InfoQrCode.AddStrings(SL); InfoQrCode.Add('</bmp>'); finally MS.Free; SL.Free; end; end; if Cancelamento then begin InfoQrCode.Add(ACBrStr(TagLigaCondensado+'Protocolo de Autorização')); InfoQrCode.Add(TagLigaCondensado + Trim(FpNFe.procNFe.nProt) + ' ' + IfThen(FpNFe.procNFe.dhRecbto <> 0, DateTimeToStr(FpNFe.procNFe.dhRecbto), '') + '</fn>'); InfoQrCode.Add('</linha_simples>'); end; finally Result := InfoQrCode.Text; InfoQrCode.Free; end; end; Atendeu de momento meu problema, gostaria de melhorar isso, pois tbm teria de colocar lá na impressão da CF-e esta funcionalidade, deixar um código mais legal - padronizado, seria este o meio correto - tem tem algo mais pratico. ACBrNFeDANFeESCPOS.pas
  5. Bom Dia. Encontrei um poblema no arquivo: ACBrPAF_P_Class.pas Na linha > 146 Check(Trim(FRegistroP1.CNPJ)=EmptyStr, '(P1) Não tem CNPJ'); Tenho informação vinda do "Trim(FRegistroP1.CNPJ)" porém esta me estourando erro; Tive que mudar para: Check(Trim(FRegistroP1.CNPJ)<>EmptyStr, '(P1) Não tem CNPJ'); Demais esta tudo certo a principio, tenho mapeado o evento: ACBrPAFError(const MsnError: string); ACBrPAF_P_Class.pas
  6. Em teoria usando a lógica do ECFVirtual funcionou,... mais dependendo os desconto "loco", ou por ser mesmo muito valor/qtd quebrado feito pelo cliente, no bloco x estava tendo alguns centavos de diferença, resolvi pegando a diferença final, e ajustando a menos ou a mais para tal item de determinado totalizador F1, 17, I1, etc...
  7. Boa Tarde,.. seria possível disponibilizar este fontes,.. para continuidade...
  8. Achei a solução baseado no ACBrECFVirtual, ele possui todo calculo de rateio de desconto e questão residual. Estamos em testes nos diferentes cenários... Obrigado.
  9. Boa Tarde. Na bematech eles dão uma explicação sobre o correto rateio: Teoria: http://partners.bematech.com.br/bemacast/Paginas/post.aspx?idPost=5790 Prática: http://bematechpartners.com.br/wiki/index.php/2017/12/05/cupom-fiscal-exemplo-de-calculo-de-rateio-de-desconto-2/ Agora é implementar a causa, quem fazer antes posta o código aqui!
  10. Achei um esquema aqui, vlw https://www.ocominc.com/pt/news/Cash-Drawer-RJ11-Diagram.html Vou testar...
  11. Boa Tarde. Referente ao ACBrGAV - Gaveta por ECF Como funciona o circuito da gaveta, executado pelo ECF, (desculpa a ignorância), mais qual palavra chave a pesquisar sobre o fato, pois tive alguns problemas que tivemos de testar gaveta, e pelo emulador não rolou, então la vai emprestar uma gaveta, como trabalho em alguns projetos de eletrônica, esta pensando em montar algum esquema por LED....
  12. Boa Tarde. Aviso que agora funcionou com este arquivo. Italo. Efetuado testes com Certificado A1 e A3 no provedor Betha.
  13. Bloco X revogado novamente, fiquei sabendo de algumas fontes (contabilidades) aqui de jaraguá do sul - sc
×
×
  • 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.