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

Inserir valor de outras despesas ao gerar NF via UPC

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

  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?

Compartilhe esta Página