Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Ola a todos,

No manual do ACBrMonitor Plus não consta a sintaxe com os campos a preencher do comando MDFe.CriarMDFe, por exemplo!

Onde posso encontrar?

Janio

Postado

Beleza, Obrigado!

Os arquivos ini do topico mencionado não são validos ou são modelos genéricos.

Preciso de um arquivo ENT.TXT valido para que possa servir de modelo para mim, tendo em vista que o que estou gerando aqui está dando trocentos erros.

Alguém pode disponibilizar?

Janio

Postado

Juliomar,

O comando MDFe.MDFetoTxt("C:\harbour32\sistemas\SysLoja\mdfe.xml", "mdfeTXT.txt") gerou um TXT com o mesmo conteúdo do xml, e não em formato INI. Reinstalei a ultima versão do ACBrNfeMonitor (0.9.05.2) que eu tinha aqui pra ver se o problema era com o PLUS, porem, deu o mesmo resultado!

AcbrMonitorPLUS 0.3.04.5

mdfeTXT.txt

mdfe.xml

Postado

Blza, Juliomar! Funcionou!

So to achando meio estranho pq alguns campos do xml não constam no INI! Os campos referentes ao proprietário do veículos, dados do motorista, etc, não constam no INI, por exemplo!

Queria so saber se isso eh normal ou eh algo a ser implementado!

 

acbr mdfe.png

Sai.txt

mdfe.xml

  • Membros Pro
Postado

Não estava implementado mesmo, fiz as alterações para a modalidade Rodoviario mas não fiz para as demais...

@Janio 

@Juliomar Marchetti

segue o código da procedure GerarMDFeINI se alguém puder dar uma olhada e subir para o SVN... hora que der implemento o resto..

function GerarMDFeIni( XML : WideString ) : WideString;
var
  I, j, y : Integer;
  sSecao : String;
  INIRec : TMemIniFile;
  IniMDFe : TStringList;
  LocMDFeR : TMDFeR;
