Orçamentos de serviços

Como configurar a apresentação dos pedidos e contratos gerados a partir de um orçamento?

ORCAME.CAD_ORCAMENTOS.FAQ-73463
A interface Orçamentos de serviços possui a possibilidade de apresentar os pedidos (ou contratos) gerados a partir de um orçamento.

Para isto, é necessário configurar a preferência ORCAME.CAD_ORCAMENTOS.SQL_PEDIDOS_GERADOS.

Exemplo 1:

Apresentar duas tabelas:

item pedido text_html, label='Pedido';
item valor_total decimal_value, label='Valor total'; 
item nome_completo text, label='Nome completo';
item tipo_pedido text, label='Tipo pedido';
item pessoa text, label='Cliente'; 
item situacao text, label='Situação'; 
item data_emissao date, label='Data emissão';

select '<a href=UtlPedidos?Z_ACTION=VIEW&A_ID='||ped.id||'>'||ped.pedido||'</a>' as pedido
, tiped.tipo_pedido, 
(case 
when ped.situacao = 'A' then 'Aprovado'
when ped.situacao = 'C' then 'Cancelado'
when ped.situacao = 'E' then 'Entregue'
when ped.situacao = 'I' then 'Emitido / Analise'
when ped.situacao = 'M' then 'Em manutenção'
when ped.situacao = 'O' then 'Pronto'
when ped.situacao = 'P' then 'Pendente / Proposta'
when ped.situacao = 'Q' then 'Qualificado'
when ped.situacao = 'R' then 'Perdido'
when ped.situacao = 'T' then 'Em trânsito'
when ped.situacao = 'V' then 'Vencido / Expirado'
when ped.situacao = 'X' then 'Em execução'
else ped.situacao end) as situacao
, ped.data_emissao, pcli.pessoa, pcli.nome_completo, ped.valor_total
from atendimento_item_pedido aten 
join itens_pedidos itpe on itpe.id = aten.atende_item_id
join itens_pedidos ipaten on ipaten.id = aten.atendido_por_id
join pedidos ped on ped.id = ipaten.pedido_id
left join pessoas pcli on pcli.id = ped.cliente_id
join tipos_pedidos as tiped on tiped.id = ped.tipo_pedido_id
where itpe.pedido_id = ${pedido_id} and produto_contrato_servico_id is null
group by ped.id, ped.pedido, tiped.tipo_pedido, ped.situacao,ped.data_emissao, pcli.pessoa, pcli.nome_completo, ped.valor_total;

item contrato_servicos text_html, label='Contrato'; 
item situacao_contrato text, label='Situação'; 
item tipo_contrato text, label='Tipo contrato'; 
item tipo_servico text, label='Tipo serviço'; 
item data_cadastro date, label='Data cadastro';
item valor_contrato decimal_value, label='Valor contrato'; 

select '<a href=CadContratosServicos?Z_ACTION=VIEW&A_ID='||conser.id||'>'||conser.contrato_servicos||'</a>' as contrato_servicos
, tico.tipo_contrato, tise.tipo_servico, conser.data_cadastro, 
case 
when conser.situacao_contrato = 'A' then 'Ativo'
when conser.situacao_contrato = 'C' then 'Cancelado'
when conser.situacao_contrato = 'E' then 'Encerrado'
when conser.situacao_contrato = 'I' then 'Inadimplente'
when conser.situacao_contrato = 'M' then 'Manutenção'
when conser.situacao_contrato = 'N' then 'Em análise'
when conser.situacao_contrato = 'P' then 'Suspenso'
when conser.situacao_contrato = 'S' then 'Faturamento suspenso'
else conser.situacao_contrato end as situacao_contrato
, conser.valor_contrato
from atendimento_item_pedido aten 
join itens_pedidos itpe on itpe.id = aten.atende_item_id
join contratos_servicos_produtos csp on csp.id = aten.produto_contrato_servico_id
join contratos_servicos conser on conser.id = csp.contrato_id
join tipos_contratos_servicos tico on tico.id = conser.tipo_contrato_id
join tipos_servicos tise on tise.id = conser.tipo_servico_id
where itpe.pedido_id = ${pedido_id} and aten.atendido_por_id is null
group by conser.id, conser.contrato_servicos, tico.tipo_contrato, tise.tipo_servico , conser.data_cadastro, conser.situacao_contrato, conser.valor_contrato;

Ver também: