LOR001 — Layout LOR001
Visão Geral
Layout de impressão da família LOR (Ordem de Serviço). Acionado via ExecLayout a partir das telas que imprimem este tipo de documento.
Descrição
Consulta baseada em ORCAMENTO, com junção em MAQUINAORCAMENTO, PESSOA, ENDERECOPESSOA, MUNICIPIO, EMPRESA, CONDPAGTO (+1), filtrada por CD_PESSOA, JO, CD_MUNICIPIO, CD_CONDPAGTO, CD_ITEM, CD_VENDEDOR (+4).
Chamada
ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Orcamento
// 3 - Path Servidor
// 4 - Visualiza -> V ou Imprime -> I
]);
SQL Base
Orcamento
SELECT O.CD_EMPRESA, E.NM_EMPRESA, PE.NR_CNPJCPF, EE.DS_ENDERECO || COALESCE(', ' || EE.NR_ENDERECO, '') || COALESCE(COALESCE(' - ' || EE.DS_BAIRRO, EE.DS_COMPLEMENTO), '') DS_ENDERECO, ME.DS_MUNICIPIO || ' - ' || ME.SG_ESTADO DS_MUNICIPIO, EE.NR_FONE, EE.NR_FAX, EE.NR_CEP, EE.NR_INSCEST, O.NR_ORCAMENTO, O.DT_ORCAMENTO, O.DT_ENTREGA, PE.DS_EMAIL, O.DS_CONTATO, O.DS_OBSERVACAO, P.CD_PESSOA, P.NM_PESSOA, P.NM_FANTASIA, P.NR_CNPJCPF NR_CNPJCPF_CLIENTE, P.DS_EMAIL DS_EMAIL_CLIENTE, O.NR_DIASVALIDADE, O.NR_DIASENTREGA, EP.DS_ENDERECO || COALESCE(', ' || EP.NR_ENDERECO, '') DS_ENDPESSOA, EM.DS_MUNICIPIO || ' - ' || EM.SG_ESTADO || COALESCE('. FONE.: ' || EP.NR_FONE, '') DS_CIDPESSOA, O.CD_VENDEDOR, V.NM_PESSOA NM_VENDEDOR, COALESCE(VE.NR_FONE, VE.NR_FAX) NR_FONEVEND, VE.NR_CELULAR NR_CELULARVEND, M.NR_MAQUINA, M.DS_MAQUINA, M.DS_ESPECIFICACAO, M.VL_UNITARIO, M.VL_TOTAL, M.QT_MAQUINA, ITEM.SG_UNIDMED, M.QT_ALTURA, M.QT_LARGURA, M.QT_COMPOSICAO, M.QT_PRODUCAO, M.QT_COMPRIMENTO, (COALESCE(M.QT_ALTURA,0) * COALESCE(M.QT_LARGURA,0)) QT_AREA, CASE C.ST_CONDPAGTO WHEN 'D' THEN 'VENCTO.: ' || FORMATA_DATA(O.DT_VENCIMENTO, '%D/%M/%Y') ELSE C.DS_CONDPAGTO END DS_CONDPAGTO
FROM ORCAMENTO O
INNER JOIN MAQUINAORCAMENTO M ON (M.CD_EMPRESA = O.CD_EMPRESA
AND M.NR_ORCAMENTO = O.NR_ORCAMENTO)
INNER JOIN PESSOA P ON (O.CD_PESSOA = P.CD_PESSOA)
LEFT JOIN ENDERECOPESSOA EP ON (EP.CD_PESSOA = O.CD_PESSOA
AND EP.CD_ENDERECO = O.CD_ENDERECO)
LEFT JOIN MUNICIPIO EM ON (EM.CD_MUNICIPIO = EP.CD_MUNICIPIO)
INNER JOIN EMPRESA E ON (O.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 CONDPAGTO C ON (O.CD_CONDPAGTO = C.CD_CONDPAGTO)
LEFT JOIN ITEM ON (ITEM.CD_ITEM = M.CD_ITEM)
LEFT JOIN PESSOA V ON (O.CD_VENDEDOR = V.CD_PESSOA)
LEFT JOIN ENDERECOPESSOA VE ON (VE.CD_PESSOA = V.CD_PESSOA
AND VE.CD_ENDERECO = (
SELECT MIN(CD_ENDERECO)
FROM ENDERECOPESSOA ENDE
WHERE ENDE.CD_PESSOA = VE.CD_PESSOA))
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO
ORDER BY M.NR_MAQUINA CD_EMPRESA 1 NR_ORCAMENTO 76
SELECT I.DS_ITEM, O.QT_ORCAMENTO, O.CD_ITEM, O.PS_ORCAMENTO, O.VL_TOTAL, (
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(I.CD_ITEM, O.PS_ORCAMENTO, O.QT_ORCAMENTO, O.VL_TOTAL, 'U')) VL_UNITARIO, I.SG_UNIDMED, I.SG_UNIDALT, O.PS_FORMULA, O.PS_UTILIZADA, O.QT_HORAS, O.QT_FORMULA, O.QT_COMPOSICAO, O.QT_UTILIZADA, (
SELECT V_TIPO
FROM HABILITA_PESOQTDE(I.CD_ITEM)) TIPO
FROM ITEMORCAMENTO O
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO
AND O.NR_MAQUINA = :NR_MAQUINA
ORDER BY I.DS_ITEM CD_EMPRESA 1 NR_ORCAMENTO 76 NR_MAQUINA
SELECT O.CD_EMPRESA, E.NM_EMPRESA, PE.NR_CNPJCPF, EE.DS_ENDERECO||COALESCE(', '||EE.NR_ENDERECO,'')||COALESCE(COALESCE(' - '||EE.DS_BAIRRO, EE.DS_COMPLEMENTO),'') DS_ENDERECO, ME.DS_MUNICIPIO||' - '||ME.SG_ESTADO DS_MUNICIPIO, EE.NR_FONE, EE.NR_FAX, EE.NR_CEP, EE.NR_INSCEST, P.DS_EMAIL DS_EMAIL_CLIENTE, O.NR_ORCAMENTO, O.DT_ORCAMENTO, O.DT_ENTREGA, PE.DS_EMAIL, O.DS_OBSERVACAO, O.DS_CONTATO, P.CD_PESSOA, P.NM_PESSOA, O.NR_DIASVALIDADE, P.NM_FANTASIA, P.NR_CNPJCPF NR_CNPJCPF_CLIENTE, EP.DS_ENDERECO||COALESCE(', '||EP.NR_ENDERECO,'')||'. Cidade.: '||EM.DS_MUNICIPIO||' - '||EM.SG_ESTADO||COALESCE('. Fone.: '||EP.NR_FONE,'') DS_ENDPESSOA, O.CD_VENDEDOR, V.NM_PESSOA NM_VENDEDOR, COALESCE(VE.NR_FONE, VE.NR_FAX) NR_FONEVEND, VE.NR_CELULAR NR_CELULARVEND, M.NR_MAQUINA, M.DS_MAQUINA, M.DS_ESPECIFICACAO, M.VL_UNITARIO, M.VL_TOTAL, M.QT_MAQUINA, ITEM.SG_UNIDMED, M.QT_ALTURA, M.QT_LARGURA, M.QT_COMPOSICAO, M.QT_PRODUCAO, M.QT_COMPRIMENTO, (COALESCE(M.QT_ALTURA,0) * COALESCE(M.QT_LARGURA,0)) QT_AREA, CASE C.ST_CONDPAGTO WHEN 'D' THEN 'Vencto.: '||FORMATA_DATA(O.DT_VENCIMENTO,'%d/%m/%Y') ELSE C.DS_CONDPAGTO END DS_CONDPAGTO, O.CD_CONDPAGTO, CAST(:iVL_DESCONTO AS DOM_NUMERIC15_2) VL_DESCONTO, CAST(:iVL_ORCAMENTO AS DOM_NUMERIC15_2) VL_ORCAMENTO, CAST(:iVL_CUSTO AS DOM_NUMERIC15_2) VL_CUSTO, CAST(:iVL_SALDO AS DOM_NUMERIC15_2) VL_SALDO, CAST(:iPC_LUCRO AS DOM_NUMERIC15_2) PC_LUCRO
FROM ORCAMENTO O
INNER JOIN MAQUINAORCAMENTO M ON (M.CD_EMPRESA = O.CD_EMPRESA
AND M.NR_ORCAMENTO = O.NR_ORCAMENTO)
INNER JOIN PESSOA P ON (O.CD_PESSOA = P.CD_PESSOA)
LEFT JOIN ENDERECOPESSOA EP ON (EP.CD_PESSOA = O.CD_PESSOA
AND EP.CD_ENDERECO = O.CD_ENDERECO)
LEFT JOIN MUNICIPIO EM ON (EM.CD_MUNICIPIO = EP.CD_MUNICIPIO)
INNER JOIN EMPRESA E ON (O.CD_EMPRESA = E.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 (EE.CD_MUNICIPIO = ME.CD_MUNICIPIO)
INNER JOIN CONDPAGTO C ON (O.CD_CONDPAGTO = C.CD_CONDPAGTO)
LEFT JOIN ITEM ON (ITEM.CD_ITEM = M.CD_ITEM)
LEFT JOIN PESSOA V ON (O.CD_VENDEDOR = V.CD_PESSOA)
LEFT JOIN ENDERECOPESSOA VE ON (VE.CD_PESSOA = V.CD_PESSOA
AND VE.CD_ENDERECO = (
SELECT MIN(CD_ENDERECO)
FROM ENDERECOPESSOA ENDE
WHERE ENDE.CD_PESSOA = VE.CD_PESSOA))
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO
ORDER BY M.NR_MAQUINA iVL_DESCONTO iVL_ORCAMENTO iVL_CUSTO iVL_SALDO iPC_LUCRO CD_EMPRESA 1 NR_ORCAMENTO 76
SELECT I.DS_ITEM, O.QT_ORCAMENTO, O.CD_ITEM, O.PS_ORCAMENTO, O.VL_TOTAL, (
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(I.CD_ITEM, O.PS_ORCAMENTO, O.QT_ORCAMENTO, O.VL_TOTAL, 'U')) VL_UNITARIO, I.SG_UNIDMED, I.SG_UNIDALT, O.QT_HORAS, O.QT_FORMULA, O.QT_COMPOSICAO, O.QT_UTILIZADA, O.PS_FORMULA, O.PS_UTILIZADA, (
SELECT V_TIPO
FROM HABILITA_PESOQTDE(I.CD_ITEM)) TIPO
FROM ITEMORCAMENTO O
INNER JOIN ITEM I ON (O.CD_ITEM = I.CD_ITEM)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO
AND O.NR_MAQUINA = :NR_MAQUINA
ORDER BY I.DS_ITEM CD_EMPRESA 1 NR_ORCAMENTO 76 NR_MAQUINA
SELECT SUM(M.VL_TOTAL) VL_TOTAL, SUM(M.VL_CUSTO) VL_CUSTO, AVG(O.PC_DESCONTO) PC_DESCONTO
FROM MAQUINAORCAMENTO M
INNER JOIN ORCAMENTO O ON (O.CD_EMPRESA = M.CD_EMPRESA
AND O.NR_ORCAMENTO = M.NR_ORCAMENTO)
WHERE M.CD_EMPRESA = :CD_EMPRESA
AND M.NR_ORCAMENTO = :NR_ORCAMENTO CD_EMPRESA NR_ORCAMENTO
Tabelas Utilizadas
| Tabela | Uso |
|---|---|
CALCULA_VALOR | referenciada nas queries do layout |
CONDPAGTO | referenciada nas queries do layout |
EMPRESA | referenciada nas queries do layout |
ENDERECOPESSOA | referenciada nas queries do layout |
HABILITA_PESOQTDE | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
ITEMORCAMENTO | referenciada nas queries do layout |
MAQUINAORCAMENTO | referenciada nas queries do layout |
MUNICIPIO | referenciada nas queries do layout |
ORCAMENTO | referenciada nas queries do layout |
PESSOA | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOR001/ULOR001.pas - DFM:
source/LOR001/ULOR001.dfm - Package:
source/LOR001/LOR001.dpk