Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Bom dia senhores.

 

Mais uma vez venho solicitar a vossa ajuda.

 

Quando estou gerando o arquivo do MDF-e, os CT-e estão preenchendo as tags,

mas as NF-e não estão sendo preenchidas. Já debuguei o programa e a rotina

passa também pelas NF-e. 

 

Estou enviando anexo a tela do Sistema e Aquivo XML.

 

Conto com vossa colaboração.

 

Tenham todos um ótimo dia.

 

Grato.

 

 

 

Código DELLPHI.

 

procedure TMFD.GerarMDFe(NumMDFe: String);
var
   iQtde: Integer;
   qtUndTransp, qtUndCarga: Integer;
begin
   with DM.ACBrMDFe.Manifestos.Add.MDFe do
   begin
      //
      // Dados de Identificação do MDF-e
      //
      with Ide do
      begin
         cUF            := dm.tbConfiguracaoCODIGO_UF.AsInteger;
 
         //dm.tbUF_Percurso.First;
         UFIni := dm.iboFilialUF.AsString;
         UFFim := dm.iboFilialUF.AsString;
 
         // Percurso.
         if not dm.tbUF_Percurso.IsEmpty then
         begin
            with Ide.infPercurso.Add do
            begin
 
 
               UFIni := dm.iboFilialUF.AsString;
               UFFim := dm.iboFilialUF.AsString;
 
               dm.tbUF_Percurso.First;
               while not dm.tbUF_Percurso.Eof do
               begin
                  UFPer := dm.tbUF_PercursoUF.AsString;
                  //
                  dm.tbUF_Percurso.Next;
               end;
            end;
         end;
 
         // TpcnTipoAmbiente = (taProducao, taHomologacao);
         case DM.tbConfiguracaoAMBIENTE.Value of
            1:tpAmb     := taProducao;
            2:tpAmb     := taHomologacao;
         end;
 
         // TMDFeTpEmitente = ( teTransportadora, teTranspCargaPropria );
         case DM.tbMDFE_CorpoTIPOEMITENTE.Value of
            1:tpEmit    := teTransportadora;
            2:tpEmit    := teTranspCargaPropria;
         end;
         modelo         := dm.tbConfiguracaoMODELO.Text;
         serie          := dm.tbConfiguracaoSERIE.AsInteger;
         nMDF           := DM.tbMDFE_CorpoNUMEROMDFE.AsInteger;
         cMDF           := DM.tbMDFE_CorpoCODIGOMDFE.AsInteger;  // Código Aleatório
         cDV            := 0;
 
         // TMDFeModal = ( moRodoviario, moAereo, moAquaviario, moFerroviario );
         case DM.tbMDFE_CorpoMODAL.Value of
            1:modal     := moRodoviario;
            2:modal     := moAereo;
            3:modal     := moAquaviario;
            4:modal     := moFerroviario;
         end;
         dhEmi          := dm.tbMDFEDATA.AsDateTime;
 
         // TpcnTipoEmissao = (teNormal, teContingencia, teSCAN, teDPEC, teFSDA);
         case DM.tbMDFE_CorpoTIPOEMISSAO.Value of
            1:tpEmis    := teNormal;
            2:tpEmis    := teContingencia;
            3:tpEmis    := teSCAN;
            4:tpEmis    := teDPEC;
            5:tpEmis    := teFSDA;
         end;
 
         // TpcnTipoEmissao = (teNormal, teContingencia, teSCAN, teDPEC, teFSDA);
         case DM.tbMDFE_CorpoTIPOEMISSAO.Value of
            1:tpEmis    := teNormal;
            2:tpEmis    := teContingencia;
            3:tpEmis    := teSCAN;
            4:tpEmis    := teDPEC;
            5:tpEmis    := teFSDA;
         end;
 
         // TpcnProcessoEmissao = (peAplicativoContribuinte, peAvulsaFisco, peAvulsaContribuinte, peContribuinteAplicativoFisco);
         case DM.tbMDFE_CorpoPROCESSOEMISSAO.Value of
            1:procEmi   := peAplicativoContribuinte;
            2:procEmi   := peAvulsaFisco;
            3:procEmi   := peAvulsaContribuinte;
            4:procEmi   := peContribuinteAplicativoFisco;
         end;
         verProc        := DM.tbConfiguracaoVERSAO_PROCESSO.Value;
 
         // Carregamento.
         with Ide.infMunCarrega.Add do
         begin
            cMunCarrega := DM.tbConfiguracaoCODIGO_MUNICIPIO_CARREGAMENTO.AsInteger;
            xMunCarrega := DM.tbConfiguracaoMUNICIPIO_CARREGAMENTO.AsString;
         end;
 
      end;
      //
      // Dados do Emitente
      //
      with emit do
      begin
         CNPJ        := DM.iboFilialCNPJ.Value;
         IE          := DM.iboFilialIE.Value;
         xNome       := DM.iboFilialRAZAOSOCIAL.Value;
         xFant       := DM.iboFilialNOMEFANTASIA.Value;
 
         // Endereço do emitente.
         with enderEmit do
         begin
            xLgr     := DM.iboFilialENDERECO.Value;
            nro      := DM.iboFilialNUMEROENDERECO.Value;
            xCpl     := DM.iboFilialCOMPLEMENTO.Value;
            xBairro  := DM.iboFilialBAIRRO.Value;
            cMun     := DM.iboFilialCODIGOCIDADE_RECEITAFEDERAL.AsInteger;
            xMun     := DM.iboFilialCIDADE.Value;
            CEP      := DM.iboFilialCEP.AsInteger;
            UF       := DM.iboFilialUF.Value;
            fone     := DM.FilterChars(DM.iboFilialFONECOMERCIAL.AsString, ['0'..'9']);
            email    := DM.iboFilialEMAIL.Value;
         end;
      end;
 
      // Rodagem - Informação.
      with rodo do
      begin
         RNTRC          := DM.tbMDFE_VeiculoRNTRC.AsString;
         CIOT           := DM.tbMDFE_VeiculoCIOT.AsString;
 
         // Tração.
         with veicTracao do
         begin
            cInt        := DM.tbMDFE_VeiculoCODIGO_INTERNO_VEICULO.AsString;
            placa       := DM.tbMDFE_VeiculoPLACA.AsString;
            RENAVAM     := DM.tbMDFE_VeiculoRENAVAN.AsString;
            tara        := DM.tbMDFE_VeiculoTARA.AsInteger;
            capKG       := DM.tbMDFE_VeiculoCAPACIDADE.AsInteger;
            capM3       := DM.tbMDFE_VeiculoCAPACIDADE_METRO_CUBICO.AsInteger;
            UF          := dm.tbMDFE_VeiculoUF_VEICULO.AsString;
 
            // Condutor.
            with rodo.veicTracao.condutor.Add do
            begin
               xNome := DM.tbMDFE_CorpoCONDUTOR.AsString;
               CPF   := DM.tbMDFE_CorpoCPF_CONDUTOR.AsString;
            end;
 
            // Carroceria.
            case DM.tbMDFE_VeiculoTIPO_CARROCERIA.Value of
               1:tpCar := tcNaoAplicavel;
               2:tpCar := tcFechada;
               3:tpCar := tcGraneleira;
               4:tpCar := tcPortaContainer;
               5:tpCar := tcSider;
            end;
 
            // Rodado.
            case DM.tbMDFE_VeiculoTIPO_RODADO.Value of
               1:tpRod := trTruck;
               2:tpRod := trToco;
               3:tpRod := trCavaloMecanico;
               4:tpRod := trVAN;
               5:tpRod := trUtilitario;
               6:tpRod := trOutros;
            end;
         end;
      end;
 
      // Descarregamento.
      DM.tbMDFE_MunicipioDescarregamento.First;
      while not DM.tbMDFE_MunicipioDescarregamento.Eof do
      begin
         with infDoc do
         begin
            // Município de descarga.
            with infMunDescarga.Add do
            begin
               cMunDescarga := DM.tbMDFE_MunicipioDescarregamentoCODIGO_MUNICIPIO.Value;
               xMunDescarga := dm.tbMDFE_MunicipioDescarregamentoCIDADE.AsString;
 
               //-----------------------------------------------------------------------------------------------------
               // CTE.
               dm.tbMDFE_CTE.First;
               while not dm.tbMDFE_CTE.Eof do
               begin
                  with infCTe.Add do
                  begin
                     chCTe := dm.tbMDFE_CTECHAVE_CTE.AsString;
 
                     // Informações das Unidades de Transporte (Carreta/Reboque/Vagão)
                     with infUnidTransp.Add do
                     begin
                        //TpcnUnidTransp = ( utRodoTracao, utRodoReboque, utNavio, utBalsa, utAeronave, utVagao, utOutros );
                        case DM.tbMDFE_CorpoUNIDADE_TRANSPORTE.Value of
                           1:tpUnidTransp := utRodoTracao;
                           2:tpUnidTransp := utRodoReboque;
                           3:tpUnidTransp := utNavio;
                           4:tpUnidTransp := utBalsa;
                           5:tpUnidTransp := utAeronave;
                           7:tpUnidTransp := utVagao;
                           8:tpUnidTransp := utOutros;
                        end;
                        idUnidTransp := 'CAMINHAO';
 
                        // Informações das Unidades de carga (Containeres/ULD/Outros)
                        with infUnidCarga.Add do
                        begin
                           // TpcnUnidCarga  = ( ucContainer, ucULD, ucPallet, ucOutros );
                           tpUnidCarga := ucOutros;
                           idUnidCarga := 'VOLUMES';
 
                           qtdRat := 1.0;
                        end;
                        qtdRat := 1.0;
                     end;
                  end; // fim do with
 
                  dm.tbMDFE_CTE.Next;
               end;
 
               //-----------------------------------------------------------------------------------------------------
               // NFE.
               dm.tbMDFE_NFE.First;
               while not dm.tbMDFE_NFE.Eof do
               begin
                  with infNFe.Add do
                  begin
                     chNFe := dm.tbMDFE_NFECHAVE_NFE.AsString;
 
                     // Informações das Unidades de Transporte (Carreta/Reboque/Vagão)
                     with infUnidTransp.Add do
                     begin
                        //TpcnUnidTransp = ( utRodoTracao, utRodoReboque, utNavio, utBalsa, utAeronave, utVagao, utOutros );
                        case DM.tbMDFE_CorpoUNIDADE_TRANSPORTE.Value of
                           1:tpUnidTransp := utRodoTracao;
                           2:tpUnidTransp := utRodoReboque;
                           3:tpUnidTransp := utNavio;
                           4:tpUnidTransp := utBalsa;
                           5:tpUnidTransp := utAeronave;
                           7:tpUnidTransp := utVagao;
                           8:tpUnidTransp := utOutros;
                        end;
                        idUnidTransp := 'CAMINHAO';
 
                        // Informações das Unidades de carga (Containeres/ULD/Outros)
                        with infUnidCarga.Add do
                        begin
                           // TpcnUnidCarga  = ( ucContainer, ucULD, ucPallet, ucOutros );
                           tpUnidCarga := ucOutros;
                           idUnidCarga := 'VALUMES';
 
                           qtdRat := 1.0;
                        end;
 
                        qtdRat := 1.0;
                     end;
                  end; // fim do with
                  dm.tbMDFE_NFE.Next;
               end;
            end;
         end;
         DM.tbMDFE_MunicipioDescarregamento.Next;
      end;
 
      tot.qCTe := dm.tbMDFEQTDE_CTE.AsInteger;
      tot.qNFe := 1;
      //tot.qNFe := dm.tbMDFEQTDE_NFE.AsInteger;
      tot.vCarga := dm.tbMDFEVALOR_TOTAL_MERCADORIA.AsCurrency;
      // UnidMed = (uM3,uKG, uTON, uUNIDADE, uLITROS);
      tot.cUnid  :=  uKG;
      tot.qCarga := dm.tbMDFEPESO_BRUTO_TRANSPORTADO.AsInteger;
 
      infAdic.infCpl     := DM.tbConfiguracaoINFORMACAO_COMPLEMENTAR.AsString;
      infAdic.infAdFisco := '';
   end;
 
