/*==============================================================*/
/* Table: COMDETDISTRIBUCION                                    */
/*==============================================================*/
create table COMDETDISTRIBUCION  (
   COD_CIA              CHAR(3)                         not null,
   SISTEMA              VARCHAR2(4)                     not null,
   DISTRIBUCION         NUMBER(10)                      not null,
   LINEA                NUMBER(4)                       not null,
   COD_CTA              VARCHAR2(25)                    not null,
   CCOSTO               VARCHAR2(7)                     not null,
   DESCRIPCION          VARCHAR2(40),
   DEBITO               NUMBER(14,2)                    not null,
   CREDITO              NUMBER(14,2)                    not null,
   constraint COMDETDISTRIBUCION_PK primary key (COD_CIA, SISTEMA, DISTRIBUCION, LINEA)
);


/*==============================================================*/
/* Table: COMDISTRIBUCION                                       */
/*==============================================================*/
create table COMDISTRIBUCION  (
   COD_CIA              CHAR(3)                         not null,
   SISTEMA              VARCHAR2(4)                     not null,
   DISTRIBUCION         NUMBER(10)                      not null,
   DESCRIPCION          VARCHAR2(40),
   FECHA                DATE                            not null,
   FECREG               DATE                            not null,
   ORIGEN               VARCHAR2(4)                     not null,
   CLASE                VARCHAR2(6)                     not null,
   MONEDA               VARCHAR2(3)                     not null,
   TIPCAMBIO            NUMBER(14,4)                    not null,
   CAMBIOBASE           NUMBER(14,4)                    not null,
   ASIENTO              VARCHAR2(15),
   PERIODO              NUMBER(6),
   ESTADO               CHAR(1)                         not null
      constraint COMDISTRIBUCION_ESTADO_CK check (ESTADO in ('A','N')),
   constraint COMDISTRIBUCION_PK primary key (COD_CIA, SISTEMA, DISTRIBUCION)
);

/*==============================================================*/
/* Index: COMDISTRIBUCION_FECHA                                 */
/*==============================================================*/
create index COMDISTRIBUCION_FECHA on COMDISTRIBUCION (
   FECHA ASC,
   ASIENTO ASC
);

create or replace view COMVDISTRIBUCION as
   select COD_CIA, SISTEMA, DISTRIBUCION, DESCRIPCION, FECHA, FECREG,
          ORIGEN, CLASE, MONEDA, TIPCAMBIO, CAMBIOBASE, ASIENTO,
          PERIODO, DECODE(ASIENTO,NULL,ESTADO,'C') ESTADO
   from COMDISTRIBUCION;

alter table COMDETDISTRIBUCION
   add constraint COMDISTRIBUCION_DETALLE_FK foreign key (COD_CIA, SISTEMA, DISTRIBUCION)
      references COMDISTRIBUCION (COD_CIA, SISTEMA, DISTRIBUCION);

