quintinoddigital / sistemafinanceiropro

0 stars 0 forks source link

✨ Implementar funcionalidade Gerenciador de Documentos da Pessoa (SISTEMAFINANCEIRO00000000000000) #6

Open quintinoddigital opened 1 year ago

quintinoddigital commented 1 year ago

Tarefa

quintinoddigital commented 1 year ago

Modelagem

drop table if exists tb_tipo_documento cascade; drop table if exists tb_documento cascade;

create table if not exists tb_tipo_documento ( codigo serial not null, descricao varchar(100) not null unique, sigla varchar(50) not null unique, constraint fk_tipo_documento primary key (codigo) );

create table if not exists tb_documento ( codigo serial not null, id_pessoa integer not null, id_tipo_documento integer not null unique, numero varchar(100) not null unique, data_emissao date null, data_vencimento date null, constraint fkdocumento primary key (codigo), constraint fk_pessoa foreign key (id_pessoa) references tb_pessoa (codigo), constraint fk_tipo_documento foreign key (id_tipo_documento) references tb_tipo_documento (codigo) );

select * from tb_tipo_documento; insert into tb_tipo_documento (descricao, sigla) values ('Registro Geral', 'RG'); insert into tb_tipo_documento (descricao, sigla) values ('Cadastro Nacional de Pessoa Física', 'CPF');

-- select * from tb_documento; insert into tb_documento (id_pessoa, id_tipo_documento, numero, data_emissao, data_vencimento) values (1, 1, '24.699-35', null, null); insert into tb_documento (id_pessoa, id_tipo_documento, numero, data_emissao, data_vencimento) values (1, 2, '027.350.251-44', null, null);

select pessoa.nome, tipo_documento.sigla, documento.numero from tb_pessoa pessoa join tb_documento documento on documento.id_pessoa = pessoa.codigo join tb_tipo_documento tipo_documento on tipo_documento.codigo = documento.id_tipo_documento;

/* Regra Negocial: Se o usuário anexar um arquivo (pdf, word, png etc), o sistema deve criar uma estrutura de pasta com o nome da pessoa e dentro dessa pasta criar outra pasta chamada de Documentos e dentro dessa pasta outra pasta com a Sigla do Tipo de Documento. Exemplo:

    <USUARIO>
        Documentos
            RG
                rg.pdf
            CPF
                cpf.pdf
            CNH
                cnh_nova.pdf
                cnh_vencida.pdf

*/

tb_arquivo ( codigo nome tamanho extencao url );

tb_arquivo_documento ( codigo id_arquivo id_documento );