· 6 years ago · Jun 15, 2019, 07:34 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
19CREATE TABLE IF NOT EXISTS m_saldos_bancos (
20 msd_ID INTEGER PRIMARY KEY,
21 msd_CBC_ID INTEGER NOT NULL, -- Código do Banco
22 msd_MEN_ID INTEGER NOT NULL, -- Código do Encerramento
23 msd_Saldo REAL NOT NULL,
24 msd_Status INTEGER NOT NULL,
25 FOREIGN KEY (msd_CBC_ID) REFERENCES c_banco (cbc_ID),
26 FOREIGN KEY (msd_MEN_ID) REFERENCES m_encerramento (men_ID)
27);
28
29CREATE TABLE IF NOT EXISTS m_encerramento (
30 men_ID INTEGER PRIMARY KEY,
31 men_MPV_ID INTEGER NOT NULL,
32 men_Data TEXT(10) NOT NULL, -- Data que o encerramento foi feito
33 men_Ano_Mes TEXT(7) NOT NULL, -- Ano e Mes que o encerramento se refere
34 men_Saldo_Total REAL NOT NULL,
35 men_Quem_ID INTEGER NOT NULL,
36 men_Quando TEXT(10) NOT NULL,
37 men_Verificado INTEGER NOT NULL,
38 men_Quem_Verf_ID INTEGER NOT NULL,
39 men_Quando_Verf TEXT (10) NOT NULL,
40 men_Status INTEGER NOT NULL,
41 FOREIGN KEY (men_Quem_ID) REFERENCES c_associados (cas_ID),
42 FOREIGN KEY (men_Quem_Verf_ID) REFERENCES c_associados (cas_ID),
43 FOREIGN KEY (men_MPV_ID) REFERENCES m_a_vista_prev (mpv_ID)
44);
45
46CREATE VIEW IF NOT EXISTS v_extrato_por_banco_saldo (
47 Cod_Lancamento,
48 Ano_Mes,
49 Data_Reali,
50 Cod_Forma,
51 Cod_Banco,
52 Cod_Descricao,
53 Realizado,
54 Saldo
55)
56AS SELECT
57 Cod_Lancamento,
58 Ano_Mes,
59 Data_Reali,
60 Cod_Forma,
61 Cod_Banco,
62 Cod_Descricao,
63 Realizado,
64 (SELECT
65 sum(t2.Realizado)
66 FROM v_extrato_total AS t2
67 WHERE t2.Data_Reali <= t1.Data_Reali AND t2.Cod_Banco = t1.Cod_Banco
68 )
69 FROM v_extrato_total AS t1
70 WHERE Fin_Contab <> 1
71 ORDER BY Data_Reali, Cod_Banco
72;
73
74CREATE TRIGGER t_saldos_bancos AFTER
75 INSERT ON m_encerramento
76 BEGIN
77 INSERT INTO m_saldos_bancos (
78 msb_ID,
79 msb_CBC_ID,
80 msb_MEN_ID,
81 msb_Data_Saldo,
82 msb_Saldo,
83 msb_Status
84 )
85 VALUES (
86 NULL,
87 (
88 SELECT Cod_Banco
89 FROM v_extrato_total
90 WHERE NEW.men_Ano_Mes = substr(Data_Reali, 1, 7) AND
91 ),
92 NEW.men_ID,
93 (
94 SELECT Data_Reali
95 FROM v_extrato_total
96 WHERE Cod_Banco = (
97 SELECT Cod_Banco
98 FROM v_extrato_total
99 WHERE NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
100 )
101 AND NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
102 AND (
103 SELECT MAX(Data_Reali)
104 FROM v_extrato_por_banco_saldo
105 WHERE NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
106 )
107 = Data_Reali
108 ),
109 (
110 SELECT Saldo
111 FROM v_extrato_por_banco_saldo
112 WHERE Cod_Banco = (
113 SELECT Cod_Banco
114 FROM v_extrato_total
115 WHERE NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
116 )
117 AND NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
118 AND (
119 SELECT MAX(Data_Reali)
120 FROM v_extrato_por_banco_saldo
121 WHERE NEW.men_Ano_Mes = substr(Data_Reali, 1, 7)
122 )
123 = Data_Reali
124 ),
125 1
126 )
127 ;
128END;