Ir para conteúdo
  • Cadastre-se

dev botao

MDF-e erro seguro da carga


Ver Solução Respondido por angelosobreira,
  • Este tópico foi criado há 2690 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores
Postado

Bom dia

CNPJCPF = é o numero do CNPJ do Responsável pela geração do CIOT

Note também que na tag Seguro [Seg001] tem o campo CNPJ= (CNPJ da seguradora) e o campo CNPJCPF= (CNPJ do responsável pelo seguro) 

  • Curtir 1
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
Postado

MDFe - Seguro da Carga

Tá difícil a tag xseg

Na minha região - a maioria das transportadoras - pequenas - médias  utilizam 

somente o Seguro de Carga do Tomador de serviços - Empresas grandes ( Produtos Ype ) - não tem 

como preencher o campo [nAver] - pois essa informação não é informada ao prestador de serviços de transportes e 

sem essa informação,   o Xml é rejeitado - teria que colocar uma informação fictícia 

Alguém tem alguma sugestão

 

 

Postado
  Em 30/09/2017 at 18:14, msiscampos disse:

MDFe - Seguro da Carga

Tá difícil a tag xseg

Na minha região - a maioria das transportadoras - pequenas - médias  utilizam 

somente o Seguro de Carga do Tomador de serviços - Empresas grandes ( Produtos Ype ) - não tem 

como preencher o campo [nAver] - pois essa informação não é informada ao prestador de serviços de transportes e 

sem essa informação,   o Xml é rejeitado - teria que colocar uma informação fictícia 

Alguém tem alguma sugestão

Na verdade

 

Expandir  

Boa noite, msiscampos!

Na verdade só tem duas alternativas, ou informa os dados que a Sefaz pede ou não emite.
Até segunda (02/10) ainda estará disponível a versão 1.0 do MDF-e, mas depois disso, todos deverão ter o seguro (esse prazo foi dado pela NT 2017.002).

 

  • Membros Pro
Postado
  Em 01/10/2017 at 01:35, arisland disse:

Boa noite, msiscampos!

Na verdade só tem duas alternativas, ou informa os dados que a Sefaz pede ou não emite.
Até segunda (02/10) ainda estará disponível a versão 1.0 do MDF-e, mas depois disso, todos deverão ter o seguro (esse prazo foi dado pela NT 2017.002).

 

Expandir  

Boa tarde Arisland  - o seguro da carga existe o que  fica difícil pro usuário informar o Numero da [nAver] - pq a averbação não 

é própria do prestador 

Postado
  Em 02/10/2017 at 17:29, msiscampos disse:

Boa tarde Arisland  - o seguro da carga existe o que  fica difícil pro usuário informar o Numero da [nAver] - pq a averbação não 

é própria do prestador 

Expandir  

Sim, no caso o tomador do serviço deveria informar o número das averbações para usar este seguro.
Porém não é necessário por que a partir de hoje também é obrigatório o Seguro de Responsabilidade Civil do Transportador. Este prazo já foi prorrogado e é a causa do postergamento da versão 1.0.


Na NT 2017.002 há o seguinte:

4.  Orientações de Preenchimento

Informações da averbação do seguro (modal rodoviário):
1.Em  caso  de  sucesso  na  comunicação  entre  transportador  e  seguradora,  o  campo
número da averbação (nAver) poderá ser preenchido com o protocolo gerado pela seguradora.
2.Em  caso  de falha  na  integração  entre  transportadora  e  o  sistema  da seguradora  da
carga, poderá ser preenchida a tag do número da averbação (nAver) com a sequência 99999.

Porém, pelo texto entende-se que se aplica somente a seguro de responsabilidade do transportador e não do tomador.

Neste link há mais informações:
https://jacometoseguros.com.br/2017/09/14/versao-3-0-do-mdf-e-sera-obrigatorio-a-partir-de-2102017/

ATT

  • Membros Pro
Postado
  Em 02/10/2017 at 19:09, arisland disse:

Sim, no caso o tomador do serviço deveria informar o número das averbações para usar este seguro.
Porém não é necessário por que a partir de hoje também é obrigatório o Seguro de Responsabilidade Civil do Transportador. Este prazo já foi prorrogado e é a causa do postergamento da versão 1.0.


Na NT 2017.002 há o seguinte:

4.  Orientações de Preenchimento

Informações da averbação do seguro (modal rodoviário):
1.Em  caso  de  sucesso  na  comunicação  entre  transportador  e  seguradora,  o  campo
número da averbação (nAver) poderá ser preenchido com o protocolo gerado pela seguradora.
2.Em  caso  de falha  na  integração  entre  transportadora  e  o  sistema  da seguradora  da
carga, poderá ser preenchida a tag do número da averbação (nAver) com a sequência 99999.

