Pular para o conteúdo principal

LOS024 — Layout LOS024

Visão Geral​

Layout de impressão da família LOS (Ordem de Serviço). Acionado via ExecLayout a partir das telas que imprimem este tipo de documento.

Descrição​

Consulta baseada em ORDEMOTICA, com junção em EMPRESA, PESSOA, ITEM, ENDERECOPESSOA, MUNICIPIO, filtrada por CD_EMPRESA, NR_ORDEM, O, JO, CD_ITEM, CD_PESSOA (+3).

Chamada​

ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Orcamento
// 3 - Path Servidor
// 4 - Visualiza -> V ou Imprime -> I
// 5 - Máquinas da Ordem de Serviço
// 6 - Abertura ou Fechamento
]);

SQL Base​

tabORDEM​

SELECT O.NR_ORDEM, O.DT_EMISSAO, E.NM_EMPRESA, O.NR_ODESFERICO,O.NR_ODCILINDRICO, O.NR_ODEIXO, O.NR_ODADICAO, O.NR_ODDNP, O.NR_ODALTURA, O.NR_OEESFERICO,O.NR_OECILINDRICO, O.NR_OEEIXO, O.NR_OEADICAO, O.NR_OEDNP, O.NR_OEALTURA, O.NR_ESPESSURA, O.NR_ODDIAMETRO, O.NR_OEDIAMETRO, O.DS_ARMACAO, O.NR_VERTICAL, O.NR_DIAGONAL, PF.NM_PESSOA NM_FORNECEDOR, O.DT_ENTREGA, O.DS_OBSERVACAO
FROM ORDEMOTICA O
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA)
LEFT JOIN PESSOA PF ON (PF.CD_PESSOA = O.CD_FORNECEDOR)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORDEM = :NR_ORDEM CD_EMPRESA 1 NR_ORDEM
SELECT I.DS_ITEM, O.NR_ARO, O.NR_PONTE
FROM ORDEMOTICAITEM O
INNER JOIN ITEM I ON (I.CD_ITEM = O.CD_ITEM)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORDEM = :NR_ORDEM CD_EMPRESA 1 NR_ORDEM
SELECT O.CD_EMPRESA, PE.NM_PESSOA NM_EMPRESA, EN.DS_ENDERECO, EN.NR_ENDERECO, EN.DS_BAIRRO, EN.NR_FONE, MUN.DS_MUNICIPIO||' - '||MUN.SG_ESTADO DS_MUNICIPIO,FORMATA_DATA(O.DT_EMISSAO,'%d/%m/%Y %H:%M') DT_EMISSAO, O.NR_ORDEM, O.DT_EMISSAO, COALESCE(O.VL_TOTAL,0) + COALESCE(O.VL_DESCONTO,0) - COALESCE (O.VL_LENTES,0) VL_OS, O.VL_DESCONTO, O.VL_ENTRADA, O.VL_TOTAL,O.VL_LIQUIDO - O.VL_ENTRADA VL_SALDO, O.DS_FORMAPAGTO, VL_LIQUIDO,PC.NM_PESSOA NM_CLIENTE, FORMATA_DATA(O.DT_ENTREGA,'%d/%m/%Y %H:%M') DT_ENTREGA
FROM ORDEMOTICA O
INNER JOIN EMPRESA E ON (E.CD_EMPRESA = O.CD_EMPRESA)
INNER JOIN PESSOA PE ON (PE.CD_PESSOA = E.CD_PESSOA)
LEFT JOIN ENDERECOPESSOA EN ON (EN.CD_PESSOA = PE.CD_PESSOA
AND EN.CD_ENDERECO =(
SELECT MIN(CD_ENDERECO)
FROM ENDERECOPESSOA
WHERE CD_PESSOA = EN.CD_PESSOA))
LEFT JOIN MUNICIPIO MUN ON (MUN.CD_MUNICIPIO = EN.CD_MUNICIPIO)
INNER JOIN PESSOA PC ON (PC.CD_PESSOA = O.CD_PESSOA)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORDEM = :NR_ORDEM CD_EMPRESA 1 NR_ORDEM

Consulta​

SELECT O_CD_EMPRESA, O_DS_IMPRESSORA, O_CD_IMPRESSORA
FROM RETORNA_IMPRESSORAUSUARIO({ IntToStr(sessao.empresa.cd_empresa)}, {QuotedStr(sessao.usuario.cd_usuario)}, 'D', 'D' )

Tabelas Utilizadas​

TabelaUso
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORDEMOTICAreferenciada nas queries do layout
ORDEMOTICAITEMreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
RETORNA_IMPRESSORAUSUARIOreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOS024/ULOS024.pas
  • DFM: source/LOS024/ULOS024.dfm
  • Package: source/LOS024/LOS024.dpk