Ir para conteúdo
  • Cadastre-se

Problema ao Emitir NFse Nacional


Ver Solução Respondido por kahlilgibran,
  • Este tópico foi criado há 127 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membro Pro Verificado
Postado

Toda vez que tendo enviar da esse erro já tentei varias situações e não funcionou 
NFS-e REJEITADA!

ERROS:
Código: E0713
Mensagem: Para Não Optante o indicador de informação de valor total de tributos e o valor percentual aproximado do total dos tributos da alíquota do Simples Nacional (%) não podem ser informados.

function TNotaFiscalDM.GerarNFSE(CodNfse: integer): Boolean;
const
  SqlInsertNotaXML =
    'INSERT INTO NOTASERVICO_XML (CODNOTASERVICO, IDBINARIOXML, FLAG_RPS) VALUES (%d, %s, %d)';
var
  IdbinarioXml: string;
  AlertaErros: TStringList;
  i: integer;
  SQL: string;
  bNotaAprovada: Boolean;
  sChaveAcesso: string;
  sNumeroNFSe: string;
  sXmlNFSe: string;

  // Variáveis para IBS/CBS
  vAliqIBSMun: double;
  vAliqIBSUF: double;
  vAliqCBS: double;
  vValorIBSMun: double;
  vValorIBSUF: double;
  vValorCBS: double;
  vClassTrib: string;
  vCSTIBSCBS: string;
  vCodCredPres: string;
  bReembolso: Boolean;