Porém, pelo texto entende-se que se aplica somente a seguro de responsabilidade do transportador e não do tomador.

Neste link há mais informações:
https://jacometoseguros.com.br/2017/09/14/versao-3-0-do-mdf-e-sera-obrigatorio-a-partir-de-2102017/

ATT

Expandir  

Estou fazendo dessa maneira. A maioria das seguradoras que não tem o sistema integrado me retornaram dizendo que só geram o numero de averbação no mês subsequente da emissão dos ctes.

Rodrigo Cardilo

Card System Info

rodrigo@cardilo.com

Postado

pessoal estou com duvidas na geração do seguro:

 

  with seg.Add do
        begin
            if RadioGroup5.ItemIndex = 0 then
                respSeg := rsEmitente
            else
                respSeg := rsTomadorServico;
        end;
        with seg.Add do
        begin
            CNPJ := trim(cxTextEdit21.Text);

            xSeg := copy(trim(cxTextEdit19.Text), 1, 30);
            //CNPJCPF := trim(cxTextEdit21.Text);
            nApol := copy(trim(cxTextEdit20.Text), 1, 20);

            with aver.Add do
            begin
                nAver := '0';
            end;
        end;

 

ta dando o erro de informações do seguiro incompleta...

poderiam me auxiliar?

  • Membros Pro
Postado
  Em 02/10/2017 at 19:56, dionatan disse:

pessoal estou com duvidas na geração do seguro:

 

  with seg.Add do
        begin
            if RadioGroup5.ItemIndex = 0 then
                respSeg := rsEmitente
            else
                respSeg := rsTomadorServico;
        end;
        with seg.Add do
        begin
            CNPJ := trim(cxTextEdit21.Text);

            xSeg := copy(trim(cxTextEdit19.Text), 1, 30);
            //CNPJCPF := trim(cxTextEdit21.Text);
            nApol := copy(trim(cxTextEdit20.Text), 1, 20);

            with aver.Add do
            begin
                nAver := '0';
            end;
        end;

 

ta dando o erro de informações do seguiro incompleta...

poderiam me auxiliar?

Expandir  

nAver não pode ser zero.

Usei a seguinte regra:

 

Na NT 2017.002 há o seguinte:

4.  Orientações de Preenchimento

Informações da averbação do seguro (modal rodoviário):
1.Em  caso  de  sucesso  na  comunicação  entre  transportador  e  seguradora,  o  campo
número da averbação (nAver) poderá ser preenchido com o protocolo gerado pela seguradora.
2.Em  caso  de falha  na  integração  entre  transportadora  e  o  sistema  da seguradora  da
carga, poderá ser preenchida a tag do número da averbação (nAver) com a sequência 99999.

Rodrigo Cardilo

Card System Info

rodrigo@cardilo.com

Postado
  Em 02/10/2017 at 20:01, Rodrigo Cardilo disse:

nAver não pode ser zero.

Usei a seguinte regra:

 

Na NT 2017.002 há o seguinte:

4.  Orientações de Preenchimento

Informações da averbação do seguro (modal rodoviário):
1.Em  caso  de  sucesso  na  comunicação  entre  transportador  e  seguradora,  o  campo
número da averbação (nAver) poderá ser preenchido com o protocolo gerado pela seguradora.
2.Em  caso  de falha  na  integração  entre  transportadora  e  o  sistema  da seguradora  da
carga, poderá ser preenchida a tag do número da averbação (nAver) com a sequência 99999.

Expandir  

mas esta correto do jeito que estou fazendo?

 

 

with seg.Add do
        begin
            if RadioGroup5.ItemIndex = 0 then
                respSeg := rsEmitente
            else
                respSeg := rsTomadorServico;
        end;
        with seg.Add do
        begin
            CNPJ := trim(cxTextEdit21.Text);

            xSeg := copy(trim(cxTextEdit19.Text), 1, 30);
            //CNPJCPF := trim(cxTextEdit21.Text);
            nApol := copy(trim(cxTextEdit20.Text), 1, 20);

            with aver.Add do
            begin
                nAver := '9988444';
            end;
        end;

  • Membros Pro
Postado
  Em 02/10/2017 at 20:05, dionatan disse:

mas esta correto do jeito que estou fazendo?

 

 

