LOS021 — Layout LOS021
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, PARMFATUR, MAQUINA, FORMAPAGTO (+3), filtrada por CD_EMPRESA, NR_ORDEMSERVICO, L, ORDEMSERVITEM, JO, CD_ITEM (+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, ORDEMSERVICO.NR_SERIEMAQUINA, MAQUINA.DS_MAQUINA, MAQUINA.DS_MODELO, P.DS_LOGOTIPO, 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, ORDEMSERVICO.DS_DEFEITO, ORDEMSERVICO.DS_CONTATO, ORDEMSERVICO.DT_ENTREGA, ORDEMSERVICO.NR_KILOMETRAGEM, CASE ORDEMSERVICO.TP_PRIORIDADE WHEN 'A' THEN 'Alta' WHEN 'M' THEN 'Média' WHEN 'B' THEN 'Baixa' ELSE '' END DS_PRIORIDADE, ORDEMSERVICO.DT_REGISTRO
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)
INNER JOIN PARMFATUR P ON (P.CD_EMPRESA = ORDEMSERVICO.CD_EMPRESA)
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)
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.DT_ABERTURA, ORDEMSERVITEM.DT_FECHAMENTO, ORDEMSERVITEM.QT_SERVICO, ORDEMSERVITEM.VL_UNITARIO, ORDEMSERVITEM.VL_DESCONTO, ORDEMSERVITEM.VL_TOTAL, (ORDEMSERVITEM.VL_TOTAL - COALESCE(VL_DESCONTO, 0)) VL_LIQUIDO, ORDEMSERVITEM.CD_EMPRESA, ORDEMSERVITEM.NR_ORDEMSERVICO, ( 3 - (
SELECT COUNT (OS.CD_SERVICO)
FROM ORDEMSERVITEM OS
WHERE OS.CD_EMPRESA = ORDEMSERVITEM.CD_EMPRESA
AND OS.NR_ORDEMSERVICO = ORDEMSERVITEM.NR_ORDEMSERVICO )) LINHAS_BRANCO, ORDEMSERVITEM.DS_SERVICO DS_OBSSERVICO
FROM ORDEMSERVITEM
INNER JOIN ITEM ON (ITEM.CD_ITEM = ORDEMSERVITEM.CD_SERVICO)
WHERE ORDEMSERVITEM.CD_EMPRESA = :CD_EMPRESA
AND ORDEMSERVITEM.NR_ORDEMSERVICO = :NR_ORDEMSERVICO CD_EMPRESA 1 NR_ORDEMSERVICO 102
SELECT SERVICOITEM.CD_EMPRESA, SERVICOITEM.NR_ORDEMSERVICO, SERVICOITEM.CD_ITEM, ITEM.DS_ITEM, SERVICOITEM.CD_TABPRECO, SERVICOITEM.CD_MOVIMENTACAO, SERVICOITEM.QT_SERVICOITEM, SERVICOITEM.PS_SERVICOITEM, SERVICOITEM.VL_UNITARIO, SERVICOITEM.VL_TOTAL, SERVICOITEM.VL_DESCONTO, (SERVICOITEM.VL_TOTAL - COALESCE(SERVICOITEM.VL_DESCONTO, 0)) VL_LIQUIDO , SERVICOITEM.DS_ITEM DS_OBSITEM
FROM SERVICOITEM
INNER JOIN ITEM ON (ITEM.CD_ITEM = SERVICOITEM.CD_ITEM)
WHERE SERVICOITEM.CD_EMPRESA = :CD_EMPRESA
AND SERVICOITEM.NR_ORDEMSERVICO = :NR_ORDEMSERVICO
ORDER BY SERVICOITEM.CD_ITEM CD_EMPRESA 1 NR_ORDEMSERVICO
SELECT OH.NR_ORDEMSERVICO, OH.NR_PLACA, OH.CD_SERVICO, OH.KM_INICIAL, OH.KM_FINAL, P.NM_PESSOA NM_TECNICO
FROM ORDEMSERVHORA OH
LEFT JOIN PESSOA P ON (OH.CD_PESSOA = P.CD_PESSOA)
WHERE OH.CD_EMPRESA = :CD_EMPRESA
AND OH.NR_ORDEMSERVICO = :NR_ORDEMSERVICO
AND OH.CD_SERVICO = :CD_SERVICO
ORDER BY OH.NR_PLACA, OH.KM_INICIAL CD_EMPRESA 1 NR_ORDEMSERVICO CD_SERVICO
SELECT E.NM_EMPRESA, DC.NR_CNPJCPF NR_CNPJCPFEMP, DC.NR_INSCEST NR_INSCESTEMP, COALESCE(DC.DS_ENDERECO || ' Nº ' || DC.NR_ENDERECO || ' - ' || DC.DS_BAIRRO, null) DS_ENDERECOEMP, COALESCE(DC.DS_MUNICIPIO || ' - ' || DC.SG_ESTADO, null) DS_CIDADEEMP, DC.NR_CEP NR_CEPEMP, DC.NR_TELEFONE NR_FONEEMP, DC.NR_FAX NR_FAXEMP
FROM EMPRESA E
LEFT JOIN RETORNA_DADOSCADASTRAIS(E.CD_PESSOA, null) DC ON (1 = 1)
WHERE E.CD_EMPRESA = :CD_EMPRESA CD_EMPRESA 1
SELECT CAST(SUM(SM.TOTSER_ORDEM)AS DOM_NUMERIC15_2) TOT_ORDEM, CAST(SUM(SM.TOTSER_DESCONT)AS DOM_NUMERIC15_2)TOT_DESCONT, CAST(SUM(SM.TOTSER_LIQUID)AS DOM_NUMERIC15_2)TOT_LIQUID
FROM (
SELECT COALESCE(SUM(VL_TOTAL),0) TOTSER_ORDEM , COALESCE(SUM(VL_DESCONTO),0) TOTSER_DESCONT, COALESCE(SUM(VL_TOTAL),0) - COALESCE(SUM(VL_DESCONTO),0) TOTSER_LIQUID
FROM ORDEMSERVITEM
WHERE CD_EMPRESA = :CD_EMPRESA
AND NR_ORDEMSERVICO = :NR_ORDEMSERVICO
UNION ALL
SELECT CAST(COALESCE(SUM(VL_TOTAL),0)AS DOM_NUMERIC15_2) , CAST(COALESCE(SUM(VL_DESCONTO),0)AS DOM_NUMERIC15_2), CAST(COALESCE(SUM(VL_TOTAL),0) - COALESCE(SUM(VL_DESCONTO),0)AS DOM_NUMERIC15_2)
FROM SERVICOITEM
WHERE CD_EMPRESA = :CD_EMPRESA
AND NR_ORDEMSERVICO = :NR_ORDEMSERVICO ) SM CD_EMPRESA 1 NR_ORDEMSERVICO 1 CD_EMPRESA NR_ORDEMSERVICO
Tabelas Utilizadas
| Tabela | Uso |
|---|---|
CONDPAGTO | referenciada nas queries do layout |
EMPRESA | referenciada nas queries do layout |
ENDERECOPESSOA | referenciada nas queries do layout |
FORMAPAGTO | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
MAQUINA | referenciada nas queries do layout |
MUNICIPIO | referenciada nas queries do layout |
ORDEMSERVHORA | 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 |
RETORNA_DADOSCADASTRAIS | referenciada nas queries do layout |
SERVICOITEM | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOS021/ULOS021.pas - DFM:
source/LOS021/ULOS021.dfm - Package:
source/LOS021/LOS021.dpk