-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrascunho
48 lines (36 loc) · 1.25 KB
/
rascunho
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Entidades
Institution
institution_id KEY UNIQUE NOTNULL
name TEXT NOTNULL UNIQUE
cnpj TEXT NUMBER UNIQUE
type TEXT "UNIVERSIDADE" or "ESCOLA" or "CRECHE"
Student
student_id KEY UNIQUE NOTNULL
name NOTNULL UNIQUE
cpf INT NOTNULL UNIQUE
birthday DATE
cellphone INT
genre TEXT "M" or "F"
payment_method TEXT NOTNULL "BOLETO" or "CARTÃO"
Enrollment #Matrícula
enrollment_id KEY UNIQUE NOTNULL
course_total_cost DECIMAL NOTNULL 0 >
bill_quantity INT NOTNULL >= 1 #quantidade de faturas
bill_due_day INT NOTNULL >= 1 and <= 31 #dia de vencimento das faturas
course_name TEXT NOTNULL
institution_id FOREIGNKEY NOTNULL
student_id FOREIGNKEY NOTNULL
Bill
bill_id KEY UNIQUE NOTNULL
bill_cost DECIMAL NOTNULL BRL$
bill_due_date DATE NOTNULL
enrollment_id FOREIGNKEY NOTNULL
status TEXT NOTNULL "ABERTA" (default) or "ATRASADA" or "PAGA"
----------------
Lógica do tratamento de datas
Checar se a primeira fatura começa esse mês ou no próximo.
primeira_fatura = dia_de_vencimento <= dia_de_hoje ? dia_de_vencimento + mês_que_vem + ano : dia_de_vencimento + mês_atual + ano
Checar se a data é válida
primeira_fatura.valid_date?
Se sim, fazer as próximas datas a partir dela
Se não, fazer ela rodar num script pra validar a data, e fazer as próximas a partir dela