with seg.Add do
        begin
            if RadioGroup5.ItemIndex = 0 then
                respSeg := rsEmitente
            else
                respSeg := rsTomadorServico;
        end;
        with seg.Add do
        begin
            CNPJ := trim(cxTextEdit21.Text);

            xSeg := copy(trim(cxTextEdit19.Text), 1, 30);
            //CNPJCPF := trim(cxTextEdit21.Text);
            nApol := copy(trim(cxTextEdit20.Text), 1, 20);

            with aver.Add do
            begin
                nAver := '9988444';
            end;
        end;

Expandir  

sim, isso mesmo

Rodrigo Cardilo

Card System Info

rodrigo@cardilo.com

  • Membros Pro
Postado
  Em 03/10/2017 at 13:33, Wether disse:

Não importa o que eu preencha nas tags ele sempre dá o mesmo erro  de dados do seguro de carga incompletos para o modal rodoviario, alguém tem algum exemplo que realmente funcionou?

Expandir  

Cara, é só seguir esse modelo que funciona.

with seg.Add do
        begin
            if RadioGroup5.ItemIndex = 0 then
                respSeg := rsEmitente
            else
                respSeg := rsTomadorServico;
        end;
        with seg.Add do
        begin
            CNPJ := trim(cxTextEdit21.Text);

            xSeg := copy(trim(cxTextEdit19.Text), 1, 30);
            //CNPJCPF := trim(cxTextEdit21.Text);
            nApol := copy(trim(cxTextEdit20.Text), 1, 20);

            with aver.Add do
            begin
                nAver := '9988444';
            end;
        end;

Estou enviando sem problema.

Rodrigo Cardilo

Card System Info

rodrigo@cardilo.com

Postado

Srs e srs.

Boa tarde

Verifiquei que exitem muitas duvidas na questão do seguro de cargas para o transportador e também para os subcontratados e contratados avulsos, isso em caso  do embarcador ( fabricante ou distribuidor).

Agora toda e qualquer transportadora devera ter o seguro de RCTC  ( acidentes) que e obrigatório por lei desde 1962, mas nem todos possuíam porque não existe este cobrança pelos órgãos federais. Porem agora a partir de 01/10 todos dos transportadores para emitir o MDFE, NECESSITAM de uma APOLICE DE SEGUROS emitida para que ele possa,  Emitir o Cte colocando o numero da apólice, Averbar( informar) este cte a seguradora e a seguradora consequentemente devolve a chave de 44 números para ele colocar para emissão do MDFE.

Portanto se vocês possuem transportadoras que ainda não possuem seguros ou que podem estar com apólices canceladas ou com problemas, ele não emitira o MDFE, e consequentemente estará transportando as mercadorias no risco.

Hoje tivemos uma nova apresentação na seguradora, que  aqueles embarcadores, industrias, distribuidoes  etc, que contratam autônomos possivelmente terão também que ter uma apólice de seguros, porque e o embarcador, indústria, distribuidor que serA responsável em informar os dados a ANTT e emitir o MDFE para este autônomo.

 

Nos casos que o embarcador, indústria ou distribuidor tiver transportadora contrata a responsabilidade vai ficar para a transportadora que devera como pessoa jurídica ter a apólice de seguro.

 

Algumas coisas ainda estão em mudança na seguradora e ainda vai mudar ainda mais, pois a intensão e que todos os transportadores e também os autônomos paguem os devidos impostos e a antt sera o órgão que indiretamente fiscalizara isso.

Sou corretor de seguros e atendemos muitos transportadores e embarcadores na ultima semana e resolvemos os problemas.

 

Fico a disposição para duvidas sobre o seguro e estamos a disposição para a efetivação da apólice para o embarcador e também para os transportadores que transportam para os embarcadores.

 

Alessandro

SETOR ADM E CORRETORA DE SEGUROS

11 31053131

WATZAP  95000313

  • Membros Pro
Postado
  Em 05/10/2017 at 21:26, alessandro@setorseguros.co disse:

Srs e srs.

Boa tarde

Verifiquei que exitem muitas duvidas na questão do seguro de cargas para o transportador e também para os subcontratados e contratados avulsos, isso em caso  do embarcador ( fabricante ou distribuidor).

Agora toda e qualquer transportadora devera ter o seguro de RCTC  ( acidentes) que e obrigatório por lei desde 1962, mas nem todos possuíam porque não existe este cobrança pelos órgãos federais. Porem agora a partir de 01/10 todos dos transportadores para emitir o MDFE, NECESSITAM de uma APOLICE DE SEGUROS emitida para que ele possa,  Emitir o Cte colocando o numero da apólice, Averbar( informar) este cte a seguradora e a seguradora consequentemente devolve a chave de 44 números para ele colocar para emissão do MDFE.

