/*==============================================================*/
/* DBMS name:      ORACLE Version 9i                            */
/* Created on:     31/01/2008 10:01:24 a.m.                     */
/*==============================================================*/


CREATE SEQUENCE CXP_GEN_PAGO;

/*==============================================================*/
/* Table: CXP_CHEQUES                                           */
/*==============================================================*/
CREATE TABLE CXP_CHEQUES  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   TIPO_MOV             CHAR(2)                         NOT NULL,
   DOCUMENTO            NUMBER(10)                      NOT NULL,
   FECHA_PAGO           DATE                            NOT NULL,
   MONTO_PAGO           NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_CHEQUES_MONTO_PAGO_CK CHECK (MONTO_PAGO >= 0),
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT CXP_CHEQUES_ESTADO_CK CHECK (ESTADO IN ('C','P')),
   CONSTRAINT CXP_CHEQUES_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
);

/*==============================================================*/
/* Table: CXP_CON_DOCUMENTO                                     */
/*==============================================================*/
CREATE TABLE CXP_CON_DOCUMENTO  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   CONSECUTIVO          NUMBER(10)                     DEFAULT 0 NOT NULL,
   CONSTRAINT CXP_CON_DOCUMENTO_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC)
);

/*==============================================================*/
/* Index: CXPDOCUMENTO_CONDOC_FK1                               */
/*==============================================================*/
CREATE INDEX CXPDOCUMENTO_CONDOC_FK1 ON CXP_CON_DOCUMENTO (
   TIP_DOC ASC
);

/*==============================================================*/
/* Table: CXP_CREDITO                                           */
/*==============================================================*/
CREATE TABLE CXP_CREDITO  (
   COD_CIA              CHAR(3)                         NOT NULL,
   COD_PROVEEDOR        VARCHAR2(25)                    NOT NULL,
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   CUENTA               VARCHAR2(20),
   DIAS_CREDITO         NUMBER(3)                       NOT NULL,
   LIMITE_CREDITO       NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_CREDITO_LIMITECREDITO_CK CHECK (LIMITE_CREDITO >= 0),
   INTERES              NUMBER(5,2)                     NOT NULL
      CONSTRAINT CXP_CREDITO_INTERES_CK CHECK (INTERES >= 0),
   SALDO                NUMBER(14,2)                    NOT NULL,
   COD_BANCO            VARCHAR2(12),
   CONSTRAINT CXP_CREDITO_PK PRIMARY KEY (COD_CIA, COD_PROVEEDOR, COD_MONEDA)
);

