Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2575 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Pessoal boa noite.

Não sei se o pessoal já implementou no componente, não pude atualizar ACBr esses dias então não conferi, mas caso ainda não foi feito vou deixar aqui minhas duas funções de verificação de erros de conteúdo para quem quiser usar, e caso não tenha no componente se o pessoal quiser implementar.

function  MotivoInvalidoVenda(cod: integer): String;
begin
     case cod of
        1002 : result := 'Código da UF não confere com a Tabela do IBGE'; // | Válido até 31/12/2015
        1003 : result := 'Código da UF diferente da UF registrada no SAT';// | Válido até 31/12/2015
        1004 : result := 'Versão do leiaute do arquivo de entrada do SAT não é válida';
        1005 : result := 'Alerta Versão do leiaute do arquivo de entrada do SAT não é a mais atual';
        1226 : result := 'Código da UF do Emitente diverge da UF receptora';
        1450 : result := 'Código de modelo de documento fiscal diferente de 59';
        1258 : result := 'Data/hora inválida. Problemas com o relógio interno do SAT-CF-e';
        1224 : result := 'CNPJ da Software House inválido';
        1222 : result := 'Assinatura do Aplicativo Comercial não é válida';// | Válido até 31/12/2015
        1207 : result := 'CNPJ do emitente inválido';
        1203 : result := 'Emitente não autorizado para uso do SAT';
        1229 : result := 'IE do emitente não informada C12 IE não corresponde ao Contribuinte de uso do SAT';
        1230 : result := 'IE do emitente diferente da IE do contribuinte autorizado para uso do SAT';// | Checar com dado recebido na parametrização do SAT
        1457 : result := 'Código de Natureza da Operação para ISSQN inválido';
        1507 : result := 'Indicador de rateio para ISSQN inválido';
        1235 : result := 'CNPJ do destinatário inválido';
        1237 : result := 'CPF do destinatário inválido';
        1234 : result := 'Alerta Razão Social/Nome do destinatário em branco';//| Válido até 31/12/2015
        1019 : result := 'Numeração dos itens não é sequencial crescente';
        1459 : result := 'Código do produto ou serviço em branco';
        1460 : result := 'GTIN do item (N) inválido | Validação do dígito verificador';
        1461 : result := 'Descrição do produto ou serviço em branco';
        1464 : result := 'Quantidade Comercial do item (N) inválido';
        1465 : result := 'Valor Unitário do item (N) inválido';
        1468 : result := 'Valor do Desconto do item (N) inválido';
        1469 : result := 'Valor de outras despesas acessórias do item (N) inválido';
        1535 : result := 'código da credenciadora de cartão de débito ou crédito inválido';
        1220 : result := 'Valor do rateio do desconto sobre subtotal do item (N) inválido';
        1228 : result := 'Valor do rateio do acréscimo sobre subtotal do item (N) inválido';
        1751 : result := 'não informado código do produto'; //| Nova redação, efeitos a partir de 01.01.17.
        1752 : result := 'código de produto informado fora do padrão ANP'; //| Nova redação, efeitos a partir de 01.01.17.
        1534 : result := 'Valor aproximado dos tributos do produto negativo';
        1533 : result := 'Valor aproximado dos tributos do CF-e_SAT negativo';
        1471 : result := 'Origem da mercadoria do Item (N) inválido (diferente de 0, 1, 2, 3, 4, 5, 6, 7, 8)';
        1472 : result := 'CST do Item (N) inválido (diferente de 00, 20, 90)';
        1473 : result := 'Alíquota efetiva do ICMS do item (N) não é maior ou igual a zero';
        1471 : result := 'Origem da mercadoria do Item (N) inválido (diferente de 0, 1, 2, 3, 4, 5, 6, 7, 8)';
        1475 : result := 'CST do Item (N) inválido (diferente de 40 e 41 e 50 e 60)';
        1471 : result := 'Origem da mercadoria do Item (N) inválido (diferente de 0, 1 , 2, 3, 4, 5, 6, 7, 8)';
        1476 : result := 'Código de situação da operação - Simples Nacional - do Item (N) inválido (diferente de 102, 300 e 500)';
        1471 : result := 'Origem da mercadoria do Item (N) inválido (diferente de 0, 1 , 2, 3, 4, 5, 6, 7, 8)';
        1477 : result := 'Código de situação da operação - Simples Nacional - do Item (N) inválido (diferente de 900)';
        1473 : result := 'Alíquota efetiva do ICMS do item (N) não é maior ou igual a zero';
        1478 : result := 'Código de Situação Tributária do PIS Inválido (diferente de 01, 02 e 05)';
        1479 : result := 'Base de cálculo do PIS do item (N) inválido';
        1480 : result := 'Alíquota do PIS do item (N) não é maior ou igual a zero';
        1482 : result := 'Código de Situação Tributária do PIS Inválido (diferente de 03)';
        1483 : result := 'Qtde Vendida do item (N) não é maior ou igual a zero';
        1484 : result := 'Alíquota do PIS em R$ do item (N) não é maior ou igual a zero';
        1486 : result := 'Código de Situação Tributária do PIS Inválido (diferente de 04, 06, 07, 08 e 09)';
        1487 : result := 'Código de Situação Tributária do PIS inválido (diferente de 49)';
        1488 : result := 'Código de Situação Tributária do PIS Inválido (diferente de 99)';
        1479 : result := 'Base de cálculo do PIS do item (N) inválido';
        1480 : result := 'Alíquota do PIS do item (N) inválido';
        1483 : result := 'Qtde Vendida do item (N) inválido';
        1484 : result := 'Alíquota do PIS em R$ do item (N) inválido';
        1479 : result := 'Base de cálculo do PIS do item (N) inválido';
        1480 : result := 'Alíquota do PIS do item (N) inválida';
        1483 : result := 'Qtde Vendida do item (N) inválida';
        1484 : result := 'Alíquota do PIS em R$ do item (N) inválida';
        1490 : result := 'Código de Situação Tributária da COFINS Inválido (diferente de 01, 02 e 05)';
        1491 : result := 'Base de cálculo do COFINS do item (N) inválido';
        1492 : result := 'Alíquota da COFINS do item (N) não é maior ou igual a zero';
        1494 : result := 'Código de Situação Tributária da COFINS Inválido (diferente de 03)';
        1483 : result := 'Qtde Vendida do item (N) não é maior ou igual a zero';
        1496 : result := 'Alíquota da COFINS em R$ do item (N) não é maior ou igual a zero';
        1498 : result := 'Código de Situação Tributária da COFINS Inválido (diferente de 04, 06, 07, 08 e 09)';
        1499 : result := 'Código de Situação Tributária da COFINS Inválido (diferente de 49)';
        1500 : result := 'Código de Situação Tributária da COFINS Inválido (diferente de 99)';
        1491 : result := 'Base de cálculo da COFINS do item (N) inválido';
        1492 : result := 'Alíquota da COFINS do item (N) não é maior ou igual a zero';
        1483 : result := 'Qtde Vendida do item (N) não é maior ou igual a zero';
        1496 : result := 'Alíquota da COFINS em R$ do item (N) não é maior ou igual a zero';
        1491 : result := 'Base de cálculo da COFINS do item (N) inválido';
        1492 : result := 'Alíquota da COFINS do item (N) não é maior ou igual a zero';
        1483 : result := 'Qtde Vendida do item (N) não é maior ou igual a zero';
        1496 : result := 'Alíquota da COFINS em R$ do item (N) não é maior ou igual a zero';
        1501 : result := 'Operação com tributação de ISSQN sem informar a Inscrição Municipal';
        1503 : result := 'Valor das deduções para o ISSQN do item (N) não é maior ou igual a zero';
        1505 : result := 'Alíquota efetiva do ISSQN do item (N) não é maior ou igual a 2,00 (2%) e menor ou igual a 5,00 (5%)';
        1287 : result := 'Código Município do FG - ISSQN: dígito inválido. Exceto os códigos descritos no Anexo 2 que apresentam dígito inválido';
        1509 : result := 'Código municipal de Tributação do ISSQN do Item (N) em branco';
        1510 : result := 'Código de Natureza da Operação para ISSQN inválido';
        1511 : result := 'Indicador de Incentivo Fiscal do ISSQN do item (N) inválido (diferente de 1 e 2)';
        1527 : result := 'Código do Meio de Pagamento inválido';
        1528 : result := 'Valor do Meio de Pagamento inválido';
        1408 : result := 'Valor total do CF-e-SAT maior que o somatório dos valores de Meio de Pagamento empregados em seu pagamento';
        1409 : result := 'Valor total do CF-e-SAT supera o máximo permitido no arquivo de Parametrização de Uso';
        1073 : result := 'Valor de Desconto sobre total não é maior ou igual a zero';
        1074 : result := 'Valor de Acréscimo sobre total não é maior ou igual a zero';
        1084 : result := 'Erro Formatação do Certificado não é válido';
        1085 : result := 'Erro Assinatura do Aplicativo Comercial não confere com o registro do SAT'; //| Válido até 31/12/2015
        1998 : result := 'Não é possível gerar o cupom com os dados de entrada informados, pois resultam valores negativos';
        else
            result := 'Erro não identificado';
     end;
