Pesquisar na Comunidade
Showing results for tags 'Erro Cancelar Cupom Daruma'.
Encontrado 1 registro
-
Bom Dia a Todos ! Ontem 04/06/13 estive instalando o sistema de pdv em um cliente que usa a impressora daruma mach2. a mesma apresentava erros na emissao de comproventes nao fiscais para suprimento e sangria, que consegui corrigir dando um intervalo via Sleep(); apos o comando. No entanto, a mesma apresentou erros no cancelamento do cupom sendo este erro o seguinte: -- 11:00:45:239 CancelaCupom TX -> [FS]R[200]046[180] 11:00:45:488 RX <- :[200]0461[CR][252] -- 11:00:45:488 TX -> [FS]R[200]050[179] 11:00:45:535 RX <- :[200]050000137[CR][207] -- 11:00:45:535 TX -> [FS]R[200]026[178] 11:00:45:597 RX <- :[200]026000137[CR][206] -- 11:00:45:597 TX -> [FS]F[211][137] 11:00:45:785 RX <- :0000041[211]000137000000000000000010[CR][213] -- 11:00:45:800 TX -> [FS]R[200]056[181] Daruma: Falha no Envio do CMD. Tentativa: 1 - Erro: 0 - Estendido: 0 -> Erro não documentado Cod.Aviso: 0 11:00:46:923 RX <- ----------------- ERRO ----------------- Impressora Daruma não está respondendo ---------------------------------------- com isso, fiz a depuracao do codigo fonte do componente e descobri que erro ocorria no seguinte trecho: procedure TACBrECFDaruma.CancelaCupom; var RetCmd : String ; NumUltimoCupom : String ; NumCupomCancelavel: String; iNumUltimoCupom, iNumCupomCancelavel: integer; begin fsNumCupom := ''; AguardaImpressao := True ; if fpMFD then begin RetCmd := EnviaComando( FS + 'R' + #200 + '046'); // Verifica se precisa cancelar CCD; if copy(RetCmd, 6, 1) <> '0' then begin try RetCmd := EnviaComando( FS + 'R' + #200 + '050'); // retorna numero do cupom cancelavel NumCupomCancelavel := copy(RetCmd, 6, 6); NumUltimoCupom := GetNumCupom; iNumUltimoCupom := StrToInt(NumUltimoCupom); iNumCupomCancelavel := StrToInt(NumCupomCancelavel); while iNumCupomCancelavel < iNumUltimoCupom do begin NumUltimoCupom := FormatFloat('000000',iNumUltimoCupom); EnviaComando(FS + 'F' + #214 , 15); // Fecho o CCD caso ainda não esteja fechado EnviaComando(FS + 'F' + #218 + NumUltimoCupom +#255+#255+#255, 15); // Cancela Conprovante Não Fiscal EnviaComando(FS + 'F' + #214 , 15); // Fecha Comprovante de estorno Cancela Conprovante Não Fiscal dec(iNumUltimoCupom); end; except end; EnviaComando(FS + 'F' + #211, 15) ; // Cancela Cupom RespostasComando.Clear; RespostasComando.AddField('COO', Copy(fpRespostaComando, 10, 6)); RespostasComando.AddField('CCF', Copy(fpRespostaComando, 16, 6)); RespostasComando.AddField('ValorCancelado', Copy(fpRespostaComando, 22, 12)); // Cancelamento retorna dados do Cupom Fiscal Cancelado e nao do Cancelamento fsNumCupom := '' ; // RespostasComando['COO'].AsString; fsNumCCF := '' ; // RespostasComando['CCF'].AsString; end else raise EACBrECFCMDInvalido.Create( ACBrStr('Não existe documento para cancelar.') ); end else if fsNumVersao = '2000' then EnviaComando(ESC + #211, 15) else EnviaComando(ESC + #206, 15) ; ZeraTotalApagar; FechaRelatorio ; { Fecha relatorio se ficou algum aberto (só por garantia)} end; O erro ocorre apos o EnviaComando(FS + 'F' + #211, 15) ; // Cancela Cupom depois que é enviado o codigo passa para o retorno dos campos: RespostasComando.Clear; RespostasComando.AddField('COO', Copy(fpRespostaComando, 10, 6)); RespostasComando.AddField('CCF', Copy(fpRespostaComando, 16, 6)); RespostasComando.AddField('ValorCancelado', Copy(fpRespostaComando, 22, 12)); que é onde ocorre o erro, dai alterei o codigo colocando um Sleep(); apos o EnviaComando(FS + 'F' + #211, 15) ; // Cancela Cupom porem fazendo o teste pelo AcbrEcfTeste o erro nao ocorre, dai pergunto o que pode ser? Configuracao do componente AcbrECF talvez? desde ja grato !