LOC024 — Layout LOC024
Visão Geral
Layout de impressão da família LOC (Ordem de Serviço). Acionado via ExecLayout a partir das telas que imprimem este tipo de documento.
Descrição
Consulta baseada em CALCULA_VALOR, com junção em EMBARQUE, EMPRESA, ENDERECOPESSOA, MUNICIPIO, PESSOA, PEDIDO (+10), filtrada por CD_EMPRESA, NR_EMBARQUE, ST_ORDEMCARREG.
Chamada
ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Ordem
// 3 - Path Servidor
// 4 - Visualiza -> V ou Imprime -> I
]);
SQL Base
Ordem
SELECT O.CD_EMPRESA, O.NR_EMBARQUE, E.NM_EMPRESA, EE.DS_ENDERECO||COALESCE(', '||EE.NR_ENDERECO,' ')|| COALESCE(COALESCE(' - '||EE.DS_BAIRRO, EE.DS_COMPLEMENTO),' ') DS_ENDEREMP, ME.DS_MUNICIPIO||' - '||ME.SG_ESTADO DS_MUNICEMP, COALESCE(EE.NR_FONE, EE.NR_FAX) NR_FONEEMP, EE.NR_CEP NR_CEPEMP, B.DT_EMBARQUE, B.NR_PLACA, B.CD_MOTORISTA, B.CD_TRANSPORTADOR, COALESCE(B.NM_MOTORISTA, PT.NM_PESSOA) NM_MOTORISTA, PT.NM_PESSOA NM_MOTORISTAPESSOA, T.NM_PESSOA NM_TRANSPORTADOR, O.CD_ITEM, I.DS_ITEM, CASE HPQ.V_TIPO WHEN 'Q' THEN HPQ.SG_QTDE ELSE HPQ.SG_PESO END SG_PRI, CASE HPQ.V_TIPO WHEN 'T' THEN HPQ.SG_QTDE ELSE NULL END SG_ALT, SUM(CASE HPQ.V_TIPO WHEN 'Q' THEN O.QT_ORDEMCARREG ELSE O.PS_ORDEMCARREG END) QTDE_PRI, SUM(CASE HPQ.V_TIPO WHEN 'T' THEN O.QT_ORDEMCARREG ELSE NULL END) QTDE_ALT, SUM(CASE TC.TP_UNIDADE WHEN 'Q' THEN O.QT_ORDEMCARREG ELSE O.PS_ORDEMCARREG END) QTDE, COALESCE(P.PS_LIQUIDO, 0) PS_LIQUIDO, COALESCE(P.PS_BRUTO, 0 ) PS_BRUTO, CAST(SUM((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(IT.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, IT.VL_UNITARIO, 'T'))) - COALESCE(SUM((((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(IT.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, IT.VL_UNITARIO, 'T')) * COALESCE(IT.VL_DESCONTO,0)) / COALESCE(NULLIF(IT.VL_TOTAL,0),1))),0) + COALESCE(SUM((((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(IT.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, IT.VL_UNITARIO, 'T')) * COALESCE(IT.VL_DESPESA,0)) / COALESCE(NULLIF(IT.VL_TOTAL,0),1))),0) AS NUMERIC(15,2) ) VL_TOTAL, VLC.O_QNT_PEDIDOS QNT_PEDIDO, SUM(VLC.O_SOMAVALOR) VALOR_FINAL
FROM ORDEMCARREG O
INNER JOIN EMBARQUE B ON (B.CD_EMPRESA = O.CD_EMPRESA
AND B.NR_EMBARQUE = O.NR_EMBARQUE)
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = B.CD_EMPRESA)
INNER JOIN ENDERECOPESSOA EE ON (EE.CD_PESSOA = E.CD_PESSOA
AND EE.CD_ENDERECO = (
SELECT O_CD_ENDERECO
FROM RETORNA_ENDERECO(E.CD_PESSOA, NULL)))
INNER JOIN MUNICIPIO ME ON (ME.CD_MUNICIPIO = EE.CD_MUNICIPIO)
LEFT JOIN PESSOA PT ON (PT.CD_PESSOA = COALESCE(B.CD_MOTORISTA, B.CD_TRANSPORTADOR))
LEFT JOIN PESSOA T ON (B.CD_TRANSPORTADOR = T.CD_PESSOA)
INNER JOIN PEDIDO P ON (P.CD_EMPRESA = O.CD_EMPRPED
AND P.NR_PEDIDO = O.NR_PEDIDO
AND P.TP_PEDIDO = O.TP_PEDIDO)
INNER JOIN ITEMPEDIDO IT ON (IT.CD_EMPRESA = P.CD_EMPRESA
AND IT.NR_PEDIDO = P.NR_PEDIDO
AND IT.TP_PEDIDO = P.TP_PEDIDO
AND IT.CD_ITEM = O.CD_ITEM)
INNER JOIN ITEM I ON (I.CD_ITEM = IT.CD_ITEM)
INNER JOIN TIPOCALCULO TC ON (TC.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
LEFT JOIN HABILITA_PESOQTDE(I.CD_ITEM) HPQ ON (1=1)
LEFT JOIN VIEW_LOC024(O.CD_EMPRESA, O.NR_EMBARQUE) VLC ON (1=1)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_EMBARQUE = :NR_EMBARQUE
AND O.ST_ORDEMCARREG <> 'C'
GROUP BY O.CD_EMPRESA, O.NR_EMBARQUE, E.NM_EMPRESA, EE.DS_ENDERECO||COALESCE(', '||EE.NR_ENDERECO,' ')|| COALESCE(COALESCE(' - '||EE.DS_BAIRRO, EE.DS_COMPLEMENTO),' '), ME.DS_MUNICIPIO||' - '||ME.SG_ESTADO, COALESCE(EE.NR_FONE, EE.NR_FAX), EE.NR_CEP, B.DT_EMBARQUE, B.NR_PLACA, B.CD_MOTORISTA, B.CD_TRANSPORTADOR, COALESCE(B.NM_MOTORISTA, PT.NM_PESSOA), PT.NM_PESSOA, T.NM_PESSOA, O.CD_ITEM, I.DS_ITEM, SG_PRI, SG_ALT, P.PS_LIQUIDO, P.PS_BRUTO, QNT_PEDIDO
ORDER BY I.DS_ITEM CD_EMPRESA 1 NR_EMBARQUE
SELECT O.CD_EMPRESA, O.NR_EMBARQUE, COALESCE(R.DS_ROTA,'(Sem Rota Cadastrada)')DS_ROTA, RP.NR_ORDEM, PED.DT_PEDIDO, PED.NR_PEDIDO, C.NM_PESSOA||COALESCE(' - '||C.NM_FANTASIA,'')NM_CLIENTE, M.DS_MUNICIPIO||COALESCE(' - '||M.SG_ESTADO,'') CIDADE_CLIENTE, ENDPE.DS_ENDERECO||COALESCE(', N° '||ENDPE.NR_ENDERECO,'')||COALESCE(' - '||ENDPE.DS_BAIRRO,'') DS_ENDERECO, FG.DS_FORMAPAGTO, CG.DS_CONDPAGTO, SUM(CASE TC.TP_UNIDADE WHEN 'Q' THEN O.QT_ORDEMCARREG ELSE O.PS_ORDEMCARREG END) QTDE, CAST(SUM((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(IP.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, IP.VL_UNITARIO, 'T'))) - COALESCE(SUM((((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(IP.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, IP.VL_UNITARIO, 'T')) * COALESCE(IP.VL_DESCONTO,0)) / COALESCE(NULLIF(IP.VL_TOTAL,0),1))),0) + COALESCE(SUM((((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(IP.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, IP.VL_UNITARIO, 'T')) * COALESCE(IP.VL_DESPESA,0)) / COALESCE(NULLIF(IP.VL_TOTAL,0),1))),0) AS NUMERIC(15,2) ) VL_TOTAL, ENDPE.NR_FONE, ENDPE.NR_CELULAR, V.NM_PESSOA NM_VENDEDOR, O.CD_ITEM, I.DS_ITEM, T.NM_PESSOA NM_TRANSPORTADOR, PED.DS_OBSERVACAO
FROM ORDEMCARREG O
INNER JOIN PEDIDO PED ON (PED.CD_EMPRESA = O.CD_EMPRPED
AND PED.NR_PEDIDO = O.NR_PEDIDO
AND PED.TP_PEDIDO = O.TP_PEDIDO)
LEFT JOIN PESSOA V ON (V.CD_PESSOA = PED.CD_VENDEDOR)
INNER JOIN ITEMPEDIDO IP ON (IP.CD_EMPRESA = O.CD_EMPRPED
AND IP.NR_PEDIDO = O.NR_PEDIDO
AND IP.TP_PEDIDO = O.TP_PEDIDO
AND IP.CD_ITEM = O.CD_ITEM)
INNER JOIN ITEM I ON (I.CD_ITEM = O.CD_ITEM)
INNER JOIN TIPOCALCULO TC ON (TC.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
INNER JOIN PESSOA C ON (C.CD_PESSOA = PED.CD_PESSOA)
LEFT JOIN CONTATOPESSOA CP ON (CP.CD_PESSOA = C.CD_PESSOA)
INNER JOIN ENDERECOPESSOA ENDPE ON(ENDPE.CD_PESSOA = PED.CD_PESSOA
AND ENDPE.CD_ENDERECO = PED.CD_ENDERECO)
INNER JOIN MUNICIPIO M ON(M.CD_MUNICIPIO = ENDPE.CD_MUNICIPIO)
LEFT JOIN ROTAPESSOA RP ON (RP.CD_PESSOA = PED.CD_PESSOA)
LEFT JOIN ROTA R ON (R.CD_ROTA = RP.CD_ROTA)
LEFT JOIN HABILITA_PESOQTDE(I.CD_ITEM) HPQ ON (1=1)
INNER JOIN FORMAPAGTO FG ON (FG.CD_FORMAPAGTO = PED.CD_FORMAPAGTO)
INNER JOIN CONDPAGTO CG ON (CG.CD_CONDPAGTO = PED.CD_CONDPAGTO)
INNER JOIN EMBARQUE B ON (B.CD_EMPRESA = O.CD_EMPRESA
AND B.NR_EMBARQUE = O.NR_EMBARQUE)
LEFT JOIN PESSOA T ON (B.CD_TRANSPORTADOR = T.CD_PESSOA)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_EMBARQUE = :NR_EMBARQUE
AND O.ST_ORDEMCARREG <> 'C'
GROUP BY O.CD_EMPRESA, O.NR_EMBARQUE, COALESCE(R.DS_ROTA,'(Sem Rota Cadastrada)'), RP.NR_ORDEM, PED.DT_PEDIDO, PED.NR_PEDIDO, C.NM_PESSOA||COALESCE(' - '||C.NM_FANTASIA,''), M.DS_MUNICIPIO||COALESCE(' - '||M.SG_ESTADO,''), ENDPE.DS_ENDERECO||COALESCE(', N° '||ENDPE.NR_ENDERECO,'')||COALESCE(' - '||ENDPE.DS_BAIRRO,''), FG.DS_FORMAPAGTO, CG.DS_CONDPAGTO, NR_FONE, ENDPE.NR_FONE, ENDPE.NR_CELULAR, NM_VENDEDOR, O.CD_ITEM, I.DS_ITEM, NM_TRANSPORTADOR, PED.DS_OBSERVACAO
ORDER BY O.CD_EMPRESA, O.NR_EMBARQUE, RP.NR_ORDEM, PED.NR_PEDIDO, I.DS_ITEM, O.CD_ITEM CD_EMPRESA 1 NR_EMBARQUE
Tabelas Utilizadas
| Tabela | Uso |
|---|---|
CALCULA_VALOR | referenciada nas queries do layout |
CONDPAGTO | referenciada nas queries do layout |
CONTATOPESSOA | referenciada nas queries do layout |
EMBARQUE | referenciada nas queries do layout |
EMPRESA | referenciada nas queries do layout |
ENDERECOPESSOA | referenciada nas queries do layout |
FORMAPAGTO | referenciada nas queries do layout |
HABILITA_PESOQTDE | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
ITEMPEDIDO | referenciada nas queries do layout |
MUNICIPIO | referenciada nas queries do layout |
ORDEMCARREG | referenciada nas queries do layout |
PEDIDO | referenciada nas queries do layout |
PESSOA | referenciada nas queries do layout |
RETORNA_ENDERECO | referenciada nas queries do layout |
ROTA | referenciada nas queries do layout |
ROTAPESSOA | referenciada nas queries do layout |
TIPOCALCULO | referenciada nas queries do layout |
| [[VIEW_LOC024]] | referenciada nas queries do layout |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOC024/ULOC024.pas - DFM:
source/LOC024/ULOC024.dfm - Package:
source/LOC024/LOC024.dpk