Browse Source

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
master
Lucas Favaro da Silva 7 years ago
commit
518076f90f
43 changed files with 6829 additions and 0 deletions
  1. +0
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/.davinTI.txt
  2. +6
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/categoria.sql
  3. +12
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/combustivel.sql
  4. +58
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/controle_despesas_combustiveis.sql
  5. +61
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/controle_despesas_operacionais.sql
  6. +34
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/controle_despesas_pessoais.sql
  7. +66
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/controle_receitas_fretes.sql
  8. +6
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/forma_pagamento.sql
  9. +28
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/fornecedor.sql
  10. +9
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/funcionario.sql
  11. +6
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/operacao.sql
  12. +90
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/sequences.sql
  13. +10
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/socios.sql
  14. +7
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/subcategoria.sql
  15. +9
    -0
      01 - Objetos, Views/01 - Tabelas, Sequences/veiculo.sql
  16. +0
    -0
      01 - Objetos, Views/02 - Views/.davinTI.txt
  17. +0
    -0
      01 - Objetos, Views/03 - Procedures/.davinTI.txt
  18. +0
    -0
      01 - Objetos, Views/04 - Functions/.davinTI.txt
  19. +56
    -0
      01 - Objetos, Views/04 - Functions/fnc_geraldia_pivot.sql
  20. +99
    -0
      01 - Objetos, Views/04 - Functions/fnc_geralplaca_pivot.sql
  21. +0
    -0
      02 - Fluxos/01 - Querys/.davinTI.txt
  22. +0
    -0
      02 - Fluxos/02 - Scripts/.davinTI.txt
  23. +0
    -0
      02 - Fluxos/03 - Grupos/.davinTI.txt
  24. +0
    -0
      02 - Fluxos/04 - Desktop/.davinTI.txt
  25. +0
    -0
      02 - Fluxos/05 - Mobile/.davinTI.txt
  26. +0
    -0
      03 - Painéis/.davinTI.txt
  27. +473
    -0
      03 - Painéis/CADASTRO - Categoria.xml
  28. +471
    -0
      03 - Painéis/CADASTRO - Combustivel.xml
  29. +470
    -0
      03 - Painéis/CADASTRO - Forma_de_Pagamento.xml
  30. +493
    -0
      03 - Painéis/CADASTRO - Fornecedores.xml
  31. +487
    -0
      03 - Painéis/CADASTRO - Funcionários.xml
  32. +476
    -0
      03 - Painéis/CADASTRO - Operacoes.xml
  33. +474
    -0
      03 - Painéis/CADASTRO - Socio.xml
  34. +470
    -0
      03 - Painéis/CADASTRO - Sub_Categoria.xml
  35. +485
    -0
      03 - Painéis/CADASTRO - Veiculos.xml
  36. +158
    -0
      03 - Painéis/INDICADORES - Geral_dia.xml
  37. +173
    -0
      03 - Painéis/INDICADORES - Geral_placa.xml
  38. +307
    -0
      03 - Painéis/LANÇAMENTO - Créditos.xml
  39. +1143
    -0
      03 - Painéis/LANÇAMENTO - Despesas.xml
  40. +0
    -0
      04 - Relatórios/.davinTI.txt
  41. +0
    -0
      05 - Manual/.davinTI.txt
  42. BIN
      06 - Videos/Lançamento.mp4
  43. +192
    -0
      06 - Videos/Lançamento.wlmp

+ 0
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/.davinTI.txt View File


+ 6
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/categoria.sql View File

@ -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);

+ 12
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/combustivel.sql View File

@ -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';

+ 58
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/controle_despesas_combustiveis.sql View File

@ -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);

+ 61
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/controle_despesas_operacionais.sql View File

@ -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);

+ 34
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/controle_despesas_pessoais.sql View File

@ -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);

+ 66
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/controle_receitas_fretes.sql View File

@ -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);

+ 6
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/forma_pagamento.sql View File

@ -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);

+ 28
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/fornecedor.sql View File

@ -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';

+ 9
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/funcionario.sql View File

@ -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);

+ 6
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/operacao.sql View File

@ -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);

+ 90
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/sequences.sql View File

@ -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;

+ 10
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/socios.sql View File

@ -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.';

+ 7
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/subcategoria.sql View File

@ -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);

+ 9
- 0
01 - Objetos, Views/01 - Tabelas, Sequences/veiculo.sql View File

@ -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
01 - Objetos, Views/02 - Views/.davinTI.txt View File


+ 0
- 0
01 - Objetos, Views/03 - Procedures/.davinTI.txt View File


+ 0
- 0
01 - Objetos, Views/04 - Functions/.davinTI.txt View File


+ 56
- 0
01 - Objetos, Views/04 - Functions/fnc_geraldia_pivot.sql View File

@ -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;

+ 99
- 0
01 - Objetos, Views/04 - Functions/fnc_geralplaca_pivot.sql View File

@ -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;

+ 0
- 0
02 - Fluxos/01 - Querys/.davinTI.txt View File


+ 0
- 0
02 - Fluxos/02 - Scripts/.davinTI.txt View File


+ 0
- 0
02 - Fluxos/03 - Grupos/.davinTI.txt View File


+ 0
- 0
02 - Fluxos/04 - Desktop/.davinTI.txt View File


+ 0
- 0
02 - Fluxos/05 - Mobile/.davinTI.txt View File


+ 0
- 0
03 - Painéis/.davinTI.txt View File


+ 473
- 0
03 - Painéis/CADASTRO - Categoria.xml
File diff suppressed because it is too large
View File


+ 471
- 0
03 - Painéis/CADASTRO - Combustivel.xml View File

@ -0,0 +1,471 @@
<?xml version="1.0" encoding="UTF-8"?>
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd">
<form formKey="formCadastroPadrao" height="100%" width="100%">
<name>Combustíveis</name>
<description>Cadastro de Combustíveis</description>
<afterFormRenderScript language="JavaScript">
<![CDATA[
/*, */
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "combustivel" ,
"sequence" : "combustivel_seq" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "DESCRICAO" ],
"camposTable" : ["CODIGO", "DESCRICAO" ]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["DESCRICAO","idDescricao","String"]
] ,
"validacaoExclusao" : [ ["SELECT 0 AS CONTAR FROM COMBUSTIVEL WHERE CODIGO = ", "Existem registros ligados a esta tabela!"],
["SELECT COUNT(CHAVE_COMBUSTIVEL) AS CONTAR FROM CONTROLE_DESPESAS_COMBUSTIVEIS WHERE CHAVE_COMBUSTIVEL = ", "Existem registros ligados a esta tabela!"]
],
'painel' :
{
'titulo' : 'Cadastro de Combustíveis',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRFRkU5NTYyOTc1MjExRTg5OTQ1REMzMURFNkIzMkUyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRFRkU5NTYzOTc1MjExRTg5OTQ1REMzMURFNkIzMkUyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEVGRTk1NjA5NzUyMTFFODk5NDVEQzMxREU2QjMyRTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEVGRTk1NjE5NzUyMTFFODk5NDVEQzMxREU2QjMyRTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCAA0AFADAREAAhEBAxEB/8QAkQABAAMBAAMBAAAAAAAAAAAAAAUGBwQBAgMIAQEAAQUBAAAAAAAAAAAAAAAABgEDBAUHAhAAAQMDBAEBBQcFAQAAAAAAAQIDBAARBTESBgchE0FRgSIUYXGRsTJCI1JigjMkFhEAAgIABAIIBgMAAAAAAAAAAAECAxEhBAUxQfBRYYGh0RIGcZHBIjIUQhMz/9oADAMBAAIRAxEAPwD9RT50SBCfmzHAzFjIU6+6rRKEC6lH7hQFSHa/HnUhUOJkJiFAFDjUVe0g+QQV7fBoDlkdv45h0tuYXJJKQFG7SL2KSrTd/bQH3Y7g4ipaUShLglRtukMLSgEEJsVDcPbQFrxeYxWVjCTjZbUtg2O9pQUBfS9tPjQHYVJAJJAA1J9lBiejT7DwJacS4BrtIV+VVwB71QCgFAVDtvleO4r15mcxkIqJ0dtn0voXFFKXy8Q36RULkX3UBG4TqjrqZioU1qLIkRpLDTzAflyVj03EBSB/s/pNASieqeCIFmscWgPICHnhY+Df9fvSn8BQHJK6j46tsiHJmQ1ftCXi62PcCh3cCPFqAo/Iuus/gCp+NKvDkgpkZGCl2PIbKR8vqIZJSpLngXtZFMUs3wQwOkrmONJS/kH33diUOvlZ/kKRbcpOnmuT6rftTZZOSnKMZfxTeS5ImWn0NdcIpxjJrm1nidMCbIhrC0LKdujrZKSPvFY+j3O6iWNc3F9XFP4p5HrU6Ou1ZrM0rjmVOSxwdWoKeQSh23jyNCR9orqG1639nTxteHqfFLk10xIlqaP6rHElK2BYFAUbuPrd/sHh5wTGQGOfTIaktvLR6rai3cbXEApNrK9h1oCycVwKeP8AGcXg0vrlJxkVmKJLgAU56KAjcQNL20oCVoBQHhSUqSUqAKVCxB0INAZPySJFjZPIpjD00RnEWaH6drgGnusa5l7l00K9W1BKKcYvLrazJdtFspVR9Txx9XgRTT9R1wNrKBLcfzjmHyrTpJ+ikKDb6fYncfB+BqRe3NzdF3ok/snk/pLu59hq9y0SurbX+kM12rmjWAQQCPIOhrppEBQCgFAKAUAoDH+0JCMHk5U7IrMeBNLYaf2qIUtKf0DaD83jSoXv+1ai/VKVcfUnFZ8lhlmSXaddTVR98sJRk/EhuuZuB5fOkxkz/pPp1Jbbbc2pefWQVHYgnwAPf5PurzpPaTed8sOyPmV1PuBcKo978iy8j405iXwypRehvj+J0ixuNUm3tHsrU77sn6TjZXi6318U+rv5F7btxd2KllNeK6cTRcFPZm4qO80dEhC0+0KSLEGuiaXUwvqjZD8ZLou7gRe2twm4y4o76yC2KAUAoBQCgKr2fxL/ANVwrIYlsf8AXtD8I+59k70fjbb8aAwyLIjK6sM1qOiPmOP5CCFPISEOtht0DaSLHz+d6A1jtbsTi2Fxa4D952VcSHI8JggrQdUqcVogH7dax9VpYaiqVU/xkvl1PueZcqtlXJTjxRzcB5SxeO+0oqx2RSkkEEFC9PKdQUq+VQqE7BrZ6LUS0l+S9WXZLykvp2m83ClX1q6HFL5rzRp1T4j4oBQCgFAKAUBiHZPWmaZy2Ql4OK7KxebAM2LGsVpd3biCjx8pUN6SNDegIbC9Ecqy7weyricPFWQpxayH5a/8QSlJ+1SvhQE72T1BkcX164xwGTMTNiuGVkIwdUuTPbUP5kocPzId/enZbcRa3msK7bqLLVdOKlOKwWPlza5F6GonGDgnhFl/6tyHMJ3Cce9y6EqFm0pLboXYLdQjw2+42L+ktxPlSDoazSyWygFAKAUAoBQCgFAKAUB//9k='
}
};
function run()
{
engine.setGlobalVariable('config', config);
}
]]>
</afterFormRenderScript>
<initScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.java.util.Calendar);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.com.vaadin.ui.Notification);
var getDataAtual = function() {
var c = java.util.Calendar.getInstance();
c.setTime(new java.util.Date());
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
return c.getTime();
}
var fncLimpaCampos = function(){
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncLimpaCampos(config);
};
var habilitaCampos = function(lHabilita){
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setEnabled(true);
botaoSalvar.setEnabled(lHabilita);
botaoExcluir.setEnabled(lHabilita);
if(engine.getGlobalVariable('painelLista') == 1) {
botaoVoltar.setVisible(false);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
} else {
botaoVoltar.setVisible(true);
botaoSalvar.setVisible(true);
botaoExcluir.setVisible(true);
}
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncHabilitaCampos(config, lHabilita);
engine.getField('idChave').setEnabled(false);
engine.getField('listaPrincipal').refresh();
};
var novoRegistro = function() {
fncLimpaCampos();
habilitaCampos(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getWidgetController('btnVoltar').getButton().setVisible(true);
engine.getField('idChave').focus();
};
var carregarCampos = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var sql = lib.fncCarregarCampos(config, id);
};
var telaInicial = function() {
engine.getLayout('pnlTitulo').getRootComposition().setVisible(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(false);
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setVisible(true);
botaoNovo.setEnabled(true);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
botaoVoltar.setVisible(false);
}
var deletarRegistro = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncDeletarRegistro(config, id);
if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('habilitaCampos')(false);
}
}
var validarDuplicidade = function(valor) {
var sql = "Select count(descricao) ct from combustivel where descricao = '" + valor + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
if (row.ct == 0) {
return false;
} else {
return true
}
}
function run() {
var config = engine.getGlobalVariable('config');
var titulo = config['painel'].titulo;
var icone = config['painel'].icone;
engine.getLabel('Descricaocadastro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.setGlobalVariable('novoRegistro', novoRegistro);
engine.setGlobalVariable('carregarCampos', carregarCampos);
engine.setGlobalVariable('habilitaCampos', habilitaCampos);
engine.setGlobalVariable('fncLimpaCampos', fncLimpaCampos);
engine.setGlobalVariable('telaInicial', telaInicial);
engine.setGlobalVariable('deletarRegistro', deletarRegistro);
engine.setGlobalVariable('validarDuplicidade', validarDuplicidade);
engine.setGlobalVariable('painelLista',1);
//fncLimpaCampos();
habilitaCampos(false);
engine.getWidgetController('btnSalvar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.APLICAR));
engine.getWidgetController('btnNovo').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.CRIAR));
engine.getWidgetController('btnExcluir').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.REMOVER));
engine.getWidgetController('btnVoltar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.VOLTAR));
//engine.getFieldLocked('idAjuda', false); // pode ser erro no componente, aberto caso Eduardo = 20108
telaInicial();
}
]]>
</initScript>
<components>
<VerticalLayout spacing="false" margin="false" height="100%" width="100%" align="TOP_LEFT" >
<Panel width="100%" height="100%" caption="" expandRatio="1" margin="false" id="pnlTitulo" align="TOP_LEFT" >
<VerticalLayout width="100%" expandRatio="1" margin="true">
<Label id="Descricaocadastro" contentMode="HTML" align="MIDDLE_CENTER" > </Label>
<TextField id="idPesquisaLista" caption="Digite aqui para pesquisar:" type="string" width="100%" visible="true" immediate="true">
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run(){
engine.getField('listaPrincipal').refresh();
}
]]>
</script>
</valueChange>
</events>
</TextField>
<DBTable id="listaPrincipal" type="number" visible="true" width="100%" immediate="true" rows="5" selectable="false" multivalue="false" showRowCount="true">
<datasource>
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
<![CDATA[
var getSql = function() {
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "combustivel" ,
"sequence" : "combustivel_seq" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "DESCRICAO" ],
"camposTable" : ["CODIGO", "DESCRICAO" ]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["DESCRICAO","idDescricao","String"]
] ,
"validacaoExclusao" :
[ ["SELECT 0 AS CONTAR FROM COMBUSTIVEL WHERE CODIGO = ", "Existem registros ligados a esta tabela"],
["SELECT COUNT(CHAVE_COMBUSTIVEL) AS CONTAR FROM CONTROLE_DESPESAS_COMBUSTIVEIS WHERE CHAVE_COMBUSTIVEL = ", "Existem registros ligados a esta tabela!"]
],
'painel' :
{
'titulo' : 'Cadastro de Funcionário',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRFRkU5NTYyOTc1MjExRTg5OTQ1REMzMURFNkIzMkUyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRFRkU5NTYzOTc1MjExRTg5OTQ1REMzMURFNkIzMkUyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEVGRTk1NjA5NzUyMTFFODk5NDVEQzMxREU2QjMyRTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEVGRTk1NjE5NzUyMTFFODk5NDVEQzMxREU2QjMyRTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCAA0AFADAREAAhEBAxEB/8QAkQABAAMBAAMBAAAAAAAAAAAAAAUGBwQBAgMIAQEAAQUBAAAAAAAAAAAAAAAABgEDBAUHAhAAAQMDBAEBBQcFAQAAAAAAAQIDBAARBTESBgchE0FRgSIUYXGRsTJCI1JigjMkFhEAAgIABAIIBgMAAAAAAAAAAAECAxEhBAUxQfBRYYGh0RIGcZHBIjIUQhMz/9oADAMBAAIRAxEAPwD9RT50SBCfmzHAzFjIU6+6rRKEC6lH7hQFSHa/HnUhUOJkJiFAFDjUVe0g+QQV7fBoDlkdv45h0tuYXJJKQFG7SL2KSrTd/bQH3Y7g4ipaUShLglRtukMLSgEEJsVDcPbQFrxeYxWVjCTjZbUtg2O9pQUBfS9tPjQHYVJAJJAA1J9lBiejT7DwJacS4BrtIV+VVwB71QCgFAVDtvleO4r15mcxkIqJ0dtn0voXFFKXy8Q36RULkX3UBG4TqjrqZioU1qLIkRpLDTzAflyVj03EBSB/s/pNASieqeCIFmscWgPICHnhY+Df9fvSn8BQHJK6j46tsiHJmQ1ftCXi62PcCh3cCPFqAo/Iuus/gCp+NKvDkgpkZGCl2PIbKR8vqIZJSpLngXtZFMUs3wQwOkrmONJS/kH33diUOvlZ/kKRbcpOnmuT6rftTZZOSnKMZfxTeS5ImWn0NdcIpxjJrm1nidMCbIhrC0LKdujrZKSPvFY+j3O6iWNc3F9XFP4p5HrU6Ou1ZrM0rjmVOSxwdWoKeQSh23jyNCR9orqG1639nTxteHqfFLk10xIlqaP6rHElK2BYFAUbuPrd/sHh5wTGQGOfTIaktvLR6rai3cbXEApNrK9h1oCycVwKeP8AGcXg0vrlJxkVmKJLgAU56KAjcQNL20oCVoBQHhSUqSUqAKVCxB0INAZPySJFjZPIpjD00RnEWaH6drgGnusa5l7l00K9W1BKKcYvLrazJdtFspVR9Txx9XgRTT9R1wNrKBLcfzjmHyrTpJ+ikKDb6fYncfB+BqRe3NzdF3ok/snk/pLu59hq9y0SurbX+kM12rmjWAQQCPIOhrppEBQCgFAKAUAoDH+0JCMHk5U7IrMeBNLYaf2qIUtKf0DaD83jSoXv+1ai/VKVcfUnFZ8lhlmSXaddTVR98sJRk/EhuuZuB5fOkxkz/pPp1Jbbbc2pefWQVHYgnwAPf5PurzpPaTed8sOyPmV1PuBcKo978iy8j405iXwypRehvj+J0ixuNUm3tHsrU77sn6TjZXi6318U+rv5F7btxd2KllNeK6cTRcFPZm4qO80dEhC0+0KSLEGuiaXUwvqjZD8ZLou7gRe2twm4y4o76yC2KAUAoBQCgKr2fxL/ANVwrIYlsf8AXtD8I+59k70fjbb8aAwyLIjK6sM1qOiPmOP5CCFPISEOtht0DaSLHz+d6A1jtbsTi2Fxa4D952VcSHI8JggrQdUqcVogH7dax9VpYaiqVU/xkvl1PueZcqtlXJTjxRzcB5SxeO+0oqx2RSkkEEFC9PKdQUq+VQqE7BrZ6LUS0l+S9WXZLykvp2m83ClX1q6HFL5rzRp1T4j4oBQCgFAKAUBiHZPWmaZy2Ql4OK7KxebAM2LGsVpd3biCjx8pUN6SNDegIbC9Ecqy7weyricPFWQpxayH5a/8QSlJ+1SvhQE72T1BkcX164xwGTMTNiuGVkIwdUuTPbUP5kocPzId/enZbcRa3msK7bqLLVdOKlOKwWPlza5F6GonGDgnhFl/6tyHMJ3Cce9y6EqFm0pLboXYLdQjw2+42L+ktxPlSDoazSyWygFAKAUAoBQCgFAKAUB//9k='
}
};
var lib = libService.loadScript('lib_cadastro_padrao');
return lib.table(config, 'camposTable');
}
function buildSQL(params) {
var sql = getSql();
if(engine) {
var idPesquisaLista = engine.getField('idPesquisaLista').getValue();
if (idPesquisaLista != null) {
sql = "SELECT * FROM ( " + sql + " ) T WHERE T.DESCRICAO LIKE UPPER('%" + idPesquisaLista + "%')";
}
}
return sql;
}
]]>
</sqlBuilderDataSource>
</datasource>
<key-field>CODIGO</key-field>
<columns>
<!-- icone de edição -->
<generated name="Editar" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('editar', function () {
var id = itemId;
engine.getField('idChave').setValue(id);
if (id != null) {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('carregarCampos')(id);
engine.getGlobalVariable('habilitaCampos')(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
}
}, 'pencil');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<!-- icone de exclusão -->
<generated name="Excluir" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('excluir', function () {
var deletar = engine.getGlobalVariable('deletarRegistro');
var registro = item.getItemProperty('CODIGO') + " - " + item.getItemProperty('DESCRICAO');
var msg = 'Confirma a exclusão das informações para \n';
msg = msg.concat(registro, "?");
ConfirmationBox.show( 'Confirmar operação'
, msg
, new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
if(deletar){
engine.setGlobalVariable('painelLista',1);
deletar(itemId);
engine.getField('listaPrincipal').refresh();
}
}
}
}
);
}, 'trash');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<column name="CODIGO" caption="Código"/>
<column name="DESCRICAO" caption="Descrição"/>
</columns>
</DBTable>
</VerticalLayout>
</Panel>
<Panel width="100%" height="100%" expandRatio="1" caption="" margin="false" id="pnlInclusao">
<VerticalLayout width="100%" margin="true">
<Label id="DescricaocadastroDentro" contentMode="HTML" align="MIDDLE_CENTER" > </Label>
<TabLayout height="100%" width="100%">
<Tab caption="Dados" >
<VerticalLayout width="70%" margin="true" spacing="true">
<DBSearchField type="number" id="idPesquisa" expandRatio="1" caption="Pesquisar Combustível" width="100%" searchCaption="Descrição do combustível" searchViewWidth="85%" description="Selecione um fornecedor" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
SELECT * FROM combustivel
]]>
</freeQuery>
</datasource>
<loadItemQuery>
<![CDATA[
SELECT *
FROM combustivel
descricao = ? ORDER BY codigo
]]>
</loadItemQuery>
<key-field>CODIGO</key-field>
<caption-field>DESCRICAO</caption-field>
<columns>
<column name="CODIGO" caption="Código" />
<column name="DESCRICAO" caption="Descrição" />
</columns>
<filterProperties filterRequired="false">
<value>CODIGO</value>
<value>DESCRICAO</value>
</filterProperties>
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('carregarCampos')(engine.getField('idPesquisa').getValue());
}
]]>
</script>
</valueChange>
</events>
</DBSearchField>
<HorizontalLayout width="100%" spacing="true">
<TextField id="idChave" caption="Código" type="number" width="100%" expandRatio="0.08" />
<TextField id="idDescricao" text-transform="uppercase" type="string" caption="Descrição" required="true" width="100%" expandRatio="1" />
</HorizontalLayout>
</VerticalLayout>
</Tab>
</TabLayout>
</VerticalLayout>
</Panel>
<Panel width="100%" margin="false" id="pnlBotoes" >
<VerticalLayout width="100%" >
<HorizontalLayout margin="true" spacing="true" align="MIDDLE_CENTER" >
<ButtonWidget id="btnSalvar" caption="Salvar" expandRatio="0.2" description="Salva os dados do combustível" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
if (engine.isValid()) {
if (engine.getGlobalVariable('validarDuplicidade')(engine.getField('idDescricao').getValue())) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe um combustível cadastrado com esta descrição.');
} else {
var config = engine.getGlobalVariable('config');
var id = engine.getField('idChave').getConvertedValue();
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncGravarRegistro(config, id);
if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')();
}
}
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Novo" id="btnNovo" expandRatio="0.2" description="Descarta os dados atuais e deixa o formulário pronto para receber um novo cadastro" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('novoRegistro')();
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Excluir" id="btnExcluir" expandRatio="0.2" description="Excluir os dados atuais" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.com.vaadin.ui.Notification);
function run() {
if(engine.isValid()) {
var deletar = engine.getGlobalVariable('deletarRegistro');
var listener = new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
var id = engine.getField('idChave').getConvertedValue();
if(deletar){
engine.setGlobalVariable('painelLista',0);
deletar(id);
}
}
}
};
ConfirmationBox.show(ConfirmationBox.DialogIcon.WARNING, 'Confirmar exclusão do registro?', 'Tem certeza de que deseja excluir o tipo de ocorrência selecionado?', listener, ConfirmationBox.ACTION_YES_CANCEL);
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Voltar" id="btnVoltar" expandRatio="0.2" description="Voltar a tela inicial" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',1);
engine.getGlobalVariable('fncLimpaCampos')();
newRecord = false;
saveStatus = false;
engine.getGlobalVariable('telaInicial')();
engine.getField('listaPrincipal').refresh();
}
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
</VerticalLayout>
</Panel>
</VerticalLayout>
</components>
</form>
</panel-form>

+ 470
- 0
03 - Painéis/CADASTRO - Forma_de_Pagamento.xml
File diff suppressed because it is too large
View File


+ 493
- 0
03 - Painéis/CADASTRO - Fornecedores.xml View File

@ -0,0 +1,493 @@
<?xml version="1.0" encoding="UTF-8"?>
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd">
<form formKey="formCadastroPadrao" height="100%" width="100%">
<name>Fornecedores</name>
<description>Cadastro de Fornecedores</description>
<afterFormRenderScript language="JavaScript">
<![CDATA[
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "fornecedor" ,
"sequence" : "fornecedor_seq" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "NOME","RAZAO_SOCIAL","CNPJ","ENDERECO", "CEP"],
"camposTable" : ["CODIGO", "NOME","RAZAO_SOCIAL","CNPJ","ENDERECO", "CEP"]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["NOME","idDescricao","String"],
["RAZAO_SOCIAL","idRazao","String"],
["CNPJ","idCNPJ","String"],
["ENDERECO","idEndereco","String"],
["CEP","idCEP","String"]
] ,
"validacaoExclusao" : [ ["SELECT 0 AS CONTAR FROM fornecedor WHERE CODIGO = ", "Existem registros ligados a esta tabela"],
["SELECT count(chave_fornecedor) AS CONTAR FROM controle_despesas_operacionais WHERE chave_fornecedor = ", "Existem registros ligados a esta tabela"]
],
'painel' :
{
'titulo' : 'Cadastro de Fornecedores',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkM3QkQzMTY1OTY3QzExRTg5MTkzODJBNzU4NThFRjUzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkM3QkQzMTY2OTY3QzExRTg5MTkzODJBNzU4NThFRjUzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzdCRDMxNjM5NjdDMTFFODkxOTM4MkE3NTg1OEVGNTMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QzdCRDMxNjQ5NjdDMTFFODkxOTM4MkE3NTg1OEVGNTMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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'
}
};
function run()
{
engine.setGlobalVariable('config', config);
}
]]>
</afterFormRenderScript>
<initScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.java.util.Calendar);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.com.vaadin.ui.Notification);
var getDataAtual = function() {
var c = java.util.Calendar.getInstance();
c.setTime(new java.util.Date());
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
return c.getTime();
}
var fncLimpaCampos = function(){
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncLimpaCampos(config);
};
var habilitaCampos = function(lHabilita){
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setEnabled(true);
botaoSalvar.setEnabled(lHabilita);
botaoExcluir.setEnabled(lHabilita);
if(engine.getGlobalVariable('painelLista') == 1) {
botaoVoltar.setVisible(false);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
} else {
botaoVoltar.setVisible(true);
botaoSalvar.setVisible(true);
botaoExcluir.setVisible(true);
}
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncHabilitaCampos(config, lHabilita);
engine.getField('idChave').setEnabled(false);
engine.getField('listaPrincipal').refresh();
};
var novoRegistro = function() {
fncLimpaCampos();
habilitaCampos(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getWidgetController('btnVoltar').getButton().setVisible(true);
engine.getField('idRazao').focus();
};
var carregarCampos = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var sql = lib.fncCarregarCampos(config, id);
};
var telaInicial = function() {
engine.getLayout('pnlTitulo').getRootComposition().setVisible(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(false);
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setVisible(true);
botaoNovo.setEnabled(true);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
botaoVoltar.setVisible(false);
}
var deletarRegistro = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncDeletarRegistro(config, id);
if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('habilitaCampos')(false);
}
}
var validarDuplicidade = function(valor) {
var sql = "Select count(razao_social) ct from fornecedor where razao_social = '" + valor + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
if (row.ct == 0) {
return false;
} else {
return true
}
}
function run() {
var config = engine.getGlobalVariable('config');
var titulo = config['painel'].titulo;
var icone = config['painel'].icone;
engine.getLabel('Descricaocadastro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.setGlobalVariable('novoRegistro', novoRegistro);
engine.setGlobalVariable('carregarCampos', carregarCampos);
engine.setGlobalVariable('habilitaCampos', habilitaCampos);
engine.setGlobalVariable('fncLimpaCampos', fncLimpaCampos);
engine.setGlobalVariable('telaInicial', telaInicial);
engine.setGlobalVariable('deletarRegistro', deletarRegistro);
engine.setGlobalVariable('validarDuplicidade', validarDuplicidade);
engine.setGlobalVariable('painelLista',1);
//fncLimpaCampos();
habilitaCampos(false);
engine.getWidgetController('btnSalvar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.APLICAR));
engine.getWidgetController('btnNovo').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.CRIAR));
engine.getWidgetController('btnExcluir').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.REMOVER));
engine.getWidgetController('btnVoltar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.VOLTAR));
//engine.getFieldLocked('idAjuda', false); // pode ser erro no componente, aberto caso Eduardo = 20108
telaInicial();
}
]]>
</initScript>
<components>
<VerticalLayout spacing="false" margin="false" height="100%" width="100%" align="TOP_LEFT">
<Panel width="100%" height="100%" caption="" expandRatio="1" margin="false" id="pnlTitulo" align="TOP_LEFT">
<VerticalLayout width="100%" expandRatio="1" margin="true">
<Label id="Descricaocadastro" contentMode="HTML" align="MIDDLE_CENTER"> </Label>
<TextField id="idPesquisaLista" caption="Digite aqui para pesquisar:" type="string" width="100%" visible="true" immediate="true">
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run(){
engine.getField('listaPrincipal').refresh();
}
]]>
</script>
</valueChange>
</events>
</TextField>
<DBTable id="listaPrincipal" type="number" visible="true" width="100%" immediate="true" rows="5" selectable="false" multivalue="false" showRowCount="true">
<datasource>
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
<![CDATA[
var getSql = function() {
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "fornecedor" ,
"sequence" : "fornecedor_seq" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "NOME","RAZAO_SOCIAL","CNPJ","ENDERECO", "CEP"],
"camposTable" : ["CODIGO", "NOME","RAZAO_SOCIAL","CNPJ","ENDERECO", "CEP"]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["NOME","idDescricao","String"],
["RAZAO_SOCIAL","idRazao","String"],
["CNPJ","idCNPJ","String"],
["ENDERECO","idEndereco","String"],
["CEP","idCEP","String"]
] ,
"validacaoExclusao" :
[ ["SELECT 0 AS CONTAR FROM fornecedor WHERE CODIGO = ", "Existem registros ligados a esta tabela"],
["SELECT count(chave_fornecedor) AS CONTAR FROM controle_despesas_operacionais WHERE chave_fornecedor = ", "Existem registros ligados a esta tabela"]
],
'painel' :
{
'titulo' : 'Cadastro de Fornecedores',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkM3QkQzMTY1OTY3QzExRTg5MTkzODJBNzU4NThFRjUzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkM3QkQzMTY2OTY3QzExRTg5MTkzODJBNzU4NThFRjUzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzdCRDMxNjM5NjdDMTFFODkxOTM4MkE3NTg1OEVGNTMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QzdCRDMxNjQ5NjdDMTFFODkxOTM4MkE3NTg1OEVGNTMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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'
}
};
var lib = libService.loadScript('lib_cadastro_padrao');
return lib.table(config, 'camposTable');
}
function buildSQL(params) {
var sql = getSql();
if(engine) {
var idPesquisaLista = engine.getField('idPesquisaLista').getValue();
if (idPesquisaLista != null) {
sql = "SELECT * FROM ( " + sql + " ) T WHERE T.RAZAO_SOCIAL LIKE UPPER('%" + idPesquisaLista + "%')";
}
}
return sql;
}
]]>
</sqlBuilderDataSource>
</datasource>
<key-field>CODIGO</key-field>
<columns>
<!-- icone de edição -->
<generated name="Editar" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('editar', function () {
var id = itemId;
engine.getField('idChave').setValue(id);
if (id != null) {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('carregarCampos')(id);
engine.getGlobalVariable('habilitaCampos')(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
}
}, 'pencil');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<!-- icone de exclusão -->
<generated name="Excluir" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('excluir', function () {
var deletar = engine.getGlobalVariable('deletarRegistro');
var registro = item.getItemProperty('CODIGO') + " - " + item.getItemProperty('RAZAO_SOCIAL');
var msg = 'Confirma a exclusão das informações para \n';
msg = msg.concat(registro, "?");
ConfirmationBox.show( 'Confirmar operação'
, msg
, new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
if(deletar){
engine.setGlobalVariable('painelLista',1);
deletar(itemId);
engine.getField('listaPrincipal').refresh();
}
}
}
}
);
}, 'trash');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<column name="CODIGO" caption="Código"/>
<column name="NOME" caption="Nome"/>
<column name="RAZAO_SOCIAL" caption="Razão Social"/>
<column name="CNPJ" caption="CNPJ" />
<column name="ENDERECO" caption="Endereço"/>
<column name="CEP" caption="CEP"/>
</columns>
</DBTable>
</VerticalLayout>
</Panel>
<Panel width="100%" height="100%" expandRatio="1" caption="" margin="false" id="pnlInclusao" >
<VerticalLayout width="100%" margin="true">
<Label id="DescricaocadastroDentro" contentMode="HTML" align="MIDDLE_CENTER"> </Label>
<TabLayout height="100%" width="100%">
<Tab caption="Dados" >
<VerticalLayout width="100%" margin="true" spacing="true">
<DBSearchField type="number" id="idPesquisa" expandRatio="1" caption="Pesquisar Fornecedor" width="100%" searchCaption="Nome do fornecedor" searchViewWidth="85%" description="Selecione um fornecedor" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
SELECT * FROM fornecedor
]]>
</freeQuery>
</datasource>
<loadItemQuery>
<![CDATA[
SELECT *
FROM fornecedor
razao_social = ? ORDER BY codigo
]]>
</loadItemQuery>
<key-field>CODIGO</key-field>
<caption-field>RAZAO_SOCIAL</caption-field>
<columns>
<column name="CODIGO" caption="Código" />
<column name="RAZAO_SOCIAL" caption="Nome" />
<column name="CNPJ" caption="CNPJ" />
</columns>
<filterProperties filterRequired="false">
<value>CODIGO</value>
<value>RAZAO_SOCIAL</value>
<value>CNPJ</value>
</filterProperties>
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('carregarCampos')(engine.getField('idPesquisa').getValue());
}
]]>
</script>
</valueChange>
</events>
</DBSearchField>
<HorizontalLayout spacing="true" width="100%">
<TextField id="idChave" type="number" width="100%" caption="Código" expandRatio="0.1" />
<TextField id="idRazao" type="string" text-transform="uppercase" caption="Razão Social" required="true" width="100%" expandRatio="0.7" />
<MaskedField id="idCNPJ" type="string" caption="CNPJ" width="100%" expandRatio="0.2" mask="##.###.###/####-##" preservMask="false"/>
</HorizontalLayout>
<HorizontalLayout spacing="true" width="100%">
<TextField id="idDescricao" type="string" caption="Nome Fantasia" text-transform="uppercase" width="100%" expandRatio="0.4" />
<TextField id="idEndereco" type="string" caption="Endereco" width="100%" expandRatio="0.5" text-transform="uppercase" />
<MaskedField id="idCEP" type="string" caption="CEP" width="100%" expandRatio="0.1" mask="##.###-###" preservMask="false" />
</HorizontalLayout>
</VerticalLayout>
</Tab>
</TabLayout>
</VerticalLayout>
</Panel>
<Panel width="100%" margin="false" id="pnlBotoes" >
<VerticalLayout width="100%" >
<HorizontalLayout margin="true" spacing="true" align="MIDDLE_CENTER" >
<ButtonWidget id="btnSalvar" caption="Salvar" expandRatio="0.2" description="Salva os dados das Informações Adicionais do Cargo " align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
if (engine.isValid()) {
if (engine.getGlobalVariable('validarDuplicidade')(engine.getField('idRazao').getValue())) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe um fornecedor cadastrado com esta razão social.');
} else {
var config = engine.getGlobalVariable('config');
var id = engine.getField('idChave').getConvertedValue();
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncGravarRegistro(config, id);
if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')();
}
}
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Novo" id="btnNovo" expandRatio="0.2" description="Descarta os dados atuais e deixa o formulário pronto para receber um novo cadastro" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('novoRegistro')();
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Excluir" id="btnExcluir" expandRatio="0.2" description="Excluir os dados atuais" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.com.vaadin.ui.Notification);
function run() {
if(engine.isValid()) {
var deletar = engine.getGlobalVariable('deletarRegistro');
var listener = new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
var id = engine.getField('idChave').getConvertedValue();
if(deletar){
engine.setGlobalVariable('painelLista',0);
deletar(id);
}
}
}
};
ConfirmationBox.show(ConfirmationBox.DialogIcon.WARNING, 'Confirmar exclusão do registro?', 'Tem certeza de que deseja excluir o fornecedor?', listener, ConfirmationBox.ACTION_YES_CANCEL);
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Voltar" id="btnVoltar" expandRatio="0.2" description="Voltar a tela inicial" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',1);
engine.getGlobalVariable('fncLimpaCampos')();
newRecord = false;
saveStatus = false;
engine.getGlobalVariable('telaInicial')();
engine.getField('listaPrincipal').refresh();
}
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
</VerticalLayout>
</Panel>
</VerticalLayout>
</components>
</form>
</panel-form>

+ 487
- 0
03 - Painéis/CADASTRO - Funcionários.xml View File

@ -0,0 +1,487 @@
<?xml version="1.0" encoding="UTF-8"?>
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd">
<form formKey="formCadastroPadrao" height="100%" width="100%">
<name>Funcionários</name>
<description>Cadastro de funcionários</description>
<afterFormRenderScript language="JavaScript">
<![CDATA[
/*, */
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "funcionario" ,
"sequence" : "funcionario_seq" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "NOME","VENCIMENTO_CNH","CNH","ADMISSAO"],
"camposTable" : ["CODIGO", "NOME","VENCIMENTO_CNH","CNH","ADMISSAO"]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["NOME","idDescricao","String"],
["VENCIMENTO_CNH","idVencimento","Date"],
["CNH","idCNH","Number"],
["ADMISSAO","idAdmissao","Date"]
] ,
"validacaoExclusao" : [ ["SELECT 0 AS CONTAR FROM FUNCIONARIO WHERE CODIGO = ", "Existem registros ligados a esta tabela!"],
["SELECT COUNT(CHAVE_FUNCIONARIO) AS CONTAR FROM CONTROLE_DESPESAS_OPERACIONAIS WHERE CHAVE_FUNCIONARIO = ", "Existem registros ligados a esta tabela!"],
["SELECT COUNT(CHAVE_FUNCIONARIO) AS CONTAR FROM CONTROLE_RECEITAS_FRETES WHERE CHAVE_FUNCIONARIO = ", "Existem registros ligados a esta tabela!"]
],
'painel' :
{
'titulo' : 'Cadastro de Funcionários',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjgzODU4QTk2OTc1QjExRTg4Qzk4RkUzQzc5RTIwMEJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjgzODU4QTk3OTc1QjExRTg4Qzk4RkUzQzc5RTIwMEJFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ODM4NThBOTQ5NzVCMTFFODhDOThGRTNDNzlFMjAwQkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODM4NThBOTU5NzVCMTFFODhDOThGRTNDNzlFMjAwQkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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'
}
};
function run()
{
engine.setGlobalVariable('config', config);
}
]]>
</afterFormRenderScript>
<initScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.java.util.Calendar);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.com.vaadin.ui.Notification);
var getDataAtual = function() {
var c = java.util.Calendar.getInstance();
c.setTime(new java.util.Date());
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
return c.getTime();
}
var fncLimpaCampos = function(){
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncLimpaCampos(config);
};
var habilitaCampos = function(lHabilita){
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setEnabled(true);
botaoSalvar.setEnabled(lHabilita);
botaoExcluir.setEnabled(lHabilita);
if(engine.getGlobalVariable('painelLista') == 1) {
botaoVoltar.setVisible(false);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
} else {
botaoVoltar.setVisible(true);
botaoSalvar.setVisible(true);
botaoExcluir.setVisible(true);
}
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncHabilitaCampos(config, lHabilita);
engine.getField('idChave').setEnabled(false);
engine.getField('listaPrincipal').refresh();
};
var novoRegistro = function() {
fncLimpaCampos();
habilitaCampos(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getWidgetController('btnVoltar').getButton().setVisible(true);
engine.getField('idChave').focus();
};
var carregarCampos = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var sql = lib.fncCarregarCampos(config, id);
};
var telaInicial = function() {
engine.getLayout('pnlTitulo').getRootComposition().setVisible(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(false);
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setVisible(true);
botaoNovo.setEnabled(true);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
botaoVoltar.setVisible(false);
}
var deletarRegistro = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncDeletarRegistro(config, id);
if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('habilitaCampos')(false);
}
}
var validarDuplicidade = function(valor) {
var sql = "Select count(nome) ct from FUNCIONARIO where NOME = '" + valor + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
if (row.ct == 0) {
return false;
} else {
return true
}
}
function run() {
var config = engine.getGlobalVariable('config');
var titulo = config['painel'].titulo;
var icone = config['painel'].icone;
engine.getLabel('Descricaocadastro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.setGlobalVariable('novoRegistro', novoRegistro);
engine.setGlobalVariable('carregarCampos', carregarCampos);
engine.setGlobalVariable('habilitaCampos', habilitaCampos);
engine.setGlobalVariable('fncLimpaCampos', fncLimpaCampos);
engine.setGlobalVariable('telaInicial', telaInicial);
engine.setGlobalVariable('deletarRegistro', deletarRegistro);
engine.setGlobalVariable('validarDuplicidade', validarDuplicidade);
engine.setGlobalVariable('painelLista',1);
habilitaCampos(false);
engine.getWidgetController('btnSalvar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.APLICAR));
engine.getWidgetController('btnNovo').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.CRIAR));
engine.getWidgetController('btnExcluir').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.REMOVER));
engine.getWidgetController('btnVoltar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.VOLTAR));
//engine.getFieldLocked('idAjuda', false); // pode ser erro no componente, aberto caso Eduardo = 20108
telaInicial();
}
]]>
</initScript>
<components>
<VerticalLayout spacing="false" margin="false" height="100%" width="100%" align="TOP_LEFT" >
<Panel width="100%" caption="" height="100%" expandRatio="1" margin="false" id="pnlTitulo" align="TOP_LEFT" >
<VerticalLayout width="100%" expandRatio="1" margin="true">
<Label id="Descricaocadastro" contentMode="HTML" align="MIDDLE_CENTER"> </Label>
<TextField id="idPesquisaLista" caption="Digite aqui para pesquisar:" type="string" width="100%" visible="true" immediate="true">
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run(){
engine.getField('listaPrincipal').refresh();
}
]]>
</script>
</valueChange>
</events>
</TextField>
<DBTable id="listaPrincipal" type="number" visible="true" width="100%" immediate="true" rows="5" selectable="false" multivalue="false" showRowCount="true">
<datasource>
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
<![CDATA[
var getSql = function() {
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "funcionario" ,
"sequence" : "funcionario_seq" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "NOME", "VENCIMENTO_CNH", "CNH", "ADMISSAO" ],
"camposTable" : ["CODIGO", "NOME", "VENCIMENTO_CNH", "CNH", "ADMISSAO"]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["NOME","idDescricao","String"],
["VENCIMENTO_CNH","idVencimento","Date"],
["CNH","idCNH","Number"],
["ADMISSAO","idAdmissao","Date"]
] ,
"validacaoExclusao" :
[ ["SELECT 0 AS CONTAR FROM FUNCIONARIO WHERE CODIGO = ", "Existem registros ligados a esta tabela!"],
["SELECT COUNT(CHAVE_FUNCIONARIO) AS CONTAR FROM CONTROLE_DESPESAS_OPERACIONAIS WHERE CHAVE_FUNCIONARIO = ", "Existem registros ligados a esta tabela!"],
["SELECT COUNT(CHAVE_FUNCIONARIO) AS CONTAR FROM CONTROLE_RECEITAS_FRETES WHERE CHAVE_FUNCIONARIO = ", "Existem registros ligados a esta tabela!"]
],
'painel' :
{
'titulo' : 'Cadastro de Funcionários',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjgzODU4QTk2OTc1QjExRTg4Qzk4RkUzQzc5RTIwMEJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjgzODU4QTk3OTc1QjExRTg4Qzk4RkUzQzc5RTIwMEJFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ODM4NThBOTQ5NzVCMTFFODhDOThGRTNDNzlFMjAwQkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODM4NThBOTU5NzVCMTFFODhDOThGRTNDNzlFMjAwQkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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'
}
};
var lib = libService.loadScript('lib_cadastro_padrao');
return lib.table(config, 'camposTable');
}
function buildSQL(params) {
var sql = getSql();
if(engine) {
var idPesquisaLista = engine.getField('idPesquisaLista').getValue();
if (idPesquisaLista != null) {
sql = "SELECT * FROM ( " + sql + " ) T WHERE T.NOME LIKE UPPER('%" + idPesquisaLista + "%')";
}
}
return sql;
}
]]>
</sqlBuilderDataSource>
</datasource>
<key-field>CODIGO</key-field>
<columns>
<!-- icone de edição -->
<generated name="Editar" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('editar', function () {
var id = itemId;
engine.getField('idChave').setValue(id);
if (id != null) {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('carregarCampos')(id);
engine.getGlobalVariable('habilitaCampos')(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
}
}, 'pencil');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<!-- icone de exclusão -->
<generated name="Excluir" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('excluir', function () {
var deletar = engine.getGlobalVariable('deletarRegistro');
var registro = item.getItemProperty('CODIGO') + " - " + item.getItemProperty('NOME');
var msg = 'Confirma a exclusão das informações para \n';
msg = msg.concat(registro, "?");
ConfirmationBox.show( 'Confirmar operação'
, msg
, new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
if(deletar){
engine.setGlobalVariable('painelLista',1);
deletar(itemId);
engine.getField('listaPrincipal').refresh();
}
}
}
}
);
}, 'trash');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<column name="CODIGO" caption="Código"/>
<column name="NOME" caption="Nome"/>
<column name="CNH" caption="CNH"/>
<column name="VENCIMENTO_CNH" caption="Vencimento CNH" format="dd/MM/yyyy"/>
<column name="ADMISSAO" caption="Data admissão" format="dd/MM/yyyy"/>
</columns>
</DBTable>
</VerticalLayout>
</Panel>
<Panel width="100%" height="100%" expandRatio="1" caption="" margin="false" id="pnlInclusao">
<VerticalLayout width="100%" margin="true">
<Label id="DescricaocadastroDentro" contentMode="HTML" align="MIDDLE_CENTER"> </Label>
<TabLayout height="100%" width="100%">
<Tab caption="Dados" >
<VerticalLayout width="70%" margin="true" spacing="true">
<DBSearchField type="number" id="idPesquisa" expandRatio="1" caption="Pesquisar funcionário" width="100%" searchCaption="Nome do funcionário" searchViewWidth="85%" description="Selecione um fornecedor" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
SELECT * FROM funcionario
]]>
</freeQuery>
</datasource>
<loadItemQuery>
<![CDATA[
SELECT *
FROM funcionario
nome = ? ORDER BY codigo
]]>
</loadItemQuery>
<key-field>CODIGO</key-field>
<caption-field>NOME</caption-field>
<columns>
<column name="CODIGO" caption="Código" />
<column name="NOME" caption="Descrição" />
</columns>
<filterProperties filterRequired="false">
<value>CODIGO</value>
<value>NOME</value>
</filterProperties>
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('carregarCampos')(engine.getField('idPesquisa').getValue());
}
]]>
</script>
</valueChange>
</events>
</DBSearchField>
<HorizontalLayout width="100%" spacing="true">
<TextField id="idChave" type="number" caption="Código" width="100%" expandRatio="0.08" />
<TextField id="idDescricao" type="string" caption="Nome" required="true" width="100%" expandRatio="1" />
</HorizontalLayout>
<HorizontalLayout width="70%" spacing="true">
<DateField id="idAdmissao" type="date" caption="Admissão" resolution="DAY" width="100%" expandRatio="0.3"/>
<TextField id="idCNH" type="number" caption="CNH" width="100%" expandRatio="1" maxLength="11" />
<DateField id="idVencimento" type="date" caption="Vencimento CNH" resolution="DAY" width="100%" expandRatio="0.3"/>
</HorizontalLayout>
</VerticalLayout>
</Tab>
</TabLayout>
</VerticalLayout>
</Panel>
<Panel width="100%" margin="false" id="pnlBotoes" >
<VerticalLayout width="100%">
<HorizontalLayout margin="true" spacing="true" align="MIDDLE_CENTER" >
<ButtonWidget id="btnSalvar" caption="Salvar" expandRatio="0.2" description="Salva os dados das Informações Adicionais do Cargo " align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
if (engine.isValid()) {
if (engine.getGlobalVariable('validarDuplicidade')(engine.getField('idDescricao').getValue())) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe um funcionário cadastrado com este nome.');
} else {
var config = engine.getGlobalVariable('config');
var id = engine.getField('idChave').getConvertedValue();
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncGravarRegistro(config, id);
if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')();
}
}
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Novo" id="btnNovo" expandRatio="0.2" description="Descarta os dados atuais e deixa o formulário pronto para receber um novo cadastro" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('novoRegistro')();
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Excluir" id="btnExcluir" expandRatio="0.2" description="Excluir os dados atuais" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.com.vaadin.ui.Notification);
function run() {
if(engine.isValid()) {
var deletar = engine.getGlobalVariable('deletarRegistro');
var listener = new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
var id = engine.getField('idChave').getConvertedValue();
if(deletar){
engine.setGlobalVariable('painelLista',0);
deletar(id);
}
}
}
};
ConfirmationBox.show(ConfirmationBox.DialogIcon.WARNING, 'Confirmar exclusão do registro?', 'Tem certeza de que deseja excluir o tipo de ocorrência selecionado?', listener, ConfirmationBox.ACTION_YES_CANCEL);
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Voltar" id="btnVoltar" expandRatio="0.2" description="Voltar a tela inicial" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',1);
engine.getGlobalVariable('fncLimpaCampos')();
newRecord = false;
saveStatus = false;
engine.getGlobalVariable('telaInicial')();
engine.getField('listaPrincipal').refresh();
}
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
</VerticalLayout>
</Panel>
</VerticalLayout>
</components>
</form>
</panel-form>

