/*==============================================================*/
/* DBMS name:      ORACLE Version 9i                            */
/* Created on:     30/01/2008 04:08:26 p.m.                     */
/*==============================================================*/


/*==============================================================*/
/* Table: FREDESCCOMPRAS                                        */
/*==============================================================*/
CREATE TABLE FREDESCCOMPRAS  (
   CIA                  CHAR(3)                         NOT NULL,
   EMPLEADO             VARCHAR2(25)                    NOT NULL,
   COD_CLASE            VARCHAR2(3)                     NOT NULL,
   DESCMAXIMO           NUMBER(14,2)                    NOT NULL
      CONSTRAINT FREDESCCOMPRAS_DESCMAXIMO_CK CHECK (DESCMAXIMO >= 0),
   PORCDESC             NUMBER(5,2)                     NOT NULL
      CONSTRAINT FREDESCCOMPRAS_PORCDESC_CK CHECK (PORCDESC >= 0),
   DESCOTORGADO         NUMBER(14,2)                    NOT NULL,
   DESCACUMULADO        NUMBER(14,2)                    NOT NULL,
   CONSTRAINT FREDESCCOMPRAS_PK PRIMARY KEY (CIA, EMPLEADO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: GENCLIENTE_DESCCOMPRAS_FK1                            */
/*==============================================================*/
CREATE INDEX GENCLIENTE_DESCCOMPRAS_FK1 ON FREDESCCOMPRAS (
   CIA ASC,
   EMPLEADO ASC
);

/*==============================================================*/
/* Table: FREFACTORES                                           */
/*==============================================================*/
CREATE TABLE FREFACTORES  (
   CIA                  CHAR(3)                         NOT NULL,
   ARTICULO             VARCHAR2(25)                    NOT NULL,
   FACTOR               NUMBER(5,2)                     NOT NULL
      CONSTRAINT FREFACTORES_FACTOR_CK CHECK (FACTOR >= 0),
   CONSTRAINT FREFACTORES_PK PRIMARY KEY (CIA, ARTICULO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: INVARTICULO_FREFACTORES_FK1                           */
/*==============================================================*/
CREATE INDEX INVARTICULO_FREFACTORES_FK1 ON FREFACTORES (
   CIA ASC,
   ARTICULO ASC
);

/*==============================================================*/
/* Table: FREMONTOMAXIMO                                        */
/*==============================================================*/
CREATE TABLE FREMONTOMAXIMO  (
   CIA                  CHAR(3)                         NOT NULL,
   HIJOS                NUMBER(2)                       NOT NULL
      CONSTRAINT FREMONTOMAXIMO_HIJOS_CK CHECK (HIJOS >= 0),
   MONTO                NUMBER(14,2)                    NOT NULL
      CONSTRAINT FREMONTOMAXIMO_MONTO_CK CHECK (MONTO >= 0),
   CONSTRAINT FREMONTOMAXIMO_PK PRIMARY KEY (CIA, HIJOS)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: FREPARAMETRO                                          */
/*==============================================================*/
CREATE TABLE FREPARAMETRO  (
   CIA                  CHAR(3)                         NOT NULL,
   LIMITEACUM           DATE                            NOT NULL,
   LIMITECAMBIO         DATE                            NOT NULL,
   OBTMONTOCON          NUMBER(14,2)                    NOT NULL
      CONSTRAINT FREPARAMETRO_OBTMONTOCO_CK CHECK (OBTMONTOCON >= 0),
   OBTPUNTOSCON         NUMBER(7)                       NOT NULL
      CONSTRAINT FREPARAMETRO_OBTPUNTOSC_CK CHECK (OBTPUNTOSCON >= 0),
   OBTMONTOOTR          NUMBER(14,2)                    NOT NULL
      CONSTRAINT FREPARAMETRO_OBTMONTOOT_CK CHECK (OBTMONTOOTR >= 0),
   OBTPUNTOSOTR         NUMBER(7)                       NOT NULL
      CONSTRAINT FREPARAMETRO_OBTPUNTOSO_CK CHECK (OBTPUNTOSOTR >= 0),
   CAMMONTO             NUMBER(14,2)                    NOT NULL
      CONSTRAINT FREPARAMETRO_CAMMONTO_CK CHECK (CAMMONTO >= 0),
   CAMPUNTOS            NUMBER(7)                       NOT NULL
      CONSTRAINT FREPARAMETRO_CAMPUNTOS_CK CHECK (CAMPUNTOS >= 0),
   MINIMOPUNTOS         NUMBER(7)                       NOT NULL
      CONSTRAINT FREPARAMETRO_MINIMOPUNT_CK CHECK (MINIMOPUNTOS >= 0),
   CONSTRAINT FREPARAMETRO_PK PRIMARY KEY (CIA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: GENCOMPANIA_FREPARAMETRO_FK1                          */
/*==============================================================*/
CREATE INDEX GENCOMPANIA_FREPARAMETRO_FK1 ON FREPARAMETRO (
   CIA ASC
);

/*==============================================================*/
/* Table: FREPORCENTAJE                                         */
/*==============================================================*/
CREATE TABLE FREPORCENTAJE  (
   CIA                  CHAR(3)                         NOT NULL,
   MESES                NUMBER(3)                       NOT NULL
      CONSTRAINT FREPORCENTAJE_MESES_CK CHECK (MESES >= 0),
   PUESTO               CHAR(3),
   PORCENTAJE           NUMBER(5,2)                     NOT NULL
      CONSTRAINT FREPORCENTAJE_PORCENTAJE_CK CHECK (PORCENTAJE >= 0),
   CONSTRAINT FREPORCENTAJE_UQ UNIQUE (CIA, MESES, PUESTO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: FREPUNTOS                                             */
/*==============================================================*/
CREATE TABLE FREPUNTOS  (
   CIA                  CHAR(3)                         NOT NULL,
   CLIENTE              VARCHAR2(25)                    NOT NULL,
   PUNTOSOBT            NUMBER(9,2)                     NOT NULL,
   PUNTOSTRA            NUMBER(9,2)                     NOT NULL,
   COMPRASTRA           NUMBER(14,2)                    NOT NULL,
   PUNTOSCAM            NUMBER(7)                       NOT NULL
      CONSTRAINT FREPUNTOS_PUNTOSCAM_CK CHECK (PUNTOSCAM >= 0),
   ULTIMACOMPRA         DATE                            NOT NULL,
   TOTALCOMPRAS         NUMBER(14,2)                    NOT NULL,
   TOTALOBSEQUIO        NUMBER(14,2)                    NOT NULL
      CONSTRAINT FREPUNTOS_TOTALOBSEQ_CK CHECK (TOTALOBSEQUIO >= 0),
   CONSTRAINT FREPUNTOS_PK PRIMARY KEY (CIA, CLIENTE)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: GENCLIENTE_FREPUNTOS_FK1                              */
/*==============================================================*/
CREATE INDEX GENCLIENTE_FREPUNTOS_FK1 ON FREPUNTOS (
   CIA ASC,
   CLIENTE ASC
);

ALTER TABLE FREDESCCOMPRAS
   ADD CONSTRAINT GENCLIENTE_DESCCOMPRAS_FK FOREIGN KEY (CIA, EMPLEADO)
      REFERENCES GEN_CLIENTE (COD_CIA, COD_CLIENTE);

ALTER TABLE FREFACTORES
   ADD CONSTRAINT FREPARAMETROS_FACTORES_FK FOREIGN KEY (CIA)
      REFERENCES FREPARAMETRO (CIA);

ALTER TABLE FREFACTORES
   ADD CONSTRAINT INVARTICULO_FREFACTORES_FK FOREIGN KEY (CIA, ARTICULO)
      REFERENCES INV_ARTICULO (COD_CIA, COD_ARTICULO);

ALTER TABLE FREMONTOMAXIMO
   ADD CONSTRAINT FREPARAMETRO_MONTOMAXIMO_FK FOREIGN KEY (CIA)
      REFERENCES FREPARAMETRO (CIA);

ALTER TABLE FREPARAMETRO
   ADD CONSTRAINT GENCOMPANIA_FREPARAMETRO_FK FOREIGN KEY (CIA)
      REFERENCES GEN_COMPANIA (COD_CIA);

ALTER TABLE FREPORCENTAJE
   ADD CONSTRAINT FREPARAMETRO_PORCENTAJE_FK FOREIGN KEY (CIA)
      REFERENCES FREPARAMETRO (CIA);

ALTER TABLE FREPUNTOS
   ADD CONSTRAINT GENCLIENTE_FREPUNTOS_FK FOREIGN KEY (CIA, CLIENTE)
      REFERENCES GEN_CLIENTE (COD_CIA, COD_CLIENTE);