/*==============================================================*/
/* Table: CXP_CREDITO_TMP                                       */
/*==============================================================*/
CREATE TABLE CXP_CREDITO_TMP  (
   COD_CIA              CHAR(3)                         NOT NULL,
   COD_PROVEEDOR        VARCHAR2(25)                    NOT NULL,
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   LIMITE_CREDITO       NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_CREDITO_LIMITECREDITO_CK2 CHECK (LIMITE_CREDITO >= 0),
   SALDO                NUMBER(14,2)                    NOT NULL,
   CONSTRAINT CXP_CREDITO_PK2 PRIMARY KEY (COD_CIA, COD_PROVEEDOR, COD_MONEDA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CXP_DET_DESCU                                         */
/*==============================================================*/
CREATE TABLE CXP_DET_DESCU  (
   COD_CIA              CHAR(3)                         NOT NULL,
   COD_PROVEEDOR        VARCHAR2(25)                    NOT NULL,
   DIAS                 NUMBER(3)                       NOT NULL
      CONSTRAINT CXP_TRAMITES_DIAS_CK CHECK (DIAS >= 0),
   POR_DESC             NUMBER(4,2)                     NOT NULL,
   CONSTRAINT CXP_DET_DESCU_PK PRIMARY KEY (COD_CIA, COD_PROVEEDOR, DIAS)
);

/*==============================================================*/
/* Table: CXP_DET_GEN_PAGO                                      */
/*==============================================================*/
CREATE TABLE CXP_DET_GEN_PAGO  (
   COD_CIA              CHAR(3)                         NOT NULL,
   ID_PAGO              NUMBER(10)                      NOT NULL,
   COD_PROVEEDOR        VARCHAR2(25)                    NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   NUM_PARTE            NUMBER(4)                       NOT NULL,
   FEC_VENCE            DATE                            NOT NULL,
   MON_PAGO             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_GENPAGO_MON_PAGO_CK CHECK (MON_PAGO >= 0),
   INTERES              NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_GENPAGO_INTERES_CK CHECK (INTERES >= 0),
   INT_MORA             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_GENPAGO_INT_MORA_CK CHECK (INT_MORA >= 0),
   DESCUENTO            NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_GEN_PAGO_DESCUENTO_CK CHECK (DESCUENTO >= 0),
   CONSTRAINT CXP_DET_GEN_PAGO_PK PRIMARY KEY (COD_CIA, ID_PAGO, COD_PROVEEDOR, SUCURSAL, TIP_DOC, NUM_DOC, NUM_PARTE)
);

/*==============================================================*/
/* Index: CXPENCMOVIMIENTO_DETGENPAG_FK2                        */
/*==============================================================*/
CREATE INDEX CXPENCMOVIMIENTO_DETGENPAG_FK2 ON CXP_DET_GEN_PAGO (
   COD_CIA ASC,
   SUCURSAL ASC,
   TIP_DOC ASC,
   NUM_DOC ASC
);

/*==============================================================*/
/* Table: CXP_DET_MOVIMIENTO                                    */
/*==============================================================*/
CREATE TABLE CXP_DET_MOVIMIENTO  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   NUM_LINEA            NUMBER(5)                       NOT NULL,
   MON_DETALLE          NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_MOVIMIEN_MON_DETALL_CK CHECK (MON_DETALLE >= 0),
   DES_DETALLE          VARCHAR2(25),
   CONSTRAINT CXP_DET_MOVIMIENTO_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC, NUM_LINEA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CXP_DET_MOVIMIENTO_HIST                               */
/*==============================================================*/
CREATE TABLE CXP_DET_MOVIMIENTO_HIST  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   NUM_LINEA            NUMBER(5)                       NOT NULL,
   MON_DETALLE          NUMBER(14,2)                    NOT NULL,
   DES_DETALLE          VARCHAR2(25),
   CONSTRAINT CXP_DET_MOVIMIENTO_HIST_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC, NUM_LINEA)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CXP_DET_PAGO_NOTA                                     */
/*==============================================================*/
CREATE TABLE CXP_DET_PAGO_NOTA  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   SUCURSAL_REF         CHAR(3)                         NOT NULL,
   TIP_DOC_REF          CHAR(3)                         NOT NULL,
   NUM_DOC_REF          NUMBER(10)                      NOT NULL,
   NUM_PARTE            NUMBER(4),
   FEC_VENCE            DATE                            NOT NULL,
   MON_DESCUENTO        NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_PGNT_MON_DESC_CK CHECK (MON_DESCUENTO >= 0),
   MON_PAGO             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_PGNT_MON_PAGO_CK CHECK (MON_PAGO >= 0),
   INTERES              NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_PGNT_INTERES_CK CHECK (INTERES >= 0),
   INT_MORA             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_PGNT_INT_MORA_CK CHECK (INT_MORA >= 0),
   CONSTRAINT CXPDETPAGONOTA_UQ UNIQUE (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC, SUCURSAL_REF, TIP_DOC_REF, NUM_DOC_REF, NUM_PARTE)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: CXPENCMOVIMIENTO_DETPAGO_FK2                          */
/*==============================================================*/
CREATE INDEX CXPENCMOVIMIENTO_DETPAGO_FK2 ON CXP_DET_PAGO_NOTA (
   COD_CIA ASC,
   SUCURSAL_REF ASC,
   TIP_DOC_REF ASC,
   NUM_DOC_REF ASC
);

/*==============================================================*/
/* Table: CXP_DET_PAGO_NOTA_HIST                                */
/*==============================================================*/
CREATE TABLE CXP_DET_PAGO_NOTA_HIST  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   SUCURSAL_REF         CHAR(3)                         NOT NULL,
   TIP_DOC_REF          CHAR(3)                         NOT NULL,
   NUM_DOC_REF          NUMBER(10)                      NOT NULL,
   NUM_PARTE            NUMBER(4),
   FEC_VENCE            DATE                            NOT NULL,
   MON_DESCUENTO        NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_PGNT_MON_DESC_CK2 CHECK (MON_DESCUENTO >= 0),
   MON_PAGO             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_PGNT_MON_PAGO_CK2 CHECK (MON_PAGO >= 0),
   INTERES              NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_PGNT_INTERES_CK2 CHECK (INTERES >= 0),
   INT_MORA             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_DET_PGNT_INT_MORA_CK2 CHECK (INT_MORA >= 0),
   CONSTRAINT CXPDETPAGONOTAHIST_UQ UNIQUE (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC, SUCURSAL_REF, TIP_DOC_REF, NUM_DOC_REF, NUM_PARTE)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: CXPENCMOVTOHIST_DETPGNT_FK2                           */
/*==============================================================*/
CREATE INDEX CXPENCMOVTOHIST_DETPGNT_FK2 ON CXP_DET_PAGO_NOTA_HIST (
   COD_CIA ASC,
   SUCURSAL_REF ASC,
   TIP_DOC_REF ASC,
   NUM_DOC_REF ASC
);

/*==============================================================*/
/* Table: CXP_DOCUMENTO                                         */
/*==============================================================*/
CREATE TABLE CXP_DOCUMENTO  (
   TIP_DOC              CHAR(3)                         NOT NULL,
   NOM_DOC              VARCHAR2(25)                    NOT NULL,
   TIP_SALDO            CHAR(1)                         NOT NULL
      CONSTRAINT CXP_DOCUMENTO_TIP_SALDO_CK CHECK (TIP_SALDO IN ('D','C')),
   CLASE                CHAR(2)                         NOT NULL
      CONSTRAINT CXP_DOCUMENTO_CLASE_CK CHECK (CLASE IN ('FC','NC','ND','PG','DV','PD')),
   NOM_ASIENTO          VARCHAR2(20),
   CONSTRAINT CXP_DOCUMENTO_PK PRIMARY KEY (TIP_DOC)
);

/*==============================================================*/
/* Table: CXP_ENC_GEN_PAGO                                      */
/*==============================================================*/
CREATE TABLE CXP_ENC_GEN_PAGO  (
   COD_CIA              CHAR(3)                         NOT NULL,
   ID_PAGO              NUMBER(10)                      NOT NULL,
   COD_PROVEEDOR        VARCHAR2(25)                    NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   COD_BANCO            VARCHAR2(12)                    NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   FEC_DOC              DATE                            NOT NULL,
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   IND_FORMA_PAGO       CHAR(1)                        DEFAULT 'C' NOT NULL
      CONSTRAINT CXP_ENC_GENPG_FOR_PAG_CK CHECK (IND_FORMA_PAGO IN ('E','C','T','F')),
   REQ_REPORTE          CHAR(1)                         NOT NULL
      CONSTRAINT CXP_ENCGENPAGO_REQREPORTE_CK CHECK (REQ_REPORTE IN ('S','N')),
   MONTO                NUMBER(14,2)                   DEFAULT 0 NOT NULL
      CONSTRAINT CXP_ENC_GEN_PAGO_MONTO_CK CHECK (MONTO >= 0),
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT CXP_ENC_GENPG_IND_EST_CK CHECK (ESTADO IN ('A','P','N')),
   CONSTRAINT CXP_ENC_GEN_PAGO_PK PRIMARY KEY (COD_CIA, ID_PAGO, COD_PROVEEDOR)
);

/*==============================================================*/
/* Table: CXP_ENC_MOVIMIENTO                                    */
/*==============================================================*/
CREATE TABLE CXP_ENC_MOVIMIENTO  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   FEC_DOC              DATE                            NOT NULL,
   FEC_INT              DATE                            NOT NULL,
   FEC_VENCE            DATE,
   INTERES              NUMBER(5,2)                     NOT NULL
      CONSTRAINT CXP_ENC_MOV_INTERES_CK CHECK (INTERES >= 0),
   INT_MORA             NUMBER(5,2)                     NOT NULL
      CONSTRAINT CXP_ENC_MOV_INT_MORA_CK CHECK (INT_MORA >= 0),
   NUM_ASIENTO          VARCHAR2(15),
   ANO_FISCAL           NUMBER(4)                       NOT NULL,
   PER_PROCESO          NUMBER(2)                       NOT NULL,
   COD_PROVEEDOR        VARCHAR2(25)                    NOT NULL,
   MON_DOCTO            NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOV_MON_DOC_CK CHECK (MON_DOCTO >= 0),
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   TIP_CAMBIO           NUMBER(14,4)                    NOT NULL,
   TIP_CAMBIO_BASE      NUMBER(14,4)                    NOT NULL,
   NUM_PAGOS            NUMBER(3)                      DEFAULT 1 NOT NULL
      CONSTRAINT CXP_ENC_MOV_NUM_PAGOS_CK CHECK (NUM_PAGOS >= 1),
   NUM_DIAS_PAGO        NUMBER(3)                       NOT NULL,
   DES_OBSERVACION      VARCHAR2(240),
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT CXP_ENC_MOVIMIEN_ESTADO_CK CHECK (ESTADO IN ('A','P','N')),
   IND_EXTERNO          CHAR(4),
   MON_SALDO            NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOVIMIEN_MON_SALDO_CK CHECK (MON_SALDO >= 0),
   MON_INTERES          NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOV_MON_INT_CK CHECK (MON_INTERES >= 0),
   MON_INT_MORA         NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOV_MON_MORA_CK CHECK (MON_INT_MORA >= 0),
   DOC_REF              VARCHAR2(10),
   FEC_REG              DATE                            NOT NULL,
   NOM_ASIENTO          VARCHAR2(20),
   CONSTRAINT CXP_ENC_MOVIMIENTO_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: CXP_ENC_MOVIMIENTO_PROVIDX                            */
/*==============================================================*/
CREATE INDEX CXP_ENC_MOVIMIENTO_PROVIDX ON CXP_ENC_MOVIMIENTO (
   COD_CIA ASC,
   COD_PROVEEDOR ASC
);

/*==============================================================*/
/* Index: CXP_ENC_MOVIMIENTO_PERIDX                             */
/*==============================================================*/
CREATE INDEX CXP_ENC_MOVIMIENTO_PERIDX ON CXP_ENC_MOVIMIENTO (
   COD_CIA ASC,
   ANO_FISCAL ASC,
   PER_PROCESO ASC,
   NUM_ASIENTO ASC
);

/*==============================================================*/
/* Table: CXP_ENC_MOVIMIENTO_CON                                */
/*==============================================================*/
CREATE TABLE CXP_ENC_MOVIMIENTO_CON  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   COD_CTA              VARCHAR2(25)                    NOT NULL,
   CCOSTO               VARCHAR2(7)                     NOT NULL,
   DEBITO               NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOV_CON_DEBITO_CK CHECK (DEBITO >= 0),
   CREDITO              NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOV_CON_CREDITO_CK CHECK (CREDITO >= 0),
   CONSTRAINT CXP_ENC_MOVIMIENTO_CON_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC, COD_CTA, CCOSTO)
);

