LOS036 — Layout LOS036
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, CONDPAGTO, FORMAPAGTO, EMPRESA (+9), filtrada por CD_PESSOA, JO, CD_MUNICIPIO, CD_CONDPAGTO, CD_EMPRESA, CD_EMPRORDEM (+4).
Chamada
ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Orcamento
// 3 - Path Servidor
// 4 - Visualiza -> V ou Imprime -> I
// 5 - Origem
]);
SQL Base
tabORDEMLOCACAO
SELECT /*Dados Empresa*/ E.NM_EMPRESA, PE.NR_CNPJCPF NR_CNPJCPFEMP, EE.NR_INSCEST NR_INSCESTEMP, 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, PE.DS_SITE DS_SITEEMP, PE.DS_EMAIL DS_EMAILEMP, EE.NR_FONE NR_FONEEMP, EE.NR_FAX NR_FAXEMP, EE.NR_CEP NR_CEPEMP, PARM.DS_LOGOTIPO, /*Dados Ordem*/ OS.CD_EMPRESA, OS.NR_ORDEMSERVICO, OS.CD_PESSOA, P.NM_PESSOA, OS.CD_ENDERECO, EP.DS_ENDERECO, OS.DT_EMISSAO, OS.DT_ENTREGA, OS.DT_RETORNO, OS.CD_FORMAPAGTO, FP.DS_FORMAPAGTO, OS.CD_CONDPAGTO, CP.DS_CONDPAGTO, OS.DT_VENCIMENTO, EP.CD_CONDFISCAL, P.NR_CNPJCPF, EP.NR_CEP, EP.NR_INSCEST, COALESCE(EP.NR_FONE,'')||COALESCE(' Cel.: '||EP.NR_CELULAR,'') NR_FONE, EP.DS_ENDERECO||COALESCE(', N '||EP.NR_ENDERECO,'')||COALESCE(', '||EP.DS_BAIRRO,'') DS_ENDCOMPLETO, M.DS_MUNICIPIO||' - '||M.SG_ESTADO DS_MUNICIPIO, OS.DS_OBSERVACAO, OS.DS_LOCALENTREGA, OS.ST_ORDEMSERVICO, TRIM(CASE OS.ST_ORDEMSERVICO WHEN 'A' THEN 'Aberta' WHEN 'P' THEN 'Devoluções Pendentes' WHEN 'F' THEN 'Fechada' WHEN 'G' THEN 'Gerado Pedido' END) STORDEM, OS.NR_ORDEMSERVICO NR_ORDEMSERVICOAUX, OS.DT_FECHAMENTO, OS.DT_REGISTRO, OS.TP_ORDEMSERVICO, OS.CD_USUARIO, OS.CD_AUTORIZADOR, U.NM_USUARIO, PD.NR_PEDIDO, COALESCE(PD.ST_PEDIDO,'G') ST_PEDIDO, PD.DT_PEDIDO, SUM(COALESCE(TOT.O_VL_TOTAL,0)) VL_TOTALOS, SUM(COALESCE(CASE O_TIPO WHEN 'S' THEN COALESCE(O_VL_TOTAL,0) END,0)) VL_TOTALSV, SUM(COALESCE(CASE O_TIPO WHEN 'E' THEN COALESCE(O_VL_TOTAL,0) END,0)) VL_TOTALEQ, SUM(COALESCE(CASE O_TIPO WHEN 'P' THEN COALESCE(O_VL_TOTAL,0) END,0)) VL_TOTALPC
FROM ORDEMSERVICO OS
INNER JOIN PESSOA P ON (P.CD_PESSOA = OS.CD_PESSOA)
INNER JOIN ENDERECOPESSOA EP ON (EP.CD_PESSOA = OS.CD_PESSOA
AND EP.CD_ENDERECO = OS.CD_ENDERECO)
INNER JOIN MUNICIPIO M ON (M.CD_MUNICIPIO = EP.CD_MUNICIPIO)
INNER JOIN CONDPAGTO CP ON (CP.CD_CONDPAGTO = OS.CD_CONDPAGTO)
INNER JOIN FORMAPAGTO FP on (FP.CD_FORMAPAGTO = OS.CD_FORMAPAGTO) /*Dados Empresa*/
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = OS.CD_EMPRESA)
INNER JOIN PESSOA PE ON (PE.CD_PESSOA = E.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 (ME.CD_MUNICIPIO = EE.CD_MUNICIPIO)
INNER JOIN CONDPAGTO C ON (C.CD_CONDPAGTO = OS.CD_CONDPAGTO)
INNER JOIN PARMFATUR PARM ON (PARM.CD_EMPRESA = OS.CD_EMPRESA)
LEFT JOIN VIEW_LOCACAOITEMPEDIDO (OS.CD_EMPRESA, OS.NR_ORDEMSERVICO, null, 'SEP')TOT on (1=1) /*Dados Pedido*/
LEFT JOIN PEDIDO PD ON (PD.CD_EMPRORDEM = OS.CD_EMPRESA
AND PD.NR_ORDEMSERVICO = OS.NR_ORDEMSERVICO
AND PD.ST_PEDIDO <> 'C')
LEFT JOIN USUARIO U on ( U.CD_USUARIO = OS.CD_USUARIO)
WHERE OS.CD_EMPRESA = :CD_EMPRESA
AND OS.NR_ORDEMSERVICO = :NR_ORDEMSERVICO
AND OS.TP_ORDEMSERVICO = 'L'
GROUP BY E.NM_EMPRESA, PE.NR_CNPJCPF , EE.NR_INSCEST , EE.DS_ENDERECO, EE.NR_ENDERECO, EE.DS_BAIRRO, EE.DS_COMPLEMENTO, ME.DS_MUNICIPIO,ME.SG_ESTADO, PE.DS_SITE, PE.DS_EMAIL, EE.NR_FONE, EE.NR_FAX, EE.NR_CEP, PARM.DS_LOGOTIPO, OS.CD_EMPRESA, OS.NR_ORDEMSERVICO, OS.CD_PESSOA, P.NM_PESSOA, OS.CD_ENDERECO, EP.DS_ENDERECO, OS.DT_EMISSAO, OS.DT_ENTREGA, OS.DT_RETORNO, OS.CD_FORMAPAGTO, FP.DS_FORMAPAGTO, OS.CD_CONDPAGTO, CP.DS_CONDPAGTO, OS.DT_VENCIMENTO, EP.CD_CONDFISCAL, P.NR_CNPJCPF, EP.NR_CEP, EP.NR_INSCEST, EP.NR_FONE, EP.NR_CELULAR, EP.DS_ENDERECO, EP.NR_ENDERECO, EP.DS_BAIRRO, M.DS_MUNICIPIO, M.SG_ESTADO, OS.DS_OBSERVACAO, OS.DS_LOCALENTREGA, OS.ST_ORDEMSERVICO, OS.DT_FECHAMENTO, OS.DT_REGISTRO, OS.TP_ORDEMSERVICO, OS.CD_USUARIO, OS.CD_AUTORIZADOR, U.NM_USUARIO, PD.NR_PEDIDO, PD.ST_PEDIDO, PD.DT_PEDIDO CD_EMPRESA NR_ORDEMSERVICO
SELECT ITL.CD_EMPRESA, ITL.NR_ORDEMSERVICO, ITL.CD_ITEMLOCACAO, I.DS_ITEM, ITL.NR_ITEMLOCACAO, ITL.CD_MOVIMENTACAO, M.DS_MOVIMENTACAO, ITL.CD_TABPRECO, T.DS_TABPRECO, I.SG_UNIDALT, I.PS_LIQUIDO, ITL.QT_ITEMLOCACAO QT_ITEM, ITL.PS_ITEMLOCACAO PS_ITEM, ITL.QT_HORAS, ITL.ST_ITEMLOCACAO ST_ITEM, TRIM (CASE ITL.ST_ITEMLOCACAO WHEN 'I' THEN 'Indisponivel' WHEN 'L' THEN 'Locado' WHEN 'D' THEN 'Devolvido' WHEN 'C' THEN 'Cancelado' END) STITEM, ITL.VL_UNITARIO, LPAD(DIVIDENDO((( ITL.QT_HORAS) * 3600 ),3600),3,'0')||':'|| LPAD((MOD((( ITL.QT_HORAS) * 3600),3600)/60), 2, '0') DS_HORAS, ITL.VL_TOTAL, ITL.VL_DESCONTO, ITL.DT_ENTREGA, ITL.DT_RETORNO, ITL.ST_RETORNO, ITL.CD_OPERADOR, ITL.DS_OBSERVACAO, ITL.DT_REGISTRO, H.DS_PESO DS_UNIDPESO, H.DS_QTDE DS_UNIDQTDE, H.V_TIPO, TP.TP_UNIDADE, ITL.QT_ITEMLOCACAO QT_ITEMOLD, ITL.PS_ITEMLOCACAO PS_ITEMOLD, TOT.O_VL_UNITARIO, TOT.O_VL_TOTAL
FROM ITEMLOCACAO ITL
INNER JOIN ITEM I ON(I.CD_ITEM = ITL.CD_ITEMLOCACAO)
INNER JOIN TIPOCALCULO TP on ( TP.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
INNER JOIN MOVIMENTACAO M ON (M.CD_MOVIMENTACAO = ITL.CD_MOVIMENTACAO)
LEFT JOIN TABPRECO T ON (T.CD_TABPRECO = ITL.CD_TABPRECO)
LEFT JOIN HABILITA_PESOQTDE(ITL.CD_ITEMLOCACAO) H ON (1 = 1)
LEFT JOIN VIEW_LOCACAOITEMPEDIDO(ITL.CD_EMPRESA, ITL.NR_ORDEMSERVICO, ITL.CD_ITEMLOCACAO, 'E') TOT ON (1=1)
WHERE ITL.CD_EMPRESA = :CD_EMPRESA
AND ITL.NR_ORDEMSERVICO = :NR_ORDEMSERVICO
AND ITL.ST_ITEMLOCACAO <> 'C' CD_EMPRESA NR_ORDEMSERVICO
SELECT ITL.CD_EMPRESA, ITL.NR_ORDEMSERVICO, ITL.CD_SERVICO, I.DS_ITEM, ITL.NR_SERVICO, ITL.CD_MOVIMENTACAO, M.DS_MOVIMENTACAO, ITL.CD_TABPRECO, T.DS_TABPRECO, I.SG_UNIDALT, I.PS_LIQUIDO, ITL.QT_SERVICOLOCACAO QT_ITEM, ITL.PS_SERVICOLOCACAO PS_ITEM, ITL.QT_HORAS, ITL.ST_SERVICOLOCACAO ST_ITEM, TRIM(CASE ITL.ST_SERVICOLOCACAO WHEN 'A' THEN 'Aberto' WHEN 'F' THEN 'Fechado' WHEN 'C' THEN 'Cancelado' END) STITEM, ITL.VL_UNITARIO, LPAD(DIVIDENDO((( ITL.QT_HORAS) * 3600 ),3600),3,'0')||':'|| LPAD((MOD((( ITL.QT_HORAS) * 3600),3600)/60), 2, '0') DS_HORAS, ITL.VL_TOTAL, ITL.VL_DESCONTO, ITL.DT_ENTREGA, ITL.DT_RETORNO, ITL.ST_RETORNO, ITL.CD_OPERADOR, ITL.DS_OBSERVACAO, ITL.DT_REGISTRO, H.DS_PESO DS_UNIDPESO, H.DS_QTDE DS_UNIDQTDE, H.V_TIPO, TP.TP_UNIDADE, ITL.QT_SERVICOLOCACAO QT_ITEMOLD, ITL.PS_SERVICOLOCACAO PS_ITEMOLD, TOT.O_VL_UNITARIO, TOT.O_VL_TOTAL
FROM SERVICOLOCACAO ITL
INNER JOIN ITEM I ON(I.CD_ITEM = ITL.CD_SERVICO)
INNER JOIN TIPOCALCULO TP on ( TP.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
INNER JOIN MOVIMENTACAO M ON (M.CD_MOVIMENTACAO = ITL.CD_MOVIMENTACAO)
LEFT JOIN TABPRECO T ON (T.CD_TABPRECO = ITL.CD_TABPRECO)
LEFT JOIN HABILITA_PESOQTDE(ITL.CD_SERVICO) H ON (1 = 1)
LEFT JOIN VIEW_LOCACAOITEMPEDIDO(ITL.CD_EMPRESA, ITL.NR_ORDEMSERVICO, ITL.CD_SERVICO, 'S')TOT ON (1=1)
WHERE ITL.CD_EMPRESA = :CD_EMPRESA
AND ITL.NR_ORDEMSERVICO = :NR_ORDEMSERVICO
AND ITL.ST_SERVICOLOCACAO <> 'C' CD_EMPRESA NR_ORDEMSERVICO
SELECT ITL.CD_EMPRESA, ITL.NR_ORDEMSERVICO, ITL.CD_ITEMLOCACAO, I.DS_ITEM, ITL.NR_ITEMLOCACAO, ITL.CD_PECA, ITL.NR_PECA, ITL.CD_TABPRECO, I.SG_UNIDALT, I.PS_LIQUIDO, ITL.QT_ITEMLOCACAO QT_ITEM, ITL.PS_ITEMLOCACAO PS_ITEM, ITL.QT_PARTICIPACAO, ITL.ST_PECAITEMLOCACAO ST_ITEM, TRIM(CASE ITL.ST_PECAITEMLOCACAO WHEN 'I' THEN 'Indisponivel' WHEN 'L' THEN 'Locado' WHEN 'D' THEN 'Devolvido' WHEN 'C' THEN 'Cancelado' END) STITEM, ITL.VL_UNITARIO, ITL.VL_TOTAL, ITL.VL_DESCONTO, ITL.DT_ENTREGA, ITL.DT_RETORNO, ITL.ST_RETORNO, ITL.CD_OPERADOR, ITL.DS_OBSERVACAO, ITL.DT_REGISTRO, H.DS_PESO DS_UNIDPESO, H.DS_QTDE DS_UNIDQTDE, H.V_TIPO, TP.TP_UNIDADE, ITL.QT_ITEMLOCACAO QT_ITEMOLD, ITL.PS_ITEMLOCACAO PS_ITEMOLD, TOT.O_VL_UNITARIO, TOT.O_VL_TOTAL
FROM PECAITEMLOCACAO ITL
INNER JOIN ITEM I ON(I.CD_ITEM = ITL.CD_PECA)
INNER JOIN TIPOCALCULO TP on ( TP.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
LEFT JOIN HABILITA_PESOQTDE(ITL.CD_PECA) H ON (1 = 1)
LEFT JOIN VIEW_LOCACAOITEMPEDIDO(ITL.CD_EMPRESA, ITL.NR_ORDEMSERVICO, ITL.CD_ITEMLOCACAO, 'P')TOT ON (1=1)
WHERE ITL.CD_EMPRESA = :CD_EMPRESA
AND ITL.NR_ORDEMSERVICO = :NR_ORDEMSERVICO
AND ITL.CD_ITEMLOCACAO = :CD_ITEMLOCACAO
AND ITL.NR_ITEMLOCACAO = :NR_ITEMLOCACAO
AND ITL.ST_PECAITEMLOCACAO <> 'C' CD_EMPRESA NR_ORDEMSERVICO CD_ITEMLOCACAO NR_ITEMLOCACAO
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 |
HABILITA_PESOQTDE | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
ITEMLOCACAO | referenciada nas queries do layout |
MOVIMENTACAO | referenciada nas queries do layout |
MUNICIPIO | referenciada nas queries do layout |
ORDEMSERVICO | referenciada nas queries do layout |
PARMFATUR | referenciada nas queries do layout |
PECAITEMLOCACAO | referenciada nas queries do layout |
PEDIDO | referenciada nas queries do layout |
PESSOA | referenciada nas queries do layout |
SERVICOLOCACAO | referenciada nas queries do layout |
TABPRECO | referenciada nas queries do layout |
TIPOCALCULO | referenciada nas queries do layout |
USUARIO | referenciada nas queries do layout |
VIEW_LOCACAOITEMPEDIDO | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOS036/ULOS036.pas - DFM:
source/LOS036/ULOS036.dfm - Package:
source/LOS036/LOS036.dpk