feat(funcionario): adicionar tabelas de estado civil, nível de instrução e raça/cor, além de ajustes na tabela de status
This commit is contained in:
@@ -3,31 +3,151 @@
|
|||||||
-- ===============================================================================================================
|
-- ===============================================================================================================
|
||||||
CREATE TABLE IF NOT EXISTS public.funcionario_status (
|
CREATE TABLE IF NOT EXISTS public.funcionario_status (
|
||||||
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
||||||
descricao VARCHAR(255) NOT NULL UNIQUE
|
descricao VARCHAR(255) NOT NULL,
|
||||||
|
observacao TEXT DEFAULT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO public.funcionario_status (id, descricao) VALUES
|
INSERT INTO public.funcionario_status (id, descricao, observacao) VALUES
|
||||||
(1, 'Ativo'),
|
(1, 'Ativo', 'Funcionário ativo'),
|
||||||
(3, 'Inativo');
|
(2, 'Inativo', 'Funcionário inativo recebendo benefício do INSS'),
|
||||||
|
(3, 'Inativo', 'Funcionário aposentado'),
|
||||||
|
(4, 'Inativo', 'Funcionário desligado da empresa');
|
||||||
|
|
||||||
SELECT setval(pg_get_serial_sequence('public.funcionario_status','id'), (SELECT MAX(id) FROM public.funcionario_status));
|
SELECT setval(pg_get_serial_sequence('public.funcionario_status','id'), (SELECT MAX(id) FROM public.funcionario_status));
|
||||||
|
|
||||||
|
-- ===============================================================================================================
|
||||||
|
-- Estado Civil Funcionário
|
||||||
|
-- ===============================================================================================================
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS public.funcionario_estado_civil (
|
||||||
|
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
||||||
|
descricao VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO public.funcionario_estado_civil (id, descricao) VALUES
|
||||||
|
(1, 'Solteiro(a)'),
|
||||||
|
(2, 'Casado(a)'),
|
||||||
|
(3, 'Divorciado(a)'),
|
||||||
|
(4, 'Separado(a)'),
|
||||||
|
(5, 'Viúvo(a)');
|
||||||
|
|
||||||
|
SELECT setval(pg_get_serial_sequence('public.funcionario_estado_civil','id'), (SELECT MAX(id) FROM public.funcionario_estado_civil));
|
||||||
|
|
||||||
|
-- ===============================================================================================================
|
||||||
|
-- Nível de Instrução Funcionário
|
||||||
|
-- ===============================================================================================================
|
||||||
|
CREATE TABLE IF NOT EXISTS public.funcionario_nivel_instrucao (
|
||||||
|
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
||||||
|
codigo_xml VARCHAR(50) NOT NULL,
|
||||||
|
descricao VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO public.funcionario_nivel_instrucao (id, codigo_xml, descricao) VALUES
|
||||||
|
(1, '01', 'Analfabeto, inclusive o que, embora tenha recebido instrução, não se alfabetizou'),
|
||||||
|
(2, '02', 'Até o 5º ano incompleto do ensino fundamental (antiga 4ª série) ou que se tenha alfabetizado sem ter frequentado escola regular'),
|
||||||
|
(3, '03', '5º ano completo do ensino fundamental'),
|
||||||
|
(4, '04', 'Do 6º ao 9º ano do ensino fundamental incompleto (antiga 5ª a 8ª série)'),
|
||||||
|
(5, '05', 'Ensino fundamental completo'),
|
||||||
|
(6, '06', 'Ensino médio incompleto'),
|
||||||
|
(7, '07', 'Ensino médio completo'),
|
||||||
|
(8, '08', 'Educação superior incompleta'),
|
||||||
|
(9, '09', 'Educação superior completa'),
|
||||||
|
(10, '10', 'Pós-graduação completa'),
|
||||||
|
(11, '11', 'Mestrado completo'),
|
||||||
|
(12, '12', 'Doutorado completo');
|
||||||
|
|
||||||
|
SELECT setval(pg_get_serial_sequence('public.funcionario_nivel_instrucao','id'), (SELECT MAX(id) FROM public.funcionario_nivel_instrucao));
|
||||||
|
|
||||||
|
-- ===============================================================================================================
|
||||||
|
-- Raça/Cor Funcionário
|
||||||
|
-- ===============================================================================================================
|
||||||
|
CREATE TABLE IF NOT EXISTS public.funcionario_raca_cor (
|
||||||
|
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
||||||
|
codigo_xml VARCHAR(50) NOT NULL,
|
||||||
|
descricao VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO public.funcionario_raca_cor (id, codigo_xml, descricao) VALUES
|
||||||
|
(1, '1', 'Branca'),
|
||||||
|
(2, '2', 'Preta'),
|
||||||
|
(3, '3', 'Parda'),
|
||||||
|
(4, '4', 'Amarela'),
|
||||||
|
(5, '5', 'Indígena'),
|
||||||
|
(6, '6', 'Não informado');
|
||||||
|
|
||||||
|
SELECT setval(pg_get_serial_sequence('public.funcionario_raca_cor','id'), (SELECT MAX(id) FROM public.funcionario_raca_cor));
|
||||||
|
|
||||||
-- ===============================================================================================================
|
-- ===============================================================================================================
|
||||||
-- Funcionário
|
-- Funcionário
|
||||||
-- ===============================================================================================================
|
-- ===============================================================================================================
|
||||||
CREATE TABLE IF NOT EXISTS public.funcionario (
|
CREATE TABLE IF NOT EXISTS public.funcionario (
|
||||||
|
-- Identificadores
|
||||||
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
||||||
uuid UUID NOT NULL UNIQUE,
|
uuid UUID NOT NULL UNIQUE,
|
||||||
status_id BIGINT NOT NULL REFERENCES public.funcionario_status(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
|
||||||
empresa_id BIGINT NOT NULL REFERENCES public.empresa(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
empresa_id BIGINT NOT NULL REFERENCES public.empresa(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
|
||||||
|
-- Dados Funcionário
|
||||||
|
status_id BIGINT NOT NULL REFERENCES public.funcionario_status(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
nome VARCHAR(255) NOT NULL,
|
nome VARCHAR(255) NOT NULL,
|
||||||
have_nome_social SMALLINT NOT NULL DEFAULT 0,
|
have_nome_social SMALLINT NOT NULL DEFAULT 0,
|
||||||
nome_social VARCHAR(255) DEFAULT NULL,
|
nome_social VARCHAR(255) DEFAULT NULL,
|
||||||
documentCpf VARCHAR(11) NOT NULL,
|
|
||||||
documentPis VARCHAR(11) DEFAULT NULL,
|
-- Documentos
|
||||||
|
document_cpf VARCHAR(11) NOT NULL,
|
||||||
|
document_pis VARCHAR(11) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Nível de Instrução
|
||||||
|
nivel_instrucao_id BIGINT DEFAULT NULL REFERENCES public.funcionario_nivel_instrucao(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
|
||||||
|
-- Estado Civil
|
||||||
|
estado_civil_id BIGINT NOT NULL DEFAULT 1 REFERENCES public.funcionario_estado_civil(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
|
||||||
|
-- Raça/Cor
|
||||||
|
raca_cor_id BIGINT DEFAULT NULL REFERENCES public.funcionario_raca_cor(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
|
||||||
|
-- Data de Nascimento e Óbito
|
||||||
data_nascimento DATE NOT NULL,
|
data_nascimento DATE NOT NULL,
|
||||||
tipo_filiacao_1 VARCHAR(255) DEFAULT NULL,
|
data_obito DATE DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Sexo
|
||||||
|
sexo CHAR(1) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Filiação
|
||||||
filiacao_1 VARCHAR(255) DEFAULT NULL,
|
filiacao_1 VARCHAR(255) DEFAULT NULL,
|
||||||
tipo_filiacao_2 VARCHAR(255) DEFAULT NULL,
|
|
||||||
filiacao_2 VARCHAR(255) DEFAULT NULL,
|
filiacao_2 VARCHAR(255) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Naturalidade
|
||||||
|
naturalidade_pais BIGINT DEFAULT 115 REFERENCES esocial.tab_06(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
naturalidade_uf CHAR(2) DEFAULT NULL REFERENCES esocial.tab_07(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
naturalidade_municipio VARCHAR(255) DEFAULT NULL,
|
||||||
|
naturalidade_municipio_codigo_ibge VARCHAR(7) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Residência
|
||||||
|
endereco_tipo_logradouro BIGINT DEFAULT NULL REFERENCES esocial.tab_20(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
endereco_descricao_logradouro VARCHAR(100) DEFAULT NULL,
|
||||||
|
endereco_numero_logradouro VARCHAR(10) DEFAULT NULL,
|
||||||
|
endereco_complemento_logradouro VARCHAR(30) DEFAULT NULL,
|
||||||
|
endereco_bairro VARCHAR(90) DEFAULT NULL,
|
||||||
|
endereco_cep VARCHAR(8) DEFAULT NULL,
|
||||||
|
endereco_codigo_municipio_ibge VARCHAR(7) DEFAULT NULL,
|
||||||
|
endereco_uf CHAR(2) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Endereço no Exterior
|
||||||
|
endereco_exterior_pais_id BIGINT DEFAULT NULL REFERENCES esocial.tab_06(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
endereco_exterior_descricao_logradouro VARCHAR(100) DEFAULT NULL,
|
||||||
|
endereco_exterior_numero_logradouro VARCHAR(10) DEFAULT NULL,
|
||||||
|
endereco_exterior_complemento_logradouro VARCHAR(30) DEFAULT NULL,
|
||||||
|
endereco_exterior_bairro VARCHAR(90) DEFAULT NULL,
|
||||||
|
endereco_exterior_nome_cidade VARCHAR(50) DEFAULT NULL,
|
||||||
|
endereco_exterior_cep VARCHAR(12) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Contato
|
||||||
|
email VARCHAR(255) DEFAULT NULL,
|
||||||
|
telefone VARCHAR(20) DEFAULT NULL,
|
||||||
|
celular VARCHAR(20) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Controle de Registros
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT NULL,
|
||||||
|
deleted_at TIMESTAMP DEFAULT NULL
|
||||||
);
|
);
|
||||||
Reference in New Issue
Block a user