+ 476
- 0
03 - Painéis/CADASTRO - Operacoes.xml View File

@ -0,0 +1,476 @@
<?xml version="1.0" encoding="UTF-8"?>
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd">
<form formKey="formCadastroPadrao" height="100%" width="100%">
<name>Operações</name>
<description>Cadastro de Operações</description>
<afterFormRenderScript language="JavaScript">
<![CDATA[
/*, */
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "OPERACAO" ,
"sequence" : "OPERACAO_SEQ" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "NOME" ],
"camposTable" : ["CODIGO", "DESCRICAO"]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["NOME","idDescricao","String"]
] ,
"validacaoExclusao" : [ ["SELECT 0 AS CONTAR FROM OPERACAO WHERE CODIGO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_OPERACAO) AS CONTAR FROM CONTROLE_DESPESAS_OPERACIONAIS WHERE CHAVE_OPERACAO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_OPERACAO) AS CONTAR FROM CONTROLE_DESPESAS_COMBUSTIVEIS WHERE CHAVE_OPERACAO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_OPERACAO) AS CONTAR FROM CONTROLE_RECEITAS_FRETES WHERE CHAVE_OPERACAO = ", "Existem registros ligados a esta tabela."]
],
'painel' :
{
'titulo' : 'Cadastro de Operações',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkUwQzAzMkQxOTk3NDExRTg4MDQ2REYxQ0E4NTZDNzhFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkUwQzAzMkQyOTk3NDExRTg4MDQ2REYxQ0E4NTZDNzhFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RTBDMDMyQ0Y5OTc0MTFFODgwNDZERjFDQTg1NkM3OEUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RTBDMDMyRDA5OTc0MTFFODgwNDZERjFDQTg1NkM3OEUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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'
}
};
function run()
{
engine.setGlobalVariable('config', config);
}
]]>
</afterFormRenderScript>
<initScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.java.util.Calendar);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.com.vaadin.ui.Notification);
var getDataAtual = function() {
var c = java.util.Calendar.getInstance();
c.setTime(new java.util.Date());
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
return c.getTime();
}
var fncLimpaCampos = function(){
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncLimpaCampos(config);
};
var habilitaCampos = function(lHabilita){
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setEnabled(true);
botaoSalvar.setEnabled(lHabilita);
botaoExcluir.setEnabled(lHabilita);
if(engine.getGlobalVariable('painelLista') == 1) {
botaoVoltar.setVisible(false);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
} else {
botaoVoltar.setVisible(true);
botaoSalvar.setVisible(true);
botaoExcluir.setVisible(true);
}
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncHabilitaCampos(config, lHabilita);
engine.getField('idChave').setEnabled(false);
engine.getField('listaPrincipal').refresh();
};
var novoRegistro = function() {
fncLimpaCampos();
habilitaCampos(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
//engine.getWidgetController('btnVoltar').getButton().setVisible(true);
engine.getField('idChave').focus();
};
var carregarCampos = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var sql = lib.fncCarregarCampos(config, id);
};
var telaInicial = function() {
engine.getLayout('pnlTitulo').getRootComposition().setVisible(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(false);
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setVisible(true);
botaoNovo.setEnabled(true);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
botaoVoltar.setVisible(false);
}
var deletarRegistro = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncDeletarRegistro(config, id);
if (retorno) {
//engine.getField('idChave').setValue(params.get('id'));
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('habilitaCampos')(true);
}
}
var validarDuplicidade = function(valor) {
var sql = "Select count(nome) ct from OPERACAO where NOME = '" + valor + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
if (row.ct == 0) {
return false;
} else {
return true
}
}
function run() {
var config = engine.getGlobalVariable('config');
var titulo = config['painel'].titulo;
var icone = config['painel'].icone;
engine.getLabel('Descricaocadastro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.setGlobalVariable('novoRegistro', novoRegistro);
engine.setGlobalVariable('carregarCampos', carregarCampos);
engine.setGlobalVariable('habilitaCampos', habilitaCampos);
engine.setGlobalVariable('fncLimpaCampos', fncLimpaCampos);
engine.setGlobalVariable('telaInicial', telaInicial);
engine.setGlobalVariable('deletarRegistro', deletarRegistro);
engine.setGlobalVariable('validarDuplicidade', validarDuplicidade);
engine.setGlobalVariable('painelLista',1);
//fncLimpaCampos();
habilitaCampos(false);
engine.getWidgetController('btnSalvar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.APLICAR));
engine.getWidgetController('btnNovo').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.CRIAR));
engine.getWidgetController('btnExcluir').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.REMOVER));
engine.getWidgetController('btnVoltar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.VOLTAR));
//engine.getFieldLocked('idAjuda', false); // pode ser erro no componente, aberto caso Eduardo = 20108
telaInicial();
}
]]>
</initScript>
<components>
<VerticalLayout spacing="false" margin="false" height="100%" width="100%" align="TOP_LEFT" >
<Panel width="100%" caption="" height="100%" expandRatio="1" margin="false" id="pnlTitulo" align="TOP_LEFT" >
<VerticalLayout width="100%" expandRatio="1" margin="true">
<Label id="Descricaocadastro" contentMode="HTML" align="MIDDLE_CENTER" > </Label>
<TextField id="idPesquisaLista" caption="Digite aqui para pesquisar:" type="string" width="100%" visible="true" immediate="true">
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run(){
engine.getField('listaPrincipal').refresh();
}
]]>
</script>
</valueChange>
</events>
</TextField>
<DBTable id="listaPrincipal" type="number" visible="true" width="100%" immediate="true" rows="5" selectable="false" multivalue="false" showRowCount="true">
<datasource>
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
<![CDATA[
var getSql = function() {
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "operacao" ,
"sequence" : "operacao_seq" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "NOME"],
"camposTable" : ["CODIGO", "NOME"]
},
"relaciona" :
[ ["CODIGO","idChave","Number"]
, ["NOME","idDescricao","String"]
] ,
"validacaoExclusao" :
[ ["SELECT 0 AS CONTAR FROM OPERACAO WHERE CODIGO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_OPERACAO) AS CONTAR FROM CONTROLE_DESPESAS_OPERACIONAIS WHERE CHAVE_OPERACAO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_OPERACAO) AS CONTAR FROM CONTROLE_DESPESAS_COMBUSTIVEIS WHERE CHAVE_OPERACAO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_OPERACAO) AS CONTAR FROM CONTROLE_RECEITAS_FRETES WHERE CHAVE_OPERACAO = ", "Existem registros ligados a esta tabela."]
],
'painel' :
{
'titulo' : 'Cadastro de Operações',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkUwQzAzMkQxOTk3NDExRTg4MDQ2REYxQ0E4NTZDNzhFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkUwQzAzMkQyOTk3NDExRTg4MDQ2REYxQ0E4NTZDNzhFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RTBDMDMyQ0Y5OTc0MTFFODgwNDZERjFDQTg1NkM3OEUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RTBDMDMyRDA5OTc0MTFFODgwNDZERjFDQTg1NkM3OEUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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'
}
};
var lib = libService.loadScript('lib_cadastro_padrao');
return lib.table(config, 'camposTable');
}
function buildSQL(params) {
var sql = getSql();
if(engine) {
var idPesquisaLista = engine.getField('idPesquisaLista').getValue();
if (idPesquisaLista != null) {
sql = "SELECT * FROM ( " + sql + " ) T WHERE T.NOME LIKE UPPER('%" + idPesquisaLista + "%')";
}
}
return sql;
}
]]>
</sqlBuilderDataSource>
</datasource>
<key-field>CODIGO</key-field>
<columns>
<!-- icone de edição -->
<generated name="Editar" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('editar', function () {
var id = itemId;
engine.getField('idChave').setValue(id);
if (id != null) {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('carregarCampos')(id);
engine.getGlobalVariable('habilitaCampos')(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
}
}, 'pencil');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<!-- icone de exclusão -->
<generated name="Excluir" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('excluir', function () {
var deletar = engine.getGlobalVariable('deletarRegistro');
var registro = item.getItemProperty('CODIGO') + " - " + item.getItemProperty('NOME');
var msg = 'Confirma a exclusão das informações para \n';
msg = msg.concat(registro, "?");
ConfirmationBox.show( 'Confirmar operação'
, msg
, new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
if(deletar){
engine.setGlobalVariable('painelLista',1);
deletar(itemId);
engine.getField('listaPrincipal').refresh();
}
}
}
}
);
}, 'trash');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<column name="CODIGO" caption="Código"/>
<column name="NOME" caption="Nome"/>
</columns>
</DBTable>
</VerticalLayout>
</Panel>
<Panel width="100%" height="100%" expandRatio="1" caption="" margin="false" id="pnlInclusao">
<VerticalLayout width="100%" margin="true">
<Label id="DescricaocadastroDentro" contentMode="HTML" align="MIDDLE_CENTER"> </Label>
<TabLayout height="100%" width="100%">
<Tab caption="Dados" >
<VerticalLayout width="70%" margin="true" spacing="true">
<DBSearchField type="number" id="idPesquisa" expandRatio="1" caption="Pesquisar operação" width="100%" searchCaption="Nome do operação" searchViewWidth="85%" description="Selecione um fornecedor" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
SELECT * FROM operacao
]]>
</freeQuery>
</datasource>
<loadItemQuery>
<![CDATA[
SELECT *
FROM operacao
nome = ? ORDER BY codigo
]]>
</loadItemQuery>
<key-field>CODIGO</key-field>
<caption-field>NOME</caption-field>
<columns>
<column name="CODIGO" caption="Código" />
<column name="NOME" caption="Descrição" />
</columns>
<filterProperties filterRequired="false">
<value>CODIGO</value>
<value>NOME</value>
</filterProperties>
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('carregarCampos')(engine.getField('idPesquisa').getValue());
}
]]>
</script>
</valueChange>
</events>
</DBSearchField>
<HorizontalLayout spacing="true" width="100%" >
<TextField type="number" id="idChave" width="100%" caption="Código" expandRatio="0.08" />
<TextField type="string" id="idDescricao" text-transform="uppercase" caption="Descrição" required="true" width="100%" expandRatio="1" />
</HorizontalLayout>
</VerticalLayout>
</Tab>
</TabLayout>
</VerticalLayout>
</Panel>
<Panel width="100%" margin="false" id="pnlBotoes" >
<VerticalLayout width="100%" >
<HorizontalLayout margin="true" spacing="true" align="MIDDLE_CENTER" >
<ButtonWidget id="btnSalvar" caption="Salvar" expandRatio="0.2" description="Salva os dados das Informações Adicionais do Cargo " align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
if (engine.isValid()) {
if (engine.getGlobalVariable('validarDuplicidade')(engine.getField('idDescricao').getValue())) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe uma operação cadastrada com este nome.');
} else {
var config = engine.getGlobalVariable('config');
var id = engine.getField('idChave').getConvertedValue();
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncGravarRegistro(config, id);
if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')();
}
}
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Novo" id="btnNovo" expandRatio="0.2" description="Descarta os dados atuais e deixa o formulário pronto para receber um novo cadastro" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('novoRegistro')();
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Excluir" id="btnExcluir" expandRatio="0.2" description="Excluir os dados atuais" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.com.vaadin.ui.Notification);
function run() {
if(engine.isValid()) {
var deletar = engine.getGlobalVariable('deletarRegistro');
var listener = new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
var id = engine.getField('idChave').getConvertedValue();
if(deletar){
engine.setGlobalVariable('painelLista',0);
deletar(id);
}
}
}
};
ConfirmationBox.show(ConfirmationBox.DialogIcon.WARNING, 'Confirmar exclusão do registro?', 'Tem certeza de que deseja excluir o tipo de ocorrência selecionado?', listener, ConfirmationBox.ACTION_YES_CANCEL);
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Voltar" id="btnVoltar" expandRatio="0.2" description="Voltar a tela inicial" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',1);
engine.getGlobalVariable('fncLimpaCampos')();
newRecord = false;
saveStatus = false;
engine.getGlobalVariable('telaInicial')();
engine.getField('listaPrincipal').refresh();
}
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
</VerticalLayout>
</Panel>
</VerticalLayout>
</components>
</form>
</panel-form>

+ 474
- 0
03 - Painéis/CADASTRO - Socio.xml View File

