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á 2545 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Oi pessoal,

Atualizamos o ACBR no nosso sistema ERP e estamos enfrentando um problema com o MDF-e versão 3.0:

Quando envia os manifestos, está retornando o erro: 218->Rejeição: Dados do seguro de carga incompletos para o modal rodoviário.

Olhando pelo manual, está escrito que é obrigatório preencher somente a tag  respSeg que vem dentro da tag infResp. Mas ao enviar para a receita está dando esse erro a menos que preencha todos as outras tags dentro da tag infSeg (que é da seguradora, mas nem todos os clientes contratam) : xSeg, CNPJ, nApol e nAver  

Será que passou a ser obrigatório ter uma seguradora? alguém ai também está com esse problema?

 

  • Membros Pro
  • Solution
Postado

Pessoal, estou tendo esse mesmo problema, em todas as situações, ou seja, quando informo que o responsável pelo seguro é o Emitente ou o Tomador do serviço. Alguém já passou por isso? 

Estou tentando fazer o envio na versão 3.0.

 

Grato

Postado
Em 10/01/2017 at 16:41, angelosobreira disse:

Pessoal, estou tendo esse mesmo problema, em todas as situações, ou seja, quando informo que o responsável pelo seguro é o Emitente ou o Tomador do serviço. Alguém já passou por isso? 

Estou tentando fazer o envio na versão 3.0.

 

Grato

Também estou com este problema.. De todo jeito que informa dá a mensagem : " Rejeição: Dados do seguro de carga incompletos para o modal rodoviário. "...

Alguém pode ajudar ?

Analista/Programador

 "Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende”

Postado
7 horas atrás, xyberx disse:

 Agora é Obrigatório Informar os Dados Do Seguro, caso seja o Emissor, vc preenche com os dados do Emissor...

Sim, mas é como o amigo falou ai em cima, mesmo quando informo que o responsável pelo seguro é o Emitente ou o Tomador do serviço e preencho os campos necessários, dá a mensagem de rejeição do mesmo jeito.

Analista/Programador

 "Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende”

Postado
17 minutos atrás, hugo_lmf disse:

Sim, mas é como o amigo falou ai em cima, mesmo quando informo que o responsável pelo seguro é o Emitente ou o Tomador do serviço e preencho os campos necessários, dá a mensagem de rejeição do mesmo jeito.

 A versão que estou mexendo aqui está correta quando preenchido, sem erros...se precisar de ajuda so falar.

Postado

Ola a todos.

Tenho uma duvida em relacionado a seguradora para cargas fracionadas.

Se em um MDFe eu tiver vários CTe's de clientes diferentes e alguns clientes tem seguro próprio e outros a responsabilidade pelo seguro é do emitente, como devo proceder para informar os dados da seguradora? Agrupo os clientes que a responsabilidade do seguro e do emitente e informo uma unica vez e informo separado os clientes que são seguro próprio?

Exemplo:

MDFE 123

CTe 1 - seguro próprio (seguradora ABC)

CTe 2 - seguro emitente (seguradora XYZ)

CTe 3 - seguro próprio (seguradora DEF)

CTe 4 - seguro emitente (seguradora XYZ)

  • Consultores
Postado

Boa tarde Adailson,

As informações sobre seguro esta presente somente na versão 3.00 do MDF-e.

Essas informações são opcionais, mas podemos informar.

Conforme consta na página 106 da Nota Técnica que traz a nova estrutura do XML, note que o grupo <Seg> pode se repetir n vezes, sendo assim você pode informar os dados dos diversos seguros caso existam mais do que UM.

 

  • Curtir 1
  • Obrigado 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • 3 semanas depois ...
Postado

boa tarde Ítalo, estou tendo o seguinte problema com o acbrmdfe versão 3:

      Não informando os dados de seguro de carga:

              acbrMDFe1.Configuracoes.Geral.VersaoDF := ve300; (informo a versão do mdfe em tempo de execução dessa forma) 

              não passo nenhuma informação sobre o seguro de carga

              o xml é validado, assinado e gerado blz - ok

             enviando o xml acima para sefaz gera o seguinte erro: 90-> rejeição: seguro da carga é obrigatório para modal prestador de serviço de transporte no modal 

             rodoviário. (arquivo anexo)

 

      Informando os dados de seguro de carga:

             acbrMDFe1.Configuracoes.Geral.VersaoDF := ve300; (informo a versão do mdfe em tempo de execução dessa forma)

             passando os dados do seguro como segue: 

