Ir para conteúdo
  • Cadastre-se

William F. L.

Membros
  • Total de ítens

    276
  • Registro em

  • Última visita

Tudo que William F. L. postou

  1. Olá Régys, nesse caso existe um valor para cada produto ou porcentagem desse imposto?
  2. Propriedade ACBrSAT.CFe.infCFe.ID lembrando que esse valor só está disponível após o retorno do SAT.
  3. Não se é o ideal, mas tenho uma tabela CF-e onde gravo as seguintes informações: - Número da CF-e - Chave de Acesso - Número da Sessão - Código de Retorno - Mensagem de Retorno - Data Envio - Hora Envio - CF-e Cancelamento (Caso seja cancelada atribuo o número da CF-e de cancelamento) - Data Cancelamento - Hora Cancelamento - Caminho e nome do arquivo XML - Número da Venda
  4. Basta carregar novamente o XML aprovado no componente ACBrSAT e mandar imprimir!
  5. Então Daniel, o Teste Fim a Fim só funciona com o SW da TANCA por isso tem essa mensagem de sucesso, se for com o SATTexte.exe o aparelho SAT é reiniciado. Todos os testes que postei acima se forem feitos no emulador do Fisco funciona, quando mudo para o SDK da TANCA começa a instabilidade, com isso tudo acabo postando informações divergentes. Por esse motivo estou dando como encerrado o tópico e agradecendo sua atenção!
  6. Até ontem dava a seguinte mensagem "O SAT não está respondendo", hoje cedo troquei de porta USB e emiti 20 vendas sem problema nenhum, realmente é tentativa e erro. Porém o Teste Fim a Fim contínuo sem conseguir enviar pelo SATTeste.exe, o log da TANCA postei acima e o log do ACBrSAT consta "Sat em Processamento. Tente Novamente". Já começo a acreditar que 100% não vai ficar mesmo .. ssrsr Até ontem dava a seguinte mensagem "O SAT não está respondendo", hoje cedo troquei de porta USB e emiti 20 vendas sem problema nenhum, realmente é tentativa e erro. Porém o Teste Fim a Fim contínuo sem conseguir enviar pelo SATTeste.exe, o log da TANCA postei acima e o log do ACBrSAT consta "Sat em Processamento. Tente Novamente". Já começo a acreditar que 100% não vai ficar mesmo .. ssrsr
  7. Então Daniel gostaria de ter uma mensagem de erro para eu analisar e também poder postar aqui no fórum, mas no log só aparece a última venda enviada com sucesso e mais nada abaixo disso. 20151006225735|AC-SAT|info|Funcao EnviarDadosVenda requisitada. 20151006225736|SAT-AC|info|Funcao EnviarDadosVenda: Emitido com sucesso + conteudo notas. 20151006225833|SAT|info|Relogio sincronizado com sucesso (NTP: ntp.cais.rnp.br) 20151006225929|SAT-SEFAZ|info|Acessando CFeStatus (obtendo status) 20151006225932|SEFAZ-SAT|info|CFeStatus: [109] Serviço em Operação 20151006225937|SAT|info|Relogio sincronizado com sucesso (NTP: ntp.cais.rnp.br) Me passa uma impressão que é problema de comunicação USB porque os leds do aparelho ficam normais como se estivesse conectado. Outro ponto interessante quando envio um Teste Fim a Fim do SATTeste.exe ou do meu Sistema o SAT aparentemente é reiniciado, aí sim tenho mensagens no log como segue abaixo: 20151006230444|AC-SAT|info|Funcao TesteFimAFim requisitada. 20151006230456|SAT|info|=============== SAT ligado. =============== 20151006230456|SAT|info|Parametrizacoes carregadas com sucesso. Nivel do Log: 2 20151006230456|SAT|info|Configuracoes iniciais carregadas com sucesso 20151006230459|SAT|info|Conexao a rede estabelecida 20151006230500|SAT|info|Relogio sincronizado com sucesso (NTP: ntp.cais.rnp.br) 20151006230500|SAT|info|Aguardando comandos do AC. 20151006230500|SAT-SEFAZ|info|Acessando CFeComandos (comandos) 20151006230503|SEFAZ-SAT|info|CFeComandos: [120] Não existem comandos da SEFAZ pendentes 20151006230531|AC-SAT|info|Funcao ExtrairLogs requisitada. Agora um Teste Fim a Fim enviado pelo SW da Tanca: 20151007073944|AC-SAT|info|Funcao TesteFimAFim requisitada. 20151007073944|SAT-SEFAZ|info|Acessando CFeTeste 20151007073950|SEFAZ-SAT|info|CFeTeste: [125] CF-e de teste de produção emitido com sucesso. 20151007073950|SAT-AC|info|Funcao TesteFimAFim: Emitido com sucesso 20151007074015|SAT-SEFAZ|info|Acessando CFeComandos (comandos) 20151007074018|SEFAZ-SAT|info|CFeComandos: [120] Não existem comandos da SEFAZ pendentes 20151007074040|SAT|info|Relogio sincronizado com sucesso (NTP: ntp.cais.rnp.br)
  8. Bom Daniel tive uma evolução, consigo enviar uma venda por vez pelo meu sistema! Mas para fazer outra venda tenho que desconectar o SAT e conectar novamente, só assim para iniciar outra venda.
  9. Ok, Daniel vou tentar novamente!
  10. Pessoal acho que não estou sabendo me expressar, já li várias vezes o Guide e nele vem alguns dados, entre eles: Assinatura da Software House = SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT Minha dúvida na mensagem de erro "Assinatura do Aplicativo Comercial não é válida" é se ela tem relação com aquela assinatura de 344 caracteres geradas a partir de um certificado digital Software House ou com essa Assinatura da Software House? No IntelliSAT tem uma funcionalidade AssociarAssinatura, isso é necessário no SDK da Tanca?
  11. Daniel posso estar errado mas não achei essa assinatura de 344 caracteres no material do CD, achei que nem iria precisar.
  12. No Emulador uso uma cadeia de caracteres aleatórias com 344 caracteres "sdfsfsfsfsfsfsfsfdghffnfjfhf..." Desenvolvi o sistema com emulador usando essa assinatura e nunca deu problemas, o SDK precisa dessa assinatura verdadeira?
  13. Bom dia, postei a mesma dúvida no fórum da TANCA, adquiri um aparelho SAT SDK-1000 e estou fazendo alguns testes, mas sempre que tento enviar uma venda pelo programa IntelliSAT ele está alertando sobre “Assinatura do Aplicativo Comercial não é válida!”. Nesse tópico afirma que já vem associado http://www.projetoacbr.com.br/forum/topic/23063-teste-de-impress%C3%A3o-do-extrato-via-monitorplus/. Já tentei vincular a mesma assinatura de teste que uso no emulador do Fisco mas não é aceita, vai precisar gerar uma assinatura verdadeira com certificado digital?
  14. Resolvido, como imaginava o erro foi meu mesmo no momento de preencher os dados no ACBrSAT, bastou ler o arquivo "NotasSAT.txt" nos fontes do componente e a especificação (página 92) para ver que esse campo troco é calculado pelo próprio SAT. Quando usava esse crédito como parte do pagamento estava gerando desconto e rateando entre os produtos, com isso era gerado um valor de troco pela diferença.
  15. Pessoal, estou com uma dúvida relativa a troca de produtos após ser finalizada uma venda, acredito que estou preenchendo os dados da maneira errada. Atualmente quando o cliente realiza uma venda e retorna ao estabelecimento para trocar apenas um dos produtos comprados quer seja por defeito ou compra errada, o sistema abre um documento de devolução e gera um crédito nesse valor para aquele cliente. Ele pode comprar outros produtos no estabelecimento e abater do total dessa nova venda o valor de crédito. Exemplo: Venda: 001 Itens: 1 -> 1,00 + 2 -> 2,00 Total da Venda = 3,00 Forma de Pagamento: 3,00 em Dinheiro Ele retorna ao estabelecimento para trocar o item 1 gerando um crédito de 1,00 e efetua uma nova compra. Venda: 002 itens: 1 -> 4,00 + 2 -> 3,00 Total da Venda: 7,00 Forma de Pagamento: 1,00 em Crédito + 6,00 em Dinheiro Porém nessa nova venda estou tentando identificar nas formas de pagamento do ACBrSAT esse crédito que foi gerado, já tentei as 2 opções abaixo: 1 - mpOutros 2 - mpCreditoLoja (pelo o que pesquisei tem mais relação com vendas parceladas) Quando passo umas das formas citadas acima ele subtrai a diferença paga em dinheiro pelo valor total da venda (7,00 - 6,00) e manda para o extrato um troco no valor do crédito (1,00). A dúvida que fica é se estou preenchendo da maneira correta os dados para esse tipo de ação no PDV?
  16. No meu entendimento da especificação e do próprio componente ACBrSAT essa cópia é relacionada ao XML, o sistema que desenvolvi grava em uma pasta todos os XMLs de retorno do SAT, mas são arquivos normais nada criptografado.
  17. Ramalho se a sua dúvida for em relação a cópias do XML retornado pelo SAT, isso o próprio componente ACBrSAT já possui propriedades para vc indicar onde serão gravados esses arquivos de retorno na máquina.
  18. Obrigado Ricardo pela resposta, pensei dessa maneira mesmo!
  19. Minha dúvida surgiu porque já tive casos do cliente voltar mais de 1 hora depois da venda pedindo cancelamento
  20. 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.
  21. 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?
  22. 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?
  23. 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
  24. 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.
  25. 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;
×
×
  • 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.