Pular para o conteúdo principal

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​

TabelaUso
CALCULA_IMPOSTOORCAMENTOreferenciada nas queries do layout
CONDPAGTOreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
MAQUINAORCAMENTOreferenciada nas queries do layout
MOVIMENTACAOreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORCAMENTOreferenciada nas queries do layout
PARMORCAMENTOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
TIPOCALCULOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOR034/ULOR034.pas
  • DFM: source/LOR034/ULOR034.dfm
  • Package: source/LOR034/LOR034.dpk