Ir para conteúdo
  • Cadastre-se

Leonardo_Sysmo

Membros
  • Total de ítens

    16
  • Registro em

  • Última visita

Posts postados por Leonardo_Sysmo

  1. 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%).
     

  2. 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?

  3. 2 horas atrás, Daniel Simoes disse:

    São erros diferentes...

    Erros na internet não afetam o funcionamento de Vendas do SAT

    Assim como todo equipamento, podem haver erros no funcionamento do mesmo... cliente puxa o cano, derruba, etc.. 

    Você.DEVE  verificar a presença do SAT, antes do envio de cada venda...Isso é feito facilmente  com uma chamada a ConsultarSAT 

    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.

  4. 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.

  5. 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.
     

  6. 28 minutos atrás, Daniel Simoes disse:

    Creio que sim..

     Veja a propriedade "ProcessarTags" do ACBrPosPrinter 

    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
     

  7. 11 minutos atrás, Daniel Simoes disse:

    O ideal seria salvar o Extrato com as Tags não processadas... e depois imprimi-lo usando o ACBrPosPrinter 

    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

  8. 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 ?

  9. 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.

    • Curtir 1
  10. 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...

  11. 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á.

  12. 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.

    • Curtir 1
×
×
  • 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...