Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

/*========tur===================================================*/
/* DBMS name:     PostgreSQL 8                                  */
/* Criado em:     21/04/2017                                        */
/* Autor: Bruno Lopes Peixoto                                       */
/*==============================================================*/

SET search_path = sc_sec;

ALTER TABLE sec_linha_vivo ADD seq_produto_vivo INT8 NULL;

ALTER TABLE sec_linha_vivo
   ADD CONSTRAINT fk_linhavivo_produtovivo FOREIGN KEY (seq_produto_vivo)
      REFERENCES sec_produto_vivo (seq_produto_vivo)
      ON DELETE RESTRICT ON UPDATE RESTRICT;   

UPDATE sc_sec.sec_linha_vivo l SET seq_produto_vivo = (
SELECT v.seq_produto_vivo FROM sec_venda_vivo v
WHERE v.seq_linha_vivo = l.seq_linha_vivo
ORDER BY v.dth_venda DESC
LIMIT 1
);

ALTER TABLE sec_pessoa ADD dsc_nome_fantasia VARCHAR(120) NULL;
ALTER TABLE sec_pessoa ADD dsc_inscricao_estadual VARCHAR(15) NULL;
ALTER TABLE sec_pessoa ADD dsc_inscricao_municipal VARCHAR(15) NULL;
ALTER TABLE sec_pessoa ADD tip_regime_tributario CHAR(1) NULL
CONSTRAINT ck_regime_tributario_pessoa CHECK (tip_regime_tributario IS NULL OR (tip_regime_tributario IN ('1','2','3')));
comment ON COLUMN sec_pessoa.tip_regime_tributario IS
'Valores possíveis:
1 - Simples Nacional
2 - Simples Nacional - Excesso de Sublimite de Receita Bruta
3 - Regime Normal'
;

ALTER TABLE sec_endereco ADD dsc_municipio VARCHAR(120) NULL;
ALTER TABLE sec_endereco ADD dsc_uf VARCHAR(2) NULL;

ALTER TABLE sec_produto ADD cod_ean VARCHAR(20) NULL;
comment ON COLUMN sec_produto.cod_ean IS
'Utilizado para código de barras';

ALTER TABLE sec_produto ADD cod_ean_tributado VARCHAR(20) NULL;
comment ON COLUMN sec_produto.cod_ean_tributado IS
'Utilizado para código de barras do produto tributável';

ALTER TABLE sec_produto ADD cod_ncm INT8 NULL;
comment ON COLUMN sec_produto.cod_ncm IS
'Nomenclatura Comum do Mercosul';

ALTER TABLE sec_produto ADD cod_est INT8 NULL;
comment ON COLUMN sec_produto.cod_est IS
'Código Especificador da Substituição Tributária';

ALTER TABLE sec_produto ADD cod_fop INT4 NULL;
comment ON COLUMN sec_produto.cod_fop IS
'Código Fiscal de Operações e Prestações.
Trata-se de um código numérico que identifica a natureza de circulação da mercadoria ou a prestação de serviço de transportes.
Entradas
1.000 - Entrada e/ou Aquisições de Serviços do Estado.
2.000 - Entrada e/ou Aquisições de Serviços de outros Estados.
3.000 - Entrada e/ou Aquisições de Serviços do Exterior.

Saídas
5.000 - Saídas ou Prestações de Serviços para o Estado.
6.000 - Saídas ou Prestações de Serviços para outros Estados.
7.000 - Saídas ou Prestações de Serviços para o Exterior.'
;  


ALTER TABLE sec_compra_produto ADD dsc_unidade_comercial VARCHAR(5) NULL;
ALTER TABLE sec_compra_produto ADD qtd_unidade_comercial NUMERIC(5) NULL;
ALTER TABLE sec_compra_produto ADD val_unidade_comercial NUMERIC(10,2) NULL;

ALTER TABLE sec_compra_produto ADD dsc_unidade_tributaria VARCHAR(5) NULL;
ALTER TABLE sec_compra_produto ADD qtd_unidade_tributaria NUMERIC(5) NULL;
ALTER TABLE sec_compra_produto ADD val_unidade_tributaria NUMERIC(10,2) NULL;

ALTER TABLE sec_compra_produto ADD ind_valor_total_nota BOOL NULL;
comment ON COLUMN sec_compra_produto.ind_valor_total_nota IS
'0 - O valor do item (vProd) não compõe o valor total da NF-e (vProd)
1 - O valor do item (vProd) compõe o valor total da NF-e (vProd) '
;


/*==============================================================*/
/* Table: sec_compra_medicamento                                */
/*==============================================================*/
CREATE TABLE sec_compra_medicamento (
   seq_compraproduto    INT8                 NOT NULL,
   dsc_lote             VARCHAR(10)          NOT NULL,
   qtd_lote             INT8                 NOT NULL,
   dat_fabricacao       DATE                 NOT NULL,
   dat_vencimento       DATE                 NOT NULL,
   val_preco_maximo     NUMERIC(10,2)        NOT NULL,
   CONSTRAINT pk_compramedicamento PRIMARY KEY (seq_compraproduto)
);

-- set table ownership
ALTER TABLE sec_compra_medicamento owner TO sc_sec
;
ALTER TABLE sec_compra_medicamento
   ADD CONSTRAINT fk_compramed_compraproduto FOREIGN KEY (seq_compraproduto)
      REFERENCES sec_compra_produto (seq_compraproduto)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

         
/*==============================================================*/
/* Table: sec_compra_produto_imposto                            */
/*==============================================================*/
CREATE TABLE sec_compra_produto_imposto (
   seq_compraproduto    INT8                 NOT NULL,
   tip_imposto          CHAR(1)              NOT NULL
      CONSTRAINT ck_compra_produto_imposto_tipo CHECK (tip_imposto IN ('I','S','C','P')),
   cod_situacao_tributaria INT8                 NOT NULL,
   val_base_calculo     NUMERIC(10,2)        NULL,
   val_percentual       NUMERIC(10,4)        NULL,
   val_imposto          NUMERIC(10,2)        NULL,
   CONSTRAINT pk_compraprodutoimposto PRIMARY KEY (seq_compraproduto, tip_imposto)
);

comment ON COLUMN sec_compra_produto_imposto.tip_imposto IS
'Valores possíveis:
I - ICMS
S - PIS
C - COFINS
P - IPI
'
;

comment ON COLUMN sec_compra_produto_imposto.val_base_calculo IS
'Valor base de cálculo do imposto';

comment ON COLUMN sec_compra_produto_imposto.val_percentual IS
'Alíquota do imposto';

comment ON COLUMN sec_compra_produto_imposto.val_imposto IS
'Valor do Imposto';

-- set table ownership
ALTER TABLE sec_compra_produto_imposto owner TO sc_sec
;
ALTER TABLE sec_compra_produto_imposto
   ADD CONSTRAINT fk_compraprodutoimposto_compraproduto FOREIGN KEY (seq_compraproduto)
      REFERENCES sec_compra_produto (seq_compraproduto)
      ON DELETE RESTRICT ON UPDATE RESTRICT;


         
/*==============================================================*/
/* Table: sec_imposto_icms                                      */
/*==============================================================*/
CREATE TABLE sec_imposto_icms (
   seq_compraproduto    INT8                 NOT NULL,
   tip_imposto          CHAR(1)              NOT NULL
      CONSTRAINT ck_imposto_icms_tipo CHECK (tip_imposto IN ('I','P','C')),
   cod_origem           INT8                 NOT NULL,
   cod_modbc            INT8                 NOT NULL,
   val_predbc           NUMERIC(10,4)        NULL,
   cod_modbcst          INT8                 NULL,
   val_pmvast           NUMERIC(10,4)        NULL,
   val_bcst            NUMERIC(10,2)        NULL,
   val_picmsst          NUMERIC(10,4)        NULL,
   val_icmsst          NUMERIC(10,2)        NULL,
   CONSTRAINT pk_impostoicms PRIMARY KEY (seq_compraproduto, tip_imposto)
);

comment ON COLUMN sec_imposto_icms.tip_imposto IS
'Valores possíveis:
I - ICMS
P - PIS
C - COFINS'
;

comment ON COLUMN sec_imposto_icms.cod_modbc IS
'Modalidade de determinação da Base de Cálculo do ICMS';

comment ON COLUMN sec_imposto_icms.val_predbc IS
'Percentual da Redução de BC';

comment ON COLUMN sec_imposto_icms.cod_modbcst IS
'Modalidade de determinação da Base de Cálculo do ICMS ST';

comment ON COLUMN sec_imposto_icms.val_pmvast IS
'Percentual da margem de valor adicionado do ICMS ST';

comment ON COLUMN sec_imposto_icms.val_bcst IS
'Base de Cálculo do ICMS ST';

comment ON COLUMN sec_imposto_icms.val_picmsst IS
'Alíquota do imposto do ICMS ST';

comment ON COLUMN sec_imposto_icms.val_icmsst IS
'Valor do ICMS ST';

-- set table ownership
ALTER TABLE sec_imposto_icms owner TO sc_sec
;
ALTER TABLE sec_imposto_icms
   ADD CONSTRAINT fk_impostoicms_compraprodutoimposto FOREIGN KEY (seq_compraproduto, tip_imposto)
      REFERENCES sec_compra_produto_imposto (seq_compraproduto, tip_imposto)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

CREATE SEQUENCE sq_transportadora
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

ALTER TABLE sq_transportadora owner TO sc_sec;

/*==============================================================*/
/* Table: sec_transportadora                                    */
/*==============================================================*/
CREATE TABLE sec_transportadora (
   seq_transportadora   INT8                 NOT NULL DEFAULT NEXTVAL('sc_sec.sq_transportadora'::regclass),
   seq_pessoa           INT8                 NOT NULL,
   CONSTRAINT pk_transportadora PRIMARY KEY (seq_transportadora)
);

-- set table ownership
ALTER TABLE sec_transportadora owner TO sc_sec
;
ALTER TABLE sec_transportadora
   ADD CONSTRAINT fk_transportadora_pessoa FOREIGN KEY (seq_pessoa)
      REFERENCES sec_pessoa (seq_pessoa)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

