Itens de pedido
Como configurar um SQL para histórico de vendas na inclusão de itens em um pedido?
PEDVEN06.CAD_PEDIDOS_06_ITENS.FAQ-65511
O histórico de vendas apresentado na inclusão dos itens/produtos na interface Itens de pedido pode ser configurado através da preferência PEDVEN06.CAD_PEDIDOS_06_ITENS.SQL_HISTORICO_VENDAS que permite definir uma consulta com informações sobre orçamentos/pedidos do produto solicitado pelo cliente do pedido..
Exemplo 1
Vendas deste produto realizadas para este cliente (do pedido) nos últimos 14 dias, listando a data do pedido e a quantidade do produto no pedido:
item data date, label='Data';
item quantidade decimal_value, label='Quantidade';
select ped.data_inclusao::date as data, sum(itpe.quantidade) as quantidade
from pedidos ped
join itens_pedidos itpe on itpe.pedido_id = ped.id
join produtos prod on prod.id = itpe.produto_id
join pedidos ped2 on ped2.id = ${pedido_id}
where ped2.cliente_id = ped.cliente_id and prod.produto = '${produto}'
and ped.data_inclusao >= current_date-14 and ped.cliente_id <> coalesce((select valor::bigint from preferencias where preferencia = 'PESSOA.CONSUMIDOR_FINAL_ID' limit 1), 0)
group by 1 order by 1 desc
Exemplo 2
Apresentar a(s) imagem(ns) do produto:
item arquivo gallery, label="Imagem";
item estoque wiki, label="Estoques";
select
( select array_to_string(array_agg(aa.arquivo), ',')
from arquivos_anexos aa
join arquivos_anexos_produtos aap on aap.arquivos_anexos_id = aa.id
where aap.produto_id = p.id
) as arquivo
, '|Estabelecimento| Estoque|'
||(select array_to_string(array_agg(chr(10)||'|'||estab.nome_estabelecimento || '| '
|| case when substring (to_char(ep.estoque_atual, 'FM9G999G999G990D999')
, length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
,length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
)::text = ','
or
substring (to_char(ep.estoque_atual, 'FM9G999G999G990D999')
, length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
,length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
)::text = '.'
then substring (to_char(ep.estoque_atual, 'FM9G999G999G990D999')
, 0
,length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
)
else ''
end
|| '|'),'')
from estoques_produtos ep
join tipos_estoques te on te.id = ep.tipo_estoque_id
join estabelecimentos estab on estab.id = ep.estabelecimento_id
where ep.produto_id = p.id) as estoque
from produtos p
where p.produto = '${produto}'
and ( select count(1)
from arquivos_anexos aa
join arquivos_anexos_produtos aap on aap.arquivos_anexos_id = aa.id
where aap.produto_id = p.id
) > 1;
item arquivo attached_image, label="Imagem";
item estoque wiki, label="Estoques";
select ( select aa.arquivo
from arquivos_anexos aa
join arquivos_anexos_produtos aap on aap.arquivos_anexos_id = aa.id
where aap.produto_id = p.id
limit 1
) as arquivo
, '|Estabelecimento| Estoque|'
||(select array_to_string(array_agg(chr(10)||'|'||estab.nome_estabelecimento || '| '
|| case when substring (to_char(ep.estoque_atual, 'FM9G999G999G990D999')
, length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
,length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
)::text = ','
or
substring (to_char(ep.estoque_atual, 'FM9G999G999G990D999')
, length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
,length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
)::text = '.'
then substring (to_char(ep.estoque_atual, 'FM9G999G999G990D999')
, 0
,length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
)
else ''
end
|| '|'),'')
from estoques_produtos ep
join tipos_estoques te on te.id = ep.tipo_estoque_id
join estabelecimentos estab on estab.id = ep.estabelecimento_id
where ep.produto_id = p.id) as estoque
from produtos p
where p.produto = '${produto}'
and ( select count(1)
from arquivos_anexos aa
join arquivos_anexos_produtos aap on aap.arquivos_anexos_id = aa.id
where aap.produto_id = p.id
) = 1;
item estoque wiki, label="Estoques";
select '|Estabelecimento| Estoque|'
||(select array_to_string(array_agg(chr(10)||'|'||estab.nome_estabelecimento || '| '
|| case when substring (to_char(ep.estoque_atual, 'FM9G999G999G990D999')
, length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
,length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
)::text = ','
or
substring (to_char(ep.estoque_atual, 'FM9G999G999G990D999')
, length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
,length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
)::text = '.'
then substring (to_char(ep.estoque_atual, 'FM9G999G999G990D999')
, 0
,length(to_char(ep.estoque_atual, 'FM9G999G999G990D999'))
)
else ''
end
|| '|'),'')
from estoques_produtos ep
join tipos_estoques te on te.id = ep.tipo_estoque_id
join estabelecimentos estab on estab.id = ep.estabelecimento_id
where ep.produto_id = p.id) as estoque
from produtos p
where p.produto = '${produto}'
and ( select count(1)
from arquivos_anexos aa
join arquivos_anexos_produtos aap on aap.arquivos_anexos_id = aa.id
where aap.produto_id = p.id
) < 1;
Ver também: