· 6 years ago · Jun 18, 2019, 12:44 PM
1CREATE TABLE IF NOT EXISTS c_banco (
2 cbc_ID INTEGER PRIMARY KEY,
3 cbc_Nome_Banco TEXT(100) NOT NULL,
4 cbc_CAS_ID INTEGER NOT NULL, -- Titular da conta
5 cbc_Conta Text(50),
6 cbc_Agencia TEXT(10),
7 cbc_Complemento TEXT(50),
8 cbc_Quem_ID INTEGER NOT NULL, --quem registrou
9 cbc_Quando TEXT(10) NOT NULL, -- quando registrou
10 cbc_Verificado INTEGER NOT NULL, -- verificado pelo adm
11 cbc_Quem_Verf_ID INTEGER NOT NULL, --quem verificou
12 cbc_Quando_Verf TEXT (10) NOT NULL, -- quando verificou
13 cbc_Status INTEGER NOT NULL, -- (0) inativo (1) ativo
14 FOREIGN KEY (cbc_Quem_ID) REFERENCES c_associados (cas_ID),
15 FOREIGN KEY (cbc_Quem_Verf_ID) REFERENCES c_associados (cas_ID),
16 FOREIGN KEY (cbc_CAS_ID) REFERENCES c_associados (cas_ID)
17);
18
19-- Cadastro dos saldos - Tabela Preenchida pelo Programa
20CREATE TABLE IF NOT EXISTS m_saldos_bancos (
21 msd_ID INTEGER PRIMARY KEY,
22 msd_CBC_ID INTEGER NOT NULL, -- Código do Banco
23 msd_MEN_ID INTEGER NOT NULL, -- Código do Encerramento
24 msd_Saldo REAL NOT NULL,
25 msd_Status INTEGER NOT NULL,
26 FOREIGN KEY (msd_CBC_ID) REFERENCES c_banco (cbc_ID),
27 FOREIGN KEY (msd_MEN_ID) REFERENCES m_encerramento (men_ID)
28);
29
30-- Cadastro dos encerramentos mensais
31CREATE TABLE IF NOT EXISTS m_encerramento (
32 men_ID INTEGER PRIMARY KEY,
33 men_MPV_ID INTEGER NOT NULL,
34 men_Data TEXT(10) NOT NULL, -- Data que o encerramento foi feito
35 men_Ano_Mes TEXT(7) NOT NULL, -- Ano e Mes que o encerramento se refere
36 men_Saldo_Total REAL NOT NULL,
37 men_Quem_ID INTEGER NOT NULL,
38 men_Quando TEXT(10) NOT NULL,
39 men_Verificado INTEGER NOT NULL,
40 men_Quem_Verf_ID INTEGER NOT NULL,
41 men_Quando_Verf TEXT (10) NOT NULL,
42 men_Status INTEGER NOT NULL,
43 FOREIGN KEY (men_Quem_ID) REFERENCES c_associados (cas_ID),
44 FOREIGN KEY (men_Quem_Verf_ID) REFERENCES c_associados (cas_ID),
45 FOREIGN KEY (men_MPV_ID) REFERENCES m_a_vista_prev (mpv_ID)
46);
47
48CREATE VIEW IF NOT EXISTS v_extrato_por_banco_saldo (
49 Cod_Lancamento,
50 Ano_Mes,
51 Data_Reali,
52 Cod_Forma,
53 Cod_Banco,
54 Cod_Descricao,
55 Realizado,
56 Saldo
57)
58AS SELECT
59 Cod_Lancamento,
60 Ano_Mes,
61 Data_Reali,
62 Cod_Forma,
63 Cod_Banco,
64 Cod_Descricao,
65 Realizado,
66 (SELECT
67 sum(t2.Realizado)
68 FROM v_extrato_total AS t2
69 WHERE t2.Data_Reali <= t1.Data_Reali AND t2.Cod_Banco = t1.Cod_Banco
70 )
71 FROM v_extrato_total AS t1
72 WHERE Fin_Contab <> 1
73 ORDER BY Data_Reali, Cod_Banco
74;
75
76CREATE TRIGGER t_saldos_bancos AFTER
77 INSERT ON m_encerramento
78/* WHEN (
79 (
80 SELECT Data_Reali
81 FROM v_extrato_por_banco_saldo
82 INNER JOIN m_saldos_bancos ON msb_MEN_ID
83 WHERE msb_CBC_ID <> (
84 SELECT Cod_Banco
85 FROM v_extrato_por_banco_saldo
86 WHERE substr(Data_Reali, 1, 7) = NEW.men_Ano_Mes
87 )
88 )
89 )
90*/ BEGIN
91 INSERT INTO m_saldos_bancos (
92 msb_ID,
93 msb_CBC_ID,
94 msb_MEN_ID,
95 msb_Data_Saldo,
96 msb_Saldo,
97 msb_Status
98 )
99 VALUES (
100 NULL,
101 (
102 SELECT Cod_Banco
103 FROM v_extrato_total
104 WHERE NEW.men_Ano_Mes = substr(Data_Reali, 1, 7) AND
105 ),
106 NEW.men_ID,
107 (
108 SELECT Data_Reali
109 FROM v_extrato_total
110 WHERE Cod_Banco = (
111 SELECT Cod_Banco
112 FROM v_extrato_total
113 WHERE NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
114 )
115 AND NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
116 AND (
117 SELECT MAX(Data_Reali)
118 FROM v_extrato_por_banco_saldo
119 WHERE NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
120 )
121 = Data_Reali
122 ),
123 (
124 SELECT Saldo
125 FROM v_extrato_por_banco_saldo
126 WHERE Cod_Banco = (
127 SELECT Cod_Banco
128 FROM v_extrato_total
129 WHERE NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
130 )
131 AND NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
132 AND (
133 SELECT MAX(Data_Reali)
134 FROM v_extrato_por_banco_saldo
135 WHERE NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
136 )
137 = Data_Reali
138 ),
139 1
140 )
141 ;
142END;