-
Total de ítens
2.163 -
Registro em
-
Última visita
-
Days Won
27
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Gr@c@ postou
-
Sim tenho a informação no ato do cupom. Estou adaptando o meu aplicativo PAF (que já está homologado), substituindo as funções da Bemafi32.dll pelo ACBrECF. Gravo uma tabela no BD exatamente com os retornos da função Bematech_FI_VerificaFormasPagamentoMFD para algumas consultas, relatórios e emissão posterior de uma 2a via de cupom. Tudo o que não estou encontrando no ACBrECF para adaptar, pergunto aqui no forum, porque pode ser que exista algum comando pronto. A adaptação está bem tranquila.
-
a função CarregaFormasPagamento também traz o valor acumulado como a LerTotaisFormasPagamento. Eu precisava obter o valor recebido (por forma) no ultimo cupom. // Exemplo em Delphi for iConta := 1 to 919 do sFgto := sFgto + ' '; iRetorno := Bematech_FI_VerificaFormasPagamentoMFD( sFgto ); Descricao da forma de pagamento............................................: 16 bytes Valor acumulado da forma (duas casas decimais).............................: 14 bytes Valor recebido no último cupom (duas casas decimais).......................: 14 bytes -----> este valor Valor indicando se a forma permite operação TEF (1 permite, 0 não permite ): 1 byte
-
Na Bemafi32.dll existe a função 'Bematech_FI_VerificaFormasPagamentoMFD' que me traz forma de pagamento + valor acumulado + valor recebido no ultimo cupom. No ACBr existe recurso para obter o valores pagos no ultimo cupom por forma de pagamento?
-
Qual a função do ACBrECF que retorna data/hora do ultimo relatorio gerencial emitido no ECF? Tanto CBrECF1.DataHora e ACBrECF1.DataMovimento retornam data = 0.
-
Tá aí uma coisa que não entendo por parte dos interventores: por que não desabilitam a z automática na minha impressora. E isso já foi solicitado por 2 vezes. Minha impressora passou por intervenção esse mês. Nesse caso, saber o modo z é realmente desnecessário, será sempre por comando. Obrigada pela resposta.
-
No ACBr, qual o comando utilizar para saber o modo da redução Z: se foi emitido automatico ou por comando? (sei que a maioria das impressoras informam reduçãoZ pendente, mas a minha MP3000 THFI, por exemplo, emite a Z automaticamente caso não tenha sido emitida no dia anterior) Na Bemafi32.dll é retornado ao obter os dados da ultima redução Z, mas no ACBr não encontrei no ACBrECF1.DadosReducaoZClass
-
Estou tentando compilar mas está ocorrendo o erro abaixo. Devo remover a referencia ou falta passar algum parametro no componente?
-
No meu aplicativo (sem ACBrECF) salvo o GT a cada operação em que o mesmo possa sofrer alteração. Percebi que o ACBrAAC faz esse processo. Estou tentando entender melhor como é feita a integração dos componentes ACBrECF e ACBrAAC. O componente ACBrAAC captura automaticamente o valor do GT a cada operação em que ocorrerá alteração desse valor? para verificar GT e Numero de Série (exigencia do fisco) devo usar o comando ACBrECF1.DoVerificaValorGT somente ou tambem o ACBrECF1.doAtualizarValorGT ? Como salvar o ultimo valor GT em uma tabela do banco de dados? Como capturo esse valor dos componentes? Seria do ACBrECF1.DadosReducaoZ ?
-
Não encontrei erro. O CTe foi emitido na versão 2.00. Poderia ser incompatilibidade com o programa de monitoramento do tomador de serviço, que talvez possa estar usando a versão 3.00? O pior é que o emissor do CT-e não consegue fazer o download do xml diretamente do portal do CT-e. Dá falha ao realizar o download.
-
Como gerar o codigo MD5 usando os componentes ACBr? Atualmente estou usando a função da Bematech function md5FromFile( NomeArq: String; MD5: String ): integer; stdcall; external 'sign_bema.dll';
-
Um cliente transportadora emitiu um CT-e e o mesmo foi autorizado sem problemas. Mas o aplicativo de monitoramento da empresa tomadora de servico está rejeitando o xml com a rejeiçao "Assinatura difere do calculado". O xml está assinado e protocolado. O que pode estar causando este erro?
-
Não consegui.
-
Costuma dar muito Lote Em Processamento. Por isso a contingência SVC está quase sempre ativada. Quanto ao digestvalue acho que tem como desativar no ACBr para não checar mais. Em casos de não retornar xml, você tem que dar ao usuário a opção de consultar o CT-e e atualizar caso já tenha sido autorizado ou não, tomando o cuidado de tratar o seu aplicativo para o erro de duplicidade.
-
Executando o ACBrTEFD que usa o ACBrECF, também está parando até o ponto que o meu aplicativo que usa Bemafi32.dll. Ou seja, abro cupom, realizo venda de itens, subtotaliza cupom, envio forma de pagamento CRT, Transação OK, a forma de pagamento cartão é impressa no ECF. Mas desse ponto, não finaliza o cupom. Será que existe algum bug entre o ACBrTEFD e a impressora MP 3000 TH FI? Queria testar o demo do Lazarus, mas não tenho o exe. Teria como disponibilizar ele no svn?
-
qual deve ser o EstadoECF após a impressão da forma de pagamento única, para poder finalizar o cupom e em seguida o comprovante do TEF? 'P','V','L','O' ?
-
A implementação do ACBrTEFD com a Bemafi32.dll não está dando certo. Falta pouco, porém não consigo encontrar o problema: 1-Venda dos itens ok 2-Subtotalização com desconto/acrescimo ok 3-Transação TEF ok 4-Impressão da forma de pagamento cartão ok 5- Finalização do cupom -----> aqui deveria finalizar o cupom pois o valor da forma de pagamento é igual ao valor liquido do cupom, mas dá erro de memória. Debugando, percebo que o componente volta para tentar reenviar de novo a forma de pagamento, entrando novamente na operação opeImprimePagamento. se eu colocar a função da bemafi32 após o item 4 para finalizar o cupom dá erro também, porque o passo 4 que está incorreto. Substituindo os passos 1,2,3,4 por funções da bemafi32 (deixando de usar o ACBrTEFD nesses momentos) e acrescentando o passo 5 fechando o cupom com a função da Bemafi32 fica correto. Porém fazendo isso, perco os recursos do ACBrTEFD para outros tratamentos. Confesso que não estou conseguindo usar o ACBrTEFD sem o ACBrECF, embora pense que falta pouco para corrigir. Todo o resto funciona: verificação do GP Ativo, ADM, reimpressão de comprovante, mensagem de impressão de transação pendente, cancelamento de transação TEF. Acho que o jeito é fazer um novo aplicativo PAF-ECF usando ACBrECF+ACBrTEFD, o que vai me tomar um tempo precioso. Sem falar que o ACBrECF tem problemas com a usb da bematech e o conversor usb->serial que a bematech disponibilizou dá n erros até que se consiga fazer funcionar. segue anexo o log do processo da ultima tentativa de transação que fizCliSiTef.log
-
Existe um meio de descobrir a chave de acesso do ct-e ou do MDF-e pelo protocolo? Só tenho o protocolo de ambos pela consulta da chave de acesso da NF-e que originou o ct-e e o MDF-e.
-
No ACBrTEFD existe procedure TFrm_ECFPrincipal.ACBrTEFD1ComandaECFSubtotaliza( DescAcre: Double; var RetornoECF: Integer); --------------------------------------------------------------------------------------------------------- procedure TFrm_ECFPrincipal.ACBrTEFD1ComandaECF( Operacao: TACBrTEFDOperacaoECF; Resp: TACBrTEFDResp; var RetornoECF: Integer); opeSubtotalizaCupom --------------------------------------------------------------------------------------------------------- Para quem usa a função da bemafi32.dll, como implementar a subtotalização do cupom? Basta implementar em apenas uma dessas procedures ou tem que ser em ambas? E por que existe as duas?
-
acho que já tem algo assim. Dá uma olhada nesse post
-
Uma ajuda por favor. No ACBrTEFD evento ACBrTEFD1ComandaECF(Operacao: TACBrTEFDOperacaoECF; Resp: TACBrTEFDResp; var RetornoECF: Integer) a primeira coisa é checar o estado atual do ECF. Como não uso o ACBrECF estou adaptando uma função que me retorne uma variavel do tipo TACBrECFEstado, para substituir no momento de chegar o status atual (não o status do retorno da ultima função executada). Na Bemafi32 isso é feito pela função Bematech_FI_VerificaEstadoImpressoraMFD(iACk,iST1,iST2,iST3). A implementação abaixo está correta? Em qual dos erros abaixo poderia se encaixar os estados do ECF conf ACBrECF para Bematech? estNaoFiscal,estNaoInicializada,estDesconhecido,estLivre,estVenda,estPagamento,estRelatorio? estBloqueada,estRequerZ,estRequerX --> creio que estas estejam corretas. Já implementei todos os eventos do ACBrTEFD com a Bemafi32.dll, mas ainda ocorrem alguns erros devido ao mau tratamento do estado atual da impressora. Function ACBr_TEF_VerificaEstadoECF: TACBrECFEstado; var iStatus: Integer; Function Checa(Valor1,Valor2: Integer): Integer; begin Result := Valor1-Valor2; end; begin Result := estDesconhecido; iStatus := Bematech_FI_VerificaEstadoImpressoraMFD(iACK,iST1,iST2,iST3); If iStatus = 0 then begin Result := estNaoInicializada; Exit; end; If iStatus = 1 then begin if (iACK = 0) and (iST1 = 0) and (iST2 = 0) and (iST3 = 0) then begin Result := estLivre; Exit; end; if (iACK = 6) and (iST1 = 0) and (iST2 = 0) and (iST3 = 0) then begin Result := estLivre; Exit; end; if (iACK = 21) then begin Result := estNaoInicializada; Exit; end; if ( iST1 <> 0 ) or ( iST2 <> 0 ) or (iST3 <> 0) then begin {Analisa ST1} if ( iST1 > 0 ) begin if iST1 >= 128 then iST1 := Checa( iST1,128 ); //Fim de Papel if iST1 >= 64 then iST1 := Checa( iST1, 64 ); //Pouco Papel if iST1 >= 32 then iST1 := Checa( iST1, 32 ); //Erro no Relogio if iST1 >= 16 then iST1 := Checa( iST1, 16 ); //Alíquota Não Programada if iST1 >= 8 then iST1 := Checa( iST1, 8 ); //Primeito Dado do Comando Não foi <ESC> if iST1 >= 4 then iST1 := Checa( iST1, 4 ); //Comando Inexistente if iST1 >= 2 then begin //Cupom Fiscal Aberto iST1 := Checa( iST1, 2 ); Result := estVenda; end; if iST1 >= 1 then iST1 := Checa( iST1, 1 ); //Numero de Parametros Inválido end; {Analisa ST2} if ( iST2 > 0 ) then begin if iST2 >= 128 then iST2 := Checa( iST2,128 ); //Tipo de Parametro de Comando Inválido if iST2 >= 64 then iST2 := Checa( iST2, 64 ); //Memória Fiscal Lotada if iST2 >= 32 then iST2 := Checa( iST2, 32 ); //Erro na RAM CMOS Não Volátil if iST2 >= 16 then iST2 := Checa( iST2, 16 ); //Alíquota Não Programada if iST2 >= 8 then iST2 := Checa( iST2, 8 ); //Capacidade de Alíquotas Programáveis Lotada if iST2 >= 4 then iST2 := Checa( iST2, 4 ); //Cancelamento Não Permitido if iST2 >= 2 then iST2 := Checa( iST2, 2 ); //CNPJ/INSCRICAO ESTADUAL do Proprietário Não Programados Na Impressora Fiscal if iST2 >= 1 then iST2 := Checa( iST2, 1 ); //Comando não executado end; {Analisa ST3 se a impressora for MFD e o Retorno Estendido estiver habilitado} If ( iST3 > 0 ) then begin if iST3 >= 218 then iST3 := Checa( iST3,218 ); //Cancelamento de acréscimo/desconto não permitido'); if iST3 >= 217 then iST3 := Checa( iST3,217 ); //Detectada Abertura do EQUIPAMENTO'); if iST3 >= 215 then iST3 := Checa( iST3,215 ); //Usuário já Programado'); if iST3 >= 214 then iST3 := Checa( iST3,214 ); //Intervalo Invalido'); if iST3 >= 213 then iST3 := Checa( iST3,213 ); //CRC DO Cliche Grafico Diferente do Informado'); if iST3 >= 212 then iST3 := Checa( iST3,212 ); //Cliche Grafico Não Disponível Para Confirmação'); if iST3 >= 211 then iST3 := Checa( iST3,211 ); //Espaço Para Armazenamento do Cliche Esgotado'); if iST3 >= 210 then iST3 := Checa( iST3,210 ); //Retorno Pacote Cliche Fora da Sequencia'); if iST3 >= 209 then iST3 := Checa( iST3,209 ); //Aliquota DE ISS Não Permitida Sem INSCRIÇÃO MUNICIPAL'); if iST3 >= 208 then iST3 := Checa( iST3,208 ); //Data de embarque anterior a data de emissão'); if iST3 >= 207 then iST3 := Checa( iST3,207 ); //Todas as alíquotas com a mesma vinculação não permitido'); if iST3 >= 206 then iST3 := Checa( iST3,206 ); //Posição reservada para iss'); if iST3 >= 205 then iST3 := Checa( iST3,205 ); //Posição Reservada Para ICMS'); if iST3 >= 204 then iST3 := Checa( iST3,204 ); //Casas Decimais do Unitário Maior do que o Permitida'); if iST3 >= 203 then iST3 := Checa( iST3,203 ); //Casas Decimais Em Quantidade Maior do que a Permitida'); if iST3 >= 202 then iST3 := Checa( iST3,202 ); //Identificação do Consumidor Não Permitida Para Sangria Ou Suprimento'); if iST3 >= 201 then iST3 := Checa( iST3,201 ); //Não permite cadastrar usuários diferentes na mesma mfd'); if iST3 >= 200 then iST3 := Checa( iST3,200 ); //Casas decimais devem ser programadas com 2 ou 3'); if iST3 >= 199 then iST3 := Checa( iST3,199 ); //Programação da moeda com espaços em braco não permitido'); if iST3 >= 198 then iST3 := Checa( iST3,198 ); //Valor total do item excede 11 dígitos'); if iST3 >= 197 then iST3 := Checa( iST3,197 ); //Configuração permitida somente pela porta dos fisco'); if iST3 >= 196 then iST3 := Checa( iST3,196 ); //Parâmetro baud rate inválido'); if iST3 >= 195 then iST3 := Checa( iST3,195 ); //Programação de alíquota com valor nulo não permitido'); if iST3 >= 194 then iST3 := Checa( iST3,194 ); //Equipamento não possui leitor de cheque'); if iST3 >= 193 then iST3 := Checa( iST3,193 ); //Programação de espaços entre cupons menor que o mínimo permitido'); if iST3 >= 192 then iST3 := Checa( iST3,192 ); //Overflow na capacidade de texto do comprovante de crédito ou débito'); if iST3 >= 191 then iST3 := Checa( iST3,191 ); //Timeout na inserção do cheque'); if iST3 >= 190 then iST3 := Checa( iST3,190 ); //Impressão automática no verso não permitido neste equipamento'); if iST3 >= 189 then iST3 := Checa( iST3,189 ); //Texto opcional do cheque excedeu o máximo permitido'); if iST3 >= 188 then iST3 := Checa( iST3,188 ); //Cliche já impresso'); if iST3 >= 187 then iST3 := Checa( iST3,187 ); //Cancelamento de acréscimo ou desconto em item não permitido'); if iST3 >= 186 then iST3 := Checa( iST3,186 ); //Acréscimo ou desconto em item não permitido'); if iST3 >= 185 then iST3 := Checa( iST3,185 ); //Mais que duas alíquotas diferentes no bilhete de passagem não permitido'); if iST3 >= 184 then iST3 := Checa( iST3,184 ); //Número de ítem nulo não permitido'); if iST3 >= 183 then iST3 := Checa( iST3,183 ); //Número máximo de ítens atingido'); if iST3 >= 182 then iST3 := Checa( iST3,182 ); //Cancelamento desconto em ítem não permitido'); if iST3 >= 181 then iST3 := Checa( iST3,181 ); //Cancelamento acréscimo em ítem não permitido'); if iST3 >= 180 then iST3 := Checa( iST3,180 ); //Cheque sem localidade não permitido'); if iST3 >= 179 then iST3 := Checa( iST3,179 ); //Valor do cheque inválido'); if iST3 >= 178 then iST3 := Checa( iST3,178 ); //Valor do cheque nulo não permitido'); if iST3 >= 177 then iST3 := Checa( iST3,177 ); //Data inválida'); if iST3 >= 176 then iST3 := Checa( iST3,176 ); //Cancelamento de acréscimo ou desconto em subtotal não permitido'); if iST3 >= 175 then iST3 := Checa( iST3,175 ); //Desconto nulo não permitido'); if iST3 >= 174 then iST3 := Checa( iST3,174 ); //Acréscimo nulo não permitido'); if iST3 >= 173 then iST3 := Checa( iST3,173 ); //Desconto em subtotal já efetuado'); if iST3 >= 172 then iST3 := Checa( iST3,172 ); //Acréscimo em subtotal já efetuado'); if iST3 >= 171 then iST3 := Checa( iST3,171 ); //Cupom não subtotalizado'); if iST3 >= 170 then begin //Cf já subtotalizado'); iST3 := Checa( iST3,170 ); Result := estPagamento; end; if iST3 >= 169 then iST3 := Checa( iST3,169 ); //Número de impressões da fita detalhe nesta intervenção técnica esgotado'); if iST3 >= 168 then iST3 := Checa( iST3,168 ); //Não permitido programação uf com espaços em branco'); if iST3 >= 167 then iST3 := Checa( iST3,167 ); //Não permitido programaçao cnpj ie com espaços em branco'); if iST3 >= 166 then iST3 := Checa( iST3,166 ); //Aguardando impressão de cheque ou autenticação'); if iST3 >= 165 then iST3 := Checa( iST3,165 ); //Descrição do primeiro ítem do bilhete de passagem diferente de tarifa'); if iST3 >= 164 then iST3 := Checa( iST3,164 ); //Tipo de transporte incompatível com uf destino'); if iST3 >= 163 then iST3 := Checa( iST3,163 ); //UF destino inválida'); if iST3 >= 162 then iST3 := Checa( iST3,162 ); //Indice da forma de pagamento nulo não permitido'); if iST3 >= 161 then iST3 := Checa( iST3,161 ); //Sangria ou suprimento devem ser únicos no cnf'); if iST3 >= 160 then iST3 := Checa( iST3,160 ); //Não encontrado dados na mfd'); if iST3 >= 159 then iST3 := Checa( iST3,159 ); //Timeout na inicialização da nova mf'); if iST3 >= 158 then iST3 := Checa( iST3,158 ); //Senha cnpj inválida'); if iST3 >= 157 then iST3 := Checa( iST3,157 ); //It não permitida mf reservada para rz'); if iST3 >= 156 then iST3 := Checa( iST3,156 ); //Acerto de horário de verão só imediatamente após rz'); if iST3 >= 155 then iST3 := Checa( iST3,155 ); //Descrição forma de pagamento igual já programada'); if iST3 >= 154 then iST3 := Checa( iST3,154 ); //Estorno de forma de pagamento não permitido'); if iST3 >= 153 then iST3 := Checa( iST3,153 ); //Dados do proprietário iguais ao atual'); if iST3 >= 152 then iST3 := Checa( iST3,152 ); //Estorno de cdc não permitido'); if iST3 >= 151 then iST3 := Checa( iST3,151 ); //Endereço em branco'); if iST3 >= 150 then iST3 := Checa( iST3,150 ); //Nome de fantasia em branco'); if iST3 >= 149 then iST3 := Checa( iST3,149 ); //Razão social em branco'); if iST3 >= 148 then begin //Valor forma de pagamento maior que máximo permitido'); iST3 := Checa( iST3,148 ); Result := estPagamento; end; if iST3 >= 147 then iST3 := Checa( iST3,147 ); //Aguardando acerto do relógio ou desbloqueio pelo teclado'); if iST3 >= 146 then iST3 := Checa( iST3,146 ); //MFD já inicializada para outra mf'); if iST3 >= 145 then iST3 := Checa( iST3,145 ); //Aguardando acerto de relógio'); if iST3 >= 144 then iST3 := Checa( iST3,144 ); //Comando não permitido no modo inicialização'); if iST3 >= 143 then iST3 := Checa( iST3,143 ); //Dados da última rz corrompidos'); if iST3 >= 142 then iST3 := Checa( iST3,142 ); //Não permitido alterar sem intervenção técnica'); if iST3 >= 141 then iST3 := Checa( iST3,141 ); //Primeiro dado diferente de esc ou 1c'); if iST3 >= 140 then iST3 := Checa( iST3,140 ); //Usando mfd de outro ecf'); if iST3 >= 139 then iST3 := Checa( iST3,139 ); //Sobreposição de texto no ano'); if iST3 >= 138 then iST3 := Checa( iST3,138 ); //Sobreposição de texto no mês'); if iST3 >= 137 then iST3 := Checa( iST3,137 ); //Sobreposição de texto no dia'); if iST3 >= 136 then iST3 := Checa( iST3,136 ); //Sobreposição de texto no opcional'); if iST3 >= 135 then iST3 := Checa( iST3,135 ); //Sobreposição de texto na localidade'); if iST3 >= 134 then iST3 := Checa( iST3,134 ); //Sobreposição de texto no favorecido'); if iST3 >= 133 then iST3 := Checa( iST3,133 ); //Sobreposição de texto no extenso'); if iST3 >= 132 then iST3 := Checa( iST3,132 ); //Sobreposição de texto no valor'); if iST3 >= 131 then iST3 := Checa( iST3,131 ); //Sobreposição de texto'); if iST3 >= 130 then iST3 := Checa( iST3,130 ); //Coordenada inválida'); if iST3 >= 129 then iST3 := Checa( iST3,129 ); //Mês inválido'); if iST3 >= 128 then iST3 := Checa( iST3,128 ); //Timeout na leitura do cheque'); if iST3 >= 127 then iST3 := Checa( iST3,127 ); //Estouro de capacidade no cheque'); if iST3 >= 126 then iST3 := Checa( iST3,126 ); //Versão já gravada na memória fiscal'); if iST3 >= 125 then iST3 := Checa( iST3,125 ); //Caracter repetido na codificação do gt'); if iST3 >= 124 then iST3 := Checa( iST3,124 ); //Aguardando gravação na memória fiscal'); if iST3 >= 123 then iST3 := Checa( iST3,123 ); //Erro na memória fiscal chamar credenciado'); if iST3 >= 122 then iST3 := Checa( iST3,122 ); //Desconto em ítem já efetuado'); if iST3 >= 121 then iST3 := Checa( iST3,121 ); //Acréscimo em ítem já efetuado'); if iST3 >= 120 then iST3 := Checa( iST3,120 ); //Desconto em iss não permitido'); if iST3 >= 119 then iST3 := Checa( iST3,119 ); //Desconto maior que valor do ítem'); if iST3 >= 118 then iST3 := Checa( iST3,118 ); //Acréscimo maior que valor do ítem'); if iST3 >= 117 then iST3 := Checa( iST3,117 ); //Descricao sem caracter alfabético não permitido'); if iST3 >= 116 then iST3 := Checa( iST3,116 ); //Código com espaços não permitido'); if iST3 >= 115 then iST3 := Checa( iST3,115 ); //Item não existe ou já cancelado'); if iST3 >= 114 then iST3 := Checa( iST3,114 ); //Item anterior aos trezentos últimos'); if iST3 >= 113 then iST3 := Checa( iST3,113 ); //Parâmetro de acréscimo ou desconto inválido'); if iST3 >= 112 then iST3 := Checa( iST3,112 ); //Data e hora anteriores ao último doc armazenado'); if iST3 >= 111 then iST3 := Checa( iST3,111 ); //Nome do totalizador em branco não permitido'); if iST3 >= 110 then iST3 := Checa( iST3,110 ); //Erro na inicialização da mf'); if iST3 >= 109 then iST3 := Checa( iST3,109 ); //Caracter numérico na codificação gt não permitido'); if iST3 >= 108 then iST3 := Checa( iST3,108 ); //Estorno maior que forma pagamento'); if iST3 >= 107 then iST3 := Checa( iST3,107 ); //Forma de pagamento destino não programada'); if iST3 >= 106 then iST3 := Checa( iST3,106 ); //Forma de pagamento origem não programada'); if iST3 >= 105 then iST3 := Checa( iST3,105 ); //Número do relatório gerencial inválido'); if iST3 >= 104 then iST3 := Checa( iST3,104 ); //Acréscimo ou desconto em sangria ou suprimento não permitido'); if iST3 >= 103 then iST3 := Checa( iST3,103 ); //Parâmetro de acréscimo ou desconto inválido'); if iST3 >= 102 then iST3 := Checa( iST3,102 ); //Número do totalizador não fiscal inválido'); if iST3 >= 101 then iST3 := Checa( iST3,101 ); //Sem relatório gerencial ou comprovante de crédito ou débito aberto'); if iST3 >= 100 then iST3 := Checa( iST3,100 ); //Data e hora inválida'); if iST3 >= 99 then iST3 := Checa( iST3, 99 ); //Tipo de transporte inválido'); if iST3 >= 98 then iST3 := Checa( iST3, 98 ); //Parâmetro não ascii numérico em campo ascii numérico'); if iST3 >= 97 then iST3 := Checa( iST3, 97 ); //Parâmetro não ascii em campo ascii'); if iST3 >= 96 then iST3 := Checa( iST3, 96 ); //Cupom não fiscal fechado'); if iST3 >= 95 then iST3 := Checa( iST3, 95 ); //Comando não executado em impressora de cupom fiscal'); if iST3 >= 94 then iST3 := Checa( iST3, 94 ); //Comando não executado em impressora bilhete de passagem'); if iST3 >= 93 then iST3 := Checa( iST3, 93 ); //Timeout na validação'); if iST3 >= 92 then iST3 := Checa( iST3, 92 ); //Autenticação não permitida'); if iST3 >= 91 then iST3 := Checa( iST3, 91 ); //Acréscimo e desconto maior que valor do ítem'); if iST3 >= 90 then iST3 := Checa( iST3, 90 ); //Forma de pagamento com valor nulo não permitido'); if iST3 >= 89 then iST3 := Checa( iST3, 89 ); //Aguardando rz para entrada em intervenção técnica'); if iST3 >= 88 then iST3 := Checa( iST3, 88 ); //Redução não permitida em intervenção técnica'); if iST3 >= 87 then iST3 := Checa( iST3, 87 ); //Forma de pagamento diferente do total da sangria'); if iST3 >= 86 then iST3 := Checa( iST3, 86 ); //Estorno de valor nulo'); if iST3 >= 85 then begin //Venda com valor nulo'); iST3 := Checa( iST3, 85 ); Result := estVenda; end; if iST3 >= 84 then iST3 := Checa( iST3, 84 ); //Texto com sequência de esc incompleta'); if iST3 >= 83 then iST3 := Checa( iST3, 83 ); //Texto com sequência de esc inválida'); if iST3 >= 82 then begin //Comprovante de crédito ou débito aberto'); iST3 := Checa( iST3, 82 ); Result := estNaoFiscal; end; if iST3 >= 81 then iST3 := Checa( iST3, 81 ); //Parcelamento fora da sequência'); if iST3 >= 80 then iST3 := Checa( iST3, 80 ); //Segunda via do comprovante de crédito ou débito não permitido'); if iST3 >= 79 then iST3 := Checa( iST3, 79 ); //Extrapolado número de repetições permitidas'); if iST3 >= 78 then iST3 := Checa( iST3, 78 ); //Descrição igual a default não permitido'); if iST3 >= 77 then iST3 := Checa( iST3, 77 ); //Memória fiscal sem espaço para gravar versao do sb'); if iST3 >= 76 then iST3 := Checa( iST3, 76 ); //Memória fiscal sem espaço para gravar leituras da mfd'); if iST3 >= 75 then iST3 := Checa( iST3, 75 ); //Dados do rtc anteriores ao último doc armazenado'); if iST3 >= 74 then iST3 := Checa( iST3, 74 ); //Erro de gravação na mfd'); if iST3 >= 73 then iST3 := Checa( iST3, 73 ); //Erro de gravação na mf'); if iST3 >= 72 then iST3 := Checa( iST3, 72 ); //Memória fiscal lotada para novo cartucho'); if iST3 >= 71 then iST3 := Checa( iST3, 71 ); //Acréscimo ou desconto maior que total não fiscal'); if iST3 >= 70 then iST3 := Checa( iST3, 70 ); //Recebimento não fiscal nulo não permitido'); if iST3 >= 69 then iST3 := Checa( iST3, 69 ); //Desconto maior que total vendido em icms'); if iST3 >= 68 then iST3 := Checa( iST3, 68 ); //Cupom adicional não permitido'); if iST3 >= 67 then iST3 := Checa( iST3, 67 ); //ECF ou LOJA igual a zero'); if iST3 >= 66 then begin //Aguardando rz'); iST3 := Checa( iST3, 66 ); Result := estRequerZ; end; if iST3 >= 65 then iST3 := Checa( iST3, 65 ); //Aguardando primeiro proprietário'); if iST3 >= 64 then begin //Forma de pagamento aberta'); iST3 := Checa( iST3, 64 ); Result := estPagamento; end; if iST3 >= 63 then begin //Bloqueio por rz'); iST3 := Checa( iST3, 63 ); Result := estBloqueada; end; if iST3 >= 62 then iST3 := Checa( iST3, 62 ); //Já houve movimento no dia'); if iST3 >= 61 then iST3 := Checa( iST3, 61 ); //Erro na memória de trabalho'); if iST3 >= 60 then iST3 := Checa( iST3, 60 ); //Em intervenção técnica'); if iST3 >= 59 then iST3 := Checa( iST3, 59 ); //Fora de intervenção técnica'); if iST3 >= 58 then iST3 := Checa( iST3, 58 ); //Data anterior ao último documento emitido'); if iST3 >= 57 then iST3 := Checa( iST3, 57 ); //Dados do rtc incorretos'); if iST3 >= 56 then iST3 := Checa( iST3, 56 ); //Erro de alocação'); if iST3 >= 55 then iST3 := Checa( iST3, 55 ); //Contador de redução z final inválido'); if iST3 >= 54 then iST3 := Checa( iST3, 54 ); //Contador de redução z inicial inválido'); if iST3 >= 53 then iST3 := Checa( iST3, 53 ); //Data final inválida'); if iST3 >= 52 then iST3 := Checa( iST3, 52 ); //Data inicial inválida'); if iST3 >= 51 then iST3 := Checa( iST3, 51 ); //Memória fiscal lotada'); if iST3 >= 50 then iST3 := Checa( iST3, 50 ); //Memória fiscal sem número de série da mfd'); if iST3 >= 49 then iST3 := Checa( iST3, 49 ); //Memória fiscal desconectada'); if iST3 >= 48 then begin //Cupom não fiscal aberto'); iST3 := Checa( iST3, 48 ); Result := estNaoFiscal; end; if iST3 >= 47 then iST3 := Checa( iST3, 47 ); //MFD lotada'); if iST3 >= 46 then iST3 := Checa( iST3, 46 ); //MFD já inicializada'); if iST3 >= 45 then iST3 := Checa( iST3, 45 ); //MFD sem número de série'); if iST3 >= 44 then iST3 := Checa( iST3, 44 ); //MFD ausente'); if iST3 >= 43 then iST3 := Checa( iST3, 43 ); //MFD não inicializada'); if iST3 >= 42 then iST3 := Checa( iST3, 42 ); //Relatório gerencial não permitido'); if iST3 >= 41 then iST3 := Checa( iST3, 41 ); //Relatório gerencial não programado'); if iST3 >= 40 then iST3 := Checa( iST3, 40 ); //Relatório gerencial já programado'); if iST3 >= 39 then iST3 := Checa( iST3, 39 ); //Não permitido mais de uma sangria ou suprimento'); if iST3 >= 38 then iST3 := Checa( iST3, 38 ); //Meio de pagamento diferente do total do recebimento'); if iST3 >= 37 then iST3 := Checa( iST3, 37 ); //Meio de pagamento não indicado'); if iST3 >= 36 then iST3 := Checa( iST3, 36 ); //Acréscimo e desconto maior que total cnf'); if iST3 >= 35 then begin //Cupom não fiscal sem ítem vendido'); iST3 := Checa( iST3, 35 ); Result := estNaoFiscal; end; if iST3 >= 34 then iST3 := Checa( iST3, 34 ); //Totalizador não fiscal não programado'); if iST3 >= 33 then begin //Comprovante não fiscal já aberto'); iST3 := Checa( iST3, 34 ); Result := estNaoFiscal; end; if iST3 >= 32 then iST3 := Checa( iST3, 32 ); //Reimpressão não permitida'); if iST3 >= 31 then begin //Comprovante de crédito ou débito já aberto'); iST3 := Checa( iST3, 31 ); Result := estNaoFiscal; end; if iST3 >= 30 then iST3 := Checa( iST3, 30 ); //comprovante não fiscal não aberto if iST3 >= 29 then iST3 := Checa( iST3, 29 ); //Meio de pagamento não permite tef'); if iST3 >= 28 then iST3 := Checa( iST3, 28 ); //Comprovante de crédito ou débito não permitido ou já emitido'); if iST3 >= 27 then iST3 := Checa( iST3, 27 ); //Cancelamento já efetuado'); if iST3 >= 26 then iST3 := Checa( iST3, 26 ); //Cancelamento não imediatamente após'); if iST3 >= 25 then begin //Cupom fiscal aberto e sem ítem'); iST3 := Checa( iST3, 25 ); Result := estVenda; end; if iST3 >= 24 then iST3 := Checa( iST3, 24 ); //Comando maior que 7fH (127D)'); if iST3 >= 23 then iST3 := Checa( iST3, 23 ); //Cupom não totalizado'); if iST3 >= 22 then begin //Formas de pagamento encerradas'); iST3 := Checa( iST3, 22 ); Result := estPagamento; end; if iST3 >= 21 then iST3 := Checa( iST3, 21 ); //Indice maior que número de forma de pagamento'); if iST3 >= 20 then iST3 := Checa( iST3, 20 ); //Forma de pagamento não programada'); if iST3 >= 19 then iST3 := Checa( iST3, 19 ); //Sem espaço para novas formas de pagamento'); if iST3 >= 18 then iST3 := Checa( iST3, 18 ); //Comando não efetivado'); if iST3 >= 17 then begin //Cupom fiscal sem item vendido'); iST3 := Checa( iST3, 17 ); Result := estVenda; end; if iST3 >= 16 then iST3 := Checa( iST3, 16 ); //Acréscimo ou desconto maior que o total do cupom fiscal'); if iST3 >= 15 then iST3 := Checa( iST3, 15 ); //Terminador de string faltando'); if iST3 >= 14 then iST3 := Checa( iST3, 14 ); //Alíquota não programada'); if iST3 >= 13 then iST3 := Checa( iST3, 13 ); //Impressora off line'); if iST3 >= 12 then iST3 := Checa( iST3, 12 ); //Impressora com cabeça levantada'); if iST3 >= 11 then iST3 := Checa( iST3, 11 ); //Impressora sem papel'); if iST3 >= 10 then iST3 := Checa( iST3, 10 ); //Impressora em erro'); if iST3 >= 9 then iST3 := Checa( iST3, 9 ); //ECF ocupado'); if iST3 >= 8 then begin //Cupom fiscal fechado'); iST3 := Checa( iST3, 8 ); Result := estLivre; end; if iST3 >= 7 then begin //Cupom fiscal aberto'); iST3 := Checa( iST3, 7 ); Result := estVenda; end; if iST3 >= 6 then iST3 := Checa( iST3, 6 ); //Totalizador não fiscal já programado'); if iST3 >= 5 then iST3 := Checa( iST3, 5 ); //Todas alíquotas já programadas'); if iST3 >= 4 then iST3 := Checa( iST3, 4 ); //Tipo de parâmetro inválido'); if iST3 >= 3 then iST3 := Checa( iST3, 3 ); //Número de parâmetro inválido'); if iST3 >= 2 then iST3 := Checa( iST3, 2 ); //Erro desconhecido'); if iST3 >= 1 then iST3 := Checa( iST3, 1 ); //Comando inválido'); end; end; end; end;
-
acho que assim seria incorreto para o ACBr, pois trata-se de um controle interno do sistema. Se a tag é informada pelo sistema emissor tem que ir para o xml. Se quer enviar o email após o faturamento você mesmo deveria adaptar isso no seu sistema, ou seja, não informando o email na tag e após concluir o envio da nota, ler o cadastro do cliente para buscar o email e enviar.
-
Dúvidas roteiro CliSiTef32 usando ACBrTEFD sem ACBrECF
Gr@c@ replied to Gr@c@'s tópico in Dúvidas sobre TEF
O problema é que a impressora ECF não liberava para poder executar mais nenhum comando nem sequer mostrava que havia um documento em aberto. Acusava apenas falha de execução ao abrir a porta serial. Meu sistema já carrega o cupom aberto para que seja finalizado ou cancelado, mas com o uso do TEF deixou de reconhecer, não entendo o porque (como uso a bemafi32.dll mais recente, estou vendo com o suporte da Bematech o que pode estar acontecendo). Precisei cancelar o cupom via Bematool. Com relação a criar novos tópicos, achei que seria mais interessante e prático para outros colegas, deixar esse único tópico sobre "Dúvidas de roteiro CliSiTef com ACBrTEFD". Pensei errado. Criarei tópicos individuais da próxima vez.- 5 replies
-
- acbrtefd
- clisitef32
- (e 1 mais)
-
Dúvidas roteiro CliSiTef32 usando ACBrTEFD sem ACBrECF
Gr@c@ replied to Gr@c@'s tópico in Dúvidas sobre TEF
Obrigada pela resposta. Ainda ref duvida do roteiro... E quanto ao problema de Falta de Energia - retorno que tem dado no meu ECF depois que comecei os testes de desligar o equipamento ao imprimir um comprovante? Li no site da Totvs isso: Como tratar esse retorno da impressora (Falta de energia) por haver um documento que precisa ser finalizado ou cancelado? No meu caso, quando executo a função Bematefi_AbrePortaSerial vem o retorno de erro - 1 (Falha de execução da função), assim é como se houvesse um erro de abertura de porta serial e não de documento pendente no ECF. Se tento cancelar o cupom fiscal não cancela.- 5 replies
-
- acbrtefd
- clisitef32
- (e 1 mais)
-
Conjunto de chaves não definido nem sempre significa que ele foi apagado. Pode ocorrer se o certificado não estiver bem conectado na usb, seja token ou cartão, ou se a própria usb estiver com problemas. Já ocorreu com alguns clientes meus, alguns bastou desconectar e reconectar o dispositivo, outros bastou refazer a instalação, outros bastou limpar o cartão (no caso de cartão/leitora), outros mudar de usb. Nenhum de meus clientes perdeu cartão Certisign. E já trabalho com ACBr e certificado digital Certisign desde que a NFe começou e os clientes aderiam voluntariamente.