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
| Tabela | Uso |
|---|---|
ACERTOORDEM | referenciada nas queries do layout |
CALCULA_VALOR | referenciada nas queries do layout |
COMISSAOTABPRECO | referenciada nas queries do layout |
CONDPAGTO | referenciada nas queries do layout |
EMBARQUE | referenciada nas queries do layout |
EMPRESA | referenciada nas queries do layout |
ENDERECOPESSOA | referenciada nas queries do layout |
FECHAMENTOORDEM | referenciada nas queries do layout |
FORMAPAGTO | referenciada nas queries do layout |
HABILITA_PESOQTDE | referenciada nas queries do layout |
ITEM | referenciada nas queries do layout |
ITEMNOTA | referenciada nas queries do layout |
ITEMPEDIDO | referenciada nas queries do layout |
MOTIVO | referenciada nas queries do layout |
MUNICIPIO | referenciada nas queries do layout |
NOTA | 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 |
Shared Units
- jCommon
- jPesquisa
Fonte
- Unit:
source/LOC007/ULOC007.pas - DFM:
source/LOC007/ULOC007.dfm - Package:
source/LOC007/LOC007.dpk