/*==============================================================*/
/* Table: CXP_ENC_MOVIMIENTO_HIST                               */
/*==============================================================*/
CREATE TABLE CXP_ENC_MOVIMIENTO_HIST  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   FEC_DOC              DATE                            NOT NULL,
   FEC_INT              DATE                            NOT NULL,
   FEC_VENCE            DATE,
   INTERES              NUMBER(5,2)                     NOT NULL
      CONSTRAINT CXP_ENC_MOVH_INTERES_CK CHECK (INTERES >= 0),
   INT_MORA             NUMBER(5,2)                     NOT NULL
      CONSTRAINT CXP_ENC_MOVH_INT_MORA_CK CHECK (INT_MORA >= 0),
   NUM_ASIENTO          VARCHAR2(15),
   ANO_FISCAL           NUMBER(4)                       NOT NULL,
   PER_PROCESO          NUMBER(2)                       NOT NULL,
   COD_PROVEEDOR        VARCHAR2(25)                    NOT NULL,
   MON_DOCTO            NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOVH_MON_DOC_CK CHECK (MON_DOCTO >= 0),
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   TIP_CAMBIO           NUMBER(14,4)                    NOT NULL,
   TIP_CAMBIO_BASE      NUMBER(14,4)                    NOT NULL,
   NUM_PAGOS            NUMBER(3)                      DEFAULT 1 NOT NULL
      CONSTRAINT CXP_ENC_MOVH_NUM_PAGOS_CK CHECK (NUM_PAGOS >= 1),
   NUM_DIAS_PAGO        NUMBER(3)                       NOT NULL,
   DES_OBSERVACION      VARCHAR2(240),
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT CXP_ENC_MOVH_EST_CK CHECK (ESTADO IN ('A','P','N')),
   IND_EXTERNO          CHAR(4),
   MON_SALDO            NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOVIMIEN_MON_SALDO_CK2 CHECK (MON_SALDO >= 0),
   MON_INTERES          NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOVH_MON_INT_CK CHECK (MON_INTERES >= 0),
   MON_INT_MORA         NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOVH_MON_MORA_CK CHECK (MON_INT_MORA >= 0),
   DOC_REF              VARCHAR2(10),
   FEC_REG              DATE                            NOT NULL,
   NOM_ASIENTO          VARCHAR2(20),
   CONSTRAINT CXP_ENC_MOVIMIENTO_HIST_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
);

