Pular para o conteúdo principal

LOS012 — Layout LOS012

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 PARMFATUR, com junção em ORDEMSERVHORA, EMPRESA, PESSOA, ENDERECOPESSOA, MUNICIPIO, FORMAPAGTO (+5), filtrada por CD_EMPRESA, NR_ORDEMSERVICO, JO, CD_PESSOA, CD_ENDERECO, CD_MUNICIPIO (+9).

Chamada​

ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Orcamento
// 3 - Path Servidor
// 4 - Visualiza -> V ou Imprime -> I
// 5 - Máquinas da Ordem de Serviço
// 6 - Abertura ou Fechamento
]);

SQL Base​

tabOrdemServico​

SELECT COALESCE(L.CD_MODELOVEICULO, ' ') ||' - '|| COALESCE(MV.DS_MODELOVEICULO, ' ') DS_MODELOVEICULO, L.NR_FROTA, COALESCE(OH.NR_PLACA, O.NR_PLACA) NR_PLACA , OH.DT_INICIO DT_REGISTRO, O.CD_EMPRESA, E.NM_EMPRESA, P.NR_CNPJCPF, O.DS_CONTATO, N.DS_ENDERECO||COALESCE(', '||N.NR_ENDERECO,'')||COALESCE(' - '||COALESCE(' - '||N.DS_BAIRRO, N.DS_COMPLEMENTO),'') DS_ENDERECO, U.DS_MUNICIPIO||' - '||U.SG_ESTADO DS_MUNICIPIO, N.NR_FONE, N.NR_FAX, N.NR_CEP, N.NR_INSCEST, O.nr_ordemservico, O.dt_emissao, P.DS_EMAIL, O.dt_entrega, P.CD_PESSOA, P.NM_PESSOA, V.NM_PESSOA NM_VENDEDOR, P.NM_FANTASIA NM_FANTASIA, F.ds_formapagto, C.ds_condpagto, (
SELECT PF.DS_LOGOTIPO
FROM PARMFATUR PF
WHERE PF.CD_EMPRESA = 1 )DS_LOGOTIPO, (
SELECT SUM(OSI.vl_total - COALESCE(OSI.VL_DESCONTO,0))
FROM ORDEMSERVITEM OSI
WHERE OSI.cd_empresa = O.cd_empresa
AND OSI.nr_ordemservico = O.nr_ordemservico) VL_SERVICOS, coalesce((
SELECT SUM(SI.vl_total-COALESCE(SI.VL_DESCONTO,0))
FROM itemservico SI
WHERE SI.cd_empresa = O.cd_empresa
AND SI.nr_ordemservico = O.nr_ordemservico),0) VL_PRODUTOS, (
SELECT SUM(OSI.vl_total-COALESCE(OSI.VL_DESCONTO,0))
FROM ORDEMSERVITEM OSI
WHERE OSI.cd_empresa = O.cd_empresa
AND OSI.nr_ordemservico = O.nr_ordemservico) + coalesce((
SELECT SUM(SI.vl_total-COALESCE(SI.VL_DESCONTO,0))
FROM itemservico SI
WHERE SI.cd_empresa = O.cd_empresa
AND SI.nr_ordemservico = O.nr_ordemservico),0) VL_TOTAL, O.DS_TECNICA
FROM ORDEMSERVICO O
LEFT JOIN ORDEMSERVHORA OH ON (OH.NR_ORDEMSERVICO = O.NR_ORDEMSERVICO
AND OH.CD_EMPRESA = O.CD_EMPRESA)
INNER JOIN EMPRESA E ON (O.CD_EMPRESA = E.CD_EMPRESA)
INNER JOIN PESSOA P ON (O.CD_PESSOA = P.CD_PESSOA)
INNER JOIN ENDERECOPESSOA N ON (N.CD_PESSOA = O.CD_PESSOA
AND N.CD_ENDERECO = O.CD_ENDERECO)
INNER JOIN MUNICIPIO U ON (U.CD_MUNICIPIO = N.CD_MUNICIPIO)
LEFT JOIN PESSOA V ON (O.CD_VENDEDOR = V.CD_PESSOA)
LEFT JOIN FORMAPAGTO F ON(F.cd_formapagto = O.cd_formapagto)
LEFT JOIN CONDPAGTO C ON(C.cd_condpagto = O.cd_condpagto)
LEFT JOIN VEICULO L ON (L.NR_PLACA = COALESCE(OH.NR_PLACA, O.NR_PLACA))
LEFT JOIN MODELOVEICULO MV ON (MV.CD_MODELOVEICULO = L.CD_MODELOVEICULO
AND MV.CD_MARCAVEICULO = L.CD_MARCAVEICULO)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.nr_ordemservico = :NR_ORDEMSERVICO CD_EMPRESA 1 NR_ORDEMSERVICO
SELECT ORDEMSERVITEM.CD_SERVICO, ITEM.DS_ITEM, ORDEMSERVITEM.ds_servico DS_OBSERVACAO, ORDEMSERVITEM.QT_SERVICO, ORDEMSERVITEM.VL_UNITARIO, ORDEMSERVITEM.VL_TOTAL, ORDEMSERVITEM.VL_DESCONTO, ORDEMSERVITEM.VL_TOTAL - COALESCE(ORDEMSERVITEM.VL_DESCONTO,0) VL_LIQUIDO, SUM(coalesce((
SELECT SUM(ITEMSERVICO.vl_total)
FROM ITEMSERVICO
WHERE ITEMSERVICO.cd_empresa = ORDEMSERVITEM.cd_empresa
AND ITEMSERVICO.nr_ordemservico = ORDEMSERVITEM.nr_ordemservico
AND ITEMSERVICO.cd_servico = ORDEMSERVITEM.cd_servico),0)) + ORDEMSERVITEM.VL_TOTAL VL_SERVICO
FROM ORDEMSERVITEM
INNER JOIN ITEM ON (ITEM.CD_ITEM = ORDEMSERVITEM.CD_SERVICO)
WHERE ORDEMSERVITEM.CD_EMPRESA = :CD_EMPRESA
AND ORDEMSERVITEM.NR_ORDEMSERVICO = :NR_ORDEMSERVICO
GROUP BY ORDEMSERVITEM.CD_SERVICO, ITEM.DS_ITEM, ORDEMSERVITEM.ds_servico, ORDEMSERVITEM.QT_SERVICO, ORDEMSERVITEM.VL_UNITARIO, ORDEMSERVITEM.VL_TOTAL, ORDEMSERVITEM.VL_DESCONTO, ORDEMSERVITEM.VL_TOTAL - COALESCE(ORDEMSERVITEM.VL_DESCONTO,0) CD_EMPRESA 1 NR_ORDEMSERVICO
SELECT SERVICOITEM.CD_EMPRESA, SERVICOITEM.NR_ORDEMSERVICO, SERVICOITEM.CD_ITEM, ITEM.DS_ITEM, SERVICOITEM.CD_TABPRECO, SERVICOITEM.CD_MOVIMENTACAO, SERVICOITEM.DS_ITEM DS_OBSERVACAO, 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
FROM SERVICOITEM
INNER JOIN ITEM ON (ITEM.CD_ITEM = SERVICOITEM.CD_ITEM)
WHERE SERVICOITEM.CD_EMPRESA = :CD_EMPRESA
AND SERVICOITEM.NR_ORDEMSERVICO = :NR_ORDEMSERVICO CD_EMPRESA 1 NR_ORDEMSERVICO CD_EMPRESA;NR_ORDEMSERVICO
SELECT DISTINCT O.dt_emissao, O.nr_ordemservico||' - '||P.NR_PARCELA DOCUMENTO, P.DT_VENCIMENTO, P.VL_PARCELA VL_DOCUMENTO, CP.DS_CONDPAGTO
FROM ORDEMSERVICO O
INNER JOIN PARCELAORDEMSERVICO P ON(P.CD_EMPRESA = O.CD_EMPRESA
AND P.NR_ORDEMSERVICO = O.NR_ORDEMSERVICO)
INNER JOIN CONDPAGTO CP ON (CP.CD_CONDPAGTO = O.CD_CONDPAGTO)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.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
ITEMSERVICOreferenciada nas queries do layout
MODELOVEICULOreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORDEMSERVHORAreferenciada nas queries do layout
ORDEMSERVICOreferenciada nas queries do layout
ORDEMSERVITEMreferenciada nas queries do layout
PARCELAORDEMSERVICOreferenciada nas queries do layout
PARMFATURreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
SERVICOITEMreferenciada nas queries do layout
VEICULOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOS012/ULOS012.pas
  • DFM: source/LOS012/ULOS012.dfm
  • Package: source/LOS012/LOS012.dpk