LOS008 — Layout LOS008
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, EMPRESA, TIPOPESSOA, MAQUINA (+6), filtrada por CD_PESSOA, JO, CD_MUNICIPIO, CD_TIPOPESSOA, MAQU, NR_SERIEMAQUINA (+11).
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 U.nm_usuario,ORDEMSERVICO.CD_EMPRESA, ORDEMSERVICO.NR_ORDEMSERVICO, ORDEMSERVICO.CD_PESSOA, P.NM_PESSOA, P.NR_CNPJCPF, EP.DS_BAIRRO, T.DS_TIPOPESSOA, EP.NR_CEP CEP_CLIENTE, EP.DS_ENDERECO||COALESCE(', '||EP.NR_ENDERECO, '')||'. Cidade: '||M.DS_MUNICIPIO||'-'||M.SG_ESTADO DS_ENDERECO, COALESCE(EP.NR_FONE,EP.NR_FAX) NR_FONE, EP.NR_CELULAR,ORDEMSERVICO.DS_DEFEITO, ORDEMSERVICO.NR_SERIEMAQUINA,MAQUINA.DS_MAQUINA , MAQUINA.DS_MODELO, ORDEMSERVICO.DT_EMISSAO,ORDEMSERVICO.hr_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, ORDEMSERVICO.DS_CONTATO, ORDEMSERVICO.NR_ROMANEIO, CASE ORDEMSERVICO.ST_ORDEMSERVICO WHEN 'A' THEN 'Aberta' ELSE 'Fechada' END DS_STATUS, PARMFATUR.DS_LOGOTIPO, E.NM_EMPRESA, PE.NR_CNPJCPF NR_CNPJEMP, PE.NM_FANTASIA, EE.DS_ENDERECO||COALESCE(', '||EE.NR_ENDERECO,' ')||COALESCE(COALESCE(' - '||EE.DS_BAIRRO, EE.DS_COMPLEMENTO),' ') DS_ENDEREMP, ME.DS_MUNICIPIO||' - '||ME.SG_ESTADO DS_MUNICEMP, EE.NR_INSCEST NR_INSCEMP, PE.DS_EMAIL, COALESCE(EE.NR_FONE, EE.NR_FAX) NR_FONEEMP, EE.NR_CEP NR_CEPEMP, EE.NR_FAX NR_FAXEMP
FROM ORDEMSERVICO
INNER JOIN PESSOA P ON (P.CD_PESSOA = ORDEMSERVICO.CD_PESSOA)
INNER JOIN ENDERECOPESSOA EP ON (EP.CD_PESSOA = ORDEMSERVICO.CD_PESSOA
AND EP.CD_ENDERECO = ORDEMSERVICO.CD_ENDERECO)
INNER JOIN MUNICIPIO M ON (M.CD_MUNICIPIO = EP.CD_MUNICIPIO)
INNER JOIN EMPRESA E ON (ORDEMSERVICO.CD_EMPRESA = E.CD_EMPRESA)
INNER JOIN PESSOA PE ON (E.CD_PESSOA = PE.CD_PESSOA)
INNER JOIN ENDERECOPESSOA EE ON (EE.CD_PESSOA = PE.CD_PESSOA
AND EE.CD_ENDERECO = (
SELECT MIN(CD_ENDERECO)
FROM ENDERECOPESSOA ENDER
WHERE ENDER.CD_PESSOA = EE.CD_PESSOA))
INNER JOIN MUNICIPIO ME ON (EE.CD_MUNICIPIO = ME.CD_MUNICIPIO)
INNER JOIN TIPOPESSOA T ON (T.CD_TIPOPESSOA = P.CD_TIPOPESSOA)
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 ON (PARMFATUR.CD_EMPRESA = ORDEMSERVICO.CD_EMPRESA)
LEFT JOIN USUARIO U ON (U.cd_usuario = ordemservico.cd_usuario)
WHERE ORDEMSERVICO.CD_EMPRESA = :CD_EMPRESA
AND ORDEMSERVICO.NR_ORDEMSERVICO = :NR_ORDEMSERVICO CD_EMPRESA 1 NR_ORDEMSERVICO 102
SELECT O.CD_SERVICO, ITEM.DS_ITEM, O.DT_ABERTURA, O.NR_ORDEMSERVICO, O.CD_EMPRESA, O.DS_SERVICO, O.DT_FECHAMENTO, O.QT_SERVICO, O.VL_UNITARIO, O.VL_DESCONTO,O.VL_TOTAL, (O.VL_TOTAL - COALESCE(VL_DESCONTO, 0)) VL_LIQUIDO, (
SELECT O_DS_HORAS
FROM RETORNA_HORAS((
SELECT SUM((
SELECT O_HR_SEGUNDOS
FROM RETORNA_DIFERENCADATAHORA(OSH.DT_INICIO, COALESCE(OSH.DT_FIM, CURRENT_TIMESTAMP))) / 3600.00)
FROM ORDEMSERVHORA OSH
WHERE OSH.CD_EMPRESA = O.CD_EMPRESA
AND OSH.NR_ORDEMSERVICO = O.NR_ORDEMSERVICO
AND OSH.CD_SERVICO = O.CD_SERVICO))) QT_HORASTOTAL, (
SELECT SUM((
SELECT O_HR_SEGUNDOS
FROM RETORNA_DIFERENCADATAHORA(OSH.DT_INICIO, COALESCE(OSH.DT_FIM, CURRENT_TIMESTAMP))) / 3600.00)
FROM ORDEMSERVHORA OSH
WHERE OSH.CD_EMPRESA = O.CD_EMPRESA
AND OSH.NR_ORDEMSERVICO = O.NR_ORDEMSERVICO
AND OSH.CD_SERVICO = O.CD_SERVICO) QT_HORAS, OH.DT_INICIO, OH.DT_FIM, REPLACE(OH.QT_HORAS, '.', ':') TOTAL_HORAS, P.NM_PESSOA NM_TECNICO, OH.QT_HORAS TOT_HORAS, (
SELECT O_DS_HORAS
FROM RETORNA_HORAS((
SELECT O_HR_SEGUNDOS
FROM RETORNA_DIFERENCADATAHORA(OH.DT_INICIO, COALESCE(OH.DT_FIM, CURRENT_TIMESTAMP))) / 3600.00)) QT_HORASTOTAL_TURNO, ((
SELECT O_HR_SEGUNDOS
FROM RETORNA_DIFERENCADATAHORA(OH.DT_INICIO, COALESCE(OH.DT_FIM, CURRENT_TIMESTAMP))) / 3600.00) QT_HORAS_TURNO, O.DS_SERVICO DS_OBSITEMSERVICO
FROM ORDEMSERVITEM O
INNER JOIN ITEM ON (ITEM.CD_ITEM = O.CD_SERVICO)
LEFT JOIN ORDEMSERVHORA OH ON (OH.CD_EMPRESA = O.CD_EMPRESA
AND OH.NR_ORDEMSERVICO = O.NR_ORDEMSERVICO
AND OH.CD_SERVICO = O.CD_SERVICO
AND OH.NR_SERVICO = O.NR_SERVICO)
LEFT JOIN PESSOA P ON (P.CD_PESSOA = OH.CD_PESSOA)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORDEMSERVICO = :NR_ORDEMSERVICO
ORDER BY O.CD_SERVICO, P.NM_PESSOA, OH.DT_INICIO 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, SERVICOITEM.DS_OBSERVACAO
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 SUM(VL_TOTAL) VL_TOTAL, SUM(VL_DESCONTO) VL_DESCONTO, SUM(VL_LIQUIDO) VL_LIQUIDO
FROM (
SELECT COALESCE(SUM(VL_TOTAL),0) VL_TOTAL, COALESCE(SUM(VL_DESCONTO),0) VL_DESCONTO, COALESCE(SUM(VL_TOTAL),0) - COALESCE(SUM(VL_DESCONTO),0) VL_LIQUIDO
FROM ORDEMSERVITEM
WHERE CD_EMPRESA = :CD_EMPRESA
AND NR_ORDEMSERVICO = :NR_ORDEMSERVICO
UNION ALL
SELECT COALESCE(SUM(VL_TOTAL),0) VL_TOTAL, COALESCE(SUM(VL_DESCONTO),0) VL_DESCONTO, COALESCE(SUM(VL_TOTAL),0) - COALESCE(SUM(VL_DESCONTO),0) VL_LIQUIDO
FROM SERVICOITEM
WHERE CD_EMPRESA = :CD_EMPRESA
AND NR_ORDEMSERVICO = :NR_ORDEMSERVICO ) CD_EMPRESA 1 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_DIFERENCADATAHORA | referenciada nas queries do layout |
RETORNA_HORAS | referenciada nas queries do layout |
SERVICOITEM | referenciada nas queries do layout |
TIPOPESSOA | referenciada nas queries do layout |
USUARIO | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOS008/ULOS008.pas - DFM:
source/LOS008/ULOS008.dfm - Package:
source/LOS008/LOS008.dpk