/*==============================================================*/
/* Table: CXP_ENC_PAGO_NOTA                                     */
/*==============================================================*/
CREATE TABLE CXP_ENC_PAGO_NOTA  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   COD_PROVEEDOR        VARCHAR2(25)                    NOT NULL,
   FEC_DOC              DATE                            NOT NULL,
   ANO_FISCAL           NUMBER(4)                       NOT NULL,
   PER_PROCESO          NUMBER(2)                       NOT NULL,
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   TIP_CAMBIO           NUMBER(14,4)                    NOT NULL,
   TIP_CAMBIO_BASE      NUMBER(14,4)                    NOT NULL,
   IND_FORMA_PAGO       CHAR(1)                        DEFAULT 'C' NOT NULL
      CONSTRAINT CXP_ENC_PGNT_FOR_PAG_CK CHECK (IND_FORMA_PAGO IN ('E','C','T','F')),
   NUM_ASIENTO          VARCHAR2(15),
   MON_PAGO             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_PGNT_MON_PAGO_CK CHECK (MON_PAGO >= 0),
   INTERES              NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_PGNT_INTERES_CK CHECK (INTERES >= 0),
   INT_MORA             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_PGNT_INT_MORA_CK CHECK (INT_MORA >= 0),
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT CXP_ENC_PGNT_IND_EST_CK CHECK (ESTADO IN ('A','P','N')),
   DES_OBSERVACION      VARCHAR2(240),
   IND_EXTERNO          CHAR(4),
   DOC_REF              VARCHAR2(10),
   FEC_REG              DATE                            NOT NULL,
   NOM_ASIENTO          VARCHAR2(20),
   TIP_DOC_REF          CHAR(3),
   CONSTRAINT CXP_ENC_PAGO_NOTA_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: CXP_ENC_PAGO_NOTA_PROVIDX                             */