with ACBrMDFe1.Manifestos.Add.MDFe do
  begin
    seg.Add.respSeg := rsEmitente;

    seg.Add.xSeg  := copy(trim(segnome), 1, 30);
    seg.Add.nApol := copy(trim(segapolice), 1, 20);
    seg.Add.nAver := segaverba;
  end;

           na validação do arquivo xml ocorre o seguinte erro: falha na validação do modal do manifesto:0

           vários campos deram erro de conteudo invalido ou falta de informação.(arquivo em anexo)

Está faltando alguma parâmetro que devo informar?

Por favor se vc puder me ajudar ou alguém souber onde estou errando fico grato.

 

      

 

 

error mdfe enviando sefaz.jpg

error mdfe informando seguro.jpg

  • Moderadores
Postado
2 horas atrás, jairobernardesjunior disse:

with ACBrMDFe1.Manifestos.Add.MDFe do

Com este comando (Manifestos.Add) você está adicionando um novo manifesto no componente e preenchendo nele apenas os dados do seguro.

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

Projeto ACBr

 

 

Postado

fiz como vc disse e agora está gerando 4 informações do seg, veja o arquivo xml (anexo):


-<infDoc>


-<infMunDescarga>

<cMunDescarga>5209952</cMunDescarga>

<xMunDescarga>INDIARA</xMunDescarga>


-<infCTe>

<chCTe>52161119428052000191570010000012061000719401</chCTe>


-<infUnidTransp>

<tpUnidTransp>1</tpUnidTransp>

<idUnidTransp>ABW1301</idUnidTransp>


-<lacUnidTransp>

<nLacre>000</nLacre>

</lacUnidTransp>


-<infUnidCarga>

<tpUnidCarga>4</tpUnidCarga>

<idUnidCarga>ABW1301</idUnidCarga>


-<lacUnidCarga>

<nLacre>000</nLacre>

</lacUnidCarga>

<qtdRat>1.00</qtdRat>

</infUnidCarga>

<qtdRat>1.00</qtdRat>

</infUnidTransp>

</infCTe>

</infMunDescarga>

</infDoc>


-<seg>


-<infResp>

<respSeg>1</respSeg>

<CNPJ>00000000000000</CNPJ>

</infResp>

</seg>


-<seg>


-<infResp>

<respSeg>1</respSeg>

<CNPJ>00000000000000</CNPJ>

</infResp>


-<infSeg>

<xSeg>Porto Seguro</xSeg>

<CNPJ/>

</infSeg>

</seg>


-<seg>


-<infResp>

<respSeg>1</respSeg>

<CNPJ>00000000000000</CNPJ>

</infResp>

<nApol>5400027522</nApol>

</seg>


-<seg>


-<infResp>

<respSeg>1</respSeg>

<CNPJ>00000000000000</CNPJ>

</infResp>

<nAver>000000000000000</nAver>

</seg>

52170219428052000191580010000000951000000017-mdfe.xml

Este é meu codigo que gera o xml:

 with ACBrMDFe1.Manifestos.Add.MDFe do
  begin
   //
   // Dados de Identificação do MDF-e
   //

 

//aqui está os dados do seguro

//*********************************************************************************************************
   seg.Add.respSeg := rsEmitente;

   seg.Add.xSeg  := copy(trim(segnome), 1, 30);
   seg.Add.nApol := copy(trim(segapolice), 1, 20);
   seg.Add.nAver := segaverba;

