/*==============================================================*/
/* DBMS name:      ORACLE Version 9i                            */
/* Created on:     26/12/2007 03:48:07 p.m.                     */
/*==============================================================*/


/*==============================================================*/
/* Table: PRDAJUSTE                                             */
/*==============================================================*/
CREATE TABLE PRDAJUSTE  (
   CIA                  CHAR(3)                         NOT NULL,
   ORDEN                NUMBER(10)                      NOT NULL,
   COD_ARTICULO         VARCHAR2(25)                    NOT NULL,
   COD_BODEGA           VARCHAR2(3)                     NOT NULL,
   MEDIDA               VARCHAR2(5)                     NOT NULL,
   TIPO                 CHAR(1)                         NOT NULL
      CONSTRAINT PRDAJUSTE_TIPO_CK CHECK (TIPO IN ('E','S')),
   CANTIDAD             NUMBER(14,4)                    NOT NULL
      CONSTRAINT PRDAJUSTE_CANTIDAD_CK CHECK (CANTIDAD >= 0),
   CONSTRAINT PRDAJUSTE_PK PRIMARY KEY (CIA, ORDEN, COD_ARTICULO, COD_BODEGA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: PRDCOSTOS                                             */
/*==============================================================*/
CREATE TABLE PRDCOSTOS  (
   CIA                  CHAR(3)                         NOT NULL,
   ORDEN                NUMBER(10)                      NOT NULL,
   PROCESO              VARCHAR2(10)                    NOT NULL,
   FECHA                DATE                            NOT NULL,
   REREFERENCIA         VARCHAR2(10),
   MONTO                NUMBER(14,2)                    NOT NULL
      CONSTRAINT PRDCOSTOS_MONTO_CK CHECK (MONTO >= 0),
   OBSERVACIONES        VARCHAR2(200)                   NOT NULL,
   USUARIO              VARCHAR2(30)                    NOT NULL,
   CONSTRAINT PRDCOSTOS_PK PRIMARY KEY (CIA, ORDEN, PROCESO, FECHA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: PRDORDEN_COSTOS_FK                                    */
/*==============================================================*/
CREATE INDEX PRDORDEN_COSTOS_FK ON PRDCOSTOS (
   CIA ASC,
   ORDEN ASC
);

/*==============================================================*/
/* Index: PRDPROCESO_COSTOS_FK                                  */
/*==============================================================*/
CREATE INDEX PRDPROCESO_COSTOS_FK ON PRDCOSTOS (
   CIA ASC,
   PROCESO ASC
);

/*==============================================================*/
/* Table: PRDDETORDEN                                           */
/*==============================================================*/
CREATE TABLE PRDDETORDEN  (
   CIA                  CHAR(3)                         NOT NULL,
   ORDEN                NUMBER(10)                      NOT NULL,
   LINEA                NUMBER(4)                       NOT NULL,
   GRUPO                VARCHAR2(25)                    NOT NULL,
   MEDIDA               VARCHAR2(5)                     NOT NULL,
   CANTIDAD             NUMBER(14,4)                    NOT NULL
      CONSTRAINT PRDDETORDEN_CANTIDAD_CK CHECK (CANTIDAD >= 0),
   CMOD                 NUMBER(14,2)                    NOT NULL
      CONSTRAINT PRDDETORDEN_CMOD_CK CHECK (CMOD >= 0),
   CIND                 NUMBER(14,2)                    NOT NULL
      CONSTRAINT PRDDETORDEN_CIND_CK CHECK (CIND >= 0),
   MATPRIMA             NUMBER(14,2)                    NOT NULL
      CONSTRAINT PRDDETORDEN_MATPRIMA_CK CHECK (MATPRIMA >= 0),
   MATEMPAQUE           NUMBER(14,2)                    NOT NULL
      CONSTRAINT PRDDETORDEN_MATEMPAQUE_CK CHECK (MATEMPAQUE >= 0),
   APLICADO             CHAR(1)                         NOT NULL
      CONSTRAINT PRDDETORDEN_APLICADO_CK CHECK (APLICADO IN ('S','N')),
   CONSTRAINT PRDDETORDEN_PK PRIMARY KEY (CIA, ORDEN, LINEA, GRUPO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: PRDORDEN_DET_FK                                       */
/*==============================================================*/
CREATE INDEX PRDORDEN_DET_FK ON PRDDETORDEN (
   CIA ASC,
   ORDEN ASC
);

/*==============================================================*/
/* Table: PRDORDEN                                              */
/*==============================================================*/
CREATE TABLE PRDORDEN  (
   CIA                  CHAR(3)                         NOT NULL,
   ORDEN                NUMBER(10)                      NOT NULL,
   FECHA                DATE                            NOT NULL,
   INICIO               DATE                            NOT NULL,
   DURACION             NUMBER(3)                       NOT NULL
      CONSTRAINT PRDORDEN_DURACION_CK CHECK (DURACION >= 0),
   REFERENCIA           VARCHAR2(15)                    NOT NULL,
   ENCARGADO            VARCHAR2(30)                    NOT NULL,
   DESCRIPCION          VARCHAR2(200)                   NOT NULL,
   ESTANDAR             VARCHAR2(25)                    NOT NULL,
   MEDIDA               VARCHAR2(5)                     NOT NULL,
   CANTIDAD             NUMBER(14,4)                    NOT NULL
      CONSTRAINT PRDORDEN_CANTIDAD_CK CHECK (CANTIDAD >= 0),
   NUMREFENT            VARCHAR2(10),
   NUMREFSAL            VARCHAR2(10),
   COD_BODEGA           CHAR(3)                         NOT NULL,
   USUARIO              VARCHAR2(30)                    NOT NULL,
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT PRDORDEN_ESTADO_CK CHECK (ESTADO IN ('P','A','F','N')),
   CONSTRAINT PRDORDEN_PK PRIMARY KEY (CIA, ORDEN)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: PRDPARAMETRO                                          */
/*==============================================================*/
CREATE TABLE PRDPARAMETRO  (
   CIA                  CHAR(3)                         NOT NULL,
   TIPO_INVME           VARCHAR2(3)                     NOT NULL,
   DISTMOBIND           CHAR(1)                         NOT NULL
      CONSTRAINT PRDPARAMETRO_DISTMOBIND_CK CHECK (DISTMOBIND IN ('M','C')),
   CONSORDEN            NUMBER(10)                      NOT NULL,
   CODMOVTOENT          CHAR(2)                         NOT NULL,
   COD_BODEGA           VARCHAR2(3),
   CODMOVTOSAL          CHAR(2),
   CODMOVTOVEN          CHAR(2),
   CONSENTRADA          NUMBER(10)                     DEFAULT 0 NOT NULL,
   CONSSALIDA           NUMBER(10)                     DEFAULT 0 NOT NULL,
   CONSTRAINT PRDPARAMETRO_PK PRIMARY KEY (CIA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: PRDPROCESO                                            */
/*==============================================================*/
CREATE TABLE PRDPROCESO  (
   CIA                  CHAR(3)                         NOT NULL,
   PROCESO              VARCHAR2(10)                    NOT NULL,
   DESCRIPCION          VARCHAR2(60)                    NOT NULL,
   CLASE                CHAR(1)                         NOT NULL
      CONSTRAINT PRDPROCESO_CLASE_CK CHECK (CLASE IN ('M','I')),
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT PRDPROCESO_ESTADO_CK CHECK (ESTADO IN ('A','I')),
   CONSTRAINT PRDPROCESO_PK PRIMARY KEY (CIA, PROCESO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

ALTER TABLE PRDAJUSTE
   ADD CONSTRAINT PRDORDEN_AJUSTE_FK FOREIGN KEY (CIA, ORDEN)
      REFERENCES PRDORDEN (CIA, ORDEN);

ALTER TABLE PRDCOSTOS
   ADD CONSTRAINT PRDORDEN_COSTOS_FK FOREIGN KEY (CIA, ORDEN)
      REFERENCES PRDORDEN (CIA, ORDEN);

ALTER TABLE PRDCOSTOS
   ADD CONSTRAINT PRDPROCESO_COSTOS_FK FOREIGN KEY (CIA, PROCESO)
      REFERENCES PRDPROCESO (CIA, PROCESO);

ALTER TABLE PRDDETORDEN
   ADD CONSTRAINT PRDORDEN_DET_FK FOREIGN KEY (CIA, ORDEN)
      REFERENCES PRDORDEN (CIA, ORDEN);

ALTER TABLE PRDORDEN
   ADD CONSTRAINT PRDPARAMETRO_FK FOREIGN KEY (CIA)
      REFERENCES PRDPARAMETRO (CIA);

