Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
/*========tur===================================================*/
2
/* DBMS name:     PostgreSQL 8                                  */
3
/* Criado em:     13/06/2016                                        */
4
/* Autor: Bruno Lopes Peixoto                                       */
5
/*==============================================================*/
6
 
7
SET search_path = sc_sec;
8
 
9
CREATE SEQUENCE sq_contaformapag
10
INCREMENT 1
11
minvalue 1
12
maxvalue 99999999
13
START 1;
14
 
15
ALTER TABLE sq_contaformapag owner TO sc_sec;
16
 
17
CREATE SEQUENCE sq_conta
18
INCREMENT 1
19
minvalue 1
20
maxvalue 99999999
21
START 1;
22
 
23
ALTER TABLE sq_conta owner TO sc_sec;
24
 
25
/*==============================================================*/
26
/* Table: sec_conta_forma_pagamento                             */
27
/*==============================================================*/
28
CREATE TABLE sec_conta_forma_pagamento (
29
   seq_conta_forma_pagamento INT8                 NOT NULL DEFAULT NEXTVAL('sc_sec.sq_contaformapag'::regclass),
30
   cod_formapagament    INT8                 NOT NULL,
31
   cod_bandeira_cartao  INT8                 NOT NULL,
32
   val_pagamento        NUMERIC(10,2)        NOT NULL,
33
   CONSTRAINT pk_contaformapag PRIMARY KEY (seq_conta_forma_pagamento)
34
);
35
 
36
-- set table ownership
37
ALTER TABLE sec_conta_forma_pagamento owner TO sc_sec
38
;
39
/*==============================================================*/
40
/* Index: ix_contaformapag                                      */
41
/*==============================================================*/
42
CREATE UNIQUE INDEX ix_contaformapag ON sec_conta_forma_pagamento (
43
seq_conta_forma_pagamento
44
);
45
 
46
/*==============================================================*/
47
/* Index: ix_contaformapag_bandeiracartao                       */
48
/*==============================================================*/
49
CREATE  INDEX ix_contaformapag_bandeiracartao ON sec_conta_forma_pagamento (
50
cod_bandeira_cartao
51
);
52
 
53
/*==============================================================*/
54
/* Index: ix_contaformapag_formapagament                        */
55
/*==============================================================*/
56
CREATE  INDEX ix_contaformapag_formapagament ON sec_conta_forma_pagamento (
57
cod_formapagament
58
);
59
 
60
ALTER TABLE sec_conta_forma_pagamento
61
   ADD CONSTRAINT fk_contaformapag_bandeiracartao FOREIGN KEY (cod_bandeira_cartao)
62
      REFERENCES sec_bandeira_cartao (cod_bandeira_cartao)
63
      ON DELETE RESTRICT ON UPDATE RESTRICT;
64
 
65
ALTER TABLE sec_conta_forma_pagamento
66
   ADD CONSTRAINT fk_contaformapag_formapagment FOREIGN KEY (cod_formapagament)
67
      REFERENCES sec_forma_pagamento (cod_formapagament)
68
      ON DELETE RESTRICT ON UPDATE RESTRICT;
69
 
70
 
71
/*==============================================================*/
72
/* Table: sec_conta                                             */
73
/*==============================================================*/
74
CREATE TABLE sec_conta (
75
   seq_conta            INT8                 NOT NULL DEFAULT NEXTVAL('sc_sec.sq_conta'::regclass),
76
   seq_categoria        INT8                 NULL,
77
   seq_venda            INT8                 NULL,
78
   seq_pessoa           INT8                 NULL,
79
   seq_loja             INT8                 NULL,
80
   seq_conta_forma_pagamento INT8            NULL,
81
   dsc_observacao       VARCHAR(400)         NULL,
82
   tip_frequencia       CHAR(1)              NULL,
83
   tip_conta            CHAR(1)              NOT NULL
84
      CONSTRAINT ck_conta_tipo CHECK (tip_conta IN ('P','R')),
85
   ind_ativo            BOOL                 NOT NULL,
86
   CONSTRAINT pk_conta PRIMARY KEY (seq_conta)
87
);
88
 
