Ir para conteúdo
  • Cadastre-se

dev botao

Sugestão de alteração na unit ACBrSATExtratoESCPOS.pas - Cancelamento SAT


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 2221 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Foi realizada a seguinte modificação na unit ACBrSATExtratoESCPOS.pas, na procedure TACBrSATExtratoESCPOS.GerarDadosCancelamento:

procedure TACBrSATExtratoESCPOS.GerarDadosCancelamento;
Var
  ChaveEmUmaLinha, Suporta128c : Boolean;
  Chave, TagCode128 : String;
  QRCode: AnsiString;
begin
  FBuffer.Add('</fn></linha_simples>');
  FBuffer.Add(ACBrStr('</ce><n>DADOS DO CUPOM FISCAL ELETRÔNICO DE CANCELAMENTO</n>'));
  FBuffer.Add('</ce>SAT No. <n>'+IntToStr(CFe.ide.nserieSAT)+'</n>');
  FBuffer.Add(FormatDateTimeBr(CFeCanc.ide.dEmi + CFeCanc.ide.hEmi));

  Chave := FormatarChaveAcesso(CFeCanc.infCFe.ID);
  if Length(Chave) > FPosPrinter.ColunasFonteCondensada then
    Chave := OnlyNumber(Chave);

  if not FPosPrinter.ConfigBarras.MostrarCodigo then
    FBuffer.Add('<c>'+Chave+'</fn>');

  Suporta128c := (FPosPrinter.TagsNaoSuportadas.IndexOf(cTagBarraCode128c) < 0);
  TagCode128 := IfThen(Suporta128c,'code128c', 'code128' );

  ChaveEmUmaLinha := (ImprimeChaveEmUmaLinha = rSim) or
                     ((ImprimeChaveEmUmaLinha = rAuto) and Suporta128c);

  if not ChaveEmUmaLinha then
  begin
    FBuffer.Add('<' + TagCode128 + '>'+copy(CFeCanc.infCFe.ID,1,22)+'</' + TagCode128 + '>');
    FBuffer.Add('<' + TagCode128 + '>'+copy(CFeCanc.infCFe.ID,23,22)+'</' + TagCode128 + '>');
  end
  else
    FBuffer.Add('<' + TagCode128 + '>'+CFeCanc.infCFe.ID+'</' + TagCode128 + '>');


  if ImprimeQRCode then
  begin
    QRCode := CalcularConteudoQRCode( CFeCanc.infCFe.ID,
                                      CFeCanc.ide.dEmi+CFeCanc.ide.hEmi,
                                      CFeCanc.Total.vCFe,
                                      Trim(CFeCanc.Dest.CNPJCPF),
                                      CFeCanc.ide.assinaturaQRCODE );

    FBuffer.Add('<qrcode_tipo>2</qrcode_tipo>'+
                '<qrcode_error>0</qrcode_error>'+
                '<qrcode>'+QRCode+'</qrcode>');
  end;

  if MsgAppQRCode <> '' then
    FBuffer.Add('</ce><c>' + QuebraLinhas(MsgAppQRCode, FPosPrinter.ColunasFonteCondensada ));

  if (SoftwareHouse <> '') or (Site <> '') then
    FBuffer.Add('</linha_simples>');

  // SoftwareHouse
  if SoftwareHouse <> '' then
    FBuffer.Add('</ce><c>' + SoftwareHouse);

  if Site <> '' then
    FBuffer.Add('</ce><c>' + Site);

  FBuffer.Add('</zera>');    

  if FPosPrinter.CortaPapel then
    FBuffer.Add('</corte_total>')
  else
    FBuffer.Add('</pular_linhas>');
end;

No rodapé da impressão do SAT, são apresentados os dados da Software House e o Site. Porém, na impressão do cancelamento não é impresso. É necessário que os dados da Software House e do Site sejam apresentados no rodapé da impressão do cancelamento do SAT. 

Foram realizados diversos testes de impressão e não foi apresentado nenhum problema. Estou utilizando a revisão número 15238 da unit. 

ACBrSATExtratoESCPOS.pas

Atenciosamente,

 

 Assinatura.png

  • Este tópico foi criado há 2221 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.