Ir para conteúdo
  • Cadastre-se

leandroaoa

Membros
  • Total de ítens

    372
  • Registro em

  • Última visita

  • Days Won

    3

Posts postados por leandroaoa

  1. Boa tarde pessoal. tenho a seguinte situacao. eu recebo um retorno ja com a etiqueta montada e preciso imprimir em uma argox ppla

    alguem consegue me ajudar

    recebo o seguinte

    N
    R30,10
    D10
    A210,0,0,1,1,1,N,"Leandro da Silva Alves"
    B285,65,0,2,2,4,70,N,"206323216001"
    A210,20,0,1,1,1,N,"206-3232160-01  19/01/24 11:42"
    A210,35,0,1,1,1,N,"CONV: 15665"
    A330,35,0,1,1,1,N,"PED.CONV: 536"
    A210,50,0,1,1,1,N,"NTOSP"
    A430,50,0,1,1,1,N,"DN 07/03/77"
    A195,220,3,1,1,1,R," NTOSP"
    A210,143,0,1,1,1,N,"SORO"
    A210,158,0,1,1,1,N,""
    A210,173,0,1,1,1,N,"VOL: 800ul"
    A450,173,0,1,1,1,N,"(REFRIG.)"
    A210,188,0,1,1,1,N,"TSH-B"
    A210,206,0,1,1,1,N,""
    P1

    N

  2. Em 11/09/2023 at 12:54, giovani deitos disse:

    Sim, é uma boa alternativa.
    Mas no caso de não ser um super-mercado.
    Imagina o cliente paga seu almoço e precisa da NFCE na hora para comprovação na empresa.

    Por isso imaginei o seguinte fluxo que pode ser funcional nesses momentos dando a opção ao operador arrumar o cadastro na hora e emitir a NFCE.

    Uma função que emita a NFCE não emitindo o TEF, ou seja pulando o TEF que já foi pago.
    Assim se na primeira tentativa o TEF é autorizado e a nota é rejeitada, o operador arruma o cadastro e usa a função emitir NFCE sem tef.

     

    Bom dia o fluxo é o mesmo voce vai imprimir a NFCe que deu rejeitada nela sera impresso o dizeres NFCe emitida em contigencia algo assim. Entrega pra pessoa e apos a normalizacao reenvia a NFCe pra Sefaz

    • Curtir 1
  3. 15 horas atrás, giovani deitos disse:

    Tudo bem Juliomar?
    Minha ideia para pagar um cstat antes seria para o seguinte caso.
    -Operador finaliza a venda.
    -Abre tela TEF .
    -Cliente finaliza o pagamento do TEF
    E seguindo o fluxo a NFCE não é gerada devido a algum erro de cadastro do NCM por exemplo.
    Mas... o TEF já foi feito e a tela de vendas continua ali com erro da nota.
    Ai sabe né...
    Vai ter operadores que irão se perder, irão tentar sanar o erro na nota e passar o TEF novamente por não saber ou não entender que o TEF ja foi debitado do cliente.
    Dentre essa situação ou outras tava pensando uma maneira de validar a Nota antes.
    To com essa questão matutando na cabeça, ou seja, uma forma de melhor tratar isso que fique claro aos operadores.



     

    bom dia 

    Eu uso o seguinte fluxo :

    Salvo os dados da NFCe no banco de dados 

    Salvo os dados de pagamento

    envio a nota rejeitado ou nao é impresso o cupom e libero o cliente

    a tarde no fechamento do caixa ai sim vai aparecer as notas rejeitadas so permitindo o fechamento apos a validacao das mesma basicamente seria isso. 

    A forma que voce quer fazer ai nao vai dar muito certo imagina um supermercado lotado voce vai para um caixa ate que arrume o problema na emissao da nfce e se for problema no cadastro do produto, vai ficar travado ate a pessoa que faz cadastro alterar pra poder liberar a nota imagina quantas outras pessoas vao ter comprado o mesmo produto, e ai vai parar todos os caixas. no meu ponto de vista a unica coisa que pode travar é a confirmacao da forma de pagamento apos confirmado o pagamento libera o cliente e vamos pro proximo. 

     

    • Curtir 1
  4. 11 horas atrás, Daniel Simoes disse:

    Sim.. é um arquivo Binário como qualquer outro ..

    Salve em um Blob

    boa noite Daniel no meu teste nao deu certo salvando no banco. se eu passar o caminho da certo agora salvando no banco da erro 500

    Olha como estou fazendo

    estou usando essa funcao pra salvar no banco MYSQL

    function LerCertificado(pCaminho: string): AnsiString;
    var
      vFile: TFileStream;
    begin
      vFile := TFileStream.Create(pCaminho, fmOpenRead);
      try
        Result := EncodeBase64(ReadStrFromStream(vFile, vFile.Size));
      finally
        vFile.Free;
      end;
    end;

        dm1.sqldataset1.close;
        dm1.sqldataset1.sql.text:='update config_pix set certificado_cer=:certificado';
        dm1.sqldataset1.parambyname('certificado').AsAnsiString  := LerCertificado(lCaminho);//trim(destino);
        dm1.sqldataset1.ExecSQL;
     

      ACBrPixCD1.PSP                      := ACBrPSPSicredi1;
      ACBrPSPSicredi1.ChavePIX            := aDataSet.FieldByName('chavepix').AsString;
      ACBrPSPSicredi1.ClientID            := aDataSet.FieldByName('clientid').AsString;
      ACBrPSPSicredi1.ClientSecret        := aDataSet.FieldByName('clientsecret').AsString;
      ACBrPSPSicredi1.ArquivoChavePrivada := FDir+aDataSet.FieldByName('chave_privada').AsString;
      ACBrPSPSicredi1.ArquivoCertificado  := DecodeBase64(aDataSet.FieldByName('certificado_cer').AsAnsiString);
     

  5. 54 minutos atrás, rdxdt disse:

    Aparentemente está calibrada, ao apertar o botão de feed na impressora, ela avança uma etiqueta, inclusve esta mesma etiqueta estava em uso a um bom tempo com as mesmas etiquetas, mas vou pedir para o cliente fazer o procedimento de reset.

    O que mudou mesmo foi a versão do componente em uso, se não me engano a build do sistema que a cliente usava foi compilada com uma versão da suite ACBr antes de surgir o trunk2, mas vou continuar explorando o que pode ter acontecido.

    No caso a impressora é uma Argox OS-214.

    Bom dia se voce tinha uma versão tão antiga assim sugiro a dar uma olhada nos fontes pois tiveram algumas mudancas pegue o exemplo tambem a analisa. Essa foi uma das prorpiedades alteradas que pode estar dando esse problema ai

      FETQ.Unidade      := etqMilimetros; //etqMilimetros, etqPolegadas, etqDots, etqDecimoDeMilimetros

    essa propriedade altera o tamanho conforme o que estiver selecionado 
     

  6. Bom dia estude melhor o link que o @Renato Rubinho te passou voce esta fazendo errado a consulta por ultNSU voce tem que informar o ultimo NSU que é devolvido da consulta anterior e deve espera 1 hora entre consulta. Pra poder efetuar o download dos xml voce precisa fazer a manifestacao so apos a manifestacao é que é liberado o XML para ser baixado. A consulta so traz um resumo.

    • Curtir 2
  7. Em 23/01/2023 at 13:36, douglas_k disse:

    Bom dia @leandroaoa

    Na verdade quero usar para fazer uma tela padrão de mensagens, poderia ser também um webbrowser pois ai já interpreta html, só teria que fazer ele ficar da mesma cor do form. Peguei uma procedure e adaptei aqui, consegui assim formatar o richedit interpretando o html, agora só vou fazer pra tratar as tags que passo, fiz com o negrito um exemplo. Abaixo tem uma tela como ficaria com o richedit e com o webbroser

    procedure TForm1.ApplyStyleWhenMatchPattern(Edit: TRichEdit; const TokenStart,
      TokenEnd: string);
    var
      StartPos, EndPos, OffSet, Len: Integer;
    begin
      Len:= Length(Edit.Text);
      StartPos:= Edit.FindText(TokenStart, 0, Len, []);
      EndPos:= Edit.FindText(TokenEnd, Succ(StartPos), Len, []);
      while EndPos <> -1 do
      begin
        {Tirando a tag inicial}
        Edit.SelStart:= StartPos;
        Edit.SelLength:= Length(TokenStart);
        Edit.SelText :='';

        EndPos := EndPos - Length(TokenStart);

        {Atribuindo estilo}
        Edit.SelStart:= StartPos;
        Edit.SelLength:= EndPos - StartPos;
        if TokenStart = '<b>' then
          Edit.SelAttributes.Style:= [fsBold];

        {Tirando a tag final}
        Edit.SelStart:= EndPos;
        Edit.SelLength:= Length(TokenEnd);
        Edit.SelText :='';

        OffSet:= Succ(EndPos);
        StartPos:= Edit.FindText(TokenStart, OffSet, Len, []);
        EndPos:=   Edit.FindText(TokenEnd,   Succ(OffSet), Len, []);
      end;
    end;
     

      RichEdit1.Lines.Text :=  '<b>Erro:</b> Forma pagamento invalida '+ #10 +'<b>Erro:</b> Forma pagamento invalida' + #10 + '<b>Erro:</b> Forma pagamento invalida';
      ApplyStyleWhenMatchPattern(RichEdit1, '<b>','</b>');

    image.png.07d5f856a9b6d7a0a1c0df18cc7dd279.png

    Mas é so voce criar os style estou deduzindo que voce saiba trabalhar com htm

    var
      Doc: Variant;
    begin
      if not Assigned(WebBrowser1.Document) then
        WebBrowser1.Navigate('about:blank');

      Doc := WebBrowser1.Document;
      Doc.Clear;
      Doc.Write('<html>');
      Doc.Write('<head>');
      Doc.Write('<style>');
      Doc.Write('.important {background-color: blue; color: white; border: 2px solid black; margin: 2px; padding: 2px;}');
      Doc.Write('</style>');
      Doc.Write('</head>');
      Doc.Write('<body>');
      Doc.Write('<h1 class="important">Isto é um cabeçalho</h1>');
      Doc.Write('<p class="important">Isto é um parágrafo.</p>');
      Doc.Write('</body>');
      Doc.Write('</html>

  8. 4 minutos atrás, moreira mauro disse:

    Valter obrigado pelo seu retorno
     mas o problema é o que informar neste campo do acbr 
    neste campo abaixo.
     if DM1.TBLItensnotasaidais_cson.Value = '3500' then
         icms.CSOSN := csosn500 ?
    Detalhe estou fazendo uma nota de devolução.

    como eu disse acima nao existe csosn 3500 voce tem que passar o seguinte

    icms.orig := 3;

    icms.csosn := 500;

    nao importa se é nota de venda devolucao etc 

    esse seu if esta totalmente errado verifica ai essa sua funcao.

    outra coisa verirfica com o contador da empresa para gerar a nota de devolucao correta pois existe produtos com ST e produtos normal existe regras e tem que empresas que ate mandam um espelho de como dever ser feita a nota de devolucao

     

  9. Boa tarde esses numeros nao existe. abaixo tabela CSOS

    image-2.png

    consulte um contador para enteder a numeracao pelo visto ali o primeiro numero seria a origem da mercadoria o campo Produto.Imposto.ICMS.orig

    worddavfb29767d821be5e916ff8a141ce099af.png

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