/*==============================================================*/
/* DBMS name:      PostgreSQL 8                                 */
/* Created on:     29/11/2011 8:43:06                           */
/*==============================================================*/


drop table CAJA;

drop table CIERRE_CAJA;

drop table COMPROBANTE;

drop table DEPARTAMENTO;

drop table DET_COMPROBANTE;

drop table DET_TICKET;

drop table SERVICIO;

drop table TICKET;

/*==============================================================*/
/* Table: CAJA                                                  */
/*==============================================================*/
create table CAJA (
   ID_CAJA              VARCHAR(5)           not null,
   DESCRIPCION          VARCHAR(50)          null,
   ESTATUS              VARCHAR(2)           null,
   constraint PK_CAJA primary key (ID_CAJA)
);

/*==============================================================*/
/* Table: CIERRE_CAJA                                           */
/*==============================================================*/
create table CIERRE_CAJA (
   ID_CIERRE            VARCHAR(5)           not null,
   ID_CAJA              VARCHAR(5)           null,
   DESCRIPCION          VARCHAR(50)          null,
   FECHA                DATE                 null,
   TOTAL                NUMERIC              null,
   CTA_INGRESO          VARCHAR(15)          null,
   constraint PK_CIERRE_CAJA primary key (ID_CIERRE)
);

/*==============================================================*/
/* Table: COMPROBANTE                                           */
/*==============================================================*/
create table COMPROBANTE (
   ID_COMPROBANTE       VARCHAR(5)           not null,
   FECHA                DATE                 null,
   CONCEPTO             VARCHAR(50)          null,
   TIPO_COMPROBANTE     VARCHAR(50)          null,
   MONTO_TOTAL          NUMERIC              null,
   constraint PK_COMPROBANTE primary key (ID_COMPROBANTE)
);

/*==============================================================*/
/* Table: DEPARTAMENTO                                          */
/*==============================================================*/
create table DEPARTAMENTO (
   ID_DEPARTAMENTO      VARCHAR(5)           not null,
   DESCRIPCION          VARCHAR(50)          null,
   NOMBRE_JEFE          VARCHAR(50)          null,
   ESTATUS              VARCHAR(2)           null,
   constraint PK_DEPARTAMENTO primary key (ID_DEPARTAMENTO)
);

/*==============================================================*/
/* Table: DET_COMPROBANTE                                       */
/*==============================================================*/
create table DET_COMPROBANTE (
   ID_COMPROBANTE       VARCHAR(5)           not null,
   ID_DET               VARCHAR(5)           not null,
   ID_CIERRE            VARCHAR(5)           null,
   OPERACION            VARCHAR(50)          null,
   MONTO_DET            VARCHAR(10)          null,
   NRO_CUETA            VARCHAR(20)          null,
   constraint PK_DET_COMPROBANTE primary key (ID_COMPROBANTE, ID_DET)
);

/*==============================================================*/
/* Table: DET_TICKET                                            */
/*==============================================================*/
create table DET_TICKET (
   ID_SERVICIO          VARCHAR(5)           not null,
   ID_TICKET            VARCHAR(5)           not null,
   CANTIDAD             VARCHAR(4)           null,
   PRECIO_TOTAL         NUMERIC              null,
   ESTATUS              VARCHAR(2)           null,
   OBSERVACION          VARCHAR(50)          null,
   constraint PK_DET_TICKET primary key (ID_SERVICIO, ID_TICKET)
);

/*==============================================================*/
/* Table: SERVICIO                                              */
/*==============================================================*/
create table SERVICIO (
   ID_SERVICIO          VARCHAR(5)           not null,
   ID_DEPARTAMENTO      VARCHAR(5)           null,
   PRECIO               NUMERIC              null,
   DESCRIPCION          VARCHAR(50)          null,
   ESTATUS              VARCHAR(2)           null,
   constraint PK_SERVICIO primary key (ID_SERVICIO)
);

/*==============================================================*/
/* Table: TICKET                                                */
/*==============================================================*/
create table TICKET (
   ID_TICKET            VARCHAR(5)           not null,
   CAJ_ID_CAJA          VARCHAR(5)           null,
   ID_ESTUDIANTE        VARCHAR(8)           null,
   ID_VENDEDOR          VARCHAR(8)           null,
   FECHA_TICKET         DATE                 null,
   ESTATUS              CHAR(2)              null,
   MONTO_TOTAL          NUMERIC              null,
   FECHA_ANULACION      DATE                 null,
   constraint PK_TICKET primary key (ID_TICKET)
);

alter table CIERRE_CAJA
   add constraint FK_CIERRE_C_REFERENCE_CAJA foreign key (ID_CAJA)
      references CAJA (ID_CAJA)
      on delete restrict on update restrict;

alter table DET_COMPROBANTE
   add constraint FK_DET_COMP_REFERENCE_CIERRE_C foreign key (ID_CIERRE)
      references CIERRE_CAJA (ID_CIERRE)
      on delete restrict on update restrict;

alter table DET_COMPROBANTE
   add constraint FK_DET_COMP_REFERENCE_COMPROBA foreign key (ID_COMPROBANTE)
      references COMPROBANTE (ID_COMPROBANTE)
      on delete restrict on update restrict;

alter table DET_TICKET
   add constraint FK_DET_TICK_REFERENCE_SERVICIO foreign key (ID_SERVICIO)
      references SERVICIO (ID_SERVICIO)
      on delete restrict on update restrict;

alter table DET_TICKET
   add constraint FK_DET_TICK_REFERENCE_TICKET foreign key (ID_TICKET)
      references TICKET (ID_TICKET)
      on delete restrict on update restrict;

alter table SERVICIO
   add constraint FK_SERVICIO_REFERENCE_DEPARTAM foreign key (ID_DEPARTAMENTO)
      references DEPARTAMENTO (ID_DEPARTAMENTO)
      on delete restrict on update restrict;

alter table TICKET
   add constraint FK_TICKET_REFERENCE_CAJA foreign key (CAJ_ID_CAJA)
      references CAJA (ID_CAJA)
      on delete restrict on update restrict;

