first commit
This commit is contained in:
180
database/v0/migrations/001_esocial.tabelas.sql
Normal file
180
database/v0/migrations/001_esocial.tabelas.sql
Normal file
@@ -0,0 +1,180 @@
|
||||
-- ===============================================================================================================
|
||||
-- Tabela 01 - Categoria de Trabalhadores
|
||||
-- ===============================================================================================================
|
||||
CREATE TABLE IF NOT EXISTS esocial.tab_01 (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
descricao TEXT NOT NULL,
|
||||
data_inicio DATE NOT NULL,
|
||||
data_fim DATE DEFAULT NULL
|
||||
);
|
||||
|
||||
INSERT INTO esocial.tab_01 (id, descricao, data_inicio, data_fim) VALUES
|
||||
(101, 'Empregado - Geral, inclusive o empregado público da administração direta ou indireta contratado pela CLT', '2014-01-01', NULL),
|
||||
(102, 'Empregado - Trabalhador rural por pequeno prazo da Lei 11.718/2008', '2014-01-01', NULL),
|
||||
(103, 'Empregado - Aprendiz', '2014-01-01', NULL),
|
||||
(104, 'Empregado - Doméstico', '2014-01-01', NULL),
|
||||
(105, 'Empregado - Contrato a termo firmado nos termos da Lei 9.601/1998', '2014-01-01', NULL),
|
||||
(106, 'Trabalhador temporário - Contrato nos termos da Lei 6.019/1974', '2014-01-01', NULL),
|
||||
(107, 'Empregado - Contrato de trabalho Verde e Amarelo - sem acordo para antecipação mensal da multa rescisória do FGTS', '2020-01-01', '2022-12-31'),
|
||||
(108, 'Empregado - Contrato de trabalho Verde e Amarelo - com acordo para antecipação mensal da multa rescisória do FGTS', '2020-01-01', '2022-12-31'),
|
||||
(111, 'Empregado - Contrato de trabalho intermitente', '2014-01-01', NULL),
|
||||
(201, 'Trabalhador avulso portuário', '2014-01-01', NULL),
|
||||
(202, 'Trabalhador avulso não portuário', '2014-01-01', NULL),
|
||||
(301, 'Servidor público titular de cargo efetivo, magistrado, ministro de Tribunal de Contas, conselheiro de Tribunal de Contas e membro do Ministério Público', '2014-01-01', NULL),
|
||||
(302, 'Servidor público ocupante de cargo exclusivo em comissão', '2014-01-01', NULL),
|
||||
(303, 'Exercente de mandato eletivo', '2014-01-01', NULL),
|
||||
(304, 'Servidor público exercente de mandato eletivo, inclusive com exercício de cargo em comissão', '2014-01-01', NULL),
|
||||
(305, 'Servidor público indicado para conselho ou órgão deliberativo, na condição de representante do governo, órgão ou entidade da administração pública', '2014-01-01', NULL),
|
||||
(306, 'Servidor público contratado por tempo determinado, sujeito a regime administrativo especial definido em lei própria', '2014-01-01', NULL),
|
||||
(307, 'Militar dos Estados e Distrito Federal', '2014-01-01', NULL),
|
||||
(308, 'Conscrito', '2014-01-01', '2023-04-25'),
|
||||
(309, 'Agente público - Outros', '2014-01-01', NULL),
|
||||
(310, 'Servidor público eventual', '2014-01-01', NULL),
|
||||
(311, 'Ministros, juízes, procuradores, promotores ou oficiais de justiça à disposição da Justiça Eleitoral', '2014-01-01', NULL),
|
||||
(312, 'Auxiliar local', '2014-01-01', NULL),
|
||||
(313, 'Servidor público exercente de atividade de instrutoria, curso ou concurso, convocado para pareceres técnicos, depoimentos ou aditância no exterior.', '2014-01-01', NULL),
|
||||
(314, 'Militar das Forças Armadas', '2014-01-01', NULL),
|
||||
(401, 'Dirigente sindical - Informação prestada pelo sindicato', '2014-01-01', NULL),
|
||||
(410, 'Trabalhador cedido/exercício em outro órgão/juiz auxiliar - Informação prestada pelo cessionário/destino', '2014-01-01', NULL),
|
||||
(501, 'Dirigente sindical - Segurado especial', '2014-01-01', NULL),
|
||||
(701, 'Contribuinte individual - Autônomo em geral, exceto se enquadrado em uma das demais categorias de contribuinte individual', '2014-01-01', NULL),
|
||||
(711, 'Contribuinte individual - Transportador autônomo de passageiros', '2014-01-01', NULL),
|
||||
(712, 'Contribuinte individual - Transportador autônomo de carga', '2014-01-01', NULL),
|
||||
(721, 'Contribuinte individual - Diretor não empregado, com FGTS', '2014-01-01', NULL),
|
||||
(722, 'Contribuinte individual - Diretor não empregado, sem FGTS', '2014-01-01', NULL),
|
||||
(723, 'Contribuinte individual - Empresário, sócio e membro de conselho de administração ou fiscal', '2014-01-01', NULL),
|
||||
(731, 'Contribuinte individual - Cooperado que presta serviços por intermédio de cooperativa de trabalho', '2014-01-01', NULL),
|
||||
(734, 'Contribuinte individual - Transportador cooperado que presta serviços por intermédio de cooperativa de trabalho', '2014-01-01', NULL),
|
||||
(738, 'Contribuinte individual - Cooperado filiado a cooperativa de produção', '2014-01-01', NULL),
|
||||
(741, 'Contribuinte individual - Microempreendedor individual', '2014-01-01', NULL),
|
||||
(751, 'Contribuinte individual - Magistrado classista temporário da Justiça do Trabalho ou da Justiça Eleitoral que seja aposentado de qualquer regime previdenciário', '2014-01-01', NULL),
|
||||
(761, 'Contribuinte individual - Associado eleito para direção de cooperativa, associação ou entidade de classe de qualquer natureza ou finalidade, bem como o síndico ou administrador eleito para exercer atividade de direção condominial, desde que recebam remuneração', '2014-01-01', NULL),
|
||||
(771, 'Contribuinte individual - Membro de conselho tutelar, nos termos da Lei 8.069/1990', '2014-01-01', NULL),
|
||||
(781, 'Ministro de confissão religiosa ou membro de vida consagrada, de congregação ou de ordem religiosa', '2014-01-01', NULL),
|
||||
(901, 'Estagiário', '2014-01-01', NULL),
|
||||
(902, 'Médico residente, residente em área profissional de saúde ou médico em curso de formação', '2014-01-01', NULL),
|
||||
(903, 'Bolsista', '2014-01-01', NULL),
|
||||
(904, 'Participante de curso de formação, como etapa de concurso público, sem vínculo de emprego/estatutário', '2014-01-01', NULL),
|
||||
(906, 'Beneficiário do Programa Nacional de Prestação de Serviço Civil Voluntário', '2022-01-28', NULL);
|
||||
|
||||
SELECT setval(pg_get_serial_sequence('esocial.tab_01','id'), (SELECT MAX(id) FROM esocial.tab_01));
|
||||
|
||||
-- ===============================================================================================================
|
||||
-- Tabela 02 - Financiamento da Aposentadoria Especial e Redução do Tempo de Contribuição
|
||||
-- ===============================================================================================================
|
||||
CREATE TABLE IF NOT EXISTS esocial.tab_02 (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
descricao TEXT NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO esocial.tab_02 (id, descricao) VALUES
|
||||
(1, 'Não ensejador de aposentadoria especial'),
|
||||
(2, 'Ensejador de aposentadoria especial - FAE15_12% (15 anos de contribuição e alíquota de 12%)'),
|
||||
(3, 'Ensejador de aposentadoria especial - FAE20_09% (20 anos de contribuição e alíquota de 9%)'),
|
||||
(4, 'Ensejador de aposentadoria especial - FAE25_06% (25 anos de contribuição e alíquota de 6%)');
|
||||
|
||||
SELECT setval(pg_get_serial_sequence('esocial.tab_02','id'), (SELECT MAX(id) FROM esocial.tab_02));
|
||||
|
||||
-- ===============================================================================================================
|
||||
-- Tabela 03 - Natureza das Rubricas da Folha de Pagamento
|
||||
-- ===============================================================================================================
|
||||
CREATE TABLE IF NOT EXISTS esocial.tab_03 (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
nome VARCHAR(255) NOT NULL,
|
||||
descricao TEXT DEFAULT NULL,
|
||||
data_inicio DATE NOT NULL,
|
||||
data_fim DATE DEFAULT NULL,
|
||||
incide_cp SMALLINT DEFAULT 0
|
||||
);
|
||||
|
||||
-- ===============================================================================================================
|
||||
-- Tabela 04 - Códigos e Alíquotas de FPAS / Terceiros
|
||||
-- ===============================================================================================================
|
||||
CREATE TABLE IF NOT EXISTS esocial.tab_04_fpas (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
codigo VARCHAR(10) UNIQUE NOT NULL,
|
||||
descricao TEXT NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT NOW(),
|
||||
updated_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS esocial.tab_04_grupo (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
fpas_id BIGINT NOT NULL REFERENCES esocial.tab_04_fpas(id) ON DELETE CASCADE,
|
||||
nome VARCHAR(100) NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT NOW(),
|
||||
updated_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS esocial.tab_04_item (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
grupo_id BIGINT NOT NULL REFERENCES esocial.tab_04_grupo(id) ON DELETE CASCADE,
|
||||
base_calculo VARCHAR(255) DEFAULT NULL,
|
||||
descricao VARCHAR(255) NOT NULL,
|
||||
codigo_terceiro VARCHAR(10) NOT NULL,
|
||||
aliquota DECIMAL(6,2) NOT NULL,
|
||||
is_total BOOLEAN DEFAULT FALSE,
|
||||
created_at TIMESTAMP DEFAULT NOW(),
|
||||
updated_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- FPAS principal
|
||||
INSERT INTO esocial.tab_04_fpas (id, codigo, descricao) VALUES
|
||||
(1, '507', 'Terceiros - Incidência sobre folha de salários'),
|
||||
(2, '508', 'Terceiros - Outros FPAS Exemplo'); -- adicione outros FPAS se necessário
|
||||
|
||||
-- Grupos dentro do FPAS 507
|
||||
INSERT INTO esocial.tab_04_grupo (id, fpas_id, nome) VALUES
|
||||
(1, 1, 'Contribuição Patronal Previdenciária'),
|
||||
(2, 1, 'Segurados em Condições Especiais'),
|
||||
(3, 1, 'Contribuição Terceiros');
|
||||
|
||||
-- Itens do grupo 1 - Contribuição Patronal Previdenciária
|
||||
INSERT INTO esocial.tab_04_item (id, grupo_id, base_calculo, descricao, codigo_terceiro, aliquota, is_total) VALUES
|
||||
(1, 1, 'Salário de Contribuição', 'INSS Patronal', '100', 20.00, FALSE),
|
||||
(2, 1, 'Salário de Contribuição', 'INSS Patronal – RAT', '101', 1.00, FALSE),
|
||||
(3, 1, 'Salário de Contribuição', 'INSS Patronal – Terceiros', '102', 5.80, FALSE),
|
||||
(4, 1, 'Salário de Contribuição', 'INSS Patronal – Total', '999', 26.80, TRUE);
|
||||
|
||||
-- Itens do grupo 2 - Segurados em Condições Especiais
|
||||
INSERT INTO esocial.tab_04_item (id, grupo_id, base_calculo, descricao, codigo_terceiro, aliquota, is_total) VALUES
|
||||
(5, 2, 'Salário de Contribuição', 'INSS Especial - Aposentadoria Especial 15 anos', '200', 12.00, FALSE),
|
||||
(6, 2, 'Salário de Contribuição', 'INSS Especial - Aposentadoria Especial 20 anos', '201', 9.00, FALSE),
|
||||
(7, 2, 'Salário de Contribuição', 'INSS Especial - Aposentadoria Especial 25 anos', '202', 6.00, FALSE);
|
||||
|
||||
-- Itens do grupo 3 - Contribuição Terceiros
|
||||
INSERT INTO esocial.tab_04_item (id, grupo_id, base_calculo, descricao, codigo_terceiro, aliquota, is_total) VALUES
|
||||
(8, 3, 'Salário de Contribuição', 'SESI', '300', 1.50, FALSE),
|
||||
(9, 3, 'Salário de Contribuição', 'SENAI', '301', 1.00, FALSE),
|
||||
(10, 3, 'Salário de Contribuição', 'SESC', '302', 0.50, FALSE),
|
||||
(11, 3, 'Salário de Contribuição', 'TOTAL TERCEIROS', '999', 3.00, TRUE);
|
||||
|
||||
-- Tabelas do FPAS / Terceiros
|
||||
SELECT setval(pg_get_serial_sequence('esocial.tab_04_fpas','id'), (SELECT MAX(id) FROM esocial.tab_04_fpas));
|
||||
SELECT setval(pg_get_serial_sequence('esocial.tab_04_grupo','id'), (SELECT MAX(id) FROM esocial.tab_04_grupo));
|
||||
SELECT setval(pg_get_serial_sequence('esocial.tab_04_item','id'), (SELECT MAX(id) FROM esocial.tab_04_item));
|
||||
|
||||
-- Índices para otimização de consultas
|
||||
CREATE INDEX IF NOT EXISTS idx_tab_04_fpas_codigo ON esocial.tab_04_fpas (codigo);
|
||||
CREATE INDEX IF NOT EXISTS idx_tab_04_grupo_fpas_id ON esocial.tab_04_grupo (fpas_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_tab_04_item_grupo_id ON esocial.tab_04_item (grupo_id);
|
||||
|
||||
-- ===============================================================================================================
|
||||
-- Tabela 05 - Tipos de Inscrição
|
||||
-- ===============================================================================================================
|
||||
CREATE TABLE IF NOT EXISTS esocial.tab_05 (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
descricao VARCHAR(255) NOT NULL
|
||||
);
|
||||
|
||||
-- Inserindo os dados
|
||||
INSERT INTO esocial.tab_05 (id, descricao) VALUES
|
||||
(1, 'CNPJ (Cadastro Nacional da Pessoa Jurídica)'),
|
||||
(2, 'CPF (Cadastro de Pessoas Físicas)'),
|
||||
(3, 'CAEPF (Cadastro de Atividade Econômica de Pessoa Física)'),
|
||||
(4, 'CNO (Cadastro Nacional de Obra)'),
|
||||
(5, 'CGC (Cadastro Geral de Contribuintes)'),
|
||||
(6, 'CEI (Cadastro Específico do INSS)');
|
||||
|
||||
-- Atualizando a sequência depois do insert
|
||||
SELECT setval(pg_get_serial_sequence('esocial.tab_05','id'), (SELECT MAX(id) FROM esocial.tab_05));
|
||||
Reference in New Issue
Block a user