end;

function  MotivoInvalidoCancelamento(cod: integer): String;
begin
     case cod of
        1270 : result := 'Chave de acesso do CFe a ser cancelado inválido';
        1412 : result := 'CFe de cancelamento não corresponde a um CFe emitido nos 30 minutos anteriores ao pedido de cancelamento';
        1258 : result := 'Data/hora inválida. Problemas com o relógio interno do SAT-CF-e';
        1210 : result := 'Intervalo de tempo entre a emissão do CF-e a ser cancelado e a emissão do respectivo CF-e de cancelamento é maior que 30 (trinta) minutos';
        1454 : result := 'CNPJ da Software House inválido';
        1232 : result := 'CNPJ do destinatário do CF-e de cancelamento diferente daquele do CF-e a ser cancelado';
        1233 : result := 'CPF do destinatário do CF-e de cancelamento diferente daquele do CF-e a ser cancelado';
        1218 : result := 'Erro Chave de acesso do CF-e-SAT já consta como cancelado'; //Nova redação a partir de 01.01.16
        1999 : result := 'Erro não identificado'; //Implementação facultativa até 31.12.15 e obrigatória a partir de 01.01.16.
     end;
end;

Grande Abraço t+

  • Curtir 3

Ricardo Lopes

TECNOSOFT - Solução em Informática

