Ir para conteúdo
  • Cadastre-se

Recommended Posts

Postado

Senhores, 

Preciso fazer essa inclusão no meu emissor de NFSe. 

 

Tentei usar esse exemplo, mas sem sucesso: (não sei ao certo se são os corretos - com certeza fiz algo errado mas nao estou localizando o erro)

[dcc32 Error] uFuncoes.pas(206): E2003 Undeclared identifier: 'NotaFiscal'

 

uses
  ACBrNFeNotasFiscais, ACBrNFe.Classes;
\\...
var
  NotaF: NotaFiscal;
  IBSCBSTot: TIBSCBSTot;
begin
  NotaF := ACBrNFe.NotasFiscais.Add;
  IBSCBSTot := NotaF.Total.IBSCBSTot;
  IBSCBSTot.vBCIBSCBS := 100;
  IBSCBSTot.gIBS.vIBS := 100;
  IBSCBSTot.gIBS.vCredPres := 100;
  IBSCBSTot.gIBS.vCredPresCondSus := 100;
  IBSCBSTot.gIBS.gIBSUFTot.vDif := 100;
  IBSCBSTot.gIBS.gIBSUFTot.vDevTrib := 100;
  IBSCBSTot.gIBS.gIBSUFTot.vIBSUF := 100;
  IBSCBSTot.gIBS.gIBSMunTot.vDif := 100;
  IBSCBSTot.gIBS.gIBSMunTot.vDevTrib := 100;
  IBSCBSTot.gIBS.gIBSMunTot.vIBSMun := 100;
  NotaF.Total.vNFTot := 100;
    
//Demais dados...
end;

e esse

uses
  ACBrNFeNotasFiscais, ACBrNFe.Classes;
\\...
var
  NotaF: NotaFiscal;
  IBSCBSTot: TIBSCBSTot;
begin
  NotaF := ACBrNFe.NotasFiscais.Add;
  IBSCBSTot := NotaF.Total.ISTot;
  IBSCBSTot.vBCIBSCBS := 100;
  IBSCBSTot.gCBS.vDif := 100;
  IBSCBSTot.gCBS.vDevTrib := 100;
  IBSCBSTot.gCBS.vCBS := 100;
  IBSCBSTot.gCBS.vCredPres := 100;
  IBSCBSTot.gCBS.vCredPresCondSus := 100;
  NotaF.Total.vNFTot := 100;
    
//Demais dados...
end;

image.thumb.png.718862b61afb0f20bb01f3b3d280d77e.png

Esse é objetivo 

  • Consultores
Postado
Em 07/04/2026 at 09:37, GAVOHA disse:

Tentei usar esse exemplo, mas sem sucesso: (não sei ao certo se são os corretos - com certeza fiz algo errado mas nao estou localizando o erro)

[dcc32 Error] uFuncoes.pas(206): E2003 Undeclared identifier: 'NotaFiscal'

não está achando a uses que tem a declaração dessa classe

 

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 !!

Postado
Em 14/04/2026 at 15:36, Juliomar Marchetti disse:

não está achando a uses que tem a declaração dessa classe

Obrigado por responder..!
 

Quais devo declarar?

  • Consultores
Postado
Em 07/04/2026 at 09:37, GAVOHA disse:

[dcc32 Error] uFuncoes.pas(206): E2003 Undeclared identifier: 'NotaFiscal'

olha ele quer ver essa classe que está na unit abaixo

image.png

tu sempre pode usar a pesquisa do código fonte pra achar as classes

 

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 !!

Postado
2 horas atrás, Juliomar Marchetti disse:

olha ele quer ver essa classe que está na unit abaixo

image.png

tu sempre pode usar a pesquisa do código fonte pra achar as classes

...desculpe a ignorancia.. mas indififere se for ACBrNFSeX ou ACBrNFSe?

  • Consultores
Postado
1 hora atrás, GAVOHA disse:

...desculpe a ignorancia.. mas indififere se for ACBrNFSeX ou ACBrNFSe?

