[firebase-br] Case no where

Nobyte X clovis.007x em gmail.com
Terça Junho 29 13:44:54 -03 2021


Estranho ter aparecido este erro, coloca entre parênteses "()"  a condição
que adicionou no case, o que você está passando para "vltetousuario" é um
valor ne?
Como ficou o select?

Em ter, 29 de jun de 2021 13:29, José Mauricio Barbisan Zottis via lista <
lista em firebase.com.br> escreveu:

> está dando esse erro:
>
> Invalid token.
> Dynamic SQL Error.
> SQL error code = -104.
> Invalid usage of boolean expression.
> ------------------------------------
> SQLCODE: -104
> SQLSTATE: 22000
> GDSCODE: 335544569
>
> Em ter., 29 de jun. de 2021 às 13:24, José Mauricio Barbisan Zottis <
> zottissistemas em gmail.com> escreveu:
>
> > Desculpe, cliquei no enviar sem querer
> >
> > oi Mário, desculpe, tentei ser o mais claro possível, vamos lá
> >
> > No Sistema, os pedidos de compra tem duas etapas AUTORIZADO e LIBERADO.
> > O Usuário pode ser apenas Autorizador, Liberador ou ambos.
> > Para LIBERAR é Usado um Limite(Range) que no exemplo é de  até 2000,00
> > e AUTORIZAR pode ser qualquer valor.
> >
> > Tenho uma view que tem o Campo IN_AUTORIZADO e IN_LIBERADO que podem
> > receber os valores "S' ou "N"
> > o usuário tem um limite de aprovação, no caso do exemplo, de 0 até
> 2000,00
> > o usuário pode AUTORIZAR qualquer valor, mas LIBERAR apenas dentro do
> > Range(0 até 200,00)
> > Na tela de Liberação das Compras, tem um Check Box que o usuário marca
> > qual pedido ele quer liberar e clica em um botão chamado "Processar"
> > o Sistema verifica se o usuário está apto a LIBERAR, e caso o Pedido de
> > Compra esteja acima do teto do usuário, marca o Pedido apenas como
> > Autorizado, e este pedido deverá ser LIBERADO por  outro usuário, neste
> > caso, o usuário AUTORIZOU um pedido Maior que o limite dele poder LIBERAR
> > então, preciso que este pedido não apareça mais para este usuário pois o
> > que ele poderia fazer com o Pedido ele fez que era apenas AUTORIZAR e
> caso
> > o pedido esteja dentro do Range de valor do usuário, o sistema AUTORIZA e
> > LIBERA o pedido para poder ser comprado.
> >
> >
> > Em ter., 29 de jun. de 2021 às 13:18, José Mauricio Barbisan Zottis <
> > zottissistemas em gmail.com> escreveu:
> >
> >> oi Mário, desculpe, tentei ser o mais claro possível, vamos lá
> >> Tenho uma view que tem o Campo IN_AUTORIZADO e IN_LIBERADO que podem
> >> receber os valores "S' ou "N"
> >> o usuário tem um limite de aprovação, no caso do exemplo, de 0 até
> 2000,00
> >> o usuário pode AUTORIZAR qualquer valor, mas LIBERAR apenas dentro do
> >> Range(0 até 200,00)
> >> Na tela de Liberação das Compras, tem um Check Box que o usuário marca
> >> qual ele quer liberar e clica em um botão chado "Processar"
> >> o Sistema verifica se o usuário está apto a LIBERAR
> >>
> >> Em ter., 29 de jun. de 2021 às 12:58, Mário Reis via lista <
> >> lista em firebase.com.br> escreveu:
> >>
> >>> Desculpe mas só assim sem mais dados, não dá para entender!
> >>> Com os meus melhores cumprimentos
> >>> Mário Agostinho Reis
> >>> 919262146
> >>>
> >>> Esta mensagem contém informação de natureza confidencial e é
> >>> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por
> >>> engano,
> >>> receber este email agradecemos que não o copie nem o reenvie e que nos
> >>> notifique do ocorrido através do email de resposta.
> >>>
> >>>
> >>> José Mauricio Barbisan Zottis via lista <lista em firebase.com.br>
> >>> escreveu no
> >>> dia terça, 29/06/2021 à(s) 15:11:
> >>>
> >>> > Pessoal, estou com um problema em um SQL que não tô dando conta.
> >>> > a Situação é a seguinte:
> >>> > Tenho uma tela de Autorização e liberação de Compras,
> >>> > Os usuários tem um teto(range) de LIBERAÇÃO, porém, eles podem ver
> >>> todos os
> >>> > pedidos de qualquer valor que estejam aguardando autorização ou
> >>> Liberação
> >>> > no momento da abertura da tela.
> >>> >
> >>> > Exemplo de usuário. Zottis de 0 até 2000,00
> >>> > Exemplo de Compra Total 3500,00
> >>> > O Usuário Zottis pode *Autorizar* o Pedido, mas não pode *liberar*
> >>> > Isso, acontece ao clicar em um botão "Processar" o sistema verifica
> se
> >>> ele
> >>> > pode Liberar e caso o valor seja maior que o teto dele, o sistema
> >>> apenas
> >>> > Autoriza o pedido.
> >>> > *O problema está que eu preciso que nos pedidos já Autorizados e
> sejam
> >>> > maiores do que o teto do usuário não apareçam mais para ele, pois o
> >>> que ele
> >>> > poderia fazer com o pedido já foi feito.*
> >>> >
> >>> >
> >>> > com esse case abaixo, dá certo, porém não atende completamente pois
> >>> aparece
> >>> > os Autorizados com valores maiores da alçada do usuário.
> >>> > and  c.tp_status = ');
> >>> >          CASE c.in_autorizado
> >>> >             WHEN 'N' THEN 'AN'
> >>> >              WHEN 'S' THEN 'AU'
> >>> >               else ''AN'' ');
> >>> >             END
> >>> >
> >>> > O Select que faço
> >>> >
> >>> > select c.cd_empresa,
> >>> >        c.cd_pedido,
> >>> >        c.dt_cadastro,
> >>> >        c.cd_pessoa,
> >>> >        c.nm_pessoa,
> >>> >        c.nr_documentopes,
> >>> >        c.cd_comprador,
> >>> >        c.nm_comprador,
> >>> >        c.vl_total,
> >>> >        c.cd_transportadora,
> >>> >        c.nm_transp,
> >>> >        c.cd_formapgto,
> >>> >        c.ds_formapgto,
> >>> >        c.in_autorizado,
> >>> >        c.dt_autorizacao,
> >>> >        c.in_negado,
> >>> >        c.obs,
> >>> >        --c.observacao_negacao,
> >>> >        c.in_liberado,
> >>> >        c.nr_itens,
> >>> >
> >>> >        c.tp_status,
> >>> >        case c.tp_status
> >>> >           when 'DG' then 'Em Digitação'
> >>> >           when 'AN' then 'Em Andamento'
> >>> >           when 'AU' then 'Autorizado'
> >>> >           when 'LI' then 'Liberado'
> >>> >           when 'BL' then 'Bloqueado'
> >>> >           when 'CA' then 'Cancelado'
> >>> >           when 'BF' then 'Bloqueado Para Faturamento'
> >>> >           when 'AP' then 'Atendida Parcial'
> >>> >           when 'AT' then 'Atendida Total'
> >>> >           when 'NG' then 'Negado'
> >>> >          end ds_tpstatus,
> >>> >
> >>> >        c.dt_preventrega,
> >>> >        c.cd_autorizador,
> >>> >        c.nm_autorizador,
> >>> >        c.cd_liberador,
> >>> >        c.nm_liberador,
> >>> >        c.dt_liberacao,
> >>> >        c.tp_liberado,
> >>> >        c.dt_negacao
> >>> >   from v_cmp_compras c  /*é uma View*/
> >>> >    where c.nr_itens > 0
> >>> >      and  c.tp_status =
> >>> >           CASE c.in_autorizado
> >>> >             WHEN 'N' THEN 'AN'
> >>> >             WHEN 'S' and (c.vl_total >= (:vVlFinal + 0.01)) THEN 'CC'
> >>> >             when 'S' and (c.vl_total < (:vVlFinal + 0.01))THEN 'AU'
> >>> >             else 'AN'
> >>> >           END
> >>> >
> >>> > --
> >>> > ______________________________________________
> >>> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >>> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> >>> > http://www.firebase.com.br/fb/artigo.php?id=1107
> >>> > Para consultar mensagens antigas:
> >>> > http://www.firebase.com.br/pesquisa_lista.html
> >>> >
> >>> ______________________________________________
> >>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >>> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >>> http://www.firebase.com.br/fb/artigo.php?id=1107
> >>> Para consultar mensagens antigas:
> >>> http://www.firebase.com.br/pesquisa_lista.html
> >>>
> >>
> >>
> >> --
> >>
> >>
> >
> > --
> >
> >
>
> --
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>


Mais detalhes sobre a lista de discussão lista