//*********************************************************************************************************

 

 

   Ide.cUF := CodUFEmpresa;

   // TpcnTipoAmbiente = (taProducao, taHomologacao);
   If Ambiente_SEFAZ = 'H' Then
     Ide.tpAmb := taHomologacao;
   If Ambiente_SEFAZ = 'P' Then
     Ide.tpAmb := taProducao;

   // TMDFeTpEmitente = ( teTransportadora, teTranspCargaPropria );
   If DBGrid1.SelectedRows.Count > 0 Then // CTe
      Ide.tpEmit  := teTransportadora;
   If DBGrid11.SelectedRows.Count > 0 Then // NFe
      Ide.tpEmit  := teTranspCargaPropria;

   Ide.modelo  := '58';
   Ide.serie   := QryMDFeSerie_Manifesto.Value;
   Ide.nMDF    := QryMDFeNRO_FORMULARIO_Manifesto.Value;
   Ide.cMDF    := 1; //Código Aleatório

   // TMDFeModal = ( moRodoviario, moAereo, moAquaviario, moFerroviario );
   Ide.modal   := moRodoviario;
   Ide.dhEmi   := Now;

   // TpcnTipoEmissao = (teNormal, teContingencia, teSCAN, teDPEC, teFSDA);
   if chkEmContingencia.Checked then
      Ide.tpEmis := teContingencia
   else
      Ide.tpEmis  := teNormal;

   // TpcnProcessoEmissao = (peAplicativoContribuinte, peAvulsaFisco, peAvulsaContribuinte, peContribuinteAplicativoFisco);
   Ide.procEmi := peAplicativoContribuinte;
   Ide.verProc := '1.00';

   If DBGrid1.SelectedRows.Count > 0 Then
      Begin
        Ide.UFIni   := QryNotasgl_unidade_federativa.AsString;
        Ide.UFFim   := QryNotasgl_unidade_federativa_1.AsString;
      End;

   If DBGrid11.SelectedRows.Count > 0 Then
      Begin
        Ide.UFIni   := QryCidadeOrigsgl_unidade_federativa.AsString;
        Ide.UFFim   := QryNotasgl_unidade_federativa_1.AsString;
      End;

   //
   // Dados do Emitente
   //
   Emit.CNPJ  := FormatCurr('00000000',NumBaseCNPJEmpresa) + FormatCurr('0000',FilialEmpresa) + FormatCurr('00',DVCNPJEmpresa);
   Emit.IE    := IEEmpresa;
   Emit.xNome := RazaoSocialEmpresa;
   Emit.xFant := NomFantasiaEmpresa;

   Emit.EnderEmit.xLgr    := EnderecoEmpresa;
   Emit.EnderEmit.nro     := NumLogradouroEmpresa;
   Emit.EnderEmit.xCpl    := '';
   Emit.EnderEmit.xBairro := NomeBairroEmpresa;
   Emit.EnderEmit.cMun    := CodCidadeIBGE;
   Emit.EnderEmit.xMun    := NomeCidadeEmpresa;
   Emit.EnderEmit.CEP     := strTOint(NumCepEmpresa + FormatCurr('000', strTOint(NumSufixoCepEmpresa)));
   Emit.EnderEmit.UF      := UFOrigem;
   Emit.EnderEmit.fone    := FormatCurr('00', DDDFoneEmpresa) + NumFoneEmpresa;
   Emit.enderEmit.email   := EmailEmpresa;

// Veículos

   rodo.RNTRC := FormatCurr('00000000', strTOint(EP_Empresa));
   rodo.CIOT  := QryNotades_especie_volume.value;

   QryUltConjunto.Close;
   QryUltConjunto.ParamByName('placa').Value := QryNotaNum_Placa_Veiculo_Transp.AsString;
   QryUltConjunto.ParamByName('empresa').Value := CodEmpresa;
   QryUltConjunto.Open;

   QryVeicConjunto.Close;
   QryVeicConjunto.ParamByName('placa').Value := QryNotaNum_Placa_Veiculo_Transp.AsString;
   QryVeicConjunto.ParamByName('empresa').Value := CodEmpresa;
   QryVeicConjunto.ParamByName('seq').Value := QryUltConjuntoseq_conjunto.Value;
   QryVeicConjunto.Open;
   While not QryVeicConjunto.eof do
       Begin

           If QryVeicConjuntotipocomponente.Value = 'TRACAO' Then
              Begin
                 rodo.veicTracao.cInt  := '001';
                 rodo.veicTracao.placa := QryVeicConjuntoveiculo_placa.AsString;
                 rodo.veicTracao.tara  := QryVeicConjuntoVeiculo_tara.Value;
                 rodo.veicTracao.capKG := QryVeicConjuntoVeiculo_capacidade_kg.Value;
                 rodo.veicTracao.capM3 := QryVeicConjuntoVeiculo_capacidade_m3.Value;
                 rodo.veicTracao.UF    := QryVeicConjuntosgl_unidade_federativa.Value;
                 rodo.veicTracao.tpRod := trToco;
                 //Tipo Rodado
                 If QryVeicConjuntoVeiculo_tipo_rodado.Value = 1 Then
                    rodo.veicTracao.tpRod := trTruck;
                 If QryVeicConjuntoVeiculo_tipo_rodado.Value = 2 Then
                    rodo.veicTracao.tpRod := trToco;
                 If QryVeicConjuntoVeiculo_tipo_rodado.Value = 3 Then
                    rodo.veicTracao.tpRod := trCavaloMecanico;
                 If QryVeicConjuntoVeiculo_tipo_rodado.Value = 4 Then
                    rodo.veicTracao.tpRod := trVAN;
                 If QryVeicConjuntoVeiculo_tipo_rodado.Value = 5 Then
                    rodo.veicTracao.tpRod := trUtilitario;
                 If QryVeicConjuntoVeiculo_tipo_rodado.Value = 99 Then
                    rodo.veicTracao.tpRod := trOutros;