agora que falou notei uma coisa. 
tu escreveu no subforum NFSe , suas units e seu código estão de NFe. 

olhe bem. 

então sim tem diferença e tente não misturar os dois componentes tenha units e metodos separados

 

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 !!

Postado
3 minutos atrás, Juliomar Marchetti disse:

agora que falou notei uma coisa. 
tu escreveu no subforum NFSe , suas units e seu código estão de NFe. 

olhe bem. 

então sim tem diferença e tente não misturar os dois componentes tenha units e metodos separados

Eu achei que seria apenas acrescentar no mesmo código e emissão da NFSe as informações referentes a ibs e cbs. Que seria apenas calcular e informar junto ao Total, por exemplo:

          // Cálculo IBS/CBS

           with CondicaoPagamento.Parcelas.New do
            begin
             Parcela := '1';
             DataVencimento := Date + (30 * 1);
             Valor := (Servico.Valores.ValorLiquidoNfse / CondicaoPagamento.QtdParcela);

             vlr_ := Valor;
            end;

          vlr_ := vlr_ + DM.qryNFMestreIRRF.AsCurrency;
          ibs_ := RoundTo((vlr_ * 0.001), -2);
          cbs_ := RoundTo((vlr_ * 0.009), -2);

          IBSCBSTot.vBCIBSCBS            := vlr_;
          IBSCBSTot.gIBS.vIBS               := ibs_;
          IBSCBSTot.gCBS.vCBS            := cbs_;

Muito errado?

  • Consultores
Postado
1 hora atrás, GAVOHA disse:

Eu achei que seria apenas acrescentar no mesmo código e emissão da NFSe as informações referentes a ibs e cbs. Que seria apenas calcular e informar junto ao Total, por exemplo:

          // Cálculo IBS/CBS

           with CondicaoPagamento.Parcelas.New do
            begin
             Parcela := '1';
             DataVencimento := Date + (30 * 1);
             Valor := (Servico.Valores.ValorLiquidoNfse / CondicaoPagamento.QtdParcela);

             vlr_ := Valor;
            end;

          vlr_ := vlr_ + DM.qryNFMestreIRRF.AsCurrency;
          ibs_ := RoundTo((vlr_ * 0.001), -2);
          cbs_ := RoundTo((vlr_ * 0.009), -2);

          IBSCBSTot.vBCIBSCBS            := vlr_;
          IBSCBSTot.gIBS.vIBS               := ibs_;
          IBSCBSTot.gCBS.vCBS            := cbs_;

Muito errado?

mas tu está usando NFSe ou NFe?

pois cada um é um documento fiscal diferente

 

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 !!

Postado
28 minutos atrás, Juliomar Marchetti disse:

mas tu está usando NFSe ou NFe?

pois cada um é um documento fiscal diferente

NFSe 

  • Consultores
Postado

ótimo então agora vai ao exemplo em 

trunk2/exemplos/ACbrDFe/ACBrNFSeX/Delphi

e é com o componente TACBrNFSeX

lembrando tu emite o DPS(ou RPS) envia ao projeto nacional ou ao provedor e eles retornam a NFSE

dito isso é no exemplo que temos:

image.png

 

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 !!

Postado
14 horas atrás, Juliomar Marchetti disse:

ótimo então agora vai ao exemplo em 

trunk2/exemplos/ACbrDFe/ACBrNFSeX/Delphi

e é com o componente TACBrNFSeX

lembrando tu emite o DPS(ou RPS) envia ao projeto nacional ou ao provedor e eles retornam a NFSE

dito isso é no exemplo que temos:

image.png

Beleza.. Ficou assim:

procedure TDMNF.GerarNOta(pNumNF: integer);
var
  vNumLote, vServicos, sFuncao, sValor, sDescricaoNota, sNomeSetor : String;
  vValorISS: Double;
  vRetido: boolean;
  iCodigoSetor : integer;
  IBSCBSTot: TIBSCBSTot;
  vlr_, ibs_, cbs_: Double;