/*==============================================================*/
CREATE INDEX CXP_ENC_PAGO_NOTA_PROVIDX ON CXP_ENC_PAGO_NOTA (
   COD_CIA ASC,
   COD_PROVEEDOR ASC
);

/*==============================================================*/
/* Index: CXP_ENC_PAGO_NOTA_PERIDX                              */
/*==============================================================*/
CREATE INDEX CXP_ENC_PAGO_NOTA_PERIDX ON CXP_ENC_PAGO_NOTA (
   COD_CIA ASC,
   ANO_FISCAL ASC,
   PER_PROCESO ASC,
   NUM_ASIENTO ASC
);

/*==============================================================*/
/* Table: CXP_ENC_PAGO_NOTA_HIST                                */
/*==============================================================*/
CREATE TABLE CXP_ENC_PAGO_NOTA_HIST  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   COD_PROVEEDOR        VARCHAR2(25)                    NOT NULL,
   FEC_DOC              DATE                            NOT NULL,
   ANO_FISCAL           NUMBER(4)                       NOT NULL,
   PER_PROCESO          NUMBER(2)                       NOT NULL,
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   TIP_CAMBIO           NUMBER(14,4)                    NOT NULL,
   TIP_CAMBIO_BASE      NUMBER(14,4)                    NOT NULL,
   IND_FORMA_PAGO       CHAR(1)                        DEFAULT 'C' NOT NULL
      CONSTRAINT CXP_ENC_PGNTH_FOR_PAG_CK CHECK (IND_FORMA_PAGO IN ('E','C','T')),
   NUM_ASIENTO          VARCHAR2(15),
   MON_PAGO             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_PGNTH_MON_PAGO_CK CHECK (MON_PAGO >= 0),
   INTERES              NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_PGNTH_INTERES_CK CHECK (INTERES >= 0),
   INT_MORA             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_PGNTH_INT_MORA_CK CHECK (INT_MORA >= 0),
   ESTADO               CHAR(1)                         NOT NULL
      CONSTRAINT CXP_ENC_PGNTH_IND_EST_CK CHECK (ESTADO IN ('A','P','N')),
   DES_OBSERVACION      VARCHAR2(240),
   IND_EXTERNO          CHAR(4),
   DOC_REF              VARCHAR2(10),
   FEC_REG              DATE                            NOT NULL,
   NOM_ASIENTO          VARCHAR2(20),
   TIP_DOC_REF          CHAR(3),
   CONSTRAINT CXP_ENC_PAGO_NOTA_HIST_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
);

/*==============================================================*/
/* Table: CXP_MOVIMIENTOTMP                                     */
/*==============================================================*/
CREATE TABLE CXP_MOVIMIENTOTMP  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   FEC_DOC              DATE                            NOT NULL,
   FEC_VENCE            DATE,
   COD_PROVEEDOR        VARCHAR2(25)                    NOT NULL,
   MON_DOCTO            NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOV_MON_DOC_CK2 CHECK (MON_DOCTO >= 0),
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   TIP_CAMBIO           NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOV_TIP_CAM_CK2 CHECK (TIP_CAMBIO >= 0),
   MON_SALDO            NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_MOVIMIENTOTM_MON_SALDO_CK CHECK (MON_SALDO >= 0),
   MON_INTERES          NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOV_MON_INT_CK2 CHECK (MON_INTERES >= 0),
   MON_INT_MORA         NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ENC_MOV_MON_MORA_CK2 CHECK (MON_INT_MORA >= 0),
   DOC_REF              VARCHAR2(10),
   CONSTRAINT CXP_MOVIMIENTOTMP_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CXP_OBLIGACION                                        */
/*==============================================================*/
CREATE TABLE CXP_OBLIGACION  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   NUM_PARTE            NUMBER(4)                       NOT NULL,
   FEC_VENCE            DATE                            NOT NULL,
   MON_PAGO             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_OBL_MON_PAGO_CK CHECK (MON_PAGO >= 0),
   MON_SALDO            NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_OBL_MON_SALDO_CK CHECK (MON_SALDO >= 0),
   CONSTRAINT CXP_OBLIGACION_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC, NUM_PARTE)
);