89
comment ON COLUMN sec_conta.tip_conta IS
90
'Valores possíveis:
91
P - Conta à Pagar
92
R - Conta à Receber';
93
 
94
-- set table ownership
95
ALTER TABLE sec_conta owner TO sc_sec
96
;
97
/*==============================================================*/
98
/* Index: ix_conta_categoia                                     */
99
/*==============================================================*/
100
CREATE  INDEX ix_conta_categoia ON sec_conta (
101
seq_categoria
102
);
103
 
104
/*==============================================================*/
105
/* Index: ix_conta_pessoa                                       */
106
/*==============================================================*/
107
CREATE  INDEX ix_conta_pessoa ON sec_conta (
108
seq_pessoa
109
);
110
 
111
/*==============================================================*/
112
/* Index: ix_conta_venda                                        */
113
/*==============================================================*/
114
CREATE  INDEX ix_conta_venda ON sec_conta (
115
seq_venda
116
);
117
 
118
/*==============================================================*/
119
/* Index: ix_conta_loja                                         */
120
/*==============================================================*/
121
CREATE  INDEX ix_conta_loja ON sec_conta (
122
seq_loja
123
);
124
 
125
/*==============================================================*/
126
/* Index: ix_conta_contaformapag                                */
127
/*==============================================================*/
128
CREATE  INDEX ix_conta_contaformapag ON sec_conta (
129
seq_conta_forma_pagamento
130
);
131
 
132
ALTER TABLE sec_conta
133
   ADD CONSTRAINT fk_conta_categoria FOREIGN KEY (seq_categoria)
134
      REFERENCES sec_categoria (seq_categoria)
135
      ON DELETE RESTRICT ON UPDATE RESTRICT;
136
 
137
ALTER TABLE sec_conta
138
   ADD CONSTRAINT fk_conta_contaformapag FOREIGN KEY (seq_conta_forma_pagamento)
139
      REFERENCES sec_conta_forma_pagamento (seq_conta_forma_pagamento)
140
      ON DELETE RESTRICT ON UPDATE RESTRICT;
141
 
142
ALTER TABLE sec_conta
143
   ADD CONSTRAINT fk_conta_loja FOREIGN KEY (seq_loja)
144
      REFERENCES sec_loja (seq_loja)
145
      ON DELETE RESTRICT ON UPDATE RESTRICT;
146
 
147
ALTER TABLE sec_conta
148
   ADD CONSTRAINT fk_conta_pessoa FOREIGN KEY (seq_pessoa)
149
      REFERENCES sec_pessoa (seq_pessoa)
150
      ON DELETE RESTRICT ON UPDATE RESTRICT;
151
 
152
ALTER TABLE sec_conta
153
   ADD CONSTRAINT fk_conta_venda FOREIGN KEY (seq_venda)
154
      REFERENCES sec_venda (seq_venda)
155
      ON DELETE RESTRICT ON UPDATE RESTRICT;
156
 
157
 
158
 
159
 
160
ALTER TABLE sec_parcela ADD COLUMN seq_conta int8;
161
 
162
/*==============================================================*/
163
/* Index: ix_parcela_conta                                      */
164
/*==============================================================*/
165
CREATE  INDEX ix_parcela_conta ON sec_parcela (
166
seq_conta
167
);
168
 
169
ALTER TABLE sec_parcela
170
   ADD CONSTRAINT fk_parcela_conta FOREIGN KEY (seq_conta)
171
      REFERENCES sec_conta (seq_conta)
172
      ON DELETE RESTRICT ON UPDATE RESTRICT;
173
 
174
 
175
 