www.tecnosoft.com.br

  • 2 semanas depois ...
Postado

boa tarde,

fiz uma venda e logo seguida o cancelamento ... esta me retornando seguinte... 

ACBrSAT.Inicializado
-- 12:46:36:468 - numeroSessao: 652716 - Comando: CancelarUltimaVenda( CFe35150782373077000171599000037700000318928106, <?xml version="1.0" encoding="UTF-8"?><CFeCanc><infCFe chCanc="CFe35150782373077000171599000037700000318928106"><ide><CNPJ>16716114000172</CNPJ><signAC>SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT</signAC><numeroCaixa>004</numeroCaixa></ide><emit></emit><dest></dest><total></total></infCFe></CFeCanc> )
NumeroSessao: 652716 - Resposta:652716|07007|1210|Erro de validação do conteúdo||

pelo que vi nos posts acima... 

1210 : result := 'Intervalo de tempo entre a emissão do CF-e a ser cancelado e a emissão do respectivo CF-e de cancelamento é maior que 30 (trinta) minutos';

 

mas ...stranho...fiz a venda e logo cancelamento .... estou usando rb1000

alguem sabe me informar o pq ?

 

obrigado

 

 

 

Postado

Seu xml de cancelamento parece estar incompleto...

Você carregou o Cupom da Venda em ACBrSAT.CFe ?

