/*==============================================================*/
/* DBMS name:      ORACLE Version 9i                            */
/* Created on:     30/01/2008 11:52:05 a.m.                     */
/*==============================================================*/


/*==============================================================*/
/* Table: BANBAN                                                */
/*==============================================================*/
CREATE TABLE BANBAN  (
   COD_BANCO            VARCHAR2(12)                    NOT NULL,
   DES_BANCO            VARCHAR2(30)                    NOT NULL,
   TELEFONO1            VARCHAR2(15)                    NOT NULL,
   TELEFONO2            VARCHAR2(15),
   TELEFAX              VARCHAR2(15),
   CONTACTO             VARCHAR2(35),
   CONSTRAINT BANBAN_PK PRIMARY KEY (COD_BANCO)
);

/*==============================================================*/
/* Table: BANCHE                                                */
/*==============================================================*/
CREATE TABLE BANCHE  (
   COD_CIA              CHAR(3)                         NOT NULL,
   FORMA                CHAR(4)                         NOT NULL,
   NOMBRE               VARCHAR2(30)                    NOT NULL,
   LINEAS               NUMBER(2)                       NOT NULL,
   COLUMNAS             NUMBER(3)                       NOT NULL,
   REPORTE              VARCHAR2(16)                    NOT NULL,
   FORMATO              VARCHAR2(16)                    NOT NULL,
   CONSTRAINT BANCHE_PK PRIMARY KEY (COD_CIA, FORMA)
);

/*==============================================================*/
/* Table: BANCOBROS                                             */
/*==============================================================*/
CREATE TABLE BANCOBROS  (
   COD_CIA              CHAR(3)                         NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   TIPO_MOV             CHAR(2)                         NOT NULL,
   DOCUMENTO            NUMBER(10)                      NOT NULL,
   TIPMOV_COB           VARCHAR(3)                      NOT NULL,
   COD_CLIENTE          VARCHAR2(25)                    NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   NUM_DOCREF           NUMBER(10),
   LINEA                CHAR(3)                         NOT NULL,
   TIP_CAMBIO           NUMBER(14,4)                    NOT NULL
      CONSTRAINT BANCOBROS_TIPCAMBIO_CK CHECK (TIP_CAMBIO >= 0),
   INTERES              NUMBER(5,2)                     NOT NULL
      CONSTRAINT BANCOBROS_INTERES_CK CHECK (INTERES >= 0),
   INT_MORA             NUMBER(5,2)                     NOT NULL
      CONSTRAINT BANCOBROS_INTMORA_CK CHECK (INT_MORA >= 0),
   FEC_VENCE            DATE                            NOT NULL,
   MONTO                NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANCOBROS_MONTO_CK CHECK (MONTO >= 0),
   CONSTRAINT BANCOBROS_PK PRIMARY KEY (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO, TIPMOV_COB, COD_CLIENTE)
);

/*==============================================================*/
/* Table: BANCON                                                */
/*==============================================================*/
CREATE TABLE BANCON  (
   COD_CIA              CHAR(3)                         NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   TIPO_MOV             CHAR(2)                         NOT NULL,
   DOCUMENTO            NUMBER(10)                      NOT NULL,
   COD_CTA              VARCHAR2(25)                    NOT NULL,
   CCOSTO               VARCHAR2(7)                     NOT NULL,
   DESCRIPCION          VARCHAR2(30),
   DEBITO               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANCON_DEBITO_CK CHECK (DEBITO >= 0),
   CREDITO              NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANCON_CREDITO_CK CHECK (CREDITO >= 0),
   CONSTRAINT BANCON_PK PRIMARY KEY (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO, COD_CTA, CCOSTO)
);

/*==============================================================*/
/* Table: BANDOC                                                */
/*==============================================================*/
CREATE TABLE BANDOC  (
   COD_CIA              CHAR(3)                         NOT NULL,
   FUENTE               CHAR(3)                         NOT NULL
      CONSTRAINT BANDOC_FUENTE_CK CHECK (FUENTE IN ('CHQ','DEP','REL','DEL','ORT','ODP','DEB','CRE')),
   DESCR                VARCHAR2(20)                    NOT NULL,
   CONTABLE             CHAR(1)                         NOT NULL
      CONSTRAINT BANDOC_CONTABLE_CK CHECK (CONTABLE IN ('C','D')),
   CONSTRAINT BANDOC_PK PRIMARY KEY (COD_CIA, FUENTE)
);

