Ir para conteúdo
  • Cadastre-se

luizcnr

Membros
  • Total de ítens

    48
  • Registro em

  • Última visita

Posts postados por luizcnr

  1. Obrigado pelo retorno, Antonio Carlos.

    O driver está instalado corretamente. Pois, o software da Elgin, comunica com o SAT normalmente.

    O que ocorre, é o seguinte... Temos dois softwares que emitem SAT, um é controle de mesas e outro é o Delivery.

    Funciona normalmente emitindo cupom por um software ou pelo outro, porém, após um tempo o SAT para de emitir os cupons e emite a mensagem de erro.

    Mas, ao realizar o teste com o software de comunicação da Elgin, o SAT está em funcionamento. Porém, ao realizar os testes o sistema não emite o cupom, pois exibe a mensagem de erro, dizendo que o SAT está desconectado.

  2. Galera, boa tarde!

    Estou com um problema com o S@T Elgin Smart.

    Ao emitir o cupom fiscal, o SAT está retornando a seguinte mensagem de erro:

    539810|9999|SAT Desconectado

    Já entrei em contato com a fabricante e atualizado a DLL, porém o erro persiste.

    Alguém já passou por algum problema parecido?

     

  3. Juliomar, tentei deixar somente a opção de SSLLib setada, porém, exibe a mensagem de invalid property value.

    Mas, de qualquer forma, executei o instalador, reinicie a máquina e tentei emitir a NFe. Foi apresentado o mesmo erro.

    Na minha máquina de desenvolvimento, é WINDOWS 10, a NFe é emitida normalmente. Mas, na máquina do cliente, está ocorrendo o erro.

  4. Boa tarde, galera!

    Estou com um problema de erro SSL em algumas máquinas WINDOWS 10. O erro ocorre tanto para Certificado A1, quanto para A3.

    Ao tentar emitir a NFe, apresenta o seguinte erro:

    Erro Interno: 12030
    Erro HTTP: 0
    URL: https://homologacao.nfe.fazenda.sp.gov.br/ws/nfeautorizacao4.asmx
    Falha Recebendo Dados. Erro:Erro: 12030 - A conexão com o servidor foi redefinida ou encerrada, ou um protocolo SSL incompatível foi encontrado.

    As configurações no ACBrNFe, está da seguinte forma:

    SSLLib: libWinCrypt

    SSLCyptLib: cryWinCrypt

    SSLHttpLib: httpWinHttp

    SSLXmlSignLib: xsLibXml2

    Realizei algumas pesquisas no fórum e nenhuma solução conseguiu me ajudar.

    Alguém já passou por algum problema parecido?

  5. iJSONEnviar.AddFormField('sku', iJSON, 'utf-8', 'application/json').ContentTransfer := '8bit';

        //Configura o HTTP
        IdHTTPConexao.Request.Clear;
        IdHTTPConexao.Request.ContentType := 'multipart/form-data; boundary=' + iJSonEnviar.Boundary;
        IdHTTPConexao.Request.CharSet := 'utf-8';
        IdHTTPConexao.Request.CustomHeaders.Clear;
        IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'multipart/form-data');
        IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken);
        IdHTTPConexao.Response.ContentType := 'application/json';
        IdHTTPConexao.Response.CharSet := 'utf-8';

    Com esse meu código, eu recebi o retorno de 201, indicando que os novos parâmetros foram criados.

    No meu código eu não precisei colocar essa linha  IdHTTPConexao := TidHTTP.Create;

  6. A solução encontrada, foi a seguinte:

     iJSONEnviar := TIdMultiPartFormDataStream.Create;

      try
        iJSON := ('{"merchantId": merchantID,' + //ID do Restaurante (MerchantID)",
                  '"externalCode":"311",' + //COD PDV, código do sistema
                  '"availability": "AVAILABLE",' + //Disponibilidade do item, AVAILABLE OU UNAVAILABLE
                  '"name": "X BURGUER - TESTE 2",' + //Nome do Item,
                  '"description": "",' + //Descrição do Item (Composição)
                  '"order": 2,' + //Ordem para o item aparecer no cardápio
                  '"schedules": [],' +
                  '"price":{' +
                     '"originalValue": 0,' +//Valor Original do Item (Somente preencher caso o item estiver em promoção)
                     '"promotional": false,' + //Item está em promoção? True ou False
                     '"value": 12.50}'+
                   '}');  //Valor do item (Valor que vai para aparecer na plataforma Ifood)

        mRetorno.Lines.Clear;
        mRetorno.Lines.Add(iJSON);

        iJSONEnviar.AddFormField('sku', iJSON, 'utf-8', 'application/json').ContentTransfer := '8bit';

        //Configura o HTTP
        IdHTTPConexao.Request.Clear;
        IdHTTPConexao.Request.ContentType := 'multipart/form-data; boundary=' + iJSonEnviar.Boundary;
        IdHTTPConexao.Request.CharSet := 'utf-8';
        IdHTTPConexao.Request.CustomHeaders.Clear;
        IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'multipart/form-data');
        IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken);
        IdHTTPConexao.Response.ContentType := 'application/json';
        IdHTTPConexao.Response.CharSet := 'utf-8';

        try
          IdHTTPConexao.Post('https://pos-api.ifood.com.br/v1.0/skus', iJSONEnviar);

          //201 = Indica que novos parâmetros foram criados com sucesso
          if IdHTTPConexao.ResponseCode = 201 then
            Application.MessageBox(PWideChar('Produto Cadastrado com Sucesso!'),
                'Informação', MB_OK+MB_ICONINFORMATION);
        except
          on e:EIdHTTPProtocolException do
          begin
            if (e.ErrorCode <> 200) or (e.ErrorCode <> 201) then
            begin
              Application.MessageBox(PWideChar('Atenção! Ocorreu ao Cadastrar Produto no iFood. ' +
                  e.ErrorMessage),
                    'Aviso', MB_OK+MB_ICONWARNING);
              Exit;
            end;
          end;
        end;
      finally
        FreeAndNil(iJSONEnviar);
      end;

    • Curtir 1
    • Obrigado 1
  7. 5 minutos atrás, datilas disse:

    o que esta me encafifando é essa mensagem "Unsupported Media Type"

    tenta assim

      IdHTTPConexao.Request.Clear;
      IdHTTPConexao.Request.ContentType := 'application/json';
      IdHTTPConexao.Request.CharSet := 'utf-8';
      IdHTTPConexao.Request.CustomHeaders.Clear;
      IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken);
      //IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'application/json');
      IdHTTPConexao.Response.ContentType := 'application/json';
      IdHTTPConexao.Response.CharSet := 'utf-8';

    Infelizmente continua com a mesma mensagem de erro.

    Então, realmente... Já vi diversos exemplos e me retorna várias vezes esse erro de "Unsupported Media Type".

    O teste que obtive o resultado de 201 via POSTMAN, gerou esse seguinte código:

    POST /v1.0/skus HTTP/1.1
    Host: pos-api.ifood.com.br
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
    Authorization: Bearer (tokenGerado)
    User-Agent: PostmanRuntime/7.19.0
    Accept: */*
    Cache-Control: no-cache
    Postman-Token: 76987055-3ed2-4452-a4b1-fcc1b740af63,140a3c1e-1692-4f6d-9584-66848489a7b3
    Host: pos-api.ifood.com.br
    Accept-Encoding: gzip, deflate
    Content-Length: 410
    Connection: keep-alive
    cache-control: no-cache


    Content-Disposition: form-data; name="sku"

    {
      "merchantId": merchantId,  
      "availability": "AVAILABLE", 
      "externalCode":"201",
      "name": "FANTA LATA",
      "description": "",  
      "order": 2, 
      "schedules": [],
       "price": {
        "originalValue": 0,
        "promotional": false, 
        "value": 12.50} 
    }
    ------WebKitFormBoundary7MA4YWxkTrZu0gW--

  8. 8 minutos atrás, datilas disse:
    
      // comenta essa linha IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', iJSONEnviar.RequestContentType);
      IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken); //deixa essa 
      IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'application/json');//deixa essa
      // comenta essa linha IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Disposition', 'form-data; name="sku"');
      IdHTTPConexao.Response.CharSet := 'UTF-8';

    Ficou dessa maneira o fonte:

    iJSONStream := TStringStream.Create(iJSON, TEncoding.UTF8); (Nessa linha tentei passar somente o iJSON

        //Configura o HTTP
        IdHTTPConexao.Request.Clear;
        IdHTTPConexao.Request.CustomHeaders.Clear;
        IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken);
        IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'application/json');
        IdHTTPConexao.Response.CharSet := 'UTF-8';

        try
          IdHTTPConexao.Post('https://pos-api.ifood.com.br/v1.0/skus', iJSONStream, AResponseContent);
          iRespostaIfood := AResponseContent.DataString;

          //201 = Indica que novos parâmetros foram criados com sucesso
          if IdHTTPConexao.ResponseCode = 201 then
            Application.MessageBox(PWideChar('Produto Cadastrado com Sucesso!'),
                'Informação', MB_OK+MB_ICONINFORMATION);
        except
          on e:EIdHTTPProtocolException do
          begin
            if (e.ErrorCode <> 200) or (e.ErrorCode <> 201) then
            begin
              Application.MessageBox(PWideChar('Atenção! Ocorreu ao Cadastrar Produto no iFood. ' +
                  e.ErrorMessage),
                    'Aviso', MB_OK+MB_ICONWARNING);
              Exit;
            end;
          end;
        end;

    É apresentado o seguinte erro:

    ---------------------------
    Aviso
    ---------------------------
    Atenção! Ocorreu ao Cadastrar Produto no iFood. 
    <html><body><h1>Whitelabel Error Page</h1><p>This application has 
    no explicit mapping for /error, so you are seeing this as a fallback.
    </p><div id='created'>Tue Nov 05 16:56:09 GMT-03:00 2019</div><div>
    There was an unexpected error (type=Unsupported Media Type, status=415).
    </div><div>Unsupported Media Type</div></body></html>

  9. 9 minutos atrás, datilas disse:

    tenta ssim:

    
    Var
     iStringListProduto: TStringList;
     iRespostaIfood: String;
     iJSON: String;
     iJSONStream, AResponseContent: TStringStream;
     // iJSONEnviar : TIdMultipartFormDataStream;
    Begin
     // iJSONEnviar := TIdMultiPartFormDataStream.Create;
    
     iJSONStream := TStringStream.Create(iJSON);
     AResponseContent := TStringStream.Create('');
     Try
      iJSON := ('{"merchantId": MerchantID,' + //CÓD DO RESTAURANTE
       '"externalCode":"205",' +
       '"availability": "AVAILABLE",' +
       '"name": "X BURGUER - TESTE",' +
       '"description": "PÃO, HAMBURGUER E QUEIJO",' +
       '"order": 1,' +
       '"schedules": [],' +
       '"price":{' +
       '"originalValue": 0,' +
       '"promotional": false,' +
       '"value": 12.50}' +
       '}');
      mRetorno.Lines.Clear;
      mRetorno.Lines.Add(iJSON);
    
      //Configura o HTTP
      IdHTTPConexao.Request.Clear;
      IdHTTPConexao.Request.CustomHeaders.Clear;
      IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', iJSONEnviar.RequestContentType);
      IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken);
      IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'application/json');
      //IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Disposition', 'form-data; name="sku"');
      IdHTTPConexao.Response.CharSet := 'UTF-8';
    
      Try
       IdHTTPConexao.Post('https://pos-api.ifood.com.br/v1.0/skus', iJSONStream, AResponseContent);
       iRespostaIfood := AResponseContent.DataString;
    
       //201 = Indica que novos parâmetros foram criados com sucesso
       If IdHTTPConexao.ResponseCode = 201 Then
        Application.MessageBox(PWideChar('Produto Cadastrado com Sucesso!'),
         'Informação', MB_OK + MB_ICONINFORMATION);
      Except
       On e: EIdHTTPProtocolException Do
        Begin
         If (e.ErrorCode <> 200) Or (e.ErrorCode <> 201) Then
          Begin
           Application.MessageBox(PWideChar('Atenção! Ocorreu ao Cadastrar Produto no iFood. ' +
            e.ErrorMessage),
            'Aviso', MB_OK + MB_ICONWARNING);
           Exit;
          End;
        End;
      End;
     Finally
      FreeAndNil(iJSONStream);
      FreeAndNil(AResponseContent);
     End;

     

    Tentei das seguintes formas:

    Onde estava o IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', iJSONEnviar.RequestContentType); como foi comentado, mudei para IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'multipart/form-data');

    E me apresentou o seguinte erro:

    ---------------------------
    Aviso
    ---------------------------
    Atenção! Ocorreu ao Cadastrar Produto no iFood. 
    <html><body><h1>Whitelabel Error Page</h1><p>
    This application has no explicit mapping for /error, 
    so you are seeing this as a fallback.</p><div id='created'>
    Tue Nov 05 15:47:05 GMT-03:00 2019</div><div>There was an unexpected error 
    (type=Internal Server Error, status=500).</div><div>java.lang.RuntimeException: 
    java.io.IOException: Missing initial multi part boundary</div></body></html>

     

    Se eu comentar a linha citada, me apresenta o erro seguinte erro:

    ---------------------------
    Aviso
    ---------------------------
    Atenção! Ocorreu ao Cadastrar Produto no iFood. 
    <html><body><h1>Whitelabel Error Page</h1><p>
    This application has no explicit mapping for /error, 
    so you are seeing this as a fallback.</p><div id='created'>
    Tue Nov 05 15:47:05 GMT-03:00 2019</div><div>There was an unexpected error 
    (type=Internal Server Error, status=500).</div><div>java.lang.RuntimeException: 
    java.io.IOException: Missing initial multi part boundary</div></body></html>

     

    E de outra forma, se eu crio uma variável iJSONEnviar : TIdMultipartFormDataStream;

    E passo em IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', iJSONEnviar.RequestContentType);

    Me retorna o seguinte erro:

    ---------------------------
    Aviso
    ---------------------------
    Atenção! Ocorreu ao Cadastrar Produto no iFood. 
    <html><body><h1>Whitelabel Error Page</h1><p>This application has no 
    explicit mapping for /error, so you are seeing this as a fallback.</p>
    <div id='created'>Tue Nov 05 15:54:19 GMT-03:00 2019</div><div>There was an unexpected error 
    (type=Internal Server Error, status=500).</div><div>java.lang.RuntimeException: 
    java.io.IOException: Missing initial multi part boundary</div></body></html>

  10. 2 minutos atrás, datilas disse:

    pelo que vi na documentação não preencher ('"schedules": [],' +) caso não exista.

    
    {
     "merchantId": 999999,
     "ID do Restaurante (MerchantID)",
     "externalCode": "155",
     "COD PDV",
     "availability": "AVAILABLE",
     "Disponibilidade do item",
     "name": "X BURGUER",
     "Nome do Item",
     "description": "PÃO, HAMBURGUER E QUEIJO",
     " Descrição do Item (Composição)",
     "order": 0: "Ordem para o item aparecer no cardápio",
     "price": {
      "originalValue": 0: " Valor Original do Item (Somente preencher caso o item estiver em promoção)",
      "promotional": false: " Item está em promoção?"
      "value": 12
     }
     "Valor do item (Valor que vai para aparecer na plataforma Ifood)"
    }
    
    //preencher apenas se existir (schedules)
    
    {
     "merchantId": 999999,
     "ID do Restaurante (MerchantID)",
     "externalCode": 9430,
     "COD PDV"
     "availability": "AVAILABLE",
     "Disponibilidade do item",
     "name": "Esfiha de Carne",
     "Nome do Item"
     "description": "Recheio com Mussarela.",
     "Descrição do Item (Composição)",
     "schedules": [{
       "Disponibilidade dos itens " Dias da semana e horário funcionamento ""
       "dayOfWeek": "MONDAY" " Dia da semana que funciona"
      }, {
       "dayOfWeek": "FRIDAY" " Dia da semana que funciona"
    
      }
     ],
     "order": 1,
     "Ordem para o item aparecer no cardápio",
     "price": {
      "Preço"
      "originalValue": 3.96,
      "Valor Original do Item (Somente preencher caso o item estiver em promoção)"
      "promotional": true,
      " Item está em promoção?"
      "value": 1.98 "Valor promocional do item (Valor que vai para aparecer na plataforma Ifood)"
     }
    }

     

    Então, eu já tentei das duas formas. No POSTMAN, eu usei o seguinte JSON:

    {

    "merchantId": 292468,

    "availability": "AVAILABLE",

    "externalCode":"201",

    "name": "FANTA LATA",

    "description": "",

    "order": 2,

    "schedules": [],

    "price": {

    "originalValue": 0,

    "promotional": false,

    "value": 12.50}

    }

    Foi retornado o código 201, sendo criado o produto na API do iFood. Eu acho que o problema, esteja no momento de passar os parâmetros no form-data.

    Mas, ainda não descobri qual a forma correta de passar esse JSON para criar o produto, via Delphi.

     
  11. Galera,

    Bom dia!

    Estou com um problema, por alguns dias e não consigo resolver. Estou realizando a integração do meu sistema com o iFood.

    Estou realizando alguns testes, por enquanto, estava obtendo sucesso, até tentar cadastrar o produto na API do iFood.

    O procedimento que estou utilizando para cadastro é o seguinte:

    procedure TfrmPrincipal.btnCriarProdutoClick(Sender: TObject);
    var
      iStringListProduto : TStringList;
      iRespostaIfood : string;
      iJSON : string;
      iJSONStream : TStringStream;
      iJSONEnviar : TIdMultipartFormDataStream;
    begin
      iJSONEnviar := TIdMultiPartFormDataStream.Create;

      try
        iJSON := ('{"merchantId": MerchantID,' + //CÓD DO RESTAURANTE
                  '"externalCode":"205",' + 
                  '"availability": "AVAILABLE",' + 
                  '"name": "X BURGUER - TESTE",' + 
                  '"description": "PÃO, HAMBURGUER E QUEIJO",' + 
                  '"order": 1,' + 
                  '"schedules": [],' +
                  '"price":{' +
                     '"originalValue": 0,' +
                     '"promotional": false,' + 
                     '"value": 12.50}'+
                   '}');  
        mRetorno.Lines.Clear;
        mRetorno.Lines.Add(iJSON);

        iJSONEnviar.AddFormField('sku', iJSON);

        //Configura o HTTP
        IdHTTPConexao.Request.Clear;
        //IdHTTPConexao.Request.CharSet             := 'UTF-8';
        IdHTTPConexao.Request.CustomHeaders.Clear;
        IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', iJSONEnviar.RequestContentType);
        IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken);
        IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'application/json');
        IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Disposition', 'form-data; name="sku"');
        IdHTTPConexao.Response.CharSet := 'UTF-8';

        try
          iRespostaIfood := IdHTTPConexao.Post('https://pos-api.ifood.com.br/v1.0/skus', iJSONEnviar);

          //201 = Indica que novos parâmetros foram criados com sucesso
          if IdHTTPConexao.ResponseCode = 201 then
            Application.MessageBox(PWideChar('Produto Cadastrado com Sucesso!'),
                'Informação', MB_OK+MB_ICONINFORMATION);
        except
          on e:EIdHTTPProtocolException do
          begin
            if (e.ErrorCode <> 200) or (e.ErrorCode <> 201) then
            begin
              Application.MessageBox(PWideChar('Atenção! Ocorreu ao Cadastrar Produto no iFood. ' +
                  e.ErrorMessage),
                    'Aviso', MB_OK+MB_ICONWARNING);
              Exit;
            end;
          end;
        end;
      finally

      end;
    end;

    Estou obtendo o seguinte retorno de erro:

    ---------------------------
    Aviso
    ---------------------------
    Atenção! Ocorreu ao Cadastrar Produto no iFood. 
    <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit 
    mapping for /error, so you are seeing this as a fallback.</p><div id='created'>
    Tue Nov 05 10:50:01 GMT-03:00 2019</div><div>There was an unexpected error 
    (type=Bad Request, status=400).</div><div>Unable to parse form content</div></body></html>

    Obs. Esse mesmo JSON, executei no POSTMAN e estou obtendo um retorno positivo que o produto é cadastrado com sucesso, porém, o erro está no fonte e não estou conseguindo identificar.

    Se alguém, conseguir me auxiliar ou ajudar.

    Obrigado!

  12. Bom dia, Juliomar!

    Acabei resolvendo aqui. 

    O procedimento que utilizei, foi o seguinte:

    Limpei todo o conteúdo do FORTES, ou seja, deletei os arquivos e realizei o UPLOAD novamente, desinstalei o FORTES do delphi também.  E realizei a instalação pelo instalador do FORTES.

    Em seguida, realizei a limpeza do ACBr e fiz o upload da pasta novamente, desinstalei o que tinha do ACBr do delphi, utilizei o instalador do ACBr.

    Após, realizado esses procedimentos, o ACBr foi instalado com sucesso, sem problema algum em minha máquina.

    Muito obrigado!

    • Curtir 2
  13. Boa tarde, pessoal do ACBr!

    Estou com um problema ao realizar a instalação/atualização do meu ACBr. Eu tenho duas versões do delphi instaladas em minha máquina, Delphi XE6 e o Delphi 7.

    Realizei a instalação/atualização do Delphi XE6, sem maiores problemas. Porém o problema em si, está ao realizar a atualização do ACBr no Delphi 7.

    Fiz uma pesquisa no Fórum, encontrei tópicos com o mesmo problema, porém ao realizar os mesmos procedimentos, não estou obtendo êxito. 

    Sei que o erro ocasionado, é em relação ao Fortes, porém já realizei a atualização do Fortes, fiz a varredura em minha máquina com o frce.*, deletei os arquivos, mas o erro persiste. Segue o LOG do erro.

    Obrigado.

    log_Delphi_7.txt

  14. Problema solucionado. 

    Minha unit pcnNFeW, estava assim:

    if (trim(nfe.Cobr.Fat.nFat) <> '') or
        (nfe.Cobr.Fat.vOrig > 0) or
        (nfe.Cobr.Fat.vDesc > 0) or
        (nfe.Cobr.Fat.vLiq > 0) then
      begin
        Gerador.wGrupo('fat', 'Y02');
    //<<<<<<< .mine
        Gerador.wCampo(tcStr, 'Y03', 'nFat   ', 01, 60, 0, nfe.Cobr.Fat.nFat, DSC_NFAT);
        Gerador.wCampo(tcDe2, 'Y04', 'vOrig  ', 01, 15, 0, nfe.Cobr.Fat.vOrig, DSC_VORIG);
        Gerador.wCampo(tcDe2, 'Y05', 'vDesc  ', 01, 15, 0, nfe.Cobr.Fat.vDesc, DSC_VDESC);
        Gerador.wCampo(tcDe2, 'Y06', 'vLiq   ', 01, 15, 0, nfe.Cobr.Fat.vLiq, DSC_VLIQ);
    //||||||| .r15437
        Gerador.wCampo(tcStr, 'Y03', 'nFat   ', 01, 60, 0, nfe.Cobr.Fat.nFat, DSC_NFAT);
        .wCampo(tcDe2, 'Y04', 'vOrig  ', 01, 15, 0, nfe.Cobr.Fat.vOrig, DSC_VORIG);
        .wCampo(tcDe2, 'Y05', 'vDesc  ', 01, 15, 0, nfe.Cobr.Fat.vDesc, DSC_VDESC);
        Gerador.wCampo(tcDe2, 'Y06', 'vLiq   ', 01, 15, 0, nfe.Cobr.Fat.vLiq, DSC_VLIQ);
    //=======
        Gerador.wCampo(tcStr, 'Y03', 'nFat   ', 01, 60, IIf(FOpcoes.CamposFatObrigatorios and (NFe.infNFe.Versao >= 4),1,0), nfe.Cobr.Fat.nFat, DSC_NFAT);
        Gerador.wCampo(tcDe2, 'Y04', 'vOrig  ', 01, 15, IIf(FOpcoes.CamposFatObrigatorios and (NFe.infNFe.Versao >= 4),1,0), nfe.Cobr.Fat.vOrig, DSC_VORIG);
        Gerador.wCampo(tcDe2, 'Y05', 'vDesc  ', 01, 15, IIf(FOpcoes.CamposFatObrigatorios and (NFe.infNFe.Versao >= 4),1,0), nfe.Cobr.Fat.vDesc, DSC_VDESC);
        Gerador.wCampo(tcDe2, 'Y06', 'vLiq   ', 01, 15, IIf(FOpcoes.CamposFatObrigatorios and (NFe.infNFe.Versao >= 4),1,0), nfe.Cobr.Fat.vLiq, DSC_VLIQ);
    //>>>>>>> .r15563
        Gerador.wGrupo('/fat');
      end;

    Mesmo atualizando o ACBr, essa unit persistia, por isso estava repetindo os campos. Então, removi a unit e baixei novamente e ficou tudo correto.

    NFe emitindo corretamente.

    • Curtir 2
  15. Bom dia, galera!

    Estou com um problema ao validar o XML da NFe. Estava emitindo normalmente,

    porém após uma atualização do sistema, começou a emitir o seguinte erro ao validar o XML da NFe.
    ---------------------------
    Falha na validação dos dados da nota: 42

    1871 - Element '{http://www.portalfiscal.inf.br/nfe}nFat': This element is not expected.

    ---------------------------
    Penso que esse erro seja de schemas, já atualizei a pasta schemas, atualizei o ACBr, desinstalando e instalando novamente, mas o erro persiste.

    Estou encaminhando o XML, na TAG de nFAT, percebi que se repete 3 vezes, porém no fonte ao debugar, está normal. Mas, no XML está se repetindo essa TAG.

    if cdsFinalizadoracodfinalizadoranfe.AsString = '14' then
                  begin
                    tPag := fpDuplicataMercantil;
                    vPag := cdsFinalizadoravalorfinalizadora.AsFloat;

                    Cobr.Fat.nFat := inttostr(numero_nota);
                    Cobr.Fat.vOrig := cdsFinalizadoravalorfinalizadora.AsFloat; //converte(sql_nota.fieldbyname('valor').asfloat, 2);
                    Cobr.Fat.vDesc := 0.00;
                    Cobr.Fat.vLiq := cdsFinalizadoravalorfinalizadora.AsFloat;//converte(sql_nota.fieldbyname('valor').asfloat, 2);

                    //Grupo duplicata é somente para o tipo de pagamento vinculado com Duplicata Mercantil
                    cdsVencimento.First;
                    cont := 1;
                    if not cdsVencimento.IsEmpty then
                    begin
                      while not cdsVencimento.Eof do
                      begin
                        with Cobr.Dup.Add do
                        begin
                          nDup  := dupeString('0', 3-Length(IntToStr(cont)))+ inttostr(cont);
                          dVenc := cdsVencimentodatavencimento.AsDateTime; //sql_ana.fieldbyname('data_p').asdatetime;
                          vDup  :=  cdsVencimentovalorvencimento.AsFloat; //converte(sql_ana.fieldbyname('valor').asfloat, 2);
                          inc(cont);
                        end;
                        cdsVencimento.next;
                      end;

                    end;

    Segue também uma parte do código fonte. 

    Alguém por aí passou por algum problema semelhante? Ou consegue me ajudar?

    35180904908850000143550010000000421000000421-nfe.xml

  16. Foram solicitadas as seguintes alterações pelo banco:

    Favor prosseguir os ajustes abaixo:

    1.       No arquivo de remessa, posições:

    a.       123 a 135: informar o "seu numero"= "numero do documento".

    b.      154 a 157: inserir o numero da agência da conta.

    c.       222 a 223: inserir cód. 51 referente ao juros mensal.

    d.      226 a 237: informar o valor do juros em porcentagem.

    e.      276 a 277: inserir cód. 03 referente a multa.

    f.        280 a 281: inserir cód. 09 referente ao protesto.

    g.       282 a 283: informar prazo para instrução de protesto.

    h.      284 a 288: informar a taxa referente a multa.

    Referente ao Juros mensal no ACBr Boleto no arquivo de remessa na posição 222 a 223, está passando 50 fixo, mas quando altero para 51, continua a passar o valor de 50. Na remessa me apresenta o 50. Alguém pode me dizer o que posso fazer para mudar isso? 

    Trecho do código:

    if ValorMoraJuros > 0 then
          begin
            TipoJuros  := '51';
            Instrucao1 := '01'; // 01- Não Dispensar Juros de Mora 
            Prazo1 := '01';
          end
         else
          begin
            TipoJuros := '00';
            Instrucao1 := '00'; // 00- Sem Instrução
            Prazo1 := '00';
          end;

     

×
×
  • 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.