begin
 INIRec := TMemIniFile.create( 'MDFe.ini' );
 FrmACBrMonitor.ACBrMDFe1.Manifestos.Clear;
 if FilesExists(XML) then
    FrmACBrMonitor.ACBrMDFe1.Manifestos.LoadFromFile(XML)
 else
  begin
    LocMDFeR := TMDFeR.Create(FrmACBrMonitor.ACBrMDFe1.Manifestos.Add.MDFe);
    try
       LocMDFeR.Leitor.Arquivo := ConvertStrRecived( XML );
       LocMDFeR.LerXml;
       FrmACBrMonitor.ACBrMDFe1.Manifestos.Items[0].XML := LocMDFeR.Leitor.Arquivo;
       FrmACBrMonitor.ACBrMDFe1.Manifestos.GerarMDFe;
    finally
       LocMDFeR.Free;
    end;
  end;

 with FrmACBrMonitor do
  begin
   try
      with ACBrMDFe1.Manifestos.Items[0].MDFe do
       begin
         INIRec.WriteInteger('ide', 'cUF', Ide.cUF);
         INIRec.WriteString( 'ide', 'tpEmit', TpEmitenteToStr(Ide.tpEmit));
         INIRec.WriteString( 'ide', 'mod', Ide.modelo);
         INIRec.WriteInteger('ide', 'serie', Ide.serie);
         INIRec.WriteInteger('ide', 'nMDF', Ide.nMDF);
         INIRec.WriteInteger('ide', 'cMDF', Ide.cMDF);
         INIRec.WriteString( 'ide', 'modal', ModalToStr(Ide.modal));
         INIRec.WriteString( 'ide', 'dhEmi', DateToStr(Ide.dhEmi));
         INIRec.WriteString( 'ide', 'tpEmis', TpEmisToStr(Ide.tpEmis));
         INIRec.WriteString( 'ide', 'procEmi', procEmiToStr(Ide.procEmi));
         INIRec.WriteString( 'ide', 'verProc', Ide.verProc);
         INIRec.WriteString( 'ide', 'UFIni', Ide.UFIni);
         INIRec.WriteString( 'ide', 'UFFim', Ide.UFFim);
         INIRec.WriteString( 'ide', 'dhIniViagem', DateToStr(Ide.dhIniViagem));

         for i := 0 to ide.infMunCarrega.Count -1 do
         begin
           sSecao := 'CARR' + IntToStrZero(I+1, 3);

           with ide.infMunCarrega.Items[i] do
           begin
             INIRec.WriteInteger(sSecao, 'cMunCarrega', cMunCarrega);
             INIRec.WriteString(sSecao, 'xMunCarrega', xMunCarrega);
           end;
         end;

         for i := 0 to ide.infPercurso.Count -1 do
         begin
           sSecao := 'PERC' + IntToStrZero(I+1, 3);

           with ide.infPercurso.Items[i] do
           begin
             INIRec.WriteString(sSecao, 'UFPer', UFPer);
           end;
         end;

         INIRec.WriteString('emit', 'CNPJ', Emit.CNPJ);
         INIRec.WriteString('emit', 'IE', Emit.IE);
         INIRec.WriteString('emit', 'xNome', Emit.xNome);
         INIRec.WriteString('emit', 'xFant', Emit.xFant);

         INIRec.WriteString( 'emit', 'xLgr', Emit.enderEmit.xLgr);
         INIRec.WriteString( 'emit', 'nro', Emit.enderEmit.nro);
         INIRec.WriteString( 'emit', 'xCpl', Emit.enderEmit.xCpl);
         INIRec.WriteString( 'emit', 'xBairro', Emit.enderEmit.xBairro);
         INIRec.WriteInteger('emit', 'cMun', Emit.enderEmit.cMun);
         INIRec.WriteString( 'emit', 'xMun', Emit.enderEmit.xMun);
         INIRec.WriteInteger('emit', 'CEP', Emit.enderEmit.CEP);
         INIRec.WriteString( 'emit', 'UF', Emit.enderEmit.UF);
         INIRec.WriteString( 'emit', 'fone', Emit.enderEmit.fone);
         INIRec.WriteString( 'emit', 'email', Emit.enderEmit.email);

         case Ide.modal of
           moRodoviario:  begin
                            INIRec.WriteString('Rodo', 'RNTRC', Rodo.RNTRC);
                            INIRec.WriteString('Rodo', 'CIOT', Rodo.CIOT);
                            INIRec.WriteString('Rodo', 'tpRod', TpRodadoToStr(Rodo.veicTracao.tpRod));
                            INIRec.WriteString('Rodo', 'tpCar', TpCarroceriaToStr(Rodo.veicTracao.tpCar));
                            INIRec.WriteString('Rodo', 'UF', Rodo.veicTracao.UF);

                            if (Rodo.veicTracao.placa <> '') then
                                begin
                                  INIRec.WriteString('veicTracao', 'clInt', Rodo.veicTracao.cInt);
                                  INIRec.WriteString('veicTracao', 'placa', Rodo.veicTracao.placa);
                                  INIRec.WriteString('veicTracao', 'RENAVAN', Rodo.veicTracao.RENAVAM);
                                  INIRec.WriteInteger('veicTracao', 'tara', Rodo.veicTracao.tara);
                                  INIRec.WriteInteger('veicTracao', 'capKG', Rodo.veicTracao.capKG);
                                  INIRec.WriteInteger('veicTracao', 'clInt', Rodo.veicTracao.capM3);
                                end;

                              if ( Rodo.veicTracao.prop.CNPJCPF <> '') then
                              begin
                                INIRec.WriteString('prop','CPFCNPJ',Rodo.veicTracao.prop.CNPJCPF);
                                INIRec.WriteString('prop','RNTRC',Rodo.veicTracao.prop.RNTRC);
                                INIRec.WriteString('prop','xNome',Rodo.veicTracao.prop.xNome);
                                INIRec.WriteString('prop','IE',Rodo.veicTracao.prop.IE);
                                INIRec.WriteString('prop','UF',Rodo.veicTracao.prop.UF);
                                INIRec.WriteString('prop','tpProp',TpPropToStr(Rodo.veicTracao.prop.tpProp));
                                end;

                              for y := 1 to Rodo.veicTracao.condutor.Count -1 do
                                begin
                                sSecao := 'condutor'+IntToStrZero(y+1,3);
                                IniRec.WriteString(sSecao,'CPF',Rodo.veicTracao.condutor.Items[y].CPF);
                                IniRec.WriteString(sSecao,'xNome',Rodo.veicTracao.condutor.Items[y].xNome);
                                end;

                          end;
           moAereo:       begin
                            // Implementar
                          end;
           moAquaviario:  begin
                            // Implementar
                          end;
           moFerroviario: begin
                            // Implementar
                          end;
         end;

         for i := 0 to infDoc.infMunDescarga.Count -1 do
         begin
           sSecao := 'DESC' + IntToStrZero(I+1, 3);

           with infDoc.infMunDescarga.Items[i] do
           begin
             INIRec.WriteInteger(sSecao, 'cMunDescarga', cMunDescarga);
             INIRec.WriteString(sSecao, 'xMunDescarga', xMunDescarga);

             for j := 0 to infDoc.infMunDescarga.Items[i].infCTe.Count -1 do
             begin
               sSecao := 'infCTe' + IntToStrZero(I+1, 3) + IntToStrZero(J+1, 3);

               with infDoc.infMunDescarga.Items[i].infCTe.Items[j] do
               begin
                 INIRec.WriteString(sSecao, 'chCTe', chCTe);
                 INIRec.WriteString(sSecao, 'SegCodBarra', SegCodBarra);

                 // Implementar infUnidTransp - Lista
               end;
             end;

             for j := 0 to infDoc.infMunDescarga.Items[i].infNFe.Count -1 do
             begin
               sSecao := 'infNFe' + IntToStrZero(I+1, 3) + IntToStrZero(J+1, 3);

               with infDoc.infMunDescarga.Items[i].infNFe.Items[j] do
               begin
                 INIRec.WriteString(sSecao, 'chNFe', chNFe);
                 INIRec.WriteString(sSecao, 'SegCodBarra', SegCodBarra);

                 // Implementar infUnidTransp - Lista
               end;
             end;

             for j := 0 to infDoc.infMunDescarga.Items[i].infMDFeTransp.Count -1 do
             begin
               sSecao := 'infMDFeTransp' + IntToStrZero(I+1, 3) + IntToStrZero(J+1, 3);

               with infDoc.infMunDescarga.Items[i].infMDFeTransp.Items[j] do
               begin
                 INIRec.WriteString(sSecao, 'chMDFe', chMDFe);

                 // Implementar infUnidTransp - Lista
               end;
             end;

           end;
         end;

         INIRec.WriteInteger('tot', 'qCTe', tot.qCTe);
         INIRec.WriteInteger('tot', 'qNFe', tot.qNFe);
         INIRec.WriteInteger('tot', 'qMDFe', tot.qMDFe);
         INIRec.WriteFloat( 'tot', 'vCarga', tot.vCarga);
         INIRec.WriteString( 'tot', 'cUnid', UnidMedToStr(tot.cUnid));
         INIRec.WriteFloat( 'tot', 'qCarga', tot.qCarga);

          for i := 0 to lacres.Count - 1 do
          begin
            sSecao := 'lacres' + IntToStrZero(I+1, 3);
            with lacres.Items[i] do
            begin
              INIRec.WriteString(sSecao, 'nLacre', nLacre);
            end;
          end;

          for i := 0 to autXML.Count - 1 do
          begin
            sSecao := 'autXML' + IntToStrZero(I+1, 3);
            with autXML.Items[i] do
            begin
//              if CNPJCPF <> '' then
                INIRec.WriteString(sSecao, 'CNPJCPF', CNPJCPF)
//              else if CPF <> '' then
//                     INIRec.WriteString(sSecao, 'CNPJCPF', CPF);
            end;
          end;

         INIRec.WriteString('infAdic', 'infAdFisco', infAdic.infAdFisco);
         INIRec.WriteString('infAdic', 'infCpl', infAdic.infCpl);
       end;
   finally
      IniMDFe := TStringList.Create;
      INIRec.GetStrings(IniMDFe);
      INIRec.Free;
      Result := StringReplace(IniMDFe.Text,sLineBreak+sLineBreak,sLineBreak,[rfReplaceAll]);
      IniMDFe.Free;
   end;

  end;

end;

 

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