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
| 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 |
ITEMSERVICO | referenciada nas queries do layout |
MODELOVEICULO | 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 |
PARCELAORDEMSERVICO | referenciada nas queries do layout |
PARMFATUR | referenciada nas queries do layout |
PESSOA | referenciada nas queries do layout |
SERVICOITEM | referenciada nas queries do layout |
VEICULO | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOS012/ULOS012.pas - DFM:
source/LOS012/ULOS012.dfm - Package:
source/LOS012/LOS012.dpk