LOS022 — Layout LOS022
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 ORDEMSERVICO, com junção em PESSOA, ENDERECOPESSOA, MUNICIPIO, MAQUINA, FORMAPAGTO, CONDPAGTO (+5), filtrada por CD_EMPRESA, NR_ORDEMSERVICO, ORDEMSERVITEM, JO, CD_ITEM, SERVICOITEM (+1).
Chamada
ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Ordemservico
// 3 - Path Servidor
// 4 - Visualiza -> V ou Imprime -> I
]);
SQL Base
Ordemservico
SELECT ORDEMSERVICO.CD_EMPRESA, ORDEMSERVICO.NR_ORDEMSERVICO, ORDEMSERVICO.CD_PESSOA, PESSOA.NM_PESSOA, PESSOA.NR_CNPJCPF, ENDERECOPESSOA.DS_BAIRRO, ENDERECOPESSOA.DS_ENDERECO||COALESCE(', '||ENDERECOPESSOA.NR_ENDERECO, '')||'. Cidade: '||MUNICIPIO.DS_MUNICIPIO||'-'||MUNICIPIO.SG_ESTADO DS_ENDERECO, COALESCE(ENDERECOPESSOA.NR_FONE,ENDERECOPESSOA.NR_FAX) NR_FONE, ENDERECOPESSOA.NR_CELULAR, PESSOA.NM_PESSOA||' - '||COALESCE(PESSOA.NM_FANTASIA,'') RAZAOFANTASIA, ORDEMSERVICO.NR_SERIEMAQUINA, MAQUINA.DS_MAQUINA, MAQUINA.DS_MODELO, CASE EXTRACT(WEEKDAY
FROM ORDEMSERVICO.DT_EMISSAO) when 0 then 'Domingo' when 1 then 'Segunda' when 2 then 'Terça' when 3 then 'Quarta' when 4 then 'Quinta' when 5 then 'Sexta' when 6 then 'Sabado' END DS_EMISSAO, ORDEMSERVICO.DT_EMISSAO, ORDEMSERVICO.CD_FORMAPAGTO, FORMAPAGTO.DS_FORMAPAGTO, ORDEMSERVICO.CD_CONDPAGTO, CONDPAGTO.DS_CONDPAGTO, ORDEMSERVICO.DT_VENCIMENTO, ORDEMSERVICO.DS_OBSERVACAO, ORDEMSERVICO.DS_ACESSORIOS, ORDEMSERVICO.DS_TECNICA, CASE ORDEMSERVICO.ST_ORDEMSERVICO WHEN 'A' THEN 'Aberta' ELSE 'Fechada' END DS_STATUS, PARM.DS_LOGOTIPO, MARCA.DS_MARCA, ORDEMSERVICO.DS_TECNICA DS_LAUDO, MAQUINA.DS_CODIGO
FROM ORDEMSERVICO
INNER JOIN PESSOA ON (PESSOA.CD_PESSOA = ORDEMSERVICO.CD_PESSOA)
INNER JOIN ENDERECOPESSOA ON (ENDERECOPESSOA.CD_PESSOA = ORDEMSERVICO.CD_PESSOA
AND ENDERECOPESSOA.CD_ENDERECO = ORDEMSERVICO.CD_ENDERECO)
INNER JOIN MUNICIPIO ON (MUNICIPIO.CD_MUNICIPIO = ENDERECOPESSOA.CD_MUNICIPIO)
LEFT JOIN MAQUINA ON (MAQUINA.NR_SERIEMAQUINA = ORDEMSERVICO.NR_SERIEMAQUINA)
LEFT JOIN FORMAPAGTO ON (FORMAPAGTO.CD_FORMAPAGTO = ORDEMSERVICO.CD_FORMAPAGTO)
LEFT JOIN CONDPAGTO ON (CONDPAGTO.CD_CONDPAGTO = ORDEMSERVICO.CD_CONDPAGTO)
LEFT JOIN PARMFATUR PARM ON (PARM.CD_EMPRESA = ORDEMSERVICO.CD_EMPRESA)
LEFT JOIN MARCA ON (MARCA.CD_MARCA = MAQUINA.CD_MARCA)
WHERE ORDEMSERVICO.CD_EMPRESA = :CD_EMPRESA
AND ORDEMSERVICO.NR_ORDEMSERVICO = :NR_ORDEMSERVICO CD_EMPRESA 1 NR_ORDEMSERVICO 102
SELECT ORDEMSERVITEM.CD_SERVICO, ITEM.DS_ITEM, ORDEMSERVITEM.QT_SERVICO||' '||COALESCE(H.SG_QTDE, H.SG_PESO) QT_SERVICO, ORDEMSERVITEM.VL_UNITARIO, ORDEMSERVITEM.VL_TOTAL, ORDEMSERVITEM.VL_DESCONTO, ORDEMSERVITEM.VL_TOTAL - COALESCE(ORDEMSERVITEM.VL_DESCONTO,0) VL_LIQUIDO
FROM ORDEMSERVITEM
INNER JOIN ITEM ON (ITEM.CD_ITEM = ORDEMSERVITEM.CD_SERVICO)
LEFT JOIN HABILITA_PESOQTDE(ITEM.CD_ITEM) H ON (1=1)
WHERE ORDEMSERVITEM.CD_EMPRESA = :CD_EMPRESA
AND ORDEMSERVITEM.NR_ORDEMSERVICO = :NR_ORDEMSERVICO CD_EMPRESA 1 NR_ORDEMSERVICO
SELECT SERVICOITEM.CD_EMPRESA, SERVICOITEM.NR_ORDEMSERVICO, SERVICOITEM.CD_ITEM, ITEM.DS_ITEM, SERVICOITEM.CD_TABPRECO, SERVICOITEM.CD_MOVIMENTACAO, CASE TC.TP_UNIDADE WHEN 'Q' THEN SERVICOITEM.QT_SERVICOITEM ELSE SERVICOITEM.PS_SERVICOITEM END ||' '||COALESCE(H.SG_QTDE, H.DS_PESO) QT_SERVICOITEM, SERVICOITEM.PS_SERVICOITEM, SERVICOITEM.VL_UNITARIO, SERVICOITEM.VL_TOTAL, SERVICOITEM.VL_DESCONTO, (SERVICOITEM.VL_TOTAL - COALESCE(SERVICOITEM.VL_DESCONTO, 0)) VL_LIQUIDO
FROM SERVICOITEM
INNER JOIN ITEM ON (ITEM.CD_ITEM = SERVICOITEM.CD_ITEM)
INNER JOIN TIPOCALCULO TC ON (TC.CD_TIPOCALCULO = ITEM.CD_TIPOCALCULO)
LEFT JOIN HABILITA_PESOQTDE(ITEM.CD_ITEM) H ON (1=1)
WHERE SERVICOITEM.CD_EMPRESA = :CD_EMPRESA
AND SERVICOITEM.NR_ORDEMSERVICO = :NR_ORDEMSERVICO
ORDER BY SERVICOITEM.CD_ITEM CD_EMPRESA 1 NR_ORDEMSERVICO
SELECT ORCAMENTO.CD_EMPRESA, ORCAMENTO.NR_ORCAMENTO, ORCAMENTO.CD_PESSOA, PESSOA.NM_PESSOA, PESSOA.NR_CNPJCPF, ENDERECOPESSOA.DS_BAIRRO, PESSOA.NM_PESSOA||' - '||COALESCE(PESSOA.NM_FANTASIA,'') RAZAOFANTASIA, ENDERECOPESSOA.DS_ENDERECO||COALESCE(', '||ENDERECOPESSOA.NR_ENDERECO, '')||'. Cidade: '||MUNICIPIO.DS_MUNICIPIO||'-'||MUNICIPIO.SG_ESTADO DS_ENDERECO, COALESCE(ENDERECOPESSOA.NR_FONE,ENDERECOPESSOA.NR_FAX) NR_FONE, ENDERECOPESSOA.NR_CELULAR, CASE EXTRACT(WEEKDAY
FROM ORCAMENTO.DT_ORCAMENTO) when 0 then 'Domingo' when 1 then 'Segunda' when 2 then 'Terça' when 3 then 'Quarta' when 4 then 'Quinta' when 5 then 'Sexta' when 6 then 'Sabado' END DS_EMISSAO, ORCAMENTO.DT_ORCAMENTO DT_EMISSAO, ORCAMENTO.CD_FORMAPAGTO, FORMAPAGTO.DS_FORMAPAGTO, ORCAMENTO.CD_CONDPAGTO, CONDPAGTO.DS_CONDPAGTO, ORCAMENTO.DT_VENCIMENTO, ORCAMENTO.DS_OBSERVACAO, PARM.DS_LOGOTIPO, COALESCE('Nº Série Maquina: '||ORCAMENTO.NR_SERIEMAQUINA,null) NR_SERIEMAQUINA, CASE EXTRACT(WEEKDAY
FROM ORCAMENTO.DT_ENTREGA) when 0 then 'Domingo' when 1 then 'Segunda' when 2 then 'Terça' when 3 then 'Quarta' when 4 then 'Quinta' when 5 then 'Sexta' when 6 then 'Sabado' END DS_ENTREGA, ORCAMENTO.DT_ENTREGA
FROM ORCAMENTO
INNER JOIN PESSOA ON (PESSOA.CD_PESSOA = ORCAMENTO.CD_PESSOA)
INNER JOIN ENDERECOPESSOA ON (ENDERECOPESSOA.CD_PESSOA = ORCAMENTO.CD_PESSOA
AND ENDERECOPESSOA.CD_ENDERECO = ORCAMENTO.CD_ENDERECO)
INNER JOIN MUNICIPIO ON (MUNICIPIO.CD_MUNICIPIO = ENDERECOPESSOA.CD_MUNICIPIO)
LEFT JOIN FORMAPAGTO ON (FORMAPAGTO.CD_FORMAPAGTO = ORCAMENTO.CD_FORMAPAGTO)
LEFT JOIN CONDPAGTO ON (CONDPAGTO.CD_CONDPAGTO = ORCAMENTO.CD_CONDPAGTO)
LEFT JOIN PARMFATUR PARM ON (PARM.CD_EMPRESA = ORCAMENTO.CD_EMPRESA)
WHERE ORCAMENTO.CD_EMPRESA = :CD_EMPRESA
AND ORCAMENTO.NR_ORCAMENTO = :NR_ORCAMENTO CD_EMPRESA 1 NR_ORCAMENTO
SELECT MAQUINAORCAMENTO.CD_ITEM CD_SERVICO, COALESCE(ITEM.DS_ITEM, MAQUINAORCAMENTO.DS_MAQUINA) DS_ITEM, COALESCE(MAQUINAORCAMENTO.PS_MAQUINA, MAQUINAORCAMENTO.QT_MAQUINA)QT_SERVICO, MAQUINAORCAMENTO.VL_UNITARIO, MAQUINAORCAMENTO.VL_TOTAL, MAQUINAORCAMENTO.DS_ESPECIFICACAO, CASE TC.TP_UNIDADE WHEN 'Q' THEN HPQ.SG_QTDE ELSE HPQ.SG_PESO END SG_UNIDMED
FROM MAQUINAORCAMENTO
INNER JOIN ITEM ON (ITEM.CD_ITEM = MAQUINAORCAMENTO.CD_ITEM)
INNER JOIN TIPOCALCULO TC ON (TC.CD_TIPOCALCULO = ITEM.CD_TIPOCALCULO)
LEFT JOIN HABILITA_PESOQTDE(ITEM.CD_ITEM) HPQ ON (1=1)
WHERE MAQUINAORCAMENTO.CD_EMPRESA = :CD_EMPRESA
AND MAQUINAORCAMENTO.NR_ORCAMENTO = :NR_ORCAMENTO CD_EMPRESA 1 NR_ORCAMENTO
SELECT ITEMORCAMENTO.CD_EMPRESA, ITEMORCAMENTO.NR_ORCAMENTO, ITEMORCAMENTO.CD_ITEM, ITEM.DS_ITEM, CASE TC.TP_UNIDADE WHEN 'Q' THEN ITEMORCAMENTO.QT_ORCAMENTO ELSE ITEMORCAMENTO.PS_ORCAMENTO END QT_ORCAMENTO, ITEMORCAMENTO.PS_ORCAMENTO, ITEMORCAMENTO.VL_UNITARIO, ITEMORCAMENTO.VL_TOTAL, CASE TC.TP_UNIDADE WHEN 'Q' THEN HPQ.SG_QTDE ELSE HPQ.SG_PESO END SG_UNIDMED
FROM ITEMORCAMENTO
INNER JOIN ITEM ON (ITEM.CD_ITEM = ITEMORCAMENTO.CD_ITEM)
INNER JOIN TIPOCALCULO TC ON (TC.CD_TIPOCALCULO = ITEM.CD_TIPOCALCULO)
LEFT JOIN HABILITA_PESOQTDE(ITEM.CD_ITEM) HPQ ON (1 = 1)
WHERE ITEMORCAMENTO.CD_EMPRESA = :CD_EMPRESA
AND ITEMORCAMENTO.NR_ORCAMENTO = :NR_ORCAMENTO
ORDER BY ITEMORCAMENTO.CD_ITEM CD_EMPRESA 1 NR_ORCAMENTO
Tabelas Utilizadas
| Tabela | Uso |
|---|---|
CONDPAGTO | referenciada nas queries do layout |
ENDERECOPESSOA | referenciada nas queries do layout |
FORMAPAGTO | referenciada nas queries do layout |
HABILITA_PESOQTDE | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
ITEMORCAMENTO | referenciada nas queries do layout |
MAQUINA | referenciada nas queries do layout |
MAQUINAORCAMENTO | referenciada nas queries do layout |
MARCA | referenciada nas queries do layout |
MUNICIPIO | referenciada nas queries do layout |
ORCAMENTO | referenciada nas queries do layout |
ORDEMSERVICO | referenciada nas queries do layout |
ORDEMSERVITEM | referenciada nas queries do layout |
PARMFATUR | referenciada nas queries do layout |
PESSOA | referenciada nas queries do layout |
SERVICOITEM | referenciada nas queries do layout |
TIPOCALCULO | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOS022/ULOS022.pas - DFM:
source/LOS022/ULOS022.dfm - Package:
source/LOS022/LOS022.dpk