/*==============================================================*/
/* Table: BANEST                                                */
/*==============================================================*/
CREATE TABLE BANEST  (
   COD_CIA              CHAR(3)                         NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   FECHA                DATE                            NOT NULL,
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT BANEST_ESTADO_CK CHECK (ESTADO IN ('P','E','C')),
   SALBAN               NUMBER(14,2)                    NOT NULL,
   DEBBAN               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANEST_DEBBAN_CK CHECK (DEBBAN >= 0),
   CREBAN               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANEST_CREBAN_CK CHECK (CREBAN >= 0),
   CONSTRAINT BANEST_PK PRIMARY KEY (COD_CIA, CUENTA, FECHA)
);

/*==============================================================*/
/* Table: BANESTDET                                             */
/*==============================================================*/
CREATE TABLE BANESTDET  (
   COD_CIA              CHAR(3)                         NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   FECHA                DATE                            NOT NULL,
   MOV_BANCO            VARCHAR2(7)                     NOT NULL,
   DOCUMENTO            NUMBER(10)                      NOT NULL,
   SECUENCIA            NUMBER(2)                       NOT NULL,
   TIPO_MOV             CHAR(2)                         NOT NULL,
   FECHA_DOC            DATE                            NOT NULL,
   MONTO                NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANESTDET_MONTO_CK CHECK (MONTO >= 0),
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT BANESTDET_CK CHECK (ESTADO IN ('P','E','C')),
   CONSTRAINT BANESTDET_PK PRIMARY KEY (COD_CIA, CUENTA, FECHA, MOV_BANCO, DOCUMENTO, SECUENCIA)
);

/*==============================================================*/
/* Table: BANFAC                                                */
/*==============================================================*/
CREATE TABLE BANFAC  (
   COD_CIA              CHAR(3)                         NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   TIPO_MOV             CHAR(2)                         NOT NULL,
   DOCUMENTO            NUMBER(10)                      NOT NULL,
   TIPMOV_PAG           VARCHAR(3)                      NOT NULL,
   FACTURA              NUMBER(10)                      NOT NULL,
   MONTO                NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANFAC_MONTO_CK CHECK (MONTO >= 0),
   INTERES              NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANFAC_INTERES CHECK (INTERES >= 0),
   INT_MORA             NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANFAC_INTMORA_CK CHECK (INT_MORA >= 0),
   CONSTRAINT BANFAC_PK PRIMARY KEY (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO, TIPMOV_PAG, FACTURA)
);

/*==============================================================*/
/* Table: BANHIS                                                */
/*==============================================================*/
CREATE TABLE BANHIS  (
   COD_CIA              CHAR(3)                         NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   FECHA                DATE                            NOT NULL,
   COD_CTA              VARCHAR2(25)                    NOT NULL,
   SALDO_INI            NUMBER(14,2)                    NOT NULL,
   DEBMES               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANHIS_DEBMES_CK CHECK (DEBMES >= 0),
   CREMES               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANHIS_CREMES_CK CHECK (CREMES >= 0),
   INGPEN               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANHIS_INGPEN_CK CHECK (INGPEN >= 0),
   EGRPEN               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANHIS_EGRPEN_CK CHECK (EGRPEN >= 0),
   LIMITE               NUMBER(14,2)                    NOT NULL,
   SALBAN               NUMBER(14,2)                    NOT NULL,
   DEBBAN               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANHIS_DEBBAN_CK CHECK (DEBBAN >= 0),
   CREBAN               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANHIS_CREBAN_CK CHECK (CREBAN >= 0),
   CONSECUTIVO          NUMBER(10)                      NOT NULL,
   CONSTRAINT BANHIS_PK PRIMARY KEY (COD_CIA, CUENTA, FECHA)
);

/*==============================================================*/
/* Table: BANIMP                                                */
/*==============================================================*/
CREATE TABLE BANIMP  (
   COD_CIA              CHAR(3)                         NOT NULL,
   IMPRESORA            VARCHAR2(12)                    NOT NULL,
   CONSTRAINT BANIMP_PK PRIMARY KEY (COD_CIA, IMPRESORA)
);