/*==============================================================*/
/* Table: CXP_PAGO_NOTA_CON                                     */
/*==============================================================*/
CREATE TABLE CXP_PAGO_NOTA_CON  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   NUM_DOC              NUMBER(10)                      NOT NULL,
   COD_CTA              VARCHAR2(25)                    NOT NULL,
   CCOSTO               VARCHAR2(7)                     NOT NULL,
   DEBITO               NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_PAGONOTACON_DEBITO_CK CHECK (DEBITO >= 0),
   CREDITO              NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_PAGONOTACON_CREDITO_CK CHECK (CREDITO >= 0),
   CONSTRAINT CXP_PAGO_NOTA_CON_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC, COD_CTA, CCOSTO)
);

/*==============================================================*/
/* Table: CXP_PARAMETRO                                         */
/*==============================================================*/
CREATE TABLE CXP_PARAMETRO  (
   COD_CIA              CHAR(3)                         NOT NULL,
   IND_INT_CONTA        CHAR(1)                        DEFAULT 'N' NOT NULL
      CONSTRAINT CXP_PARAMETRO_IND_CON_CK CHECK (IND_INT_CONTA IN ('S','N')),
   IND_INT_BANCOS       CHAR(1)                        DEFAULT 'N' NOT NULL
      CONSTRAINT CXP_PARAMETRO_IND_BAN_CK CHECK (IND_INT_BANCOS IN ('S','N')),
   IND_ASIENTO_AUTOMATICO CHAR(1)                        DEFAULT 'N' NOT NULL
      CONSTRAINT CXP_PARAMETRO_IND_ASI_CK CHECK (IND_ASIENTO_AUTOMATICO IN ('S','N')),
   TIPO_MOV_BAN         CHAR(2),
   TIPO_MOV_PEL         CHAR(2),
   LIQSALDO_AUTOMATICO  CHAR(1)                         NOT NULL
      CONSTRAINT CXP_PARAMETRO_LIQSALDO_A_CK CHECK (LIQSALDO_AUTOMATICO IN ('A','C','D','N')),
   CALPERIODO           CHAR(1)                         NOT NULL
      CONSTRAINT CXP_PARAMETRO_CALPERIODO_CK CHECK (CALPERIODO IN ('R','D')),
   TIPO_MOV_DEB         CHAR(2),
   IND_CON_PEL          CHAR(1)                        DEFAULT 'N' NOT NULL
      CONSTRAINT CXP_PARAMETRO_IND_CONPEL_CK CHECK (IND_CON_PEL IN ('S','N')),
   CONSTRAINT CXP_PARAMETRO_PK PRIMARY KEY (COD_CIA)
);

/*==============================================================*/
/* Table: CXP_PARMONEDA                                         */
/*==============================================================*/
CREATE TABLE CXP_PARMONEDA  (
   COD_CIA              CHAR(3)                         NOT NULL,
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   COD_CTA_CXP          VARCHAR2(25),
   COD_CTA_EFEC         VARCHAR2(25),
   COD_CTA_BCO          VARCHAR2(25),
   COD_CTA_INGRESO      VARCHAR2(25),
   COD_CTA_INTERES      VARCHAR2(25),
   COD_CTA_INT_MORA     VARCHAR2(25),
   COD_CTA_TARJETA      VARCHAR2(25),
   COD_CTA_DESCUENTO    VARCHAR2(25),
   CONSTRAINT CXP_PARMONEDA_PK PRIMARY KEY (COD_CIA, COD_MONEDA)
);