//                 rodo.veicTracao.prop.RNTRC := QryVeicConjuntoVeiculo_antt.Value;
//                 rodo.veicTracao.prop.xNome := QryVeicConjuntonom_ident.Value;

                 with rodo.veicTracao.condutor.Add do
                    begin
                       xNome := QryNotaNomTransp.AsString;
                       CPF   := SoNumero(QryNotaCPFCNPJTransp.AsString);
                    end;
              End
           Else // Reboque
              Begin
                 with rodo.veicReboque.Add do
                    begin
                       cInt  := '002';
                       placa := QryVeicConjuntoveiculo_placa.AsString;
                       tara  := QryVeicConjuntoVeiculo_tara.Value;
                       capKG := QryVeicConjuntoVeiculo_capacidade_kg.Value;
                       capM3 := QryVeicConjuntoVeiculo_capacidade_m3.Value;
                       UF    := QryVeicConjuntosgl_unidade_federativa.Value;
                       tpCar  := tcAberta;
                       //Tipo Carroceria
                       If QryVeicConjuntoVeiculo_carroceria.Value = 1 Then
                          tpCar  := tcAberta;
                       If QryVeicConjuntoVeiculo_carroceria.Value = 2 Then
                          tpCar  := tcFechada;
                       If QryVeicConjuntoVeiculo_carroceria.Value = 3 Then
                          tpCar  := tcGraneleira;
                       If QryVeicConjuntoVeiculo_carroceria.Value = 4 Then
                          tpCar  := tcPortaContainer;
                       If QryVeicConjuntoVeiculo_carroceria.Value = 5 Then
                          tpCar  := tcSider;