CREATE SEQUENCE sq_transporte
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

ALTER TABLE sq_transporte owner TO sc_sec;     
         
/*==============================================================*/
/* Table: sec_transporte                                        */
/*==============================================================*/
CREATE TABLE sec_transporte (
   seq_transporte       INT8                 NOT NULL DEFAULT NEXTVAL('sc_sec.sq_transporte'::regclass),
   seq_transportadora   INT8                 NOT NULL,
   cod_modalidade_frete INT8                 NOT NULL,
   qtd_volume           INT8                 NOT NULL,
   dsc_volume           VARCHAR(120)         NOT NULL,
   val_peso_liquido     NUMERIC(10,4)        NULL,
   val_peso_bruto       NUMERIC(10,4)        NULL,
   CONSTRAINT pk_transporte PRIMARY KEY (seq_transporte)
);

comment ON COLUMN sec_transporte.cod_modalidade_frete IS
'Modalidade do Frete';

-- set table ownership
ALTER TABLE sec_transporte owner TO sc_sec
;
ALTER TABLE sec_transporte
   ADD CONSTRAINT fk_transporte_transportadora FOREIGN KEY (seq_transportadora)
      REFERENCES sec_transportadora (seq_transportadora)
      ON DELETE RESTRICT ON UPDATE RESTRICT;


/*==============================================================*/
/* Table: sec_nota_fiscal                                       */
/*==============================================================*/
CREATE TABLE sec_nota_fiscal (
   cod_nota_fiscal      VARCHAR(50)          NOT NULL,
   seq_transporte       INT8                 NULL,
   dsc_complementares VARCHAR(1500)        NULL,
   dth_emissao          TIMESTAMP            NOT NULL,
   txt_xml              TEXT                 NOT NULL,
   arq_xml              BYTEA                NOT NULL,
   CONSTRAINT pk_notafiscal PRIMARY KEY (cod_nota_fiscal)
);

-- set table ownership
ALTER TABLE sec_nota_fiscal owner TO sc_sec
;
ALTER TABLE sec_nota_fiscal
   ADD CONSTRAINT fk_compra_transporte FOREIGN KEY (seq_transporte)
      REFERENCES sec_transporte (seq_transporte)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

         
ALTER TABLE sec_compra ADD cod_nota_fiscal VARCHAR(50) NULL;

ALTER TABLE sec_compra
   ADD CONSTRAINT fk_compra_notafiscal FOREIGN KEY (cod_nota_fiscal)
      REFERENCES sec_nota_fiscal (cod_nota_fiscal)
      ON DELETE RESTRICT ON UPDATE RESTRICT;
         

CREATE SEQUENCE sq_fornecedor
INCREMENT 1
minvalue 1
maxvalue 99999999
START 1;

ALTER TABLE sq_fornecedor owner TO sc_sec;
         
/*==============================================================*/
/* Table: sec_fornecedor                                        */
/*==============================================================*/
CREATE TABLE sec_fornecedor (
   seq_fornecedor       INT8                 NOT NULL DEFAULT NEXTVAL('sc_sec.sq_fornecedor'::regclass),
   seq_pessoa           INT8                 NOT NULL,
   ind_ativo            BOOL                 NOT NULL,
   CONSTRAINT pk_fornecedor PRIMARY KEY (seq_fornecedor)
);

-- set table ownership
ALTER TABLE sec_fornecedor owner TO sc_sec
;
ALTER TABLE sec_fornecedor
   ADD CONSTRAINT fk_fornecedorproduto_pessoa FOREIGN KEY (seq_pessoa)
      REFERENCES sec_pessoa (seq_pessoa)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

         
ALTER TABLE sec_compra ADD seq_fornecedor INT8 NULL;

ALTER TABLE sec_compra
   ADD CONSTRAINT fk_compra_fornecedor FOREIGN KEY (seq_fornecedor)
      REFERENCES sec_fornecedor (seq_fornecedor)
      ON DELETE RESTRICT ON UPDATE RESTRICT;
         
ALTER TABLE sec_compra_produto ADD dsc_informacoes_adicionais VARCHAR(120) NULL;
ALTER TABLE sec_compra_produto ADD val_desconto NUMERIC(10,2) NULL;

ALTER TABLE sec_produto DROP CONSTRAINT ck_produto_tipo;
ALTER TABLE sec_produto ADD CONSTRAINT ck_produto_tipo CHECK (tip_produto IN ('A','C','P', 'R'));
comment ON COLUMN sec_produto.tip_produto IS
'Valores possíveis:
A - Acessório
C - Capa
P - Película
E - Remédio'
;


ALTER TABLE sec_compra ADD seq_loja INT8 NULL;

ALTER TABLE sec_compra
   ADD CONSTRAINT fk_compra_loja FOREIGN KEY (seq_loja)
      REFERENCES sec_loja (seq_loja)
      ON DELETE RESTRICT ON UPDATE RESTRICT;

UPDATE sc_sec.sec_compra SET seq_loja = 6;
         
ALTER TABLE sc_sec.sec_compra ALTER COLUMN seq_loja SET NOT NULL;


         
SET search_path = public;