Ir para conteúdo
  • Cadastre-se

Ivonei Balena

Membros
  • Total de ítens

    4
  • Registro em

  • Última visita

Posts postados por Ivonei Balena

  1. Eu percebi que o arquivo tem 2 campos blobs.

    Todos eles tem e nenhum consigo ler. 

    Ao converter / importar para firebird eles vem sem valor.

    Pode ser que seja isso que impossibilite a leitura pelo firedac. Vou cobrar o cara que me passou eles, se por acaso ele não esqueceu de algum arquivo.

    Qualquer evolução no caso relato aqui, muito obrigado!

  2. Bom dia a todos.

    Tive o mesmo problema na leitura do XML.

    O problema é que o TIPI.CST tem default ipi00.

    property CST: TpcnCstIpi read FCST write FCST default ipi00;

    Como a leitura do XML ignora quando não tem a tag IPI (Código abaixo), acaba ficando 00 para todos que não tem ela.

        if Leitor.rExtrai(3, 'IPI') <> '' then
        begin
          (*O02*)NFe.Det[i].Imposto.IPI.clEnq    := Leitor.rCampo(tcStr, 'clEnq');
          (*O03*)NFe.Det[i].Imposto.IPI.CNPJProd := Leitor.rCampo(tcStr, 'CNPJProd');
          (*O04*)NFe.Det[i].Imposto.IPI.cSelo    := Leitor.rCampo(tcStr, 'cSelo');
          (*O05*)NFe.Det[i].Imposto.IPI.qSelo    := Leitor.rCampo(tcInt, 'qSelo');
          (*O06*)NFe.Det[i].Imposto.IPI.cEnq     := Leitor.rCampo(tcStr, 'cEnq');
    
    
          // Inicializa CST com sendo Não tributada e conforme o TIPO entrada ou saida
          // Caso a Tag não seja informada sera gravada com sendo não tributada
          if NFe.ide.tpNF = tnEntrada then
            NFe.Det[i].Imposto.IPI.CST := ipi53;
          if NFe.ide.tpNF = tnSaida then
            NFe.Det[i].Imposto.IPI.CST := ipi03;
    
          if Leitor.rExtrai(3, 'IPITrib') <> '' then
          begin
            (*O09*)NFe.Det[i].Imposto.IPI.CST   := StrToCSTIPI(ok, Leitor.rCampo(tcStr, 'CST'));
            (*O10*)NFe.Det[i].Imposto.IPI.vBC   := Leitor.rCampo(tcDe2, 'vBC');
            (*O11*)NFe.Det[i].Imposto.IPI.qUnid := Leitor.rCampo(tcDe4, 'qUnid');
            (*O12*)NFe.Det[i].Imposto.IPI.vUnid := Leitor.rCampo(tcDe4, 'vUnid');
            (*O13*)NFe.Det[i].Imposto.IPI.pIPI  := Leitor.rCampo(tcDe2, 'pIPI');
            (*O14*)NFe.Det[i].Imposto.IPI.vIPI  := Leitor.rCampo(tcDe2, 'vIPI');
          end;
          if Leitor.rExtrai(3, 'IPINT') <> '' then
          begin
            (*O09*)NFe.Det[i].Imposto.IPI.CST := StrToCSTIPI(ok, Leitor.rCampo(tcStr, 'CST'));
          end;
        end;
    

    Não me parece o mais certo, ainda mais porque ele é "Entrada com recuperação de crédito".

    Vejam que ele até seta valores padrões, mas só quando tem a tag IPI. (Errados a meu ver, pois em notas de entrada seta o 53 ("Saída Não-Tributada") e nas notas da saída seta o 03 ("Entrada Não-Tributada"). )

    Então eu movi esse bloco para fora do IF setando um valor padrão sempre, independente se tem ou não a tag de IPI, e inverti os CST de entrada e saída.

        // Inicializa CST com sendo Não tributada e conforme o TIPO entrada ou saida
        // Caso a Tag não seja informada sera gravada com sendo não tributada
        if NFe.ide.tpNF = tnEntrada then
          NFe.Det[i].Imposto.IPI.CST := ipi03;
        if NFe.ide.tpNF = tnSaida then
          NFe.Det[i].Imposto.IPI.CST := ipi53;
    
        if Leitor.rExtrai(3, 'IPI') <> '' then
        begin
          //Carrega os dados do IPI
        end;
    
    
    

     

    Pra mim resolveu!

    Espero ter ajudado!

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

The popup will be closed in 10 segundos...