//                       prop.RNTRC := QryVeicConjuntoVeiculo_antt.Value;
//                       prop.xNome := QryVeicConjuntonom_ident.Value;
                    end;
              End;
          QryVeicConjunto.next;
       End;
    QryVeicConjunto.Close;

   //Vale Pedágio
   If ((Length(Cpo_PedagioForn.Text) > 0) And (Length(Cpo_PedagioPagador.Text) > 0) And (Length(Cpo_PedagioComprov.Text) > 0)) Then
      Begin
         With rodo.valePed.disp.Add do
           Begin
              CNPJForn := Cpo_PedagioForn.Text;
              CNPJPg   := Cpo_PedagioPagador.Text;
              nCompra  := Cpo_PedagioComprov.Text;
           End;
      End;

 ValorTotalCarga := 0;
 QtdeTotalCarga := QtdeTotalCarga + PBruto;
 If DBGrid1.SelectedRows.Count > 0 Then
    Begin
       i1 := 0; // Contador Linhas selecionadas no Grid
       For i := 0 to (DBGrid1.SelectedRows.Count - 1) do
         begin
           i1 := i1 + 1;
           QryMDFe_CTe.Insert;

           DBGrid1.DataSource.DataSet.GotoBookmark(pointer(DBGrid1.SelectedRows.Items));

           QryMDFe_CTeNum_MDFe.Value := QryMDFeNum_MDFe.Value;
           QryMDFe_CTeCod_Empresa_Grupo.Value := QryMDFeCod_Empresa_Grupo.Value;
           QryMDFe_CTeNum_Nota_Fiscal.Value := QryNotaNum_Nota_Fiscal.Value;

           try
             QryMDFe_CTe.post;
           except
             QryMDFe_CTe.cancel;
             abort;
           end;

           ValorTotalCarga := ValorTotalCarga + QryNotaCTE_Val_Nota_Fiscal.Value;
           NumPlacaVeiculo := QryNotaNum_Placa_Veiculo_Transp.AsString;

           i2 := 0;
           i3 := 0; // Flag Existe cod. município
           For i2 := 0 to (i1-1) do
             begin
               If CodMunCarrega[i2] = QryNotaCodCidRem.Value Then
                  i3 := 9; // Existe Cod. Município
             end;
           If i3 = 0 Then
              Begin
                 with Ide.infMunCarrega.Add do
                  begin
                   cMunCarrega := QryNotaCodCidRem.Value;
                   xMunCarrega := QryNotaNomCidRem.AsString;
                   CodMunCarrega[i1] := QryNotaCodCidRem.Value;
                  end;
              end;
         end;
    End;
 If DBGrid11.SelectedRows.Count > 0 Then
    Begin
       i1 := 0; // Contador Linhas selecionadas no Grid
       For i := 0 to (DBGrid11.SelectedRows.Count - 1) do
         begin
           i1 := i1 + 1;
           QryMDFe_CTe.Insert;

           DBGrid11.DataSource.DataSet.GotoBookmark(pointer(DBGrid11.SelectedRows.Items));

           QryMDFe_CTeNum_MDFe.Value := QryMDFeNum_MDFe.Value;
           QryMDFe_CTeCod_Empresa_Grupo.Value := QryMDFeCod_Empresa_Grupo.Value;
           QryMDFe_CTeNum_Nota_Fiscal.Value := QryNotaNum_Nota_Fiscal.Value;

           try
             QryMDFe_CTe.post;
           except
             QryMDFe_CTe.cancel;
             abort;
           end;

           ValorTotalCarga := ValorTotalCarga + QryNotaval_vcto1.Value;
           NumPlacaVeiculo := QryNotaNum_Placa_Veiculo_Transp.AsString;

           i2 := 0;
           i3 := 0; // Flag Existe cod. município
           For i2 := 0 to (i1-1) do
             begin
               If CodMunCarrega[i2] = QryCidadeOrigcod_cidade.Value Then
                  i3 := 9; // Existe Cod. Município
             end;
           If i3 = 0 Then
              Begin
                 with Ide.infMunCarrega.Add do
                  begin
                   cMunCarrega := QryCidadeOrigcod_cidade.Value;
                   xMunCarrega := QryCidadeOrignom_cidade.AsString;
                   CodMunCarrega[i1] := QryCidadeOrigcod_cidade.Value;
                  end;
              end;
         end;
    End;
 {with infDoc.infMunDescarga.Add do
  begin
     i1 := 0; // Contador Linhas selecionadas no Grid
     For i := 0 to (DBGrid1.SelectedRows.Count - 1) do
         begin
             i1 := i1 + 1;
             i2 := 0;
             i3 := 0; // Flag Existe cod. município
             For i2 := 0 to (i1-1) do
               begin
                 If CodMunDesCarrega[i2] = QryNotaCodCidDest.Value Then
                    i3 := 9; // Existe Cod. Município
               end;
             If i3 = 0 Then
                Begin
                   cMunDescarga := QryNotaCodCidDest.Value;
                   xMunDescarga := QryNotaNomCidDest.AsString;
                   CodMunDesCarrega[i2] := QryNotaCodCidDest.Value;
                End;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
             If Lst_ChavesSel.Items.Count > 0 Then
                Begin
                   For i4 := 0 to (Lst_ChavesSel.Items.Count - 1) do
                     Begin
                         with infCTe.Add do
                            begin
//                               chCTe := SoNumero(QryNotaChave_NFe.AsString);
                               chCTe := SoNumero(Lst_ChavesSel.Items.Strings[i4]);

                              // 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 := QryNotaNum_Placa_Veiculo_Transp.AsString;
                                with lacUnidTransp.Add do
                                 begin
                                  nLacre := '000';
                                 end;
                                // Informações das Unidades de carga (Containeres/ULD/Outros)
                                with infUnidCarga.Add do
                                 begin
                                  // TpcnUnidCarga  = ( ucContainer, ucULD, ucPallet, ucOutros );
                                  tpUnidCarga := ucOutros;
                                  idUnidCarga := QryNotaNum_Placa_Veiculo_Transp.AsString; //'AAA9999';
                                  with lacUnidCarga.Add do
                                   begin
                                    nLacre := '000';
                                   end;
                                  qtdRat := 1.0;
                                 end;
                                qtdRat := 1.0;
                               end;
                            end; // fim do with
                     End;
                End
             Else
                Begin
                   ShowMessage('Arquivos XML´s não selecionados.');
                   Exit;
                End;
         End;
  end;}
