CREATE GENERATOR GTBPDV_PRODUTOS;

CREATE TABLE TBPDV_PRODUTOS (
    ID                           INTEGER NOT NULL,
    ESTABELECIMENTO_ID           INTEGER,
    LOCALIZACAO_ID               INTEGER,
    FAMILIA_ID                   INTEGER,
    MODELO_ID                    INTEGER,
    PRODUTO_ID                   INTEGER,
    PRODUTO_DESCRICAO            VARCHAR(200),
    UM                           VARCHAR(3),
    NCM                          VARCHAR(10),
    EAN                          VARCHAR(50),
    TAMANHO                      INTEGER,
    TAM_DESCRICAO                VARCHAR(50),
    FRACIONAR                    CHAR(1),
    CEST                         VARCHAR(10),
    CFOP_CODIGO                  VARCHAR(5),
    OPERACAO_CODIGO              VARCHAR(3),
    TABELA_PRECO_ID              INTEGER,
    VALOR_UNITARIO               NUMERIC(18,5),
    VALOR_UNITARIO_PROMOCIONAL   NUMERIC(18,2),
    QUANTIDADE_MINIMA            INTEGER DEFAULT 0,
    TRIBUTACAO_ORIGEM            CHAR(1),
    TRIBUTACAO_ICMS              CHAR(3),
    PERCENTUAL_BASECALCULO_ICMS  NUMERIC(10,2),
    ICMS_ALIQUOTA                NUMERIC(15,2),
    TRIBUTACAO_PIS               CHAR(3),
    PIS_ALIQUOTA                 NUMERIC(15,2),
    TRIBUTACAO_COFINS            CHAR(3),
    COFINS_ALIQUOTA              NUMERIC(15,2),
    REDUCAO_BASE_PISCOF          CHAR(1),
    TIPO_DESCONTO                VARCHAR(1)
);




/******************************************************************************/
/****                             Primary keys                             ****/
/******************************************************************************/

ALTER TABLE TBPDV_PRODUTOS ADD CONSTRAINT PK_TBPDV_PRODUTOS PRIMARY KEY (ID);


/******************************************************************************/
/****                               Indices                                ****/
/******************************************************************************/

CREATE INDEX ITBPDV_PRODUTOS_01 ON TBPDV_PRODUTOS (ESTABELECIMENTO_ID);
CREATE INDEX ITBPDV_PRODUTOS_02 ON TBPDV_PRODUTOS (LOCALIZACAO_ID);
CREATE INDEX ITBPDV_PRODUTOS_03 ON TBPDV_PRODUTOS (FAMILIA_ID);
CREATE INDEX ITBPDV_PRODUTOS_04 ON TBPDV_PRODUTOS (MODELO_ID);
CREATE INDEX ITBPDV_PRODUTOS_05 ON TBPDV_PRODUTOS (PRODUTO_ID);
CREATE INDEX ITBPDV_PRODUTOS_06 ON TBPDV_PRODUTOS (UM);
CREATE INDEX ITBPDV_PRODUTOS_07 ON TBPDV_PRODUTOS (NCM);
CREATE INDEX ITBPDV_PRODUTOS_08 ON TBPDV_PRODUTOS (EAN);
CREATE INDEX ITBPDV_PRODUTOS_09 ON TBPDV_PRODUTOS (TAMANHO);
CREATE INDEX ITBPDV_PRODUTOS_10 ON TBPDV_PRODUTOS (CFOP_CODIGO);
CREATE INDEX ITBPDV_PRODUTOS_11 ON TBPDV_PRODUTOS (OPERACAO_CODIGO);
CREATE INDEX ITBPDV_PRODUTOS_12 ON TBPDV_PRODUTOS (TABELA_PRECO_ID);