Subversion Repositories Integrator Subversion

Rev

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;