/*==============================================================*/
/* Table: BANLIN                                                */
/*==============================================================*/
CREATE TABLE BANLIN  (
   COD_CIA              CHAR(3)                         NOT NULL,
   FORMA                CHAR(4)                         NOT NULL,
   ORDINAL              NUMBER(3)                       NOT NULL
      CONSTRAINT BANLIN_ORDINAL_CK CHECK (ORDINAL >= 0),
   RELLENO              NUMBER(2)                       NOT NULL
      CONSTRAINT BANLIN_RELLENO_CK CHECK (RELLENO >= 0),
   LONGITUD             NUMBER(3)                       NOT NULL
      CONSTRAINT BANLIN_LONGITUD_CK CHECK (LONGITUD >= 0),
   TIPO                 CHAR(3)                         NOT NULL
      CONSTRAINT BANLIN_TIPO_CK CHECK (TIPO IN ('BAN','CNT','FEC','FLN','BEN','LET','MON','DBC','CRC','LUG','DET','DCN','COD','HEC','REV','CHE','CON','ROT','CCO')),
   MASCARA              VARCHAR2(30),
   DETALLE              VARCHAR2(30)                    NOT NULL,
   CONSTRAINT BANLIN_PK PRIMARY KEY (COD_CIA, FORMA, ORDINAL)
);

/*==============================================================*/
/* Table: BANMAE                                                */
/*==============================================================*/
CREATE TABLE BANMAE  (
   COD_CIA              CHAR(3)                         NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   COD_CTA              VARCHAR2(25)                    NOT NULL,
   DETALLE              VARCHAR2(30)                    NOT NULL,
   COD_BANCO            VARCHAR2(12)                    NOT NULL,
   SALDO_INI            NUMBER(14,2)                    NOT NULL,
   DEBMES               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANMAE_DEBMES_CK CHECK (DEBMES >= 0),
   CREMES               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANMAE_CREMES_CK CHECK (CREMES >= 0),
   INGPEN               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANMAE_INGPEN_CK CHECK (INGPEN >= 0),
   EGRPEN               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANMAE_EGRPEN_CK CHECK (EGRPEN >= 0),
   LIMITE               NUMBER(14,2)                    NOT NULL,
   SOBREGIRO            NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANMAE_SOBREGIRO_CK CHECK (SOBREGIRO >= 0),
   SALBAN               NUMBER(14,2)                    NOT NULL,
   DEBBAN               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANMAE_DEBBAN_CK CHECK (DEBBAN >= 0),
   CREBAN               NUMBER(14,2)                    NOT NULL
      CONSTRAINT BANMAE_CREBAN_CK CHECK (CREBAN >= 0),
   CONSECUTIVO          NUMBER(10)                      NOT NULL
      CONSTRAINT BANMAE_CONSECUTIVO_CK CHECK (CONSECUTIVO >= 0),
   CHEQUE               NUMBER(10)                      NOT NULL
      CONSTRAINT BANMAE_CHEQUE_CK CHECK (CHEQUE >= 0),
   ENTREGA              CHAR(1)                         NOT NULL
      CONSTRAINT BANMAE_ENTREGA_CK CHECK (ENTREGA IN ('S','N')),
   CON_LINEA            CHAR(1)                         NOT NULL
      CONSTRAINT BANMAE_CON_LINEA_CK CHECK (CON_LINEA IN ('S','N')),
   PAG_LINEA            CHAR(1)                         NOT NULL
      CONSTRAINT BANMAE_PAGLINEA_CK CHECK (PAG_LINEA IN ('S','N')),
   FORMA                CHAR(4)                         NOT NULL,
   ULTIMO_CIERRE        DATE                            NOT NULL,
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT BANMAE_ESTADO_CK CHECK (ESTADO IN ('A','E')),
   CONSTRAINT BANMAE_PK PRIMARY KEY (COD_CIA, CUENTA),
   CONSTRAINT BANMAE_CODCTA_UQ UNIQUE (COD_CIA, COD_CTA)
);

/*==============================================================*/
/* Index: BANBAN_BANMAE_FK1                                     */
/*==============================================================*/
CREATE INDEX BANBAN_BANMAE_FK1 ON BANMAE (
   COD_BANCO ASC
);

/*==============================================================*/
/* Index: BANCHE_BANMAE_FK2                                     */
/*==============================================================*/
CREATE INDEX BANCHE_BANMAE_FK2 ON BANMAE (
   COD_CIA ASC,
   FORMA ASC
);

