Pular para o conteúdo principal

LOC007 — Layout LOC007

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, PESSOA, EMPRESA, ITEM (+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 #1​

SELECT PED.CD_VENDEDOR||' - '||V.NM_PESSOA NM_VENDEDOR, 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
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 = P.CD_EMPRESA
AND PED.NR_PEDIDO = P.NR_PEDIDO
AND PED.TP_PEDIDO = P.TP_PEDIDO)
LEFT JOIN PESSOA V ON(V.CD_PESSOA = PED.CD_PESSOA)
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)
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(PM.NM_PESSOA, COALESCE(PT.NM_PESSOA, B.NM_MOTORISTA)), O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT, PED.CD_VENDEDOR||' - '||V.NM_PESSOA
ORDER BY I.DS_ITEM, O.CD_ITEM CD_EMPRESA 1 NR_EMBARQUE
SELECT DISTINCT O.NR_PEDIDO, PT.NM_PESSOA, V.NM_PESSOA NM_VENDEDOR, (
SELECT FIRST 1 'Rota: '||RP.CD_ROTA||' - '||R.DS_ROTA DS_ROTA
FROM ROTAPESSOA RP
INNER JOIN ROTA R ON(R.CD_ROTA = RP.CD_ROTA)
WHERE RP.CD_PESSOA = P.CD_PESSOA)
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' 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 'Rota: '||RP.CD_ROTA||' - '||R.DS_ROTA DS_ROTA, 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)
LEFT JOIN ROTAPESSOA RP ON(RP.CD_PESSOA = D.CD_PESSOA)
LEFT JOIN ROTA R ON(R.CD_ROTA = RP.CD_ROTA)
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

Ordem #2​

SELECT O.CD_EMPRESA, E.NM_EMPRESA, MIN(B.DT_EMBARQUE) DT_EMBARQUE, {Nulo}

tabPedido​

SELECT O.NR_PEDIDO, COALESCE(PT.nm_fantasia, PT.nm_pessoa) NM_PESSOA, COALESCE(V.NM_FANTASIA, V.NM_PESSOA) NM_VENDEDOR , SUM(ip.vl_total) VL_EMBARCADO, CP.DS_CONDPAGTO DS_CONDPAGTOPEDIDO, FP.ds_formapagto, CASE WHEN CP.ST_CONDPAGTO = 'V' THEN SUM(IP.VL_TOTAL) ELSE 0 END AVISTA, MAX((
SELECT FIRST 1 'Rota: '||RP.CD_ROTA||' - '||R.DS_ROTA
FROM ROTAPESSOA RP
INNER JOIN ROTA R ON(R.CD_ROTA = RP.CD_ROTA)
WHERE RP.CD_PESSOA = P.CD_PESSOA)) DS_ROTA
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 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 PESSOA PT ON (PT.CD_PESSOA = P.CD_PESSOA)
LEFT JOIN PESSOA V ON (V.CD_PESSOA = P.CD_VENDEDOR)
INNER JOIN CONDPAGTO CP ON (CP.cd_condpagto = P.cd_condpagto)
INNER JOIN FORMAPAGTO FP ON (FP.cd_formapagto = P.cd_formapagto)
WHERE O.CD_EMPRESA = {iParametros}

Text #1​

SELECT O.CD_EMPRESA, E.NM_EMPRESA, MIN(B.DT_EMBARQUE) DT_EMBARQUE, {Nulo(}Ordem Carregamento {iParametros[2],}S{)} 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(I.CD_FORNECEDOR1, 99999999) CD_FORNECEDOR1, COALESCE(EE.NR_FONE, EE.NR_FAX) NR_FONEEMP, EE.NR_CEP NR_CEPEMP, SUM(B.PS_LIQUIDO) PS_LIQUIDO, SUM(B.PS_BRUTO) PS_BRUTO, MIN(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, coalesce(I.CD_FORNECEDOR2, 99999999) CD_FORNECEDOR2
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)
WHERE O.CD_EMPRESA = {iParametros[1]}
AND O.NR_EMBARQUE IN ( {iParametros[2]} )
AND O.ST_ORDEMCARREG <> 'C'
GROUP BY O.CD_EMPRESA, E.NM_EMPRESA, I.CD_FORNECEDOR1, I.CD_FORNECEDOR2, 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, O.CD_ITEM, I.DS_ITEM, I.SG_UNIDMED, I.SG_UNIDALT
ORDER BY coalesce(I.CD_FORNECEDOR1, 99999999), I.DS_ITEM

Text #2​

SELECT O.NR_PEDIDO, COALESCE(PT.nm_fantasia, PT.nm_pessoa) NM_PESSOA, COALESCE(V.NM_FANTASIA, V.NM_PESSOA) NM_VENDEDOR , SUM(ip.vl_total) VL_EMBARCADO, CP.DS_CONDPAGTO DS_CONDPAGTOPEDIDO, FP.ds_formapagto, CASE WHEN CP.ST_CONDPAGTO = 'V' THEN SUM(IP.VL_TOTAL) ELSE 0 END AVISTA, MAX((
SELECT FIRST 1 'Rota: '||RP.CD_ROTA||' - '||R.DS_ROTA
FROM ROTAPESSOA RP
INNER JOIN ROTA R ON(R.CD_ROTA = RP.CD_ROTA)
WHERE RP.CD_PESSOA = P.CD_PESSOA)) DS_ROTA
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 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 PESSOA PT ON (PT.CD_PESSOA = P.CD_PESSOA)
LEFT JOIN PESSOA V ON (V.CD_PESSOA = P.CD_VENDEDOR)
INNER JOIN CONDPAGTO CP ON (CP.cd_condpagto = P.cd_condpagto)
INNER JOIN FORMAPAGTO FP ON (FP.cd_formapagto = P.cd_formapagto)
WHERE O.CD_EMPRESA = {iParametros[1]}
AND O.NR_EMBARQUE IN ( {iParametros[2]} )
AND O.ST_ORDEMCARREG <> 'C'
GROUP BY O.NR_PEDIDO, NM_PESSOA , NM_VENDEDOR, CP.DS_CONDPAGTO,FP.DS_FORMAPAGTO, CP.ST_CONDPAGTO

Tabelas Utilizadas​

TabelaUso
ACERTOORDEMreferenciada nas queries do layout
CALCULA_VALORreferenciada nas queries do layout
COMISSAOTABPRECOreferenciada nas queries do layout
CONDPAGTOreferenciada nas queries do layout
EMBARQUEreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
FECHAMENTOORDEMreferenciada nas queries do layout
FORMAPAGTOreferenciada 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
ROTAreferenciada nas queries do layout
ROTAPESSOAreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOC007/ULOC007.pas
  • DFM: source/LOC007/ULOC007.dfm
  • Package: source/LOC007/LOC007.dpk