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çãomaster
| @ -0,0 +1,6 @@ | |||
| CREATE TABLE public.categoria ( | |||
| codigo NUMERIC(15,0) NOT NULL, | |||
| descricao VARCHAR(50), | |||
| CONSTRAINT categoria_pkey PRIMARY KEY(codigo) | |||
| ) | |||
| WITH (oids = false); | |||
| @ -0,0 +1,12 @@ | |||
| CREATE TABLE public.combustivel ( | |||
| codigo INTEGER NOT NULL, | |||
| descricao VARCHAR(100) NOT NULL, | |||
| CONSTRAINT combustivel_pkey PRIMARY KEY(codigo) | |||
| ) | |||
| WITH (oids = false); | |||
| COMMENT ON COLUMN public.combustivel.codigo | |||
| IS 'Código da tabela'; | |||
| COMMENT ON COLUMN public.combustivel.descricao | |||
| IS 'Descrição do Combustível'; | |||
| @ -0,0 +1,58 @@ | |||
| CREATE TABLE public.controle_despesas_combustiveis ( | |||
| chave_despesa_combustivel INTEGER NOT NULL, | |||
| data DATE NOT NULL, | |||
| chave_veiculo INTEGER, | |||
| chave_operacao INTEGER, | |||
| observacoes VARCHAR(4000), | |||
| chave_combustivel INTEGER, | |||
| litros NUMERIC(15,3), | |||
| valor_litro NUMERIC(15,3), | |||
| km_inicial NUMERIC(20,3), | |||
| km_final NUMERIC(20,3), | |||
| total_combustivel NUMERIC(15,2), | |||
| km_rodado NUMERIC(20,3), | |||
| CONSTRAINT controle_despesas_combustiveis_pkey PRIMARY KEY(chave_despesa_combustivel) | |||
| ) | |||
| WITH (oids = false); | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.chave_despesa_combustivel | |||
| IS 'Código da tabela'; | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.data | |||
| IS 'Data do lançamento'; | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.chave_veiculo | |||
| IS 'Código do veículo'; | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.chave_operacao | |||
| IS 'Código da operação'; | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.observacoes | |||
| IS 'Observação do lançamento'; | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.chave_combustivel | |||
| IS 'Código do combustível'; | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.litros | |||
| IS 'Quantidade de litros lançados.'; | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.valor_litro | |||
| IS 'Valor do litro de combustível'; | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.km_inicial | |||
| IS 'Km inicial do veículo'; | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.km_final | |||
| IS 'Km na chegada do veículo'; | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.total_combustivel | |||
| IS 'Valor total do Combustível'; | |||
| COMMENT ON COLUMN public.controle_despesas_combustiveis.km_rodado | |||
| IS 'Total de km rodada'; | |||
| CREATE INDEX controle_despesas_combustiveis_idx1 ON public.controle_despesas_combustiveis | |||
| USING btree (data); | |||
| CREATE INDEX controle_despesas_combustiveis_idx2 ON public.controle_despesas_combustiveis | |||
| USING btree (chave_veiculo, data); | |||
| @ -0,0 +1,61 @@ | |||
| CREATE TABLE public.controle_despesas_operacionais ( | |||
| chave_despesa_operacional INTEGER NOT NULL, | |||
| data DATE NOT NULL, | |||
| chave_operacao INTEGER, | |||
| chave_categoria INTEGER, | |||
| chave_subcategoria INTEGER, | |||
| numero_documento INTEGER, | |||
| chave_forma_pagamento INTEGER, | |||
| chave_veiculo INTEGER, | |||
| chave_funcionario INTEGER, | |||
| chave_fornecedor INTEGER, | |||
| observacoes VARCHAR(4000), | |||
| valor NUMERIC(15,2), | |||
| CONSTRAINT controle_despesas_operacionais_pkey PRIMARY KEY(chave_despesa_operacional) | |||
| ) | |||
| WITH (oids = false); | |||
| ALTER TABLE public.controle_despesas_operacionais | |||
| ALTER COLUMN chave_categoria SET STATISTICS 0; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.chave_despesa_operacional | |||
| IS 'Chave da tabela'; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.data | |||
| IS 'Data do lançamento'; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.chave_operacao | |||
| IS 'Código da operação'; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.chave_categoria | |||
| IS 'Código da categoria'; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.chave_subcategoria | |||
| IS 'Código da subcategoria'; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.numero_documento | |||
| IS 'Número do documento de identificação'; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.chave_forma_pagamento | |||
| IS 'Código da forma de pagamento'; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.chave_veiculo | |||
| IS 'Código do veículo'; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.chave_funcionario | |||
| IS 'Código do funcionário'; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.chave_fornecedor | |||
| IS 'Código do fornecedor'; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.observacoes | |||
| IS 'Observações sobre o lançamento'; | |||
| COMMENT ON COLUMN public.controle_despesas_operacionais.valor | |||
| IS 'Valor total do lançamento'; | |||
| CREATE INDEX controle_despesas_operacionais_idx_1 ON public.controle_despesas_operacionais | |||
| USING btree (data); | |||
| CREATE INDEX controle_despesas_operacionais_idx_2 ON public.controle_despesas_operacionais | |||
| USING btree (chave_veiculo, data); | |||
| @ -0,0 +1,34 @@ | |||
| CREATE TABLE public.controle_despesas_pessoais ( | |||
| chave_pessoal INTEGER NOT NULL, | |||
| data DATE NOT NULL, | |||
| chave_categoria INTEGER, | |||
| chave_responsavel INTEGER, | |||
| valor NUMERIC(15,2), | |||
| observacoes VARCHAR(4000), | |||
| CONSTRAINT controle_despesas_pessoais_pkey PRIMARY KEY(chave_pessoal) | |||
| ) | |||
| WITH (oids = false); | |||
| COMMENT ON COLUMN public.controle_despesas_pessoais.chave_pessoal | |||
| IS 'Chave da tabela'; | |||
| COMMENT ON COLUMN public.controle_despesas_pessoais.data | |||
| IS 'Data do lançamento da despesa'; | |||
| COMMENT ON COLUMN public.controle_despesas_pessoais.chave_categoria | |||
| IS 'Código da categoria'; | |||
| COMMENT ON COLUMN public.controle_despesas_pessoais.chave_responsavel | |||
| IS 'Código do responsável'; | |||
| COMMENT ON COLUMN public.controle_despesas_pessoais.valor | |||
| IS 'Valor da despesa'; | |||
| COMMENT ON COLUMN public.controle_despesas_pessoais.observacoes | |||
| IS 'Observações do lançamento'; | |||
| CREATE INDEX controle_despesas_pessoais_idx1 ON public.controle_despesas_pessoais | |||
| USING btree (data); | |||
| CREATE INDEX controle_despesas_pessoais_idx2 ON public.controle_despesas_pessoais | |||
| USING btree (chave_categoria, data); | |||
| @ -0,0 +1,66 @@ | |||
| CREATE TABLE public.controle_receitas_fretes ( | |||
| chave_receita_frete INTEGER NOT NULL, | |||
| data DATE NOT NULL, | |||
| chave_operacao INTEGER NOT NULL, | |||
| chave_veiculo INTEGER NOT NULL, | |||
| chave_funcionario INTEGER, | |||
| valor_frete NUMERIC(15,2), | |||
| valor_imposto NUMERIC(15,2), | |||
| valor_liquido NUMERIC(15,2), | |||
| CONSTRAINT controle_receitas_fretes_pkey PRIMARY KEY(chave_receita_frete) | |||
| ) | |||
| WITH (oids = false); | |||
| ALTER TABLE public.controle_receitas_fretes | |||
| ALTER COLUMN chave_receita_frete SET STATISTICS 0; | |||
| ALTER TABLE public.controle_receitas_fretes | |||
| ALTER COLUMN data SET STATISTICS 0; | |||
| ALTER TABLE public.controle_receitas_fretes | |||
| ALTER COLUMN chave_operacao SET STATISTICS 0; | |||
| ALTER TABLE public.controle_receitas_fretes | |||
| ALTER COLUMN chave_veiculo SET STATISTICS 0; | |||
| ALTER TABLE public.controle_receitas_fretes | |||
| ALTER COLUMN chave_funcionario SET STATISTICS 0; | |||
| ALTER TABLE public.controle_receitas_fretes | |||
| ALTER COLUMN valor_frete SET STATISTICS 0; | |||
| ALTER TABLE public.controle_receitas_fretes | |||
| ALTER COLUMN valor_imposto SET STATISTICS 0; | |||
| ALTER TABLE public.controle_receitas_fretes | |||
| ALTER COLUMN valor_liquido SET STATISTICS 0; | |||
| COMMENT ON COLUMN public.controle_receitas_fretes.chave_receita_frete | |||
| IS 'Código da receita'; | |||
| COMMENT ON COLUMN public.controle_receitas_fretes.data | |||
| IS 'Data do lançamento'; | |||
| COMMENT ON COLUMN public.controle_receitas_fretes.chave_operacao | |||
| IS 'Código da operação'; | |||
| COMMENT ON COLUMN public.controle_receitas_fretes.chave_veiculo | |||
| IS 'Código do veículo'; | |||
| COMMENT ON COLUMN public.controle_receitas_fretes.chave_funcionario | |||
| IS 'Código do funcionário'; | |||
| COMMENT ON COLUMN public.controle_receitas_fretes.valor_frete | |||
| IS 'Valor total do frete'; | |||
| COMMENT ON COLUMN public.controle_receitas_fretes.valor_imposto | |||
| IS 'Valor do imposto (padrão 7,5%)'; | |||
| COMMENT ON COLUMN public.controle_receitas_fretes.valor_liquido | |||
| IS 'Valor líquido (frete - imposto)'; | |||
| CREATE INDEX controle_receitas_fretes_idx1 ON public.controle_receitas_fretes | |||
| USING btree (data); | |||
| CREATE INDEX controle_receitas_fretes_idx2 ON public.controle_receitas_fretes | |||
| USING btree (chave_veiculo, chave_operacao, data); | |||
| @ -0,0 +1,6 @@ | |||
| CREATE TABLE public.forma_pagamento ( | |||
| codigo NUMERIC(15,0) NOT NULL, | |||
| nome VARCHAR(50), | |||
| CONSTRAINT forma_pagamento_pkey PRIMARY KEY(codigo) | |||
| ) | |||
| WITH (oids = false); | |||
| @ -0,0 +1,28 @@ | |||
| CREATE TABLE public.fornecedor ( | |||
| codigo NUMERIC(15,0) NOT NULL, | |||
| nome VARCHAR(50), | |||
| razao_social VARCHAR(50) NOT NULL, | |||
| cnpj VARCHAR(20), | |||
| endereco VARCHAR(70), | |||
| cep VARCHAR(10), | |||
| CONSTRAINT fornecedor_pkey PRIMARY KEY(codigo) | |||
| ) | |||
| WITH (oids = false); | |||
| COMMENT ON COLUMN public.fornecedor.codigo | |||
| IS 'Chave da tabela'; | |||
| COMMENT ON COLUMN public.fornecedor.nome | |||
| IS 'Nome fantasia do fornecedor'; | |||
| COMMENT ON COLUMN public.fornecedor.razao_social | |||
| IS 'Razão social do fornecedor'; | |||
| COMMENT ON COLUMN public.fornecedor.cnpj | |||
| IS 'Cadastro Nacional de Pessoal Jurídica'; | |||
| COMMENT ON COLUMN public.fornecedor.endereco | |||
| IS 'Endereço do fornecedor'; | |||
| COMMENT ON COLUMN public.fornecedor.cep | |||
| IS 'CEP do Fornecedor'; | |||
| @ -0,0 +1,9 @@ | |||
| CREATE TABLE public.funcionario ( | |||
| codigo NUMERIC(15,0) NOT NULL, | |||
| nome VARCHAR(50), | |||
| cnh NUMERIC(15,0), | |||
| vencimento_cnh DATE, | |||
| admissao DATE, | |||
| CONSTRAINT funcionario_pkey PRIMARY KEY(codigo) | |||
| ) | |||
| WITH (oids = false); | |||
| @ -0,0 +1,6 @@ | |||
| CREATE TABLE public.operacao ( | |||
| codigo NUMERIC(15,0) NOT NULL, | |||
| nome VARCHAR(50), | |||
| CONSTRAINT operacao_pkey PRIMARY KEY(codigo) | |||
| ) | |||
| WITH (oids = false); | |||
| @ -0,0 +1,90 @@ | |||
| CREATE SEQUENCE public.categoria_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 999999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.categoria_seq RESTART WITH 15; | |||
| CREATE SEQUENCE public.combustivel_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.combustivel_seq RESTART WITH 10; | |||
| CREATE SEQUENCE public.controle_desp_comb_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 999999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.controle_desp_comb_seq RESTART WITH 6; | |||
| CREATE SEQUENCE public.controle_desp_op_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 99999999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.controle_desp_op_seq RESTART WITH 30; | |||
| CREATE SEQUENCE public.controle_desp_pes_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 99999999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.controle_desp_pes_seq RESTART WITH 7; | |||
| CREATE SEQUENCE public.controle_rec_fr_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 99999999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.controle_rec_fr_seq RESTART WITH 7; | |||
| CREATE SEQUENCE public.forma_pagamento_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 99999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.forma_pagamento_seq RESTART WITH 11; | |||
| CREATE SEQUENCE public.fornecedor_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 999999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.fornecedor_seq RESTART WITH 12; | |||
| CREATE SEQUENCE public.funcionario_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 999999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.funcionario_seq RESTART WITH 9; | |||
| CREATE SEQUENCE public.operacao_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 999999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.operacao_seq RESTART WITH 15; | |||
| CREATE SEQUENCE public.socio_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 99999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.socio_seq RESTART WITH 12; | |||
| CREATE SEQUENCE public.subcategoria_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.subcategoria_seq RESTART WITH 3; | |||
| CREATE SEQUENCE public.veiculo_seq | |||
| INCREMENT 1 MINVALUE 1 | |||
| MAXVALUE 99999999 START 1 | |||
| CACHE 1; | |||
| ALTER SEQUENCE public.veiculo_seq RESTART WITH 6; | |||
| @ -0,0 +1,10 @@ | |||
| CREATE TABLE public.socios ( | |||
| codigo NUMERIC(15,0) NOT NULL, | |||
| nome VARCHAR(50), | |||
| percentual_participacao NUMERIC(15,2), | |||
| CONSTRAINT socios_pkey PRIMARY KEY(codigo) | |||
| ) | |||
| WITH (oids = false); | |||
| COMMENT ON COLUMN public.socios.percentual_participacao | |||
| IS 'Valor percentual da participação do sócio.'; | |||
| @ -0,0 +1,7 @@ | |||
| CREATE TABLE public.subcategoria ( | |||
| codigo NUMERIC(15,0) NOT NULL, | |||
| descricao VARCHAR(50), | |||
| codigo_categoria NUMERIC(15,0), | |||
| CONSTRAINT subcategoria_pkey PRIMARY KEY(codigo) | |||
| ) | |||
| WITH (oids = false); | |||
| @ -0,0 +1,9 @@ | |||
| CREATE TABLE public.veiculo ( | |||
| codigo NUMERIC(15,0) NOT NULL, | |||
| placa VARCHAR(8), | |||
| modelo VARCHAR(30), | |||
| marca VARCHAR(30), | |||
| ano NUMERIC(15,0), | |||
| CONSTRAINT veiculo_pkey PRIMARY KEY(codigo) | |||
| ) | |||
| WITH (oids = false); | |||
| @ -0,0 +1,56 @@ | |||
| CREATE OR REPLACE FUNCTION public.fnc_geraldia_pivot ( | |||
| parinicio date, | |||
| parfinal date | |||
| ) | |||
| RETURNS varchar AS | |||
| $body$ | |||
| DECLARE | |||
| strCategorias TEXT; | |||
| strSQL TEXT; | |||
| strColunas TEXT; | |||
| BEGIN | |||
| BEGIN | |||
| SELECT coalesce(STRING_AGG(distinct '"C_'|| C.DESCRICAO||'" text',','),'') as cat, | |||
| coalesce(STRING_AGG(distinct 'COALESCE("C_'|| C.DESCRICAO|| '",''0,00'') AS "C_'|| C.DESCRICAO||'"',','),'') as COLUNA | |||
| into strCategorias,strColunas | |||
| FROM controle_despesas_operacionais CDO | |||
| ,CATEGORIA C | |||
| WHERE C.CODIGO = CDO.chave_categoria | |||
| AND CDO.DATA BETWEEN parinicio and parfinal; | |||
| EXCEPTION | |||
| WHEN NO_DATA_FOUND THEN | |||
| strCategorias := ''; | |||
| END; | |||
| strSQL := 'SELECT row_number() over() as CHAVE | |||
| ,CDO."DATA" AS DT | |||
| ,(SELECT coalesce(replace(to_char(sum(crf.valor_liquido),''FM999999999.00''),''.'','',''),''0,00'') FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA = CDO."DATA") AS VALOR_FRETE | |||
| ,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA = CDO."DATA") - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.data = CDO."DATA") as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido | |||
| ,'||strColunas||' | |||
| FROM (SELECT CR.* FROM (SELECT * | |||
| FROM crosstab(''SELECT CDO.DATA, CDO.CHAVE_CATEGORIA, coalesce(replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''',''''),''''0,00'''') | |||
| FROM CONTROLE_DESPESAS_OPERACIONAIS CDO | |||
| WHERE CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' group by cdo.data,cdo.chave_categoria ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais WHERE DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1'') | |||
| AS ct("DATA" date, '||strCategorias||')) CR) CDO | |||
| union all | |||
| SELECT CAST(''0'' AS INTEGER) as CHAVE | |||
| ,to_date(''01/01/1900'',''dd/MM/yyyy'') AS DT | |||
| ,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''' ) as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') AS VALOR_FRETE | |||
| ,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.data BETWEEN '''||parinicio||''' and '''||parfinal||''') as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido | |||
| ,'||strColunas||' | |||
| FROM (SELECT CR.* FROM (SELECT * | |||
| FROM crosstab(''SELECT to_date(''''01/01/1900'''',''''dd/MM/yyyy''''), CDO.CHAVE_CATEGORIA, coalesce(replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''',''''),''''0,00'''') | |||
| FROM CONTROLE_DESPESAS_OPERACIONAIS CDO | |||
| WHERE CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' group by cdo.chave_categoria ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais where DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1'') | |||
| AS ct("DATA" date, '|| strCategorias ||')) CR) CDO order by 1'; | |||
| return strSQL; | |||
| END; | |||
| $body$ | |||
| LANGUAGE 'plpgsql' | |||
| VOLATILE | |||
| CALLED ON NULL INPUT | |||
| SECURITY INVOKER | |||
| COST 100; | |||
| @ -0,0 +1,99 @@ | |||
| CREATE OR REPLACE FUNCTION public.fnc_geralplaca_pivot ( | |||
| parinicio date, | |||
| parfinal date, | |||
| parveiculo integer | |||
| ) | |||
| RETURNS varchar AS | |||
| $body$ | |||
| DECLARE | |||
| strCategorias TEXT; | |||
| strSQL TEXT; | |||
| strColunas TEXT; | |||
| BEGIN | |||
| BEGIN | |||
| SELECT coalesce(STRING_AGG(distinct '"C_'|| C.DESCRICAO||'" text',','),'') as cat, | |||
| coalesce(STRING_AGG(distinct 'COALESCE("C_'|| C.DESCRICAO|| '",''0,00'') AS "C_'|| C.DESCRICAO||'"',','),'') as COLUNA | |||
| into strCategorias,strColunas | |||
| FROM controle_despesas_operacionais CDO | |||
| ,CATEGORIA C | |||
| WHERE C.CODIGO = CDO.chave_categoria | |||
| AND CDO.DATA BETWEEN parinicio and parfinal; | |||
| EXCEPTION | |||
| WHEN NO_DATA_FOUND THEN | |||
| strCategorias := ''; | |||
| strColunas := ''; | |||
| END; | |||
| if parveiculo is null then | |||
| strSQL := 'SELECT row_number() over() as CHAVE | |||
| ,(Select v.placa from veiculo v where v.codigo = CDO."chave_veiculo") AS placa | |||
| ,(SELECT coalesce(replace(to_char(sum(crf.valor_liquido),''FM999999999.00''),''.'','',''),''0,00'') FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.chave_veiculo = CDO."chave_veiculo" and crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') AS VALOR_FRETE | |||
| ,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.chave_veiculo = CDO."chave_veiculo" and crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.chave_veiculo = CDO."chave_veiculo" and cd.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido | |||
| ,CDO.CHAVE_VEICULO | |||
| ,'||strColunas||' | |||
| FROM (SELECT CR.* FROM (SELECT * | |||
| FROM crosstab(''SELECT distinct cdo.chave_veiculo, cdo.chave_categoria codigo, cdo.chave_categoria cat, replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''','''') | |||
| FROM controle_despesas_operacionais cdo | |||
| where CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' | |||
| group by cdo.chave_veiculo,cdo.chave_categoria | |||
| ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais where DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1'' | |||
| ) | |||
| AS ct(chave_veiculo integer, cat integer, '||strCategorias||')) CR) CDO | |||
| union all | |||
| SELECT 0 as CHAVE | |||
| ,''Total'' AS placa | |||
| ,(SELECT coalesce(replace(to_char(sum(crf.valor_liquido),''FM999999999.00''),''.'','',''),''0,00'') FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') AS VALOR_FRETE | |||
| ,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido | |||
| ,CDO.CHAVE_VEICULO | |||
| ,'||strColunas||' | |||
| FROM (SELECT CR.* FROM (SELECT * | |||
| FROM crosstab(''SELECT distinct 0, cdo.chave_categoria codigo, cdo.chave_categoria cat, replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''','''') | |||
| FROM controle_despesas_operacionais cdo | |||
| where CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' | |||
| group by cdo.chave_categoria | |||
| ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais where DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1'' | |||
| ) | |||
| AS ct(chave_veiculo integer, cat integer, '||strCategorias||')) CR) CDO ORDER BY 1'; | |||
| ELSE | |||
| strSQL := 'SELECT row_number() over() as CHAVE | |||
| ,(Select v.placa from veiculo v where v.codigo = CDO."chave_veiculo") AS placa | |||
| ,(SELECT coalesce(replace(to_char(sum(crf.valor_liquido),''FM999999999.00''),''.'','',''),''0,00'') FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.chave_veiculo = CDO."chave_veiculo" and crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') AS VALOR_FRETE | |||
| ,coalesce(replace(to_char(cast((SELECT sum(crf.valor_liquido) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.chave_veiculo = CDO."chave_veiculo" and crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.chave_veiculo = CDO."chave_veiculo" and cd.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''') as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido | |||
| ,CDO.CHAVE_VEICULO | |||
| ,'||strColunas||' | |||
| FROM (SELECT CR.* FROM (SELECT * | |||
| FROM crosstab(''SELECT distinct cdo.chave_veiculo, cdo.chave_categoria codigo, cdo.chave_categoria cat, replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''','''') | |||
| FROM controle_despesas_operacionais cdo | |||
| where CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' | |||
| and cdo.chave_veiculo = '||parveiculo||' | |||
| group by cdo.chave_veiculo,cdo.chave_categoria | |||
| ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais where DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1'' | |||
| ) | |||
| AS ct(chave_veiculo integer, cat integer, '||strCategorias||')) CR) CDO | |||
| union all | |||
| SELECT 0 as CHAVE | |||
| ,''Total'' AS placa | |||
| ,(SELECT coalesce(replace(to_char(sum(crf.valor_liquido),''FM999999999.00''),''.'','',''),''0,00'') FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''' and crf.chave_veiculo = '||parveiculo||') AS VALOR_FRETE | |||
| ,coalesce(replace(to_char(cast((SELECT coalesce(sum(crf.valor_liquido),0) FROM CONTROLE_RECEITAS_FRETES crf WHERE crf.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''' and crf.chave_veiculo = '||parveiculo||') - (Select sum(cd.valor) from controle_despesas_operacionais cd where cd.DATA BETWEEN '''||parinicio||''' and '''||parfinal||''' and cd.chave_veiculo = '||parveiculo||') as numeric(15,2)),''FM999999999.00''),''.'','',''),''0,00'') as liquido | |||
| ,CDO.CHAVE_VEICULO | |||
| ,'||strColunas||' | |||
| FROM (SELECT CR.* FROM (SELECT * | |||
| FROM crosstab(''SELECT distinct 0, cdo.chave_categoria codigo, cdo.chave_categoria cat, replace(to_char(sum(cdo.valor),''''FM999999999.00''''),''''.'''','''','''') | |||
| FROM controle_despesas_operacionais cdo | |||
| where CDO.DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' | |||
| and cdo.chave_veiculo = '||parveiculo||' | |||
| group by cdo.chave_categoria | |||
| ORDER BY 1,2'',''select distinct chave_categoria from controle_despesas_operacionais where DATA BETWEEN '''''||parinicio||''''' and '''''||parfinal||''''' order by 1'' | |||
| ) | |||
| AS ct(chave_veiculo integer, cat integer, '||strCategorias||')) CR) CDO ORDER BY 1'; | |||
| end if; | |||
| return strSQL; | |||
| END; | |||
| $body$ | |||
| LANGUAGE 'plpgsql' | |||
| VOLATILE | |||
| CALLED ON NULL INPUT | |||
| SECURITY INVOKER | |||
| COST 100; | |||
| @ -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" > ' + titulo + '</font>'); | |||
| engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" > ' + 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> | |||
| @ -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" > ' + titulo + '</font>'); | |||
| engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" > ' + 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> | |||
| @ -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" > ' + titulo + '</font>'); | |||
| engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" > ' + 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> | |||
| @ -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" > ' + titulo + '</font>'); | |||
| engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" > ' + 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> | |||
| @ -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/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCAA4AEQDAREAAhEBAxEB/8QAnAAAAwADAQEAAAAAAAAAAAAAAAYHAwUIBAEBAAIDAQEBAAAAAAAAAAAAAAAEAwUGBwECEAACAQMDAgQDBAYLAAAAAAABAgMRBAUAEgYhMUFREwdxIjJhUiMUgZGhQmJygpIzgyQ0VBUlFggRAAEDAgUDAQUIAwAAAAAAAAEAAgMRBCExEhMFQWEyIlFxgZEGobHBQmIjMxTR4XL/2gAMAwEAAhEDEQA/AOqdCEaEI0IXivsxY2Lqlw5Vm69AWoPM01W3fLW9u8Me6jipo4HvFWhYs5nbTE4G7zEgMtvbQmYCMirj90Kf4idPbo06hklZpNtpceiQfbz3nHJM7cYbK2UePuVhe5tZY5C8bxxU9RX3BSrKDur2Ir5a+YpdSRs+QExIIomH285lkuX297mVsktOPNO0OEdixuLhImKvcOOiIjMPkUVPeupGmqcil149E36+lMjQhGhCNCF5bjIR27kSxS7B3lVCy/s66r7nkWwuo5rqe2lQvtsZOS0OZtDkZPzGPkjnLDaybwpBHj11k+V44Xk4ngc11RQitCFY2k21g8EJc5zynFcZ49ZYXM2c2Qxl+kltlLi0YFrbd1jIB7kknb1Hb9GtNaPjjjbA5wLqYqn5SQUL3NO2409yjmRl4tx/DX+S49l5s1mcxBJi7GRrZrZLKKegneXd9UzL8ibenjp9sDmx6xlks9G6GOuh2pzsPgmDK8t5NxW6tsZibp7Sy4+kNnDjlC+lJ6KKHEq0qzStXrXx6a1Ftx8RgqRiRmln8jK2bQDQNwp7Vbc7zrjuAWzXLXBhvb4KbbHxo81y5agosUYZj16dtUkdu99dIwC08lwxlNWZW89f/D+tsam3fs2nfSlabe+77NQqZZdC9S3lOXDHZmK2ZYriwmjmX1IXDSxXcEZm9GRRUfiRqdvjUaje4tIqMClpLkNdTp+K0Xtf7oXHMv8AeFu7FLI4xo2WSJzIjRTKzKGJAo67OvnqMTjQXuwAUdldGeuFFvHgxed9c2qG3vIafOQAGBrtLU8DT46zX9a25JhfENDx1yqr4PktyNWLSkzOYlLy0vMTeR7ROrQyofBj9Lf0WowOs7CH282ODmnFWksTLiEtOIcFCsEjLJeWFwoZoZFdlYVHqQvtJp/Mo12DgnNmY5hxa4VXHpmGJ/dpoqjde43E7mZc1lOLpPySABlnElLVpEHySupNflp4qT9urAcfKPS1/wC2rQclC463M/cTv7ZcSvJJpObckHr8iyo3wBx/lrdh8iop+gsv6l6ferXXk4/ij8G/araxtz/LJ5u+wKi06ar1ZJa5XkOQYZkzNpS8xFuP+UxoQesIv3p4HFCWQdSh7jtpiBjH+k4E5Hv3Sd0+SP1txaPIduyid/YY7CJf5ezz9veXN5NDNiY7MsZyUmMpmuAR+GyKaUPfrqzuYXXQbHp0aSKn/Czha2JrnteHEn0/7TP7b5LM3Lz5OYw22OhZoxjrOGO1t555lBlllWMVdgtACT31zP6j53+rPssaHNNQR2Wj4KJ89Xk0aMqe32ql4vH33pM8Krjo5iGagMszDwqX6KPLpp7iLSRsWDRC09M3K4uJWk4nXT5LW8xx/oi2u1Yux/CldqVYjqpNAOvcaV+obXTpkHuKd4qbEt+K5ymjC8zz+z6FnlH9aTWz+lQS0H9K5xzdBcP/AOk3e3HFByPlMUc6bsbYbbq+r9LUP4UR/ncdfsB1o+SuduOg8io+Ktd2Sp8WrpADWWWyRoQvjKGUhhUEUIPUEHQvCua/cbjH/XeR3FpEu2xuR+ZsT4emx+ZP7tunwprWWFxuxY+QwWL5C02ZaDxOIVC9oLaK4wNsKVSOe4kkHmysKV/Zri0llv8ANnXi1mPyWv4eTTZ4dSqnreqZaDm0kUWBknmIEcDrK5Pgq1LH9WqfnGaren6gnLGQMkqcgD9y5dxLyXIvMiylpchcvIqgVY7mO1QPMlqa2X09BtW+o4YfcucXku7MTnUrpX214keN8dSG4UDJXh/MX5HWjsKLHXyjX5fjXSF7c7shPTotbx9rsxAfmOabNKJ5GhCNCEp+5HCxynBGGDamTtCZsfI3Qb6UaNj92QdPsND4absrowyV6dUjf2Ynjp+bokH2QzRtMxf8dvla3um3PHBIKOs0QAmiI89oDfo1U3dg2PkDM3xe1JcRcFoMLsDmrVUabV2o/wD+gOZRQ4qPiVjIHyWRZXvAp/srcGoDeRlbsPugnUEkW65rOtVVcnebbNA8nLL7Te2bWotc1loin5dQcZaOKEH/AFEinsTX5Ae3fvTV1c3QbGIY8hn3SfFcaQd2Ty6BVsarFoUaEI0IRoQgiuhCTOa+2tlyC6jy1jcNieQ29DBkYR9RT6BKopu2+DdwOnbprx9XNp8uyTuLMSHUPS8dUu3dl/6BmjNgl7jY0+hslHRXKnpuAKNtPwTUFJOyXcy7OFW+9e3g3szjsJenM5y5ObzzsZDPLUxRue7KHLM7/wAbn4AamjBZ1xX3b8c1rtbzqcqRTXqsUa9QjQhGhC//2Q==' | |||
| } | |||
| }; | |||
| 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" > ' + titulo + '</font>'); | |||
| engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" > ' + 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> | |||
| @ -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/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(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" > ' + titulo + '</font>'); | |||
| engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" > ' + 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> | |||
| @ -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" > ' + titulo + '</font>'); | |||
| engine.getLabel('DescricaocadastroDentro').setValue('<img align="middle" alt="" src="'+ icone + '" width="68" /><font color="Gray" face="Calibri" size="6" > ' + 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/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCAA+AEQDAREAAhEBAxEB/8QAfwAAAgMAAwEAAAAAAAAAAAAAAAQFBgcBAggDAQEBAAAAAAAAAAAAAAAAAAAAARAAAQMCBAUCAwYCCwAAAAAAAQIDBBEFACESBjEiExQHQRVRcTJhgaFCFghSGMHRYnKisiMzgyQXEQEBAQADAQAAAAAAAAAAAAAAAREhMQJh/9oADAMBAAIRAxEAPwD1TgDAGAMAYAwCl0uke2xTIeS45UhDbTKC44tZ4JSkfH4nIepwCzG47ZInNQmFlyQ6CrSAOVKRVRJ+zhlgJTAGAMAYAwBgIm87hiW5FNSVO/wngAONcBmFx3nOuswQobhmzXyQ001mkA+iR6/3lYDQdmbV9liKflKDt1lAGU6DUJA4NIJ/Kn8TgLJgDABIAqcgOJwCMm+2SKaSbhGYI4hx5tH+YjARrXkDZb85MCPeYsiYsKUlhlwOK0oFVHlrkPjgKdN8uSYm4LnFkR2lWRDSVW2bHXV4vAUWxIQojTXNQWnIYCjiVuzftycjQG1JhuAB9VSllKB6rcpyj8VegxRrHjvbG2bTEf8AbZLVwnsOKjXCWihKHkAamQB9ATUZccQXHAGArF92XLu89ck7hucFlSUpTChuoaaTpGZ+kqJV61OAh3PDO3H5CnJk65y2ykANOzHFDVnqUanOuWWAjJHgrYkdlkOx35FV/wDYe6nOr1A4coPzwFQ3JtXae1ZkqXYJakPPsFpqOtCXllalUPTVy6KjIHM8cXR0sfh7dF7jJnPLTBbWUdJqalRUUqNVuFtJSrIfSFU1fYMQSe3vC28LbfpkWXeZLlnnEvd1GdQhpBQAlCVxiKqUUcqSDROA16wbdtdihdpAaKEmhddWdTjigKBTivU0FPlgJPAGAMB0ebDjZQVKRXLUg6VD5HARFzsUBcdTjjkhTjdVIrIc5lAGicyRn8sBUIltehvGVEt0WPPXzd09R11J/sqdUvT9wwHNwl7+iVdkl5THEuMlCkgHgSEDUB92ATF/nOmqpLhJ+K1f14Bm23ueieWWpSmR0OtUp6gJDmj6SR8RgE9t+Ut2K3qxtzdUCDAYkxVSo8mK+uQpXOEpDiglDbR0nUoHAavUUrXLALzJrEbppcdQ2p1WlsLUBWgqogEiulOeAxi9eUPKsuxG47PsTtwlie9Fkwn4SwGmkKVpUgl1pSqN6CF0ook8KYBzam9/J91ti293bUnR56JASy3Fi6G1MlIo6pa3ikFK6hSa8KEfDBOT0vccRlclmhVIZKmVJSmpQ7QjmqRTSSK4KybZ3he7meld63CJkZlRfjyB3alNOuZKZeBWirKvqPNkoZcVVullvSx7jmztl2piRLmQ9zPqcDfY2h9vvAg5JUGXFFx7myOgVHr6nE3TFWv3mKdGt/uCdk3qNEbacakypqFsMgO6NALiQkt8w+qvyzxItL2XzsyxEft182lNW+zHSGmIznUWqOtNNbxe1FVcs86+uKj0d+qUf+Vfqbtl6faO97Tpq1/7Gvp9PjX0wFe8rbslWuXaFtpecs7vctXQsW/v1MkoBaeUk5hGSkqCc1avswGS7w/cBNehOsWp2K5YZDPYXOVKjvxJKZTmpwJQ0pRKEhhGk50qqo4YnqWzJc+rO+lRhfuB3F2q4ir7NiQoTWmIzAdgtkoRWoK5Tbrqjw0jMnDzLJzdLfmLRs+2+V90WZi9wnbTKE8reW1OXJalcyzzOKaT06rpq4VwkwtN7h8Zee58xi4QoceJNhs6IDluuhS2h0r1LdcQ8EBWpB0kEHFJSmyP29+XUbkj3ncLjMR2ItLkabGkNGW2pKiohJQ2pJSvWa6jl6YnnzPMydQttu1rty8TXm9WqRa7zue7yIExBalRlusKQtB9DVrFQrtP9v8AD2tOdn2bcl4jy32kR3XluR3iWWzqQ3/qMqokH4YDQvZ7t2nQ94kdWlO40ta6/H6NP+HAPSfbNJ6+in5q/wBOAzPfP8uPfMfq/wBoM2iuj3FddK510fb/ABYD67W/lv1p/T/6e6leXT0Ndf8Ak5sBo8P2jSOz6Gn8vS00+7TlgHBT0wBgDAGAMB//2Q==' | |||
| } | |||
| }; | |||
| 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> | |||
| @ -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"> | |||
| <; | |||
| 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> | |||
| @ -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> | |||