Ir para conteúdo
  • Cadastre-se

lemuel

Membros
  • Total de ítens

    7
  • Registro em

  • Última visita

Posts postados por lemuel

  1. Boa tarde,

    a função que faz uso é function TACBrXmlWriter.AddNode. 

        tcNumStr:
        begin
          ConteudoProcessado := Trim(VarToStr(valor));
          EstaVazio := ConteudoProcessado = '';
    
          if Length(ConteudoProcessado) < TamMin then
            ConteudoProcessado := PadLeft(ConteudoProcessado, TamMin, '0');
        end;

    Conforme você pode verificar, existe a implementação para essa conversão e está verificando o parâmetro de tamanho. Realizei somente a alteração que indiquei no inicio e funcionou corretamente.

     

  2. Boa tarde.
    Iniciei alguns testes com o NFS-e aqui do meu município e estou recebendo o seguinte retorno:

    Citar
    Erro(s):
    Código  : X800
    Mensagem: Erro de Validação:  --> 1839 - Element '{http://www.abrasf.org.br/nfse.xsd}ExigibilidadeISS': [facet 'pattern'] The value '1' is not accepted by the pattern '01|02|03|04|05'.
    
    Correção: 
    ---------

    Identifiquei que é um problema no componente, mais especificamente na Unit "ACBrNFSeXGravarXml_ABRASFv2", na "function TNFSeW_ABRASFv2.GerarServico: TACBrXmlNode; ", na linha "Result.AppendChild(AddNode(tcStr, '#36', 'ExigibilidadeISS',". o Correto nessa linha é "Result.AppendChild(AddNode(tcNumStr, '#36', 'ExigibilidadeISS',", portanto essa função deveria ficar da seguinte forma:

     

    function TNFSeW_ABRASFv2.GerarServico: TACBrXmlNode;
    var
      item: string;
    begin
      Result := CreateElement('Servico');
    
      Result.AppendChild(GerarValores);
    
      if GerarTagServicos then
      begin
        Result.AppendChild(AddNode(tcStr, '#20', 'IssRetido', 1, 1, NrOcorrIssRetido,
          FpAOwner.SituacaoTributariaToStr(NFSe.Servico.Valores.IssRetido), DSC_INDISSRET));
    
        Result.AppendChild(AddNode(tcStr, '#21', 'ResponsavelRetencao', 1, 1, NrOcorrRespRetencao,
         FpAOwner.ResponsavelRetencaoToStr(NFSe.Servico.ResponsavelRetencao), DSC_INDRESPRET));
    
        item := FormatarItemServico(NFSe.Servico.ItemListaServico, FormatoItemListaServico);
    
        Result.AppendChild(AddNode(tcStr, '#29', 'ItemListaServico', 1, 8, NrOcorrItemListaServico,
                                                              item, DSC_CLISTSERV));
    
        Result.AppendChild(AddNode(tcStr, '#30', 'CodigoCnae', 1, 9, NrOcorrCodigoCNAE,
                                    OnlyNumber(NFSe.Servico.CodigoCnae), DSC_CNAE));
    
        Result.AppendChild(AddNode(tcStr, '#31', 'CodigoTributacaoMunicipio', 1, 20, NrOcorrCodTribMun_1,
                         NFSe.Servico.CodigoTributacaoMunicipio, DSC_CSERVTRIBMUN));
    
        Result.AppendChild(AddNode(tcStr, '#32', 'Discriminacao', 1, 2000, NrOcorrDiscriminacao_1,
          StringReplace(NFSe.Servico.Discriminacao, ';', FpAOwner.ConfigGeral.QuebradeLinha,
                                         [rfReplaceAll, rfIgnoreCase]), DSC_DISCR));
    
        Result.AppendChild(AddNode(tcStr, '#33', 'CodigoMunicipio', 1, 7, NrOcorrCodigoMunic_1,
                               OnlyNumber(NFSe.Servico.CodigoMunicipio), DSC_CMUN));
    
        Result.AppendChild(AddNode(tcStr, '#31', 'CodigoTributacaoMunicipio', 1, 20, NrOcorrCodTribMun_2,
                         NFSe.Servico.CodigoTributacaoMunicipio, DSC_CSERVTRIBMUN));
    
        Result.AppendChild(AddNode(tcStr, '#32', 'CodigoNbs', 1, 9, NrOcorrCodigoNBS,
                                     OnlyNumber(NFSe.Servico.CodigoNBS), DSC_CMUN));
    
        Result.AppendChild(AddNode(tcStr, '#33', 'Discriminacao', 1, 2000, NrOcorrDiscriminacao_2,
          StringReplace(NFSe.Servico.Discriminacao, ';', FpAOwner.ConfigGeral.QuebradeLinha,
                                         [rfReplaceAll, rfIgnoreCase]), DSC_DISCR));
    
        Result.AppendChild(AddNode(tcStr, '#34', 'CodigoMunicipio', 1, 7, NrOcorrCodigoMunic_2,
                               OnlyNumber(NFSe.Servico.CodigoMunicipio), DSC_CMUN));
    
        Result.AppendChild(AddNode(tcInt, '#35', 'CodigoPais', 4, 4, NrOcorrCodigoPaisServico,
                                               NFSe.Servico.CodigoPais, DSC_CPAIS));
    
        Result.AppendChild(AddNode(tcNumStr, '#36', 'ExigibilidadeISS',
                                   NrMinExigISS, NrMaxExigISS, NrOcorrExigibilidadeISS,
        StrToInt(FpAOwner.ExigibilidadeISSToStr(NFSe.Servico.ExigibilidadeISS)), DSC_INDISS));
    
        Result.AppendChild(AddNode(tcInt, '#37', 'MunicipioIncidencia', 7, 7, NrOcorrMunIncid,
                                    NFSe.Servico.MunicipioIncidencia, DSC_MUNINCI));
    
        Result.AppendChild(AddNode(tcStr, '#38', 'NumeroProcesso', 1, 30, NrOcorrNumProcesso,
                                       NFSe.Servico.NumeroProcesso, DSC_NPROCESSO));
    
        Result.AppendChild(GerarListaItensServico);
      end;
    end;

     

  3. 16 horas atrás, norldir disse:

    Outra ponto que gostaria de ver se tenho como capturar o token e/ou setar o token no componente, pois caso o PDV seja fechado antes deste prazo eu posso recolocar o token de autenticação no componente e utilizar ele até o prazo de expiração.

    Existe esta funcionalidade no ACBRPix, de capturar o token e o refreshtoken e posteriormente setar eles de volta no componente?

    Olá, você pode usar os eventos OnDepoisAutenticar para gravar o token e a validade e  OnAntesAutenticar para usar os dados gravados.

    Esses eventos estão no componente ACBrPSPShipay.

     

    A validade atualmente está fixa em 24 horas no componente, a Shipay não retorna essa informação. Com a redução do  tempo de validade, será necessário alterar no componente. Tambem estou aguardando essa alteração.

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