[firebase-br] Case no where

José Mauricio Barbisan Zottis zottissistemas em gmail.com
Terça Junho 29 13:18:10 -03 2021


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
>


--


Mais detalhes sobre a lista de discussão lista