Pular para o conteúdo principal

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​

TabelaUso
CONDPAGTOreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
FORMAPAGTOreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
MAQUINAreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORDEMSERVHORAreferenciada nas queries do layout
ORDEMSERVICOreferenciada nas queries do layout
ORDEMSERVITEMreferenciada nas queries do layout
PARMFATURreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
RETORNA_DIFERENCADATAHORAreferenciada nas queries do layout
RETORNA_HORASreferenciada nas queries do layout
SERVICOITEMreferenciada nas queries do layout
TIPOPESSOAreferenciada nas queries do layout
USUARIOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOS008/ULOS008.pas
  • DFM: source/LOS008/ULOS008.dfm
  • Package: source/LOS008/LOS008.dpk