Pular para o conteúdo principal

LOS002 — Layout LOS002

Visão Geral​

Layout de impressão da família LOS (Ordem de Serviço). Acionado via ExecLayout a partir das telas que imprimem este tipo de documento.

Descrição​

Consulta baseada em ORCAMENTO, com junção em MAQUINAORCAMENTO, EMPRESA, PESSOA, ENDERECOPESSOA, MUNICIPIO, ITEM, filtrada por CD_EMPRESA, NR_ORCAMENTO, NR_, NR_MAQU, DS_MAQU, DT_ (+10).

Chamada​

ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Orcamento
// 3 - Path Servidor
// 4 - Visualiza -> V ou Imprime -> I
// 5 - Máquinas da Ordem de Serviço
// 6 - Abertura ou Fechamento
]);

SQL Base​

Orcamento​

SELECT O.CD_EMPRESA, E.NM_EMPRESA, P.NR_CNPJCPF, N.DS_ENDERECO||COALESCE(', '||N.NR_ENDERECO,'')||COALESCE(' - '||COALESCE(' - '||N.DS_BAIRRO, N.DS_COMPLEMENTO),'') DS_ENDERECO, U.DS_MUNICIPIO||' - '||U.SG_ESTADO DS_MUNICIPIO, N.NR_FONE, N.NR_FAX, N.NR_CEP, N.NR_INSCEST, O.NR_ORCAMENTO, O.DT_ORCAMENTO, O.NR_DIASENTREGA, P.DS_EMAIL, O.DS_CONTATO, P.CD_PESSOA, P.NM_PESSOA, O.DT_ENTREGA, M.NR_MAQUINA, M.DS_MAQUINA, M.DS_ESPECIFICACAO, M.DT_INISERVICO, M.DT_FIMSERVICO, M.QT_MAQUINA, M.DS_OBSERVACAO, CASE O.TP_ORCAMENTO WHEN 'O' THEN 'Orçamento ' ELSE 'Ordem Serviço ' END || O.NR_ORCAMENTO DS_ORCAMENTO
FROM ORCAMENTO O
INNER JOIN MAQUINAORCAMENTO M ON (M.CD_EMPRESA = O.CD_EMPRESA
AND M.NR_ORCAMENTO = O.NR_ORCAMENTO)
INNER JOIN EMPRESA E ON (O.CD_EMPRESA = E.CD_EMPRESA)
INNER JOIN PESSOA P ON (O.CD_PESSOA = P.CD_PESSOA)
INNER JOIN ENDERECOPESSOA N ON (N.CD_PESSOA = O.CD_PESSOA
AND N.CD_ENDERECO = O.CD_ENDERECO)
INNER JOIN MUNICIPIO U ON (U.CD_MUNICIPIO = N.CD_MUNICIPIO)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO CD_EMPRESA 1 NR_ORCAMENTO 68
SELECT O.CD_EMPRESA, E.NM_EMPRESA, P.NR_CNPJCPF, N.DS_ENDERECO||COALESCE(', '||N.NR_ENDERECO,'')||COALESCE(' - '||COALESCE(' - '||N.DS_BAIRRO, N.DS_COMPLEMENTO),'') DS_ENDERECO, U.DS_MUNICIPIO||' - '||U.SG_ESTADO DS_MUNICIPIO, N.NR_FONE, N.NR_FAX, N.NR_CEP, N.NR_INSCEST, O.NR_ORCAMENTO, O.DT_ORCAMENTO, O.NR_DIASENTREGA, P.DS_EMAIL, O.DS_CONTATO, P.CD_PESSOA, P.NM_PESSOA, O.DT_ENTREGA, M.NR_MAQUINA, M.DS_MAQUINA, M.DS_ESPECIFICACAO, M.DT_INISERVICO, M.DT_FIMSERVICO, M.QT_MAQUINA, M.VL_TOTAL, M.DS_OBSERVACAO, (
SELECT SUM(S.VL_TOTAL)
FROM SERVICOORCAMENTO S
WHERE S.CD_EMPRESA = O.CD_EMPRESA
AND S.NR_ORCAMENTO = O.NR_ORCAMENTO
AND S.NR_MAQUINA = M.NR_MAQUINA) VL_SERVICO, CASE O.TP_ORCAMENTO WHEN 'O' THEN 'Orçamento ' ELSE 'Ordem Serviço ' END || O.NR_ORCAMENTO DS_ORCAMENTO
FROM ORCAMENTO O
INNER JOIN MAQUINAORCAMENTO M ON (M.CD_EMPRESA = O.CD_EMPRESA
AND M.NR_ORCAMENTO = O.NR_ORCAMENTO)
INNER JOIN EMPRESA E ON (O.CD_EMPRESA = E.CD_EMPRESA)
INNER JOIN PESSOA P ON (O.CD_PESSOA = P.CD_PESSOA)
INNER JOIN ENDERECOPESSOA N ON (N.CD_PESSOA = O.CD_PESSOA
AND N.CD_ENDERECO = O.CD_ENDERECO)
INNER JOIN MUNICIPIO U ON (U.CD_MUNICIPIO = N.CD_MUNICIPIO)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO CD_EMPRESA 1 NR_ORCAMENTO 68
SELECT DISTINCT IT.DS_ITEM||' - '||IT.CD_ITEM DS_ITEM, P.NM_PESSOA NM_TECNICO, COALESCE(O.QT_SERVICO, O.PS_SERVICO) QT_SERVICO, O.VL_UNITARIO, O.VL_TOTAL, IT.SG_UNIDMED, IT.SG_UNIDALT, (
SELECT V_TIPO
FROM HABILITA_PESOQTDE(IT.CD_ITEM)) TIPO
FROM SERVICOORCAMENTO O
INNER JOIN ITEM IT ON (O.CD_ITEM = IT.CD_ITEM)
LEFT JOIN PESSOA P ON (P.CD_PESSOA = O.CD_PESSOA)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO
AND O.NR_MAQUINA = :NR_MAQUINA
ORDER BY IT.DS_ITEM CD_EMPRESA 1 NR_ORCAMENTO 68 NR_MAQUINA

Tabelas Utilizadas​

TabelaUso
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
HABILITA_PESOQTDEreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
MAQUINAORCAMENTOreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORCAMENTOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
SERVICOORCAMENTOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOS002/ULOS002.pas
  • DFM: source/LOS002/ULOS002.dfm
  • Package: source/LOS002/LOS002.dpk