1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] Valores DIFAL Origem e Destino

Discussão em 'EMS , HCM e Totvs 11' iniciado por marcosflizi, Novembro 13, 2018.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    no meu exemplo, eu estou partindo da tabela de Obrigações fiscais, mas a item-nf-adc é a mesma pra nota-fiscal.
    Código:
                                        for each  item-nf-adc no-lock
                                            where item-nf-adc.cod-estab        = doc-fiscal.cod-estabel
                                              and item-nf-adc.cod-serie        = doc-fiscal.serie
                                              and item-nf-adc.cod-nota-fisc    = doc-fiscal.nr-doc-fis
                                              and item-nf-adc.cdn-emitente     = doc-fiscal.cod-emitente
                                              and item-nf-adc.cod-natur-operac = doc-fiscal.nat-operacao
                                              and item-nf-adc.idi-tip-dado     = 24
                                              and item-nf-adc.num-seq          = item-nf-adc.num-seq
                                              and item-nf-adc.num-seq-item-nf  = it-doc-fisc.nr-seq-doc
                                              and item-nf-adc.cod-item         = it-doc-fisc.it-codigo:
                                            assign vl-difal-it = vl-difal-it + item-nf-adc.val-livre-3.
                                        end.
    
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    o fundo de pobreza é uma conta, eu não achei no sistema ...
    Código:
                define variable baseIcms      as decimal   no-undo.
                define variable valorIcms     as decimal   no-undo.
                define variable valorNF       as decimal   no-undo.
    
                define variable icmsDevido    as decimal   no-undo.
                define variable fecpDevido    as decimal   no-undo.
    
                empty temp-table ttResumo.
    
                for each  doc-fiscal use-index ch-registro no-lock
                    where doc-fiscal.dt-docto    >= periodoInicial
                      and doc-fiscal.dt-docto    <= periodoFinal
                      and doc-fiscal.tipo-nat     = 2 // Saidas
                      and doc-fiscal.cod-estabel >= estabelecimentoInicial
                      and doc-fiscal.cod-estabel <= estabelecimentoFinal
                      and doc-fiscal.esp-docto    = doc-fiscal.esp-docto
                      and doc-fiscal.serie        = doc-fiscal.serie
                      and doc-fiscal.nr-doc-fis   = doc-fiscal.nr-doc-fis
                    ,
                    first natur-oper no-lock
                    where natur-oper.nat-operacao = doc-fiscal.nat-operacao
                    ,
                    first emitente no-lock
                    where emitente.cod-emitente = doc-fiscal.cod-emitente
                    break
                       by doc-fiscal.dt-docto
                       by doc-fiscal.cod-estabel:
    
                    acomp:acompanhar(substitute('LENDO OF &1-&2-&3', doc-fiscal.dt-docto, doc-fiscal.cod-estabel, doc-fiscal.nr-doc-fis)).
    
                    assign baseIcms  = 0
                           valorIcms = 0
                           valorNF   = 0.
    
                    if doc-fiscal.ind-sit-doc <> 1 then next.
                    if doc-fiscal.esp-docto <> 'NFS' then if doc-fiscal.esp-docto <> 'NFT' then next.
    
                    for each it-doc-fisc of doc-fiscal no-lock:
                        if it-doc-fisc.cd-trib-icm <> 1 then next.
                        assign baseIcms  = baseIcms  + it-doc-fisc.vl-bicms-it
                               valorIcms = valorIcms + it-doc-fisc.vl-icms-it
                               valorNF   = valorNF   + it-doc-fisc.vl-tot-item.
                    end.
    
                    if baseIcms <= 0 then next.
                    if valorNF  <= 0 then next.
    
                    assign icmsDevido = 0
                           fecpDevido = 0.
    
                    assign icmsDevido = valorNF * 0.01
                           fecpDevido = valorNF * 0.01.
    
                    if doc-fiscal.dt-docto >= 03/28/2016 then do:
                        assign fecpDevido = valorNF * 0.02.
                        if doc-fiscal.nat-operacao begins '5' then do:
                            assign icmsDevido = valorNF * 0.11.
                            if doc-fiscal.nat-operacao = '5949E9' then assign icmsDevido = valorNF * 0.18.
                        end.
                    end.
    
                    create ttResumo.
                    assign ttResumo.ano              = year(doc-fiscal.dt-docto)
                           ttResumo.mes              = month(doc-fiscal.dt-docto)
                           ttResumo.dtEmisNota       = doc-fiscal.dt-docto
                           ttResumo.chaveAcesso      = 'NFe' + substring(doc-fiscal.char-2,155,44)
                           ttResumo.codEstabel       = doc-fiscal.cod-estabel
                           ttResumo.serie            = doc-fiscal.serie
                           ttResumo.nrNotaFis        = doc-fiscal.nr-doc-fis
                           ttResumo.natOperacao      = doc-fiscal.nat-operacao
                           ttResumo.descNatOperacao  = natur-oper.denominacao
                           ttResumo.cnpjCliente      = emitente.cgc
                           ttResumo.nomeCliente      = emitente.nome-emit + ' (' + string(emitente.cod-emitente) + ')'
                           ttResumo.ufCliente        = emitente.estado
                           ttResumo.IECliente        = emitente.ins-estadual
                           ttResumo.baseIcms         = baseIcms
                           ttResumo.valorIcms        = valorIcms
                           ttResumo.valorNF          = valorNF
                           ttResumo.icmsDevido       = icmsDevido
                           ttResumo.fecpDevido       = fecpDevido.
                end.
    
  3. rlfritz

    rlfritz Membro Ativo

    Eu achei isso:

    Código:
            
    ASSIGN d-vlr1 = 0
                   d-vlr2 = 0.
    
            FOR EACH item-nf-adc NO-LOCK WHERE item-nf-adc.cod-estab = nota-fiscal.cod-estabel AND
                                               item-nf-adc.cod-serie = nota-fiscal.serie AND
                                               item-nf-adc.cod-nota-fisc = nota-fiscal.nr-nota-fis AND
                                               item-nf-adc.cdn-emitente = nota-fiscal.cod-emitente AND
                                               item-nf-adc.num-seq-item-nf = it-nota-fisc.nr-seq-fat AND
                                               item-nf-adc.idi-tip-dado = 24:
                ASSIGN d-vlr1 = d-vlr1 + round(item-nf-adc.val-livre-4,2)
                                d-vlr2 = d-vlr2 + round(item-nf-adc.val-livre-3,2).
            END.
    
    As variáveis d-vlr1 e d-vlr2 terão o valor do DIFAL Origem e Destino.
    O valor total do DIFAL é a soma de d-vlr1 + d-vlr2.
  4. marcosflizi

    marcosflizi Membro Participativo

    Pessoal o valor do FCP também esta na tabela item-nf-adc com o código 25, mas não tem o valor em si, mas tem a base de cálculo e o percentual com isto chega no valor.
    Consegui montar o relatório.
    Valeu moçada.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página