//NEW  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// with infDoc.infMunDescarga.Add do
//  begin
     If DBGrid1.SelectedRows.Count > 0 Then
        Begin
           with infDoc.infMunDescarga.Add do
            begin
               i1 := 0; // Contador Linhas selecionadas no Grid
               For i := 0 to (DBGrid1.SelectedRows.Count - 1) do
                   begin
                       i1 := i1 + 1;
                       i2 := 0;
                       i3 := 0; // Flag Existe cod. município
                       For i2 := 0 to (i1-1) do
                         begin
                           If CodMunDesCarrega[i2] = QryNotaCodCidDest.Value Then
                              i3 := 9; // Existe Cod. Município
                         end;
                       If i3 = 0 Then
                          Begin
                             cMunDescarga := QryNotaCodCidDest.Value;
                             xMunDescarga := QryNotaNomCidDest.AsString;
                             CodMunDesCarrega[i2] := QryNotaCodCidDest.Value;
                          End;
                   End;
               If Lst_ChavesSel.Items.Count > 0 Then
                  Begin
                     For i4 := 0 to (Lst_ChavesSel.Items.Count - 1) do
                       Begin
                           with infCTe.Add do
                              begin
                                 chCTe := SoNumero(Lst_ChavesSel.Items.Strings[i4]);

                                // 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 := NumPlacaVeiculo;
                                  with lacUnidTransp.Add do
                                   begin
                                    nLacre := '000';
                                   end;
                                  // Informações das Unidades de carga (Containeres/ULD/Outros)
                                  with infUnidCarga.Add do
                                   begin
                                    // TpcnUnidCarga  = ( ucContainer, ucULD, ucPallet, ucOutros );
                                    tpUnidCarga := ucOutros;
                                    idUnidCarga := NumPlacaVeiculo;
                                    with lacUnidCarga.Add do
                                     begin
                                      nLacre := '000';
                                     end;
                                    qtdRat := 1.0;
                                   end;
                                  qtdRat := 1.0;
                                 end;
                              end; // fim do with
                       End;
                  End
               Else
                  Begin
                     ShowMessage('Arquivos XML´s não selecionados.');
                     Exit;
                  End;
            End;
        End;


     If DBGrid11.SelectedRows.Count > 0 Then
        Begin
           with infDoc.infMunDescarga.Add do
            begin
               i1 := 0; // Contador Linhas selecionadas no Grid
               For i := 0 to (DBGrid11.SelectedRows.Count - 1) do
                   begin
                       i1 := i1 + 1;
                       i2 := 0;
                       i3 := 0; // Flag Existe cod. município
                       For i2 := 0 to (i1-1) do
                         begin
                           If CodMunDesCarrega[i2] = QryNotaCodCidDest.Value Then
                              i3 := 9; // Existe Cod. Município
                         end;
                       If i3 = 0 Then
                          Begin
                             cMunDescarga := QryNotaCodCidDest.Value;
                             xMunDescarga := QryNotaNomCidDest.AsString;
                             CodMunDesCarrega[i2] := QryNotaCodCidDest.Value;
                          End;
                   End;
               If Lst_ChavesSel.Items.Count > 0 Then
                  Begin
                     For i4 := 0 to (Lst_ChavesSel.Items.Count - 1) do
                       Begin
                           with infNFe.Add do
                              begin
                                 chNFe := SoNumero(Lst_ChavesSel.Items.Strings[i4]);

                                // 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 := NumPlacaVeiculo;
                                  with lacUnidTransp.Add do
                                   begin
                                    nLacre := '000';
                                   end;
                                  // Informações das Unidades de carga (Containeres/ULD/Outros)
                                  with infUnidCarga.Add do
                                   begin
                                    // TpcnUnidCarga  = ( ucContainer, ucULD, ucPallet, ucOutros );
                                    tpUnidCarga := ucOutros;
                                    idUnidCarga := NumPlacaVeiculo;
                                    with lacUnidCarga.Add do
                                     begin
                                      nLacre := '000';
                                     end;
                                    qtdRat := 1.0;
                                   end;
                                  qtdRat := 1.0;
                                 end;
                              end; // fim do with
                       End;
                  End
               Else
                  Begin
                     ShowMessage('Arquivos XML´s não selecionados.');
                     Exit;
                  End;
            End;
        End;
{     If DBGrid11.SelectedRows.Count > 0 Then
        Begin
           with infDoc.infMunDescarga.Add do
            begin
               i1 := 0; // Contador Linhas selecionadas no Grid
               For i := 0 to (DBGrid11.SelectedRows.Count - 1) do
                   begin
                       i1 := i1 + 1;
                       i2 := 0;
                       i3 := 0; // Flag Existe cod. município
                       For i2 := 0 to (i1-1) do
                         begin
                           If CodMunDesCarrega[i2] = QryNotaCodCidDest.Value Then
                              i3 := 9; // Existe Cod. Município
                         end;
                       If i3 = 0 Then
                          Begin
                             cMunDescarga := QryNotaCodCidDest.Value;
                             xMunDescarga := QryNotaNomCidDest.AsString;
                             CodMunDesCarrega[i2] := QryNotaCodCidDest.Value;
                             If Lst_ChavesSel.Items.Count > 0 Then
                                Begin
                                   For i4 := 0 to (Lst_ChavesSel.Items.Count - 1) do
                                     Begin
                                         with infNFe.Add do
                                            begin
                                               chNFe := SoNumero(Lst_ChavesSel.Items.Strings[i4]);
                                            end; // fim do with
                                     End;
                                End
                             Else
                                Begin
                                   ShowMessage('Arquivos XML´s não selecionados.');
                                   Exit;
                                End;
                          End;
                   End;
            End;
        End;}
