Urgente Tag InfAdFisco

Discussão em 'EMS , HCM e Totvs 11' iniciado por Antonio, Fevereiro 23, 2023.

  1. Antonio

    Antonio Membro Participativo

    Boa tarde.
    Pessoal estou dando entrada em algumas notas que tem a finalidade-4 e e que geram nota fiscal de faturamento. Muitas notas nossas, são emitidas e acaba passando o prazo para cancelamento, acontece alguma avaria ou problema logistico. Para estes casos, conseguimos devolver a nota, mas dando entrada e ao mesmo tempo gerando um faturamento.

    Quando a natureza de operação de entrada tem uma mensagem a tag infadfisco gera certo, mas se eu através da axsep037(upc) tento colocar mais alguma coisa na mensagem, não consigo de jeito nenhum. Parece que a mensagem que esta na natureza é colocada no xml algum ponto mais a frente. e apaga o que coloquei via axsep037.

    Se a natureza de operação não tem mensagem cadastrada, ai não sai mensagem na tag, mas eu consigo colocar o que quiser na tag e sai no xml com a observação que eu coloquei no axsep037.

    O mais interessante que dentro da upc do axsep037, a tag infadfisco sempre aparece vazia.

    Abaixo o trecho da upc:
    FOR FIRST tt-epc NO-LOCK
    WHERE tt-epc.cod-event = "AtualizaDadosNFe"
    AND tt-epc.cod-parameter = "ttInfAdic" :
    ASSIGN h-ttdet = widget-handle(tt-epc.val-parameter)
    hQueryBuffer = h-ttdet:default-buffer-handle.

    MESSAGE "valid handle = " valid-handle(hQueryBuffer) VIEW-AS ALERT-BOX.
    if valid-handle(hQueryBuffer) then do:
    create query h-query.
    h-query:set-buffers(hQueryBuffer).
    h-query:query-prepare('for each ' + h-ttdet:name + ' no-lock').
    h-query:query-open().
    h-query:GET-FIRST() no-error.
    MESSAGE "query of end = " not h-query:QUERY-OFF-END SKIP v-programa-exec-mensagem
    VIEW-AS ALERT-BOX.
    IF not h-query:QUERY-OFF-END THEN DO:
    assign h-cod-estabel = hQueryBuffer:buffer-field('CodEstabelNF') no-error.
    assign h-serie = hQueryBuffer:buffer-field('SerieNF') no-error.
    assign h-nr-nota-fis = hQueryBuffer:buffer-field('NrNotaFisNF') no-error.
    MESSAGE h-cod-estabel:buffer-value
    h-serie:buffer-value
    h-nr-nota-fis:BUFFER-VALUE skip
    v-programa-exec-mensagem VIEW-AS ALERT-BOX.


    find first nota-fiscal no-lock where
    nota-fiscal.cod-estabel = h-cod-estabel:buffer-value and
    nota-fiscal.serie = h-serie:buffer-value and
    nota-fiscal.nr-nota-fis = h-nr-nota-fis:buffer-value no-error.

    IF AVAIL nota-fiscal THEN DO:
    assign h-campo = hquerybuffer:buffer-field('infAdFisco') no-error.
    IF h-campo:BUFFER-VALUE <> " " THEN DO:
    ASSIGN h-campo:BUFFER-VALUE = h-campo:BUFFER-VALUE + " | ".
    assign h-campo:buffer-value = h-campo:BUFFER-VALUE + replace(v-programa-exec-mensagem,"esp631","").
    END.
    ELSE
    assign h-campo:buffer-value = replace(v-programa-exec-mensagem,"esp631","").
    MESSAGE "h-campo " h-campo:BUFFER-VALUE VIEW-AS ALERT-BOX.
    END.
    END.
    h-query:query-close().
    END.
    END.

    Se alguém já passou por isso e puder me ajudar, agradeço.
  2. af.dums

    af.dums Membro Ativo

    Já tentaste criando uma query para "correr" a temp-table, dentro do mesmo tt-epc "event" que está trabalhando, tenho algo assim para a ttDet (nesta regra tu consegue também descobrir se o registro já existe realmente neste ponto):

    Código:
    assign h-bo     = widget-handle(tt-epc.val-parameter).                                             
                                                                                                       
    assign h-buffer = h-bo:default-buffer-handle.                                                       
                                                                                                       
    create query h-query.                                                                               
    h-query:set-buffers(h-buffer).                                                                     
    h-query:query-prepare('for each ttDet').                                                           
    h-query:query-open().                                                                               
    h-query:get-first().                                                                               
                                                                                                       
    do while h-buffer:available:                                                                       
                                                                                                       
        assign h-buffer:buffer-field('xPed'):buffer-value = "XXXXXXXXXX" .
        
        h-query:get-next().                                                                             
                                                                                                       
    end.                                                                                               
    h-query:query-close().                                                                             
    
    
    Obs: tenho também uma regra como a sua e funciona sem problemas por aqui também, mas seria uma tentativa...
    jdchaves curtiu isso.

Compartilhe esta Página