begin
vRetido   := False;
vServicos := EmptyStr;
vNumLote := DM.qryNFMestreID.AsString.Trim;

 try
  with ACBrNFSe do
  begin
   NotasFiscais.Clear;
   NotasFiscais.NumeroLote := vNumLote;

   with NotasFiscais.New.NFSe do
    begin
      IdentificacaoRps.Numero := IntToStr(pNumNF);
      IdentificacaoRps.Serie  := '1'; //
      NumeroLote              := vNumLote;

      // trRPS, trNFConjugada, trCupom;
      IdentificacaoRps.Tipo   := trRPS;
      DataEmissao             := now;
      Competencia             := Now;
      NaturezaOperacao        := no1;

      // retNenhum, retMicroempresaMunicipal, retEstimativa, retSociedadeProfissionais, retCooperativa, retMicroempresarioIndividual, retMicroempresarioEmpresaPP );
      IncentivadorCultural    := snnao;

      if DM.qryEmpresaNotaFiscalRegimeTributario.Value = 3 then
        RegimeEspecialTributacao := retNenhum else
        RegimeEspecialTributacao := retMicroempresarioEmpresaPP ;

      if DM.qryEmpresaNotaFiscalRegimeTributario.Value = 3  then
         OptanteSimplesNacional := snNao else
         OptanteSimplesNacional := snSim;


        //--------------- TIPO DE AMBIENTE ===
        Producao := snSim;
        //---------------

      StatusRps := srNormal;

     //---- IBPT
      Servico.FonteCargaTributaria        := 'IBPT';
      Servico.PercentualCargaTributaria   := 16.23;
      Servico.ValorCargaTributaria        := DM.qryNFMestreIBPT.AsCurrency;

     //----

      Servico.Valores.ValorServicos := dm.qryNFMestreSubtotal.AsCurrency;
      Servico.Valores.ValorDeducoes := 0;
      Servico.Valores.ValorPis      := dm.qryNFMestrePIS.AsCurrency    ;
      Servico.Valores.ValorCofins   := dm.qryNFMestreCOFINS.AsCurrency ;
      Servico.Valores.ValorInss     := 0   ;
      Servico.Valores.ValorIr       := dm.qryNFMestreIRRF.AsCurrency   ;
      Servico.Valores.ValorCsll     := dm.qryNFMestreCSLL.AsCurrency   ;

      if DM.qryNFMestreISS.Value > 0 then
         vRetido := true else
         vRetido := false;

      if vRetido = True then
         begin
         Servico.Valores.IssRetido   := stRetencao;
         Servico.ResponsavelRetencao := rtTomador;
         end else

         Servico.Valores.IssRetido := stNormal;

      Servico.Valores.OutrasRetencoes        := 0.00;
      Servico.Valores.DescontoIncondicionado := 0.00;
      Servico.Valores.DescontoCondicionado   := 0.00;
      Servico.Valores.BaseCalculo            := Servico.Valores.ValorServicos -
                                                Servico.Valores.ValorDeducoes -
                                                Servico.Valores.DescontoIncondicionado;

      Servico.Valores.Aliquota :=  DM.qryNFClienteDadosNFPorcentagemISS.Value;

    if Servico.Valores.IssRetido = stNormal then
      begin
        if OptanteSimplesNacional = snSim then
          vValorISS := 0 else
          vValorISS := (Servico.Valores.BaseCalculo * Servico.Valores.Aliquota) / 100;

        Servico.Valores.ValorIss       := vValorISS;
        Servico.Valores.ValorIssRetido := 0.00;
      end  else
      begin
        vValorISS := ACBrUtil.RoundABNT(Servico.Valores.BaseCalculo * Servico.Valores.Aliquota, 2) / 100;

        Servico.Valores.ValorIssRetido  := vValorISS;
        Servico.Valores.ValorIss        := vValorISS;
      end;


      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.ItemListaServico          := '06491'  ;// '5134';        //-- CFOP da Funcao
      Servico.ResponsavelRetencao       := rtPrestador;

      // Codigo do Municipio
      Servico.CodigoMunicipio           := '3550308';
      Servico.CodigoTributacaoMunicipio := DM.qryEmpresaNotaFiscalCodTribMun.AsString;

      // Informar A Exigibilidade ISS para fintelISS [1/2/3/4/5/6/7]
      Servico.ExigibilidadeISS          := exiExigivel;

      // Informar para Saatri
      Servico.CodigoPais                := 1058; // Brasil
      Servico.MunicipioIncidencia       := DM.qryEmpresaNotaFiscalCodTribMun.Value;


      //--Dados Detalhe
     DM.ListarNotaFiscalDetalhe(DM.qryListaNFNumeroNF.Value);
     DM.qryNFDetalhe.First;

     sDescricaoNota := '';
     sNomeSetor     := '';
     iCodigoSetor   := Dm.qryNFMestreIDSetor.Value;

     if iCodigoSetor > 0 then
        begin
          DM.ListarSetor(iCodigoSetor);
          sNomeSetor := '/ SETOR '  +DM.qrySetorDescricao.Text ;
        end;

     sDescricaoNota := 'SERVICOS PRESTADOS ' + sNomeSetor +#13+#13 ;
     sDescricaoNota := sDescricaoNota + 'VENCIMENTO ' + dm.qryNFMestreDtVencimento.Text + #13+#13;
     sDescricaoNota := sDescricaoNota + 'VALOR LIQ ' + FormatFloat('0.00', dm.qryNFMestreTotal.AsFloat)+#13+#13;
     sDescricaoNota := sDescricaoNota + 'VALOR APROXIMADO DOS TRIBUTOS / FONTE IBPT CHAVE OC3829 - TRIBUTAÇÃO FEDERAL 13,45% E TRIBUTAÇÃO MUNICIPAL 2,78%' + #13;

      // CNAE
      Servico.CodigoCnae                := ACBrUtil.OnlyNumber(DM.qryEmpresaNotaFiscalCNAE.AsString);
      Servico.Discriminacao             := '"' + sDescricaoNota + '"';
      Servico.ItemServico.Add.Descricao := '"' + sDescricaoNota + '"';
      vServicos                         := DM.qryNFMestreSubtotal.AsString.Trim + #13 + #10;

      // Dados do Prestador
      Prestador.IdentificacaoPrestador.Cnpj               := ACBrUtil.OnlyNumber(DM.qryEmpresaCNPJ.Value);
      Prestador.IdentificacaoPrestador.InscricaoMunicipal := ACBrUtil.OnlyNumber(DM.qryEmpresaInscEstadual.Value);

      // Para o provedor ISSDigital deve-se informar também:
      Prestador.cUF                                   := 3550308;

      // Tomador
      Tomador.IdentificacaoTomador.CpfCnpj            := ACBrUtil.OnlyNumber(TiraPontos(DM.qryNFClienteCNPJ.AsString.Trim));
      Tomador.IdentificacaoTomador.InscricaoMunicipal := ACBrUtil.OnlyNumber(TiraPontos(DM.qryNFClienteIM.AsString.Trim));
      Tomador.RazaoSocial                             := DM.qryNFClienteRazao.AsString.Trim;
      Tomador.Endereco.Endereco                       := DM.qryNFClienteENDERECO.AsString.Trim;
      Tomador.Endereco.Numero                         := DM.qryNFClienteNumEndereco.AsString.Trim;
      Tomador.Endereco.Complemento                    := DM.qryNFClienteCOMPLEMENTO.AsString.Trim;
      Tomador.Endereco.Bairro                         := DM.qryNFClienteBAIRRO.AsString.Trim;
      Tomador.Endereco.CodigoMunicipio                := '3550308';
      Tomador.Endereco.UF                             := DM.qryNFClienteUF.AsString.Trim;
      Tomador.Endereco.CodigoPais                     := 1058;
      Tomador.Endereco.xPais                          := 'BRASIL';
      Tomador.Endereco.CEP                            := ACBrUtil.OnlyNumber(DM.qryNFClienteCEP.AsString.Trim);
      Tomador.IdentificacaoTomador.CpfCnpj            := ACBrUtil.OnlyNumber(TiraPontos(DM.qryNFClienteCNPJ.AsString.Trim));
      Tomador.IdentificacaoTomador.InscricaoEstadual  := ACBrUtil.OnlyNumber(DM.qryNFClienteIE.AsString.Trim);
      Tomador.Contato.Telefone                        := ACBrUtil.OnlyNumber(DM.qryNFClienteTel1.AsString.Trim);
      Tomador.Contato.Email                           := DM.qryNFClienteEmail.AsString.Trim;
      Tomador.AtualizaTomador                         := snNao;
      Tomador.TomadorExterior                         := snNao;
      CondicaoPagamento.QtdParcela := 1;
      CondicaoPagamento.Condicao   := cpAVista;

           with CondicaoPagamento.Parcelas.New do
            begin
             Parcela := '1';
             DataVencimento := Date + (30 * 1);
             Valor := (Servico.Valores.ValorLiquidoNfse / CondicaoPagamento.QtdParcela);

             vlr_ := Valor;
            end;

          // Cálculo IBS/CBS
          vlr_ := vlr_ + DM.qryNFMestreIRRF.AsCurrency;
          ibs_ := RoundTo((vlr_ * 0.001), -2);
          cbs_ := RoundTo((vlr_ * 0.009), -2);

          IBSCBSTot.vBCIBSCBS                := vlr_;
          IBSCBSTot.gIBS.vIBS                := ibs_;
          IBSCBSTot.gCBS.vCBS                := cbs_;
    end;

  end;
    frmListaNotaFiscal.MemoDados.Lines.Add('NFSe montada com sucesso.');
      except
        on E: Exception do
        begin
          frmListaNotaFiscal.MemoDados.Lines.Add('Erro ao montar NFSe: ' + E.Message);
          GravarLogErro(E.Message);
        end;

 end;