//  end;

 //UF INTERMEDIARIAS
 If Length(Cpo_UF01.Text) = 2 Then
    Begin
       with Ide.infPercurso.Add do
          begin
           UFPer  := Cpo_UF01.Text;
          end;
    End;

 If Length(Cpo_UF02.Text) = 2 Then
    Begin
       with Ide.infPercurso.Add do
          begin
           UFPer  := Cpo_UF02.Text;
          end;
    End;

 If Length(Cpo_UF03.Text) = 2 Then
    Begin
       with Ide.infPercurso.Add do
          begin
           UFPer  := Cpo_UF03.Text;
          end;
    End;

 If Length(Cpo_UF04.Text) = 2 Then
    Begin
       with Ide.infPercurso.Add do
          begin
           UFPer  := Cpo_UF04.Text;
          end;
    End;

 If DBGrid1.SelectedRows.Count > 0 Then
    Begin
      QNfeCTe := DBGrid1.SelectedRows.Count;
      tot.qCTe := QNfeCTe;
    End;
 If DBGrid11.SelectedRows.Count > 0 Then
    Begin
      QNfeCTe := DBGrid11.SelectedRows.Count;
      tot.qNFe := QNfeCTe;
    End;
 tot.qCT  := 0;
 tot.vCarga := ValorTotalCarga;
   // UnidMed = (uM3,uKG, uTON, uUNIDADE, uLITROS);
 tot.cUnid  :=  uTon;
 tot.qCarga := QtdeTotalCarga;

   with lacres.Add do
    begin
     nLacre := '0';
    end;

   infAdic.infCpl     := ' ';
   infAdic.infAdFisco := '';
  end;

Postado

Pessoal, não sei se vocês ainda estão com duvidas, mas pelo que conseguimos constatar, por enquanto está sendo obrigátório o preenchimento dos campos da seguradora sempre que for fazer um mdfe e que o tipo do emissor for 1 - prestador do serviço de transportes. No layout 3.0.

Abaixo o que a assessoria contábil passou:
Verifique no campo \"Tipo de emitente\" se estiver informado a operação \"1 - Prestador de serviço de transporte e informado grupo de seguro da carga será rejeitado independente do responsável pelo seguro.

Conforme a regra para o erro \"699\":

Rejeitar se alguma informação do grupo seguro não estiver
informada

OBS: Verificar preenchimento de CNPJ/CPF, infSeg, nApol e nAver
Vale ressaltar

Marina: caso informe "Tipo de emitente\" se estiver informado a operação \"1 - Prestador de serviço de transporte e não informe grupo de seguro da carga a receita retorna erro. É necessário informar os campos CNPJ/CPF, infSEG, nApol e nAver sempre que for modal rodoviário?

