1569 - Categoria
1568 - Funcionários 1572 - Sub-categoria 1574 - Fornecedores 1573 - Tela de créditos 1567 - Tela lançamento de débitos 1571 - Sócios 1570 - Forma pagamento 1565 - Veículos 1566 - Operação
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
CREATE TABLE public.categoria (
|
||||
codigo NUMERIC(15,0) NOT NULL,
|
||||
descricao VARCHAR(50),
|
||||
CONSTRAINT categoria_pkey PRIMARY KEY(codigo)
|
||||
)
|
||||
WITH (oids = false);
|
||||
@@ -0,0 +1,12 @@
|
||||
CREATE TABLE public.combustivel (
|
||||
codigo INTEGER NOT NULL,
|
||||
descricao VARCHAR(100) NOT NULL,
|
||||
CONSTRAINT combustivel_pkey PRIMARY KEY(codigo)
|
||||
)
|
||||
WITH (oids = false);
|
||||
|
||||
COMMENT ON COLUMN public.combustivel.codigo
|
||||
IS 'Código da tabela';
|
||||
|
||||
COMMENT ON COLUMN public.combustivel.descricao
|
||||
IS 'Descrição do Combustível';
|
||||
@@ -0,0 +1,58 @@
|
||||
CREATE TABLE public.controle_despesas_combustiveis (
|
||||
chave_despesa_combustivel INTEGER NOT NULL,
|
||||
data DATE NOT NULL,
|
||||
chave_veiculo INTEGER,
|
||||
chave_operacao INTEGER,
|
||||
observacoes VARCHAR(4000),
|
||||
chave_combustivel INTEGER,
|
||||
litros NUMERIC(15,3),
|
||||
valor_litro NUMERIC(15,3),
|
||||
km_inicial NUMERIC(20,3),
|
||||
km_final NUMERIC(20,3),
|
||||
total_combustivel NUMERIC(15,2),
|
||||
km_rodado NUMERIC(20,3),
|
||||
CONSTRAINT controle_despesas_combustiveis_pkey PRIMARY KEY(chave_despesa_combustivel)
|
||||
)
|
||||
WITH (oids = false);
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.chave_despesa_combustivel
|
||||
IS 'Código da tabela';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.data
|
||||
IS 'Data do lançamento';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.chave_veiculo
|
||||
IS 'Código do veículo';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.chave_operacao
|
||||
IS 'Código da operação';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.observacoes
|
||||
IS 'Observação do lançamento';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.chave_combustivel
|
||||
IS 'Código do combustível';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.litros
|
||||
IS 'Quantidade de litros lançados.';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.valor_litro
|
||||
IS 'Valor do litro de combustível';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.km_inicial
|
||||
IS 'Km inicial do veículo';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.km_final
|
||||
IS 'Km na chegada do veículo';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.total_combustivel
|
||||
IS 'Valor total do Combustível';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_combustiveis.km_rodado
|
||||
IS 'Total de km rodada';
|
||||
|
||||
CREATE INDEX controle_despesas_combustiveis_idx1 ON public.controle_despesas_combustiveis
|
||||
USING btree (data);
|
||||
|
||||
CREATE INDEX controle_despesas_combustiveis_idx2 ON public.controle_despesas_combustiveis
|
||||
USING btree (chave_veiculo, data);
|
||||
@@ -0,0 +1,61 @@
|
||||
CREATE TABLE public.controle_despesas_operacionais (
|
||||
chave_despesa_operacional INTEGER NOT NULL,
|
||||
data DATE NOT NULL,
|
||||
chave_operacao INTEGER,
|
||||
chave_categoria INTEGER,
|
||||
chave_subcategoria INTEGER,
|
||||
numero_documento INTEGER,
|
||||
chave_forma_pagamento INTEGER,
|
||||
chave_veiculo INTEGER,
|
||||
chave_funcionario INTEGER,
|
||||
chave_fornecedor INTEGER,
|
||||
observacoes VARCHAR(4000),
|
||||
valor NUMERIC(15,2),
|
||||
CONSTRAINT controle_despesas_operacionais_pkey PRIMARY KEY(chave_despesa_operacional)
|
||||
)
|
||||
WITH (oids = false);
|
||||
|
||||
ALTER TABLE public.controle_despesas_operacionais
|
||||
ALTER COLUMN chave_categoria SET STATISTICS 0;
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.chave_despesa_operacional
|
||||
IS 'Chave da tabela';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.data
|
||||
IS 'Data do lançamento';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.chave_operacao
|
||||
IS 'Código da operação';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.chave_categoria
|
||||
IS 'Código da categoria';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.chave_subcategoria
|
||||
IS 'Código da subcategoria';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.numero_documento
|
||||
IS 'Número do documento de identificação';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.chave_forma_pagamento
|
||||
IS 'Código da forma de pagamento';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.chave_veiculo
|
||||
IS 'Código do veículo';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.chave_funcionario
|
||||
IS 'Código do funcionário';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.chave_fornecedor
|
||||
IS 'Código do fornecedor';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.observacoes
|
||||
IS 'Observações sobre o lançamento';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_operacionais.valor
|
||||
IS 'Valor total do lançamento';
|
||||
|
||||
CREATE INDEX controle_despesas_operacionais_idx_1 ON public.controle_despesas_operacionais
|
||||
USING btree (data);
|
||||
|
||||
CREATE INDEX controle_despesas_operacionais_idx_2 ON public.controle_despesas_operacionais
|
||||
USING btree (chave_veiculo, data);
|
||||
@@ -0,0 +1,34 @@
|
||||
CREATE TABLE public.controle_despesas_pessoais (
|
||||
chave_pessoal INTEGER NOT NULL,
|
||||
data DATE NOT NULL,
|
||||
chave_categoria INTEGER,
|
||||
chave_responsavel INTEGER,
|
||||
valor NUMERIC(15,2),
|
||||
observacoes VARCHAR(4000),
|
||||
CONSTRAINT controle_despesas_pessoais_pkey PRIMARY KEY(chave_pessoal)
|
||||
)
|
||||
WITH (oids = false);
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_pessoais.chave_pessoal
|
||||
IS 'Chave da tabela';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_pessoais.data
|
||||
IS 'Data do lançamento da despesa';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_pessoais.chave_categoria
|
||||
IS 'Código da categoria';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_pessoais.chave_responsavel
|
||||
IS 'Código do responsável';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_pessoais.valor
|
||||
IS 'Valor da despesa';
|
||||
|
||||
COMMENT ON COLUMN public.controle_despesas_pessoais.observacoes
|
||||
IS 'Observações do lançamento';
|
||||
|
||||
CREATE INDEX controle_despesas_pessoais_idx1 ON public.controle_despesas_pessoais
|
||||
USING btree (data);
|
||||
|
||||
CREATE INDEX controle_despesas_pessoais_idx2 ON public.controle_despesas_pessoais
|
||||
USING btree (chave_categoria, data);
|
||||
@@ -0,0 +1,66 @@
|
||||
CREATE TABLE public.controle_receitas_fretes (
|
||||
chave_receita_frete INTEGER NOT NULL,
|
||||
data DATE NOT NULL,
|
||||
chave_operacao INTEGER NOT NULL,
|
||||
chave_veiculo INTEGER NOT NULL,
|
||||
chave_funcionario INTEGER,
|
||||
valor_frete NUMERIC(15,2),
|
||||
valor_imposto NUMERIC(15,2),
|
||||
valor_liquido NUMERIC(15,2),
|
||||
CONSTRAINT controle_receitas_fretes_pkey PRIMARY KEY(chave_receita_frete)
|
||||
)
|
||||
WITH (oids = false);
|
||||
|
||||
ALTER TABLE public.controle_receitas_fretes
|
||||
ALTER COLUMN chave_receita_frete SET STATISTICS 0;
|
||||
|
||||
ALTER TABLE public.controle_receitas_fretes
|
||||
ALTER COLUMN data SET STATISTICS 0;
|
||||
|
||||
ALTER TABLE public.controle_receitas_fretes
|
||||
ALTER COLUMN chave_operacao SET STATISTICS 0;
|
||||
|
||||
ALTER TABLE public.controle_receitas_fretes
|
||||
ALTER COLUMN chave_veiculo SET STATISTICS 0;
|
||||
|
||||
ALTER TABLE public.controle_receitas_fretes
|
||||
ALTER COLUMN chave_funcionario SET STATISTICS 0;
|
||||
|
||||
ALTER TABLE public.controle_receitas_fretes
|
||||
ALTER COLUMN valor_frete SET STATISTICS 0;
|
||||
|
||||
ALTER TABLE public.controle_receitas_fretes
|
||||
ALTER COLUMN valor_imposto SET STATISTICS 0;
|
||||
|
||||
ALTER TABLE public.controle_receitas_fretes
|
||||
ALTER COLUMN valor_liquido SET STATISTICS 0;
|
||||
|
||||
COMMENT ON COLUMN public.controle_receitas_fretes.chave_receita_frete
|
||||
IS 'Código da receita';
|
||||
|
||||
COMMENT ON COLUMN public.controle_receitas_fretes.data
|
||||
IS 'Data do lançamento';
|
||||
|
||||
COMMENT ON COLUMN public.controle_receitas_fretes.chave_operacao
|
||||
IS 'Código da operação';
|
||||
|
||||
COMMENT ON COLUMN public.controle_receitas_fretes.chave_veiculo
|
||||
IS 'Código do veículo';
|
||||
|
||||
COMMENT ON COLUMN public.controle_receitas_fretes.chave_funcionario
|
||||
IS 'Código do funcionário';
|
||||
|
||||
COMMENT ON COLUMN public.controle_receitas_fretes.valor_frete
|
||||
IS 'Valor total do frete';
|
||||
|
||||
COMMENT ON COLUMN public.controle_receitas_fretes.valor_imposto
|
||||
IS 'Valor do imposto (padrão 7,5%)';
|
||||
|
||||
COMMENT ON COLUMN public.controle_receitas_fretes.valor_liquido
|
||||
IS 'Valor líquido (frete - imposto)';
|
||||
|
||||
CREATE INDEX controle_receitas_fretes_idx1 ON public.controle_receitas_fretes
|
||||
USING btree (data);
|
||||
|
||||
CREATE INDEX controle_receitas_fretes_idx2 ON public.controle_receitas_fretes
|
||||
USING btree (chave_veiculo, chave_operacao, data);
|
||||
@@ -0,0 +1,6 @@
|
||||
CREATE TABLE public.forma_pagamento (
|
||||
codigo NUMERIC(15,0) NOT NULL,
|
||||
nome VARCHAR(50),
|
||||
CONSTRAINT forma_pagamento_pkey PRIMARY KEY(codigo)
|
||||
)
|
||||
WITH (oids = false);
|
||||
@@ -0,0 +1,28 @@
|
||||
CREATE TABLE public.fornecedor (
|
||||
codigo NUMERIC(15,0) NOT NULL,
|
||||
nome VARCHAR(50),
|
||||
razao_social VARCHAR(50) NOT NULL,
|
||||
cnpj VARCHAR(20),
|
||||
endereco VARCHAR(70),
|
||||
cep VARCHAR(10),
|
||||
CONSTRAINT fornecedor_pkey PRIMARY KEY(codigo)
|
||||
)
|
||||
WITH (oids = false);
|
||||
|
||||
COMMENT ON COLUMN public.fornecedor.codigo
|
||||
IS 'Chave da tabela';
|
||||
|
||||
COMMENT ON COLUMN public.fornecedor.nome
|
||||
IS 'Nome fantasia do fornecedor';
|
||||
|
||||
COMMENT ON COLUMN public.fornecedor.razao_social
|
||||
IS 'Razão social do fornecedor';
|
||||
|
||||
COMMENT ON COLUMN public.fornecedor.cnpj
|
||||
IS 'Cadastro Nacional de Pessoal Jurídica';
|
||||
|
||||
COMMENT ON COLUMN public.fornecedor.endereco
|
||||
IS 'Endereço do fornecedor';
|
||||
|
||||
COMMENT ON COLUMN public.fornecedor.cep
|
||||
IS 'CEP do Fornecedor';
|
||||
@@ -0,0 +1,9 @@
|
||||
CREATE TABLE public.funcionario (
|
||||
codigo NUMERIC(15,0) NOT NULL,
|
||||
nome VARCHAR(50),
|
||||
cnh NUMERIC(15,0),
|
||||
vencimento_cnh DATE,
|
||||
admissao DATE,
|
||||
CONSTRAINT funcionario_pkey PRIMARY KEY(codigo)
|
||||
)
|
||||
WITH (oids = false);
|
||||
@@ -0,0 +1,6 @@
|
||||
CREATE TABLE public.operacao (
|
||||
codigo NUMERIC(15,0) NOT NULL,
|
||||
nome VARCHAR(50),
|
||||
CONSTRAINT operacao_pkey PRIMARY KEY(codigo)
|
||||
)
|
||||
WITH (oids = false);
|
||||
@@ -0,0 +1,90 @@
|
||||
CREATE SEQUENCE public.categoria_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 999999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.categoria_seq RESTART WITH 15;
|
||||
|
||||
CREATE SEQUENCE public.combustivel_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.combustivel_seq RESTART WITH 10;
|
||||
|
||||
CREATE SEQUENCE public.controle_desp_comb_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 999999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.controle_desp_comb_seq RESTART WITH 6;
|
||||
|
||||
CREATE SEQUENCE public.controle_desp_op_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 99999999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.controle_desp_op_seq RESTART WITH 30;
|
||||
|
||||
CREATE SEQUENCE public.controle_desp_pes_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 99999999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.controle_desp_pes_seq RESTART WITH 7;
|
||||
|
||||
CREATE SEQUENCE public.controle_rec_fr_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 99999999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.controle_rec_fr_seq RESTART WITH 7;
|
||||
|
||||
CREATE SEQUENCE public.forma_pagamento_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 99999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.forma_pagamento_seq RESTART WITH 11;
|
||||
|
||||
CREATE SEQUENCE public.fornecedor_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 999999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.fornecedor_seq RESTART WITH 12;
|
||||
|
||||
CREATE SEQUENCE public.funcionario_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 999999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.funcionario_seq RESTART WITH 9;
|
||||
|
||||
CREATE SEQUENCE public.operacao_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 999999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.operacao_seq RESTART WITH 15;
|
||||
|
||||
CREATE SEQUENCE public.socio_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 99999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.socio_seq RESTART WITH 12;
|
||||
|
||||
CREATE SEQUENCE public.subcategoria_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.subcategoria_seq RESTART WITH 3;
|
||||
|
||||
CREATE SEQUENCE public.veiculo_seq
|
||||
INCREMENT 1 MINVALUE 1
|
||||
MAXVALUE 99999999 START 1
|
||||
CACHE 1;
|
||||
|
||||
ALTER SEQUENCE public.veiculo_seq RESTART WITH 6;
|
||||
@@ -0,0 +1,10 @@
|
||||
CREATE TABLE public.socios (
|
||||
codigo NUMERIC(15,0) NOT NULL,
|
||||
nome VARCHAR(50),
|
||||
percentual_participacao NUMERIC(15,2),
|
||||
CONSTRAINT socios_pkey PRIMARY KEY(codigo)
|
||||
)
|
||||
WITH (oids = false);
|
||||
|
||||
COMMENT ON COLUMN public.socios.percentual_participacao
|
||||
IS 'Valor percentual da participação do sócio.';
|
||||
@@ -0,0 +1,7 @@
|
||||
CREATE TABLE public.subcategoria (
|
||||
codigo NUMERIC(15,0) NOT NULL,
|
||||
descricao VARCHAR(50),
|
||||
codigo_categoria NUMERIC(15,0),
|
||||
CONSTRAINT subcategoria_pkey PRIMARY KEY(codigo)
|
||||
)
|
||||
WITH (oids = false);
|
||||
@@ -0,0 +1,9 @@
|
||||
CREATE TABLE public.veiculo (
|
||||
codigo NUMERIC(15,0) NOT NULL,
|
||||
placa VARCHAR(8),
|
||||
modelo VARCHAR(30),
|
||||
marca VARCHAR(30),
|
||||
ano NUMERIC(15,0),
|
||||
CONSTRAINT veiculo_pkey PRIMARY KEY(codigo)
|
||||
)
|
||||
WITH (oids = false);
|
||||
@@ -0,0 +1,56 @@
|
||||
CREATE OR REPLACE FUNCTION public.fnc_geraldia_pivot (
|
||||
parinicio date,
|
||||
parfinal date
|
||||
)
|
||||
RETURNS varchar AS
|
||||
$body$
|
||||
DECLARE
|
||||
strCategorias TEXT;
|
||||
strSQL TEXT;
|
||||
strColunas TEXT;
|
||||
BEGIN
|
||||
|
||||
BEGIN
|
||||
SELECT coalesce(STRING_AGG(distinct '"C_'|| C.DESCRICAO||'" text',','),'') as cat,
|
||||
coalesce(STRING_AGG(distinct 'COALESCE("C_'|| C.DESCRICAO|| '",''0,00'') AS "C_'|| C.DESCRICAO||'"',','),'') as COLUNA
|
||||
into strCategorias,strColunas
|
||||
FROM controle_despesas_operacionais CDO
|
||||
,CATEGORIA C
|
||||
WHERE C.CODIGO = CDO.chave_categoria
|
||||
AND CDO.DATA BETWEEN parinicio and parfinal;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
strCategorias := '';
|
||||
END;
|
||||
|
||||
strSQL := 'SELECT row_number() over() as CHAVE
|
||||
,CDO."DATA" AS DT
|
||||
,(SELECT coalesce(replace(to_char(sum(crf.valor_liquido),''FM999999999.00''),''.'','',''),''0,00'') FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA = CDO."DATA") AS VALOR_FRETE
|
||||
,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA = CDO."DATA") - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.data = CDO."DATA") as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido
|
||||
,'||strColunas||'
|
||||
FROM (SELECT CR.* FROM (SELECT *
|
||||
FROM crosstab(''SELECT CDO.DATA, CDO.CHAVE_CATEGORIA, coalesce(replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''',''''),''''0,00'''')
|
||||
FROM CONTROLE_DESPESAS_OPERACIONAIS CDO
|
||||
WHERE CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' group by cdo.data,cdo.chave_categoria ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais WHERE DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1'')
|
||||
AS ct("DATA" date, '||strCategorias||')) CR) CDO
|
||||
union all
|
||||
SELECT CAST(''0'' AS INTEGER) as CHAVE
|
||||
,to_date(''01/01/1900'',''dd/MM/yyyy'') AS DT
|
||||
,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''' ) as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') AS VALOR_FRETE
|
||||
,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.data BETWEEN '''||parinicio||''' and '''||parfinal||''') as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido
|
||||
,'||strColunas||'
|
||||
FROM (SELECT CR.* FROM (SELECT *
|
||||
FROM crosstab(''SELECT to_date(''''01/01/1900'''',''''dd/MM/yyyy''''), CDO.CHAVE_CATEGORIA, coalesce(replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''',''''),''''0,00'''')
|
||||
FROM CONTROLE_DESPESAS_OPERACIONAIS CDO
|
||||
WHERE CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' group by cdo.chave_categoria ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais where DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1'')
|
||||
AS ct("DATA" date, '|| strCategorias ||')) CR) CDO order by 1';
|
||||
|
||||
return strSQL;
|
||||
|
||||
END;
|
||||
$body$
|
||||
LANGUAGE 'plpgsql'
|
||||
VOLATILE
|
||||
CALLED ON NULL INPUT
|
||||
SECURITY INVOKER
|
||||
COST 100;
|
||||
@@ -0,0 +1,99 @@
|
||||
CREATE OR REPLACE FUNCTION public.fnc_geralplaca_pivot (
|
||||
parinicio date,
|
||||
parfinal date,
|
||||
parveiculo integer
|
||||
)
|
||||
RETURNS varchar AS
|
||||
$body$
|
||||
DECLARE
|
||||
strCategorias TEXT;
|
||||
strSQL TEXT;
|
||||
strColunas TEXT;
|
||||
BEGIN
|
||||
|
||||
BEGIN
|
||||
SELECT coalesce(STRING_AGG(distinct '"C_'|| C.DESCRICAO||'" text',','),'') as cat,
|
||||
coalesce(STRING_AGG(distinct 'COALESCE("C_'|| C.DESCRICAO|| '",''0,00'') AS "C_'|| C.DESCRICAO||'"',','),'') as COLUNA
|
||||
into strCategorias,strColunas
|
||||
FROM controle_despesas_operacionais CDO
|
||||
,CATEGORIA C
|
||||
WHERE C.CODIGO = CDO.chave_categoria
|
||||
AND CDO.DATA BETWEEN parinicio and parfinal;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
strCategorias := '';
|
||||
strColunas := '';
|
||||
END;
|
||||
if parveiculo is null then
|
||||
strSQL := 'SELECT row_number() over() as CHAVE
|
||||
,(Select v.placa from veiculo v where v.codigo = CDO."chave_veiculo") AS placa
|
||||
,(SELECT coalesce(replace(to_char(sum(crf.valor_liquido),''FM999999999.00''),''.'','',''),''0,00'') FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.chave_veiculo = CDO."chave_veiculo" and crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') AS VALOR_FRETE
|
||||
,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.chave_veiculo = CDO."chave_veiculo" and crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.chave_veiculo = CDO."chave_veiculo" and cd.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido
|
||||
,CDO.CHAVE_VEICULO
|
||||
,'||strColunas||'
|
||||
FROM (SELECT CR.* FROM (SELECT *
|
||||
FROM crosstab(''SELECT distinct cdo.chave_veiculo, cdo.chave_categoria codigo, cdo.chave_categoria cat, replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''','''')
|
||||
FROM controle_despesas_operacionais cdo
|
||||
where CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||'''''
|
||||
group by cdo.chave_veiculo,cdo.chave_categoria
|
||||
ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais where DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1''
|
||||
)
|
||||
AS ct(chave_veiculo integer, cat integer, '||strCategorias||')) CR) CDO
|
||||
union all
|
||||
SELECT 0 as CHAVE
|
||||
,''Total'' AS placa
|
||||
,(SELECT coalesce(replace(to_char(sum(crf.valor_liquido),''FM999999999.00''),''.'','',''),''0,00'') FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') AS VALOR_FRETE
|
||||
,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido
|
||||
,CDO.CHAVE_VEICULO
|
||||
,'||strColunas||'
|
||||
FROM (SELECT CR.* FROM (SELECT *
|
||||
FROM crosstab(''SELECT distinct 0, cdo.chave_categoria codigo, cdo.chave_categoria cat, replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''','''')
|
||||
FROM controle_despesas_operacionais cdo
|
||||
where CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||'''''
|
||||
group by cdo.chave_categoria
|
||||
ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais where DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1''
|
||||
)
|
||||
AS ct(chave_veiculo integer, cat integer, '||strCategorias||')) CR) CDO ORDER BY 1';
|
||||
ELSE
|
||||
strSQL := 'SELECT row_number() over() as CHAVE
|
||||
,(Select v.placa from veiculo v where v.codigo = CDO."chave_veiculo") AS placa
|
||||
,(SELECT coalesce(replace(to_char(sum(crf.valor_liquido),''FM999999999.00''),''.'','',''),''0,00'') FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.chave_veiculo = CDO."chave_veiculo" and crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') AS VALOR_FRETE
|
||||
,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.chave_veiculo = CDO."chave_veiculo" and crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.chave_veiculo = CDO."chave_veiculo" and cd.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido
|
||||
,CDO.CHAVE_VEICULO
|
||||
,'||strColunas||'
|
||||
FROM (SELECT CR.* FROM (SELECT *
|
||||
FROM crosstab(''SELECT distinct cdo.chave_veiculo, cdo.chave_categoria codigo, cdo.chave_categoria cat, replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''','''')
|
||||
FROM controle_despesas_operacionais cdo
|
||||
where CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||'''''
|
||||
and cdo.chave_veiculo = '||parveiculo||'
|
||||
group by cdo.chave_veiculo,cdo.chave_categoria
|
||||
ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais where DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1''
|
||||
)
|
||||
AS ct(chave_veiculo integer, cat integer, '||strCategorias||')) CR) CDO
|
||||
union all
|
||||
SELECT 0 as CHAVE
|
||||
,''Total'' AS placa
|
||||
,(SELECT coalesce(replace(to_char(sum(crf.valor_liquido),''FM999999999.00''),''.'','',''),''0,00'') FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''' and crf.chave_veiculo = '||parveiculo||') AS VALOR_FRETE
|
||||
,coalesce(replace(to_char(cast((SELECT coalesce(sum(crf.valor_liquido),0) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''' and crf.chave_veiculo = '||parveiculo||') - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''' and cd.chave_veiculo = '||parveiculo||') as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido
|
||||
,CDO.CHAVE_VEICULO
|
||||
,'||strColunas||'
|
||||
FROM (SELECT CR.* FROM (SELECT *
|
||||
FROM crosstab(''SELECT distinct 0, cdo.chave_categoria codigo, cdo.chave_categoria cat, replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''','''')
|
||||
FROM controle_despesas_operacionais cdo
|
||||
where CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||'''''
|
||||
and cdo.chave_veiculo = '||parveiculo||'
|
||||
group by cdo.chave_categoria
|
||||
ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais where DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1''
|
||||
)
|
||||
AS ct(chave_veiculo integer, cat integer, '||strCategorias||')) CR) CDO ORDER BY 1';
|
||||
end if;
|
||||
|
||||
return strSQL;
|
||||
|
||||
END;
|
||||
$body$
|
||||
LANGUAGE 'plpgsql'
|
||||
VOLATILE
|
||||
CALLED ON NULL INPUT
|
||||
SECURITY INVOKER
|
||||
COST 100;
|
||||
Reference in New Issue
Block a user