Pular para o conteúdo principal

LOC022 — Layout LOC022

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, 'Pedidos Cliente.: ' || LIST(DISTINCT P.NR_PEDIDOFOR, ', ') LISTA_PEDIDOFOR
FROM ORDEMCARREG O
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)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_EMBARQUE = :NR_EMBARQUE
AND O.ST_ORDEMCARREG <> 'C' 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 CIDADE_CLIENTE, PED.CD_PESSOA CD_EMPRESA 1 NR_EMBARQUE

Tabelas Utilizadas​

TabelaUso
CALCULA_VALORreferenciada nas queries do layout
EMBARQUEreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
FORMAPAGTOreferenciada nas queries do layout
HABILITA_PESOQTDEreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMPEDIDOreferenciada nas queries do layout
MARCAreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORDEMCARREGreferenciada nas queries do layout
PEDIDOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
RETORNA_ENDERECOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOC022/ULOC022.pas
  • DFM: source/LOC022/ULOC022.dfm
  • Package: source/LOC022/LOC022.dpk