[firebase-br] Case no where

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


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
>>
>
>
> --
>
>

--


Mais detalhes sobre a lista de discussão lista