/*==============================================================*/
/* Table: CXP_PARTEF                                            */
/*==============================================================*/
CREATE TABLE CXP_PARTEF  (
   COD_CIA              CHAR(3)                         NOT NULL,
   COD_BANCO            VARCHAR2(12)                    NOT NULL,
   ID                   NUMBER(6)                       NOT NULL,
   FORMATO              VARCHAR2(10)                    NOT NULL,
   ID_CUENTA            VARCHAR2(20)                    NOT NULL,
   CUENTA               VARCHAR2(20)                    NOT NULL,
   CONSTRAINT CXP_PARTEF_PK PRIMARY KEY (COD_CIA, COD_BANCO)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Table: CXP_RANGOS_ANTSA                                      */
/*==============================================================*/
CREATE TABLE CXP_RANGOS_ANTSA  (
   COD_CIA              CHAR(3)                         NOT NULL,
   DIAS                 NUMBER(3)                       NOT NULL,
   CONSTRAINT CXP_RANGOS_ANTSA_PK PRIMARY KEY (COD_CIA, DIAS)
)
INITRANS 1
STORAGE
(
    INITIAL 10K
    NEXT 10K
);

/*==============================================================*/
/* Index: CXPPARAMETROS_RANGOS_FK1                              */
/*==============================================================*/
CREATE INDEX CXPPARAMETROS_RANGOS_FK1 ON CXP_RANGOS_ANTSA (
   COD_CIA ASC
);

/*==============================================================*/
/* Table: CXP_ASIENTO                                           */
/*==============================================================*/
CREATE GLOBAL TEMPORARY TABLE CXP_ASIENTO  (
   COD_CIA              CHAR(3)                         NOT NULL,
   SUCURSAL             CHAR(3)                         NOT NULL,
   TIP_DOC              CHAR(3)                         NOT NULL,
   COD_MONEDA           VARCHAR2(3)                     NOT NULL,
   TIP_CAMBIO           NUMBER(14,4)                    NOT NULL,
   COD_CTA              VARCHAR2(25)                    NOT NULL,
   CCOSTO               VARCHAR2(7)                     NOT NULL,
   DEBITOS              NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ASIENTO_DEBITOS_CK CHECK (DEBITOS >= 0),
   CREDITOS             NUMBER(14,2)                    NOT NULL
      CONSTRAINT CXP_ASIENTO_CREDITOS_CK CHECK (CREDITOS >= 0),
   USUARIO              VARCHAR2(30)                    NOT NULL,
   TIP_CAMBIOBASE       NUMBER(14,4)                    NOT NULL,
   CONSTRAINT CXP_ASIENTO_PK PRIMARY KEY (COD_CIA, SUCURSAL, TIP_DOC, COD_MONEDA, TIP_CAMBIO, COD_CTA, CCOSTO, DEBITOS, CREDITOS)
);

/*==============================================================*/
/* View: CXP_DET_MOV_PAGO                                       */
/*==============================================================*/
CREATE OR REPLACE VIEW CXP_DET_MOV_PAGO AS
SELECT A.COD_CIA, B.COD_PROVEEDOR, A.SUCURSAL, A.TIP_DOC, A.NUM_DOC, A.SUCURSAL_REF, 
       B.FEC_DOC, A.TIP_DOC_REF, A.NUM_DOC_REF, A.MON_PAGO, B.NUM_ASIENTO, 
       A.MON_DESCUENTO, A.INTERES, A.INT_MORA, B.COD_MONEDA, B.DOC_REF
FROM CXP_DET_PAGO_NOTA A, CXP_ENC_PAGO_NOTA B
WHERE A.COD_CIA = B.COD_CIA
  AND A.SUCURSAL_REF = B.SUCURSAL 
  AND A.TIP_DOC_REF = B.TIP_DOC
  AND A.NUM_DOC_REF = B.NUM_DOC
  AND B.ESTADO = 'A';

/*==============================================================*/
/* View: CXP_LIQUIDACION                                        */
/*==============================================================*/
CREATE OR REPLACE VIEW CXP_LIQUIDACION AS
SELECT A.COD_CIA, B.COD_PROVEEDOR, A.SUCURSAL, A.TIP_DOC, 
       A.NUM_DOC, A.SUCURSAL_REF, A.TIP_DOC_REF, A.NUM_DOC_REF, 
       A.MON_PAGO, B.FEC_DOC, B.NUM_ASIENTO, A.MON_DESCUENTO, A.INTERES, 
       A.INT_MORA, B.COD_MONEDA, B.DOC_REF
FROM CXP_DET_PAGO_NOTA A, CXP_ENC_PAGO_NOTA B
WHERE A.COD_CIA = B.COD_CIA 
AND A.SUCURSAL = B.SUCURSAL 
AND A.TIP_DOC = B.TIP_DOC 
AND A.NUM_DOC = B.NUM_DOC 
AND B.ESTADO = 'A' 
AND B.TIP_DOC_REF IS NOT NULL;

/*==============================================================*/
/* View: CXP_OBLIG_VIEW                                         */
/*==============================================================*/
CREATE OR REPLACE VIEW CXP_OBLIG_VIEW AS
SELECT O.COD_CIA, O.SUCURSAL, O.TIP_DOC, O.NUM_DOC, 
       O.NUM_PARTE, M.COD_PROVEEDOR, O.FEC_VENCE, 
       O.MON_PAGO, O.MON_SALDO, M.COD_MONEDA
FROM CXP_OBLIGACION O, CXP_ENC_MOVIMIENTO M
WHERE O.COD_CIA = M.COD_CIA 
AND O.SUCURSAL = M.SUCURSAL 
AND O.TIP_DOC = M.TIP_DOC 
AND O.NUM_DOC = M.NUM_DOC 
AND M.ESTADO = 'A';

ALTER TABLE CXP_CHEQUES
   ADD CONSTRAINT CXPENCPAGONOTA_CHKS_FK FOREIGN KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
      REFERENCES CXP_ENC_PAGO_NOTA (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC);

ALTER TABLE CXP_CON_DOCUMENTO
   ADD CONSTRAINT CXPDOCUMENTO_CONDOC_FK FOREIGN KEY (TIP_DOC)
      REFERENCES CXP_DOCUMENTO (TIP_DOC);

ALTER TABLE CXP_CON_DOCUMENTO
   ADD CONSTRAINT CXPPARAMETRO_CONDOC_FK FOREIGN KEY (COD_CIA)
      REFERENCES CXP_PARAMETRO (COD_CIA);

ALTER TABLE CXP_CREDITO
   ADD CONSTRAINT CXPPARAMETRO_CREDITO_FK FOREIGN KEY (COD_CIA)
      REFERENCES CXP_PARAMETRO (COD_CIA);

ALTER TABLE CXP_DET_DESCU
   ADD CONSTRAINT CXPPARAMETRO_DETDESC_FK FOREIGN KEY (COD_CIA)
      REFERENCES CXP_PARAMETRO (COD_CIA);

ALTER TABLE CXP_DET_GEN_PAGO
   ADD CONSTRAINT CXPENCGENPAGO_DETGENPAG_FK FOREIGN KEY (COD_CIA, ID_PAGO, COD_PROVEEDOR)
      REFERENCES CXP_ENC_GEN_PAGO (COD_CIA, ID_PAGO, COD_PROVEEDOR);

ALTER TABLE CXP_DET_GEN_PAGO
   ADD CONSTRAINT CXPENCMOVIMIENTO_DETGENPAG_FK FOREIGN KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
      REFERENCES CXP_ENC_MOVIMIENTO (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC);

ALTER TABLE CXP_DET_MOVIMIENTO
   ADD CONSTRAINT CXPENCMOVIMIENTO_DETMOV_FK FOREIGN KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
      REFERENCES CXP_ENC_MOVIMIENTO (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC);

ALTER TABLE CXP_DET_PAGO_NOTA
   ADD CONSTRAINT CXPENCMOVIMIENTO_DETPAGO_FK FOREIGN KEY (COD_CIA, SUCURSAL_REF, TIP_DOC_REF, NUM_DOC_REF)
      REFERENCES CXP_ENC_MOVIMIENTO (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC);

ALTER TABLE CXP_DET_PAGO_NOTA
   ADD CONSTRAINT CXPENCPAGONOTA_DETPAGO_FK FOREIGN KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
      REFERENCES CXP_ENC_PAGO_NOTA (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC);

ALTER TABLE CXP_DET_PAGO_NOTA_HIST
   ADD CONSTRAINT CXPENCMOVTOHIST_DETPGNT_FK FOREIGN KEY (COD_CIA, SUCURSAL_REF, TIP_DOC_REF, NUM_DOC_REF)
      REFERENCES CXP_ENC_MOVIMIENTO_HIST (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC);

ALTER TABLE CXP_DET_PAGO_NOTA_HIST
   ADD CONSTRAINT CXPENCPGNTHIST_DETPGNT_FK FOREIGN KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
      REFERENCES CXP_ENC_PAGO_NOTA_HIST (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC);

ALTER TABLE CXP_ENC_MOVIMIENTO
   ADD CONSTRAINT CXPCONDOCUMENTO_ENCMOV_FK FOREIGN KEY (COD_CIA, SUCURSAL, TIP_DOC)
      REFERENCES CXP_CON_DOCUMENTO (COD_CIA, SUCURSAL, TIP_DOC);

ALTER TABLE CXP_ENC_MOVIMIENTO_CON
   ADD CONSTRAINT CXPENCMOVIMIENTO_CON_FK FOREIGN KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
      REFERENCES CXP_ENC_MOVIMIENTO (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC);

ALTER TABLE CXP_ENC_PAGO_NOTA
   ADD CONSTRAINT CXPCONDOCUMENTO_ENCPAGO_FK FOREIGN KEY (COD_CIA, SUCURSAL, TIP_DOC)
      REFERENCES CXP_CON_DOCUMENTO (COD_CIA, SUCURSAL, TIP_DOC);

ALTER TABLE CXP_OBLIGACION
   ADD CONSTRAINT CXPENCMOVIMIENTO_OBLIG_FK FOREIGN KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
      REFERENCES CXP_ENC_MOVIMIENTO (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC);

ALTER TABLE CXP_PAGO_NOTA_CON
   ADD CONSTRAINT CXPENCPAGONOTA_CON_FK FOREIGN KEY (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC)
      REFERENCES CXP_ENC_PAGO_NOTA (COD_CIA, SUCURSAL, TIP_DOC, NUM_DOC);

ALTER TABLE CXP_PARMONEDA
   ADD CONSTRAINT CXPPARAMETRO_PARMON_FK FOREIGN KEY (COD_CIA)
      REFERENCES CXP_PARAMETRO (COD_CIA);

ALTER TABLE CXP_PARTEF
   ADD CONSTRAINT CXPPARAMETRO_PERTEF_FK FOREIGN KEY (COD_CIA)
      REFERENCES CXP_PARAMETRO (COD_CIA);

ALTER TABLE CXP_RANGOS_ANTSA
   ADD CONSTRAINT CXPPARAMETROS_RANGOS_FK FOREIGN KEY (COD_CIA)
      REFERENCES CXP_PARAMETRO (COD_CIA);