De acordo com as orientações do Manual MDF-e Versão 3.0:

a) Se modal Rodoviário e Tipo Emitente for igual a Prestador de Serviço
de Transporte (tpEmit=1):

-Rejeitar se o grupo de informações do seguro da carga não estiver
informado

B) Se modal Rodoviário e Tipo Emitente for igual a Prestador de Serviço
de Transporte (tpEmit=1) e informado grupo de seguro da carga:

-Rejeitar se alguma informação do grupo seguro não estiver
informada

OBS: Verificar preenchimento de CNPJ/CPF, infSeg, nApol e nAver

Portanto, sempre que for rodoviário e tipo de emitente prestador de serviço de transporte será necessário o preenchimento dessas informações.

 

Nos nossos clientes estamos usando ainda a versão 1.0, que não torna obrigatório. Vocês acham que tem possibilidade dessa regra mudar?

  • Curtir 1
  • 1 mês depois ...
Postado

Aparentemente o manual está inconsistente neste ponto.
Os dados da seguradora são sempre obrigatórios. O ponto da dúvida é o CNPJ do responsável pelo seguro, que segundo a imagem 2 é opcional para o caso de ser o próprio emitente do MDF-e. Nos testes que fiz sem informar, deu rejeição, o que leva a assumir que vale o que está na imagem 1.

Screenshot_1.jpg

Screenshot_2.jpg

  • Moderadores
Postado

Boa noite Aristide

O problema é que devemos seguir o manual ou enviar notificações ao sefaz para a devida correção dos mesmos

11 minutos atrás, arisland disse:

Aparentemente o manual está inconsistente neste ponto.
Os dados da seguradora são sempre obrigatórios. O ponto da dúvida é o CNPJ do responsável pelo seguro, que segundo a imagem 2 é opcional para o caso de ser o próprio emitente do MDF-e. Nos testes que fiz sem informar, deu rejeição, o que leva a assumir que vale o que está na imagem 1.

Screenshot_1.jpg

Screenshot_2.jpg

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado

Neste caso, de fato é um erro, pois diz que é obrigatório apenas se o tipo do responsável for 2, mas também é obrigatório para tipo 1, como mostra a validação G84.

  • Consultores
Postado

Boa noite,

Desculpe não concordo, pois a regra diz SE o Modal for E Tipo Emitente for E informado o grupo, rejeitar se alguma informação do grupo não for informada.

Temos 3 condições que devem ser satisfeitas para que as informações do grupo seguro sejam validadas.

No manual esta claro que todo o grupo <seg> é opcional.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Bom dia, Italo.

Entendo que o termo opcional usado no manual não é o mais adequado pra situação, uma vez que depende do tipo do emitente. É opcional do ponto de vista do schema, mas não da regra do negócio.
 

Em 2017-4-7 at 21:53, Italo Jurisato Junior disse:

Boa noite,

Desculpe não concordo, pois a regra diz SE o Modal for E Tipo Emitente for E informado o grupo, rejeitar se alguma informação do grupo não for informada.

Temos 3 condições que devem ser satisfeitas para que as informações do grupo seguro sejam validadas.

No manual esta claro que todo o grupo <seg> é opcional.

 

Postado
9 horas atrás, agenteprg disse:

oi pessoal

como faço para as tag's  tara,peso,m3 do mdfe aceitar virgula ex: 8,500, obg.

 

Boa tarde!

O separador decimal deve ser o ponto e não deve ser informado separador de milhar.
Consulte as expressões regulares para o conteúdo permitido em cada campo.

Postado
4 horas atrás, arisland disse:

Boa tarde!

O separador decimal deve ser o ponto e não deve ser informado separador de milhar.
Consulte as expressões regulares para o conteúdo permitido em cada campo.

valeu obrigado !

  • 2 semanas depois ...
Postado

Boa noite,

Estou com o mesmo problema aqui, quando selecionado Tipo de Emitente como Prestador de serviço de transporte e modal rodoviário mesmo selecionando que o responsável pelo seguro é o emitente do MDF-e ele esta retornando a mensagem. 

Já testei de todas as formas só passa se tiver preenchido os campos caso contrario retorna mensagem dizendo que é preciso informar o grupo seguro.

Estou emitido no estado do Paraná.

Alguém conseguiu resolver isso? sera que teremos que informar sempre algum valor nos campos?

 

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