select distinct forn.pessoa as PESSOA_FORN , forn.nome_completo as NOME_FORNECEDOR , nome_estabelecimento as ESTABELECIMENTO , prod.id as produto_id , prod.produto , prod.descricao , estoque_atual , ordem_compra , pedido_venda , estoque_minimo , quantidade_repor , rpp.* from( select prod_id , estabelecimento_id as estab_id , produto , descricao_produto , descricao_detalhada , marca , referencia_produto , tipo_produto , simbolo , sum(estoque_atual) as estoque_atual , sum(oc) as ordem_compra , sum(pv) as pedido_venda , sum(minimo) as estoque_minimo , sum(minimo - (estoque_atual - pv)) as quantidade_repor , (select sum(ip.quantidade) from itens_pedidos ip join pedidos p on p.id = ip.pedido_id where p.situacao not in ('C') and ip.produto_id = prod_id and p.data_conclusao between current_date - interval '30 day' and current_date) as venda_30 , (select sum(ip.quantidade) from itens_pedidos ip join pedidos p on p.id = ip.pedido_id where p.situacao not in ('C') and ip.produto_id = prod_id and p.data_conclusao between current_date - interval '90 day' and current_date) as venda_90 from ( select ep.id , ep.estabelecimento_id as estabelecimento_id , p.id as prod_id , p.produto , p.descricao as descricao_produto , p.descricao_detalhada , p.referencia_fabricante as referencia_produto , m.marca , tp.tipo_produto , um.simbolo , ep.estoque_atual , 0 as oc , 0 as pv , case when (ep.estoque_minimo < 0) then 0 else ep.estoque_minimo end as minimo from estoques_produtos ep join tipos_estoques te on te.id = ep.tipo_estoque_id join produtos p on (p.id = ep.produto_id) join unidades_medidas um on (um.id = p.unidade_medida_id) left join marcas m on m.id = p.marca_id join tipos_produtos tp on tp.id = p.tipo_produto_id where p.situacao <> 'C' union select i.id , ped.estabelecimento_id as estabelecimento_id , p.id as prod_id , p.produto , p.descricao as descricao_produto , p.descricao_detalhada , p.referencia_fabricante as referencia , m.marca , tprod.tipo_produto , um.simbolo , 0 as estoque_atual , i.quantidade_pendente as oc , 0 as pv , 0 as minimo from itens_pedidos i join pedidos ped on (ped.id = i.pedido_id) join tipos_pedidos tp on (tp.id = ped.tipo_pedido_id) join produtos p on (p.id = i.produto_id) left join marcas m on m.id = p.marca_id join tipos_produtos tprod on tprod.id = p.tipo_produto_id join unidades_medidas um on (um.id = p.unidade_medida_id) where tp.categoria = 'C' and p.situacao in ('M', 'P') and p.situacao <> 'C' union select i.id , ped.estabelecimento_id as estabelecimento_id , p.id as prod_id , p.produto , p.descricao as descricao_produto , p.descricao_detalhada , p.referencia_fabricante as referencia , m.marca , tprod.tipo_produto , um.simbolo , 0 as estoque_atual , 0 as oc , case when (i.quantidade_efetiva = null) then i.quantidade_pendente else i.quantidade_efetiva end as pv , 0 as minimo from itens_pedidos i join pedidos ped on (ped.id = i.pedido_id) join tipos_pedidos tp on (tp.id = ped.tipo_pedido_id) join produtos p on (p.id = i.produto_id) left join marcas m on m.id = p.marca_id join tipos_produtos tprod on tprod.id = p.tipo_produto_id join unidades_medidas um on (um.id = p.unidade_medida_id) where tp.categoria in ('V', 'S') and ped.situacao in ('M', 'P') and tprod.servico = 'N' and p.situacao <> 'C' ) query group by produto , descricao_produto , descricao_detalhada , referencia_produto , marca , tipo_produto , simbolo , prod_id , estabelecimento_id having sum(coalesce(minimo,0) - (coalesce(estoque_atual,0) - coalesce(pv,0)) ) >= 0 )q join referencias_produtos_pessoas rpp on rpp.produto_id = q.prod_id join pessoas forn on forn.id = rpp.empresa_id join estabelecimentos estab on estab.id = estab_id join produtos prod on prod.id = rpp.produto_id order by prod.produto, forn.nome_completoORCCOM.PRO_GERAR_ITENS_COMPRA.ADITIONAL_ITEMS: Deverá conter uma relação de nome/dominio/label de colunas adicionais (definidas no CUSTOM_SQL) e que devem ser apresentadas na tela.
marca: ADSRT.TEXT :Marca estoque_atual: ADSRT.DOUBLE : Estoque atual estoque_minimo: ADSRT.DOUBLE :Estoque mínimo quantidade_repor: ADSRT.DOUBLE :Qtd reporORCCOM.PRO_GERAR_ITENS_COMPRA.ATRIBUTOS_ORDEM_COMPRA: Atributos que devem ser preenchidos na capa da ordem de compra durante o processo.
ATRIBUTO=VALORQualquer atributo existente na entidade PEDIDOS pode ser utilizado.
VENDEDOR_ID=12345 REPRESENTANTE_ID=93984 DATA_PROGRAMADA=[SYSDATE+14]
Código de identificação do produto. Calculado automaticamente ou informado conforme parametrização da respectiva engenharia de produto. | |
Texto que descreve o produto. Este é o texto utilizado por padrão em todos os documentos fiscais e interfaces de uso interno. | |
Código (único) de identificação da pessoa (física ou jurídica). | |
Nome completo da pessoa física ou razão social da pessoa jurídica. Razão social é o nome devidamente registrado sob o qual uma pessoa jurídica se individualiza e exerce suas atividades. A razão social diferencia-se do nome dado a um estabelecimento ou do nome comercial com que a empresa pode ser reconhecida junto ao público, o qual é conhecido como nome fantasia. | |
Estabelecimento para o qual deverá ser criada a ordem de compra. | |
Apresenta os campos criados dinamicamente a partir do SQL, que estejam informadas na preferência [ORCCOM.PRO_GERAR_ITENS_COMPRA.ADITIONAL_ITEMS] | |
Caso informado indica a quantidade de produtos a ser solicitada. | |
Quando informado indica o preço do produto. | |
Número de dias para o qual se deseja ter estoque. Quando informado pode ser utilizado na pesquisa pelo SQL customizado. | |
Link para a ordem de compra |
marca: ADSRT.TEXT :Marca estoque_atual: ADSRT.DOUBLE : Estoque atual estoque_minimo: ADSRT.DOUBLE :Estoque mínimo quantidade_repor: ADSRT.DOUBLE :Qtd repor
Tipo: TEXT_LONG
Atributos que devem ser preenchidos na capa da ordem de compra durante o processo.
Deve ser informado um atributo por linha no formato:
ATRIBUTO=VALORQualquer atributo existente na entidade PEDIDOS pode ser utilizado.
VENDEDOR_ID=12345 REPRESENTANTE_ID=93984 DATA_PROGRAMADA=[SYSDATE+14]
Tipo: TEXT_LONG
select distinct forn.pessoa as PESSOA_FORN , forn.nome_completo as NOME_FORNECEDOR , nome_estabelecimento as ESTABELECIMENTO , prod.id as produto_id , prod.produto , prod.descricao , estoque_atual , ordem_compra , pedido_venda , estoque_minimo , quantidade_repor , rpp.* from( select prod_id , estabelecimento_id as estab_id , produto , descricao_produto , descricao_detalhada , marca , referencia_produto , tipo_produto , simbolo , sum(estoque_atual) as estoque_atual , sum(oc) as ordem_compra , sum(pv) as pedido_venda , sum(minimo) as estoque_minimo , sum(minimo - (estoque_atual - pv)) as quantidade_repor , (select sum(ip.quantidade) from itens_pedidos ip join pedidos p on p.id = ip.pedido_id where p.situacao not in ('C') and ip.produto_id = prod_id and p.data_conclusao between current_date - interval '30 day' and current_date) as venda_30 , (select sum(ip.quantidade) from itens_pedidos ip join pedidos p on p.id = ip.pedido_id where p.situacao not in ('C') and ip.produto_id = prod_id and p.data_conclusao between current_date - interval '90 day' and current_date) as venda_90 from ( select ep.id , ep.estabelecimento_id as estabelecimento_id , p.id as prod_id , p.produto , p.descricao as descricao_produto , p.descricao_detalhada , p.referencia_fabricante as referencia_produto , m.marca , tp.tipo_produto , um.simbolo , ep.estoque_atual , 0 as oc , 0 as pv , case when (ep.estoque_minimo < 0) then 0 else ep.estoque_minimo end as minimo from estoques_produtos ep join tipos_estoques te on te.id = ep.tipo_estoque_id join produtos p on (p.id = ep.produto_id) join unidades_medidas um on (um.id = p.unidade_medida_id) left join marcas m on m.id = p.marca_id join tipos_produtos tp on tp.id = p.tipo_produto_id where p.situacao <> 'C' union select i.id , ped.estabelecimento_id as estabelecimento_id , p.id as prod_id , p.produto , p.descricao as descricao_produto , p.descricao_detalhada , p.referencia_fabricante as referencia , m.marca , tprod.tipo_produto , um.simbolo , 0 as estoque_atual , i.quantidade_pendente as oc , 0 as pv , 0 as minimo from itens_pedidos i join pedidos ped on (ped.id = i.pedido_id) join tipos_pedidos tp on (tp.id = ped.tipo_pedido_id) join produtos p on (p.id = i.produto_id) left join marcas m on m.id = p.marca_id join tipos_produtos tprod on tprod.id = p.tipo_produto_id join unidades_medidas um on (um.id = p.unidade_medida_id) where tp.categoria = 'C' and p.situacao in ('M', 'P') and p.situacao <> 'C' union select i.id , ped.estabelecimento_id as estabelecimento_id , p.id as prod_id , p.produto , p.descricao as descricao_produto , p.descricao_detalhada , p.referencia_fabricante as referencia , m.marca , tprod.tipo_produto , um.simbolo , 0 as estoque_atual , 0 as oc , case when (i.quantidade_efetiva = null) then i.quantidade_pendente else i.quantidade_efetiva end as pv , 0 as minimo from itens_pedidos i join pedidos ped on (ped.id = i.pedido_id) join tipos_pedidos tp on (tp.id = ped.tipo_pedido_id) join produtos p on (p.id = i.produto_id) left join marcas m on m.id = p.marca_id join tipos_produtos tprod on tprod.id = p.tipo_produto_id join unidades_medidas um on (um.id = p.unidade_medida_id) where tp.categoria in ('V', 'S') and ped.situacao in ('M', 'P') and tprod.servico = 'N' and p.situacao <> 'C' ) query group by produto , descricao_produto , descricao_detalhada , referencia_produto , marca , tipo_produto , simbolo , prod_id , estabelecimento_id having sum(coalesce(minimo,0) - (coalesce(estoque_atual,0) - coalesce(pv,0)) ) >= 0 )q join referencias_produtos_pessoas rpp on rpp.produto_id = q.prod_id join pessoas forn on forn.id = rpp.empresa_id join estabelecimentos estab on estab.id = estab_id join produtos prod on prod.id = rpp.produto_id order by prod.produto, forn.nome_completo
Tipo: SOURCE_CODE