Pular para o conteúdo principal

LOR013 — Layout LOR013

Visão Geral​

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

Descrição​

Consulta baseada em ORCAMENTO, com junção em MAQUINAORCAMENTO, PESSOA, ENDERECOPESSOA, EMPRESA, MUNICIPIO, CONDPAGTO (+11), filtrada por CD_PESSOA, JO, CD_MUNICIPIO, CD_CONDPAGTO, CD_FORMAPAGTO, CD_EMPRESA (+4).

Chamada​

ExecLayout(Connection, [
// 0 - Nome do Layout
// 1 - Cod Empresa
// 2 - Nr Orcamento
// 3 - Path Servidor
// 4 - Visualiza -> V ou Imprime -> I
]);

SQL Base​

Orcamento​

SELECT V.NM_PESSOA DS_TERCEIRO, O.CD_EMPRESA, E.NM_EMPRESA, 'CNPJ: '||PE.NR_CNPJCPF NR_CNPJCPF, EE.DS_ENDERECO||COALESCE(', '||EE.NR_ENDERECO,'') DS_ENDERECO, COALESCE(COALESCE(EE.DS_BAIRRO, EE.DS_COMPLEMENTO),'') DS_BAIRRO, ME.DS_MUNICIPIO||' - '||ME.SG_ESTADO DS_MUNICIPIO, EE.NR_FONE, EE.NR_FAX, EE.NR_CEP, EE.NR_INSCEST, O.NR_ORCAMENTO, O.DT_ORCAMENTO, O.DT_ENTREGA, PE.DS_EMAIL, PE.DS_SITE, EP.DS_ENDERECO||COALESCE(' - '||EP.NR_ENDERECO,'')||COALESCE(' - '||EP.DS_BAIRRO||' - Cep: '||EP.NR_CEP,'') DS_ENDERECOCLI, P.NR_CNPJCPF NR_CNPJCPFCLI ,EP.NR_FONE NR_FONECLI, EP.DS_CONTATO DS_CONTATOCLI, MC.DS_MUNICIPIO DS_MUNICIPIOCLI, O.DS_COMPLEMENTAR, O.DS_OBSERVACAO, M.DS_MAQUINA,M.QT_ALTURA, M.QT_LARGURA, (M.QT_ALTURA * M.QT_LARGURA) QT_MT_QUADRADO,(M.VL_UNITARIO / COALESCE(NULLIF((M.QT_ALTURA * M.QT_LARGURA),0),1)) VL_MT_QUADRADO , PV.NM_PESSOA DS_VENDEDOR, O.DS_CONTATO, P.CD_PESSOA, P.CD_PESSOA||' - '||P.NM_PESSOA NM_PESSOA , O.NR_DIASVALIDADE, O.NR_DIASENTREGA, O.CD_VENDEDOR, V.NM_PESSOA NM_VENDEDOR, M.NR_MAQUINA, M.DS_MAQUINA, M.DS_ESPECIFICACAO, M.VL_UNITARIO, M.VL_TOTAL VL_TOTAL, M.QT_MAQUINA, M.VL_DESCONTO, M.VL_TOTAL - COALESCE(M.VL_DESCONTO,0) VL_LIQUIDO, CASE C.ST_CONDPAGTO WHEN 'D' THEN 'Vencto.: '||FORMATA_DATA(O.DT_VENCIMENTO,'%d/%m/%Y') ELSE C.DS_CONDPAGTO END DS_CONDPAGTO, O.CD_CONDPAGTO, FP.DS_FORMAPAGTO, PARMFATUR.DS_LOGOTIPO, LIN.O_NR_LINHA , P.NM_FANTASIA NM_FANTASIACLI , PE.NM_FANTASIA NM_FANTASIAEMP, PV.NM_FANTASIA NM_FANTASIAV
FROM ORCAMENTO O
INNER JOIN MAQUINAORCAMENTO M ON (M.CD_EMPRESA = O.CD_EMPRESA
AND M.NR_ORCAMENTO = O.NR_ORCAMENTO)
INNER JOIN PESSOA P ON (O.CD_PESSOA = P.CD_PESSOA)
INNER JOIN ENDERECOPESSOA EP ON (O.CD_PESSOA = EP.CD_PESSOA
AND O.CD_ENDERECO = EP.CD_ENDERECO)
INNER JOIN EMPRESA E ON (O.CD_EMPRESA = E.CD_EMPRESA)
INNER JOIN PESSOA PE ON (E.CD_PESSOA = PE.CD_PESSOA)
INNER JOIN ENDERECOPESSOA EE ON (EE.CD_PESSOA = PE.CD_PESSOA
AND EE.CD_ENDERECO = (
SELECT MIN(CD_ENDERECO)
FROM ENDERECOPESSOA ENDER
WHERE ENDER.CD_PESSOA = EE.CD_PESSOA))
LEFT JOIN PESSOA PV ON (PV.CD_PESSOA = O.CD_VENDEDOR)
INNER JOIN MUNICIPIO ME ON (EE.CD_MUNICIPIO = ME.CD_MUNICIPIO)
INNER JOIN MUNICIPIO MC ON (EP.CD_MUNICIPIO = MC.CD_MUNICIPIO)
INNER JOIN CONDPAGTO C ON (O.CD_CONDPAGTO = C.CD_CONDPAGTO)
INNER JOIN FORMAPAGTO FP ON (FP.CD_FORMAPAGTO = O.CD_FORMAPAGTO)
INNER JOIN PARMFATUR ON (PARMFATUR.CD_EMPRESA = O.CD_EMPRESA)
LEFT JOIN PESSOA V ON (O.CD_TERCEIRO = V.CD_PESSOA)
LEFT JOIN RETORNA_LINHAS(3) LIN ON (1=1)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO
ORDER BY LIN.O_NR_LINHA, M.NR_MAQUINA CD_EMPRESA NR_ORCAMENTO
SELECT O.CD_EMPRESA, O.NR_ORCAMENTO, O.NR_MAQUINA, O.CD_ITEM, ITEM.DS_ITEM, ITEM.CD_GRUPO, ITEM.SG_UNIDMED, ITEM.SG_UNIDALT, ITEM.PS_LIQUIDO, ITEM.PS_EMBALAGEM, ITEM.CD_CONDFISCAL, ITEM.CD_TIPOCALCULO, CALC.FT_CALCULO, CALC.TP_CALCULO, CALC.TP_UNIDADE, O.CD_MOVIMENTACAO, MOV.DS_MOVIMENTACAO, O.CD_TABCOMPRA, T.DS_TABCOMPRA, O.PS_ORCAMENTO, O.QT_ORCAMENTO, O.VL_UNITARIO, O.VL_TOTAL, O.VL_VENDA, IT.VL_PRECO, O.DT_REGISTRO, O.QT_HORAS, U.TP_UNIDMED, O.PS_FORMULA, O.QT_FORMULA, (
SELECT V_VL_TOTAL
FROM CALCULA_VALOR(O.CD_ITEM, O.PS_ORCAMENTO, O.QT_ORCAMENTO, O.VL_VENDA, 'U')) VL_UNITVENDA , CASE WHEN CALC.TP_UNIDADE = 'P' THEN O.PS_ORCAMENTO ELSE O.QT_ORCAMENTO END QTDE
FROM ITEMORCAMENTO O
INNER JOIN ITEM ON (O.CD_ITEM = ITEM.CD_ITEM)
INNER JOIN TIPOCALCULO CALC ON (ITEM.CD_TIPOCALCULO = CALC.CD_TIPOCALCULO)
INNER JOIN MOVIMENTACAO MOV ON (O.CD_MOVIMENTACAO = MOV.CD_MOVIMENTACAO)
INNER JOIN UNIDMED U ON (U.SG_UNIDMED = ITEM.SG_UNIDMED)
LEFT JOIN TABCOMPRA T ON (O.CD_TABCOMPRA = T.CD_TABCOMPRA)
LEFT JOIN ITEMTABCOMPRA IT ON (O.CD_TABCOMPRA = IT.CD_TABCOMPRA
AND O.CD_ITEM = IT.CD_ITEM)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO
AND O.NR_MAQUINA = :NR_MAQUINA
ORDER BY O.CD_EMPRESA, O.NR_ORCAMENTO, O.NR_MAQUINA, O.CD_ITEM CD_EMPRESA NR_ORCAMENTO NR_MAQUINA
SELECT O.CD_EMPRESA, O.NR_ORCAMENTO, O.NR_MAQUINA, O.CD_ITEM, I.DS_ITEM, I.CD_GRUPO, O.CD_MATERIAPRIMA, I.SG_UNIDMED, I.SG_UNIDALT, I.PS_LIQUIDO, I.PS_EMBALAGEM, I.CD_CONDFISCAL, I.CD_TIPOCALCULO, CALC.FT_CALCULO, CALC.TP_CALCULO, CALC.TP_UNIDADE, O.PS_MATERIAPRIMA, O.QT_MATERIAPRIMA, O.VL_UNITARIO, O.VL_TOTAL, O.VL_VENDA, O.DT_REGISTRO, U.TP_UNIDMED, R.O_QT_SALDO, CASE WHEN PO.TP_CALCULO = 'A' THEN IC.VL_PRECO ELSE R.O_VL_CUSTO END O_VL_CUSTO
FROM MATERIAPRIMAORCAMENTO O
INNER JOIN ITEM I ON (O.CD_MATERIAPRIMA = I.CD_ITEM)
INNER JOIN TIPOCALCULO CALC ON (I.CD_TIPOCALCULO = CALC.CD_TIPOCALCULO)
INNER JOIN UNIDMED U ON (U.SG_UNIDMED = I.SG_UNIDMED)
LEFT JOIN RETORNA_SALDOESTOQUE(O.CD_EMPRESA, O.CD_MATERIAPRIMA, NULL, NULL, NULL) R ON(1 = 1)
LEFT JOIN PARMORCAMENTO PO ON (PO.CD_EMPRESA = O.CD_EMPRESA)
LEFT JOIN PARMFATUR PF ON (PF.CD_EMPRESA = O.CD_EMPRESA)
LEFT JOIN ITEMTABCOMPRA IC ON (IC.CD_ITEM = I.CD_ITEM
AND IC.CD_TABCOMPRA = PF.CD_TABCOMPRA)
WHERE O.CD_EMPRESA = :CD_EMPRESA
AND O.NR_ORCAMENTO = :NR_ORCAMENTO
AND O.NR_MAQUINA = :NR_MAQUINA
AND O.CD_ITEM = :CD_ITEM
ORDER BY O.CD_MATERIAPRIMA CD_EMPRESA NR_ORCAMENTO NR_MAQUINA CD_ITEM

