LOC001 — Layout LOC001
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 HABILITA_PESOQTDE, com junção em EMBARQUE, ITEMPEDIDO, PEDIDO, EMPRESA, ITEM, MARCA (+4), 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.PS_LIQUIDO, B.PS_BRUTO, B.CD_MOTORISTA, B.CD_TRANSPORTADOR, COALESCE(PT.NM_PESSOA, B.NM_MOTORISTA) NM_MOTORISTA, O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, MAX(FP.DS_FORMAPAGTO) DS_FORMAPAGTO, SUM(O.PS_ORDEMCARREG) PS_ORDEM, SUM(O.QT_ORDEMCARREG) QT_ORDEM, SUM(CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (I.CD_ITEM)) WHEN 'Q' THEN O.QT_ORDEMCARREG ELSE O.PS_ORDEMCARREG END) QTDE, SUM((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(I.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, P.VL_UNITARIO, 'T'))) VL_TOTAL, M.CD_MARCA, M.DS_MARCA
FROM ORDEMCARREG O
INNER JOIN EMBARQUE B ON (B.CD_EMPRESA = O.CD_EMPRESA
AND B.NR_EMBARQUE = O.NR_EMBARQUE)
INNER JOIN ITEMPEDIDO P ON (P.CD_EMPRESA = O.CD_EMPRPED
AND P.NR_PEDIDO = O.NR_PEDIDO
AND P.TP_PEDIDO = O.TP_PEDIDO
AND P.CD_ITEM = O.CD_ITEM)
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)
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = B.CD_EMPRESA)
INNER JOIN ITEM I ON (I.CD_ITEM = O.CD_ITEM)
INNER JOIN MARCA M ON (M.CD_MARCA = I.CD_MARCA)
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 FORMAPAGTO FP ON (FP.CD_FORMAPAGTO = PED.CD_FORMAPAGTO)
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, EE.NR_ENDERECO, EE.DS_BAIRRO, EE.DS_COMPLEMENTO, ME.DS_MUNICIPIO, ME.SG_ESTADO, EE.NR_FONE, EE.NR_FAX, EE.NR_CEP, B.DT_EMBARQUE, B.NR_PLACA, B.PS_LIQUIDO, B.PS_BRUTO, B.CD_MOTORISTA, B.CD_TRANSPORTADOR, COALESCE(PT.NM_PESSOA, B.NM_MOTORISTA), O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, M.CD_MARCA, M.DS_MARCA CD_EMPRESA 1 NR_EMBARQUE
SELECT 'Pedidos.: ' || LIST(DISTINCT O.NR_PEDIDO, ', ') LISTA_PEDIDO
FROM ORDEMCARREG O
INNER JOIN ITEMPEDIDO P ON (P.CD_EMPRESA = O.CD_EMPRPED
AND P.NR_PEDIDO = O.NR_PEDIDO
AND P.TP_PEDIDO = O.TP_PEDIDO
AND P.CD_ITEM = O.CD_ITEM)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_EMBARQUE = :NR_EMBARQUE CD_EMPRESA NR_EMBARQUE
SELECT PED.CD_PESSOA, C.NM_PESSOA||coalesce(' - '||C.NM_FANTASIA,'') NM_PESSOA, O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, M.DS_MUNICIPIO||coalesce(' - '||M.SG_ESTADO,'') CIDADE_CLIENTE, sum(O.PS_ORDEMCARREG) PS_ORDEM, sum(O.QT_ORDEMCARREG) QT_ORDEM, sum(case (
SELECT V_TIPO
FROM HABILITA_PESOQTDE (I.CD_ITEM)) when 'Q' then O.QT_ORDEMCARREG else O.PS_ORDEMCARREG end) QTDE, sum((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(I.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, P.VL_UNITARIO, 'T'))) VL_TOTAL
FROM ORDEMCARREG O
INNER JOIN ITEMPEDIDO P on (P.CD_EMPRESA = O.CD_EMPRPED
AND P.NR_PEDIDO = O.NR_PEDIDO
AND P.TP_PEDIDO = O.TP_PEDIDO
AND P.CD_ITEM = O.CD_ITEM)
INNER JOIN PEDIDO PED on (P.CD_EMPRESA = PED.CD_EMPRESA
AND P.NR_PEDIDO = PED.NR_PEDIDO
AND P.TP_PEDIDO = PED.TP_PEDIDO)
INNER JOIN ITEM I on (I.CD_ITEM = O.CD_ITEM)
INNER JOIN PESSOA C on (C.CD_PESSOA = PED.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)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_EMBARQUE = :NR_EMBARQUE
AND O.ST_ORDEMCARREG <> 'C'
GROUP BY O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, PED.CD_PESSOA, C.NM_PESSOA, C.NM_FANTASIA, M.DS_MUNICIPIO, M.DS_MUNICIPIO, M.SG_ESTADO
ORDER BY PED.CD_PESSOA CD_EMPRESA 1 NR_EMBARQUE
Tabelas Utilizadas
| Tabela | Uso |
|---|---|
CALCULA_VALOR | 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 |
MARCA | 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 |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOC001/ULOC001.pas - DFM:
source/LOC001/ULOC001.dfm - Package:
source/LOC001/LOC001.dpk