Ir para conteúdo
  • Cadastre-se

Leonardo_Sysmo

Membros
  • Total de ítens

    16
  • Registro em

  • Última visita

Tudo que Leonardo_Sysmo postou

  1. Boa tarde, a tag <infRespTec> deve constar também no XML de Cancelamento de NFC-e e Inutilização de numeração?
  2. Lendo um pouco mais, vi que o CF-e pode ser autorizado com desconto de até 100% para produtos cortesia. Estou com dúvida agora se este o rateio do equipamento seria um problema ou se é aceitável, vendo que um CF-e pode ser autorizado passando todos os produtos com valores zerados (quando aplicado desconto 100%).
  3. Bom dia, Em testes, ao vender um cupom com 3 itens totalizando R$51,51 e aplicando desconto de R$51,00 o D-SAT da DIMEP me retornou valor zerado em um dos itens, segue relação: Item 1 - R$50,00 -> R$0,50 Item 2 - R$1,50 -> R$0,01 Item 3 - R$0,01 -> R$0,00 Total R$51,51 -> R$0,51 Isso seria um problema na regra de rateio do equipamento?
  4. Sim, realizo esta verificação, o problema ocorre no intervalo de tempo entre envio da CF-e pro SAT e o retorno de autorização pelo mesmo. Tanto que após retornar a falha de porta COM, se eu realizar uma consulta no site da SEFAZ, o CF-e vai ser encontrado lá como autorizado.
  5. Concordo, porém quando ocorre problema é na comunicação com o equipamento SAT, não vejo uma outra alternativa... Ocorreu 2 vezes em clientes onde a nota foi enviada para o SAT e apesar do cupom ser autorizado, o SAT não devolveu ela para o aplicativo devido a erro de porta COM.
  6. Existe consulta no ACBr para saber se a CF-e está autorizada no SAT/SEFAZ ? Algo como, caso ocorra algum erro de comunicação ao autorizar o cupom, e o SAT não dê retorno, eu possa consultar posteriormente o status do CF-e para atualizar a situação da nota no meu aplicativo.
  7. Galera to com o seguinte problema: Ao utilizar o comando TACBrSAT.EnviarDadosVenda para autorizar uma CF-e o mesmo me retornou o erro "Error openning serial COM4" devido a uma queda de luz no momento da autorização, em outro momento ao consultar a SEFAZ, verifiquei que a CF-e foi autorizada com sucesso, mas como o equipamento não conseguiu retornar os dados da autorização para minha aplicação, a mesma setou a CF-e como rejeitada, o cliente então realizou uma nova emissão deixando a venda autorizada 2 vezes na SEFAZ. Minha dúvida é como proceder nesta situação. Existe alguma consulta onde o SAT possa me retornar se a CF-e está autorizada? Penso em fazer um tratamento onde caso ocorra algum erro de comunicação com o SAT durante a autorização da CF-e, o mesmo torne a consultar se esse cupom foi autorizado antes de seta-lo para rejeitado, evitando que o cliente duplique a venda.
  8. Quais componentes devo utilizar para imprimir o extrato pelo XML ? a Impressão segue sendo ESC POS ?
  9. Daniel, não encontrei nenhuma propriedade com nome "ProcessarTags", apenas "TraduzirTags " pelo que entendi ela estando como False faz com que as tags de formatação não sejam decodificadas na função "DecodificarTagsFormatacao" do ACBrDevice, seria isso que se refere ? Se for isso, hoje eu já possuo essa configuração, porém noto que o ACBrSATExtratoESCPOS gera somente tags finais de centralização... Esse é o extrato gerado hoje configurando modelo ppEpsonESCPOS e com propriedade "TraduzirTags" False : #$1B'3&</zera></ce></logo>'#$A'<n>DIMEP</n></ce>'#$A'<c>DIMAS DE MELO PIMENTA SISTEMAS DE PONTO E ACESSO'#$A'AVENIDA MOFARREJ 840 908 VL. LEOPOLDINA-SAO PAULO-05311-000'#$A'</ae><c>CNPJ:61.099.008/0001-41 IE:'#$A'</linha_simples>'#$A'</fn></ce><n>Extrato No. 000000'#$A'CUPOM FISCAL ELETRONICO - SAT</n>'#$A' '#$A' = T E S T E ='#$A' '#$A'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'#$A'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'#$A'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'#$A'</linha_simples>'#$A'</ae><c>CPF/CNPJ do Consumidor: CONSUMIDOR NAO IDENTIFICADO'#$A'</ae><c></linha_simples>'#$A'# COD DESC QTD UN VL UN R$ (VLTR R$)* VL ITEM R$'#$A'</linha_simples>'#$A'</ae><c>001 1027 BISCOITO CHOCOLATE C'#$A'</ae><c>1 KG X 50,000 50,00'#$A'</ae></fn><e>TOTAL R$ 50,00</e>'#$A'<c>Dinheiro 50,00'#$A'</fn></linha_simples>'#$A'</ce>SAT No. <n>900015724</n>'#$A'05/09/2018 10:54:11'#$A'<c>3518 0961 0990 0800 0141 5990 0015 7240 0036 8056 6713</fn>'#$A'<code128c>35180961099008000141599000157240003680566713</code128c></ce>'#$A'<qrcode_tipo>2</qrcode_tipo><qrcode_error>0</qrcode_error><qrcode>35180961099008000141599000157240003680566713|20180905105411|50.00||eELZZeQuTwe3I9nc0yoANhyo16Sf2+1Bzct5MXSA0EOyR/+tWSA9yAq8d4t7wZwYa00ebixqoNYNIAux3yQ9JNNExAAefOrdhKVV9Iqzyk6IGVwA2IVroeGl7W0W4IADpjMysEWHO9rNs1i4a7vdP/SgBW3JQ4aNCZbhTe1B15xyqFQyKtwZTrmWMH23ROB8MnVbny85I2gAQXoPKbb56lGWFg1YK2qxnQOwzpe9j1+IjRYCrHil3p4xL1EioJCod7V2WzrAuZBKVHxJq9TUVLXH8+jey8/9lmrl/72f1HUiw4myO5RbjZmfF/gRvD+0voVIU35h2xaLyauLIgWDhQ==</qrcode><qrcode_tipo>2</qrcode_tipo><qrcode_error>0</qrcode_error>'#$A'</ce><c>Consulte o QR Code pelo aplicativo "De olho na nota", '#$A'disponivel na AppStore (Apple) e PlayStore (Android)'#$A'</zera>'#$A'</corte_total>'#$A Caso eu deixe a propriedade "TraduzirTags" True, ele gera o seguinte extrato no qual nem é lido pela impressora Epson: #$1B'@'#$1B'3'#$14#$1B'a'#1#$1D'(L'#6#0'0E '#1#1#$A#$1B'!'#8'DIMEP'#$1B'!'#0#$A#$1B'!'#1'DIMAS DE MELO PIMENTA SISTEMAS DE PONTO E ACESSO'#$A'AVENIDA MOFARREJ 840 908 VL. LEOPOLDINA-SAO PAULO-05311-000'#$A#$1B'a'#0#$1B'!'#1'CNPJ:00.000.000/0000-00 IE:'#$A'-------------------------------------------------------------'#$A#$1B'!'#0#$1B'a'#1#$1B'!'#8'Extrato No. 000000'#$A'CUPOM FISCAL ELETRONICO - SAT'#$1B'!'#0#$A' '#$A' = T E S T E ='#$A' '#$A'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'#$A'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'#$A'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'#$A'----------------------------------------------'#$A#$1B'a'#0#$1B'!'#1'CPF/CNPJ do Consumidor: CONSUMIDOR NAO IDENTIFICADO'#$A#$1B'a'#0#$1B'!'#1'-------------------------------------------------------------'#$A'# COD DESC QTD UN VL UN R$ (VLTR R$)* VL ITEM R$'#$A'-------------------------------------------------------------'#$A#$1B'a'#0#$1B'!'#1'001 1027 BISCOITO CHOCOLATE C'#$A#$1B'a'#0#$1B'!'#1'1 KG X 50,000 50,00'#$A#$1B'a'#0#$1B'!'#0#$1B'! TOTAL R$ 50,00'#$1B'!'#0#$A#$1B'!'#1'Dinheiro 50,00'#$A#$1B'!'#0'----------------------------------------------'#$A#$1B'a'#1'SAT No. '#$1B'!'#8'900015724'#$1B'!'#0#$A'04/09/2018 08:46:01'#$A#$1B'!'#1'3518 0961 0990 0800 0141 5990 0015 7240 0015 5880 8850'#$1B'!'#0#$A#$1D'w'#2#$1D'h2'#$1D'H'#0#$1D'kI'#$18'{C#'#$12#9'='#9'Z'#8#0#1');Z'#0#$F'H('#0#$F':PX2'#$A#$1D'(k'#4#0'1A2'#0#$1D'(k'#3#0'1C'#4#$1D'(k'#3#0'1E0'#$1D'(kž'#1'1P035180961099008000141599000157240001558808850|20180904084601|50.00||NBdJnwiBTUm+7MAwvrzv1bm1zZRgF/H2zSTh1+RFrIJ6f1vNfh4OtqXiCFY7i40zPtSxt4uRM8A2UdFF9YRF/FwQbn5q282fxL8pCzTl84kYTPkIqUinm/cEOlD8rvu071/Bz4FL3odZWhJG+zLLCcm15DNDQJSjcEhd0NWI6UuhQcedJgrEJTfZs1ImJKas15HHcPo0H2qElB+0pFiDM+p2MWrQBCT6X3OSNkAGRt4u6wFUGMmn196fKPjupiRWx6Bse+mVK6/0ZE7b859J7dNLrtIayoLqv9sNEXCzusdMuTEBl/a3GE1/3bov3ukJvlLRcWzdWgkS1T2O35JWyg=='#$1D'(k'#3#0'1Q0'#$A#$1B'a'#1#$1B'!'#1'Consulte o QR Code pelo aplicativo "De olho na nota", '#$A'disponivel na AppStore (Apple) e PlayStore (Android)'#$A#$1B'@'#$1B'3'#$14#$A#$1D'V'#0#$A
  10. Posso montar e salvar o extrato sem o ACBrPosPrinter utilizando somente o ACBRSATExtratoESCPOS? Pois para gerar o extrato no ACBRSATExtratoESCPOS achei somente a função "ImprimirExtrato" que necessita do ACBrPosPrinter
  11. Bom dia, como explicado e resolvido no tópico abaixo, estou gerando meu extrato em uma string. Eu envio essa String a outro aplicativo onde está conectado a impressora não fiscal, e então faço a impressão. O meu problema é que dependendo do modelo de impressora a mesma possui diferentes tags de centralização, negrito, qrcode, etc.. Estou utilizando como teste uma impressora Epson TM-T20, estou tentando fazer com que ela imprima corretamente o extrato gerado pelo ACBr Possuo estas configurações: ACBrPosPrinter.Modelo := ppEscPosEpson; ACBrPosPrinter.Porta := 'USB/DLL'; ACBrPosPrinter.Device.DeviceType := dtHook; ACBrPosPrinter.Device.HookEnviaString := SalvarExtrato; ACBrPosPrinter.ColunasFonteNormal := 46; ACBrPosPrinter.LinhasEntreCupons := 0; ACBrPosPrinter.EspacoEntreLinhas := 38; ACBrPosPrinter.PaginaDeCodigo := pcNone; ACBrPosPrinter.TraduzirTags := False; //Está como False pois com true ela remove o qrcode da string ACBrSATExtratoESCPOS.ImprimeQRCode := True; ACBrSATExtratoESCPOS.ImprimeEmUmaLinha := False; ACBrSATExtratoESCPOS.ImprimeChaveEmUmaLinha := rAuto; ACBrSATExtratoESCPOS.SoftwareHouse := ''; ACBrSATExtratoESCPOS.Site := ''; Está gerando pra mim tags que a impressora não entende, como negrito saindo <n> ao invéz de <b>, também não imprime o tracilhado e as tags do qrcode. Posso setar alguma property pra definir cada tag de acordo com a impressora? Ou está faltando alguma configuração para ela converter as tags para tipo de impressora Epson ?
  12. Resolvido, implementei uma função na minha classe com a mesma assinatura da TACBrDeviceHookEnviaString = procedure(const cmd: AnsiString) of object; do ACBrDevice, com isso ao chamar a função TACBrSAT.ImprimirExtrato passando as configurações para dtHook ele gera o extrato e cai na minha função a string pronta. Obrigado pela dica Daniel.
  13. Fiz testes mas trabalhar com arquivos não seria uma opção pra mim, queria achar uma maneira de obter o retorno do FBuffer com as linhas do extrato já alimentadas como é feito pelo comando EnviarStringDevice do ACBrPosPrinter , para que eu grave direto na base de dados , evitando assim o risco de corromper arquivo...
  14. Bom dia, existe alguma função que me retorne os extratos do SAT (normal, resumido e de cancelamento) em forma de string? Possuo uma aplicação separada para enviar a venda ao SAT, e após ser autorizada, como o objeto TCFe vai estar alimentado queria gerar o extrato em forma de string para então envia-lo a minha outra aplicação que fará a impressão. Em análise notei que existe a possibilidade de gravar em arquivo, porém acho inviável devido ao risco de corromper o mesmo. Grato desde já.
  15. Boa Tarde, Para adequar a geração de XML a Nota Técnica 2015_002, ao gerar o grupo "pag" com tpag = 03 ou 04 (cartão) passa a gerar também no grupo "card" o novo campo tpIntegra e para atender esta nota técnica, teremos que passar a gerar este campo sempre, mesmo que ele seja opcional, pois é a critério da UF. Exemplo de XML quando tpIntegra =1 (TEF): <pag> <tPag>03</tPag> <vPag>20.00</vPag> <card> <tpIntegra>1</tpIntegra> <CNPJ>79408498000186</CNPJ> <tBand>01</tBand> <cAut>12345678901234567890</cAut> </card> </pag> Exemplo de XML quando tpIntegra =2 (POS): <pag> <tPag>03</tPag> <vPag>20.00</vPag> <card> <tpIntegra>2</tpIntegra> </card> </pag> Em venda TEF quando o CNPJ da credenciadora estiver zerado/em branco, para que não ocorra a rejeição da NFC-e, passamos o campo “tPag” com valor 99 (Outros), sendo assim, o grupo “card” não será obrigatório (somente é obrigatório quando "tPag” = 03 ou 04 ). Exemplo de XML quando CNPJ da credenciadora estiver zerado/em branco: <pag> <tPag>99</tPag> <vPag>20.00</vPag> </pag> O Problema ocorre quando não informamos CNPJ para administradora em venda POS, o mesmo não gera o grupo "card" com o campo "tpIntegra", devido a está validação no código da Unit pcnNfceW.pas na função GerarPag: Gerador.wGrupo('pag', 'YA01'); Gerador.wCampo(tcStr, 'YA02', 'tPag', 02, 02, 1, FormaPagamentoToStr(nfe.pag[i].tPag), DSC_TPAG); Gerador.wCampo(tcDe2, 'YA03', 'vPag', 01, 15, 1, nfe.pag[i].vPag, DSC_VPAG); if nfe.pag[i].CNPJ <> '' then begin Gerador.wGrupo('card', 'YA04'); Gerador.wCampo(tcStr, 'YA04a', 'tpIntegra', 01, 01, 0, tpIntegraToStr(nfe.pag[i].tpIntegra), DSC_TPINTEGRA); Gerador.wCampo(tcStr, 'YA05', 'CNPJ ', 14, 14, 0, nfe.pag[i].CNPJ, DSC_CNPJ); Gerador.wCampo(tcStr, 'YA06', 'tBand', 02, 02, 0, BandeiraCartaoToStr(nfe.pag[i].tBand), DSC_TBAND); Gerador.wCampo(tcStr, 'YA07', 'cAut ', 01, 20, 0, nfe.pag[i].cAut, DSC_CAUT); Gerador.wGrupo('/card'); end; Gerador.wGrupo('/pag'); Como sugestão: Na Nota Técnica 2015_002 o grupo "card" é obrigatório quando tpag = 03 ou 04 (cartão), e a venda para Cartão POS não necessita dos demais campos, somente do tpIntegrarealizei está alteração no mesmo trecho de código : Gerador.wGrupo('pag', 'YA01'); Gerador.wCampo(tcStr, 'YA02', 'tPag', 02, 02, 1, FormaPagamentoToStr(nfe.pag[i].tPag), DSC_TPAG); Gerador.wCampo(tcDe2, 'YA03', 'vPag', 01, 15, 1, nfe.pag[i].vPag, DSC_VPAG); if(NFe.pag[i].tPag in [fpCartaoDebito,fpCartaoCredito]) then begin Gerador.wGrupo('card', 'YA04'); Gerador.wCampo(tcStr, 'YA04a', 'tpIntegra', 01, 01, 0, tpIntegraToStr(nfe.pag[i].tpIntegra), DSC_TPINTEGRA); if nfe.pag[i].CNPJ <> '' then begin Gerador.wCampo(tcStr, 'YA05', 'CNPJ ', 14, 14, 0, nfe.pag[i].CNPJ, DSC_CNPJ); Gerador.wCampo(tcStr, 'YA06', 'tBand', 02, 02, 0, BandeiraCartaoToStr(nfe.pag[i].tBand), DSC_TBAND); Gerador.wCampo(tcStr, 'YA07', 'cAut ', 01, 20, 0, nfe.pag[i].cAut, DSC_CAUT); end; Gerador.wGrupo('/card'); end; Gerador.wGrupo('/pag'); Assim o grupo "card" sempre será gerado quando venda de cartão crédito/débito contendo o campo tpIntegra, porém os demais campos só serão gerados caso o CNPJ seja informado.
×
×
  • 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...