Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 649 | blopes | 1 | /*==============================================================*/ |
| 2 | /* DBMS name: PostgreSQL 8 */ |
||
| 3 | /* Criado em: 02/07/2025 */ |
||
| 4 | /* Autor: Bruno Lopes Peixoto */ |
||
| 5 | /*==============================================================*/ |
||
| 6 | |||
| 7 | SET search_path = sc_sec; |
||
| 8 | |||
| 9 | CREATE SEQUENCE sq_posvenda |
||
| 10 | INCREMENT 1 |
||
| 11 | minvalue 1 |
||
| 12 | maxvalue 99999999 |
||
| 13 | START 1; |
||
| 14 | |||
| 15 | /*==============================================================*/ |
||
| 16 | /* Table: sec_posvenda */ |
||
| 17 | /*==============================================================*/ |
||
| 18 | CREATE TABLE sec_posvenda ( |
||
| 19 | seq_posvenda INT8 NOT NULL DEFAULT NEXTVAL('sc_sec.sq_posvenda'::regclass), |
||
| 20 | seq_venda INT8 NULL, |
||
| 21 | seq_cliente INT8 NULL, |
||
| 22 | dat_cadastro DATE NOT NULL, |
||
| 23 | dth_inicio TIMESTAMP NULL, |
||
| 24 | dat_finalizacao DATE NULL, |
||
| 25 | dsc_observacao TEXT NULL, |
||
| 26 | tip_finalizacao CHAR(1) NULL |
||
| 27 | CONSTRAINT ck_posvenda_finalizacao CHECK (tip_finalizacao IS NULL OR (tip_finalizacao IN ('E','N'))), |
||
| 28 | CONSTRAINT pk_posvenda PRIMARY KEY (seq_posvenda) |
||
| 29 | ); |
||
| 30 | |||
| 31 | comment ON COLUMN sec_posvenda.tip_finalizacao IS |
||
| 32 | 'Valores possíveis: |
||
| 33 | E - ATENDIMENTO COMPLETO |
||
| 34 | N - NOVA VENDA'; |
||
| 35 | |||
| 36 | -- set table ownership |
||
| 37 | ALTER TABLE sec_posvenda owner TO espacoc_sc_sec |
||
| 38 | ; |
||
| 39 | /*==============================================================*/ |
||
| 40 | /* Index: ix_posvenda */ |
||
| 41 | /*==============================================================*/ |
||
| 42 | CREATE UNIQUE INDEX ix_posvenda ON sec_posvenda ( |
||
| 43 | seq_posvenda |
||
| 44 | ); |
||
| 45 | |||
| 46 | /*==============================================================*/ |
||
| 47 | /* Index: ix_posvenda_cliente */ |
||
| 48 | /*==============================================================*/ |
||
| 49 | CREATE INDEX ix_posvenda_cliente ON sec_posvenda ( |
||
| 50 | seq_cliente |
||
| 51 | ); |
||
| 52 | |||
| 53 | /*==============================================================*/ |
||
| 54 | /* Index: ix_posvenda_venda */ |
||
| 55 | /*==============================================================*/ |
||
| 56 | CREATE INDEX ix_posvenda_venda ON sec_posvenda ( |
||
| 57 | seq_venda |
||
| 58 | ); |
||
| 59 | |||
| 60 | ALTER TABLE sec_posvenda |
||
| 61 | ADD CONSTRAINT fk_posvenda_cliente FOREIGN KEY (seq_cliente) |
||
| 62 | REFERENCES sec_cliente (seq_cliente) |
||
| 63 | ON DELETE RESTRICT ON UPDATE RESTRICT; |
||
| 64 | |||
| 65 | ALTER TABLE sec_posvenda |
||
| 66 | ADD CONSTRAINT fk_posvenda_venda FOREIGN KEY (seq_venda) |
||
| 67 | REFERENCES sec_venda (seq_venda) |
||
| 68 | ON DELETE RESTRICT ON UPDATE RESTRICT; |
||
| 69 | |||
| 70 | |||
| 71 | |||
| 72 | CREATE SEQUENCE sq_npsposvenda |
||
| 73 | INCREMENT 1 |
||
| 74 | minvalue 1 |
||
| 75 | maxvalue 99999999 |
||
| 76 | START 1; |
||
| 77 | |||
| 78 | /*==============================================================*/ |
||
| 79 | /* Table: sec_nps_posvenda */ |
||
| 80 | /*==============================================================*/ |
||
| 81 | CREATE TABLE sec_nps_posvenda ( |
||
| 82 | seq_npsposvenda INT8 NOT NULL DEFAULT NEXTVAL('sc_sec.sq_npsposvenda'::regclass), |
||
| 83 | seq_posvenda INT8 NOT NULL, |
||
| 84 | tip_nps CHAR(1) NOT NULL |
||
| 85 | CONSTRAINT ck_npsposvenda_tipo CHECK (tip_nps IN ('A','P')), |
||
| 86 | nota INT8 NOT NULL, |
||
| 87 | dsc_observacao TEXT NULL, |
||
| 88 | dth_finalizacao TIMESTAMP NOT NULL, |
||
| 89 | CONSTRAINT pk_npsposvenda PRIMARY KEY (seq_npsposvenda) |
||
| 90 | ); |
||
| 91 | |||
| 92 | comment ON COLUMN sec_nps_posvenda.tip_nps IS |
||
| 93 | 'Valores possíveis: |
||
| 94 | A - ATENDIMENTO |
||
| 95 | P - PRODUTO'; |
||
| 96 | |||
| 97 | -- set table ownership |
||
| 98 | ALTER TABLE sec_nps_posvenda owner TO espacoc_sc_sec |
||
| 99 | ; |
||
| 100 | /*==============================================================*/ |
||
| 101 | /* Index: ix_npsposvenda */ |
||
| 102 | /*==============================================================*/ |
||
| 103 | CREATE UNIQUE INDEX ix_npsposvenda ON sec_nps_posvenda ( |
||
| 104 | seq_npsposvenda |
||
| 105 | ); |
||
| 106 | |||
| 107 | /*==============================================================*/ |
||
| 108 | /* Index: ix_npsposvenda_posvenda */ |
||
| 109 | /*==============================================================*/ |
||
| 110 | CREATE INDEX ix_npsposvenda_posvenda ON sec_nps_posvenda ( |
||
| 111 | seq_posvenda |
||
| 112 | ); |
||
| 113 | |||
| 114 | ALTER TABLE sec_nps_posvenda |
||
| 115 | ADD CONSTRAINT fk_npsposvenda_posvenda FOREIGN KEY (seq_posvenda) |
||
| 116 | REFERENCES sec_posvenda (seq_posvenda) |
||
| 117 | ON DELETE RESTRICT ON UPDATE RESTRICT; |
||
| 118 | |||
| 119 | |||
| 120 | |||
| 121 | -- DADOS POS-VENDA |
||
| 122 | /* |
||
| 123 | INSERT INTO sc_sec.sec_posvenda (seq_venda, dat_cadastro, seq_cliente) |
||
| 124 | SELECT v.seq_venda, now(), v.seq_cliente FROM sc_sec.sec_venda v |
||
| 125 | LEFT JOIN sc_sec.sec_cliente c ON v.seq_cliente = c.seq_cliente |
||
| 126 | WHERE v.dth_venda >= '2025-07-08 00:00:00' AND v.dth_venda < '2025-07-10 00:00:00' |
||
| 127 | AND v.seq_cliente IS NOT NULL |
||
| 128 | AND (c.dsc_contato <> '' OR c.dsc_telefone <> ''); |
||
| 129 | |||
| 130 | INSERT INTO sc_sec.sec_posvenda (dat_cadastro, seq_cliente) VALUES (now(), 109); |
||
| 131 | */ |
||
| 132 | |||
| 133 | ALTER TABLE sec_posvenda DROP CONSTRAINT ck_posvenda_finalizacao; |
||
| 134 | ALTER TABLE sec_posvenda ADD CONSTRAINT ck_posvenda_finalizacao CHECK (tip_finalizacao IS NULL OR (tip_finalizacao IN ('C','N','S','V'))); |
||
| 135 | |||
| 136 | comment ON COLUMN sec_posvenda.tip_finalizacao IS |
||
| 137 | 'Valores possíveis: |
||
| 138 | C - ATENDIMENTO COMPLETO |
||
| 139 | N - NÚMERO INVÁLIDO |
||
| 140 | S - SEM RETORNO DO CLIENTE |
||
| 141 | V - NOVA VENDA'; |
||
| 142 | |||
| 143 | |||
| 144 | SET search_path = public; |