Ir para conteúdo
  • Cadastre-se

Fabio.Maioli

Membros
  • Total de ítens

    1
  • Registro em

  • Última visita

Posts postados por Fabio.Maioli

  1. 2 horas atrás, datilas disse:

    na unit ACBrXmlBase.pas

    function ObterConteudoTag(const ANode: TACBrXmlNode; const Tipo: TACBrTipoCampo): variant;

    alterar 
    result := (ConteudoTag;
    para
    result := ACBrStrToAnsi(ConteudoTag);

    e

    result := EncodeDataHora(ConteudoTag, 'YYYY/MM/DD')
    para

    result := Iso8601ToDateTime(ConteudoTag)

    resolve a data e os acentos.

    function ObterConteudoTag(const ANode: TACBrXmlNode; const Tipo: TACBrTipoCampo): variant;
    var
      ConteudoTag: string;
      iDecimais: Integer;
      aFloatIsIntString: Boolean;
    begin
      if not Assigned(ANode) or (ANode = nil) then
      begin
        ConteudoTag := '';
        aFloatIsIntString := False;
      end
      else
      begin
        ConteudoTag := Trim(ANode.Content);
        aFloatIsIntString := ANode.FloatIsIntString;
      end;
    
      case Tipo of
        tcStr,
        tcEsp:
          result := ACBrStrToAnsi(ConteudoTag);
    
        tcDat,
        tcDatHor,
        tcDatCFe,
        tcDatHorCFe:
          begin
            if length(ConteudoTag) > 0 then
              result := Iso8601ToDateTime(ConteudoTag)
            else
              result := 0;
          end;
    
        tcDatVcto:
          begin
            if length(ConteudoTag) > 0 then
              result := EncodeDataHora(ConteudoTag, 'DD/MM/YYYY')
            else
              result := 0;
          end;
    
        tcDatUSA:
          begin
            if length(ConteudoTag) > 0 then
              result := EncodeDataHora(ConteudoTag, 'MM/DD/YYYY')
            else
              result := 0;
          end;
    
        tcHor:
          begin
            if length(ConteudoTag) > 0 then
              result := EncodeTime(StrToInt(copy(ConteudoTag, 1, 2)),
                                   StrToInt(copy(ConteudoTag, 4, 2)),
                                   StrToInt(copy(ConteudoTag, 7, 2)), 0)
            else
              result := 0;
          end;
    
        tcHorCFe:
          begin
            if length(ConteudoTag) > 0 then
              result := EncodeTime(StrToInt(copy(ConteudoTag, 1, 2)),
                                   StrToInt(copy(ConteudoTag, 3, 2)),
                                   StrToInt(copy(ConteudoTag, 5, 2)), 0)
            else
              result := 0;
          end;
    
        tcDe2, tcDe3, tcDe4, tcDe5, tcDe6, tcDe7, tcDe8, tcDe10:
          begin
            if aFloatIsIntString then
            begin
              case Tipo of
                tcDe2:  iDecimais := 2;
                tcDe3:  iDecimais := 3;
                tcDe4:  iDecimais := 4;
                tcDe5:  iDecimais := 5;
                tcDe6:  iDecimais := 6;
                tcDe7:  iDecimais := 7;
                tcDe8:  iDecimais := 8;
                tcDe10: iDecimais := 10;
              else
                iDecimais := 2;
              end;
    
              Result := StringDecimalToFloat(ConteudoTag, iDecimais);
            end
            else
              Result := StringToFloatDef(ConteudoTag, 0);
          end;
    
        tcInt:
          begin
            if length(ConteudoTag) > 0 then
              result := StrToIntDef(OnlyNumber(ConteudoTag), 0)
            else
              result := 0;
          end;
    
        tcInt64:
          begin
            if length(ConteudoTag) > 0 then
              result := StrToInt64Def(OnlyNumber(ConteudoTag), 0)
            else
              result := 0;
          end;
    
        tcBool:
          begin
            if length(ConteudoTag) > 0 then
            begin
              ConteudoTag := NormatizarBoolean(ConteudoTag);
              result := StrToBool(ConteudoTag);
            end
            else
              result := False;
          end;
    
        tcStrOrig:
          begin
            // Falta implementar
            Result := '';
          end;
    
        tcNumStr:
          begin
            // Falta implementar
            Result := '';
          end
    
      else
        raise Exception.Create('Node <' + ANode.Name + '> com conteúdo inválido. ' +
                               ConteudoTag);
      end;
    end;

     

    7895511301093.txt 149 B · 1 download 7896380103188.txt 159 B · 1 download

    Boa Tarde!

    Primeiro gostaria de parabenizar a todos pela ajuda que tive ao ler o fórum e encontrar várias informações.

    Estou utilizando os arquivos Xml enviados pelo Datilas no Postman para efetuar testes iniciais de consulta GTIN por webservice. Não sei se vocês já se depararam com essa situação mas utilizando um leiaute de xml ocorre erro de rejeição 588 -

    <xMotivo>Rejeicao: Nao eh permitida a presenca de caracteres de edicao no inicio/fim da mensagem ou entre as tags da mensagem</xMotivo>
     
    <?xml version="1.0" encoding="UTF-8"?>
    <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <soap12:Body>
          <ccgConsGTIN xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/ccgConsGtin">
             <nfeDadosMsg>
                <consGTIN xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
                   <GTIN>7896380103188</GTIN>
                </consGTIN>
             </nfeDadosMsg>
          </ccgConsGTIN>
       </soap12:Body>
    </soap12:Envelope>
     
    E se informo o leiaute todo sem espaços, a resposta é positiva. É isso mesmo? Obrigado a Todos.
    <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ccgConsGTIN xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/ccgConsGtin"><nfeDadosMsg><consGTIN xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00"><GTIN>7896380103188</GTIN></consGTIN></nfeDadosMsg></ccgConsGTIN></soap:Body></soap:Envelope>
     
    Obrigado a Todos.
     
     
     
×
×
  • 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.