Como reproduzir o problema com o SATTeste.exe do Trunk2 ??

fiz a venda no meu sistema ...dpois o cancelamento pelo exemplo satteste... carregando o xml da venda 

estou com o trunk ainda...

se fizer a venda com o satteste e apos carregar o xml venda e cancelamento com o satteste tbem   ...dae funciona ....

Seu xml de cancelamento parece estar incompleto...

Você carregou o Cupom da Venda em ACBrSAT.CFe ?

Como reproduzir o problema com o SATTeste.exe do Trunk2 ??

 

fiz a venda no meu sistema ...dpois o cancelamento pelo exemplo satteste... carregando o xml da venda 

estou com o trunk ainda...

se fizer a venda com o satteste e apos carregar o xml venda e cancelamento com o satteste tbem   ...dae funciona ....

dah o erro ...porem o led CFE no sat  liga... ( Vermelha)

 ....o retorno dai agora foi 

ACBrSAT.Inicializado
-- 17:44:31:057 - numeroSessao: 536718 - Comando: CancelarUltimaVenda( CFe35150782373077000171599000037700000385613812, <?xml version="1.0" encoding="UTF-8"?><CFeCanc><infCFe chCanc="CFe35150782373077000171599000037700000385613812"><ide><CNPJ>16716114000172</CNPJ><signAC>SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT</signAC><numeroCaixa>004</numeroCaixa></ide><emit></emit><dest></dest><total></total></infCFe></CFeCanc> )
NumeroSessao: 536718 - Resposta:Erro|Erro na leitura da porta de comunicacao com o S@T|Header

Postado (editado)

Pessoal boa noite.

Não sei se o pessoal já implementou no componente, não pude atualizar ACBr esses dias então não conferi, mas caso ainda não foi feito vou deixar aqui minhas duas funções de verificação de erros de conteúdo para quem quiser usar, e caso não tenha no componente se o pessoal quiser implementar.

