/*==============================================================*/
/* DBMS name:      ORACLE Version 9i                            */
/* Created on:     30/01/2008 01:28:32 p.m.                     */
/*==============================================================*/


/*==============================================================*/
/* Table: CMSCLAVESEMP                                          */
/*==============================================================*/
CREATE TABLE CMSCLAVESEMP  (
   CIA                  CHAR(3)                         NOT NULL,
   EMPLEADO             VARCHAR2(15)                    NOT NULL,
   CLAVE                VARCHAR2(20)                    NOT NULL,
   CONSTRAINT CMSCLAVESEMP_PK PRIMARY KEY (CIA, EMPLEADO)
);

/*==============================================================*/
/* Table: CMSFECHAS                                             */
/*==============================================================*/
CREATE TABLE CMSFECHAS  (
   AUTOMATICO           CHAR(1)                         NOT NULL,
   FECHA_INICIO         DATE                            NOT NULL,
   FECHA_FINAL          DATE                            NOT NULL
);

/*==============================================================*/
/* Table: CMSACUAFIL                                            */
/*==============================================================*/
CREATE TABLE CMSACUAFIL  (
   CIA                  CHAR(3)                         NOT NULL,
   CLIENTE              VARCHAR2(25)                    NOT NULL,
   MONTO                NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSACUAFIL_MONTO_CK CHECK (MONTO >= 0),
   PREMIO               NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSACUAFIL_PREMIO_CK CHECK (PREMIO >= 0),
   VENCE                DATE                           DEFAULT SYSDATE NOT NULL,
   CONSTRAINT CMSACUAFIL_PK PRIMARY KEY (CIA, CLIENTE)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSACUKLM                                             */
/*==============================================================*/
CREATE TABLE CMSACUKLM  (
   CIA                  CHAR(3)                         NOT NULL,
   EMPLEADO             VARCHAR2(15)                    NOT NULL,
   ACUMULADO            NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSACUKLM_ACUMULADO_CK CHECK (ACUMULADO >= 0),
   PAGADO               NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSACUKLM_PAGADO_CK CHECK (PAGADO >= 0),
   CONSTRAINT CMSACUKLM_PK PRIMARY KEY (CIA, EMPLEADO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSADELANTO                                           */
/*==============================================================*/
CREATE TABLE CMSADELANTO  (
   CIA                  CHAR(3)                         NOT NULL,
   MES                  NUMBER(6)                       NOT NULL,
   EMPLEADO             VARCHAR2(15)                    NOT NULL,
   MONTO                NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSADELANTO_MONTO_CK CHECK (MONTO >= 0),
   CONSTRAINT CMSADELANTO_PK PRIMARY KEY (CIA, MES, EMPLEADO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSAUMENTO                                            */
/*==============================================================*/
CREATE TABLE CMSAUMENTO  (
   CIA                  CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   DEPARTAMENTO         CHAR(3)                         NOT NULL,
   RIGEDESDE            NUMBER(2)                       NOT NULL
      CONSTRAINT CMSAUMENTO_RIGEDESDE_CK CHECK (RIGEDESDE BETWEEN 1 AND 12),
   RIGEHASTA            NUMBER(2)                       NOT NULL
      CONSTRAINT CMSAUMENTO_RIGEHASTA_CK CHECK (RIGEHASTA BETWEEN 1 AND 12),
   PORCENTAJE           NUMBER(5,3)                     NOT NULL
      CONSTRAINT CMSAUMENTO_PORCENTAJE_CK CHECK (PORCENTAJE >= 0),
   PORCEXTRA            NUMBER(5,3)                     NOT NULL
      CONSTRAINT CMSAUMENTO_PORCEXTRA_CK CHECK (PORCEXTRA >= 0),
   CONSTRAINT CMSAUMENTO_PK PRIMARY KEY (DEPARTAMENTO, RIGEDESDE, CIA, SUCURSAL)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: CMSPARAMETROS_AUMENTO_FK1                             */
/*==============================================================*/
CREATE INDEX CMSPARAMETROS_AUMENTO_FK1 ON CMSAUMENTO (
   CIA ASC
);

/*==============================================================*/
/* Table: CMSCOMCOBRO                                           */
/*==============================================================*/
CREATE TABLE CMSCOMCOBRO  (
   CIA                  CHAR(3)                         NOT NULL,
   COMCOBRO             CHAR(3)                         NOT NULL,
   COMPREMIO            CHAR(3)                         NOT NULL,
   PORCENTAJE           NUMBER(5,3)                     NOT NULL
      CONSTRAINT CMSCOMCOBRO_PORCENTAJE_CK CHECK (PORCENTAJE >= 0),
   KLMMONTO             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSCOMCOBRO_KLMMONTO_CK CHECK (KLMMONTO >= 0),
   KLMVALOR             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSCOMCOBRO_KLMVALOR_CK CHECK (KLMVALOR >= 0),
   CONSTRAINT CMSCOMCOBRO_PK PRIMARY KEY (CIA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: CMSMAESTRO_COMCOBRO_FK1                               */
/*==============================================================*/
CREATE INDEX CMSMAESTRO_COMCOBRO_FK1 ON CMSCOMCOBRO (
   CIA ASC,
   COMCOBRO ASC
);

/*==============================================================*/
/* Table: CMSCOMCOBROESC                                        */
/*==============================================================*/
CREATE TABLE CMSCOMCOBROESC  (
   CIA                  CHAR(3)                         NOT NULL,
   MONTO                NUMBER(14,2)                    NOT NULL,
   PORCENTAJE           NUMBER(5,3)                     NOT NULL
      CONSTRAINT CMSCOMCOBROESC_PORCENTAJE_CK CHECK (PORCENTAJE >= 0),
   CONSTRAINT CMSCOMCOBROESC_PK PRIMARY KEY (CIA, MONTO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSDETTABLA                                           */
/*==============================================================*/
CREATE TABLE CMSDETTABLA  (
   CIA                  CHAR(3)                         NOT NULL,
   TABLA                CHAR(3)                         NOT NULL,
   LIMITEINFERIOR       NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSDETTABLA_LIMITEINFE_CK CHECK (LIMITEINFERIOR >= 0),
   PORCENTAJE           NUMBER(5,3)                     NOT NULL
      CONSTRAINT CMSDETTABLA_PORCENTAJE_CK CHECK (PORCENTAJE >= 0),
   CONSTRAINT CMSDETTABLA_PK PRIMARY KEY (CIA, TABLA, LIMITEINFERIOR)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSDIRECTA                                            */
/*==============================================================*/
CREATE TABLE CMSDIRECTA  (
   CIA                  CHAR(3)                         NOT NULL,
   COMISION             CHAR(3)                         NOT NULL,
   PUESTO               CHAR(3)                         NOT NULL,
   FACTOR               NUMBER(5,3)                     NOT NULL
      CONSTRAINT CMSDIRECTA_FACTOR_CK CHECK (FACTOR >= 0),
   CONSTRAINT CMSDIRECTA_PK PRIMARY KEY (PUESTO, CIA, COMISION)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: CMSMAESTRO_DIRECTA_FK1                                */
/*==============================================================*/
CREATE INDEX CMSMAESTRO_DIRECTA_FK1 ON CMSDIRECTA (
   CIA ASC,
   COMISION ASC
);

/*==============================================================*/
/* Table: CMSINDPUESTO                                          */
/*==============================================================*/
CREATE TABLE CMSINDPUESTO  (
   CIA                  CHAR(3)                         NOT NULL,
   COMISION             CHAR(3)                         NOT NULL,
   PUESTO               CHAR(3)                         NOT NULL,
   FACTOR               NUMBER(5,3)                     NOT NULL
      CONSTRAINT CMSINDPUESTO_FACTOR_CK CHECK (FACTOR >= 0),
   CONSTRAINT CMSINDPUESTO_PK PRIMARY KEY (CIA, COMISION, PUESTO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSINDVENTAS                                          */
/*==============================================================*/
CREATE TABLE CMSINDVENTAS  (
   CIA                  CHAR(3)                         NOT NULL,
   COMISION             CHAR(3)                         NOT NULL,
   PUESTO               CHAR(3)                         NOT NULL,
   CONSTRAINT CMSINDVENTAS_PK PRIMARY KEY (CIA, COMISION, PUESTO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSJEFESDEPTOS                                        */
/*==============================================================*/
CREATE TABLE CMSJEFESDEPTOS  (
   CIA                  CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   DEPARTAMENTO         CHAR(3)                         NOT NULL,
   EMPLEADO             VARCHAR2(15)                    NOT NULL,
   FACTOR               NUMBER(5,3)                     NOT NULL
      CONSTRAINT CMSJEFESDEPTOS_FACTOR_CK CHECK (FACTOR >= 0),
   CONSTRAINT CMSJEFESDEPTOS_PK PRIMARY KEY (CIA, DEPARTAMENTO, SUCURSAL)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSJEFESTABLA                                         */
/*==============================================================*/
CREATE TABLE CMSJEFESTABLA  (
   CIA                  CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   DEPARTAMENTO         CHAR(3)                         NOT NULL,
   TABLA                CHAR(3)                         NOT NULL,
   CONSTRAINT CMSJEFESTABLA_PK PRIMARY KEY (DEPARTAMENTO, SUCURSAL, CIA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: CMSTABLA_JEFES_FK1                                    */
/*==============================================================*/
CREATE INDEX CMSTABLA_JEFES_FK1 ON CMSJEFESTABLA (
   CIA ASC,
   TABLA ASC
);

/*==============================================================*/
/* Table: CMSKLMMES                                             */
/*==============================================================*/
CREATE TABLE CMSKLMMES  (
   CIA                  CHAR(3)                         NOT NULL,
   MES                  NUMBER(6)                       NOT NULL,
   EMPLEADO             VARCHAR2(15)                    NOT NULL,
   ACUMULADO            NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSKLMMES_ACUMULADO_CK CHECK (ACUMULADO >= 0),
   PAGADO               NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSKLMMES_PAGADO_CK CHECK (PAGADO >= 0),
   CONSTRAINT CMSKLMMES_PK PRIMARY KEY (CIA, MES, EMPLEADO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSLABORES                                            */
/*==============================================================*/
CREATE TABLE CMSLABORES  (
   CIA                  CHAR(3)                         NOT NULL,
   FECHA                DATE                            NOT NULL,
   EMPLEADO             VARCHAR2(15)                    NOT NULL,
   PUESTO               CHAR(3)                         NOT NULL,
   HORAS                NUMBER(5,2)                     NOT NULL
      CONSTRAINT CMSLABORES_HORAS_CK CHECK (HORAS >= 0),
   CONSTRAINT CMSLABORES_PK PRIMARY KEY (CIA, FECHA, EMPLEADO, PUESTO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSMAESTRO                                            */
/*==============================================================*/
CREATE TABLE CMSMAESTRO  (
   CIA                  CHAR(3)                         NOT NULL,
   COMISION             CHAR(3)                         NOT NULL,
   DESCRIPCION          VARCHAR(20)                     NOT NULL,
   TIPOMOV              CHAR(3),
   CONSTRAINT CMSMAESTRO_PK PRIMARY KEY (CIA, COMISION)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSMONTOS                                             */
/*==============================================================*/
CREATE TABLE CMSMONTOS  (
   CIA                  CHAR(3)                         NOT NULL,
   FECHA                DATE                            NOT NULL,
   EMPLEADO             VARCHAR2(15)                    NOT NULL,
   COMISION             CHAR(3)                         NOT NULL,
   BODEGA               CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   DEPARTAMENTO         CHAR(3)                         NOT NULL,
   PUESTO               CHAR(3)                         NOT NULL,
   MONTO                NUMBER(14,2)                    NOT NULL,
   VENTAS               NUMBER(14,2)                    NOT NULL,
   ORIGEN               CHAR(1)                         NOT NULL
      CONSTRAINT CMSMONTOS_ORIGEN_CK CHECK (ORIGEN IN ('M','C')),
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT CMSMONTOS_ESTADO_CK CHECK (ESTADO IN ('A','P','N')),
   CONSTRAINT CMSMONTOS_PK PRIMARY KEY (CIA, FECHA, EMPLEADO, COMISION, BODEGA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSPARAMETROS                                         */
/*==============================================================*/
CREATE TABLE CMSPARAMETROS  (
   CIA                  CHAR(3)                         NOT NULL,
   VENDEDORADM          VARCHAR2(5),
   VENTANORMAL          CHAR(3),
   VENTAEXTRA           CHAR(3),
   JEFENORMAL           CHAR(3),
   JEFEEXTRA            CHAR(3),
   COMVENADM            CHAR(3),
   COMESPECIAL          CHAR(3),
   CONSTRAINT CMSPARAMETROS_PK PRIMARY KEY (CIA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSPREAFIL                                            */
/*==============================================================*/
CREATE TABLE CMSPREAFIL  (
   CIA                  CHAR(3)                         NOT NULL,
   MONTO                NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSPREAFIL_MONTO_CK CHECK (MONTO >= 0),
   PREMIO               NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSPREAFIL_PREMIO_CK CHECK (PREMIO >= 0),
   CONSTRAINT CMSPREAFIL_PK PRIMARY KEY (CIA, MONTO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSPREMES                                             */
/*==============================================================*/
CREATE TABLE CMSPREMES  (
   CIA                  CHAR(3)                         NOT NULL,
   MES                  NUMBER(6)                       NOT NULL,
   CLIENTE              VARCHAR2(25)                    NOT NULL,
   EMPLEADO             VARCHAR2(15)                    NOT NULL,
   MONTO                NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSPREMES_MONTO_CK CHECK (MONTO >= 0),
   PREMIO               NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSPREMES_PREMIO_CK CHECK (PREMIO >= 0),
   CONSTRAINT CMSPREMES_PK PRIMARY KEY (CIA, MES, CLIENTE, EMPLEADO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSRECOM                                              */
/*==============================================================*/
CREATE TABLE CMSRECOM  (
   CIA                  CHAR(3)                         NOT NULL,
   CLIENTE              VARCHAR2(25)                    NOT NULL,
   RECOMENDADO          VARCHAR2(25)                    NOT NULL,
   FECHA                DATE                            NOT NULL,
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT CMSRECOM_ESTADO_CK CHECK (ESTADO IN ('P','A','N')),
   CONSTRAINT CMSRECOM_PK PRIMARY KEY (CIA, CLIENTE, RECOMENDADO),
   CONSTRAINT CMSRECOM_RECOMEND_AK UNIQUE (CIA, RECOMENDADO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSRECOMPRE                                           */
/*==============================================================*/
CREATE TABLE CMSRECOMPRE  (
   CIA                  CHAR(3)                         NOT NULL,
   MONTO                NUMBER(14,2)                    NOT NULL
      CONSTRAINT CMSRECOMPRE_MONTO_CK CHECK (MONTO >= 0),
   ARTICULO             VARCHAR2(25)                    NOT NULL,
   CANTIDAD             NUMBER(12,4)                    NOT NULL
      CONSTRAINT CMSRECOMPRE_CANTIDAD_CK CHECK (CANTIDAD >= 0),
   CONSTRAINT CMSRECOMPRE_PK PRIMARY KEY (CIA, MONTO, ARTICULO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CMSTABLA                                              */
/*==============================================================*/
CREATE TABLE CMSTABLA  (
   CIA                  CHAR(3)                         NOT NULL,
   TABLA                CHAR(3)                         NOT NULL,
   DESCRIPCION          VARCHAR2(40)                    NOT NULL,
   CONSTRAINT CMSTABLA_PK PRIMARY KEY (CIA, TABLA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

ALTER TABLE CMSACUAFIL
   ADD CONSTRAINT CMSCOMCOBRO_ACUAFIL_FK FOREIGN KEY (CIA)
      REFERENCES CMSCOMCOBRO (CIA);

ALTER TABLE CMSACUKLM
   ADD CONSTRAINT CMSCOMCOBRO_ACUKLM_FK FOREIGN KEY (CIA)
      REFERENCES CMSCOMCOBRO (CIA);

ALTER TABLE CMSADELANTO
   ADD CONSTRAINT CMSPARAMETROS_ADELANTO_FK FOREIGN KEY (CIA)
      REFERENCES CMSPARAMETROS (CIA);

ALTER TABLE CMSAUMENTO
   ADD CONSTRAINT CMSPARAMETROS_AUMENTO_FK FOREIGN KEY (CIA)
      REFERENCES CMSPARAMETROS (CIA);

ALTER TABLE CMSCOMCOBRO
   ADD CONSTRAINT CMSMAESTRO_COMCOBRO_FK FOREIGN KEY (CIA, COMCOBRO)
      REFERENCES CMSMAESTRO (CIA, COMISION);

ALTER TABLE CMSCOMCOBROESC
   ADD CONSTRAINT CMSCOMCOBRO_ESC_FK FOREIGN KEY (CIA)
      REFERENCES CMSCOMCOBRO (CIA);

ALTER TABLE CMSDETTABLA
   ADD CONSTRAINT CMSTABLA_DETTABLA_FK FOREIGN KEY (CIA, TABLA)
      REFERENCES CMSTABLA (CIA, TABLA);

ALTER TABLE CMSDIRECTA
   ADD CONSTRAINT CMSMAESTRO_DIRECTA_FK FOREIGN KEY (CIA, COMISION)
      REFERENCES CMSMAESTRO (CIA, COMISION);

ALTER TABLE CMSINDPUESTO
   ADD CONSTRAINT CMSMAESTRO_INDPUESTO_FK FOREIGN KEY (CIA, COMISION)
      REFERENCES CMSMAESTRO (CIA, COMISION);

ALTER TABLE CMSINDVENTAS
   ADD CONSTRAINT CMSMAESTRO_INDVENTAS_FK FOREIGN KEY (CIA, COMISION)
      REFERENCES CMSMAESTRO (CIA, COMISION);

ALTER TABLE CMSJEFESDEPTOS
   ADD CONSTRAINT CMSPARAMETROS_JEFESDEPTO_FK FOREIGN KEY (CIA)
      REFERENCES CMSPARAMETROS (CIA);

ALTER TABLE CMSJEFESTABLA
   ADD CONSTRAINT CMSTABLA_JEFES_FK FOREIGN KEY (CIA, TABLA)
      REFERENCES CMSTABLA (CIA, TABLA);

ALTER TABLE CMSLABORES
   ADD CONSTRAINT CMSPARAMETROS_LABORES_FK FOREIGN KEY (CIA)
      REFERENCES CMSPARAMETROS (CIA);

ALTER TABLE CMSMAESTRO
   ADD CONSTRAINT CMSPARAMETROS_VARIOS_FK FOREIGN KEY (CIA)
      REFERENCES CMSPARAMETROS (CIA);

ALTER TABLE CMSMONTOS
   ADD CONSTRAINT CMSPARAMETROS_MONTOS_FK FOREIGN KEY (CIA)
      REFERENCES CMSPARAMETROS (CIA);

ALTER TABLE CMSPREAFIL
   ADD CONSTRAINT CMSCOMCOBRO_PREAFIL_FK FOREIGN KEY (CIA)
      REFERENCES CMSCOMCOBRO (CIA);

ALTER TABLE CMSTABLA
   ADD CONSTRAINT CMSPARAMETROS_TABLA_FK FOREIGN KEY (CIA)
      REFERENCES CMSPARAMETROS (CIA);

