Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 03-05-2014 em todas as áreas

  1. O comando acima está correto... O que o ACBrECF faz nesse bloco, é verificar se o ECF tem a capacidade de identificar o consumidor no rodapé... A Bematech por exemplo, não permite, porém como esse post mesmo diz... a SwedaSTX consegue fazer isso... Se o ECF não suportar a identificação do consumidor no rodapé, o ACBrECF a fim de minimizar a perda de informações, adiciona as informações do consumidor no Rodapé do Cupom... Porém vale lembrar que isso NÃO ATENDE OS PROGRAMAS DE CIDADANIA (Ex: Nota Fiscal Paulista)... Pois o CPF não foi impresso em área específica para identificação do consumidor... Ou seja, o texto do Cliente impresso nas 8 linhas de Rodapé, não irá gerar o arquivo com o CPF do cliente corretamente Veja o FechaCupom da SwedaSTX procedure TACBrECFSwedaSTX.FechaCupom(Observacao: AnsiString; IndiceBMP : Integer); begin if not Consumidor.Enviado and (Trim(Consumidor.Documento) <> '') then { Tem Docto ? } begin EnviaComando('12|'+LeftStr(Consumidor.Documento ,20)+'|'+ LeftStr(Consumidor.Nome ,30)+'|'+ LeftStr(Consumidor.Endereco ,79)+'|1') ; Consumidor.Enviado := True ; end ; AguardaImpressao := True ; EnviaComando( '07|' + LeftStr( Observacao,800) ) ; end; Ou seja, o Cliente será identificado, com o comando correto, (12) e não irá consumir as 8 linhas do Rodapé do Cupom O mesmo ocorre da Daruma... onde será usado o comando 201 para identificar o cliente... Observe ainda que esse comando foi enviado no seu Log Certeza que o consumidor não está sendo impresso ? Se realmente não... tente com o Demo do fabricante...
    1 ponto
  2. Não precisa formatar a maquina esta dll faz parte do pacote c++ da Microsoft, pela versão ser 9 acredito q é do visual studio 2008, mas qq coisa é so procurar por microsoft visual c++ 2008 redistributable package, onde 2008 pode ser mudado de acordo com a versão do vs ou seja, 2008, 2010, 2012 e 2013; No caso do Delphi provavelmente a versão x86 é que você necessita lembrando que a versão 2008 tem service pack 1 se não to enganado.
    1 ponto
  3. Sim, com uma POG. Se o retorno for status = 657 - Codigo do Orgao diverge do orgao autorizador. Isso resolveu meu problema. ACBrNFe1 := TACBrNFe.Create(nil); try ConfiguraACBRNFE(ACBrNFe1); NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW)); ACBrNFe1.EventoNFe.Evento.Clear; ACBrNFe1.EventoNFe.idLote := NumeroLote; with ACBrNFe1.EventoNFe.Evento.Add do begin infEvento.chNFe := Chave; infEvento.CNPJ := CNPJ; infEvento.dhEvento := now; infEvento.tpEvento := teManifDestCiencia; ; end; // Enviar o evento de manifestação if ACBrNFe1.EnviarEventoNFe(NumeroLote) then begin // 657 = Rejeicao: Codigo do Orgao diverge do orgao autorizador // Em todos os casos testados deveria ser o 91 que vem no arquivo de resposta // que eu atribuo ele ao evento e reenvio.. if ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 657 then begin ACBrNFe1.EventoNFe.Evento.Items[0].InfEvento.cOrgao := ACBrNFe1.WebServices.EnvEvento.EventoRetorno.cOrgao; if not ACBrNFe1.EnviarEventoNFe(NumeroLote) then begin with ACBrNFe1.WebServices.EnvEvento do begin raise Exception.Create('Ocorreram erros ao tentar efetuar a manifestação:' + sLineBreak + 'Lote: ' + IntToStr(EventoRetorno.idLote) + sLineBreak + 'Ambiente: ' + TpAmbToStr(EventoRetorno.tpAmb) + sLineBreak + 'Orgao: ' + IntToStr(EventoRetorno.cOrgao) + sLineBreak + 'Status: ' + IntToStr(EventoRetorno.cStat) + sLineBreak + 'Motivo: ' + EventoRetorno.xMotivo); end; end; end;
    1 ponto
×
×
  • 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.