Pular para o conteúdo principal

LOC006 — Layout LOC006

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, EMPRESA, ITEM, ENDERECOPESSOA, MUNICIPIO (+8), 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
// 5 - Tipo do Relatório
]);

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(PM.NM_PESSOA, COALESCE(PT.NM_PESSOA, B.NM_MOTORISTA)) NM_MOTORISTA, O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, SUM(O.PS_ORDEMCARREG) PS_ORDEM, SUM(O.QT_ORDEMCARREG) QT_ORDEM, SUM(CASE (
SELECT V_TIPO
FROM HABILITA_PESOQTDE(O.CD_ITEM)) WHEN 'Q' THEN O.QT_ORDEMCARREG * I.PS_LIQUIDOEMB ELSE O.PS_ORDEMCARREG * I.PS_LIQUIDOEMB END) PS_LIQITEM, SUM((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(I.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, P.VL_UNITARIO, 'T'))) VL_TOTAL, G.DS_GRUPO
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 EMPRESA E ON (E.CD_EMPRESA = B.CD_EMPRESA)
INNER JOIN ITEM I ON (I.CD_ITEM = O.CD_ITEM)
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 PM ON (PM.CD_PESSOA = B.CD_MOTORISTA)
INNER JOIN GRUPO G ON (G.CD_GRUPO = I.CD_GRUPO)
LEFT JOIN PESSOA PT ON (PT.CD_PESSOA = B.CD_TRANSPORTADOR)
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, PM.NM_PESSOA, PT.NM_PESSOA, B.NM_MOTORISTA, O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, O.PS_ORDEMCARREG,O.QT_ORDEMCARREG, O.CD_ITEM, O.QT_ORDEMCARREG, I.PS_LIQUIDOEMB, O.PS_ORDEMCARREG, I.PS_LIQUIDOEMB, I.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, P.VL_UNITARIO, G.DS_GRUPO
ORDER BY I.DS_ITEM, O.CD_ITEM CD_EMPRESA 1 NR_EMBARQUE
SELECT O.NR_PEDIDO, PT.NM_PESSOA, V.NM_PESSOA NM_VENDEDOR
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)
INNER JOIN PESSOA PT ON (PT.CD_PESSOA = P.CD_PESSOA)
LEFT JOIN PESSOA V ON (V.CD_PESSOA = P.CD_VENDEDOR)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_EMBARQUE = :NR_EMBARQUE
AND O.ST_ORDEMCARREG <> 'C'
GROUP BY O.NR_PEDIDO, PT.NM_PESSOA, V.NM_PESSOA CD_EMPRESA 1 NR_EMBARQUE
SELECT O.CD_MOTIVO, M.DS_MOTIVO, O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, O.PS_ACERTO, O.QT_ACERTO, O.VL_UNITARIO, O.VL_ACERTO
FROM ACERTOORDEM O
INNER JOIN FECHAMENTOORDEM F ON (F.CD_EMPRESA = O.CD_EMPRESA
AND F.NR_EMBARQUE = O.NR_EMBARQUE)
INNER JOIN ITEM I ON (I.CD_ITEM = O.CD_ITEM)
INNER JOIN MOTIVO M ON (M.CD_MOTIVO = O.CD_MOTIVO)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_EMBARQUE = :NR_EMBARQUE
AND O.CD_EMPRPED = :CD_EMPRPED
AND O.NR_PEDIDO = :NR_PEDIDO
AND O.TP_PEDIDO = :TP_PEDIDO CD_EMPRESA 1 NR_EMBARQUE CD_EMPRPED NR_PEDIDO TP_PEDIDO
SELECT O.CD_EMPRESA, O.NR_EMBARQUE, O.CD_EMPRPED, O.NR_PEDIDO, O.TP_PEDIDO, 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, F.DT_FECHAMENTO, D.CD_PESSOA, S.NM_PESSOA, D.CD_VENDEDOR, V.NM_PESSOA NM_VENDEDOR, O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, P.VL_UNITARIO, (
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(I.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, P.VL_UNITARIO, 'T')) VL_TOTAL, F.VL_DINHEIRO, F.VL_CHEQUE, F.VL_VALE, F.VL_FECHAMENTO VL_LIQUIDOTOT, F.VL_TOTAL VL_TOTALTOT, F.VL_TOTAL - F.VL_FECHAMENTO VL_ACERTOTOT, F.VL_FECHAMENTO - COALESCE(F.VL_CHEQUE,0) - COALESCE(F.VL_DINHEIRO,0) - COALESCE(F.VL_VALE,0) VL_SALDOTOT
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 D ON (P.CD_EMPRESA = D.CD_EMPRESA
AND P.NR_PEDIDO = D.NR_PEDIDO
AND P.TP_PEDIDO = D.TP_PEDIDO)
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA)
INNER JOIN ITEM I ON (I.CD_ITEM = O.CD_ITEM)
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)
INNER JOIN PESSOA S ON (S.CD_PESSOA = D.CD_PESSOA)
LEFT JOIN PESSOA V ON (V.CD_PESSOA = D.CD_VENDEDOR)
LEFT JOIN FECHAMENTOORDEM F ON (F.CD_EMPRESA = O.CD_EMPRESA
AND F.NR_EMBARQUE = O.NR_EMBARQUE)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_EMBARQUE = :NR_EMBARQUE
AND O.ST_ORDEMCARREG <> 'C' CD_EMPRESA 1 NR_EMBARQUE
SELECT N.CD_VENDEDOR, COALESCE(V.NM_PESSOA||' - '||N.CD_VENDEDOR,'SEM VENDEDOR') NM_VENDEDOR, I.CD_ITEM, I.DS_ITEM||' - '||I.CD_ITEM DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, SUM(NI.PS_ITEMNOTA) PS_ITEMNOTA, SUM(NI.QT_ITEMNOTA) QT_ITEMNOTA, SUM(NI.VL_TOTAL - COALESCE(NI.VL_DESCONTO,0)) VL_TOTAL, SUM(CV.VL_TOTALCOMISSAO) VL_COMISSAO
FROM NOTA N
INNER JOIN ITEMNOTA NI ON (NI.CD_EMPRESA = N.CD_EMPRESA
AND NI.NR_LANCAMENTO = N.NR_LANCAMENTO
AND NI.TP_NOTA = N.TP_NOTA
AND NI.CD_SERIE = N.CD_SERIE)
INNER JOIN ITEM I ON (I.CD_ITEM = NI.CD_ITEM)
LEFT JOIN COMISSAOTABPRECO CV ON (CV.CD_EMPRESA = NI.CD_EMPRESA
AND CV.NR_LANCAMENTO = NI.NR_LANCAMENTO
AND CV.CD_SERIE = NI.CD_SERIE
AND CV.TP_NOTA = NI.TP_NOTA
AND CV.CD_ITEM = NI.CD_ITEM)
LEFT JOIN PESSOA V ON (V.CD_PESSOA = N.CD_VENDEDOR)
WHERE N.CD_EMPEMB = :CD_EMPRESA
AND N.NR_EMBARQUE = :NR_EMBARQUE
AND N.TP_NOTA = 'S'
AND N.ST_NOTA = 'V'
GROUP BY N.CD_VENDEDOR, V.NM_PESSOA, I.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT
ORDER BY N.CD_VENDEDOR, I.DS_ITEM CD_EMPRESA 1 NR_EMBARQUE
SELECT O.CD_EMPRESA, O.NR_EMBARQUE, E.NM_EMPRESA, o.nr_embarque, 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(PM.NM_PESSOA, COALESCE(PT.NM_PESSOA, B.NM_MOTORISTA)) NM_MOTORISTA, O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, 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, P.vl_unitario, G.ds_grupo GRUPOS, COALESCE(GS.DS_SUBGRUPO, 'SEM SUB GRUPO') SUBGRUPO
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 EMPRESA E ON (E.CD_EMPRESA = B.CD_EMPRESA)
INNER JOIN ITEM I ON (I.CD_ITEM = O.CD_ITEM)
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 PM ON (PM.CD_PESSOA = B.CD_MOTORISTA)
LEFT JOIN PESSOA PT ON (PT.CD_PESSOA = B.CD_TRANSPORTADOR)
INNER JOIN GRUPO G ON (G.cd_grupo = I.cd_grupo)
LEFT JOIN SUBGRUPO GS ON(GS.CD_SUBGRUPO=I.CD_SUBGRUPO)
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, G.ds_grupo,GS.DS_SUBGRUPO, 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(PM.NM_PESSOA, COALESCE(PT.NM_PESSOA, B.NM_MOTORISTA)), O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, P.vl_unitario
ORDER BY G.DS_GRUPO,GS.DS_SUBGRUPO CD_EMPRESA 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

Tabelas Utilizadas​

TabelaUso
ACERTOORDEMreferenciada nas queries do layout
CALCULA_VALORreferenciada nas queries do layout
COMISSAOTABPRECOreferenciada nas queries do layout
EMBARQUEreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
FECHAMENTOORDEMreferenciada nas queries do layout
GRUPOreferenciada nas queries do layout
HABILITA_PESOQTDEreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMNOTAreferenciada nas queries do layout
ITEMPEDIDOreferenciada nas queries do layout
MOTIVOreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
NOTAreferenciada 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
SUBGRUPOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOC006/ULOC006.pas
  • DFM: source/LOC006/ULOC006.dfm
  • Package: source/LOC006/LOC006.dpk