@ -0,0 +1,474 @@
<?xml version="1.0" encoding="UTF-8"?>
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd">
<form formKey="formCadastroPadrao" height="100%" width="100%">
<name>Sócios</name>
<description>Cadastro de sócios</description>
<afterFormRenderScript language="JavaScript">
<![CDATA[
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "socios" ,
"sequence" : "socio_seq" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "NOME", "PERCENTUAL_PARTICIPACAO" ],
"camposTable" : ["CODIGO", "NOME", "PERCENTUAL_PARTICIPACAO" ]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["NOME","idDescricao","String"],
["PERCENTUAL_PARTICIPACAO","idPercentual","Number"]
] ,
"validacaoExclusao" : [ ["SELECT 0 AS CONTAR FROM SOCIOS WHERE CODIGO = ", "Existem registros ligados a esta tabela"],
["SELECT COUNT(CHAVE_RESPONSAVEL) AS CONTAR FROM CONTROLE_DESPESAS_PESSOAIS WHERE CHAVE_RESPONSAVEL = ", "Existem registros ligados a esta tabela."]
],
'painel' :
{
'titulo' : 'Cadastro de Sócios',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkQ1ODEzRDEzOTk3RDExRTg5MjM0OTVGQTc2Mjc4OEQ0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkQ1ODEzRDE0OTk3RDExRTg5MjM0OTVGQTc2Mjc4OEQ0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RDU4MTNEMTE5OTdEMTFFODkyMzQ5NUZBNzYyNzg4RDQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RDU4MTNEMTI5OTdEMTFFODkyMzQ5NUZBNzYyNzg4RDQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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'
}
};
function run()
{
engine.setGlobalVariable('config', config);
}
]]>
</afterFormRenderScript>
<initScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.java.util.Calendar);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.com.vaadin.ui.Notification);
var getDataAtual = function() {
var c = java.util.Calendar.getInstance();
c.setTime(new java.util.Date());
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
return c.getTime();
}
var fncLimpaCampos = function(){
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncLimpaCampos(config);
};
var habilitaCampos = function(lHabilita){
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setEnabled(true);
botaoSalvar.setEnabled(lHabilita);
botaoExcluir.setEnabled(lHabilita);
if(engine.getGlobalVariable('painelLista') == 1) {
botaoVoltar.setVisible(false);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
} else {
botaoVoltar.setVisible(true);
botaoSalvar.setVisible(true);
botaoExcluir.setVisible(true);
}
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncHabilitaCampos(config, lHabilita);
engine.getField('idChave').setEnabled(false);
engine.getField('listaPrincipal').refresh();
};
var novoRegistro = function() {
fncLimpaCampos();
habilitaCampos(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getWidgetController('btnVoltar').getButton().setVisible(true);
engine.getField('idChave').focus();
};
var carregarCampos = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var sql = lib.fncCarregarCampos(config, id);
};
var telaInicial = function() {
engine.getLayout('pnlTitulo').getRootComposition().setVisible(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(false);
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setVisible(true);
botaoNovo.setEnabled(true);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
botaoVoltar.setVisible(false);
}
var deletarRegistro = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncDeletarRegistro(config, id);
if (retorno) {
//engine.getField('idChave').setValue(params.get('id'));
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('habilitaCampos')(false);
}
}
var validarDuplicidade = function(valor) {
var sql = "Select count(nome) ct from socios where NOME = '" + valor + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
if (row.ct == 0) {
return false;
} else {
return true
}
}
function run() {
var config = engine.getGlobalVariable('config');
var titulo = config['painel'].titulo;
var icone = config['painel'].icone;
engine.getLabel('Descricaocadastro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.setGlobalVariable('novoRegistro', novoRegistro);
engine.setGlobalVariable('carregarCampos', carregarCampos);
engine.setGlobalVariable('habilitaCampos', habilitaCampos);
engine.setGlobalVariable('fncLimpaCampos', fncLimpaCampos);
engine.setGlobalVariable('telaInicial', telaInicial);
engine.setGlobalVariable('deletarRegistro', deletarRegistro);
engine.setGlobalVariable('validarDuplicidade', validarDuplicidade);
engine.setGlobalVariable('painelLista',1);
habilitaCampos(false);
engine.getWidgetController('btnSalvar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.APLICAR));
engine.getWidgetController('btnNovo').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.CRIAR));
engine.getWidgetController('btnExcluir').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.REMOVER));
engine.getWidgetController('btnVoltar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.VOLTAR));
//engine.getFieldLocked('idAjuda', false); // pode ser erro no componente, aberto caso Eduardo = 20108
telaInicial();
}
]]>
</initScript>
<components>
<VerticalLayout spacing="false" margin="false" height="100%" width="100%" align="TOP_LEFT" >
<Panel width="100%" caption="" height="100%" expandRatio="1" margin="false" id="pnlTitulo" align="TOP_LEFT" >
<VerticalLayout width="100%" expandRatio="1" margin="true">
<Label id="Descricaocadastro" contentMode="HTML" align="MIDDLE_CENTER"> </Label>
<TextField id="idPesquisaLista" caption="Digite aqui para pesquisar:" type="string" width="100%" visible="true" immediate="true">
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run(){
engine.getField('listaPrincipal').refresh();
}
]]>
</script>
</valueChange>
</events>
</TextField>
<DBTable id="listaPrincipal" type="number" visible="true" width="100%" immediate="true" rows="5" selectable="false" multivalue="false" showRowCount="true">
<datasource>
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
<![CDATA[
var getSql = function() {
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "socios" ,
"sequence" : "socio_seq" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "NOME", "PERCENTUAL_PARTICIPACAO" ],
"camposTable" : ["CODIGO", "NOME", "PERCENTUAL_PARTICIPACAO" ]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["NOME","idDescricao","String"],
["PERCENTUAL_PARTICIPACAO","idPercentual","Number"],
] ,
"validacaoExclusao" :
[ ["SELECT 0 AS CONTAR FROM SOCIOS WHERE CODIGO = ", "Existem registros ligados a esta tabela"],
["SELECT COUNT(CHAVE_RESPONSAVEL) AS CONTAR FROM CONTROLE_DESPESAS_PESSOAIS WHERE CHAVE_RESPONSAVEL = ", "Existem registros ligados a esta tabela."]
],
'painel' :
{
'titulo' : 'Cadastro de Sócios',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkQ1ODEzRDEzOTk3RDExRTg5MjM0OTVGQTc2Mjc4OEQ0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkQ1ODEzRDE0OTk3RDExRTg5MjM0OTVGQTc2Mjc4OEQ0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RDU4MTNEMTE5OTdEMTFFODkyMzQ5NUZBNzYyNzg4RDQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RDU4MTNEMTI5OTdEMTFFODkyMzQ5NUZBNzYyNzg4RDQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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'
}
};
var lib = libService.loadScript('lib_cadastro_padrao');
return lib.table(config, 'camposTable');
}
function buildSQL(params) {
var sql = getSql();
if(engine) {
var idPesquisaLista = engine.getField('idPesquisaLista').getValue();
if (idPesquisaLista != null) {
sql = "SELECT * FROM ( " + sql + " ) T WHERE T.NOME LIKE UPPER('%" + idPesquisaLista + "%')";
}
}
return sql;
}
]]>
</sqlBuilderDataSource>
</datasource>
<key-field>CODIGO</key-field>
<columns>
<!-- icone de edição -->
<generated name="Editar" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('editar', function () {
var id = itemId;
engine.getField('idChave').setValue(id);
if (id != null) {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('carregarCampos')(id);
engine.getGlobalVariable('habilitaCampos')(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
}
}, 'pencil');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<!-- icone de exclusão -->
<generated name="Excluir" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('excluir', function () {
var deletar = engine.getGlobalVariable('deletarRegistro');
var registro = item.getItemProperty('CODIGO') + " - " + item.getItemProperty('NOME');
var msg = 'Confirma a exclusão das informações para \n';
msg = msg.concat(registro, "?");
ConfirmationBox.show( 'Confirmar operação'
, msg
, new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
if(deletar){
engine.setGlobalVariable('painelLista',1);
deletar(itemId);
engine.getField('listaPrincipal').refresh();
}
}
}
}
);
}, 'trash');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<column name="CODIGO" caption="Código"/>
<column name="NOME" caption="Descrição"/>
<column name="PERCENTUAL_PARTICIPACAO" caption="% Participação"/>
</columns>
</DBTable>
</VerticalLayout>
</Panel>
<Panel width="100%" height="100%" expandRatio="1" caption="" margin="false" id="pnlInclusao">
<VerticalLayout width="100%" margin="true">
<Label id="DescricaocadastroDentro" contentMode="HTML" align="MIDDLE_CENTER" > </Label>
<TabLayout height="100%" width="100%">
<Tab caption="Dados" >
<VerticalLayout width="70%" margin="true" spacing="true">
<DBSearchField type="number" id="idPesquisa" expandRatio="1" caption="Pesquisar sócio" width="100%" searchCaption="Nome do sócio" searchViewWidth="85%" description="Selecione um fornecedor" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
SELECT * FROM socios
]]>
</freeQuery>
</datasource>
<loadItemQuery>
<![CDATA[
SELECT *
FROM socios
nome = ? ORDER BY codigo
]]>
</loadItemQuery>
<key-field>CODIGO</key-field>
<caption-field>NOME</caption-field>
<columns>
<column name="CODIGO" caption="Código" />
<column name="NOME" caption="Descrição" />
</columns>
<filterProperties filterRequired="false">
<value>CODIGO</value>
<value>NOME</value>
</filterProperties>
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('carregarCampos')(engine.getField('idPesquisa').getValue());
}
]]>
</script>
</valueChange>
</events>
</DBSearchField>
<HorizontalLayout spacing="true" width="100%">
<TextField id="idChave" type="number" caption="Código" width="100%" expandRatio="0.08" />
<TextField id="idDescricao" type="string" text-transform="uppercase" caption="Nome" required="true" width="100%" expandRatio="1" />
<DecimalField type="decimal" id="idPercentual" caption="Percentual" width="100%" expandRatio="0.1" />
</HorizontalLayout>
</VerticalLayout>
</Tab>
</TabLayout>
</VerticalLayout>
</Panel>
<Panel width="100%" margin="false" id="pnlBotoes" >
<VerticalLayout width="100%">
<HorizontalLayout spacing="true" margin="true" align="MIDDLE_CENTER" >
<ButtonWidget id="btnSalvar" caption="Salvar" expandRatio="0.2" description="Salva os dados das Informações Adicionais do Cargo " align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
if (engine.isValid()) {
if ((engine.getGlobalVariable('validarDuplicidade')(engine.getField('idDescricao').getValue())) && (!engine.getField('idChave').getValue())) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe um sócio cadastrado com este nome.');
} else {
var config = engine.getGlobalVariable('config');
var id = engine.getField('idChave').getConvertedValue();
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncGravarRegistro(config, id);
if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')();
}
}
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Novo" id="btnNovo" expandRatio="0.2" description="Descarta os dados atuais e deixa o formulário pronto para receber um novo cadastro" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('novoRegistro')();
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Excluir" id="btnExcluir" expandRatio="0.2" description="Excluir os dados atuais" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.com.vaadin.ui.Notification);
function run() {
if(engine.isValid()) {
var deletar = engine.getGlobalVariable('deletarRegistro');
var listener = new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
var id = engine.getField('idChave').getConvertedValue();
if(deletar){
engine.setGlobalVariable('painelLista',0);
deletar(id);
}
}
}
};
ConfirmationBox.show(ConfirmationBox.DialogIcon.WARNING, 'Confirmar exclusão do registro?', 'Tem certeza de que deseja excluir o tipo de ocorrência selecionado?', listener, ConfirmationBox.ACTION_YES_CANCEL);
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Voltar" id="btnVoltar" expandRatio="0.2" description="Voltar a tela inicial" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',1);
engine.getGlobalVariable('fncLimpaCampos')();
newRecord = false;
saveStatus = false;
engine.getGlobalVariable('telaInicial')();
engine.getField('listaPrincipal').refresh();
}
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
</VerticalLayout>
</Panel>
</VerticalLayout>
</components>
</form>
</panel-form>

+ 470
- 0
03 - Painéis/CADASTRO - Sub_Categoria.xml View File