begin
  Result := false;



  // ============================================
  // LIMPAR E PREPARAR COMPONENTE
  // ============================================
  ACBrNFSe.NotasFiscais.Clear;

  try
    with ACBrNFSe do
    begin

      NotasFiscais.NumeroLote :=
        cdsNotaFiscalServicoPesqCODNOTASERVICO.AsString;
      NotasFiscais.Transacao := true;

      with NotasFiscais.New.NFSe do
      begin
        // ============================================
        // IDENTIFICAÇÃO DO RPS/DPS
        // ============================================
        verAplic := 'Unique-1.00';

        NUMERO := cdsNotaFiscalServicoPesqNUN_NOTASERVICO.AsString;
        IdentificacaoRps.NUMERO := FormatFloat('#########0', CodNfse);
        IdentificacaoRps.Serie := cdsNotaFiscalServicoPesqSERIE.AsString;
        IdentificacaoRps.Tipo := ACBrNFSeXConversao.trRPS;

        SeriePrestacao := cdsNotaFiscalServicoPesqSERIE.AsString;
        NumeroLote := cdsNotaFiscalServicoPesqCODNOTASERVICO.AsString;

        // agPrefeitura, agSistemaNacional
        infNFSe.ambGer := agSistemaNacional;
        // tePadraoNacional, teProprio
        infNFSe.tpEmis := tePadraoNacional;
        tpEmit := tePrestador;
        RegimeEspecialTributacao := retNenhum;

        // ============================================
        // DATAS
        // ============================================
        DataEmissao := cdsNotaFiscalServicoPesqDATAEMISSAO.AsDateTime;
        DataEmissaoRps := cdsNotaFiscalServicoPesqDATAEMISSAO.AsDateTime;
        Competencia := cdsNotaFiscalServicoPesqDATAEMISSAO.AsDateTime;

        // ============================================
        // CONFIGURAÇÕES GERAIS
        // ============================================
        // Simples Nacional
        if PesquisaDM.cdsEmitentePesqCRT.AsInteger = 1 then
        begin
          OptanteSimplesNacional := ACBrNFSeXConversao.snSim;
        end
        else
        begin
          OptanteSimplesNacional := ACBrNFSeXConversao.snNao;
          // OptanteSN := osnOptanteMEI;
        end;

        IncentivadorCultural := ACBrNFSeXConversao.snNao;

        // Ambiente
        // case ParametroDM.cdsConfiguracaoNotaTIPOAMBIENTE.AsInteger of
        // 0: Producao := ACBrNFSeXConversao.snNao;  // Homologação
        // 1: Producao := ACBrNFSeXConversao.snSim;  // Produção
        // end;

        StatusRps := ACBrNFSeXConversao.TStatusRPS.srNormal;
        OutrasInformacoes := '';

        // ============================================
        // VALORES DO SERVIÇO
        // ============================================

        // Servico.Valores.tribMun.tribISSQN := tiNaoIncidencia;
        // tiOperacaoTributavel;
        if bReembolso then
        begin
          Servico.Valores.tribMun.tpImunidade := timNenhum;
          // Servico.Valores.tribMun.tpRetISSQN := trNaoRetido;
          // Servico.Valores.totTrib.indTotTrib := indNao;
          Servico.Valores.tribMun.TribISSQN := tiNaoIncidencia;
        end
        else
          Servico.Valores.totTrib.indTotTrib := indNao;

        Servico.Valores.ValorServicos :=
          cdsNotaFiscalServicoPesqVALORSERVICOS.AsFloat;
        Servico.Valores.ValorDeducoes :=
          cdsNotaFiscalServicoPesqVALORDEDUCOES.AsFloat;
        Servico.Valores.ValorPis := cdsNotaFiscalServicoPesqVALORPIS.AsFloat;
        Servico.Valores.ValorCofins :=
          cdsNotaFiscalServicoPesqVALORCOFINS.AsFloat;
        Servico.Valores.ValorInss := cdsNotaFiscalServicoPesqVALORINSS.AsFloat;
        Servico.Valores.ValorIr := cdsNotaFiscalServicoPesqVALORIR.AsFloat;
        Servico.Valores.ValorCsll := cdsNotaFiscalServicoPesqVALORCSLL.AsFloat;

        // ISS Retido
        if cdsNotaFiscalServicoPesqVALORISSRETIDO.AsFloat > 0 then
          Servico.Valores.IssRetido := ACBrNFSeXConversao.stRetencao
        else
          Servico.Valores.IssRetido := ACBrNFSeXConversao.stNormal;

        Servico.Valores.ValorIssRetido :=
          cdsNotaFiscalServicoPesqVALORISSRETIDO.AsFloat;
        Servico.Valores.OutrasRetencoes :=
          cdsNotaFiscalServicoPesqOUTRASRETENCOES.AsFloat;
        Servico.Valores.DescontoIncondicionado :=
          cdsNotaFiscalServicoPesqDESCONTOINCONDICIONADO.AsFloat;
        Servico.Valores.DescontoCondicionado :=
          cdsNotaFiscalServicoPesqDESCONTOCONDICIONADO.AsFloat;

        // Base de Cálculo
        Servico.Valores.BaseCalculo := Servico.Valores.ValorServicos -
          Servico.Valores.ValorDeducoes -
          Servico.Valores.DescontoIncondicionado;

        // Alíquota ISS (mantido para compatibilidade)
        if cdsNotaFiscalServicoPesqPERCISS.AsFloat > 0 then
          Servico.Valores.Aliquota :=
            RoundABNT(cdsNotaFiscalServicoPesqPERCISS.AsCurrency / 100, 4)
        else
          Servico.Valores.Aliquota :=
            RoundABNT(MetodosDM.cdsCarregarParamsNFSE_ALIQUOTA_ISS.AsCurrency
            / 100, 4);

        Servico.Valores.ValorISS :=
          RoundABNT(Servico.Valores.BaseCalculo * Servico.Valores.Aliquota, 2);

        Servico.Valores.ValorLiquidoNfse := Servico.Valores.ValorServicos -
          Servico.Valores.ValorPis - Servico.Valores.ValorCofins -
          Servico.Valores.ValorInss - Servico.Valores.ValorIr -
          Servico.Valores.ValorCsll - Servico.Valores.OutrasRetencoes -
          Servico.Valores.ValorIssRetido -
          Servico.Valores.DescontoIncondicionado -
          Servico.Valores.DescontoCondicionado;

        Servico.Valores.ValorTotalRecebido :=
          cdsNotaFiscalServicoPesqVALORRECEBIDO.AsFloat;

        // ============================================
        // DADOS DO SERVIÇO
        // ============================================
        case cdsNotaFiscalServicoPesqRESP_RETENCAO.AsInteger of
          1:
            Servico.ResponsavelRetencao := ACBrNFSeXConversao.rtTomador;
          2:
            Servico.ResponsavelRetencao := ACBrNFSeXConversao.rtPrestador;
        end;

        Servico.ItemListaServico :=
          cdsNotaFiscalServicoPesqITEMLISTASERVICO.AsString;

        Servico.CodigoNBS := PesquisaDM.cdsConsultaPesq.FieldByName
          ('CODIGO_NBS').AsString;

        if not bReembolso then
          Servico.CodigoTributacaoMunicipio :=
            cdsNotaFiscalServicoPesqCODIGOTRIBUTACAOMUNICIPIO.AsString;


        // Servico.Discriminacao :=
        // RemoveAcento(RemoverQuebraDeLinhaFinal
        // (cdsNotaFiscalServicoPesqDESCRICAOSERVICO.AsString));

        Servico.Discriminacao :=
          cdsNotaFiscalServicoPesqDESCRICAOSERVICO.AsString;

        Servico.CodigoMunicipio := PesquisaDM.cdsEmitentePesqCODIBGE.AsString;
        // Servico.ExigibilidadeISS := ACBrNFSeXConversao.exiExigivel;
        Servico.CodigoPais := 1058;
        Servico.MunicipioIncidencia :=
          StrToIntDef(PesquisaDM.cdsEmitentePesqCODIBGE.AsString, 0);

        // ============================================
        // PRESTADOR
        // ============================================
        Prestador.IdentificacaoPrestador.CNPJ :=
          PesquisaDM.cdsEmitentePesqCPFCNPJ.AsString;
        Prestador.IdentificacaoPrestador.InscricaoMunicipal :=
          PesquisaDM.cdsEmitentePesqIM.AsString;
        Prestador.RAZAOSOCIAL :=
          RemoveAcento(PesquisaDM.cdsEmitentePesqRAZAOSOCIAL.AsString);
        Prestador.NOMEFANTASIA :=
          RemoveAcento(PesquisaDM.cdsEmitentePesqNOMEFANTASIA.AsString);
        Prestador.Endereco.Endereco :=
          RemoveAcento(PesquisaDM.cdsEmitentePesqLOGRADOURO.AsString);
        Prestador.Endereco.NUMERO := PesquisaDM.cdsEmitentePesqNUMERO.AsString;
        Prestador.Endereco.BAIRRO :=
          RemoveAcento(PesquisaDM.cdsEmitentePesqNOMEBAIRRO.AsString);
        Prestador.Endereco.CodigoMunicipio :=
          Trim(PesquisaDM.cdsEmitentePesqCODIBGE.AsString);
        Prestador.Endereco.UF := PesquisaDM.cdsEmitentePesqUF.AsString;
        Prestador.Endereco.CEP := PesquisaDM.cdsEmitentePesqCEP.AsString;
        Prestador.Endereco.CodigoPais := 1058;
        Prestador.Endereco.xPais := 'BRASIL';
        Prestador.Contato.Telefone :=
          GetTiraMascara(PesquisaDM.cdsEmitentePesqFONE.AsString);

        // ============================================
        // TOMADOR
        // ============================================
        Tomador.IdentificacaoTomador.CpfCnpj :=
          cdsNotaFiscalServicoPesqTOMADOR_CPFCNPJ.AsString;
        Tomador.IdentificacaoTomador.InscricaoMunicipal :=
          cdsNotaFiscalServicoPesqTOMADOR_IM.AsString;
        Tomador.IdentificacaoTomador.InscricaoEstadual :=
          cdsNotaFiscalServicoPesqTOMADOR_IE.AsString;
        Tomador.RAZAOSOCIAL :=
          RemoveAcento(cdsNotaFiscalServicoPesqTOMADOR.AsString);
        Tomador.Endereco.Endereco :=
          RemoveAcento(cdsNotaFiscalServicoPesqTOMADOR_LOGRADOURO.AsString);
        Tomador.Endereco.NUMERO :=
          cdsNotaFiscalServicoPesqTOMADOR_NUMERO.AsString;
        Tomador.Endereco.COMPLEMENTO :=
          RemoveAcento(cdsNotaFiscalServicoPesqTOMADOR_COMPLEMENTO.AsString);
        Tomador.Endereco.BAIRRO :=
          RemoveAcento(cdsNotaFiscalServicoPesqTOMADOR_BAIRRO.AsString);
        Tomador.Endereco.CodigoMunicipio :=
          Trim(cdsNotaFiscalServicoPesqTOMADOR_CODIBGE.AsString);
        Tomador.Endereco.UF := cdsNotaFiscalServicoPesqTOMADOR_UF.AsString;
        Tomador.Endereco.CEP := cdsNotaFiscalServicoPesqTOMADOR_CEP.AsString;
        Tomador.Endereco.CodigoPais := 1058;
        Tomador.Endereco.xPais := 'BRASIL';
        Tomador.Contato.Telefone :=
          GetTiraMascara(cdsNotaFiscalServicoPesqTOMADOR_FONE.AsString);
        Tomador.Contato.EMAIL := cdsNotaFiscalServicoPesqTOMADOR_EMAIL.AsString;
        Tomador.AtualizaTomador := ACBrNFSeXConversao.snNao;
        Tomador.TomadorExterior := ACBrNFSeXConversao.snNao;

        // ============================================
        // IBS/CBS - PADRÃO NACIONAL (REFORMA TRIBUTÁRIA)
        // ============================================
        if not bReembolso then
        begin
          // Calcular valores IBS/CBS
          vValorIBSMun := RoundABNT(Servico.Valores.BaseCalculo *
            (vAliqIBSMun / 100), 2);
          vValorIBSUF := RoundABNT(Servico.Valores.BaseCalculo *
            (vAliqIBSUF / 100), 2);
          vValorCBS := RoundABNT(Servico.Valores.BaseCalculo *
            (vAliqCBS / 100), 2);

          // Finalidade da NFS-e
          IBSCBS.finNFSe := fnfsRegular;

          // Indicador de consumidor final
          IBSCBS.indFinal := ifSim;
          IBSCBS.cIndOp := '100301';

          // Tipo de operação
          IBSCBS.tpOper := ACBrNFSeXConversao.togNenhum;

          // Tipo de ente governamental
          IBSCBS.tpEnteGov := tcgNenhum;

          // Indicador de destinatário
          IBSCBS.indDest := idTomadorAdquirenteIguais;

          // Dados do Destinatário (igual ao Tomador)
          IBSCBS.Dest.CNPJCPF :=
            cdsNotaFiscalServicoPesqTOMADOR_CPFCNPJ.AsString;
          IBSCBS.Dest.xNome :=
            RemoveAcento(cdsNotaFiscalServicoPesqTOMADOR.AsString);
          IBSCBS.Dest.FONE :=
            GetTiraMascara(cdsNotaFiscalServicoPesqTOMADOR_FONE.AsString);
          IBSCBS.Dest.EMAIL := cdsNotaFiscalServicoPesqTOMADOR_EMAIL.AsString;
          IBSCBS.Dest.ender.endNac.cMun :=
            StrToIntDef(cdsNotaFiscalServicoPesqTOMADOR_CODIBGE.AsString, 0);
          IBSCBS.Dest.ender.endNac.CEP :=
            cdsNotaFiscalServicoPesqTOMADOR_CEP.AsString;
          IBSCBS.Dest.ender.xLgr :=
            RemoveAcento(cdsNotaFiscalServicoPesqTOMADOR_LOGRADOURO.AsString);
          IBSCBS.Dest.ender.nro :=
            cdsNotaFiscalServicoPesqTOMADOR_NUMERO.AsString;
          IBSCBS.Dest.ender.xCpl :=
            RemoveAcento(cdsNotaFiscalServicoPesqTOMADOR_COMPLEMENTO.AsString);
          IBSCBS.Dest.ender.xBairro :=
            RemoveAcento(cdsNotaFiscalServicoPesqTOMADOR_BAIRRO.AsString);

          // CST IBS/CBS
          case StrToIntDef(vCSTIBSCBS, 0) of
            0:
              IBSCBS.Valores.trib.gIBSCBS.CST := cst000;
            10:
              IBSCBS.Valores.trib.gIBSCBS.CST := cst010;
            200:
              IBSCBS.Valores.trib.gIBSCBS.CST := cst200;
            400:
              IBSCBS.Valores.trib.gIBSCBS.CST := cst400;
            410:
              IBSCBS.Valores.trib.gIBSCBS.CST := cst410;
            800:
              IBSCBS.Valores.trib.gIBSCBS.CST := cst800;
          else
            IBSCBS.Valores.trib.gIBSCBS.CST := cst000;
          end;

          // Classificação Tributária
          IBSCBS.Valores.trib.gIBSCBS.cClassTrib := vClassTrib;

          // Crédito presumido
          IBSCBS.Valores.trib.gIBSCBS.cCredPres := cpNenhum;

          // Valores IBS/CBS
          IBSCBS.Valores.IbsMunicipal := vAliqIBSMun;
          IBSCBS.Valores.ValorIbsMunicipal := vValorIBSMun;
          IBSCBS.Valores.IbsEstadual := vAliqIBSUF;
          IBSCBS.Valores.ValorIbsEstadual := vValorIBSUF;
          IBSCBS.Valores.Cbs := vAliqCBS;
          IBSCBS.Valores.ValorCbs := vValorCBS;

          // Diferimento (zerado)
          IBSCBS.Valores.trib.gIBSCBS.gDif.pDifUF := 0;
          IBSCBS.Valores.trib.gIBSCBS.gDif.pDifMun := 0;
          IBSCBS.Valores.trib.gIBSCBS.gDif.pDifCBS := 0;
        end;

      end; // with NotasFiscais.New.NFSe
    end; // with ACBrNFSe

    // ============================================
    // EMITIR A NOTA
    // ============================================
    MSGSetMensagem('Enviando NFS-e para a SEFIN Nacional, aguarde...');

    ACBrNFSe.Emitir(cdsNotaFiscalServicoPesqCODNOTASERVICO.AsString);

   


 

  • Consultores
Postado

Estranho pois seu código não tem nada. 

acho que é o caso de estar apontando uma coisa mas é outra

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membro Pro Verificado
  • Solution
Postado

Achei o problema eu não estava alimentando os seguintes campos

// Tributos federais aproximados (PIS + COFINS + IR + CSLL + etc)

vTribFederal := RoundABNT(vValorServico * 0.0865, 2); // ~8.65% federal //

Tributo municipal (ISS)

vTribMunicipal := RoundABNT(vValorServico * (Servico.Valores.Aliquota), 2);

Servico.Valores.totTrib.vTotTribFed := vTribFederal; Servico.Valores.totTrib.vTotTribEst := 0;

// Serviços geralmente não tem tributo estadual

Servico.Valores.totTrib.vTotTribMun := vTribMunicipal;

  • Curtir 2
  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 127 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.