Ir para conteúdo
  • Cadastre-se

dev botao

Acbrsat + D-Sat(Dimep)


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

Recommended Posts

  • Membros Pro

Acredito que seja erro na sua aplicação mesmo que esta entrando em alguma rotina após enviar a venda, uso em um DataModule , sempre antes de começar o cupom  inicializo F_DataModule.ACBrSAT.InicializaCFe;

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Se o objeto ACBrSAT.CFe já contem todas as informações da Venda... basta apenas efetuar:

 

ACBrSAT.EnviarDadosVenda;

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.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

OLha como ta meu codigo fonte:

 

So Lembrando que a primeira venda vai normal, ja na segunda em diante não vai mais, da erro na funcao:

 

Resp := xSAT_EnviarDadosVenda( numeroSessao, PAnsiChar(codigoDeAtivacao),PAnsiChar(dadosVenda) ) ;
 
versão da dll dimep: 1.0.2.0
 
procedure GerarSAT(CodigoVenda:Integer) ;
var
  TotalItem: Double;
  sXMLGerado:String;
  iItem:integer;
  DirEnv, DirResp : String;
  numSessao,CodigoNota: Integer;
  TempMemo:TMemo;
  ok:Boolean;
begin
  try
     ModACBr.ACBrSAT.CFe.Clear;
     ModACBr.ACBrSAT.InicializaCFe ;

     TempMemo        := TMemo.Create(Application);
     TempMemo.Visible:=False;
     TempMemo.Parent := frm_Principal;

     with ModACBr.ACBrSAT.CFe do
     begin
       CarregaDadosEmitente;
       SQLString(Tabela.Consulta,'Select n.*,e.* from nnfe n,nnfestatus e '+
                          ' where n.no_codigo = e.no_codigo'+
                          ' and n.codvenda='+inttostr(CodigoVenda)+
                          ' and n.modelo=59');
       CodigoNota:= MostCampoQ(Tabela.Consulta,'no_codigo','I');
       iRegEmp   := MostCampoQ(Tabela.Consulta,'crt','I');

       SQLString(Tabela.Consulta,'Select * from nnfecli where no_codigo='+inttostr(CodigoNota));

       if Tabela.Consulta.IsEmpty=False then
       begin
         if MostCampoQ(Tabela.Consulta,'cli_codigo','I')>0 then
         begin
           if ValidaDocs(ModACBr.ACBrValidador,'CPF',MostCampoQ(Tabela.Consulta,'CNPJ','S')) then
              Dest.CNPJCPF  := TiraCaracEspecial(MostCampoQ(Tabela.Consulta,'CNPJ','S'));

           if MostCampoQ(Tabela.Consulta,'cli_nome','S')<>'' then
           begin
             Dest.xNome     := MostCampoQ(Tabela.Consulta,'cli_nome','S');
             Entrega.xLgr   := MostCampoQ(Tabela.Consulta,'cli_endereco','S');
             Entrega.nro    := MostCampoQ(Tabela.Consulta,'cli_numero','S') ;
             Entrega.xCpl   := MostCampoQ(Tabela.Consulta,'cli_endcompl','S');
             Entrega.xBairro:= MostCampoQ(Tabela.Consulta,'cli_bairro','S') ;
             Entrega.xMun   := MostCampoQ(Tabela.Consulta,'cli_cidade','S');
             Entrega.UF     := MostCampoQ(Tabela.Consulta,'cli_estado','S') ;
           end;
         end;
       end;

       if SQLString(Tabela.Consulta,'Select p.*,i.* from nnfeprod p,nnfeprodimp i '+
                             ' where p.no_codigo=i.no_codigo and p.item=i.item and '+
                             ' p.no_codigo='+inttostr(CodigoNota)) then
       begin
         while not(Tabela.Consulta.Eof) do
         begin
           with Det.Add do
           begin
             nItem              := MostCampoQ(Tabela.Consulta,'ITEM','I');
             Prod.cProd         := MostCampoQ(Tabela.Consulta,'CODIGO','S');
             if EAN13Valido(MostCampoQ(Tabela.Consulta,'CODBARRA','S')) then
             Prod.cEAN          := MostCampoQ(Tabela.Consulta,'CODBARRA','S');
             Prod.xProd         := MostCampoQ(Tabela.Consulta,'DESCRICAO','S');
             prod.NCM           := MostCampoQ(Tabela.Consulta,'NCM','S');
             Prod.CFOP          := MostCampoQ(Tabela.Consulta,'CFOP','S');
             Prod.uCom          := MostCampoQ(Tabela.Consulta,'UN','S');
             Prod.qCom          := MostCampoQ(Tabela.Consulta,'QTDE','F');
             Prod.vUnCom        := MostCampoQ(Tabela.Consulta,'PRECO','F');
             Prod.indRegra      := irArredondamento;
             Prod.vDesc         := 0;
             Prod.vRatDesc      := MostCampoQ(Tabela.Consulta,'DESCONTO','F');
             Prod.vRatAcr       := MostCampoQ(Tabela.Consulta,'OUTRAS','F');
             Imposto.vItem12741 := MostCampoQ(Tabela.Consulta,'vTotTrib','F');
             infAdProd          := MostCampoQ(Tabela.Consulta,'INFADIC','S');

              //  with Prod.obsFiscoDet.Add do
              //  begin
              //    xCampoDet := 'campo';
              //    xTextoDet := 'texto';
             //   end;

             Imposto.ICMS.orig  := StrToOrig(ok,MostCampoQ(Tabela.Consulta,'ORIG','S'));
             if (iRegEmp <= 1) then // simples nacional
             begin
                Imposto.ICMS.CSOSN := StrToCSOSNIcms(ok,MostCampoQ(Tabela.Consulta,'IC_STI','S'));
             end else
             begin
                Imposto.ICMS.CST   := StrToCSTICMS(ok,MostCampoQ(Tabela.Consulta,'IC_STI','S'));
             end;

             Imposto.ICMS.pICMS     := MostCampoQ(Tabela.Consulta,'IC_PICMS','F');
             Imposto.PIS.CST        := StrToCSTPIS(OK,MostCampoQ(Tabela.Consulta,'PIS_CST','S'));
             Imposto.PIS.vBC        := MostCampoQ(Tabela.Consulta,'PIS_VBC','F');
             Imposto.PIS.pPIS       := MostCampoQ(Tabela.Consulta,'PIS_PPIS','F');
             Imposto.COFINS.CST     := StrToCSTCOFINS(OK,MostCampoQ(Tabela.Consulta,'CO_CST','S'));
             Imposto.COFINS.vBC     := MostCampoQ(Tabela.Consulta,'CO_VBC','F');
             Imposto.COFINS.pCOFINS := MostCampoQ(Tabela.Consulta,'CO_PCOFINS','F');

           end;
           Tabela.Consulta.Next;
         end;
       end;

       SQLString(Tabela.Consulta,'Select vlBaseIcms,vlIcms,vlBaseICmsSt,vlIcmsSt,'+
                                    'vltotNota,vlFrete,vlSeguro,vlDesconto,'+
                                    'vlOutras,vltotNota,vltotProd,vTotTrib, '+
                                    'vlpis, vlcofins '+
                             ' from nnfe '+
                             ' where no_codigo='+inttostr(CodigoNota));



       Total.DescAcrEntr.vDescSubtot := MostCampoQ(Tabela.Consulta,'vlDesconto','F');
       Total.DescAcrEntr.vAcresSubtot:= MostCampoQ(Tabela.Consulta,'vloutras','F');
       Total.vCFe                    := MostCampoQ(Tabela.Consulta,'vltotNota','F');
       Total.vCFeLei12741            := MostCampoQ(Tabela.Consulta,'vTotTrib','F');

       if SQLString(Tabela.Consulta,'select * from formapgto where codvenda='+
                 inttostr(CodigoVenda)) then
       begin
         while not(Tabela.Consulta.Eof) do
         begin
            with Pagto.Add do
            begin
               if ((Tabela.Consulta.FieldByName('FORMA').AsString='Dinheiro') or
                    (Tabela.Consulta.FieldByName('FORMA').AsString='Troca') or
                    (Tabela.Consulta.FieldByName('FORMA').AsString='Boleto') or
                   (Tabela.Consulta.FieldByName('FORMA').AsString='Vale/Tichets')) then
               begin
                 cMP := mpDinheiro;
                 vMP := Tabela.Consulta.FieldByName('VALOR').AsFloat;
               end else if ((Tabela.Consulta.FieldByName('FORMA').AsString='Cheque') or
                            (Tabela.Consulta.FieldByName('FORMA').AsString='Cheque-pre')) then
               begin
                 cMP := mpCheque;
                 vMP := Tabela.Consulta.FieldByName('VALOR').AsFloat;
               end else if ((Tabela.Consulta.FieldByName('FORMA').AsString='Cartao') or
                           (Tabela.Consulta.FieldByName('FORMA').AsString='Cartão')) then
               begin
                 cMP := mpCartaodeCredito;
                 vMP := Tabela.Consulta.FieldByName('VALOR').AsFloat;
               end else if ((Tabela.Consulta.FieldByName('FORMA').AsString='Crediario')) then
               begin
                 cMP := mpCreditoLoja;
                 vMP := Tabela.Consulta.FieldByName('VALOR').AsFloat;
               end else
               begin
                 cMP := mpOutros;
                 vMP := Tabela.Consulta.FieldByName('VALOR').AsFloat;
               end;
            end;
            Tabela.Consulta.Next;
         end;
       end;

       // | Informações Adicionais
       if SQLString(Tabela.Consulta,' Select inffisco,infcompl,infcomplusu '+
                                 ' from nnfe where no_codigo='+inttostr(CodigoNota)) then
       begin
         InfAdic.infCpl     :=MostCampoQ(Tabela.Consulta,'INFCOMPL','S')+
                           MostCampoQ(Tabela.Consulta,'INFCOMPLUSU','S');
       end;
     end;

     sXMLGerado := ModACBr.ACBrSAT.CFe.GetXMLString( True );

     DirEnv := ExtractFilePath(Application.ExeName)+'\Env\';
     DirResp := ExtractFilePath(Application.ExeName)+'\Res\';

     try
        ModACBr.ACBrSAT.EnviarDadosVenda();
     except
     end;

     numSessao := ModACBr.ACBrSAT.numeroSessao;
     ForceDirectories( DirEnv );
     ForceDirectories( DirResp );

     TempMemo.Lines.Text:= sXMLGerado;
     TempMemo.Lines.SaveToFile(DirEnv + 'CFe-'+IntToStrZero(numSessao,6)+'.xml');

     if ModACBr.ACBrSAT.Resposta.codigoDeRetorno = 6000 then
     begin
        TempMemo.Lines.Text:=ModACBr.ACBrSAT.CFe.AsXMLString;
        TempMemo.Lines.SaveToFile(DirResp + 'CFe-'+ModACBr.ACBrSAT.CFe.infCFe.ID+'-rec.xml');

        if ImpPerguntaSAT then
        begin
           if varSATImpresaoDetalhada then
              ModACBr.ACBrSAT.ImprimirExtrato
           else ModACBr.ACBrSAT.ImprimirExtratoResumido;
        end;
     end else
     begin
       showmessage(ModACBr.ACBrSAT.Resposta.RetornoLst.Text);
     end;

  finally
     FreeAndNil(TempMemo);
     if Assigned(Frm_MensagemLoadNF) then
         FreeAndNil(Frm_MensagemLoadNF);
  end;