@ -0,0 +1,470 @@
<?xml version="1.0" encoding="UTF-8"?>
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd">
<form formKey="formCadastroPadrao" height="100%" width="100%">
<name>Sub-categorias</name>
<description>Cadastro de sub-categorias</description>
<afterFormRenderScript language="JavaScript">
<![CDATA[
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "subcategoria" ,
"sequence" : "subcategoria_seq" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "DESCRICAO" ],
"camposTable" : ["CODIGO", "DESCRICAO" ]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["DESCRICAO","idDescricao","String"]
] ,
"validacaoExclusao" : [ ["SELECT 0 AS CONTAR FROM CATEGORIA WHERE CODIGO = ", "Existem registros ligados a esta tabela"],
["SELECT count(chave_subcategoria) AS CONTAR FROM CONTROLE_DESPESAS_OPERACIONAIS WHERE CHAVE_SUBCATEGORIA = ", "Existem registros ligados a esta tabela"]
],
'painel' :
{
'titulo' : 'Cadastro de Sub-Categorias',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFCNEVGRDI1OTk4MDExRTg5RjEzQ0MzRjkwQTUyQ0Y3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFCNEVGRDI2OTk4MDExRTg5RjEzQ0MzRjkwQTUyQ0Y3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MUI0RUZEMjM5OTgwMTFFODlGMTNDQzNGOTBBNTJDRjciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MUI0RUZEMjQ5OTgwMTFFODlGMTNDQzNGOTBBNTJDRjciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCAAeAEQDAREAAhEBAxEB/8QAnwAAAwEBAQEAAAAAAAAAAAAABQYHAAIECAEAAgIDAQAAAAAAAAAAAAAABAYABQECAwcQAAAEBAIHBQUGBwAAAAAAAAECAwQAEQUGEhMhMdIUFRYHQZNUVhdxkdFSlFFhoSIyQsEjM1MkNDURAAECAwIJCwUBAAAAAAAAAAEAAhEDBCESMUFRUpITFAUW8GFxgZGh0eEiFQaxwTKiUyP/2gAMAwEAAhEDEQA/AKpdXUO5GlfeMmiibRBqfKKQyZTmNIAHGIm+acwl2QSyUCEhb2+QVMuocxhDWtMMGHntQn1MvDxqXcp/CN9S1V3E1ZnjRCL2n1DuR5XmrJ2cjxByYUzEImUhy6BHGUSy1S0zjR8oAKy3R8gqZtQ2W8hzXWYIQ57FS137Ju2Fy4XIigXQZRQQIAD9gz7YHa0kwCenva0RcYBeSn3Nb1RVyWNQQXV/tkOGIfYA646PkvbaQVxlVcqYYNcCUOvm43lFohnLAgGXFUqIrGDERPFMREftHRL2xrLaCVX78rplLT32D1RA6OdTn1MvDxqXcp/CCdS1JPE1ZnjRC3qZeHjUu5T+ETUtU4mrM8aITtznVfT7j27l36eXOQ5f9TLzpfL2+2OFwXoJp94m+37Rd9eDmwwvcsa5uKv0QaoqirR0Xyrccs7hYCzmGsoTKYZBCtW/JNTNMtjb12wmMLU4t+PyahomTA0k5Wg2IZxygeXGnuJsQLxa/M/byWeE6XNZoBE7duChhUyJJ0hFgov/ACyuEQLOevCMilGQwVRfJNfNEt7bt7AYxtWHfH5VO0vlhoIwwbCxT7qNXXFVuV0gYw7kxPkoo/tExf1HEO0RH8I9Bo5QawHGUgb1qXTJxafxbYAlgomIcqiZhTVIMyKEGRiiGoQEILVaLDEYVaKLdzdzYrd5UkCuljCLVZuIAJVDlEQmacwkIBMYUd9VbaIF0I22DpT7ueWa6UGuhg9UeZDON0Dy209xNiFfi1+Z+3krXhOkzWaAW43b/ltp7ibETi1+Z+3kpwnSZrNAJs5hpfLPEN3/AMWWTuciyxTwZcv0y/hFx7zL2XaIGGTHGMIea09uOs1FkO6HR0YkoXldfS6n19drU3a4VIshdpsyHUKUwgAhjwlMUDiWWiOFbuilmzC914OOGBVvQSKx0oFgFzFe+3MgnPfR7xdR7lXYgT2Gjyv7fJGbLX5Gdo8Ucsu6umFRryLalulzVMQMLVN4U5AMIAImy8RSlEwFnogui3TSypge2JcMESgq+RWNlEvAuY7v3QTqRaL5CsOKwxRO4pzo2NYyYCYU1f3zANOEZTnDtRVLS26cIXmm9qB7ZhmNEWu7ilCnUqp1NyVtT2qi65hkAAUQKH3mMOgAgx8xrRElVUqS+YYNBJVhMzti17BI3r7gE2baQuVtOMXJzTkmBZmE2IZFlrhV3pLl1QImD0nkF6FuSkmyrsuVa/lHqSWF99Hpf7VR7lXYhc9ho8r+3yTXstfkZ2jxWG/Oj3i6j3KuxE9ho8r+3yU2WvyM7R4qg8UsfkfiO9Jcr5WPepmlLFr+fHj7JTxaIuNikbPqof5Q5HpiqO5UbTCB10cHLFDuUW6gW/ZTi8qsu3upNkso4ML5m4Zu1RSchIFAKomTCYojpjaa1t42pn3dUT2yGgyrwhYQ5oiOspf5Ytfzm0+gf7Ec7gy/VG7VO/i7SZ4ph6e2/ZLe8qW4c3Sm+WTWAWLNuzdpCo4EogQDqKEwlKGkY6SmtvC1A7yqJ7qdwEotELSXNMB1FfRxcOEMMsMtEtUoOSQuUsmQ5WGU/wA2CWv75RkxWBDEkTrMxtl7axUK1UuFG3hMzN2CSi4AuBTYSnTSAxhKYuII4TwC20wVxuWZNbPjLbf9JiIws61DOWLX85tPoH+xAdwZ31TdtU7+LtJnityxa/nNp9A/2IlwZ31U2qd/F2kzxVR4TYHorw/jinCN4/7W7rT37PnPIwY8GZ+WUtXb2wRBurhGxL+uqdvvXPXD8Yj8YZehf//Z'
}
};
function run()
{
engine.setGlobalVariable('config', config);
}
]]>
</afterFormRenderScript>
<initScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.java.util.Calendar);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.com.vaadin.ui.Notification);
var getDataAtual = function() {
var c = java.util.Calendar.getInstance();
c.setTime(new java.util.Date());
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
return c.getTime();
}
var fncLimpaCampos = function(){
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncLimpaCampos(config);
};
var habilitaCampos = function(lHabilita){
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setEnabled(true);
botaoSalvar.setEnabled(lHabilita);
botaoExcluir.setEnabled(lHabilita);
if(engine.getGlobalVariable('painelLista') == 1) {
botaoVoltar.setVisible(false);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
} else {
botaoVoltar.setVisible(true);
botaoSalvar.setVisible(true);
botaoExcluir.setVisible(true);
}
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncHabilitaCampos(config, lHabilita);
engine.getField('idChave').setEnabled(false);
engine.getField('listaPrincipal').refresh();
};
var novoRegistro = function() {
fncLimpaCampos();
habilitaCampos(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getWidgetController('btnVoltar').getButton().setVisible(true);
engine.getField('idChave').focus();
};
var carregarCampos = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var sql = lib.fncCarregarCampos(config, id);
};
var telaInicial = function() {
engine.getLayout('pnlTitulo').getRootComposition().setVisible(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(false);
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setVisible(true);
botaoNovo.setEnabled(true);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
botaoVoltar.setVisible(false);
}
var deletarRegistro = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncDeletarRegistro(config, id);
if (retorno) {
//engine.getField('idChave').setValue(params.get('id'));
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('habilitaCampos')(false);
}
}
var validarDuplicidade = function(valor) {
var sql = "Select count(DESCRICAO) ct from subcategoria where DESCRICAO = '" + valor + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
if (row.ct == 0) {
return false;
} else {
return true
}
}
function run() {
var config = engine.getGlobalVariable('config');
var titulo = config['painel'].titulo;
var icone = config['painel'].icone;
engine.getLabel('Descricaocadastro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.setGlobalVariable('novoRegistro', novoRegistro);
engine.setGlobalVariable('carregarCampos', carregarCampos);
engine.setGlobalVariable('habilitaCampos', habilitaCampos);
engine.setGlobalVariable('fncLimpaCampos', fncLimpaCampos);
engine.setGlobalVariable('telaInicial', telaInicial);
engine.setGlobalVariable('deletarRegistro', deletarRegistro);
engine.setGlobalVariable('validarDuplicidade', validarDuplicidade);
engine.setGlobalVariable('painelLista',1);
habilitaCampos(false);
engine.getWidgetController('btnSalvar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.APLICAR));
engine.getWidgetController('btnNovo').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.CRIAR));
engine.getWidgetController('btnExcluir').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.REMOVER));
engine.getWidgetController('btnVoltar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.VOLTAR));
//engine.getFieldLocked('idAjuda', false); // pode ser erro no componente, aberto caso Eduardo = 20108
telaInicial();
}
]]>
</initScript>
<components>
<VerticalLayout spacing="false" margin="false" height="100%" width="100%" align="TOP_LEFT" >
<Panel width="100%" caption="" height="100%" expandRatio="1" margin="false" id="pnlTitulo" align="TOP_LEFT" >
<VerticalLayout width="100%" expandRatio="1" margin="true">
<Label id="Descricaocadastro" contentMode="HTML" align="MIDDLE_CENTER" > </Label>
<TextField id="idPesquisaLista" caption="Digite aqui para pesquisar:" type="string" width="100%" visible="true" immediate="true">
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run(){
engine.getField('listaPrincipal').refresh();
}
]]>
</script>
</valueChange>
</events>
</TextField>
<DBTable id="listaPrincipal" type="number" visible="true" width="100%" immediate="true" rows="5" selectable="false" multivalue="false" showRowCount="true">
<datasource>
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
<![CDATA[
var getSql = function() {
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "subcategoria" ,
"sequence" : "subcategoria_seq" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "DESCRICAO" ],
"camposTable" : ["CODIGO", "DESCRICAO" ]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["DESCRICAO","idDescricao","String"]
] ,
"validacaoExclusao" :
[ ["SELECT 0 AS CONTAR FROM CATEGORIA WHERE CODIGO = ", "Existem registros ligados a esta tabela"],
["SELECT count(chave_subcategoria) AS CONTAR FROM CONTROLE_DESPESAS_OPERACIONAIS WHERE CHAVE_SUBCATEGORIA = ", "Existem registros ligados a esta tabela."]
],
'painel' :
{
'titulo' : 'Cadastro de Sócios',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFCNEVGRDI1OTk4MDExRTg5RjEzQ0MzRjkwQTUyQ0Y3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFCNEVGRDI2OTk4MDExRTg5RjEzQ0MzRjkwQTUyQ0Y3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MUI0RUZEMjM5OTgwMTFFODlGMTNDQzNGOTBBNTJDRjciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MUI0RUZEMjQ5OTgwMTFFODlGMTNDQzNGOTBBNTJDRjciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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'
}
};
var lib = libService.loadScript('lib_cadastro_padrao');
return lib.table(config, 'camposTable');
}
function buildSQL(params) {
var sql = getSql();
if(engine) {
var idPesquisaLista = engine.getField('idPesquisaLista').getValue();
if (idPesquisaLista != null) {
sql = "SELECT * FROM ( " + sql + " ) T WHERE T.NOME LIKE UPPER('%" + idPesquisaLista + "%')";
}
}
return sql;
}
]]>
</sqlBuilderDataSource>
</datasource>
<key-field>CODIGO</key-field>
<columns>
<!-- icone de edição -->
<generated name="Editar" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('editar', function () {
var id = itemId;
engine.getField('idChave').setValue(id);
if (id != null) {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('carregarCampos')(id);
engine.getGlobalVariable('habilitaCampos')(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
}
}, 'pencil');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<!-- icone de exclusão -->
<generated name="Excluir" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('excluir', function () {
var deletar = engine.getGlobalVariable('deletarRegistro');
var registro = item.getItemProperty('CODIGO') + " - " + item.getItemProperty('DESCRICAO');
var msg = 'Confirma a exclusão das informações para \n';
msg = msg.concat(registro, "?");
ConfirmationBox.show( 'Confirmar operação'
, msg
, new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
if(deletar){
engine.setGlobalVariable('painelLista',1);
deletar(itemId);
engine.getField('listaPrincipal').refresh();
}
}
}
}
);
}, 'trash');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<column name="CODIGO" caption="Código"/>
<column name="DESCRICAO" caption="Descrição"/>
</columns>
</DBTable>
</VerticalLayout>
</Panel>
<Panel width="100%" height="100%" expandRatio="1" caption="" margin="false" id="pnlInclusao">
<VerticalLayout width="100%" margin="true">
<Label id="DescricaocadastroDentro" contentMode="HTML" align="MIDDLE_CENTER"> </Label>
<TabLayout height="100%" width="100%">
<Tab caption="Dados" >
<VerticalLayout width="70%" margin="true" spacing="true">
<DBSearchField type="number" id="idPesquisa" expandRatio="1" caption="Pesquisar sub-categoria" width="100%" searchCaption="Nome da sub-categoria" searchViewWidth="85%" description="Selecione um fornecedor" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
SELECT * FROM subcategoria
]]>
</freeQuery>
</datasource>
<loadItemQuery>
<![CDATA[
SELECT *
FROM subcategoria
descricao = ? ORDER BY codigo
]]>
</loadItemQuery>
<key-field>CODIGO</key-field>
<caption-field>DESCRICAO</caption-field>
<columns>
<column name="CODIGO" caption="Código" />
<column name="DESCRICAO" caption="Descrição" />
</columns>
<filterProperties filterRequired="false">
<value>CODIGO</value>
<value>DESCRICAO</value>
</filterProperties>
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('carregarCampos')(engine.getField('idPesquisa').getValue());
}
]]>
</script>
</valueChange>
</events>
</DBSearchField>
<HorizontalLayout width="100%" spacing="true">
<TextField id="idChave" type="string" caption="Código" width="100%" expandRatio="0.08" />
<TextField id="idDescricao" text-transform="uppercase" type="string" caption="Nome" required="true" width="100%" expandRatio="1" />
</HorizontalLayout>
</VerticalLayout>
</Tab>
</TabLayout>
</VerticalLayout>
</Panel>
<Panel width="100%" margin="false" id="pnlBotoes" >
<VerticalLayout width="100%">
<HorizontalLayout margin="true" spacing="true" align="MIDDLE_CENTER" >
<ButtonWidget id="btnSalvar" caption="Salvar" expandRatio="0.2" description="Salva os dados das Informações Adicionais do Cargo " align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
if (engine.isValid()) {
if (engine.getGlobalVariable('validarDuplicidade')(engine.getField('idDescricao').getValue())) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe uma operação cadastrada com este nome.');
} else {
var config = engine.getGlobalVariable('config');
var id = engine.getField('idChave').getConvertedValue();
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncGravarRegistro(config, id);
if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')();
}
}
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Novo" id="btnNovo" expandRatio="0.2" description="Descarta os dados atuais e deixa o formulário pronto para receber um novo cadastro" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('novoRegistro')();
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Excluir" id="btnExcluir" expandRatio="0.2" description="Excluir os dados atuais" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.com.vaadin.ui.Notification);
function run() {
if(engine.isValid()) {
var deletar = engine.getGlobalVariable('deletarRegistro');
var listener = new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
var id = engine.getField('idChave').getConvertedValue();
if(deletar){
engine.setGlobalVariable('painelLista',0);
deletar(id);
}
}
}
};
ConfirmationBox.show(ConfirmationBox.DialogIcon.WARNING, 'Confirmar exclusão do registro?', 'Tem certeza de que deseja excluir o tipo de ocorrência selecionado?', listener, ConfirmationBox.ACTION_YES_CANCEL);
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Voltar" id="btnVoltar" expandRatio="0.2" description="Voltar a tela inicial" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',1);
engine.getGlobalVariable('fncLimpaCampos')();
newRecord = false;
saveStatus = false;
engine.getGlobalVariable('telaInicial')();
engine.getField('listaPrincipal').refresh();
}
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
</VerticalLayout>
</Panel>
</VerticalLayout>
</components>
</form>
</panel-form>

+ 485
- 0
03 - Painéis/CADASTRO - Veiculos.xml View File

