Pular para o conteúdo principal

LOC017 — Layout LOC017

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 ORDEMCARREG, com junção em EMBARQUE, EMPRESA, ENDERECOPESSOA, MUNICIPIO, PESSOA, PEDIDO (+9), 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.CD_MOTORISTA, B.CD_TRANSPORTADOR, COALESCE(B.NM_MOTORISTA, PT.NM_PESSOA) NM_MOTORISTA, PT.NM_PESSOA NM_MOTORISTAPESSOA, T.NM_PESSOA NM_TRANSPORTADOR, O.CD_ITEM, I.DS_ITEM, CASE HPQ.V_TIPO WHEN 'Q' THEN HPQ.SG_QTDE ELSE HPQ.SG_PESO END SG_PRI, CASE HPQ.V_TIPO WHEN 'T' THEN HPQ.SG_QTDE ELSE NULL END SG_ALT, SUM(CASE HPQ.V_TIPO WHEN 'Q' THEN O.QT_ORDEMCARREG ELSE O.PS_ORDEMCARREG END) QTDE_PRI, SUM(CASE HPQ.V_TIPO WHEN 'T' THEN O.QT_ORDEMCARREG ELSE NULL END) QTDE_ALT, SUM(CASE TC.TP_UNIDADE WHEN 'Q' THEN O.QT_ORDEMCARREG ELSE O.PS_ORDEMCARREG END) QTDE, COALESCE(P.PS_LIQUIDO, 0) PS_LIQUIDO, COALESCE(P.PS_BRUTO, 0 ) PS_BRUTO
FROM ORDEMCARREG O
INNER JOIN EMBARQUE B ON (B.CD_EMPRESA = O.CD_EMPRESA
AND B.NR_EMBARQUE = O.NR_EMBARQUE)
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = B.CD_EMPRESA)
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 PESSOA T ON (B.CD_TRANSPORTADOR = T.CD_PESSOA)
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 IT ON (IT.CD_EMPRESA = P.CD_EMPRESA
AND IT.NR_PEDIDO = P.NR_PEDIDO
AND IT.TP_PEDIDO = P.TP_PEDIDO
AND IT.CD_ITEM = O.CD_ITEM)
INNER JOIN ITEM I ON (I.CD_ITEM = IT.CD_ITEM)
INNER JOIN TIPOCALCULO TC ON (TC.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
LEFT JOIN HABILITA_PESOQTDE(I.CD_ITEM) HPQ ON (1=1)
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||COALESCE(', '||EE.NR_ENDERECO,' ')|| COALESCE(COALESCE(' - '||EE.DS_BAIRRO, EE.DS_COMPLEMENTO),' '), ME.DS_MUNICIPIO||' - '||ME.SG_ESTADO, COALESCE(EE.NR_FONE, EE.NR_FAX), EE.NR_CEP, B.DT_EMBARQUE, B.NR_PLACA, B.CD_MOTORISTA, B.CD_TRANSPORTADOR, COALESCE(B.NM_MOTORISTA, PT.NM_PESSOA), PT.NM_PESSOA, T.NM_PESSOA, O.CD_ITEM, I.DS_ITEM, SG_PRI, SG_ALT, P.PS_LIQUIDO, P.PS_BRUTO CD_EMPRESA 1 NR_EMBARQUE
SELECT O.CD_EMPRESA, O.NR_EMBARQUE, COALESCE(R.DS_ROTA,'(Sem Rota Cadastrada)')DS_ROTA, RP.NR_ORDEM, PED.DT_PEDIDO, PED.NR_PEDIDO, C.NM_PESSOA||COALESCE(' - '||C.NM_FANTASIA,'')NM_CLIENTE, M.DS_MUNICIPIO||COALESCE(' - '||M.SG_ESTADO,'') CIDADE_CLIENTE, ENDPE.DS_ENDERECO||COALESCE(', N° '||ENDPE.NR_ENDERECO,'')||COALESCE(' - '||ENDPE.DS_BAIRRO,'') DS_ENDERECO, FG.DS_FORMAPAGTO, CG.DS_CONDPAGTO, SUM(CASE TC.TP_UNIDADE WHEN 'Q' THEN O.QT_ORDEMCARREG ELSE O.PS_ORDEMCARREG END) QTDE, CAST(SUM((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(IP.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, IP.VL_UNITARIO, 'T'))) /* - SUM((((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(IP.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, IP.VL_UNITARIO, 'T')) * COALESCE(IP.VL_DESCONTO,0)) / COALESCE(NULLIF(IP.VL_TOTAL,0),1))) */ + SUM((((
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(IP.CD_ITEM, O.PS_ORDEMCARREG, O.QT_ORDEMCARREG, IP.VL_UNITARIO, 'T')) * COALESCE(IP.VL_DESPESA,0)) / COALESCE(NULLIF(IP.VL_TOTAL,0),1))) AS NUMERIC(15,2) ) VL_TOTAL, ENDPE.NR_FONE, ENDPE.NR_CELULAR, V.NM_PESSOA NM_VENDEDOR, O.CD_ITEM, I.DS_ITEM, T.NM_PESSOA NM_TRANSPORTADOR
FROM ORDEMCARREG O
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)
LEFT JOIN PESSOA V ON (V.CD_PESSOA = PED.CD_VENDEDOR)
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 ITEM I ON (I.CD_ITEM = O.CD_ITEM)
INNER JOIN TIPOCALCULO TC ON (TC.CD_TIPOCALCULO = I.CD_TIPOCALCULO)
INNER JOIN PESSOA C ON (C.CD_PESSOA = PED.CD_PESSOA)
LEFT JOIN CONTATOPESSOA CP ON (CP.CD_PESSOA = C.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)
LEFT JOIN ROTAPESSOA RP ON (RP.CD_PESSOA = PED.CD_PESSOA)
LEFT JOIN ROTA R ON (R.CD_ROTA = RP.CD_ROTA)
LEFT JOIN HABILITA_PESOQTDE(I.CD_ITEM) HPQ ON (1=1)
INNER JOIN FORMAPAGTO FG ON (FG.CD_FORMAPAGTO = PED.CD_FORMAPAGTO)
INNER JOIN CONDPAGTO CG ON (CG.CD_CONDPAGTO = PED.CD_CONDPAGTO)
INNER JOIN EMBARQUE B ON (B.CD_EMPRESA = O.CD_EMPRESA
AND B.NR_EMBARQUE = O.NR_EMBARQUE)
LEFT JOIN PESSOA T ON (B.CD_TRANSPORTADOR = T.CD_PESSOA)
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, COALESCE(R.DS_ROTA,'(Sem Rota Cadastrada)'), RP.NR_ORDEM, PED.DT_PEDIDO, PED.NR_PEDIDO, C.NM_PESSOA||COALESCE(' - '||C.NM_FANTASIA,''), M.DS_MUNICIPIO||COALESCE(' - '||M.SG_ESTADO,''), ENDPE.DS_ENDERECO||COALESCE(', N° '||ENDPE.NR_ENDERECO,'')||COALESCE(' - '||ENDPE.DS_BAIRRO,''), FG.DS_FORMAPAGTO, CG.DS_CONDPAGTO, NR_FONE, ENDPE.NR_FONE, ENDPE.NR_CELULAR, NM_VENDEDOR, O.CD_ITEM, I.DS_ITEM, NM_TRANSPORTADOR
ORDER BY O.CD_EMPRESA, O.NR_EMBARQUE, RP.NR_ORDEM, O.CD_ITEM CD_EMPRESA 1 NR_EMBARQUE

Tabelas Utilizadas​

TabelaUso
CALCULA_VALORreferenciada nas queries do layout
CONDPAGTOreferenciada nas queries do layout
CONTATOPESSOAreferenciada 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
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
ROTAreferenciada nas queries do layout
ROTAPESSOAreferenciada nas queries do layout
TIPOCALCULOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOC017/ULOC017.pas
  • DFM: source/LOC017/ULOC017.dfm
  • Package: source/LOC017/LOC017.dpk