Portanto se vocês possuem transportadoras que ainda não possuem seguros ou que podem estar com apólices canceladas ou com problemas, ele não emitira o MDFE, e consequentemente estará transportando as mercadorias no risco.

Hoje tivemos uma nova apresentação na seguradora, que  aqueles embarcadores, industrias, distribuidoes  etc, que contratam autônomos possivelmente terão também que ter uma apólice de seguros, porque e o embarcador, indústria, distribuidor que serA responsável em informar os dados a ANTT e emitir o MDFE para este autônomo.

 

Nos casos que o embarcador, indústria ou distribuidor tiver transportadora contrata a responsabilidade vai ficar para a transportadora que devera como pessoa jurídica ter a apólice de seguro.

 

Algumas coisas ainda estão em mudança na seguradora e ainda vai mudar ainda mais, pois a intensão e que todos os transportadores e também os autônomos paguem os devidos impostos e a antt sera o órgão que indiretamente fiscalizara isso.

Sou corretor de seguros e atendemos muitos transportadores e embarcadores na ultima semana e resolvemos os problemas.

 

Fico a disposição para duvidas sobre o seguro e estamos a disposição para a efetivação da apólice para o embarcador e também para os transportadores que transportam para os embarcadores.

 

Alessandro

SETOR ADM E CORRETORA DE SEGUROS

11 31053131

WATZAP  95000313

Expandir  

Boa noite,

Como um MDFe pode ter 1 ou mais CTe relacionado, pergunto se a averbação tem que ser para cada CTe,  ou uma averbação única para o MDFe.

Fico grato se puder tirar esta dúvida.

 

Postado
  Em 03/10/2017 at 14:02, Rodrigo Cardilo disse:

Cara, é só seguir esse modelo que funciona.

with seg.Add do
        begin
            if RadioGroup5.ItemIndex = 0 then
                respSeg := rsEmitente
            else
                respSeg := rsTomadorServico;
        end;
        with seg.Add do
        begin
            CNPJ := trim(cxTextEdit21.Text);

            xSeg := copy(trim(cxTextEdit19.Text), 1, 30);
            //CNPJCPF := trim(cxTextEdit21.Text);
            nApol := copy(trim(cxTextEdit20.Text), 1, 20);

            with aver.Add do
            begin
                nAver := '9988444';
            end;
        end;

Estou enviando sem problema.

Expandir  

Bom dia, mesmo colocando o exemplo acima, não passa de forma alguma, sempre diz que 665 - rejeição: as informações do seguro da carga devem ser preenchidas para o modal rodoviário

  • Moderadores
Postado
  Em 06/10/2017 at 13:26, Elviro disse:

Bom dia, mesmo colocando o exemplo acima, não passa de forma alguma, sempre diz que 665 - rejeição: as informações do seguro da carga devem ser preenchidas para o modal rodoviário

Expandir  

Esse código não me parece correto. Está criando duas informações de seguro com seg.Add e preenchendo metade num e metade noutro grupo.

Também está comentado o CNPJ ou CPF do responsável pelo seguro seg.CNPJCPF.

Verifique o XML como está gerando e se confere com o manual.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado
  Em 06/10/2017 at 13:26, Elviro disse:

Bom dia, mesmo colocando o exemplo acima, não passa de forma alguma, sempre diz que 665 - rejeição: as informações do seguro da carga devem ser preenchidas para o modal rodoviário

Expandir  

Tenta Assim:

           with seg.Add do
           begin
              if ibquery1.FieldByName('SEG_RESPONSAVEL').AsInteger = 1 then
                  respSeg := rsEmitente
              else
                  respSeg := rsTomadorServico;
              CNPJCPF := trim(ibquery1.FieldByName('SEG_CNPJCPF').AsString);

              xSeg := copy(trim(ibquery1.FieldByName('SEG_SEGURADORA').AsString), 1, 30);
              CNPJ := trim(ibquery1.FieldByName('SEG_CNPJSEGURADORA').AsString);
              nApol := copy(trim(ibquery1.FieldByName('SEG_NUMAPOLICE').AsString), 1, 20);

              with aver.Add do
              begin
                  nAver := ibquery1.FieldByName('SEG_NUMAVERBACAO').AsString;
              end;
           end;

 

Postado

Acabei de resolver, segue abaixo meu código funcionando para ajudar quem está com problemas

 

 

