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; |