@ -0,0 +1,485 @@
<?xml version="1.0" encoding="UTF-8"?>
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd">
<form formKey="formCadastroPadrao" height="100%" width="100%">
<name>Veículos</name>
<description>Cadastro de Veículos</description>
<afterFormRenderScript language="JavaScript">
<![CDATA[
/*, */
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "VEICULO" ,
"sequence" : "VEICULO_SEQ" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "PLACA", "MODELO", "MARCA", "ANO" ],
"camposTable" : ["CODIGO", "PLACA", "MODELO", "MARCA", "ANO" ]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["PLACA","idPlaca","String"] ,
["MODELO","idModelo","String"] ,
["MARCA","idMarca","String"] ,
["ANO","idAno","Number"]
] ,
"validacaoExclusao" : [ ["SELECT 0 AS CONTAR FROM VEICULO WHERE CODIGO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_VEICULO) AS CONTAR FROM CONTROLE_DESPESAS_OPERACIONAIS WHERE CHAVE_VEICULO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_VEICULO) AS CONTAR FROM CONTROLE_DESPESAS_COMBUSTIVEIS WHERE CHAVE_VEICULO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_VEICULO) AS CONTAR FROM CONTROLE_RECEITAS_FRETES WHERE CHAVE_VEICULO = ", "Existem registros ligados a esta tabela."]
],
'painel' :
{
'titulo' : 'Cadastro de Veículos',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYyMDgwNTJFOTk4MjExRTg4Mzg3ODJENUVCMUZDNDhEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYyMDgwNTJGOTk4MjExRTg4Mzg3ODJENUVCMUZDNDhEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjIwODA1MkM5OTgyMTFFODgzODc4MkQ1RUIxRkM0OEQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjIwODA1MkQ5OTgyMTFFODgzODc4MkQ1RUIxRkM0OEQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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'
}
};
function run()
{
engine.setGlobalVariable('config', config);
}
]]>
</afterFormRenderScript>
<initScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.java.util.Calendar);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.com.vaadin.ui.Notification);
var getDataAtual = function() {
var c = java.util.Calendar.getInstance();
c.setTime(new java.util.Date());
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
return c.getTime();
}
var fncLimpaCampos = function(){
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncLimpaCampos(config);
};
var habilitaCampos = function(lHabilita){
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setEnabled(true);
botaoSalvar.setEnabled(lHabilita);
botaoExcluir.setEnabled(lHabilita);
if(engine.getGlobalVariable('painelLista') == 1) {
botaoVoltar.setVisible(false);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
} else {
botaoVoltar.setVisible(true);
botaoSalvar.setVisible(true);
botaoExcluir.setVisible(true);
}
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncHabilitaCampos(config, lHabilita);
engine.getField('idChave').setEnabled(false);
engine.getField('listaPrincipal').refresh();
};
var novoRegistro = function() {
fncLimpaCampos();
habilitaCampos(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getWidgetController('btnVoltar').getButton().setVisible(true);
engine.getField('idChave').focus();
};
var carregarCampos = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var sql = lib.fncCarregarCampos(config, id);
};
var telaInicial = function() {
engine.getLayout('pnlTitulo').getRootComposition().setVisible(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(false);
var botaoNovo = engine.getWidgetController('btnNovo').getButton();
var botaoSalvar = engine.getWidgetController('btnSalvar').getButton();
var botaoExcluir = engine.getWidgetController('btnExcluir').getButton();
var botaoVoltar = engine.getWidgetController('btnVoltar').getButton();
botaoNovo.setVisible(true);
botaoNovo.setEnabled(true);
botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false);
botaoVoltar.setVisible(false);
}
var deletarRegistro = function(id) {
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncDeletarRegistro(config, id);
if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('habilitaCampos')(false);
}
}
var validarDuplicidade = function(valor) {
var sql = "Select count(placa) ct from veiculo where placa = '" + valor + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
if (row.ct == 0) {
return false;
} else {
return true
}
}
function run() {
var config = engine.getGlobalVariable('config');
var titulo = config['painel'].titulo;
var icone = config['painel'].icone;
engine.getLabel('Descricaocadastro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" >&nbsp;&nbsp;' + titulo + '</font>');
engine.setGlobalVariable('novoRegistro', novoRegistro);
engine.setGlobalVariable('carregarCampos', carregarCampos);
engine.setGlobalVariable('habilitaCampos', habilitaCampos);
engine.setGlobalVariable('fncLimpaCampos', fncLimpaCampos);
engine.setGlobalVariable('telaInicial', telaInicial);
engine.setGlobalVariable('deletarRegistro', deletarRegistro);
engine.setGlobalVariable('validarDuplicidade', validarDuplicidade);
engine.setGlobalVariable('painelLista',1);
habilitaCampos(false);
engine.getWidgetController('btnSalvar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.APLICAR));
engine.getWidgetController('btnNovo').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.CRIAR));
engine.getWidgetController('btnExcluir').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.REMOVER));
engine.getWidgetController('btnVoltar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.VOLTAR));
//engine.getFieldLocked('idAjuda', false); // pode ser erro no componente, aberto caso Eduardo = 20108
telaInicial();
}
]]>
</initScript>
<components>
<VerticalLayout spacing="false" margin="false" height="100%" width="100%" align="TOP_LEFT" >
<Panel width="100%" caption="" height="100%" expandRatio="1" margin="false" id="pnlTitulo" align="TOP_LEFT" >
<VerticalLayout width="100%" expandRatio="1" margin="true">
<Label id="Descricaocadastro" contentMode="HTML" align="MIDDLE_CENTER"> </Label>
<TextField id="idPesquisaLista" caption="Digite aqui para pesquisar:" type="string" width="100%" visible="true" immediate="true">
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run(){
engine.getField('listaPrincipal').refresh();
}
]]>
</script>
</valueChange>
</events>
</TextField>
<DBTable id="listaPrincipal" type="number" visible="true" width="100%" immediate="true" rows="5" selectable="false" multivalue="false" showRowCount="true">
<datasource>
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
<![CDATA[
var getSql = function() {
var config = { "tabela" :
{
"conexao" : "vitruvio",
"nome" : "VEICULO" ,
"sequence" : "VEICULO_SEQ" ,
"idTabela" : "CODIGO",
"campos" : ["CODIGO", "PLACA", "MODELO", "MARCA", "ANO" ],
"camposTable" : ["CODIGO", "PLACA", "MODELO", "MARCA", "ANO" ]
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
["PLACA","idPlaca","String"] ,
["MODELO","idModelo","String"] ,
["MARCA","idMarca","String"] ,
["ANO","idAno","Number"]
] ,
"validacaoExclusao" : [ ["SELECT 0 AS CONTAR FROM VEICULO WHERE CODIGO = ", "Existem registros ligados a esta tabela"],
["SELECT COUNT(CHAVE_VEICULO) AS CONTAR FROM CONTROLE_DESPESAS_OPERACIONAIS WHERE CHAVE_VEICULO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_VEICULO) AS CONTAR FROM CONTROLE_DESPESAS_COMBUSTIVEIS WHERE CHAVE_VEICULO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_VEICULO) AS CONTAR FROM CONTROLE_RECEITAS_FRETES WHERE CHAVE_VEICULO = ", "Existem registros ligados a esta tabela."]
],
'painel' :
{
'titulo' : 'Cadastro de Veículos',
'icone' : 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYyMDgwNTJFOTk4MjExRTg4Mzg3ODJENUVCMUZDNDhEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYyMDgwNTJGOTk4MjExRTg4Mzg3ODJENUVCMUZDNDhEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjIwODA1MkM5OTgyMTFFODgzODc4MkQ1RUIxRkM0OEQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjIwODA1MkQ5OTgyMTFFODgzODc4MkQ1RUIxRkM0OEQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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'
}
};
var lib = libService.loadScript('lib_cadastro_padrao');
return lib.table(config, 'camposTable');
}
function buildSQL(params) {
var sql = getSql();
if(engine) {
var idPesquisaLista = engine.getField('idPesquisaLista').getValue();
if (idPesquisaLista != null) {
sql = "SELECT * FROM ( " + sql + " ) T WHERE T.NOME LIKE UPPER('%" + idPesquisaLista + "%')";
}
}
return sql;
}
]]>
</sqlBuilderDataSource>
</datasource>
<key-field>CODIGO</key-field>
<columns>
<!-- icone de edição -->
<generated name="Editar" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('editar', function () {
var id = itemId;
engine.getField('idChave').setValue(id);
if (id != null) {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('carregarCampos')(id);
engine.getGlobalVariable('habilitaCampos')(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
}
}, 'pencil');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<!-- icone de exclusão -->
<generated name="Excluir" align="CENTER" expand-ratio="0.2">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('excluir', function () {
var deletar = engine.getGlobalVariable('deletarRegistro');
var registro = item.getItemProperty('CODIGO') + " - " + item.getItemProperty('NOME');
var msg = 'Confirma a exclusão das informações para \n';
msg = msg.concat(registro, "?");
ConfirmationBox.show( 'Confirmar operação'
, msg
, new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
if(deletar){
engine.setGlobalVariable('painelLista',1);
deletar(itemId);
engine.getField('listaPrincipal').refresh();
}
}
}
}
);
}, 'trash');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<column name="CODIGO" caption="Código"/>
<column name="PLACA" caption="Placa"/>
<column name="MODELO" caption="Modelo"/>
<column name="ANO" caption="Ano"/>
</columns>
</DBTable>
</VerticalLayout>
</Panel>
<Panel width="100%" height="100%" expandRatio="1" caption="" margin="false" id="pnlInclusao">
<VerticalLayout width="100%" margin="true">
<Label id="DescricaocadastroDentro" contentMode="HTML" align="MIDDLE_CENTER"> </Label>
<TabLayout height="100%" width="100%">
<Tab caption="Dados" >
<VerticalLayout width="100%" margin="true" spacing="true">
<DBSearchField type="number" id="idPesquisa" expandRatio="1" caption="Pesquisar veículo" width="100%" searchCaption="Nome do veículo" searchViewWidth="85%" description="Selecione um fornecedor" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
SELECT * FROM veiculo
]]>
</freeQuery>
</datasource>
<loadItemQuery>
<![CDATA[
SELECT *
FROM veiculo
placa = ? ORDER BY codigo
]]>
</loadItemQuery>
<key-field>CODIGO</key-field>
<caption-field>PLACA</caption-field>
<columns>
<column name="CODIGO" caption="Código" />
<column name="PLACA" caption="Descrição" />
</columns>
<filterProperties filterRequired="false">
<value>CODIGO</value>
<value>PLACA</value>
</filterProperties>
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('carregarCampos')(engine.getField('idPesquisa').getValue());
}
]]>
</script>
</valueChange>
</events>
</DBSearchField>
<HorizontalLayout width="60%" spacing="true">
<TextField type="number" id="idChave" caption="Código" width="100%" expandRatio="0.08" />
<TextField type="string" id="idPlaca" text-transform="uppercase" caption="Placa" required="true" width="100%" expandRatio="1" />
</HorizontalLayout>
<HorizontalLayout width="100%" spacing="true" >
<TextField type="string" id="idModelo" caption="Modelo" required="true" width="100%" expandRatio="0.45" />
<TextField type="string" id="idMarca" caption="Marca" required="true" width="100%" expandRatio="0.45" />
<NumericField type="number" id="idAno" caption="Ano" required="true" width="100%" expandRatio="0.1" maximumValue="2999" />
</HorizontalLayout>
</VerticalLayout>
</Tab>
</TabLayout>
</VerticalLayout>
</Panel>
<Panel width="100%" margin="false" id="pnlBotoes" >
<VerticalLayout width="100%">
<HorizontalLayout margin="true" spacing="true" align="MIDDLE_CENTER" >
<ButtonWidget id="btnSalvar" caption="Salvar" expandRatio="0.2" description="Salva os dados das Informações Adicionais do Cargo " align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
if (engine.isValid()) {
if (engine.getGlobalVariable('validarDuplicidade')(engine.getField('idDescricao').getValue())) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe uma operação cadastrada com este nome.');
} else {
var config = engine.getGlobalVariable('config');
var id = engine.getField('idChave').getConvertedValue();
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncGravarRegistro(config, id);
if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')();
}
}
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Novo" id="btnNovo" expandRatio="0.2" description="Descarta os dados atuais e deixa o formulário pronto para receber um novo cadastro" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('novoRegistro')();
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Excluir" id="btnExcluir" expandRatio="0.2" description="Excluir os dados atuais" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.com.vaadin.ui.Notification);
function run() {
if(engine.isValid()) {
var deletar = engine.getGlobalVariable('deletarRegistro');
var listener = new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
var id = engine.getField('idChave').getConvertedValue();
if(deletar){
engine.setGlobalVariable('painelLista',0);
deletar(id);
}
}
}
};
ConfirmationBox.show(ConfirmationBox.DialogIcon.WARNING, 'Confirmar exclusão do registro?', 'Tem certeza de que deseja excluir o tipo de ocorrência selecionado?', listener, ConfirmationBox.ACTION_YES_CANCEL);
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget caption="Voltar" id="btnVoltar" expandRatio="0.2" description="Voltar a tela inicial" align="MIDDLE_CENTER">
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.setGlobalVariable('painelLista',1);
engine.getGlobalVariable('fncLimpaCampos')();
newRecord = false;
saveStatus = false;
engine.getGlobalVariable('telaInicial')();
engine.getField('listaPrincipal').refresh();
}
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
</VerticalLayout>
</Panel>
</VerticalLayout>
</components>
</form>
</panel-form>

+ 158
- 0
03 - Painéis/INDICADORES - Geral_dia.xml
File diff suppressed because it is too large
View File


+ 173
- 0
03 - Painéis/INDICADORES - Geral_placa.xml
File diff suppressed because it is too large
View File


+ 307
- 0
03 - Painéis/LANÇAMENTO - Créditos.xml View File

