Ir para conteúdo
  • Cadastre-se

Marco Aurelio De Nadai

Membros
  • Total de ítens

    15
  • Registro em

  • Última visita

Posts postados por Marco Aurelio De Nadai

  1. 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..

  2. Bom dia amigos!

    Estou com o seguinte problema:

    Quando coloco a opção de impressão SAT Fortes, ele não imprime pelo meu sistema. Aparece um erro e ele fica preso nos documentos a serem impressos do windows e se eu fecho o sistema em 3 segundos ele imprime o cupom fiscal. 

    Porém se eu digitar um texto no bloco de notas e imprimir pela impressora fiscal, ele imprime normalmente. Utilizo (bematech mp-4200Th).

    Alguém sabe me dizer o que pode ser isso? Se é problema no Fortes, no driver da impressora ou incompatibilidade com o windows 8.1? Grato.

  3. Analise o LOG do SAT e do ACBrSAT... lá deve constar o motivo da recusa

    Daniel, Analisei os Logs. diz que estou tentando cancelar uma venda já cancelada. Só que percebi uma coisa quando mando cancelar se ele retorna o erro "Erro na leitura da porta de comunicacao com o S@T" ele cancela a venda no sat, me retornando apenas o erro. Ai tento novamente ele me retorna erro, vou analisar nos logs e diz que o cupom já foi cancelado.

    vc já passou por isso?

     

     

     

    Encontrei o problema....

    Uso o Sat da Bematech e ele tem um xml de configuração, onde tem configurações de timeout para cada evento da dll, o de cancelamento estava com 1000, passei ele para 10000 como o da venda, e parei de ter esse problema.

     

  4. Analise o LOG do SAT e do ACBrSAT... lá deve constar o motivo da recusa

    Daniel, Analisei os Logs. diz que estou tentando cancelar uma venda já cancelada. Só que percebi uma coisa quando mando cancelar se ele retorna o erro "Erro na leitura da porta de comunicacao com o S@T" ele cancela a venda no sat, me retornando apenas o erro. Ai tento novamente ele me retorna erro, vou analisar nos logs e diz que o cupom já foi cancelado.

    vc já passou por isso?

     

     

     

  5. 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.

    • Curtir 2
  6. dae gurizada,

     

    acho que descobri como resolver essa parada....

     

    Vamos por partes, para compilar o pacote FortesReportCE_Win32_D7_vcl.dpk,

    eu fiz o que descrevi acima:

     - removi as diretivas na unit RLUtils para "habilitar" a function CharInSet

     - em algumas units troquei "ifend" por "endif"

    Pacote compilado e instalado no Delphi 7, agora vem o detalhe para conseguir compilar seus projetos:

    No Library path, vc não pode incluir a pasta Source do Fortes,

    deve ser incluída a pasta Binary\Win32_d7_vcl onde se encontram os arquivos DCU e DCP compilados.

    OBS: o compilador ainda vai acusar falta do arquivo RLReport.res, é só copiá-lo da pasta Source para a pasta correta.

     

    Espero que dê certo aí pra vcs...

    Att

    Ricardo

    Valeu Ricardo.... Aqui funcionou tb..

  7. Humm... Pode ser.

    será que a solução não está no arquivo "RLReport.inc" ??

    onde é definido o parametro VCL... 

    pelo que entendi, o problema está ai, o compilador do D7 não está entrando nos "IFDEF VCL"...

     

    Att

    Ricardo

    Pode ser....

    será que a solução não está no arquivo "RLReport.inc" ??

    onde é definido o parametro VCL... 

    pelo que entendi, o problema está ai, o compilador do D7 não está entrando nos "IFDEF VCL"...

     

    Att

    Ricardo

    Isola o ifdef e o endif: 


    //{$ifdef FPC}
    {$define VCL}
    {$define USE_VARIANTS}
    //{$endif}

  8. Aqui para mim tb apareceu os mesmos erros.

    [Error] RLUtils.pas(181): $ENDIF expected but $IFEND found
    [Error] RLUtils.pas(201): $ENDIF expected but $IFEND found
    [Error] RLUtils.pas(903): Undeclared identifier: 'CharInSet'
    [Error] RLUtils.pas(903): Operator not applicable to this operand type
    [Error] RLUtils.pas(908): Operator not applicable to this operand type
    [Fatal Error] RLMetaFile.pas(35): Could not compile used unit '..\Source\RLUtils.pas'

     

     

    erro.png

  9. Bom dia!!

    Estou tendo problemas com o cancelamento de cupons no Sat, da erro na validação dos dados. Abaixo um trecho do Log SAT:

    - 09:19:17:090 - -- 09:19:17:090 - numeroSessao: 900029 - Comando: CancelarUltimaVenda( CFe35150782373077000171599000034710000432549670, <CFeCanc><infCFe chCanc="CFe35150782373077000171599000034710000432549670"><ide><CNPJ>16716114000172</CNPJ><signAC>SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT</signAC><numeroCaixa>001</numeroCaixa></ide><emit></emit><dest><CNPJ>54723028000186</CNPJ></dest><total></total></infCFe></CFeCanc> )
     - 09:19:18:288 - NumeroSessao: 900029 - Resposta:Erro|Erro na leitura da porta de comunicacao com o S@T|Header
     - 09:19:34:631 - -- 09:19:34:631 - numeroSessao: 245742 - Comando: CancelarUltimaVenda( CFe35150782373077000171599000034710000432549670, <CFeCanc><infCFe chCanc="CFe35150782373077000171599000034710000432549670"><ide><CNPJ>16716114000172</CNPJ><signAC>SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT</signAC><numeroCaixa>001</numeroCaixa></ide><emit></emit><dest><CNPJ>54723028000186</CNPJ></dest><total></total></infCFe></CFeCanc> )
     - 09:19:34:915 - NumeroSessao: 245742 - Resposta:245742|07099|0000|Erro de validação do conteúdo||
     - 09:19:46:477 - -- 09:19:46:477 - numeroSessao: 302092 - Comando: ConsultarSAT
     - 09:19:46:742 - NumeroSessao: 302092 - Resposta:302092|08000|SAT em operação||
     - 09:55:07:412 - ACBrSAT.DesInicializado
     - 09:55:07:412 - ACBrSAT.Inicializado
     - 09:55:53:548 - -- 09:55:53:548 - numeroSessao: 747348 - Comando: CancelarUltimaVenda( CFe35150782373077000171599000034710000432549670, <CFeCanc><infCFe chCanc="CFe35150782373077000171599000034710000432549670"><ide><CNPJ>16716114000172</CNPJ><signAC>SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT</signAC><numeroCaixa>001</numeroCaixa></ide><emit></emit><dest><CNPJ>54723028000186</CNPJ></dest><total></total></infCFe></CFeCanc> )
     - 09:55:53:992 - NumeroSessao: 747348 - Resposta:747348|07099|0000|Erro de validação do conteúdo||

      Só funciona o cancelamento se eu emitir a venda e logo em seguida cancelar.

    Trecho do Código que faz o cancelamento:

        if dm1.ParametrosSAT.AsString = 'S' then begin
            dm2.VendasXMLNFCE.SaveToFile(dm1.SAT.ConfigArquivos.PastaCFeCancelamento+'Cancelar_'+rxVenda.text+'.xml');
            dm1.SAT.CFe.LoadFromFile(dm1.SAT.ConfigArquivos.PastaCFeCancelamento+'Cancelar_'+rxVenda.text+'.xml');
            dm1.SAT.CancelarUltimaVenda;

            DeleteFile(dm1.SAT.ConfigArquivos.PastaCFeCancelamento+'Cancelar_'+rxVenda.text+'.xml');

            if dm1.SAT.Resposta.codigoDeRetorno = 7000 then
            begin
               dm1.SAT.ImprimirExtratoCancelamento;
               xmlcanc   := dm1.SAT.CFeCanc.AsXMLString ;  // True = Gera apenas as TAGs da aplicação
               chavecanc := dm1.SAT.CFeCanc.infCFe.chCanc;
             end
             else begin
                  MessageDlg(sUsuario+', '+dm1.SAT.Resposta.mensagemRetorno, mtWarning, [mbok],0);
                  exit;
             end;
        end;

    Alguém tem alguma ideia?

     

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