/*==============================================================*/
/* Table: BANMOV                                                */
/*==============================================================*/
CREATE TABLE BANMOV  (
   COD_CIA              CHAR(3)                         NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   TIPO_MOV             CHAR(2)                         NOT NULL,
   DOCUMENTO            NUMBER(10)                      NOT NULL,
   FECHA_REG            DATE                            NOT NULL,
   FECHA                DATE                            NOT NULL,
   DETALLE              VARCHAR2(320)                   NOT NULL,
   INTEGRACION          CHAR(3)                        
      CONSTRAINT BANMOV_INTEGRACION_CK CHECK (INTEGRACION IS NULL OR ( INTEGRACION IN ('CXC','CXP','PLA') )),
   NUM_DOCREF           VARCHAR2(10),
   ANO_FISCAL           NUMBER(4)                       NOT NULL,
   PER_PROCESO          NUMBER(2)                       NOT NULL,
   NUM_ASIENTO          VARCHAR2(15),
   SESION               NUMBER(5)                       NOT NULL,
   TIP_CAMBIO           NUMBER(14,4)                    NOT NULL,
   TIP_CAMBIO_BASE      NUMBER(14,4)                    NOT NULL,
   MONTO                NUMBER(14,2)                    NOT NULL,
   TRANSITO             CHAR(1)                         NOT NULL
      CONSTRAINT BANMOV_TRANSITO_CK CHECK (TRANSITO IN ('S','N')),
   USUARIO              VARCHAR2(30)                    NOT NULL,
   FECHA_CON            DATE,
   NOM_ASIENTO          VARCHAR2(20),
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT BANMOV_ESTADO_CK CHECK (ESTADO IN ('A','E','C','P','T','K','N')),
   CONSTRAINT BANMOV_PK PRIMARY KEY (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO)
);

/*==============================================================*/
/* Index: BANTIP_BANMOV_FK2                                     */
/*==============================================================*/
CREATE INDEX BANTIP_BANMOV_FK2 ON BANMOV (
   COD_CIA ASC,
   TIPO_MOV ASC
);

/*==============================================================*/
/* Table: BANMOVCHK                                             */
/*==============================================================*/
CREATE TABLE BANMOVCHK  (
   COD_CIA              CHAR(3)                         NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   TIPO_MOV             CHAR(2)                         NOT NULL,
   DOCUMENTO            NUMBER(10)                      NOT NULL,
   FECHA_EFE            DATE                            NOT NULL,
   FECHA_ENT            DATE,
   BENEFICIA            VARCHAR2(60)                    NOT NULL,
   RECUPERABLE          CHAR(1)                         NOT NULL
      CONSTRAINT BANMOVCHK_RECUPERABLE_CK CHECK (RECUPERABLE IN ('S','N')),
   IMPRESO              CHAR(1)                         NOT NULL
      CONSTRAINT BANMOVCHK_IMPRESO_CK CHECK (IMPRESO IN ('S','N')),
   COD_PROVEEDOR        VARCHAR2(25),
   CONSTRAINT BANMOVCHK_PK PRIMARY KEY (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO)
);

/*==============================================================*/
/* Table: BANMOVTRS                                             */
/*==============================================================*/
CREATE TABLE BANMOVTRS  (
   COD_CIA              CHAR(3)                         NOT NULL,
   TRASLADO             VARCHAR2(10)                    NOT NULL,
   CUENTAF              VARCHAR2(20)                    NOT NULL,
   TIPO_MOVF            CHAR(2)                         NOT NULL,
   DOCUMENTOF           NUMBER(10)                      NOT NULL,
   CUENTAD              VARCHAR2(20)                    NOT NULL,
   TIPO_MOVD            CHAR(2)                         NOT NULL,
   DOCUMENTOD           NUMBER(10)                      NOT NULL,
   CONSTRAINT BANMOVTRS_PK PRIMARY KEY (COD_CIA, TRASLADO)
);

/*==============================================================*/
/* Index: BANMOV_TRSFUENTE_FK1                                  */
/*==============================================================*/
CREATE INDEX BANMOV_TRSFUENTE_FK1 ON BANMOVTRS (
   COD_CIA ASC,
   CUENTAF ASC,
   TIPO_MOVF ASC,
   DOCUMENTOF ASC
);

/*==============================================================*/
/* Index: BANMOV_TRSDESTINO_FK2                                 */
/*==============================================================*/
CREATE INDEX BANMOV_TRSDESTINO_FK2 ON BANMOVTRS (
   COD_CIA ASC,
   CUENTAD ASC,
   TIPO_MOVD ASC,
   DOCUMENTOD ASC
);

