Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 21-08-2015 em todas as áreas

  1. Olá Pessoal, Apliquei várias modificações no componente TACBrPosPrinter... principalmente na maneira como ele inicializa a Impressora e no controle da Gaveta... Espero não ter "quebrado" nada, porém se notarem NOVOS problemas após essa atualização, por favor me notifiquem... Vou atualizar o Demo compilado, na área de downlodas
    4 pontos
  2. Mestre , de uma forma bem genérica: IPI no sat esquece, não existe. Nunca se esqueça que SAT é venda a consumidor final no balcão. Se a empresa for SIMPLES NACIONAL, voce vai mandar PIS e COFINS: 49. com as tags: PISSN E COFINSSN Se a empresa não for simples nacional: para produto com CST do produto igual a 00 ou 40 ou 41 - CST do pis e cofins = 01 CST do produto igual a 60 e o produto for monofásico : CST do pis e cofins 04 CST do produto igual a 60 e o produto não for monofásico CST do pis e cofins 99 e base de calculo e percentual zerados De uma olhada nesse manuais da sefaz e Orientações LeioutCFe: http://www.fazenda.sp.gov.br/sat/downloads/Especificacao_SAT_v_ER_2_15_04.pdf http://www.fazenda.sp.gov.br/sat/downloads/Manual_Orientacao_SAT_v_MO_2_12_12.pdf OrientaçõesLeiauteCF-e_v00.05-0 - AD.pdf Em tempo: Se a empresa não for SIMPLES NACIONAL as aliquotas de PIS e COFINS são: Lucro Real PIS: 1.65 e COFINS: 7.60 Lucro Presumido: Pis: 0.65 e Cofins 3.00
    2 pontos
  3. Version 4.2.0

    6.115 downloads

    Programa de Teste e Exemplo do componente TACBrPosPrinter, que será disponibilizado no "trunk2"... Por favor execute com o seu modelo de Impressora NÃO fiscal, e reporte os resultados... -- ACBrPosPrinter -- [+] Criado novo componente: TACBrPosPrinter, que permite manipular Impressoras NAO fiscais, de bobina, usando a linguagem EscPos ou similares, por meio de TAGS no texto. Controla a formatação de caracteres Ex: Negrito, expandido, condensado, etc e a impressão de Cod.Barras e QRCode. Compatível com: ppEscPosEpson, ppEscBematech, ppEscDaruma
    1 ponto
  4. Bom, depois de muitas horas, consegui colocar para funcionar a função de procurar porta no Firemonkey. Não tive a oportunidade de testar todo o componente, mas pelo que pude verificar a única coisa que impedia ele de funcionar como deveria era o formulário de diálogo do ACBrECF. Então venho aqui trazer as modificações e suas justificativas. Observações Todas as alterações foram testadas em uma impressora DARUMA MACH 2. A versão do Delphi foi XE8 Trial, muito provável alguma coisa ou outra não vá funcionar em XE5-XE2 sem alguma alteração muito pequena.(talvez apenas tipos). Foi adicionado um IFDEF VER290(XE8) , cabe a alguém testar em versões anterior e verificar o funcionamento. Novas USES (Somente FMX) System.Character - Utilizada para conversão em variáveis do tipo CHAR. System.Types - Utilizada para utilização em run-time de variáveis do tipo TRectF em canvas do Firemonkey. System.UIConsts - Utilizada para conversão de variáveis do tipo cor do Firemonkey (TAlphaColor). Problemas Encontrados Não era possível exibir formulários em run-time no firemonkey, apresentava erro de resource, a solução foi utilizar o CreateNew: {$IFNDEF FMX} fsFormMsg := TForm.create( Application ) ; {$ELSE} fsFormMsg := TForm.CreateNew( Application ) ; {$ENDIF} A cor de fundo do formulário não era alterada: fsFormMsg.Fill.Kind := TBrushKind.Solid; As propriedades da fonte como também sua cor não era possível de serem alteradas (foi adicionado uma tarefa por vocês para futuro). Uma observação é que a propriedade "TagStr",é presente em todos os componentes Firemonkey. <b>ACBrECF.pas</b> - Adicionado nova propriedade para cor de fonte apenas para o firemonkey property FormMsgColorFont : TAlphaColor read fsFormMsgColorFont write fsFormMsgColorFont ; //Realiza composição das 3 informações em apenas 1 tag fsFormMsg.TagString := ECF.FormMsgFonte.Size.ToString + ';' + ECF.FormMsgFonte.Family + ';' + AlphaColorToString(ECF.FormMsgColorFont); <b>ACBrECFClass.pas</b> - Depois é desmontada para leitura das informações //Carregando informações da fonte, family e cor with TStringList.Create do try StrictDelimiter := True; Delimiter := ';'; DelimitedText := fsFormMsg.TagString; fsFormMsg.Canvas.Font.Size := Strings[0].ToSingle; fsFormMsg.Canvas.Font.Family := Strings[1]; fsFormMsg.Canvas.Fill.Kind := TBrushKind.None; fsFormMsg.Canvas.Fill.Color := StringToAlphaColor(Strings[2]); finally Free; end; A rotina de desenho não estava adequada para o Firemonkey. fsFormMsg.Width := Round(fsFormMsg.Canvas.TextWidth(Texto)) + 25; fsFormMsg.Height := Round(fsFormMsg.Canvas.TextHeight(Texto))+ 15; Application.ProcessMessages; //Se não adicionar essa linha, o firemonkey não faz a pintura o texto. fsFormMsg.Canvas.BeginScene; //Todo canvas no firemonkey é necessário este bloco de proteção. try fsFormMsg.Canvas.StrokeThickness := 1; //Espessura do pincel. fsFormMsg.Canvas.FillText(TRectF.Create(0, 0, fsFormMsg.Width, fsFormMsg.Height), Texto, True, 100, [], TTextAlign.Center, TTextAlign.Center); finally fsFormMsg.Canvas.EndScene; end; Por ultimo, e não menos importante, a rotina de pressionar a tecla para cancelar o dialogo não estava funcionando, o código informado não atende a situações diversas que o Firemonkey apresenta no OnKeyDown. O Firemonkey quando pressionado por uma tecla que não é dita como especial, a variável KeyChar é preenchida, porem se você utilizar uma tecla como F1 ou ENTER o KeyChar fica em branco, então o Key é preenchido. if (fsFormMsgTeclaParaFechar <> 0) and (fsFormMsgEstado <> fmsAbortado) then begin if (KeyChar <> #0) and (Integer(KeyChar.ToUpper) = fsFormMsgTeclaParaFechar) then fsFormMsgEstado := fmsAbortado else if (Key > 0) and (Key = fsFormMsgTeclaParaFechar) then fsFormMsgEstado := fmsAbortado else begin Key := 0; KeyChar := #0; end; end; ACBrECFClass.pas ACBrECF.pas
    1 ponto
  5. Ao fazer venda de itens, cancelar um item e continuar vendendo, o Cupom Virtual salta o número de sequencia do item e o SAT recusa aprovação do XML. Alterado para incluir propriedade de nItemSeqCupom, para guardar a sequencia original do cupom e refazer o nItem do XML para não perder a sequencia. Alterado desconto por item... estava preenchendo o XML com negativo. pcnCFe.pas ACBrECFVirtualSAT.pas
    1 ponto
  6. Bo noite, Acabei de baixar o último trunk do ACBr e há um erro de compilação na unit ACBrPosPrinter.pas, linhas 540 e 940. O valor cTagAbreGavetaEsp está comparado como um tipo enumerado, mas na verdade o tipo de dados Nome é string e não enum.
    1 ponto
  7. http://www.sefaz.ms.gov.br/index.php?inside=1&tp=3&comp=&show=3733
    1 ponto
  8. Eu aconselho o TANCA. Experimentei o Bematech, mas foi uma decepção. Tenho o TANCA aqui em diversos clientes, inclusive em minha loja.
    1 ponto
  9. Beleza, o Cupom é impresso de boas. Só não aparece o QRCode, confome imagem. Farei esses passos e volto a postar..
    1 ponto
  10. Não sei o que pode ser... aqui instala tão fácil... todos desenvolvedores baixam e instalam sem problema algum...
    1 ponto
  11. bom dia junto ao site do sefaz ou os fiscais de lá
    1 ponto
  12. ja passei varios 7, 10, 30 nenhum valor faz diferenca Achamos o problema sem ter que alterar o codigo EspacoEntreLinhas tem que estar 0 LinhasEntreCupons tem que estar 7 obrigados a todos pela ajuda
    1 ponto
  13. Bom dia, obrigado pela contribuição, mas no FMX não usaremos o Form, o melhor é criar um evento e deixaremos assim para cada uma cria o seu form o jeito que precisar e dispara-lo. Se tiver interesse em trabalhar nesse sentido, só depois me mandar que avalio para subir.
    1 ponto
  14. Opa... falha minha.. acabei de atualizar o ACBrConsts...
    1 ponto
  15. A versão simples que vem com o delphi não possui execução de codigo no relatório, então ela está desprezando o tratamento de impressão ou não do desconto/acrescimo.
    1 ponto
  16. O padrão de impressão é definido por nota técnica, não podemos sair fora dela. Se você necessita imprimir algo após pode tentar usar o comando acbr.imprimir do monitor.
    1 ponto
  17. Porque usar o Kylix, que já está morto e enterrado ?? Tente o Lazarus: http://www.lazarus.freepascal.org/
    1 ponto
  18. Encontrei o problema... Na versão anterior a ACBrECF.ModeloStr = 'TM-800F' e agora passou a ser 'EPSON'... A informação correta passou a ficar em ACBrECF.modelo = 'TM-800F'; Alterei o codigo aqui, agora esta abrindo a porta. Assunto fechado.
    1 ponto
  19. Eu dei update e verifiquei que esta com as minhas alterações. Posso continuar reestruturando as classes dessa forma? Att.
    1 ponto
  20. Boa tarde, Se a nota for rejeitada, isso significa que a mesma contem dados errados, portanto deve-se fazer a correção e enviar novamente, neste caso não se altera nada no que diz respeito a FormaEmissao ou tpEmis. Por outro lado se ocorrer problema com a Internet você deve atribuir o valor teOffLine para ambos (FormaEmissao e tpEmis) gerar novamente o XML, assina, valida e imprimir o DANFE em duas vias, sendo uma para o consumidor e outra fica no estabelecimento comercial. Quando os problemas forem sanados altere apenas a FormaEmissao para teNormal e envie todas as notas emitidas em OffLine. As novas notas tem que estar com o tpEmis com o valor teNormal.
    1 ponto
  21. Ontem após algumas tentativas resolvi instalar no delphi7 o trunk2 com o FortesReportCe, utilizei para isso uma máquina virtual.. Foi tudo tranquilo os únicos problemas que tive com o FortesReportCe foram: 1 - antes de compilar criar a pasta Win32_D7_vcl dentro da pasta trunk\Binary\ vai ficar assim trunk\Binary\Win32_D7_vcl 2 - Após compilar e instalar, Copiar o arquivo RLReport.res que vai estar em trunk\Source para a pasta trunk\Binary\Win32_D7_vcl 3 - Nos relatórios que contém TRLPDFFilter vai dar um erro em TRLPDFFilter.FontEnconding e TRLPDFFilter.ViewerOptions pois ao que parece essas propriedades foram retiradas apenas ignorei-as. Um detalhe interessante, não sei se isso vem ao caso, é que apliquei um patch de correção no meu Delphi7 (Update1). Ainda não testei as cópias do DANFE da NFe. Fausto Alves Franca-SP
    1 ponto
  22. Boa tarde Alexsandro, O DANFE que você se refere foi feito em qual Report?
    1 ponto
  23. Valdirdill blz... Tive as mesmas dificuldades que você no início do projeto e com a ajuda deste incrível fórum e em especial de algumas pessoas daqui, e... claro dos manuais e notas técnicas alem de todos os comentários e posts disponíveis aqui também, consegui evoluir e hoje está indo tudo como deveria... Como o gradeza desse fórum é compartilhar... segue um exemplo da maneira que eu faço (lembrando que pode talvez não ser a mais correta pois existem diversas formas de se construir uma ponte e cada um vai usar o seu conhecimento e tecnologia disponível para construí-la desde que fique firme e não vá cair não é mesmo...rsrsrs) wUtlNSU := Ultimo NSU pesquisado e gravado em alguma tabela do seu BD. xUF := UF da empresa que usa seu aplicativo para realizar as pesquisas. CNPJ := CNPJ da empresa que usa seu aplicativo = CNPJ do certificado digital. xStat := 138; while xStat = 138 do begin ACBrNFe1.DistribuicaoDFe(xUF,CNPJ,wUltNSU,''); for i := 0 to ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count - 1 do begin //A partir daqui vc extrai as informações retornadas de cada arquivo xml //E se for o caso grava as informações em tabelas do seu banco de dados //para consultas posteriores das informações já armazenadas, não sendo //necessário um nova pesquisa ao webserviceDFe para isso . . . //Aqui você deve gravar o ultimo nsu retornado em um campo de alguma tabela //do seu BD para que a próxima pesquisa seja a partir desse ultimo nsu wUltNSU := ultNSU; end; // Aqui retorna o status da pesquisa e quando ele for diferente de 138 interrompe o loop... // E nesse caso, aguardar o intervalo mínimo de 1 hora entre as pesquisas conforme // Manual de Integração evitando assim o bloqueio por consumo indevido xStat := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat; end; É claro que você pode e deve ajustar da maneira que melhor lhe atender, incluindo blocos try except, separando informações resumidas das informações completas, extraindo se for o caso, as cartas de correções eletrônicas, etc... enfim, acredito que você agora consiga evoluir a partir desse raciocínio básico, o restante é usar a criatividade e sem dúvida o que te dará uma ampla visão é de fato conhecer os manuais e as notas técnicas que você vai encontrar tanto aqui no fórum quanto no site nfe.fazenda.gov.br. Espero que te ajude. Márcio M. Camilo
    1 ponto
  24. Daniel, obrigado pelo retorno, era isso mesmo. tb precisei copiar as do diretorio XMLSec.
    1 ponto
  25. Bom dia a todos. Hoje me deparei com este erro. requisicao nao enviada o sistema nao pode encontrar o arquivo especificado. depois de algumas pesquisas e troca de arquivos sem sucesso descobri que o erro estava no internet explorer. abri o menu , arquivos e desmarquei a opção trabalhar offline e tudo deu certo,
    1 ponto
×
×
  • 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.