Subversion Repositories Integrator Subversion

Rev

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;