LOR034 — Layout LOR034
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 PESSOA, ENDERECOPESSOA, MUNICIPIO, EMPRESA, MAQUINAORCAMENTO, ITEM (+5), filtrada por CD_PESSOA, JO, CD_MUNICIPIO, CD_VENDEDOR, MAQU, CD_EMPRESA (+5).
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 X.CD_EMPRESA, X.NR_ORCAMENTO, X.NM_EMPRESA, X.RAZAO_SOCIAL, X.CNPJCPF_EMP, X.CNPJCPF_CLI, X.END_CLIENTE, X.MUN_CLI, X.NR_FONEEMP, X.NR_FAX, X.NM_CLI, X.NR_FONECLI, X.CD_VENDEDOR, X.NM_VENDEDOR, X.DS_COMPLEMENTAR, X.QT_TOTAL, (((X.VL_DESCONTOTOTAL * 100) / X.VL_SUBTOTALBRUTO) * - 1) PC_DESC, X.VL_ACR, X.VL_SUBTOTALBRUTO, X.VL_IPITOTAL, X.VL_ICMSSTTOTAL, X.QT_ITENS, X.DS_CONDPAGTO, (X.VL_SUBTOTALBRUTO - X.VL_DESCONTOTOTAL + X.VL_IMPOSTO + X.VL_ACR) VL_TOTAL, X.NR_DIASVALIDADE, X.VL_IMPOSTO, X.DS_PAGTOFRETE
FROM (
SELECT O.CD_EMPRESA, O.NR_ORCAMENTO, E.NM_EMPRESA, PEMP.NM_PESSOA RAZAO_SOCIAL, PEMP.NR_CNPJCPF CNPJCPF_EMP, PCLI.NR_CNPJCPF CNPJCPF_CLI, EPCLI.DS_ENDERECO||COALESCE(', Nº '||EPCLI.NR_ENDERECO, '')||COALESCE(' ('||EPCLI.DS_COMPLEMENTO||')', '')||COALESCE(' - Bairro: '||EPCLI.DS_BAIRRO, '') END_CLIENTE, MCLI.DS_MUNICIPIO||' - '||MCLI.SG_ESTADO MUN_CLI, EE.NR_FONE NR_FONEEMP, EE.NR_FAX, COALESCE(PCLI.NM_PESSOA, O.DS_PESSOA) NM_CLI, EPCLI.NR_FONE NR_FONECLI, O.CD_VENDEDOR, V.NM_PESSOA NM_VENDEDOR, COALESCE(O.DS_COMPLEMENTAR, 'Sem Informações Complementares!') DS_COMPLEMENTAR, SUM(CASE TC.TP_UNIDADE WHEN 'Q' THEN M.QT_MAQUINA ELSE M.PS_MAQUINA END) QT_TOTAL, SUM(M.VL_UNITARIO * CASE TC.TP_UNIDADE WHEN 'Q' THEN M.QT_MAQUINA ELSE M.PS_MAQUINA END) VL_SUBTOTALBRUTO, SUM((COALESCE(M.VL_DESCONTO, 0))) VL_DESCONTOTOTAL, SUM(COALESCE(CIO.O_VL_IPI, 0)) VL_IPITOTAL, SUM(COALESCE(CIO.O_VL_SUBSTITUICAO, 0)) VL_ICMSSTTOTAL, COUNT(1) QT_ITENS, CP.DS_CONDPAGTO, COALESCE(O.NR_DIASVALIDADE, 0)||IIF(COALESCE(O.NR_DIASVALIDADE, 0) = 1, ' dia', ' dias') NR_DIASVALIDADE, CASE PO.ST_CALCULAIMPOSTO WHEN 'N' THEN 0 ELSE SUM(COALESCE(CIO.O_VL_TOTAL, 0)) END VL_IMPOSTO, COALESCE(O.VL_FRETE, 0) VL_ACR, CASE O.TP_PAGTOFRETE WHEN '1' THEN 'CIF' WHEN '2' THEN 'FOB' ELSE 'OUTROS' END DS_PAGTOFRETE
FROM ORCAMENTO O
LEFT JOIN PESSOA PCLI ON (O.CD_PESSOA = PCLI.CD_PESSOA)
LEFT JOIN ENDERECOPESSOA EPCLI ON (O.CD_PESSOA = EPCLI.CD_PESSOA
AND O.CD_ENDERECO = EPCLI.CD_ENDERECO)
LEFT JOIN MUNICIPIO MCLI ON (EPCLI.CD_MUNICIPIO = MCLI.CD_MUNICIPIO)
INNER JOIN EMPRESA E ON (O.CD_EMPRESA = E.CD_EMPRESA)
INNER JOIN PESSOA PEMP ON (E.CD_PESSOA = PEMP.CD_PESSOA)
INNER JOIN ENDERECOPESSOA EE ON (EE.CD_PESSOA = PEMP.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)
LEFT JOIN PESSOA V ON (O.CD_VENDEDOR = V.CD_PESSOA)
INNER JOIN MAQUINAORCAMENTO M ON (M.CD_EMPRESA = O.CD_EMPRESA
AND M.NR_ORCAMENTO = O.NR_ORCAMENTO)
INNER JOIN ITEM I ON (I.CD_ITEM = M.CD_ITEM)
INNER JOIN TIPOCALCULO TC ON (TC.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
LEFT JOIN CALCULA_IMPOSTOORCAMENTO(O.CD_EMPRESA, O.NR_ORCAMENTO, M.NR_MAQUINA) CIO ON (1 = 1)
INNER JOIN CONDPAGTO CP ON (CP.CD_CONDPAGTO = O.CD_CONDPAGTO)
INNER JOIN PARMORCAMENTO PO ON (PO.CD_EMPRESA = O.CD_EMPRESA)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO
GROUP BY CD_EMPRESA, NR_ORCAMENTO, NM_EMPRESA, RAZAO_SOCIAL, CNPJCPF_EMP, CNPJCPF_CLI, END_CLIENTE, MUN_CLI, NR_FONEEMP, EE.NR_FAX, NM_CLI, NR_FONECLI, CD_VENDEDOR, NM_VENDEDOR, O.DS_COMPLEMENTAR, CP.DS_CONDPAGTO, O.NR_DIASVALIDADE, PO.ST_CALCULAIMPOSTO, O.VL_FRETE, O.TP_PAGTOFRETE) X CD_EMPRESA 1 NR_ORCAMENTO 76
SELECT I.CD_ITEM, M.DS_MAQUINA DS_ITEM, I.NR_NCM, I.SG_UNIDMED, CASE TC.TP_UNIDADE WHEN 'Q' THEN M.QT_MAQUINA ELSE M.PS_MAQUINA END QT_ITEM, M.VL_UNITARIO VL_UNITBRUTO, 100 * COALESCE(M.VL_DESCONTO, 0) / (M.VL_UNITARIO * CASE TC.TP_UNIDADE WHEN 'Q' THEN M.QT_MAQUINA ELSE M.PS_MAQUINA END) PC_DESCONTO, /*M.VL_UNITARIO * CAST((1 - (COALESCE(M.VL_DESCONTO, 0) / (M.VL_UNITARIO * CASE TC.TP_UNIDADE WHEN 'Q' THEN M.QT_MAQUINA ELSE M.PS_MAQUINA END))) AS DOM_NUMERIC15_2)*/ CAST(M.VL_TOTAL / iif(TC.TP_UNIDADE = 'Q', M.QT_MAQUINA, M.PS_MAQUINA) AS DOM_NUMERIC15_2) VL_UNITLIQ, (M.VL_UNITARIO * CASE TC.TP_UNIDADE WHEN 'Q' THEN M.QT_MAQUINA ELSE M.PS_MAQUINA END) - COALESCE(M.VL_DESCONTO, 0) VL_TOTAL, COALESCE(CIO.O_VL_IPI, 0) VL_IPI, COALESCE(CIO.O_VL_ICMS, 0) VL_ICMS, MOV.CD_CST CD_CST, COALESCE(CIO.O_VL_SUBSTITUICAO, 0) VL_ICMSST, O.DT_ENTREGA, M.DS_ESPECIFICACAO
FROM ORCAMENTO O
INNER JOIN MAQUINAORCAMENTO M ON (M.CD_EMPRESA = O.CD_EMPRESA
AND M.NR_ORCAMENTO = O.NR_ORCAMENTO)
INNER JOIN MOVIMENTACAO MOV ON (MOV.CD_MOVIMENTACAO = M.CD_MOVIMENTACAO)
INNER JOIN ITEM I ON (I.CD_ITEM = M.CD_ITEM)
INNER JOIN TIPOCALCULO TC ON (TC.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
LEFT JOIN CALCULA_IMPOSTOORCAMENTO(O.CD_EMPRESA, O.NR_ORCAMENTO, M.NR_MAQUINA) CIO ON (1 = 1)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO
ORDER BY M.NR_MAQUINA CD_EMPRESA 1 NR_ORCAMENTO 76
Tabelas Utilizadas
| Tabela | Uso |
|---|---|
CALCULA_IMPOSTOORCAMENTO | referenciada nas queries do layout |
CONDPAGTO | referenciada nas queries do layout |
EMPRESA | referenciada nas queries do layout |
ENDERECOPESSOA | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
MAQUINAORCAMENTO | referenciada nas queries do layout |
MOVIMENTACAO | referenciada nas queries do layout |
MUNICIPIO | referenciada nas queries do layout |
ORCAMENTO | referenciada nas queries do layout |
PARMORCAMENTO | referenciada nas queries do layout |
PESSOA | referenciada nas queries do layout |
TIPOCALCULO | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOR034/ULOR034.pas - DFM:
source/LOR034/ULOR034.dfm - Package:
source/LOR034/LOR034.dpk