function  MotivoInvalidoVenda(cod: integer): String;
begin
     case cod of
        1002 : result := 'Código da UF não confere com a Tabela do IBGE'; // | Válido até 31/12/2015
        1003 : result := 'Código da UF diferente da UF registrada no SAT';// | Válido até 31/12/2015
        1004 : result := 'Versão do leiaute do arquivo de entrada do SAT não é válida';
        1005 : result := 'Alerta Versão do leiaute do arquivo de entrada do SAT não é a mais atual';
        1226 : result := 'Código da UF do Emitente diverge da UF receptora';
        1450 : result := 'Código de modelo de documento fiscal diferente de 59';
        1258 : result := 'Data/hora inválida. Problemas com o relógio interno do SAT-CF-e';
        1224 : result := 'CNPJ da Software House inválido';
        1222 : result := 'Assinatura do Aplicativo Comercial não é válida';// | Válido até 31/12/2015
        1207 : result := 'CNPJ do emitente inválido';
        1203 : result := 'Emitente não autorizado para uso do SAT';
        1229 : result := 'IE do emitente não informada C12 IE não corresponde ao Contribuinte de uso do SAT';
        1230 : result := 'IE do emitente diferente da IE do contribuinte autorizado para uso do SAT';// | Checar com dado recebido na parametrização do SAT
        1457 : result := 'Código de Natureza da Operação para ISSQN inválido';
        1507 : result := 'Indicador de rateio para ISSQN inválido';
        1235 : result := 'CNPJ do destinatário inválido';
        1237 : result := 'CPF do destinatário inválido';
        1234 : result := 'Alerta Razão Social/Nome do destinatário em branco';//| Válido até 31/12/2015
        1019 : result := 'Numeração dos itens não é sequencial crescente';
        1459 : result := 'Código do produto ou serviço em branco';
        1460 : result := 'GTIN do item (N) inválido | Validação do dígito verificador';
        1461 : result := 'Descrição do produto ou serviço em branco';
        1464 : result := 'Quantidade Comercial do item (N) inválido';
        1465 : result := 'Valor Unitário do item (N) inválido';
        1468 : result := 'Valor do Desconto do item (N) inválido';
        1469 : result := 'Valor de outras despesas acessórias do item (N) inválido';
        1535 : result := 'código da credenciadora de cartão de débito ou crédito inválido';
        1220 : result := 'Valor do rateio do desconto sobre subtotal do item (N) inválido';
        1228 : result := 'Valor do rateio do acréscimo sobre subtotal do item (N) inválido';
        1751 : result := 'não informado código do produto'; //| Nova redação, efeitos a partir de 01.01.17.
        1752 : result := 'código de produto informado fora do padrão ANP'; //| Nova redação, efeitos a partir de 01.01.17.
        1534 : result := 'Valor aproximado dos tributos do produto negativo';
        1533 : result := 'Valor aproximado dos tributos do CF-e_SAT negativo';
        1471 : result := 'Origem da mercadoria do Item (N) inválido (diferente de 0, 1, 2, 3, 4, 5, 6, 7, 8)';
        1472 : result := 'CST do Item (N) inválido (diferente de 00, 20, 90)';
        1473 : result := 'Alíquota efetiva do ICMS do item (N) não é maior ou igual a zero';
        1471 : result := 'Origem da mercadoria do Item (N) inválido (diferente de 0, 1, 2, 3, 4, 5, 6, 7, 8)';
        1475 : result := 'CST do Item (N) inválido (diferente de 40 e 41 e 50 e 60)';
        1471 : result := 'Origem da mercadoria do Item (N) inválido (diferente de 0, 1 , 2, 3, 4, 5, 6, 7, 8)';
        1476 : result := 'Código de situação da operação - Simples Nacional - do Item (N) inválido (diferente de 102, 300 e 500)';
        1471 : result := 'Origem da mercadoria do Item (N) inválido (diferente de 0, 1 , 2, 3, 4, 5, 6, 7, 8)';
        1477 : result := 'Código de situação da operação - Simples Nacional - do Item (N) inválido (diferente de 900)';
        1473 : result := 'Alíquota efetiva do ICMS do item (N) não é maior ou igual a zero';
        1478 : result := 'Código de Situação Tributária do PIS Inválido (diferente de 01, 02 e 05)';
        1479 : result := 'Base de cálculo do PIS do item (N) inválido';
        1480 : result := 'Alíquota do PIS do item (N) não é maior ou igual a zero';
        1482 : result := 'Código de Situação Tributária do PIS Inválido (diferente de 03)';
        1483 : result := 'Qtde Vendida do item (N) não é maior ou igual a zero';
        1484 : result := 'Alíquota do PIS em R$ do item (N) não é maior ou igual a zero';
        1486 : result := 'Código de Situação Tributária do PIS Inválido (diferente de 04, 06, 07, 08 e 09)';
        1487 : result := 'Código de Situação Tributária do PIS inválido (diferente de 49)';
        1488 : result := 'Código de Situação Tributária do PIS Inválido (diferente de 99)';
        1479 : result := 'Base de cálculo do PIS do item (N) inválido';
        1480 : result := 'Alíquota do PIS do item (N) inválido';
        1483 : result := 'Qtde Vendida do item (N) inválido';
        1484 : result := 'Alíquota do PIS em R$ do item (N) inválido';
        1479 : result := 'Base de cálculo do PIS do item (N) inválido';
        1480 : result := 'Alíquota do PIS do item (N) inválida';
        1483 : result := 'Qtde Vendida do item (N) inválida';
        1484 : result := 'Alíquota do PIS em R$ do item (N) inválida';
        1490 : result := 'Código de Situação Tributária da COFINS Inválido (diferente de 01, 02 e 05)';
        1491 : result := 'Base de cálculo do COFINS do item (N) inválido';
        1492 : result := 'Alíquota da COFINS do item (N) não é maior ou igual a zero';
        1494 : result := 'Código de Situação Tributária da COFINS Inválido (diferente de 03)';
        1483 : result := 'Qtde Vendida do item (N) não é maior ou igual a zero';
        1496 : result := 'Alíquota da COFINS em R$ do item (N) não é maior ou igual a zero';
        1498 : result := 'Código de Situação Tributária da COFINS Inválido (diferente de 04, 06, 07, 08 e 09)';
        1499 : result := 'Código de Situação Tributária da COFINS Inválido (diferente de 49)';
        1500 : result := 'Código de Situação Tributária da COFINS Inválido (diferente de 99)';
        1491 : result := 'Base de cálculo da COFINS do item (N) inválido';
        1492 : result := 'Alíquota da COFINS do item (N) não é maior ou igual a zero';
        1483 : result := 'Qtde Vendida do item (N) não é maior ou igual a zero';
        1496 : result := 'Alíquota da COFINS em R$ do item (N) não é maior ou igual a zero';
        1491 : result := 'Base de cálculo da COFINS do item (N) inválido';
        1492 : result := 'Alíquota da COFINS do item (N) não é maior ou igual a zero';
        1483 : result := 'Qtde Vendida do item (N) não é maior ou igual a zero';
        1496 : result := 'Alíquota da COFINS em R$ do item (N) não é maior ou igual a zero';
        1501 : result := 'Operação com tributação de ISSQN sem informar a Inscrição Municipal';
        1503 : result := 'Valor das deduções para o ISSQN do item (N) não é maior ou igual a zero';
        1505 : result := 'Alíquota efetiva do ISSQN do item (N) não é maior ou igual a 2,00 (2%) e menor ou igual a 5,00 (5%)';
        1287 : result := 'Código Município do FG - ISSQN: dígito inválido. Exceto os códigos descritos no Anexo 2 que apresentam dígito inválido';
        1509 : result := 'Código municipal de Tributação do ISSQN do Item (N) em branco';
        1510 : result := 'Código de Natureza da Operação para ISSQN inválido';
        1511 : result := 'Indicador de Incentivo Fiscal do ISSQN do item (N) inválido (diferente de 1 e 2)';
        1527 : result := 'Código do Meio de Pagamento inválido';
        1528 : result := 'Valor do Meio de Pagamento inválido';
        1408 : result := 'Valor total do CF-e-SAT maior que o somatório dos valores de Meio de Pagamento empregados em seu pagamento';
        1409 : result := 'Valor total do CF-e-SAT supera o máximo permitido no arquivo de Parametrização de Uso';
        1073 : result := 'Valor de Desconto sobre total não é maior ou igual a zero';
        1074 : result := 'Valor de Acréscimo sobre total não é maior ou igual a zero';
        1084 : result := 'Erro Formatação do Certificado não é válido';
        1085 : result := 'Erro Assinatura do Aplicativo Comercial não confere com o registro do SAT'; //| Válido até 31/12/2015
        1998 : result := 'Não é possível gerar o cupom com os dados de entrada informados, pois resultam valores negativos';
        else
            result := 'Erro não identificado';
     end;
