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á 2540 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
7 horas atrás, 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

 

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 30/09/2017 at 22: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).

 

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
1 hora atrás, 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 

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
35 minutos atrás, 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

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

[email protected]

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
5 minutos atrás, 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?

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

[email protected]

Postado
3 minutos atrás, 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.

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
6 minutos atrás, 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;

sim, isso mesmo

Rodrigo Cardilo

Card System Info

[email protected]

  • Membros Pro
Postado
29 minutos atrás, 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?

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

[email protected]

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
1 hora atrás, [email protected] 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

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 11: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.

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
33 minutos atrás, 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

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
3 horas atrás, 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

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 ...
Postado
Em 27/09/2017 at 12:01, Jose Carlos Barbosa disse:

Ola...segue o meu TXT..... 

deu certo assim.... veja se ajuda

 

abraço

Manife.txt

Boa tarde a todos.

Meu txt está semelhante ao exemplo fornecido pelo Jose Carlos porém está acusando mensagem Informações dos tomadores é obrigatória para esta operação.

Alguém pode me ajudar?

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