/*==============================================================*/
/* Table: BANPARAM                                              */
/*==============================================================*/
CREATE TABLE BANPARAM  (
   COD_CIA              CHAR(3)                         NOT NULL,
   INT_CON              CHAR(1)                         NOT NULL
      CONSTRAINT BANPARAM_INTCON_CK CHECK (INT_CON IN ('S','N')),
   INT_PAG              CHAR(1)                         NOT NULL
      CONSTRAINT BANPARAM_INTPAG_CK CHECK (INT_PAG IN ('S','N')),
   FRECUENCIA           CHAR(1)                         NOT NULL
      CONSTRAINT BANPARAM_FRECUENCIA_CK CHECK (FRECUENCIA IN ('M','D','S')),
   MESES_HIST           NUMBER(2)                       NOT NULL
      CONSTRAINT BANPARAM_MESESHIST_CK CHECK (MESES_HIST >= 0),
   EXPIRACION           NUMBER(2)                       NOT NULL
      CONSTRAINT BANPARAM_EXPIRACION_CK CHECK (EXPIRACION >= 0),
   DIAS_POST            NUMBER(2)                       NOT NULL
      CONSTRAINT BANPARAM_DIASPOST_CK CHECK (DIAS_POST >= 0),
   AGENTE_COBRO         VARCHAR2(3),
   CONSTRAINT BANPARAM_PK PRIMARY KEY (COD_CIA)
);

/*==============================================================*/
/* Table: BANTIP                                                */
/*==============================================================*/
CREATE TABLE BANTIP  (
   COD_CIA              CHAR(3)                         NOT NULL,
   TIPO_MOV             CHAR(2)                         NOT NULL,
   FUENTE               CHAR(3)                         NOT NULL
      CONSTRAINT BANTIP_FUENTE_CK CHECK (FUENTE IN ('CHQ','DEP','REL','DEL','ORT','ODP','DEB','CRE')),
   DESCR                VARCHAR2(20)                    NOT NULL,
   MOV_CONT             VARCHAR(2)                      NOT NULL,
   CONSTRAINT BANTIP_PK PRIMARY KEY (COD_CIA, TIPO_MOV)
);

/*==============================================================*/
/* Index: BANDOC_BANTIP_FK1                                     */
/*==============================================================*/
CREATE INDEX BANDOC_BANTIP_FK1 ON BANTIP (
   COD_CIA ASC,
   FUENTE ASC
);

/*==============================================================*/
/* Table: BANTIPBAN                                             */
/*==============================================================*/
CREATE TABLE BANTIPBAN  (
   COD_CIA              CHAR(3)                         NOT NULL,
   TIPO_MOV             CHAR(2)                         NOT NULL,
   COD_BANCO            VARCHAR2(12)                    NOT NULL,
   MOV_BANCO            VARCHAR2(7)                     NOT NULL,
   CONSTRAINT BANTIPBAN_PK PRIMARY KEY (COD_CIA, TIPO_MOV, COD_BANCO)
);

/*==============================================================*/
/* Index: BANBAN_TIPBAN_FK2                                     */
/*==============================================================*/
CREATE INDEX BANBAN_TIPBAN_FK2 ON BANTIPBAN (
   COD_BANCO ASC
);

/*==============================================================*/
/* View: BANTIPBRES                                             */
/*==============================================================*/
CREATE OR REPLACE VIEW BANTIPBRES AS
SELECT COD_CIA, COD_BANCO, MOV_BANCO, MIN(TIPO_MOV) TIPO_MOV      
FROM BANTIPBAN
GROUP BY COD_CIA, COD_BANCO, MOV_BANCO;

/*==============================================================*/
/* View: BANCHK                                                 */
/*==============================================================*/
CREATE OR REPLACE VIEW BANCHK AS
SELECT M.COD_CIA, M.CUENTA, M.TIPO_MOV, M.DOCUMENTO, 
       M.NOM_ASIENTO, M.FECHA_REG, M.FECHA, M.DETALLE, 
       M.TRANSITO, M.ANO_FISCAL, M.PER_PROCESO, M.NUM_ASIENTO, 
       M.SESION, M.TIP_CAMBIO, M.TIP_CAMBIO_BASE, M.MONTO, M.INTEGRACION, 
       M.NUM_DOCREF, M.USUARIO, M.ESTADO, Q.FECHA_EFE, Q.FECHA_ENT, 
       Q.BENEFICIA, Q.COD_PROVEEDOR, Q.RECUPERABLE, Q.IMPRESO
