[firebase-br] Lista somente producto com estoque

Valdir Marcos valdir.marcos em ig.com.br
Dom Out 19 12:50:00 -03 2008


Boa tarde.

Faça um tentativa com o código abaixo:
-----------------
for
  Select
    a.codigo,
    a.producto_text || ' - ' || a.un,
    a.saldo_minimo
  From cproductos a
  Where
    a.idn_estatus = :pidn_status and
    a.moneda = :pmoneda and
    a.filial = :pfilial and
    ((a.codigo = :pproducto) or (:pproducto = 0)) and
    ((a.seccion = :pseccion) or (:pseccion = 0)) and
    ((a.proveedor = :pproveedor) or (:pproveedor = 0))
   Order By
     a.producto_text asc
  into :rcodigo,:rproducto_text,:rsaldo_minimo
do
begin
  Select
    Coalesce(Sum(Coalesce(b.precio_compra,0)),0)
  From ctabela_precio b
  Where
    b.filial = :pfilial and
    b.cod_producto = :rcodigo
  into :rprecio_compra;

  restoque = 0;
  Select
    Coalesce(Sum(Coalesce(c.estoque,0)),0)
  From c_estoque c
  where
    c.filial = :pfilial and
    c.cod_producto = :rcodigo and
    ((c.estoque > 0) or ('T' =: PTIPO))
  into :restoque;

  if (restoque > 0) then
    suspend;
end
-----------------

Mas, talvez, fosse ainda mais fácil você transformar esses três selects num
único join, inclusive eliminando a stored procedure.

Um abraço,

Valdir


Em 17/10/08, Paulo Sérgo Feix <paulinhofeix em gmail.com> escreveu:
>
> Boa tarde
>
> Estou me deparando com uma situação que não sei como resolver, esta
> procedure tem asegionte função, retornar os produtos com seus devidos
> estoque e preço de compra, ateai tudo bem, o problema é que quando este
> produto não tiver mais estoque não deve mostrar mais no relatório, de que
> forma eu devo fazer esta consulta ((c.estoque > 0) or ('T' =: PTIPO))
> for select
> a.codigo,a.producto_text || ' - ' || a.un,a.saldo_minimo
> from cproductos a
> where a.idn_estatus = :pidn_status and
> a.moneda = :pmoneda and a.filial = :pfilial and
> ((a.codigo = :pproducto) or (:pproducto = 0)) and
> ((a.seccion = :pseccion) or (:pseccion = 0)) and
> ((a.proveedor = :pproveedor) or (:pproveedor = 0))
> order by a.producto_text asc
> into :rcodigo,:rproducto_text,:rsaldo_minimo do
> begin
> select
> Coalesce(Sum(b.precio_compra),0)
> from ctabela_precio b
> where b.filial = :pfilial and b.cod_producto = :rcodigo
> into :rprecio_compra;
> select
> Coalesce(Sum(c.estoque),0)
> from c_estoque c
> where c.filial = :pfilial and c.cod_producto = :rcodigo and
> ((c.estoque > 0) or ('T' =: PTIPO))
> into :restoque;
> suspend;
> end
>
>
>
> --
> Paulinho Sérgio Feix
> ______________________________________________
> 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://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista