Home

TOTVS | Plataformas e tecnologias

Árvore de páginas

FAQ: 58337-Como cadastrar Mensagens de Observações da Nota Fiscal?
Produto:Datasul
Versão:1
Sintoma
58337-Como cadastrar Mensagens de Observações da Nota Fiscal?
Causa
Como cadastrar Mensagens de Observações da Nota Fiscal?
Solução

A partir da release EMS 2.04 ocorreram alterações nesse tratamento. Nessa versão, foi implementada a possibilidade de serem informadas várias mensagens para nota fiscal. Mesmo assim, a mensagem que vinha do pedido de venda ou da natureza de operação continua sendo utilizando como default para gerar uma mensagem para nota fiscal. O que mudou foi que a mensagem agora é gravada diretamente nas observações da nota fiscal e não é mais gravado o código da mensagem na nota. Desta forma, o programa de cálculo de notas agrupa as observações informadas manualmente com as mensagens informadas e grava essas informações nas observações da nota fiscal.

Além da forma de gravação das mensagens nas observações da nota, também foi alterado o cadastro de mensagens para que o usuário possa configurar diversas mensagens da forma desejada para serem gravadas na nota. Um exemplo seria uma mensagem a ser colocada em uma nota fiscal de devolução a fornecedor para mencionar a nota fiscal origem e a data de emissão dessa nota de entrada. Outro exemplo seria mensagens para o INSS, onde poderá ser mencionado o valor de INSS. Juntamente com essas mensagens, poderão ser acrescentados códigos que serão substituídos na gravação da nota pelos respectivos valores.

Para facilitar o entendimento de como essa função está sendo tratado, a mesma será explicada mais abaixo com exemplos.

Cadastro de mensagens (programa CD0405A):


 

Nesse programa poderão ser inclusas mensagens configuradas conforme o exemplo mostrado. Na gravação da nota fiscal a mesma será gravada como “Nota fiscal de devolução referente a nota 0123456 de 01/01/2002 (##18 foi substituído por 0123456 e ##19 substituído por 01/01/2002).

OBS: A lista de mensagens disponíveis é apresentada quando pressionado o botão direito do mouse sobre o texto da mensagem e somente quando executado o programa CD0405A, que está no menu do Faturamento -> Manutenção -> Mensagens.

Desta forma, se essa mensagem for parametrizada para natureza de operação, o programa de cálculo de notas irá gravar essa mensagem na nota fiscal. No momento da inclusão da nota essa mensagem aparecerá no seguinte local:

.

Quando for gravada a nota fiscal, o programa irá gravar nas observações da nota fiscal as observações informadas mais as observações adicionais, já com os respectivos valores nos códigos. Desta forma, o programa de emissão de notas fiscais, irá imprimir nas observações do corpo da nota, essas mensagens, não sendo mais necessário imprimir a mensagem informada na nota ou na natureza de operação.

Outra questão referente às observações, é a necessidade de se mostrar às mensagens cadastradas e as observações informadas em locais diferentes no corpo da nota, durante sua impressão. Para isso será alterado o programa de cálculo para que grave caracteres parametrizáveis entre as observações informadas e as observações geradas automaticamente (sugestão “***” – três asteriscos). Desta forma, o programa de emissão de notas deverá ser alterado para que identifique esses caracteres e o que estiverem antes do ponto separador é o que foi informado na nota e o que estiver depois é o que foi gerado para nota. Também deverá ser feito tratamento para que não imprima esses caracteres.
Como essa implementação ainda não está liberada, sugerimos implementar um ponto de chamada EPC no programa BODI317EF, para que sejam gravados esses caracteres especiais entre as duas observações (sugestão “***” – três asteriscos). Deverá ser utilizado o ponto de chamada beforeEfetivaNota, e nesse ponto deverá ser feito uma leitura nos registros da tabela WT-DOCTO e alterada as observações para que sejam acrescentadas esses caracteres.

Segue um exemplo do programa UPC:

{include/i-epc200.i BODI317EF}

def input        param p-ind-event as char no-undo.
def input-output param table       for tt-epc.

if  p-ind-event = "beforeEfetivaNota" then
    for first tt-epc
         where tt-epc.cod-event = "beforeEfetivaNota"
         and   tt-epc.cod-param = "table-rowid",
         first wt-docto
         where rowid(wt-docto) = to-rowid(tt-epc.val-parameter):
        
         assign wt-docto.observ-nota = wt-docto.observ-nota + "***".
    end.

No emissor de notas fiscais, para descobrir e separar as duas observações, poderá ser utilizado o seguinte código:

def var c-obs-informada  as char no-undo.
def var c-obs-automatica as char no-undo.

if  index(nota-fiscal.observ-nota,"***") > 0 then
    assign c-obs-informada =
               trim(substr(nota-fiscal.observ-nota,
                           1,
                           index(nota-fiscal.observ-nota,"***") - 1))
           c-obs-automatica =
               trim(substr(nota-fiscal.observ-nota,
                           index(nota-fiscal.observ-nota,"***") + 3,
                           10000)).
else
    assign c-obs-informada  = nota-fiscal.observ-nota
           c-obs-automatica = "www".

OBS: A EPC demonstrada acima deverá ser cadastrado para o programa BODI317EF na manutenção de programas (MEN/MEN012AA.P).