procedure TFrmCertificado.GerarMDFe(NumMDFe: String);
begin

   DM.IBUsuario.Close;
   DM.IBUsuario.SelectSQL.Clear;
   DM.IBUsuario.SelectSQL.Add('Select * From USUARIO');
   DM.IBUsuario.Prepare;
   DM.IBUsuario.Open;

   DM.IBManifesto.close;
   DM.IBManifesto.SelectSQL.Clear;
   DM.IBManifesto.SelectSQL.add('SELECT * FROM Manifesto');
   DM.IBManifesto.SelectSQL.ADD('WHERE NUMERO =  ' + QuotedStr(Edit1.Text) + '');
   DM.IBManifesto.Prepare;
   DM.IBManifesto.Open;

   with ACBrMDFe1.Manifestos.Add.MDFe do
    begin

      //Código do estado do manifesto
      if dm.IBUsuarioUF.AsString = 'AC' then
      begin
       Ide.cUF := 12;
      end
      else if dm.IBUsuarioUF.AsString = 'AL' then
      begin
       Ide.cUF := 27;
      end
      else if dm.IBUsuarioUF.AsString = 'SP' then
      begin
       Ide.cUF := 35;
      end
      else if dm.IBUsuarioUF.AsString = 'AP' then
      begin
       Ide.cUF := 16;
      end
      else if dm.IBUsuarioUF.AsString = 'AM' then
      begin
       Ide.cUF := 13;
      end
      else if dm.IBUsuarioUF.AsString = 'BA' then
      begin
       Ide.cUF := 29;
      end
      else if dm.IBUsuarioUF.AsString = 'PE' then
      begin
       Ide.cUF := 26;
      end
      else if dm.IBUsuarioUF.AsString = 'PB' then
      begin
       Ide.cUF := 25;
      end
      else if dm.IBUsuarioUF.AsString = 'CE' then
      begin
       Ide.cUF := 23;
      end
      else if dm.IBUsuarioUF.AsString = 'MA' then
      begin
       Ide.cUF := 21;
      end
      else
      begin
       Ide.cUF := 26;
      end;
      //Código do estado do manifesto


       if EdAmbiente.Text = '0' then
       begin
        ACBrMDFe1.Configuracoes.WebServices.Ambiente := taHomologacao;
       end
       else
       begin
         ACBrMDFe1.Configuracoes.WebServices.Ambiente := taProducao
       end;

      // TMDFeTpEmitente = ( teTransportadora, teTranspCargaPropria );
      if dm.IBManifestoTIPODECARGA.AsString = 'TRANSPORTADORA' Then
       begin
         Ide.tpEmit  := teTransportadora;
       end
       else
       Begin
        Ide.tpEmit  := teTranspCargaPropria;
       End;

       Ide.modelo  := '58';
       Ide.serie   := 1;
       Ide.nMDF    := StrToIntDef(dm.IBManifestoNUMERO.AsString, 0);
       Ide.cMDF    := dm.IBManifestoCODIGO.AsInteger;  // Código Aleatório

       // TMDFeModal = ( moRodoviario, moAereo, moAquaviario, moFerroviario );
       Ide.modal   := moRodoviario;
       Ide.tpTransp := ttETC;
       Ide.dhEmi   := Now;
       // TpcnTipoEmissao = (teNormal, teContingencia, teSCAN, teDPEC, teFSDA);
       Ide.tpEmis  := teNormal;
       // TpcnProcessoEmissao = (peAplicativoContribuinte, peAvulsaFisco, peAvulsaContribuinte, peContribuinteAplicativoFisco);
       Ide.procEmi := peAplicativoContribuinte;
       Ide.verProc := '3.0';
       Ide.UFIni   := dm.IBUsuarioUF.AsString;
       Ide.UFFim   := dm.IBManifestoUFMUNICIPIODESTINO.AsString;
       Ide.dhIniViagem := Now;

        with Ide.infMunCarrega.Add do
        begin
         cMunCarrega := dm.IBUsuarioCODMUNICIPIO.AsInteger;
         xMunCarrega := dm.IBUsuarioCIDADE.AsString;
        end;

       dm.IBManifestoPercurso.close;
       DM.IBManifestoPercurso.SelectSQL.Clear;
       DM.IBManifestoPercurso.SelectSQL.add('SELECT * FROM ManifestoPercurso');
       DM.IBManifestoPercurso.SelectSQL.ADD('WHERE CODMANIFESTO =  ' + QuotedStr(DM.IBManifestoCODIGO.AsString) + '');
       DM.IBManifestoPercurso.Prepare;
       DM.IBManifestoPercurso.Open;
       DM.IBManifestoPercurso.First;
       while not DM.IBManifestoPercurso.eof do
       begin
         with Ide.infPercurso.Add do
         Begin
           UFPer := dm.IBManifestoPercursoUF.AsString;
         End;
         DM.IBManifestoPercurso.Next;
       end;

       //Dados do Emitente
       Emit.CNPJ  := dm.IBUsuarioCPFCNPJ.AsString;
       Emit.IE    := dm.IBUsuarioRGINSC.AsString;
       Emit.xNome := dm.IBUsuarioRAZAOSOCIAL.AsString;
       Emit.xFant := dm.IBUsuarioFANTASIA.AsString;

       Emit.EnderEmit.xLgr    := dm.IBUsuarioENDERECO.AsString;
       Emit.EnderEmit.nro     := dm.IBUsuarioNUMERO.AsString;
       Emit.EnderEmit.xCpl    := dm.IBUsuarioCOMPLEMENTO.AsString;
       Emit.EnderEmit.xBairro := dm.IBUsuarioBAIRRO.AsString;
       Emit.EnderEmit.cMun    := StrToInt(dm.IBUsuarioCODMUNICIPIO.AsString);
       Emit.EnderEmit.xMun    := dm.IBUsuarioCIDADE.AsString;
       Emit.EnderEmit.CEP     := StrToIntDef(dm.IBUsuarioCEP.AsString, 0);
       Emit.EnderEmit.UF      := dm.IBUsuarioUF.AsString;
       Emit.EnderEmit.fone    := dm.IBUsuarioFONE.AsString;
       Emit.enderEmit.email   := dm.IBUsuarioEMAIL.AsString;
       //Dados do Emitente

        //Dados do transportador
        DM.IBTransportador.close;
        DM.IBTransportador.SelectSQL.Clear;
        DM.IBTransportador.SelectSQL.add('SELECT * FROM Transportador');
        DM.IBTransportador.SelectSQL.ADD('WHERE codigo =  ' + QuotedStr(Dm.IBManifestoCODTRANSPORTADOR.Text) + '');
        DM.IBTransportador.Prepare;
        DM.IBTransportador.Open;

        rodo.RNTRC := Dm.IBTransportadorRNTC.AsString;
        rodo.CIOT := '123456789012';

        with rodo.infANTT.infContratante.Add do
        begin
         CNPJCPF := '61189288000189';
        end;


        rodo.veicTracao.cInt    := DM.IBTransportadorCODIGO.AsString;
        rodo.veicTracao.placa   := DM.IBTransportadorPLACA.AsString;
        rodo.veicTracao.RENAVAM := DM.IBTransportadorRENAVAM.AsString;
        rodo.veicTracao.tara    := DM.IBTransportadorTARA.AsInteger;
        rodo.veicTracao.capKG   := DM.IBTransportadorCAPKG.AsInteger;
        rodo.veicTracao.capM3   := DM.IBTransportadorCAPM3.AsInteger;

       // TpcteTipoRodado = (trNaoAplicavel, trTruck, trToco, trCavaloMecanico, trVAN, trUtilitario, trOutros);
       // Para o MDF-e não utilizar o trNaoAplicavel.
       if DM.IBTransportadorTIPOVEICULO.AsString = 'TRUCK' then
       begin
        rodo.veicTracao.tpRod := trTruck;
       end
       else if DM.IBTransportadorTIPOVEICULO.AsString = 'TOCO' then
       begin
        rodo.veicTracao.tpRod := trToco;
       end
       else if DM.IBTransportadorTIPOVEICULO.AsString = 'CAVALO MECÂNICO' then
       begin
        rodo.veicTracao.tpRod := trCavaloMecanico;
       end
       else if DM.IBTransportadorTIPOVEICULO.AsString = 'VAN' then
       begin
        rodo.veicTracao.tpRod := trVAN;
       end
       else if DM.IBTransportadorTIPOVEICULO.AsString = 'UTILITÁRIO' then
       begin
        rodo.veicTracao.tpRod := trUtilitario;
       end
       else
       begin
        rodo.veicTracao.tpRod := trOutros;
       end;

       // TpcteTipoCarroceria = (tcNaoAplicavel, tcAberta, tcFechada, tcGraneleira, tcPortaContainer, tcSider);
       if dm.IBTransportadorTIPOCARROCERIA.AsString = 'NÃO APLICÁVEL' then
       begin
         rodo.veicTracao.tpCar := tcNaoAplicavel;
       end
       Else if dm.IBTransportadorTIPOCARROCERIA.AsString = 'ABERTA' then
       begin
         rodo.veicTracao.tpCar := tcAberta;
       end
       Else if dm.IBTransportadorTIPOCARROCERIA.AsString = 'FECHADA' then
       begin
         rodo.veicTracao.tpCar := tcFechada;
       end
       Else if dm.IBTransportadorTIPOCARROCERIA.AsString = 'GRANELEIRA' then
       begin
         rodo.veicTracao.tpCar := tcGraneleira;
       end
       Else if dm.IBTransportadorTIPOCARROCERIA.AsString = 'PORTA CONTEINER' then
       begin
         rodo.veicTracao.tpCar := tcPortaContainer;
       end
       else
       begin
         rodo.veicTracao.tpCar := tcSider;
       end;

       rodo.veicTracao.UF := dm.IBTransportadorUF.AsString;

       with rodo.veicTracao.condutor.Add do
        begin
         xNome := DM.IBTransportadorNOMERAZAO.AsString;
         CPF   := DM.IBTransportadorCPFCONDUTOR.AsString;
        end;
    //Dados do transportador

  //   with rodo.veicReboque.Add do
  //    begin
  //     cInt    := '002';
  //     placa   := 'XYZ4567';
  //     RENAVAM := '123456789';
  //     tara    := 4000;
  //     capKG   := 3000;
  //     capM3   := 300;

       // TpcteTipoCarroceria = (tcNaoAplicavel, tcAberta, tcFechada, tcGraneleira, tcPortaContainer, tcSider);
  //     tpCar := tcFechada;

  //     UF := DM.IBUsuarioUF.AsString;
  //    end;


       //Vale Pedágio
       with rodo.valePed.disp.Add do
        begin
         CNPJForn := '12345678000199';
         CNPJPg   := '21543876000188';
         nCompra  := '789';
        end;
       //Vale Pedágio


     with infDoc.infMunDescarga.Add do
      begin
           cMunDescarga := DM.IBManifestoCODMUNICIPIODESTINO.AsInteger;
           xMunDescarga := DM.IBManifestoMUNICIPIODESTINO.AsString;;

          //Dados das Chaves do CTE
          DM.IBChaveCTEManifesto.close;
          DM.IBChaveCTEManifesto.SelectSQL.Clear;
          DM.IBChaveCTEManifesto.SelectSQL.add('SELECT * FROM ChaveCTEManifesto');
          DM.IBChaveCTEManifesto.SelectSQL.ADD('WHERE CODMANIFESTO =  ' + QuotedStr(Dm.IBManifestoCODIGO.AsString) + '');
          DM.IBChaveCTEManifesto.Prepare;
          DM.IBChaveCTEManifesto.Open;
          DM.IBChaveCTEManifesto.First;
          while not DM.IBChaveCTEManifesto.eof do
          begin

             with infCTe.Add do
              begin
                 chCTe := DM.IBChaveCTEManifestoCHAVECTE.AsString;
                //chCTe := '35110803911545000148570010000001011000001018';
                //Informações das Unidades de Transporte (Carreta/Reboque/Vagão)

        {      with infUnidTransp.Add do
               begin
                //TpcnUnidTransp = ( utRodoTracao, utRodoReboque, utNavio, utBalsa, utAeronave, utVagao, utOutros );
                tpUnidTransp := utRodoTracao;
                idUnidTransp := 'ABC1234'; // informar a placa se rodoviário
                with lacUnidTransp.Add do
                 begin
                  nLacre := '123';
                 end;
                // Informações das Unidades de carga (Containeres/ULD/Outros)
                with infUnidCarga.Add do
                 begin
                  // TpcnUnidCarga  = ( ucContainer, ucULD, ucPallet, ucOutros );
                  tpUnidCarga := ucOutros;
                  idUnidCarga := 'AB45'; // informar o numero da unidade da carga
                  with lacUnidCarga.Add do
                   begin
                    nLacre := '123';
                   end;
                  qtdRat := 1.0;
                 end;
                qtdRat := 1.0;
               end;}
               end;
              DM.IBChaveCTEManifesto.Next;

            end; // fim do with


        //Dados das Chaves do CTE
        DM.IBChaveNFEManifesto.close;
        DM.IBChaveNFEManifesto.SelectSQL.Clear;
        DM.IBChaveNFEManifesto.SelectSQL.add('SELECT * FROM ChaveNFEManifesto');
        DM.IBChaveNFEManifesto.SelectSQL.ADD('WHERE CODMANIFESTO =  ' + QuotedStr(Dm.IBManifestoCODIGO.AsString) + '');
        DM.IBChaveNFEManifesto.Prepare;
        DM.IBChaveNFEManifesto.Open;
        DM.IBChaveNFEManifesto.First;
        while not DM.IBChaveNFEManifesto.eof do
        begin

           with infCTe.Add do
            begin
             chCTe := dm.IBChaveNFEManifestoCHAVENFE.AsString;
             //chCTe := '35110803911545000148570010000001021000001023';
             //Informações das Unidades de Transporte (Carreta/Reboque/Vagão)

           { with infUnidTransp.Add do
             begin
              //TpcnUnidTransp = ( utRodoTracao, utRodoReboque, utNavio, utBalsa, utAeronave, utVagao, utOutros );
              tpUnidTransp := utRodoReboque;
              idUnidTransp := 'XYZ5678';
              with lacUnidTransp.Add do
               begin
                nLacre := '321';
               end;

              // Informações das Unidades de carga (Containeres/ULD/Outros)
              with infUnidCarga.Add do
               begin
                // TpcnUnidCarga  = ( ucContainer, ucULD, ucPallet, ucOutros );
                tpUnidCarga := ucOutros;
                idUnidCarga := 'DD98';
                with lacUnidCarga.Add do
                 begin
                  nLacre := '321';
                 end;
                qtdRat := 1.0;
               end;
              qtdRat := 1.0;
             end;  }


           end;
           DM.IBChaveNFEManifesto.Next;

          end; // fim do with

      end;

      //Dados da seguradora
      DM.IBSeguradora.close;
      DM.IBSeguradora.SelectSQL.Clear;
      DM.IBSeguradora.SelectSQL.add('SELECT * FROM Seguradora');
      DM.IBSeguradora.SelectSQL.ADD('WHERE CODIGO =  ' + QuotedStr(Dm.IBManifestoCODSEGURADORA.AsString) + '');
      DM.IBSeguradora.Prepare;
      DM.IBSeguradora.Open;
         with seg.Add do
          begin

              if DM.IBManifestoRESPSEGURO.AsString = 'EMITENTE DO CTE' then
                  respSeg := rsEmitente
              else
                  respSeg := rsTomadorServico;


              CNPJ := trim(dm.IBUsuarioCPFCNPJ.AsString);

              xSeg := copy(trim(DM.IBSeguradoraNOME.AsString), 1, 30);
              CNPJCPF := trim(dm.IBSeguradoraCNPJ.AsString);
              nApol := copy(trim(dm.IBManifestoAPOLICE.AsString), 1, 20);

              with aver.Add do
              begin
                  nAver := trim(dm.IBManifestoAVERBACAO.AsString);
              end;

          end;
      //Dados da seguradora

     dm.IBVerifica.close;
     dm.IBVerifica.SQL.Clear;
     dm.IBVerifica.SQL.Add('SELECT  count(CHAVECTE) FROM ChaveCTEManifesto');
     dm.IBVerifica.SQL.Add('WHERE CODMANIFESTO = ' + QuotedStr(dm.IBManifestoCODIGO.text) + '');
     dm.IBVerifica.Prepare;
     dm.IBVerifica.open;
     tot.qCTe :=dm.IBVerifica.fields[0].AsInteger;
     //tot.qCTe := 2;


     EdvCarga.Text := dm.IBManifestoVCARGA.Text;
     EdvCarga.Text := FormatFloat('##0.00', StrToFloat(EdvCarga.Text));
     EdvCarga.Text := TrocaVirgulaPorPonto(EdvCarga.Text);
     tot.vCarga := StrtoFloat(EdvCarga.Text);


     //UnidMed = (uM3,uKG, uTON, uUNIDADE, uLITROS);
     if DM.IBManifestoUNIDCARGA.AsString = 'M3' then
     begin
      tot.cUnid  :=  uM3;
     end
     else if DM.IBManifestoUNIDCARGA.AsString = 'KG' then
     begin
      tot.cUnid  :=  uKG;
     end
     else if DM.IBManifestoUNIDCARGA.AsString = 'TON' then
     begin
      tot.cUnid  :=  uTON;
     end
     else if DM.IBManifestoUNIDCARGA.AsString = 'UNIDADE' then
     begin
      tot.cUnid  :=  uUNIDADE;
     end
     else
     begin
       tot.cUnid  :=  uLITROS;
     end;


      EdTCarga.Text := dm.IBManifestoQCARGA.Text;
      EdTCarga.Text := FormatFloat('##0.00', StrToFloat(EdTCarga.Text));
      EdTCarga.Text := TrocaVirgulaPorPonto(EdTCarga.Text);
      tot.qCarga := Strtofloat(EdTCarga.Text);


     infAdic.infCpl     := 'Empresa optante pelo Simples Nacional.; Caminhao VW.';
     infAdic.infAdFisco := '';
    end;

   ACBrMDFe1.Manifestos.GerarMDFe;


end;
 

  • 2 meses depois ...
  • Este tópico foi criado há 2690 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.

The popup will be closed in 10 segundos...