end;

function  MotivoInvalidoCancelamento(cod: integer): String;
begin
     case cod of
        1270 : result := 'Chave de acesso do CFe a ser cancelado inválido';
        1412 : result := 'CFe de cancelamento não corresponde a um CFe emitido nos 30 minutos anteriores ao pedido de cancelamento';
        1258 : result := 'Data/hora inválida. Problemas com o relógio interno do SAT-CF-e';
        1210 : result := 'Intervalo de tempo entre a emissão do CF-e a ser cancelado e a emissão do respectivo CF-e de cancelamento é maior que 30 (trinta) minutos';
        1454 : result := 'CNPJ da Software House inválido';
        1232 : result := 'CNPJ do destinatário do CF-e de cancelamento diferente daquele do CF-e a ser cancelado';
        1233 : result := 'CPF do destinatário do CF-e de cancelamento diferente daquele do CF-e a ser cancelado';
        1218 : result := 'Erro Chave de acesso do CF-e-SAT já consta como cancelado'; //Nova redação a partir de 01.01.16
        1999 : result := 'Erro não identificado'; //Implementação facultativa até 31.12.15 e obrigatória a partir de 01.01.16.
     end;
end;

Grande Abraço t+

Ola Ricardo.

estou encontrando dificuldades para pegar esse código de retorno que suas funções tratam, qual a propriedade do acbrsat que retorna esse código?