Tabelas Utilizadas​

TabelaUso
CALCULA_VALORreferenciada nas queries do layout
CONDPAGTOreferenciada nas queries do layout
EMPRESAreferenciada nas queries do layout
ENDERECOPESSOAreferenciada nas queries do layout
FORMAPAGTOreferenciada nas queries do layout
ITEMreferenciada nas queries do layout
ITEMORCAMENTOreferenciada nas queries do layout
ITEMTABCOMPRAreferenciada nas queries do layout
MAQUINAORCAMENTOreferenciada nas queries do layout
MATERIAPRIMAORCAMENTOreferenciada nas queries do layout
MOVIMENTACAOreferenciada nas queries do layout
MUNICIPIOreferenciada nas queries do layout
ORCAMENTOreferenciada nas queries do layout
PARMFATURreferenciada nas queries do layout
PARMORCAMENTOreferenciada nas queries do layout
PESSOAreferenciada nas queries do layout
RETORNA_LINHASreferenciada nas queries do layout
RETORNA_SALDOESTOQUEreferenciada nas queries do layout
TABCOMPRAreferenciada nas queries do layout
TIPOCALCULOreferenciada nas queries do layout
UNIDMEDreferenciada nas queries do layout

Shared Units​

  • jCommon
  • jPesquisa

Fonte​

  • Unit: source/LOR013/ULOR013.pas
  • DFM: source/LOR013/ULOR013.dfm
  • Package: source/LOR013/LOR013.dpk