Pular para o conteúdo principal

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​

TabelaUso
CALCULA_VALORreferenciada nas queries do layout
CONDPAGTOreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
HABILITA_PESOQTDEreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMORCAMENTOreferenciada nas queries do layout
MAQUINAORCAMENTOreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORCAMENTOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOR001/ULOR001.pas
  • DFM: source/LOR001/ULOR001.dfm
  • Package: source/LOR001/LOR001.dpk