@ -0,0 +1,307 @@
<?xml version="1.0" encoding="UTF-8"?>
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd"
>
<form formKey="formCadastro" width="100%" height="100%">
<name>Lançar Valor</name>
<description>Regras Contábeis</description>
<initScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
function fncLimpaCampos(){
engine.getField('dataLancamento')["setValue(java.lang.Object)"](null);
engine.getField('operacao')["setValue(java.lang.Object)"](null);
engine.getField('placa')["setValue(java.lang.Object)"](null);
engine.getField('funcionario')["setValue(java.lang.Object)"](null);
engine.getField('valorFrete')['setValue(java.lang.String)'](null);
engine.getField('valorImposto')['setValue(java.lang.String)'](null);
engine.getField('valorLiquido')['setValue(java.lang.String)'](null);
}
function fncSubTotal() {
var params = {id: 0};
var db = vScriptService.loadScript('db', 'javascript');
var vitruvio = new db('vitruvio');
var sql = "Select replace(replace(replace(to_char(sum(ccf.valor_frete), 'L9G999G990D99'),',','-' ),'.',','),'-','.') total_frete, " +
"replace(replace(replace(to_char(sum(ccf.valor_imposto), 'L9G999G990D99'),',','-' ),'.',','),'-','.') total_imposto, " +
"replace(replace(replace(to_char(sum(ccf.valor_liquido), 'L9G999G990D99'),',','-' ),'.',','),'-','.') total_liquido " +
"from controle_receitas_fretes ccf where ccf.data between '" + engine.getField('dataInicio') + "' and '" + engine.getField('dataFinal') + "'";
vitruvio.query(sql).each(function (r) {
if (r.total_frete) {
engine.getLabel('sub').setValue('<b><font color="blue">Subtotal Frete <br>R' + r.total_frete + '</font></b>');
} else {
engine.getLabel('sub').setValue('<b><font color="blue">Subtotal Frete <br>R$ 0,00</font></b>');
}
if (r.total_imposto) {
engine.getLabel('subImposto').setValue('<b><font color="red">Subtotal Impostos <br>R' + r.total_imposto + '</font></b>');
} else {
engine.getLabel('subImposto').setValue('<b><font color="red">Subtotal Impostos <br>R$ 0,00</font></b>');
}
if (r.total_liquido) {
engine.getLabel('subLiquido').setValue('<b><font color="green">Subtotal (Frete - Impostos) <br>R' + r.total_liquido + '</font></b>');
} else {
engine.getLabel('subLiquido').setValue('<b><font color="green">Subtotal (Frete - Impostos) <br>R$ 0,00</font></b>');
}
});
}
function run() {
engine.getField('valorImposto').setEnabled(false);
engine.getField('valorLiquido').setEnabled(false);
engine.setGlobalVariable('abertura',1);
var d = new java.util.Date();
engine.setGlobalVariable('fncLimpaCampos', fncLimpaCampos);
engine.setGlobalVariable('fncSubTotal', fncSubTotal);
engine.getField('dataInicio').setValue(d);
engine.getField('dataFinal').setValue(d);
engine.getField('tbLancamentos').refresh();
engine.getGlobalVariable('fncSubTotal')();
// Registrando icones
engine.getWidgetController('btnGravar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.SALVAR));
engine.getWidgetController('btnFiltrar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.FILTRAR));
}
]]>
</initScript>
<components>
<VerticalLayout margin="true" width="100%" >
<TabLayout align="BOTTOM_LEFT" id="credito" compact="true" width="100%" height="100%" >
<Tab caption="Fretes">
<VerticalLayout spacing="true" width="100%" height="100%">
<Panel caption=" " width="100%" expandRatio="0.1" align="TOP_LEFT" height="100%">
<VerticalLayout width="100%" margin="true" spacing="true">
<HorizontalLayout width="100%" spacing="true" height="100%">
<ImageWidget id="img1" height="46" width="68" align="TOP_LEFT">
<image>
<base64 extension="jpg">
<![CDATA[
,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVFQTIxQTExOTRFODExRThCQTY5OUIwNzFEMDlCNzIxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVFQTIxQTEyOTRFODExRThCQTY5OUIwNzFEMDlCNzIxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUVBMjFBMEY5NEU4MTFFOEJBNjk5QjA3MUQwOUI3MjEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUVBMjFBMTA5NEU4MTFFOEJBNjk5QjA3MUQwOUI3MjEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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
]]>
</base64>
</image>
</ImageWidget>
<DateField type="date" id="dataLancamento" align="TOP_LEFT" caption="Data" width="100%" expandRatio="0.15" required="true" resolution="DAY" description="Informe a data do lançamento" format="dd/MM/yyyy" >
</DateField>
<DBComboBox type="string" id="operacao" required="true" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Operação">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from operacao
]]>
</freeQuery>
</datasource>
<key-field>CODIGO</key-field>
<caption-field>NOME</caption-field>
</DBComboBox>
<DBComboBox type="string" id="placa" width="100%" required="true" expandRatio="0.2" align="TOP_LEFT" caption="Placa">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from veiculo
]]>
</freeQuery>
</datasource>
<key-field>CODIGO</key-field>
<caption-field>PLACA</caption-field>
</DBComboBox>
<DBComboBox type="string" id="funcionario" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Funcionário">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from funcionario
]]>
</freeQuery>
</datasource>
<key-field>CODIGO</key-field>
<caption-field>NOME</caption-field>
</DBComboBox>
</HorizontalLayout>
<HorizontalLayout width="100%" spacing="true">
<DecimalField type="decimal" id="valorFrete" required="true" immediate="true" caption="Valor frete (R$)" format="#,##0.00" description="Valor frete" width="100%" expandRatio="0.2" >
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
var impostos = engine.getField('valorFrete').getConvertedValue() * 0.075;
var liquido = engine.getField('valorFrete').getConvertedValue() - impostos;
engine.getField('valorImposto').setValue(impostos);
engine.getField('valorLiquido').setValue(liquido);
}
]]>
</script>
</valueChange>
</events>
</DecimalField>
<DecimalField type="decimal" id="valorImposto" caption="Valor impostos (R$)" format="#,##0.00" description="Valor impostos" width="100%" expandRatio="0.2" />
<DecimalField type="decimal" id="valorLiquido" caption="Frete - Impostos (R$)" format="#,##0.00" description="Valor frete menos o valor dos impostos" width="100%" expandRatio="0.2" />
<ButtonWidget id="btnGravar" caption="Gravar" align="BOTTOM_RIGHT" description="Grava o lançamento" width="100" >
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.com.vaadin.ui.Notification);
function run() {
if (engine.isValid()) {
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var sql;
dbVitruvio.transaction(function() {
sql = "insert into controle_receitas_fretes (chave_receita_frete,data,chave_operacao,chave_veiculo,chave_funcionario,valor_frete,valor_imposto,valor_liquido) " +
" values (" + dbVitruvio.getSequenceNextValSql('controle_rec_fr_seq') + ",:data,:chave_operacao,:chave_veiculo,:chave_funcionario,:valor_frete,:valor_imposto,:valor_liquido)";
this.update(sql, {
data: engine.getField('dataLancamento').getValue(),
chave_operacao: Number(engine.getField('operacao').getValue()),
chave_veiculo: Number(engine.getField('placa').getValue()),
chave_funcionario: Number(engine.getField('funcionario').getValue()),
valor_frete: engine.getField('valorFrete').getConvertedValue(),
valor_imposto: engine.getField('valorImposto').getConvertedValue(),
valor_liquido: engine.getField('valorLiquido').getConvertedValue()
});
});
engine.getField('tbLancamentos').refresh();
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('fncSubTotal')();
Notification.show(null, 'Dados salvos', Notification.Type.TRAY_NOTIFICATION);
}
}
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
</VerticalLayout>
</Panel>
<Panel width="100%" margin="true" >
<VerticalLayout width="100%" spacing="true" align="TOP_LEFT" >
<HorizontalLayout width="70%" spacing="true" align="TOP_LEFT">
<DateField type="date" id="dataInicio" caption="Data inicial" align="TOP_LEFT" width="100%" expandRatio="0.5" description="Data iniacial da exibição" format="dd/MM/yyyy" />
<DateField type="date" id="dataFinal" caption="Data final" align="TOP_LEFT" width="100%" expandRatio="0.5" description="Data final da exibição" format="dd/MM/yyyy" />
<ButtonWidget id="btnFiltrar" caption="Filtrar" align="BOTTOM_RIGHT" description="Aplica filtro de data" width="100" >
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.getField('tbLancamentos').refresh();
engine.getGlobalVariable('fncSubTotal')();
}
]]>
</onClickScript>
</ButtonWidget>
<Label id="sub" align="BOTTOM_RIGHT" width="100%" expandRatio="1" contentMode="HTML">
<value>
</value>
</Label>
<Label id="subImposto" align="BOTTOM_RIGHT" width="100%" expandRatio="1" contentMode="HTML">
<value>
</value>
</Label>
<Label id="subLiquido" align="BOTTOM_RIGHT" width="100%" expandRatio="1" contentMode="HTML">
<value>
</value>
</Label>
</HorizontalLayout>
<DBTable id="tbLancamentos" type="number" showRowCount="true" width="100%" rows="6" selectable="false" exportXLS="true" editable="false" >
<datasource>
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
<![CDATA[
function buildSQL(params) {
var sql = "Select ccf.chave_receita_frete, ccf.data, " +
" (select co.nome from operacao co where co.codigo = ccf.chave_operacao) operacao," +
" (select cv.placa from veiculo cv where cv.codigo = ccf.chave_veiculo) veiculo," +
" (select cf.nome from funcionario cf where cf.codigo = ccf.chave_funcionario) funcionario," +
" 'R' || replace(replace(replace(to_char(ccf.valor_frete, 'L9G999G990D99'),',','-' ),'.',','),'-','.') valor_frete, " +
" 'R' || replace(replace(replace(to_char(ccf.valor_imposto, 'L9G999G990D99'),',','-' ),'.',','),'-','.') valor_imposto, " +
" 'R' || replace(replace(replace(to_char(ccf.valor_liquido, 'L9G999G990D99'),',','-' ),'.',','),'-','.') valor_liquido " +
" from controle_receitas_fretes ccf" +
" where 1 = 2";
if (engine) {
sql = "Select ccf.chave_receita_frete, ccf.data, " +
" (select co.nome from operacao co where co.codigo = ccf.chave_operacao) operacao," +
" (select cv.placa from veiculo cv where cv.codigo = ccf.chave_veiculo) veiculo," +
" (select cf.nome from funcionario cf where cf.codigo = ccf.chave_funcionario) funcionario," +
" 'R' || replace(replace(replace(to_char(ccf.valor_frete, 'L9G999G990D99'),',','-' ),'.',','),'-','.') valor_frete, " +
" 'R' || replace(replace(replace(to_char(ccf.valor_imposto, 'L9G999G990D99'),',','-' ),'.',','),'-','.') valor_imposto, " +
" 'R' || replace(replace(replace(to_char(ccf.valor_liquido, 'L9G999G990D99'),',','-' ),'.',','),'-','.') valor_liquido " +
" from controle_receitas_fretes ccf" +
" where ccf.data between '" + engine.getField('dataInicio') + "' and '" + engine.getField('dataFinal') + "' order by data desc";
}
return sql;
}
]]>
</sqlBuilderDataSource>
</datasource>
<key-field>chave_receita_frete</key-field>
<columns>
<column name="DATA" caption="Data" format="dd/MM/yyyy" />
<column name="OPERACAO" caption="Operação" />
<column name="VEICULO" caption="Veículo" />
<column name="FUNCIONARIO" caption="Funcionário" />
<column name="VALOR_FRETE" caption="Valor frete" format="#.##0,00"/>
<column name="VALOR_IMPOSTO" caption="Valor impostos" format="#.##0,00"/>
<column name="VALOR_LIQUIDO" caption="Frete - Impostos" format="#.##0,00"/>
<generated name="EXCLUIR" caption="Excluir">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.vitruvio.spi.is.DatabaseSnippet);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('excluir', function () {
var deletar = function(idRegistro) {
var sql = 'delete from controle_receitas_fretes where chave_receita_frete = :id';
vQueryService.doInTransaction('vitruvio', new DatabaseSnippet() {
execute: function(db, transaction) {
var params = new java.util.HashMap();
params.put('id', idRegistro);
db.update(sql, params);
}
});
engine.getField('tbLancamentos').refresh();
engine.getGlobalVariable('fncSubTotal')();
}
var msg = 'Confirma a exclusão?'
ConfirmationBox.show( 'Confirmar operação'
, msg
, new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
if(deletar){
deletar(itemId);
}
}
}
}
);
}, 'trash');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
</columns>
</DBTable>
</VerticalLayout>
</Panel>
</VerticalLayout>
</Tab>
</TabLayout>
</VerticalLayout>
</components>
</form>
</panel-form>

+ 1143
- 0
03 - Painéis/LANÇAMENTO - Despesas.xml
File diff suppressed because it is too large
View File


+ 0
- 0
04 - Relatórios/.davinTI.txt View File


+ 0
- 0
05 - Manual/.davinTI.txt View File


BIN
06 - Videos/Lançamento.mp4 View File


+ 192
- 0
06 - Videos/Lançamento.wlmp View File

@ -0,0 +1,192 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="Lançamento" themeId="1" version="65540" templateID="SimpleProjectTemplate">
<MediaItems>
<MediaItem id="1" filePath="C:\Users\Ceará\Downloads\y2mate.com - no_copyright_music_chill_sax_esteban_orlando_80r6vWF5e44.mp3" arWidth="0" arHeight="0" duration="176.40481249999999" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="3" />
<MediaItem id="2" filePath="C:\Users\Ceará\Videos\videorec_tmp.mp4" arWidth="1328" arHeight="720" duration="99.252980699999995" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="1" />
<MediaItem id="5" filePath="C:\Users\Ceará\Downloads\Abertura.jpg" arWidth="1920" arHeight="1080" duration="0" songTitle="" songArtist="" songAlbum="" songCopyrightUrl="" songArtistUrl="" songAudioFileUrl="" stabilizationMode="0" mediaItemType="2" />
</MediaItems>
<Extents>
<TitleClip extentID="19" gapBefore="0" duration="7">
<Effects />
<Transitions>
<ShaderEffect effectTemplateID="CrossfadeTransitionTemplate" duration="1.5">
<BoundProperties />
</ShaderEffect>
</Transitions>
<BoundProperties>
<BoundPropertyFloatSet Name="diffuseColor">
<BoundPropertyFloatElement Value="0" />
<BoundPropertyFloatElement Value="0" />
<BoundPropertyFloatElement Value="0" />
</BoundPropertyFloatSet>
<BoundPropertyFloat Name="transparency" Value="0" />
</BoundProperties>
</TitleClip>
<TitleClip extentID="20" gapBefore="4.1666666666666679" duration="5.6666666666666679">
<Effects>
<TextEffect effectTemplateID="TextEffectContemporaryFade1Template" TextScriptId="19">
<BoundProperties>
<BoundPropertyBool Name="automatic" Value="false" />
<BoundPropertyFloatSet Name="color">
<BoundPropertyFloatElement Value="1" />
<BoundPropertyFloatElement Value="1" />
<BoundPropertyFloatElement Value="1" />
</BoundPropertyFloatSet>
<BoundPropertyStringSet Name="family">
<BoundPropertyStringElement Value="Segoe UI" />
</BoundPropertyStringSet>
<BoundPropertyBool Name="horizontal" Value="true" />
<BoundPropertyStringSet Name="justify">
<BoundPropertyStringElement Value="MIDDLE" />
</BoundPropertyStringSet>
<BoundPropertyBool Name="leftToRight" Value="true" />
<BoundPropertyFloatSet Name="length" />
<BoundPropertyFloat Name="maxExtent" Value="0" />
<BoundPropertyFloatSet Name="outlineColor">
<BoundPropertyFloatElement Value="0.64705884456634521" />
<BoundPropertyFloatElement Value="0.64705884456634521" />
<BoundPropertyFloatElement Value="0.64705884456634521" />
</BoundPropertyFloatSet>
<BoundPropertyInt Name="outlineSizeIndex" Value="0" />
<BoundPropertyFloatSet Name="position">
<BoundPropertyFloatElement Value="0" />
<BoundPropertyFloatElement Value="-1.1860466003417969" />
<BoundPropertyFloatElement Value="0.02500000037252903" />
</BoundPropertyFloatSet>
<BoundPropertyFloat Name="size" Value="0.43333333730697632" />
<BoundPropertyStringSet Name="string">
<BoundPropertyStringElement Value="Lançamentos" />
<BoundPropertyStringElement Value="Despesas" />
</BoundPropertyStringSet>
<BoundPropertyString Name="style" Value="Plain" />
<BoundPropertyFloat Name="transparency" Value="0" />
</BoundProperties>
</TextEffect>
</Effects>
<Transitions />
<BoundProperties>
<BoundPropertyFloatSet Name="diffuseColor">
<BoundPropertyFloatElement Value="0.75" />
<BoundPropertyFloatElement Value="1" />
<BoundPropertyFloatElement Value="0" />
</BoundPropertyFloatSet>
<BoundPropertyFloat Name="transparency" Value="1" />
</BoundProperties>
</TitleClip>
<ImageClip extentID="5" gapBefore="0" mediaItemID="5" duration="4">
<Effects>
<PanAndZoomShapeEffect effectTemplateID="PanAndZoomEffectPanBottomToTopAlongMiddleTemplate">
<BoundProperties>
<BoundPropertyInt Name="effectType" Value="4" />
</BoundProperties>
</PanAndZoomShapeEffect>
</Effects>
<Transitions>
<ShapeEffect effectTemplateID="ContemporarySlideDownWide1TransitionTemplate" duration="1.5">
<BoundProperties />
</ShapeEffect>
</Transitions>
<BoundProperties>
<BoundPropertyInt Name="rotateStepNinety" Value="0" />
</BoundProperties>
</ImageClip>
<AudioClip extentID="6" gapBefore="0" mediaItemID="1" inTime="0" outTime="0" speed="1">
<Effects>
<AudioEffect effectTemplateID="AudioFadeEffectTemplate">
<BoundProperties>
<BoundPropertyFloat Name="AudioFadeInDuration" Value="2.5" />
<BoundPropertyFloat Name="AudioFadeOutDuration" Value="0" />
</BoundProperties>
</AudioEffect>
</Effects>
<Transitions />
<BoundProperties>
<BoundPropertyBool Name="Mute" Value="false" />
<BoundPropertyFloat Name="Volume" Value="0.11764706671237946" />
</BoundProperties>
</AudioClip>
<ImageClip extentID="7" gapBefore="0" mediaItemID="5" duration="7">
<Effects>
<PanAndZoomShapeEffect effectTemplateID="PanAndZoomEffectPanBottomToTopAlongMiddleTemplate">
<BoundProperties>
<BoundPropertyInt Name="effectType" Value="4" />
</BoundProperties>
</PanAndZoomShapeEffect>
</Effects>
<Transitions>
<ShapeEffect effectTemplateID="ContemporarySlideDownNarrow3TransitionTemplate" duration="1.5">
<BoundProperties />
</ShapeEffect>
</Transitions>
<BoundProperties>
<BoundPropertyInt Name="rotateStepNinety" Value="0" />
</BoundProperties>
</ImageClip>
<VideoClip extentID="9" gapBefore="0" mediaItemID="2" inTime="0" outTime="93.399999999999991" speed="1" stabilizationMode="0">
<Effects />
<Transitions>
<ShapeEffect effectTemplateID="BlurTransitionTemplate" duration="1.5">
<BoundProperties />
</ShapeEffect>
</Transitions>
<BoundProperties>
<BoundPropertyBool Name="Mute" Value="false" />
<BoundPropertyInt Name="rotateStepNinety" Value="0" />
<BoundPropertyFloat Name="Volume" Value="1" />
</BoundProperties>
</VideoClip>
<ExtentSelector extentID="1" gapBefore="0" primaryTrack="true">
<Effects />
<Transitions />
<BoundProperties />
<ExtentRefs>
<ExtentRef id="5" />
<ExtentRef id="19" />
<ExtentRef id="9" />
<ExtentRef id="7" />
</ExtentRefs>
</ExtentSelector>
<ExtentSelector extentID="2" gapBefore="0" primaryTrack="false">
<Effects />
<Transitions />
<BoundProperties />
<ExtentRefs>
<ExtentRef id="6" />
</ExtentRefs>
</ExtentSelector>
<ExtentSelector extentID="3" gapBefore="0" primaryTrack="false">
<Effects />
<Transitions />
<BoundProperties />
<ExtentRefs />
</ExtentSelector>
<ExtentSelector extentID="4" gapBefore="0" primaryTrack="false">
<Effects />
<Transitions />
<BoundProperties />
<ExtentRefs>
<ExtentRef id="20" />
</ExtentRefs>
</ExtentSelector>
</Extents>
<BoundPlaceholders>
<BoundPlaceholder placeholderID="SingleExtentView" extentID="0" />
<BoundPlaceholder placeholderID="Main" extentID="1" />
<BoundPlaceholder placeholderID="SoundTrack" extentID="2" />
<BoundPlaceholder placeholderID="Text" extentID="4" />
<BoundPlaceholder placeholderID="Narration" extentID="3" />
</BoundPlaceholders>
<BoundProperties>
<BoundPropertyFloatSet Name="AspectRatio">
<BoundPropertyFloatElement Value="1.7777776718139648" />
</BoundPropertyFloatSet>
<BoundPropertyFloat Name="DuckedNarrationAndSoundTrackMix" Value="1" />
<BoundPropertyFloat Name="DuckedVideoAndNarrationMix" Value="0" />
<BoundPropertyFloat Name="DuckedVideoAndSoundTrackMix" Value="0.10196079313755035" />
<BoundPropertyFloat Name="SoundTrackMix" Value="0.5" />
</BoundProperties>
<ThemeOperationLog themeID="1">
<MonolithicThemeOperations />
</ThemeOperationLog>
<AudioDuckingProperties emphasisPlaceholderID="Narration" />
</Project>

Loading…
Cancel
Save