end;

...mas não consegui enviar e não estou conseguindo achar o erro

Postado

Vendo outros post por aqui.. corrigi alguns campos. Mas agora permanece o seguinte erro:

Mensagem: Erro de Validação:  --> 1871 - Element 'IBSCBS': This element is not expected. Expected is one of ( CodigoCEI, MatriculaObra, MunicipioPrestacao, NumeroEncapsulamento, ValorTotalRecebido ).
 

   //--- Reforma trib tentativa 2
        IBSCBS.finNFSe := fnfsRegular;

        IBSCBS.indFinal := ifNao;
        IBSCBS.cIndOp := '100301';
        IBSCBS.tpOper := togNenhum;
        IBSCBS.tpEnteGov := tcgNenhum;

        IBSCBS.valores.trib.gIBSCBS.CST        := cst000;
        IBSCBS.valores.trib.gIBSCBS.cClassTrib := '000001';
        IBSCBS.valores.trib.gIBSCBS.cCredPres  := cpNenhum;

        IBSCBS.valores.trib.gIBSCBS.gTribRegular.CSTReg := cstNenhum;
        IBSCBS.valores.trib.gIBSCBS.gTribRegular.cClassTribReg := '';

   //-- Fim tentativa 2

 

Postado
Em 22/04/2026 at 20:07, Juliomar Marchetti disse:

ótimo então agora vai ao exemplo em 

trunk2/exemplos/ACbrDFe/ACBrNFSeX/Delphi

e é com o componente TACBrNFSeX

lembrando tu emite o DPS(ou RPS) envia ao projeto nacional ou ao provedor e eles retornam a NFSE

dito isso é no exemplo que temos:

image.png

Eu consigo emitir a NFSe normalmente, mas quando acrescento os iten de CBS / IBS me retorna erro.

Refis o código com base nos modelos que vi aqui no forum e dúvida de outros colegas, mas continua a não reconhecer vBCIBS, pAliqIBS, vIBS, vBCCBS, pAliqCBS, vCBS, vTotReceb

 

Por favor, o que estou fazendo de errado?

GerarNota3.txt

Postado

Por favor, alguém poderia me dar uma luz?

(mais uma vez infelizmente não tenho ajuda do contador da empresa do meu cliente)

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.