desde já obrigado.

Editado por Marco Aurelio De Nadai
  • Curtir 2
Postado (editado)

Notei que o procedure TACBrSATResposta.SetRetornoStr(AValue : String) ; esta pegando indice errado para retornar o "codigo sefaz", ficando VAZIO.

Tinhamos somente este bloco no metodo:

    if fRetornoLst.Count > index+2 then
    begin
      fmensagemRetorno := fRetornoLst[index];
      fcodigoSEFAZ     := StrToIntDef( fRetornoLst[index+1], 0);
      fmensagemSEFAZ   := fRetornoLst[index+2];
    end
    else
      fmensagemRetorno := AValue;
 

 

Usei uma condicao que ja existia mais acima para conseguir desviar e pegar o indice correto.

  if Length(Trim(fRetornoLst[2])) = 4 then //Enviar e Cancelar venda tem um campo a mais no inicio da resposta(CCCC)
  begin

   //Bloco com o novo indice:
    if fRetornoLst.Count > index+2 then
    begin
      fmensagemRetorno := fRetornoLst[index];
      fcodigoSEFAZ     := StrToIntDef( fRetornoLst[index-1], 0);
      fmensagemSEFAZ   := fRetornoLst[index];
    end
    else
      fmensagemRetorno := AValue;
  end
  else
  begin

   //Bloco que ja existia, para demais operacoes.
    if fRetornoLst.Count > index+2 then
    begin
      fmensagemRetorno := fRetornoLst[index];
      fcodigoSEFAZ     := StrToIntDef( fRetornoLst[index+1], 0);
      fmensagemSEFAZ   := fRetornoLst[index+2];
    end
    else
      fmensagemRetorno := AValue;
  end;



Porém ainda acho que vai dar problema, pois nao sei se o fRetornoLst vem sempre com a mesma quantidade de campos.

Editado por duardomribeiro
Postado

Notei que o procedure TACBrSATResposta.SetRetornoStr(AValue : String) ; esta pegando indice errado para retornar o "codigo sefaz", ficando VAZIO.

Tinhamos somente este bloco no metodo:

    if fRetornoLst.Count > index+2 then
    begin
      fmensagemRetorno := fRetornoLst[index];
      fcodigoSEFAZ     := StrToIntDef( fRetornoLst[index+1], 0);
      fmensagemSEFAZ   := fRetornoLst[index+2];
    end
    else
      fmensagemRetorno := AValue;
 

 

Usei uma condicao que ja existia mais acima para conseguir desviar e pegar o indice correto.

  if Length(Trim(fRetornoLst[2])) = 4 then //Enviar e Cancelar venda tem um campo a mais no inicio da resposta(CCCC)
  begin

   //Bloco com o novo indice:
    if fRetornoLst.Count > index+2 then
    begin
      fmensagemRetorno := fRetornoLst[index];
      fcodigoSEFAZ     := StrToIntDef( fRetornoLst[index-1], 0);
      fmensagemSEFAZ   := fRetornoLst[index];
    end
    else
      fmensagemRetorno := AValue;
  end
  else
  begin

   //Bloco que ja existia, para demais operacoes.
    if fRetornoLst.Count > index+2 then
    begin
      fmensagemRetorno := fRetornoLst[index];
      fcodigoSEFAZ     := StrToIntDef( fRetornoLst[index+1], 0);
      fmensagemSEFAZ   := fRetornoLst[index+2];
    end
    else
      fmensagemRetorno := AValue;
  end;



Porém ainda acho que vai dar problema, pois nao sei se o fRetornoLst vem sempre com a mesma quantidade de campos.

 

 

 

