Ir para conteúdo
  • Cadastre-se

William F. L.

Membros
  • Total de ítens

    259
  • Registro em

  • Última visita

Tudo que William F. L. postou

  1. Obrigado Ricardo pela resposta, pensei dessa maneira mesmo!
  2. Minha dúvida surgiu porque já tive casos do cliente voltar mais de 1 hora depois da venda pedindo cancelamento
  3. Perfeito Sérgio, entendi da mesma maneira que você, tenho esse XML de retorno gravado e também disponibilizo essa opção para impressão de 2º via, só coloquei um bloqueio se o usuário tentar imprimir a 2º via de um CF-e que já foi cancelado anteriormente.
  4. Então Sérgio essa verificação dos 30 minutos no meu sistema já está funcionando, minha dúvida é se existe a possibilidade de cancelar somente a venda após os 30 minutos?
  5. Pessoal, já tenho uma rotina que verifica se a impressora está ligada ou não e avisa o usuário, mas se a impressora estiver offline: 1 - Posso emitir uma venda normalmente para o SAT e imprimir esse extrato (se necessário) depois de resolvido o problema da impressora? 2 - Bloqueio o PDV até o problema da impressora ser resolvido?
  6. Olá pessoal, na reta final de implementação do SAT me surgiu uma dúvida, atualmente meu sistema já possui uma rotina que durante o cancelamento do CF-e verifica se o mesmo foi emitido a mais de 30 minutos, caso não executa o cancelamento normalmente. Mesmo lendo a especificação não encontrei nada conclusivo, se realmente for necessário cancelar uma venda com mais 30 minutos como devo proceder: 1 - Não cancelo o CF-e porém cancelo a Venda (fica meio estranho isso) 2 - Não aceito nenhum tipo de cancelamento
  7. Entendo Daniela, mesmo sendo direcionado para impressoras em geral não sabemos se essa rotina é funcional para todos os modelos (Epson, Daruma e Bematech) que o componente ACBrPosPrinter contempla. Postei a código na intenção que alguns colegas possam testar com outros modelos, infelizmente só tenho a Epson.
  8. Daniel passando para compartilhar minha solução! Segui meus testes com a Unit WinSpool.pas e consegui verificar o status da minha impressora EPSON TM T20 (USB), compartilhada na rede. As 2 funções foram escritas baseadas em postagem colhidas na WEB, não saberia dizer em quais sites exatamente porque foram várias pesquisas. A função VerStatusImpressora() captura um valor cardinal e a função RetornaStatusString() verifica esse valor comparando com as constantes e retorna uma string, durante meus testes a impressora ligada sempre retornava o valor "0" e quando desligada retornava "4096". Obtive sucesso nos 2 ambientes de Teste: Windows Seven 32 bits (Máquina Virtual em Desktop com Linux) acessando a impressora via rede Windows 10 64 bits (Notebook) com a impressora instalada Observação: A verificação do status não funcionou com IP, somente com o nome da máquina onde estava instalada a impressora, exemplo \\DESKTOP-FO4AT77\Epson function TForm2.VerStatusImpressora(CaminhoImpressora: string): string; var hPrinter : THandle; pInfo: PPrinterInfo2; bytesNeeded: DWORD; begin OpenPrinter(PChar(CaminhoImpressora), hPrinter, nil); try Winspool.GetPrinter( hPrinter, 2, Nil, 0, @bytesNeeded ); pInfo := AllocMem( bytesNeeded ); try Winspool.GetPrinter( hPrinter, 2, pInfo, bytesNeeded, @bytesNeeded ); Result := RetornaStatusString(pInfo^.Status); finally FreeMem( pInfo ); end; finally ClosePrinter( hPrinter ); end; end; function TForm2.RetornaStatusString(Status:cardinal):string; begin result := ''; if Status and PRINTER_STATUS_BUSY = PRINTER_STATUS_BUSY then result := result + '; The printer is busy. '; if Status and PRINTER_STATUS_DOOR_OPEN = PRINTER_STATUS_DOOR_OPEN then result := result + '; The printer door is open. '; if Status and PRINTER_STATUS_ERROR = PRINTER_STATUS_ERROR then result := result + '; The printer is in an error state. '; if Status and PRINTER_STATUS_INITIALIZING =PRINTER_STATUS_INITIALIZING then result := result + '; The printer is initializing. '; if Status and PRINTER_STATUS_IO_ACTIVE =PRINTER_STATUS_IO_ACTIVE then result := result + '; The printer is in an active input/output state '; if Status and PRINTER_STATUS_MANUAL_FEED =PRINTER_STATUS_MANUAL_FEED then result := result + '; The printer is in a manual feed state. '; if Status and PRINTER_STATUS_NO_TONER =PRINTER_STATUS_NO_TONER then result := result + '; The printer is out of toner. '; if Status and PRINTER_STATUS_NOT_AVAILABLE =PRINTER_STATUS_NOT_AVAILABLE then result := result + '; The printer is not available for printing. '; if Status and PRINTER_STATUS_OFFLINE =PRINTER_STATUS_OFFLINE then result := result + '; The printer is offline. '; if Status and PRINTER_STATUS_OUT_OF_MEMORY =PRINTER_STATUS_OUT_OF_MEMORY then result := result + '; The printer has run out of memory. '; if Status and PRINTER_STATUS_OUTPUT_BIN_FULL =PRINTER_STATUS_OUTPUT_BIN_FULL then result := result + '; The printer "s output bin is full. '; if Status and PRINTER_STATUS_PAGE_PUNT =PRINTER_STATUS_PAGE_PUNT then result := result + '; The printer cannot print the current page. Windows 95/98/Me: Indicates the page is being "punted" (that is, not printed) because it is too complex for the printer to print. '; if Status and PRINTER_STATUS_PAPER_JAM =PRINTER_STATUS_PAPER_JAM then result := result + '; Paper is jammed in the printer '; if Status and PRINTER_STATUS_PAPER_OUT =PRINTER_STATUS_PAPER_OUT then result := result + '; The printer is out of paper. '; if Status and PRINTER_STATUS_PAPER_PROBLEM = PRINTER_STATUS_PAPER_PROBLEM then result := result + '; The printer has a paper problem. '; if Status and PRINTER_STATUS_PAUSED = PRINTER_STATUS_PAUSED then result := result + '; The printer is paused. '; if Status and PRINTER_STATUS_PENDING_DELETION =PRINTER_STATUS_PENDING_DELETION then result := result + '; The printer is being deleted. '; if Status and PRINTER_STATUS_POWER_SAVE = PRINTER_STATUS_POWER_SAVE then result := result + '; The printer is in power save mode. '; if Status and PRINTER_STATUS_PRINTING = PRINTER_STATUS_PRINTING then result := result + '; The printer is printing. '; if Status and PRINTER_STATUS_PROCESSING = PRINTER_STATUS_PROCESSING then result := result + '; The printer is processing a print job. '; if Status and PRINTER_STATUS_SERVER_UNKNOWN = PRINTER_STATUS_SERVER_UNKNOWN then result := result + '; The printer status is unknown. '; if Status and PRINTER_STATUS_TONER_LOW = PRINTER_STATUS_TONER_LOW then result := result + '; The printer is low on toner. '; if Status and PRINTER_STATUS_USER_INTERVENTION = PRINTER_STATUS_USER_INTERVENTION then result := result + '; The printer has an error that requires the user to do something. '; if Status and PRINTER_STATUS_WAITING = PRINTER_STATUS_WAITING then result := result + '; The printer is waiting. '; if Status and PRINTER_STATUS_WARMING_UP = PRINTER_STATUS_WARMING_UP then result := result + '; The printer is warming up. '; if Status = 0 then result := 'Impressora Ligada'; end;
  9. Daniel estive lendo os fontes do ACBrPosPrinter além do Demo que avisa sobre essa questão da porta serial, estou estudando alguma solução ligada a Unit do Delphi winspool.pas, mas ainda não tenho nada de concreto e nem sei se será viável.
  10. Realmente Antonio, estou fazendo uma pesquisa e não estou achando uma saída.
  11. Boa noite pessoal, fiquei na dúvida em qual área do fórum postar essa dúvida! Estou finalizando meu sistema para emissão de NFC-e com ACBrSAT e ACBrPosPrinter e está correndo tudo muito bem, mas sempre temos que testar vários caminhos onde temos que simular erros. Então estou tentando verificar o status da minha impressora Epson TM T20 (USB), caso ocorram situações em que a impressora não esteja ligada, quando usava a "InterfaceEpsonNF.dll" existia um método onde controlava com uma exception esse status e avisava o usuário do problema, mas com o componente ACBrPosPrinter não consigo nem gerar uma exception. Desligo a impressora e mando imprimir, mas não gera nenhum tipo de erro, existe a possibilidade de capturar esse status com o ACBrPosPrinter?
  12. Simples e objetivo, somente pressionei o botão "Ativar" em uma máquina onde não está instalada a impressora:
  13. Olá pessoal, estou trabalhando com o componente ACBrPosPrinter, quando a impressora EPSON TM T20 está na máquina local funciona normalmente mas quando tento acessar via rede acaba dando um erro. Analisando o arquivo ACBrDevice.pas descobri que o meu problema está no trecho abaixo onde existem as diretivas para criar as variáveis, não sei o porque mas meu Delphi XE não entra nesse {$ELSE}: procedure TACBrDevice.EnviaStringArquivo( const AString: AnsiString); Var I, Max, NBytes : Integer ; {$IFDEF Use_Stream} FS : TFileStream ; Buffer : AnsiString ; {$ELSE} ArqPrn : TextFile ; {$ENDIF} Como "gambiarra" somente para desenvolvimento, fiz uma alteração e agora funciona normalmente em rede: procedure TACBrDevice.EnviaStringArquivo( const AString: AnsiString); Var I, Max, NBytes : Integer ; {$IFDEF FPC} {$IFDEF Use_Stream} FS : TFileStream ; Buffer : AnsiString ; {$ENDIF} {$ELSE} ArqPrn : TextFile ; {$ENDIF} Mas fica a dúvida do porque ele não reconhece a diretiva.
  14. Só para encerrar esse tópico, criei outra máquina virtual e instalei novamente o Delphi XE e os componentes JEDI e ACBr com todos os fontes atualizados, agora está tudo funcionando normalmente.
  15. Daniel a coisa conseguiu piorar mais ainda, até esqueci dos problemas na instalação do ACBr e do Fortes, após as limpezas o sistema que está em produção com alguns componentes do JEDI não compila mais, não consegue achar os arquivos DCU do JEDI. Momentaneamente a prioridade é voltar a compilar esse sistema!
  16. Mantendo informado sobre a situação, revisei no meu C:/ se havia mais referências para units do ACBr e limpei inclusive a lixeira, só para confirmar rodei o script "apagarAcbr", revisei todos os caminhos do Library Path no Delphi e removi qualquer tipo de referência ao ACBr. Como também tinha uma versão mais antiga do Fortes Report (apesar de não usar ele atualmente), removi ela e instalei um pacote que foi indicado em outro post aqui no fórum: http://www.projetoacbr.com.br/forum/topic/22800-instala%C3%A7%C3%A3o-do-fortes-report-com-o-trunk2/. Reiniciei a máquina e quando abri o Delphi mesmo sem instalar o ACBr fui testar o novo Fortes Report, agora ficou um pouco pior porque se eu for usar um componente dele não compila mais, com vários erros! Um do erros, onde aparentemente o meu Delphi XE está perdido entre as diretivas: [DCC Fatal Error] RLReport.pas(27): F1026 File not found: 'Qt.dcu' Antes que alguém diga algo sobre os caminhos dos sources e packages do Fortes no library path, eu já indiquei todos. Bom com tudo isso não preciso nem dizer que o instalador do ACBr contínua acusando vários erros na compilação, inclusive em relação ao Fortes agora.
  17. Olá Daniel, por experiências ruins com instalações anteriores, antes de iniciar essa nova instalação removi todos os componentes no delphi, referências no library path e os arquivos .bpl gerados anteriormente, além da pasta do ACBr com trunk antigo. Inclusive reiniciei a máquina!
  18. Boa tarde pessoa! Criei uma pasta e baixei os fontes a partir do trunk2 antes de iniciar o processo de instalação! Ao instalar os componentes usando o instalador no Delphi XE, estou obtendo erros ao compilar o pacote para ACBr_BoletoFR, segue o trecho do log onde aponta o erro: Compiling package C:\ACBr\Pacotes\Delphi\ACBrBoleto\FC\Fast\ACBr_BoletoFR.dpk Copyright (c) 1983,2010 Embarcadero Technologies, Inc. C:\ACBr\Fontes\ACBrBoleto\FC\Fast\ACBrBoletoFCFRReg.pas(66) Error: E2003 Undeclared identifier: 'TACBrFileProperty' C:\ACBr\Fontes\ACBrBoleto\FC\Fast\ACBrBoletoFCFRReg.pas(66) Error: E2021 Class type required C:\ACBr\Fontes\ACBrBoleto\FC\Fast\ACBrBoletoFCFRReg.pas(68) Error: E2137 Method 'GetFilter' not found in base class C:\ACBr\Fontes\ACBrBoleto\FC\Fast\ACBrBoletoFCFRReg.pas(82) Error: E2010 Incompatible types: 'class of TBasePropertyEditor' and 'class of TACBrBoletoFCFRFileNameProperty' ACBr_BoletoFR.dpk(59) Fatal: F2063 Could not compile used unit '..\..\..\..\..\Fontes\ACBrBoleto\FC\Fast\ACBrBoletoFCFRReg.pas' Compilation failure Trabalho com o gerador de relatórios FastReport 5.0 o mesmo está funcionando normalmente em meus sistemas.
  19. Concordo com 100% das palavras do Regys, principalmente a parte em que vc fala em bater de frente com o contador, já liguei 2 vezes hoje para ele pedindo um exemplo do xml que ele gera, mas até agora nada. Com certeza tenho que analisar até onde é viável manter esse cliente. Obrigado a todos ...
  20. Igor obrigado pela resposta, quanto ao certificado digital é o seguinte: 1) Sou programador autônomo e não possuo CNPJ para adquirir um certificado digital em meu nome. 2)Meu cliente não tem certificado digital ele envia os xmls através do contador. Minha função é gerar o xml com as informações da venda que posteriormente será enviado ao contador. Abraços..
  21. Sergio tentei anexar mas como não tenho certificado digital não consegui muita coisa, quanto ao cabeçalho dei uma lida no código fonte e parece que sem um protocolo ele não adiciona o cabeçalho mesmo. Vou continuar tentando achar o erro desse bendito xml.
  22. Segue xml: 3502330412VENDA055123304122012-04-152012-04-15135506051191102.0.0.100024605000112SAF VEICULOS LTDA - SAO ROQUESAF VEICULOS LTDA - SAO ROQUEAvenida Brasil900Jardim Carambei3550605SAO ROQUESP181323051058BRASIL1147849010653035676118192661499802William RobertoLeiteR: Paulode Lima022Jd. Santa Maria3550605Sao RoqueSP181323601058BRASIL114712565602514633UYCORREIA DENTADA999999995405PC2.000012.330000000024.66PC2.000012.330000000016.7210102010.000.000.00010.000.000.00675675CORREIA DE CAMINHAO999999995405PC1.000018.000000000018.00PC1.000018.000000000016.7210102010.000.000.00010.000.000.0045454LONA DE FREIO999999995405PC5.000021.5000000000107.50PC5.000021.500000000016.7210102010.000.000.00010.000.000.000.000.000.000.00150.160.000.0050.160.000.000.000.000.00100.000 Que horrível para entender ...
  23. Boa noite á todos, estou gerando o xml e fazendo testes de validação no site http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx, durante o desenvolvimento apresentou vários erros, mas diminuiu agora, estou com 3 mas não consigo encontrar solução: 225 - [simulacao] Rejeicao: Falha no Schema XML do lote de NFe 202 - [simulacao] Rejeicao: Falha no reconhecimento da autoria ou integridade do arquivo digital 245 - [simulacao] Rejeicao: CNPJ Emitente nao cadastrado Estou com dúvida nesse cabeçalho ele não aparece no xml gerado: <?xml version="1.0" encoding="UTF-8" ?> Durante uma pesquisa na net encontrei um post explicando q esse cabeçalho só aparece depois que o xml é validado pelo SEFAZ, mas achei estranho pq todos os exemplo que encontram contém esse cabeçalho.
  24. Eu também penso assim, quando fui contratado para desenvolver esse sistema expliquei que seria necessário implantar a impressora fiscal, mas ouvi risos os comerciantes não gostam de sistemas que obriguem eles de venderem a prestar contas com o fisco.
  25. Regys entendi, infelizmente estou amarrado com essa questão meu cliente não quer colocar impressora fiscal, inclusive o sistema só vai gerar os xmls, mas quem vai enviar será o próprio contador direto no SEFAZ. Mas obrigado pelo esclarecimentos, foram de grande serventia.
×
×
  • 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...