end;
 

 

41140810626914000116580010000000041000002356-mdfe.xml

post-13081-0-14030100-1408535100_thumb.p

  • Consultores
Postado

Bom dia,

 

Primeiramente, peço para que não inclua no texto da sua postagem o código fonte, post ele como anexo como você fez com o XML.

 

Desta forma a sua postagem fica mais curta.

 

Respondendo a sua pergunta:

 

Um MDF-e só pode contem CT-e ou NF-e não pode ter ambos modelos de documentos em um mesmo MDF-e.

 

Normalmente um MDF-e emitido por uma transportadora só vai constar CT-e e ou CT (conhecimento de transporte comum de papel);

 

Por outro lado uma empresa que realiza o próprio transporte de suas mercadorias vendidas em seu MDF-e vai constar somente as NF-e ou NF (nota fiscal comum de papel) caso esta ainda não esteja obrigada a emitir a NF-e.

  • Curtir 4
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

  • 1 mês depois ...
  • 4 anos depois...
  • Consultores
Postado

Bom dia Joveci,

O MDF-e pode relacionar NFe ou CTe, se o tipo de emitente for transportador só vai acrescentar no XML os CT-e informados.

Por outro lado se você informar que o tipo de emitente é transportador de carga própria o componente só vai acrescentar no XML as NF-e informadas.

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

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