176
-------------Migração-------------------------------
177
ALTER TABLE sc_sec.sec_conta ADD COLUMN seq_conta_a_receber int8;
178
ALTER TABLE sc_sec.sec_conta ADD COLUMN seq_conta_a_pagar int8;
179
 
180
-- ADICIONANDO CONTAS A PAGAR
181
INSERT INTO sc_sec.sec_conta(seq_conta_a_pagar, seq_categoria,  
182
seq_pessoa, dsc_observacao, tip_frequencia, tip_conta, ind_ativo)
183
SELECT DISTINCT(p.seq_conta_a_pagar), pa.seq_categoria, pa.seq_pessoa,
184
pa.dsc_observacao, pa.tip_frequencia, 'P', pa.ind_ativo
185
FROM sc_sec.sec_conta_a_pagar pa
186
LEFT JOIN sc_sec.sec_parcela p ON pa.seq_conta_a_pagar = p.seq_conta_a_pagar
187
ORDER BY p.seq_conta_a_pagar;
188
 
189
-- ADICIONANDO CONTAS A RECEBER
190
INSERT INTO sc_sec.sec_conta(seq_conta_a_receber, seq_categoria, seq_venda,
191
seq_pessoa, dsc_observacao, tip_frequencia, tip_conta, ind_ativo)
192
SELECT DISTINCT(p.seq_conta_a_receber), pr.seq_categoria, pr.seq_venda, pr.seq_pessoa,
193
pr.dsc_observacao, pr.tip_frequencia, 'R', pr.ind_ativo
194
FROM sc_sec.sec_conta_a_receber pr
195
LEFT JOIN sc_sec.sec_parcela p ON pr.seq_conta_a_receber = p.seq_conta_a_receber
196
ORDER BY p.seq_conta_a_receber;
197
 
198
-- VINCULAR PARCELAS COM A CONTA, BASEANDO-SE NA CONTA A PAGAR OU A RECEBER
199
UPDATE sc_sec.sec_conta SET tip_frequencia = 'U' WHERE tip_frequencia IS NULL;
200
ALTER TABLE sc_sec.sec_conta ALTER COLUMN tip_frequencia SET NOT NULL;
201
 
202
UPDATE sc_sec.sec_parcela p SET seq_conta = (SELECT seq_conta FROM sc_sec.sec_conta WHERE seq_conta_a_pagar = p.seq_conta_a_pagar OR seq_conta_a_receber = p.seq_conta_a_receber);
203
 
204
-- EXCLUIR TABELAS CONTA A RECEBER E A PAGAR E SEUS VÍNCULOS
205
ALTER TABLE sc_sec.sec_parcela DROP COLUMN seq_conta_a_pagar;
206
ALTER TABLE sc_sec.sec_parcela DROP COLUMN seq_conta_a_receber;
207
 
208
ALTER TABLE sc_sec.sec_conta DROP COLUMN seq_conta_a_pagar;
209
ALTER TABLE sc_sec.sec_conta DROP COLUMN seq_conta_a_receber;
210
 
211
DROP TABLE sc_sec.sec_conta_a_pagar;
212
DROP TABLE sc_sec.sec_conta_a_receber;
213
 
214
DROP SEQUENCE sc_sec.sq_contaapagar;
215
DROP SEQUENCE sc_sec.sq_contaareceber;
216
 
217
ALTER TABLE sc_sec.sec_parcela ALTER COLUMN seq_conta SET NOT NULL;
218
 
219
UPDATE sc_sec.sec_conta c SET seq_loja = (SELECT seq_loja FROM sc_sec.sec_venda v WHERE v.seq_venda = c.seq_venda);
220
 
221
 
222
INSERT INTO sc_sec.sec_bandeira_cartao(cod_bandeira_cartao, dsc_bandeira, tip_cartao, ind_ativo) VALUES (12, 'HIPER', 'D', TRUE);
223
 
224
SET search_path = public;