FROM BANMOV M, BANMOVCHK Q
WHERE M.COD_CIA = Q.COD_CIA 
AND M.CUENTA = Q.CUENTA 
AND M.TIPO_MOV = Q.TIPO_MOV 
AND M.DOCUMENTO = Q.DOCUMENTO;

ALTER TABLE BANCOBROS
   ADD CONSTRAINT BANMOVCHK_COBROS_FK FOREIGN KEY (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO)
      REFERENCES BANMOVCHK (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO);

ALTER TABLE BANCON
   ADD CONSTRAINT BANMOV_BANCON_FK FOREIGN KEY (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO)
      REFERENCES BANMOV (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO);

ALTER TABLE BANEST
   ADD CONSTRAINT BANMAE_BANEST_FK FOREIGN KEY (COD_CIA, CUENTA)
      REFERENCES BANMAE (COD_CIA, CUENTA);

ALTER TABLE BANESTDET
   ADD CONSTRAINT BANEST_ESTDET_FK FOREIGN KEY (COD_CIA, CUENTA, FECHA)
      REFERENCES BANEST (COD_CIA, CUENTA, FECHA);

ALTER TABLE BANFAC
   ADD CONSTRAINT BANMOVCHK_BANFAC_FK FOREIGN KEY (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO)
      REFERENCES BANMOVCHK (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO);

ALTER TABLE BANLIN
   ADD CONSTRAINT BANCHE_BANLIN_FK FOREIGN KEY (COD_CIA, FORMA)
      REFERENCES BANCHE (COD_CIA, FORMA);

ALTER TABLE BANMAE
   ADD CONSTRAINT BANBAN_BANMAE_FK FOREIGN KEY (COD_BANCO)
      REFERENCES BANBAN (COD_BANCO);

ALTER TABLE BANMAE
   ADD CONSTRAINT BANCHE_BANMAE_FK FOREIGN KEY (COD_CIA, FORMA)
      REFERENCES BANCHE (COD_CIA, FORMA);

ALTER TABLE BANMAE
   ADD CONSTRAINT BANPARAM_BANMAE_FK FOREIGN KEY (COD_CIA)
      REFERENCES BANPARAM (COD_CIA);

ALTER TABLE BANMOV
   ADD CONSTRAINT BANMAE_BANMOV_FK FOREIGN KEY (COD_CIA, CUENTA)
      REFERENCES BANMAE (COD_CIA, CUENTA);

ALTER TABLE BANMOV
   ADD CONSTRAINT BANTIP_BANMOV_FK FOREIGN KEY (COD_CIA, TIPO_MOV)
      REFERENCES BANTIP (COD_CIA, TIPO_MOV);

ALTER TABLE BANMOVCHK
   ADD CONSTRAINT BANMOV_MOVCHK_FK FOREIGN KEY (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO)
      REFERENCES BANMOV (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO);

ALTER TABLE BANMOVTRS
   ADD CONSTRAINT BANMOV_TRSDESTINO_FK FOREIGN KEY (COD_CIA, CUENTAD, TIPO_MOVD, DOCUMENTOD)
      REFERENCES BANMOV (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO);

ALTER TABLE BANMOVTRS
   ADD CONSTRAINT BANMOV_TRSFUENTE_FK FOREIGN KEY (COD_CIA, CUENTAF, TIPO_MOVF, DOCUMENTOF)
      REFERENCES BANMOV (COD_CIA, CUENTA, TIPO_MOV, DOCUMENTO);

ALTER TABLE BANTIP
   ADD CONSTRAINT BANDOC_BANTIP_FK FOREIGN KEY (COD_CIA, FUENTE)
      REFERENCES BANDOC (COD_CIA, FUENTE);

ALTER TABLE BANTIPBAN
   ADD CONSTRAINT BANBAN_TIPBAN_FK FOREIGN KEY (COD_BANCO)
      REFERENCES BANBAN (COD_BANCO);

ALTER TABLE BANTIPBAN
   ADD CONSTRAINT BANTIP_TIPBAN_FK FOREIGN KEY (COD_CIA, TIPO_MOV)
      REFERENCES BANTIP (COD_CIA, TIPO_MOV);