end;
Editado por sidnei_alves1
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Faça testes com o SATTeste.exe... Se o erro não ocorrer nele... muito provavelmente o problema está no seu código...

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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

O tópico mencionado não é o mesmo problema (e já foi corrigido)

 

Se você descrever o passo a passo corretamente, usando o SATTeste.exe... O dia (e quando) eu receber o SAT da Dimep... eu poderia testar o problema...

Ou seja, no momento não tenho as ferramentas necessárias pra debugar.. (não tenho o equipamento)

 

Uma tentativa, é verificar se você está usando a última versão da DLL

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.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Mandei no seu e-mail, não tenho permissão para anexar pelo forum este tipo de arquivo, me envie a sua para que eu tb possa testar aqui, atualizei os fontes e ainda está funcionando com a versão da dll que eu tenho...

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Humm... charada resolvida... agora é importante tentar reproduzir o problema com a aplicação Demo da DIMEP, (se houver)... e relatar o problema para eles...

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.

Link para o comentário
Compartilhar em outros sites

Pessoal, vcs que tem contato com o pessoal da DIMEP e inclusive achando bugs na DLL não seria a hora de pedir pro pessoal da DIMEP disponibilizar 1 (um) equipamento pro ACBr?, a DIMEP tem MUITO a ganhar com isso, vide a Epson T-20 que o pessoal da epson disponibilizou e já está redonda pra NFC-e. #ficaadica.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Compramos um Kit SAT Dimep.

Porém só conseguimos consultar Status e Log do sat pois não sabemos qual os dados que vieram ativado e também não conseguimos contato no suporte.

Alguém saberia informar:

O CNPJ e IE do contribuinte que está ativado?

o CNPJ da Software House e também a assinatura a ser utilizada?

Com isso acho que conseguiremos emitir os primeiros cupons sem utilizar o emulador.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3386 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.