Inserir valor de outras despesas ao gerar NF via UPC

Discussão em 'EMS , HCM e Totvs 11' iniciado por fabianofss, Novembro 4, 2024.

  1. fabianofss

    fabianofss Membro Participativo

    Boa tarde,
    estou gerando nota fiscal pela BODI317, preciso incluir em outras despesas da nota valores adicionais e juros mas não estou tendo sucesso.

    informo os valores no wt-it-docto mas ai consultar o it-nota-fisc está zerado novamente.
    seria o campo it-nota-fisc.vl-despesit-e[3].

    No caso estou fazendo: assign wt-it-docto.vl-despesit-e[3] = tt-it-faturar.vl-acrescimo.

    Código:
    /* Cria o registro WT-DOCTO para o pedido */
            run criaWtDocto in h-bodi317sd(c-seg-usuario // Usuário do sistema
                                                        , c-cod-estabel // Código do estabelecimento da nota
                                                        , c-serie // Série da nota fiscal
                                                        , "1" // Número da nota fiscal, para notas manuais
                                                        , c-nome-abrev // Código, nome abreviado ou CGC do cliente
                                                        , c-nr-pedcli // Número do pedido de venda, quando existir
                                                        , 1 // Tipo da nota fiscal: 01: Sistema (com pedido ou com embarque), 02: Nota Manual, 03: Diferença de preço, 04: Complementar de mercadoria, 50: Complementar de imposto
                                                        , 9999  // Código do programa que gerou a nota
                                                        , da-dt-emis-nota // Data de emissão da nota fiscal
                                                        , 0 // Número do embarque, quando existir
                                                        , c-nat-operacao // Código da natureza de operação
                                                        , c-cod-canal-venda // Código do canal de venda do cliente, quando existir
                                                        , output i-seq-wt-docto // Seqüência do documento (chave única)
                                                        , output l-proc-ok-aux // Execução do método com sucesso ou não
                                                        ).
    
            LOG-MANAGER:WRITE-MESSAGE("Gerou NR Nota Fis: " + string(i-seq-wt-docto), 'DEBUG_1').
    
            /* Busca possíveis erros que ocorreram nas validações */
            run devolveErrosbodi317sd in h-bodi317sd (output c-ultimo-metodo-exec, output table ttRowErrors).
            run addErrorsFrom(table ttRowErrors).
            run checkHasErrors.
           
            // Disponibilizar o registro WT-DOCTO na bodi317sd
            run localizaWtDocto in h-bodi317sd(input  i-seq-wt-docto, output l-proc-ok-aux).
    
            // Atualizar informações customizadas da nota fiscal
            for first wt-docto
            where wt-docto.seq-wt-docto = i-seq-wt-docto
            exclusive-lock:
                LOG-MANAGER:WRITE-MESSAGE("Atualizando dados da Nota", 'DEBUG_1').
    
                assign wt-docto.observ-nota = wt-docto.observ-nota + " Acesse: www.scaniaofertas.com.br, ".       
    
                //Complementar informações NF
                for first tt-orcamento:
                    assign
                    wt-docto.vl-embalagem = tt-orcamento.vl-embalagem
                    wt-docto.vl-frete = tt-orcamento.vl-frete
                    wt-docto.vl-seguro = tt-orcamento.vl-seguro
                    wt-docto.marca-volume = tt-orcamento.marca-volume
                    wt-docto.nr-volumes = tt-orcamento.nr-volumes
                    wt-docto.observ-nota = tt-orcamento.obs + " " + wt-docto.observ-nota
                    wt-docto.val-desp-outros = tt-orcamento.vl-acrescimo
                    wt-docto.val-desp-outros-inf = tt-orcamento.vl-acrescimo.
    
                    IF tt-orcamento.vl-acrescimo > 0 then
                        assign wt-docto.observ-nota =  " Acrescimo Financeiro R$ " + trim(string(tt-orcamento.vl-acrescimo,"->>>,>>9.99")) + " " + wt-docto.observ-nota.
                end.
            end.  // first wt-docto
           
            log-manager:WRITE-MESSAGE("Gerando itens do pedido ", 'DEBUG_1').
            /* Gera os itens para o pedido, com tela de acompanhamento */
            run emptyRowErrors                in h-bodi317sd.
            run inicializaAcompanhamento      in h-bodi317sd.
            run geraWtItDoctoComItensDoPedido in h-bodi317sd(output l-proc-ok-aux).
            run finalizaAcompanhamento        in h-bodi317sd.
    
            /* Busca possíveis erros que ocorreram nas validações */
            run devolveErrosbodi317sd in h-bodi317sd(output c-ultimo-metodo-exec, output table ttRowErrors).
            run addErrorsFrom(table ttRowErrors).
            run checkHasErrors.
    
            LOG-MANAGER:WRITE-MESSAGE("Atualizando itens da nota com dados complementares", 'DEBUG_1').
            // Atualiar informações dos itens da nota fiscal
            for each wt-it-docto of wt-docto
            exclusive-lock:
                for first tt-it-faturar
                where tt-it-faturar.it-codigo = wt-it-docto.it-codigo
                and    tt-it-faturar.quantidade = wt-it-docto.quantidade[1]
                and    tt-it-faturar.vlr-unitario = wt-it-docto.vl-preuni
                :
                    assign wt-it-docto.vl-despesit-e[3] = tt-it-faturar.vl-acrescimo.
                end.
    
                assign substring(wt-it-docto.char-2, 29, 40) = string(wt-it-docto.vl-preori, ">>>>>>>>>9.99") // Custo Contábil
                .
            end. // each wt-it-docto
    
            // Atualiza dados calculados do item
            LOG-MANAGER:WRITE-MESSAGE("Executando  atualizaDadosItemNota", 'DEBUG_1').
            run atualizaDadosItemNota in h-bodi317pr(output l-proc-ok-aux).
            run devolveErrosbodi317pr in h-bodi317pr(output c-ultimo-metodo-exec, output table ttRowErrors).
            run addErrorsFrom(table ttRowErrors).
            run checkHasErrors.
            // Atuasliza dados da nota fiscal
            LOG-MANAGER:WRITE-MESSAGE("Executando  atualizaDadosGeraisNota", 'DEBUG_1').
            run atualizaDadosGeraisNota in h-bodi317sd(input  i-seq-wt-docto, output l-proc-ok-aux).
            run devolveErrosbodi317sd in h-bodi317sd(output c-ultimo-metodo-exec, output table ttRowErrors).
            run addErrorsFrom(table ttRowErrors).
            run checkHasErrors.
    
            /* Atende todos os itens do pedido, com tela de acompanhamento */
            run emptyRowErrors           in h-bodi317pr.
            run inicializaAcompanhamento in h-bodi317pr.
    
            LOG-MANAGER:WRITE-MESSAGE("Atendendo ao pedido", 'DEBUG_1').
            run atendeTotalPed in h-bodi317pr (i-seq-wt-docto, output l-proc-ok-aux).
            run finalizaAcompanhamento in h-bodi317pr.
    
            /* Busca possíveis erros que ocorreram nas validações */
            run devolveErrosbodi317pr in h-bodi317pr (output c-ultimo-metodo-exec, output table ttRowErrors).
            run addErrorsFrom(table ttRowErrors).
            run checkHasErrors.
    
            LOG-MANAGER:WRITE-MESSAGE("Rotina calculos do pedido", 'DEBUG_1').
            /* Calcula o pedido, com acompanhamento */
            run emptyRowErrors           in h-bodi317pr.
            run inicializaAcompanhamento in h-bodi317pr.
            run confirmaCalculo in h-bodi317pr(i-seq-wt-docto, output l-proc-ok-aux).
            run finalizaAcompanhamento in h-bodi317pr.
    
            /* Busca possíveis erros que ocorreram nas validações */
            run devolveErrosbodi317pr in h-bodi317pr (output c-ultimo-metodo-exec, output table ttRowErrors).
            run addErrorsFrom(table ttRowErrors).
            run checkHasErrors.
    
            LOG-MANAGER:WRITE-MESSAGE("Efetivando o pedido", 'DEBUG_1').
            /* Efetiva os pedidos e cria a nota */
            run dibo/bodi317ef.p persistent set h-bodi317ef.
    
            run emptyRowErrors           in h-bodi317ef.
            run inicializaAcompanhamento in h-bodi317ef.
    
            run setaHandlesBOS in h-bodi317ef(h-bodi317pr
                                                            , h-bodi317sd
                                                            , h-bodi317im1bra
                                                            , h-bodi317va).
    
            run efetivaNota in h-bodi317ef(i-seq-wt-docto, yes, output l-proc-ok-aux).
    
            run finalizaAcompanhamento in h-bodi317ef.
    
            /* Busca possíveis erros que ocorreram nas validações */
            run devolveErrosbodi317ef in h-bodi317ef(output c-ultimo-metodo-exec, output table ttRowErrors).
            run addErrorsFrom(table ttRowErrors).
            run checkHasErrors.
    alguém sabe como fixar este valor de outras depesas?
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    tem algumas informações que não atualiza mesmo, eu leio a nota depois que gerou e preencho na mão.
  3. fabianofss

    fabianofss Membro Participativo

    Para caso mais alguém se deparar com este problema, esta informação deve ser gravada neste campo:
    wt-docto.val-desp-outros-inf

Compartilhe esta Página