Blame |
Last modification |
View Log
| Download
| RSS feed
/*==============================================================*/
/* DBMS name: PostgreSQL 8 */
/* Criado em: 02/07/2025 */
/* Autor: Bruno Lopes Peixoto */
/*==============================================================*/
SET search_path = sc_sec;
CREATE SEQUENCE sq_posvenda
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;
/*==============================================================*/
/* Table: sec_posvenda */
/*==============================================================*/
CREATE TABLE sec_posvenda (
seq_posvenda INT8 NOT NULL DEFAULT NEXTVAL('sc_sec.sq_posvenda'::regclass),
seq_venda INT8 NULL,
seq_cliente INT8 NULL,
dat_cadastro DATE NOT NULL,
dth_inicio TIMESTAMP NULL,
dat_finalizacao DATE NULL,
dsc_observacao TEXT NULL,
tip_finalizacao CHAR(1) NULL
CONSTRAINT ck_posvenda_finalizacao CHECK (tip_finalizacao IS NULL OR (tip_finalizacao IN ('E','N'))),
CONSTRAINT pk_posvenda PRIMARY KEY (seq_posvenda)
);
comment ON COLUMN sec_posvenda.tip_finalizacao IS
'Valores possíveis:
E - ATENDIMENTO COMPLETO
N - NOVA VENDA';
-- set table ownership
ALTER TABLE sec_posvenda owner TO espacoc_sc_sec
;
/*==============================================================*/
/* Index: ix_posvenda */
/*==============================================================*/
CREATE UNIQUE INDEX ix_posvenda ON sec_posvenda (
seq_posvenda
);
/*==============================================================*/
/* Index: ix_posvenda_cliente */
/*==============================================================*/
CREATE INDEX ix_posvenda_cliente ON sec_posvenda (
seq_cliente
);
/*==============================================================*/
/* Index: ix_posvenda_venda */
/*==============================================================*/
CREATE INDEX ix_posvenda_venda ON sec_posvenda (
seq_venda
);
ALTER TABLE sec_posvenda
ADD CONSTRAINT fk_posvenda_cliente FOREIGN KEY (seq_cliente)
REFERENCES sec_cliente (seq_cliente)
ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE sec_posvenda
ADD CONSTRAINT fk_posvenda_venda FOREIGN KEY (seq_venda)
REFERENCES sec_venda (seq_venda)
ON DELETE RESTRICT ON UPDATE RESTRICT;
CREATE SEQUENCE sq_npsposvenda
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;
/*==============================================================*/
/* Table: sec_nps_posvenda */
/*==============================================================*/
CREATE TABLE sec_nps_posvenda (
seq_npsposvenda INT8 NOT NULL DEFAULT NEXTVAL('sc_sec.sq_npsposvenda'::regclass),
seq_posvenda INT8 NOT NULL,
tip_nps CHAR(1) NOT NULL
CONSTRAINT ck_npsposvenda_tipo CHECK (tip_nps IN ('A','P')),
nota INT8 NOT NULL,
dsc_observacao TEXT NULL,
dth_finalizacao TIMESTAMP NOT NULL,
CONSTRAINT pk_npsposvenda PRIMARY KEY (seq_npsposvenda)
);
comment ON COLUMN sec_nps_posvenda.tip_nps IS
'Valores possíveis:
A - ATENDIMENTO
P - PRODUTO';
-- set table ownership
ALTER TABLE sec_nps_posvenda owner TO espacoc_sc_sec
;
/*==============================================================*/
/* Index: ix_npsposvenda */
/*==============================================================*/
CREATE UNIQUE INDEX ix_npsposvenda ON sec_nps_posvenda (
seq_npsposvenda
);
/*==============================================================*/
/* Index: ix_npsposvenda_posvenda */
/*==============================================================*/
CREATE INDEX ix_npsposvenda_posvenda ON sec_nps_posvenda (
seq_posvenda
);
ALTER TABLE sec_nps_posvenda
ADD CONSTRAINT fk_npsposvenda_posvenda FOREIGN KEY (seq_posvenda)
REFERENCES sec_posvenda (seq_posvenda)
ON DELETE RESTRICT ON UPDATE RESTRICT;
-- DADOS POS-VENDA
/*
INSERT INTO sc_sec.sec_posvenda (seq_venda, dat_cadastro, seq_cliente)
SELECT v.seq_venda, now(), v.seq_cliente FROM sc_sec.sec_venda v
LEFT JOIN sc_sec.sec_cliente c ON v.seq_cliente = c.seq_cliente
WHERE v.dth_venda >= '2025-07-08 00:00:00' AND v.dth_venda < '2025-07-10 00:00:00'
AND v.seq_cliente IS NOT NULL
AND (c.dsc_contato <> '' OR c.dsc_telefone <> '');
INSERT INTO sc_sec.sec_posvenda (dat_cadastro, seq_cliente) VALUES (now(), 109);
*/
ALTER TABLE sec_posvenda DROP CONSTRAINT ck_posvenda_finalizacao;
ALTER TABLE sec_posvenda ADD CONSTRAINT ck_posvenda_finalizacao CHECK (tip_finalizacao IS NULL OR (tip_finalizacao IN ('C','N','S','V')));
comment ON COLUMN sec_posvenda.tip_finalizacao IS
'Valores possíveis:
C - ATENDIMENTO COMPLETO
N - NÚMERO INVÁLIDO
S - SEM RETORNO DO CLIENTE
V - NOVA VENDA';
SET search_path = public;