Seria Legal vc Postar a unit com as correções para o Daniel dar uma olhada e Colocar no repositório.

Eu estou com o Problema com o Retorno tb..

Postado (editado)

Acredito que esteja respondendo de forma correta. Meu sat é o RB 1000 FI da Bematech.

 

O retorno é esse '315368|06010|1230|Erro de validação do conteúdo||' (Essa descricao é o que sempre aparece em qualquer problema de validação) inclusive no exemplo.

Destrinchando o retorno:

fRetornoLst[0] = '315368'                  //numero da seção
fRetornoLst[1] = '06010'                   //código da não aceitação
fRetornoLst[2] = '1230'                    //código REAL do problema; de acordo com a tabela de erros significa "IE do emitente diferente da IE do contribuinte autorizado para uso do SAT"
fRetornoLst[3] = 'Erro de validação do conteúdo'     //descrição não aceitação
fRetornoLst[4] = ''
fRetornoLst[5] = ''

Note que a causa real do problema esta no índice 2, e da forma como estava antes esse código 1230 nunca era visível na aplicação:
fcodigoSEFAZ := StrToIntDef( fRetornoLst[index+1], 0); Lembrando que nesse momento o índice já começa valendo 3, logo, retornava sempre VAZIO ao invés do código real do erro.

No bloco que mexi mudei para vir exatamente o índice 2
fcodigoSEFAZ := StrToIntDef( fRetornoLst[index-1], 0);Lembrando que nesse momento o índice já começa valendo 3

Com essa mudança consigo agora em minha aplicação usar a função "MotivoInvalidoVenda(codigoSEFAZ);" para retornar a descrição real do problema.

 

Agora, se há outra forma de conseguir esse código 1230 na aplicação, sem essa alteração, me avise.

Editado por duardomribeiro
  • Fundadores
Postado

Analisei os seus fontes... mas não acho que a modificação esteja correta.. parece que você está confundindo "CCCC" com "cod", o ACBrSAT não tem propriedade que exponha o CCCC, vou analisar a possibilidade de implementar...  mas vc pode pegar isso diretamente em: Resposta.RetornoLst[2]

Veja os retornos disponíveis:

AtivarSAT....................: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ, CSR
ComunicarCertificadoICPBRASIL: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ
EnviarDadosVenda.............: numeroSessao, EEEEE, CCCC, mensagem, cod, mensagemSEFAZ, base64, timeStamp, chaveConsulta, valorTotalCFe, CPFCNPJValue, assinaturaQRCOD
CancelarUltimaVenda..........: numeroSessao, EEEEE, CCCC, mensagem, cod, mensagemSEFAZ, base64, timeStamp, chaveConsulta, valorTotalCFe, CPFCNPJValue, assinaturaQRCOD
ConsultarSAT.................: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ
TesteFimAFim.................: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ, base64, timeStamp, numDocFiscal, chaveConsulta
ConsultarStatusOperacional...: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ, ConteudoRetorno
ConsultarNumeroSessao........: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ   (ou retorno da Sessão consultada)
ConfigurarInterfaceDeRede....: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ
AssociarAssinatura...........: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ
AtualizarSoftwareSAT.........: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ
ExtrairLogs..................: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ, base64
BloquearSAT..................: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ
DesbloquearSAT...............: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ
TrocarCodigoDeAtivacao.......: numeroSessao, EEEEE, mensagem, cod, mensagemSEFAZ

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado (editado)

Obrigado por ter verificado, 

Entendi. Bom, entao vou descartar esse acerto na classe e pegar o código do erro pelo retorno completo, direto na aplicação.

Obrigado. 

Editado por duardomribeiro
  • 2 anos depois...
Postado
Em 16/07/2015 at 14:53, Marco Aurelio De Nadai disse:

Ola Ricardo.

estou encontrando dificuldades para pegar esse código de retorno que suas funções tratam, qual a propriedade do acbrsat que retorna esse código?

desde já obrigado.

Bom dia, alguém poderia me indicar onde estão estas funções?

obrigado

  • Este tópico foi criado há 2575 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.