/*==============================================================*/
/* Database name:  ORACLE Version 7.3                           */
/* DBMS name:      ORACLE Version 7                             */
/* Created on:     30/12/01 03:26:17 a.m.                       */
/*==============================================================*/


/*==============================================================*/
/* Table : FACCOMISION                                          */
/*==============================================================*/

create table FACCOMISION (
   COD_CIA              char(3)                         not null,
   COD_ARTICULO         VARCHAR2(25)                    not null,
   COD_EMPLEADO         VARCHAR2(10)                    not null,
   COD_ASOC             CHAR(4)                         not null,
   constraint FACCOMISION_PK primary key (COD_CIA, COD_ARTICULO, COD_EMPLEADO)
)
/


/*==============================================================*/
/* Table : FACDESCUENTO                                         */
/*==============================================================*/

create table FACDESCUENTO (
   COD_CIA              char(3)                         not null,
   LISTA                CHAR(3)                         not null,
   DESCRIPCION          VARCHAR2(60),
   constraint FACDESCUENTO_PK primary key (COD_CIA, LISTA)
)
/


/*==============================================================*/
/* Table : FACDETDESCUENTO                                      */
/*==============================================================*/

create table FACDETDESCUENTO (
   COD_CIA              char(3)                         not null,
   LISTA                CHAR(3)                         not null,
   VERSION              NUMBER(3)                       not null,
   COD_ARTICULO         VARCHAR2(25)                    not null,
   TIPO_DESCUENTO       CHAR(1)                         not null
         constraint FACDETDESCUENTO_TIPODESC_CK check (TIPO_DESCUENTO in ('F','D','T')),
   TASA                 NUMBER(7,2)                     not null,
   constraint FACDETDESCUENTO_PK primary key (COD_CIA, LISTA, VERSION, COD_ARTICULO)
)
/


/*==============================================================*/
/* Table : FACDETPRECIO                                         */
/*==============================================================*/

create table FACDETPRECIO (
   COD_CIA              char(3)                         not null,
   LISTA                CHAR(3)                         not null,
   VERSION              NUMBER(3)                      default 1 not null
         constraint FACDETPRECIO_VERSION_CK check (VERSION >= 1),
   COD_ARTICULO         VARCHAR2(25)                    not null,
   PRECIO               NUMBER(10,4)                    not null
         constraint FACDETPRECIO_PRECIO_CK check (PRECIO >= 0),
   constraint FACDETPRECIO_PK primary key (COD_CIA, LISTA, VERSION, COD_ARTICULO)
)
/


/*==============================================================*/
/* Table : FACINSDESCUENTO                                      */
/*==============================================================*/

create table FACINSDESCUENTO (
   COD_CIA              char(3)                         not null,
   LISTA                CHAR(3)                         not null,
   VERSION              NUMBER(3)                       not null,
   RIGE_DESDE           DATE                            not null,
   RIGE_HASTA           DATE,
   OBSERVACIONES        VARCHAR2(100),
   ESTADO               CHAR(1)                         not null
         constraint FACINSDESCUENTO_ESTADO_CK check (ESTADO in ('P','D')),
   constraint FACINSDESCUENTO_PK primary key (COD_CIA, LISTA, VERSION)
)
/


/*==============================================================*/
/* Table : FACINSPRECIO                                         */
/*==============================================================*/

create table FACINSPRECIO (
   COD_CIA              char(3)                         not null,
   LISTA                CHAR(3)                         not null,
   VERSION              NUMBER(3)                      default 1 not null
         constraint FACINSPRECIO_VERSION_CK check (VERSION >= 1),
   RIGE_DESDE           DATE                            not null,
   RIGE_HASTA           DATE,
   OBSERVACIONES        VARCHAR2(100),
   ESTADO               CHAR(1)                         not null
         constraint FACINSPRECIO_ESTADO_CK check (ESTADO in ('P','D')),
   constraint FACINSPRECIO_PK primary key (COD_CIA, LISTA, VERSION)
)
/


/*==============================================================*/
/* Table : FACPRECIO                                            */
/*==============================================================*/

create table FACPRECIO (
   COD_CIA              char(3)                         not null,
   LISTA                CHAR(3)                         not null,
   DESCRIPCION          VARCHAR2(60),
   constraint FACPRECIO_PK primary key (COD_CIA, LISTA)
)
/


/*==============================================================*/
/* Table : GEN_AGENTE                                           */
/*==============================================================*/

create table GEN_AGENTE (
   Cod_Cia              char(3)                         not null,
   sucursal             CHAR(3)                         not null,
   Cod_Agente           VARCHAR2(3)                     not null,
   Nom_Agente           VARCHAR2(35)                    not null,
   Direccion            VARCHAR2(40)                    not null,
   Num_Telefono         VARCHAR2(12),
   Num_Cedula           VARCHAR2(15),
   Des_RazonSoc         VARCHAR2(30),
   constraint GEN_AGENTE_PK primary key (Cod_Cia, sucursal, Cod_Agente)
)
/


/*==============================================================*/
/* Table : GEN_CLASE_CLIENTE                                    */
/*==============================================================*/

create table GEN_CLASE_CLIENTE (
   cod_cia              char(3)                         not null,
   cod_clase            VARCHAR2(3)                     not null,
   des_clase            VARCHAR2(40)                    not null,
   lista_precio         CHAR(3),
   lista_descuento      CHAR(3),
   ccosto               VARCHAR2(7)                    default '0' not null,
   constraint GEN_CLASE_CLIENTE_PK primary key (cod_cia, cod_clase)
)
/


/*==============================================================*/
/* Table : GEN_CLASE_PROV                                       */
/*==============================================================*/

create table GEN_CLASE_PROV (
   cod_cia              char(3)                         not null,
   cod_clase            VARCHAR2(3)                     not null,
   des_clase            VARCHAR2(40)                    not null,
   ccosto               VARCHAR2(7)                    default '0' not null,
   constraint GEN_CLASE_PROV_PK primary key (cod_cia, cod_clase)
)
/


/*==============================================================*/
/* Table : GEN_CLIENTE                                          */
/*==============================================================*/

create table GEN_CLIENTE (
   Cod_Cia              char(3)                         not null,
   Cod_Cliente          VARCHAR2(25)                    not null,
   Cod_Clase            VARCHAR2(3)                     not null,
   Tip_Cliente          VARCHAR2(1)                     not null
         constraint Gen_cliente_tipcliente_Ck check (Tip_Cliente in ('J','j','F','f','O')),
   Sucursal             CHAR(3)                         not null,
   Cod_CiaCliente       VARCHAR2(3),
   cedula               VARCHAR2(20)                    not null,
   Nom_Cliente          VARCHAR2(35)                    not null,
   Des_Direccion        VARCHAR2(50)                    not null,
   Contacto             VARCHAR2(35),
   Num_Apartado         VARCHAR2(20),
   Num_Telefono1        VARCHAR2(16),
   Num_Telefono2        VARCHAR2(16),
   Num_Fax              VARCHAR2(16),
   Des_RazSocial        VARCHAR2(30),
   Nom_Responsable      VARCHAR2(30),
   Cod_Provincia        VARCHAR2(2)                     not null,
   Cod_Canton           VARCHAR2(3)                     not null,
   Cod_Distrito         VARCHAR2(3)                     not null,
   Ind_PagaConsm        CHAR(1)                        default 'S' not null
         constraint Gen_Cliente_PagaConsm_Ck check (Ind_PagaConsm in ('S','N')),
   Ind_PagaVenta        CHAR(1)                        default 'S' not null
         constraint Gen_Cliente_PagaVenta_Ck check (Ind_PagaVenta in ('S','N')),
   Ind_Moroso           CHAR(1)                        default 'S' not null
         constraint Gen_Cliente_Moroso_Ck check (Ind_Moroso in ('S','N')),
   Por_MaxDescue        NUMBER(5,2),
   Ind_CreditCer        CHAR(1)                        default 'S' not null
         constraint Gen_Cliente_creditcer_Ck check (Ind_CreditCer in ('S','N')),
   Des_ReciboFac        VARCHAR2(10),
   Des_PagoFactr        VARCHAR2(10),
   Ind_RecibCorr        CHAR(1)                        default 'N' not null
         constraint Gen_Cliente_correo_Ck check (Ind_RecibCorr in ('S','N')),
   cod_zona             VARCHAR2(2)                     not null,
   cod_subzona          VARCHAR2(2)                     not null,
   lista_precio         CHAR(3),
   lista_descuento      CHAR(3),
   cod_grp_consumo      VARCHAR2(3)                     not null,
   cod_canal            VARCHAR2(3)                     not null,
   cod_sub_canal        VARCHAR2(3)                     not null,
   estado               CHAR(2)                        default 'AC' not null
         constraint gen_cliente_estado_ck check (estado in ('AC','CS','DJ','CC')),
   constraint GEN_CLIENTE_PK primary key (Cod_Cia, Cod_Cliente)
)
/


/*==============================================================*/
/* Table : GEN_CLIENTE_PREVENTA                                 */
/*==============================================================*/

create table GEN_CLIENTE_PREVENTA (
   Cod_Cia              char(3)                         not null,
   Cod_Cliente          VARCHAR2(25)                    not null,
   Ruta                 VARCHAR2(5)                     not null,
   Ruta_entrega         VARCHAR2(5)                     not null,
   Ruta_promotor        VARCHAR2(5)                     not null,
   Zon_coord            VARCHAR2(2)                     not null,
   Seq_entrega          VARCHAR2(3)                     not null,
   Frec_Visita          VARCHAR2(3)                     not null,
   Fec_prox_visita      DATE                            not null,
   constraint GEN_CLIENTE_PREVENTA_PK primary key (Cod_Cia, Cod_Cliente)
)
/


/*==============================================================*/
/* Table : GEN_CLIE_AGENTE                                      */
/*==============================================================*/

create table GEN_CLIE_AGENTE (
   cod_cia              char(3)                         not null,
   sucursal             CHAR(3)                         not null,
   cod_cliente          VARCHAR2(25)                    not null,
   tipo_agente          CHAR(2)                         not null,
   cod_agente           VARCHAR2(3)                     not null,
   constraint GEN_CLIE_AGENTE_PK primary key (cod_cia, sucursal, cod_cliente, tipo_agente)
)
/


/*==============================================================*/
/* Table : GEN_COM_AGENTE                                       */
/*==============================================================*/

create table GEN_COM_AGENTE (
   cod_cia              char(3)                         not null,
   sucursal             CHAR(3)                         not null,
   cod_agente           VARCHAR2(3)                     not null,
   cod_comision         VARCHAR2(3)                     not null,
   constraint GEN_COM_AGENTE_PK primary key (cod_cia, sucursal, cod_agente, cod_comision)
)
/


/*==============================================================*/
/* Table : GEN_CONSTANTES                                       */
/*==============================================================*/

create table GEN_CONSTANTES (
   codigo               VARCHAR2(10)                    not null,
   descripcion          VARCHAR2(60)                    not null,
   valor                NUMBER(14,6)                    not null,
   constraint GEN_CONSTANTES_PK primary key (codigo)
)
/


/*==============================================================*/
/* Table : GEN_DENOMINACIONES                                   */
/*==============================================================*/

create table GEN_DENOMINACIONES (
   cod_moneda           VARCHAR2(3)                     not null,
   valor                NUMBER(14,2)                    not null,
   descripcion          VARCHAR2(30),
   constraint GEN_DENOMINACIONES_PK primary key (cod_moneda, valor)
)
/


/*==============================================================*/
/* Table : GEN_FUNCIONES                                        */
/*==============================================================*/

create table GEN_FUNCIONES (
   cod_cia              char(3)                         not null,
   sucursal             CHAR(3)                         not null,
   cod_agente           VARCHAR2(3)                     not null,
   tipo_agente          CHAR(2)                         not null,
   constraint GEN_FUNCIONES_PK primary key (cod_cia, sucursal, cod_agente, tipo_agente)
)
/


/*==============================================================*/
/* Table : GEN_MAS_COMISION                                     */
/*==============================================================*/

create table GEN_MAS_COMISION (
   cod_cia              char(3)                         not null,
   cod_comision         VARCHAR2(3)                     not null,
   tipo_comision        CHAR(1)                         not null
         constraint gen_mascomision_tipo_Ck check (tipo_comision in ('T','I','L','P','C')),
   valor                CHAR(1)                         not null
         constraint gen_mascomision_valor_Ck check (valor in ('P','M')),
   tipo_calculo         CHAR(1)                         not null
         constraint gen_mascomision_calc_Ck check (tipo_calculo in ('E','D')),
   proporcional         CHAR(1)                         not null
         constraint gen_mascomision_prop_Ck check (proporcional in ('S','N')),
   des_comision         VARCHAR2(40)                    not null,
   cod_moneda           VARCHAR2(3)                     not null,
   constraint GEN_MAS_COMISION_PK primary key (cod_cia, cod_comision)
)
/


/*==============================================================*/
/* Table : GEN_OFICINA                                          */
/*==============================================================*/

create table GEN_OFICINA (
   COD_CIA              char(3)                         not null,
   SUCURSAL             CHAR(3)                         not null,
   OFICINA              CHAR(2)                         not null,
   DESCRIPCION          VARCHAR2(60),
   constraint GEN_OFICINA_PK primary key (COD_CIA, SUCURSAL, OFICINA)
)
/


/*==============================================================*/
/* Table : GEN_PROV_CONTACTO                                    */
/*==============================================================*/

create table GEN_PROV_CONTACTO (
   cod_cia              CHAR(3)                         not null,
   cod_proveedor        VARCHAR2(25)                    not null,
   cod_contacto         VARCHAR2(4)                     not null,
   nombre               VARCHAR2(30),
   puesto               VARCHAR2(30),
   num_telefono1        VARCHAR2(16),
   num_telefono2        VARCHAR2(16),
   num_fax              VARCHAR2(16),
   email                VARCHAR2(30),
   constraint GEN_PROV_CONTACTO_PK primary key (cod_cia, cod_contacto, cod_proveedor)
)
/


/*==============================================================*/
/* Table : GEN_SOBREG_CLIENTE                                   */
/*==============================================================*/

create table GEN_SOBREG_CLIENTE (
   cod_cia              char(3)                         not null,
   cod_cliente          VARCHAR2(25)                    not null,
   cod_moneda           VARCHAR2(3)                     not null,
   cod_linea            VARCHAR2(5)                     not null,
   sobregiro            NUMBER(14,2)                    not null,
   fecha_vigencia       DATE                            not null,
   dias_vigencia        NUMBER(3)                       not null
         constraint Gen_sobreg_cliente_diasv_Ck check (dias_vigencia >= 0),
   autorizado_por       VARCHAR2(30)                    not null,
   constraint GEN_SOBREG_CLIENTE_PK primary key (cod_cia, cod_cliente, cod_moneda, cod_linea)
)
/


/*==============================================================*/
/* Table : GEN_SOBREG_PROVEEDOR                                 */
/*==============================================================*/

create table GEN_SOBREG_PROVEEDOR (
   cod_cia              char(3)                         not null,
   cod_proveedor        VARCHAR2(25)                    not null,
   cod_moneda           VARCHAR2(3)                     not null,
   sobregiro            NUMBER(14,2)                    not null,
   fecha_vigencia       DATE                            not null,
   dias_vigencia        NUMBER(3)                       not null
         constraint Gen_sobreg_proveedor_diasv_Ck check (dias_vigencia >= 0),
   autorizado_por       VARCHAR2(30)                    not null,
   constraint GEN_SOBREG_PROVEEDOR_PK primary key (cod_cia, cod_proveedor, cod_moneda)
)
/


/*==============================================================*/
/* Table : GEN_SUCURSAL                                         */
/*==============================================================*/

create table GEN_SUCURSAL (
   cod_cia              char(3)                         not null,
   sucursal             CHAR(3)                         not null,
   descripcion          VARCHAR2(60)                    not null,
   des_direccion        VARCHAR2(50),
   num_telefono1        VARCHAR2(16),
   num_telefono2        VARCHAR2(16),
   email                VARCHAR2(30),
   area                 NUMBER(12,2),
   mts_exhibe           NUMBER(12,2),
   caracteristicas      VARCHAR2(256),
   constraint GEN_SUCURSAL_PK primary key (cod_cia, sucursal)
)
/


/*==============================================================*/
/* Table : GEN_TIPO_AGENTE                                      */
/*==============================================================*/

create table GEN_TIPO_AGENTE (
   cod_cia              char(3)                         not null,
   tipo_agente          CHAR(2)                         not null,
   descripcion          VARCHAR2(40)                    not null,
   constraint GEN_TIPO_AGENTE_PK primary key (cod_cia, tipo_agente)
)
/


/*==============================================================*/
/* Table : Impresoras                                           */
/*==============================================================*/

create table Impresoras (
   IMPRESORA            VARCHAR2(12)                    not null,
   DESCRIPCION          VARCHAR2(30)                    not null,
   TIPO                 VARCHAR2(8)                     not null
         constraint IMPRESORAS_TIPO_CK check (TIPO in ('PREVIEW','SCREEN','PRINTER','FILE','MAIL')),
   NOMBRE               VARCHAR2(60)                    not null,
   FORMATO              VARCHAR2(12),
   constraint IMPRESORAS_PK primary key (IMPRESORA)
)
/


/*==============================================================*/
/* Table : fac_descuentos                                       */
/*==============================================================*/

create table fac_descuentos (
   cod_cia              char(3)                         not null,
   cod_descuento        VARCHAR2(3)                     not null,
   des_descuento        VARCHAR2(40)                    not null,
   porcentaje           NUMBER(5,2)                     not null
         constraint porc_fac_desc_chk check (porcentaje >= 0),
   constraint FAC_DESCUENTOS_PK primary key (cod_cia, cod_descuento),
   constraint fac_descuentos_uq unique (cod_cia, porcentaje)
)
/


/*==============================================================*/
/* Table : fac_det_comision_ln                                  */
/*==============================================================*/

create table fac_det_comision_ln (
   cod_cia              char(3)                         not null,
   sucursal             CHAR(3)                         not null,
   cod_comision         VARCHAR2(3)                     not null,
   cod_linea            VARCHAR2(5)                     not null,
   monto_vendido        NUMBER(14,2)                    not null
         constraint monto_vend_fac_det_chk check (monto_vendido >= 0),
   valor                NUMBER(14,2)                    
         constraint valor_fac_det_chk check (valor is null or (valor >= 0 )),
   constraint FAC_DET_COMISION_LN_PK primary key (cod_cia, sucursal, cod_comision, cod_linea)
)
/


/*==============================================================*/
/* Table : fac_det_comision_mn                                  */
/*==============================================================*/

create table fac_det_comision_mn (
   cod_cia              char(3)                         not null,
   sucursal             CHAR(3)                         not null,
   cod_comision         VARCHAR2(3)                     not null,
   monto_vendido        NUMBER(14,2)                    not null
         constraint monto_vendido_fac_det_chk check (monto_vendido >= 0),
   valor                NUMBER(5,2)                     
         constraint valor_fact_det_chk check (valor is null or (valor >= 0 )),
   constraint FAC_DET_COMISION_MN_PK primary key (cod_cia, sucursal, cod_comision, monto_vendido)
)
/


/*==============================================================*/
/* Table : fac_det_precios                                      */
/*==============================================================*/

create table fac_det_precios (
   cod_cia              char(3)                         not null,
   cod_lista_precio     CHAR(3)                         not null,
   cod_moneda           VARCHAR2(3)                     not null,
   cod_articulo         VARCHAR2(25)                    not null,
   precio_unitario      NUMBER(14,4)                    not null
         constraint precio_unitario_fac_det_chk check (precio_unitario >= 0),
   porc_utilidad        NUMBER(5,2)                     not null,
   constraint FAC_DET_PRECIOS_PK primary key (cod_lista_precio, cod_cia, cod_moneda, cod_articulo)
)
/


/*==============================================================*/
/* Table : fac_hdet_precios                                     */
/*==============================================================*/

create table fac_hdet_precios (
   cod_cia              char(3)                         not null,
   cod_lista_precio     CHAR(3)                         not null,
   cod_moneda           VARCHAR2(3)                     not null,
   cod_articulo         VARCHAR2(25)                    not null,
   fecha_mov            DATE                            not null,
   porc_utilidad        NUMBER(5,2)                     not null,
   precio_unitario      NUMBER(14,4)                    not null
         constraint precio_unit_fac_det_chk check (precio_unitario >= 0),
   constraint FAC_HDET_PRECIOS_PK primary key (cod_cia, cod_lista_precio, cod_moneda, cod_articulo, fecha_mov)
)
/


/*==============================================================*/
/* Table : fac_mas_precios                                      */
/*==============================================================*/

create table fac_mas_precios (
   cod_cia              char(3)                         not null,
   cod_lista_precio     CHAR(3)                         not null,
   des_lista            VARCHAR2(40)                    not null,
   constraint FAC_MAS_PRECIOS_PK primary key (cod_cia, cod_lista_precio)
)
/


/*==============================================================*/
/* Table : fac_premios                                          */
/*==============================================================*/

create table fac_premios (
   cod_cia              char(3)                         not null,
   cod_comision         VARCHAR2(3)                     not null,
   cod_articulo         VARCHAR2(25)                    not null,
   und_vendidas         NUMBER(16)                      not null
         constraint und_vendidas_fac_prem_chk check (und_vendidas >= 0),
   minimo_unidades      NUMBER(16)                      not null
         constraint minimo_unidades_fac_prem_chk check (minimo_unidades >= 0),
   maximo_unidades      NUMBER(16)                      not null
         constraint maximo_unidades_fac_prem_chk check (maximo_unidades >= 0),
   valor                NUMBER(14,2)                    not null
         constraint valor_fac_prem_chk check (valor >= 0),
   fecha_inicial        DATE                            not null,
   fecha_final          DATE                            not null,
   constraint FAC_PREMIOS_PK primary key (cod_cia, cod_comision, cod_articulo)
)
/


/*==============================================================*/
/* Table : gen_autoriza                                         */
/*==============================================================*/

create table gen_autoriza (
   sesnum               VARCHAR2(10)                    not null,
   autoriza             VARCHAR2(02)                    not null,
   constraint GEN_AUTORIZA_PK primary key (sesnum, autoriza)
)
/


/*==============================================================*/
/* Table : gen_canal                                            */
/*==============================================================*/

create table gen_canal (
   cod_cia              char(3)                         not null,
   cod_grp_consumo      VARCHAR2(3)                     not null,
   cod_canal            VARCHAR2(3)                     not null,
   des_canal            VARCHAR2(25)                    not null,
   constraint GEN_CANAL_PK primary key (cod_cia, cod_grp_consumo, cod_canal)
)
/


/*==============================================================*/
/* Table : gen_canton                                           */
/*==============================================================*/

create table gen_canton (
   Cod_Provincia        VARCHAR2(2)                     not null,
   Cod_Canton           VARCHAR2(3)                     not null,
   Nom_Canton           VARCHAR2(30)                    not null,
   constraint GEN_CANTON_PK primary key (Cod_Provincia, Cod_Canton)
)
/


/*==============================================================*/
/* Table : gen_clase_clie_moneda                                */
/*==============================================================*/

create table gen_clase_clie_moneda (
   cod_cia              char(3)                         not null,
   cod_clase            VARCHAR2(3)                     not null,
   cod_moneda           VARCHAR2(3)                     not null,
   cod_cta              VARCHAR2(25),
   cod_cta_dif_cam      VARCHAR2(25),
   constraint GEN_CLASE_CLIE_MONEDA_PK primary key (cod_cia, cod_clase, cod_moneda)
)
/


/*==============================================================*/
/* Table : gen_clase_prov_moneda                                */
/*==============================================================*/

create table gen_clase_prov_moneda (
   cod_cia              char(3)                         not null,
   cod_clase            VARCHAR2(3)                     not null,
   cod_moneda           VARCHAR2(3)                     not null,
   cod_cta              VARCHAR2(25),
   cod_cta_dif_cam      VARCHAR2(25),
   constraint GEN_CLASE_PROV_MONEDA_PK primary key (cod_cia, cod_clase, cod_moneda)
)
/


/*==============================================================*/
/* Table : gen_cliente_bitacora                                 */
/*==============================================================*/

create table gen_cliente_bitacora (
   cod_cia              CHAR(3)                         not null,
   cod_cliente          VARCHAR(25)                     not null,
   fecha                DATE                            not null,
   observacion          VARCHAR2(500)                   not null,
   constraint GEN_CLIENTE_BITACORA_PK primary key (cod_cia, cod_cliente, fecha)
)
/


/*==============================================================*/
/* Table : gen_cliente_referencia                               */
/*==============================================================*/

create table gen_cliente_referencia (
   cod_cia              CHAR(3)                         not null,
   cod_cliente          VARCHAR(25)                     not null,
   referencia           VARCHAR2(25)                    not null,
   descripcion          VARCHAR2(50)                    not null,
   telefono1            VARCHAR2(15),
   telefono2            VARCHAR2(15),
   observacion          VARCHAR2(500)                   not null,
   constraint GEN_CLIENTE_REFERENCIA_PK primary key (cod_cia, cod_cliente, referencia)
)
/


/*==============================================================*/
/* Table : gen_compania                                         */
/*==============================================================*/

create table gen_compania (
   cod_cia              char(3)                         not null,
   des_cia              VARCHAR2(30)                    not null,
   des_razonsoc         VARCHAR2(30),
   cod_pais             VARCHAR2(3)                     not null,
   des_provincia        VARCHAR2(20),
   des_canton           VARCHAR2(20),
   dir_cia              VARCHAR2(50),
   Ind_Consol_Conta     CHAR(1)                        default 'S' not null
         constraint Gen_Compania_IndConsol_Ck check (Ind_Consol_Conta in ('S','N')),
   cod_postal           VARCHAR2(20),
   num_telefono1        VARCHAR2(15),
   num_telefono2        VARCHAR2(15),
   num_fax              VARCHAR2(15),
   constraint GEN_COMPANIA_PK primary key (cod_cia)
)
/


/*==============================================================*/
/* Table : gen_distrito                                         */
/*==============================================================*/

create table gen_distrito (
   Cod_Provincia        VARCHAR2(2)                     not null,
   Cod_Canton           VARCHAR2(3)                     not null,
   Cod_Distrito         VARCHAR2(3)                     not null,
   Nom_Distrito         VARCHAR2(40)                    not null,
   constraint GEN_DISTRITO_PK primary key (Cod_Provincia, Cod_Canton, Cod_Distrito)
)
/


/*==============================================================*/
/* Table : gen_grp_consumo                                      */
/*==============================================================*/

create table gen_grp_consumo (
   cod_cia              char(3)                         not null,
   cod_grp_consumo      VARCHAR2(3)                     not null,
   Cod_Cliente          VARCHAR2(25),
   des_grp_consumo      VARCHAR2(25)                    not null,
   constraint GEN_GRP_CONSUMO_PK primary key (cod_cia, cod_grp_consumo)
)
/


/*==============================================================*/
/* Table : gen_moneda                                           */
/*==============================================================*/

create table gen_moneda (
   cod_moneda           VARCHAR2(3)                     not null,
   des_moneda           VARCHAR2(25)                    not null,
   sim_moneda           VARCHAR2(3),
   mon_redondeo         NUMBER(3,2),
   constraint GEN_MONEDA_PK primary key (cod_moneda)
)
/


/*==============================================================*/
/* Table : gen_pais                                             */
/*==============================================================*/

create table gen_pais (
   cod_pais             VARCHAR2(3)                     not null,
   nom_pais             VARCHAR2(25)                    not null,
   constraint GEN_PAIS_PK primary key (cod_pais)
)
/


/*==============================================================*/
/* Table : gen_parametro                                        */
/*==============================================================*/

create table gen_parametro (
   cod_cia              char(3)                         not null,
   cod_moneda           VARCHAR2(3),
   for_fecha            VARCHAR2(10)                    not null,
   for_cliente          VARCHAR2(25)                    not null,
   for_proveedor        VARCHAR2(25)                    not null,
   for_imp_consumo      VARCHAR2(10),
   for_imp_venta        VARCHAR2(10),
   por_imp_venta        NUMBER(5,2)                     not null
         constraint gen_parametro_imp_venta_ck check (por_imp_venta >= 0),
   ind_imp_vta_cons     CHAR(1)                         not null
         constraint gen_parametro_imp_vtaCons_ck check (ind_imp_vta_cons in ('S','N')),
   ind_conta_linea      CHAR(1)                         not null
         constraint gen_parametro_contalinea_ck check (ind_conta_linea in ('S','N')),
   cod_moneda_base      VARCHAR2(3)                     not null,
   constraint GEN_PARAMETRO_PK primary key (cod_cia)
)
/


/*==============================================================*/
/* Table : gen_periodo                                          */
/*==============================================================*/

create table gen_periodo (
   cod_cia              char(3)                         not null,
   ano_fiscal           NUMBER(4)                       not null,
   per_ano_fiscal       NUMBER(2)                       not null,
   per_proceso          NUMBER(2)                       not null
         constraint gen_periodo_periodo_Ck check (per_proceso between 1 and 13),
   est_actual           CHAR(1)                        default 'A' 
         constraint gen_periodo_estado_Ck check (est_actual is null or ( est_actual in ('A','C') )),
   constraint GEN_PERIODO_PK primary key (cod_cia, ano_fiscal)
)
/


/*==============================================================*/
/* Table : gen_periodo_rango                                    */
/*==============================================================*/

create table gen_periodo_rango (
   cod_cia              char(3)                         not null,
   ano_fiscal           NUMBER(4)                       not null,
   per_proceso          NUMBER(2)                       not null
         constraint Gen_periodo_rango_periodo_Ck check (per_proceso between 1 and 13),
   fec_inicio           DATE                            not null,
   fec_final            DATE                            not null,
   est_actual           CHAR(1)                        default 'A' 
         constraint Gen_periodo_rango_estado_Ck check (est_actual is null or ( est_actual in ('A','C') )),
   constraint GEN_PERIODO_RANGO_PK primary key (cod_cia, ano_fiscal, per_proceso)
)
/


/*==============================================================*/
/* Table : gen_persona                                          */
/*==============================================================*/

create table gen_persona (
   cod_cia              CHAR(3)                         not null,
   persona              VARCHAR(25)                     not null,
   nombre               VARCHAR2(50)                    not null,
   cedula               VARCHAR2(25)                    not null,
   direccion            VARCHAR2(120)                   not null,
   telefono1            VARCHAR2(15),
   telefono2            VARCHAR2(15),
   fax                  VARCHAR2(15),
   email                VARCHAR2(50),
   constraint GEN_PERSONA_PK primary key (cod_cia, persona)
)
/


/*==============================================================*/
/* Table : gen_prov_comision                                    */
/*==============================================================*/

create table gen_prov_comision (
   Cod_Cia              char(3)                         not null,
   Cod_Proveedor        VARCHAR2(25)                    not null,
   Cod_comision         VARCHAR2(3)                     not null,
   constraint GEN_PROV_COMISION_PK primary key (Cod_Cia, Cod_Proveedor, Cod_comision)
)
/


/*==============================================================*/
/* Table : gen_proveedor                                        */
/*==============================================================*/

create table gen_proveedor (
   cod_cia              char(3)                         not null,
   cod_proveedor        VARCHAR2(25)                    not null,
   cod_clase            VARCHAR2(3)                     not null,
   tipo_proveedor       CHAR(1)                        default 'M' not null
         constraint gen_proveedor_tipo_ck check (tipo_proveedor in ('M','P','B','S')),
   cedula               VARCHAR2(20)                    not null,
   des_proveedor        VARCHAR2(35)                    not null,
   des_direccion        VARCHAR2(50)                    not null,
   contacto             VARCHAR2(35),
   num_apartado         VARCHAR2(20),
   num_telefono1        VARCHAR2(16),
   num_telefono2        VARCHAR2(16),
   num_fax              VARCHAR2(16),
   des_razsocial        VARCHAR2(30),
   nom_responsable      VARCHAR2(30),
   cod_provincia        VARCHAR2(2),
   cod_canton           VARCHAR2(3),
   cod_distrito         VARCHAR2(3),
   estado_cobro         VARCHAR2(3),
   cod_pais             VARCHAR2(3)                     not null,
   cod_pais_despacho    VARCHAR2(3),
   dir_despacho         VARCHAR2(40),
   encargado_despacho   VARCHAR2(40),
   encargado_pago       VARCHAR2(40),
   ind_inhabilitado     CHAR(1)                        default 'N' not null
         constraint gen_proveedor_inhabilitado_ck check (ind_inhabilitado in ('N','S')),
   email                VARCHAR2(30),
   fec_ultmovto         DATE,
   constraint GEN_PROVEEDOR_PK primary key (cod_cia, cod_proveedor)
)
/


/*==============================================================*/
/* Table : gen_provincia                                        */
/*==============================================================*/

create table gen_provincia (
   Cod_Provincia        VARCHAR2(2)                     not null,
   Nom_Provincia        VARCHAR2(30)                    not null,
   constraint GEN_PROVINCIA_PK primary key (Cod_Provincia)
)
/


/*==============================================================*/
/* Table : gen_subcanal                                         */
/*==============================================================*/

create table gen_subcanal (
   cod_cia              char(3)                         not null,
   cod_grp_consumo      VARCHAR2(3)                     not null,
   cod_canal            VARCHAR2(3)                     not null,
   cod_sub_canal        VARCHAR2(3)                     not null,
   des_sub_canal        VARCHAR2(25)                    not null,
   constraint GEN_SUBCANAL_PK primary key (cod_cia, cod_grp_consumo, cod_canal, cod_sub_canal)
)
/


/*==============================================================*/
/* Table : gen_subzona                                          */
/*==============================================================*/

create table gen_subzona (
   cod_cia              char(3)                         not null,
   cod_zona             VARCHAR2(2)                     not null,
   cod_subzona          VARCHAR2(2)                     not null,
   nom_subzona          VARCHAR2(30),
   constraint GEN_SUBZONA_PK primary key (cod_cia, cod_zona, cod_subzona)
)
/


/*==============================================================*/
/* Table : gen_tipo_cambio                                      */
/*==============================================================*/

create table gen_tipo_cambio (
   cod_moneda           VARCHAR2(3)                     not null,
   fec_proceso          DATE                            not null,
   mon_tip_cam          NUMBER(14,4)                    not null,
   constraint GEN_TIPO_CAMBIO_PK primary key (cod_moneda, fec_proceso)
)
/


/*==============================================================*/
/* Table : gen_zona                                             */
/*==============================================================*/

create table gen_zona (
   cod_cia              char(3)                         not null,
   Cod_Zona             VARCHAR2(2)                     not null,
   Nom_Zona             VARCHAR2(30)                    not null,
   constraint GEN_ZONA_PK primary key (cod_cia, Cod_Zona)
)
/


alter table fac_det_precios
   add constraint fac_mas_precios_facdetpre_fk foreign key (cod_cia, cod_lista_precio)
      references fac_mas_precios (cod_cia, cod_lista_precio)
/


alter table GEN_PROV_CONTACTO
   add constraint genProveedor_genprovconta_fk foreign key (cod_cia, cod_proveedor)
      references gen_proveedor (cod_cia, cod_proveedor)
/


alter table GEN_CLIE_AGENTE
   add constraint gen_agente_clieagent_fk foreign key (cod_cia, sucursal, cod_agente)
      references GEN_AGENTE (Cod_Cia, sucursal, Cod_Agente)
/


alter table GEN_COM_AGENTE
   add constraint gen_agente_comagent_fk foreign key (cod_cia, sucursal, cod_agente)
      references GEN_AGENTE (Cod_Cia, sucursal, Cod_Agente)
/


alter table GEN_FUNCIONES
   add constraint gen_agente_funciones_fk foreign key (cod_cia, sucursal, cod_agente)
      references GEN_AGENTE (Cod_Cia, sucursal, Cod_Agente)
/


alter table gen_subcanal
   add constraint gen_canal_subcanal_fk foreign key (cod_cia, cod_grp_consumo, cod_canal)
      references gen_canal (cod_cia, cod_grp_consumo, cod_canal)
/


alter table gen_distrito
   add constraint gen_canton_distrito_fk foreign key (Cod_Provincia, Cod_Canton)
      references gen_canton (Cod_Provincia, Cod_Canton)
/


alter table gen_clase_clie_moneda
   add constraint gen_cla_cliente_clamon_fk foreign key (cod_cia, cod_clase)
      references GEN_CLASE_CLIENTE (cod_cia, cod_clase)
/


alter table gen_clase_prov_moneda
   add constraint gen_cla_prov_clamon_fk foreign key (cod_cia, cod_clase)
      references GEN_CLASE_PROV (cod_cia, cod_clase)
/


alter table GEN_CLIENTE
   add constraint gen_clase_cliente_cliente_fk foreign key (Cod_Cia, Cod_Clase)
      references GEN_CLASE_CLIENTE (cod_cia, cod_clase)
/


alter table gen_proveedor
   add constraint gen_clase_prov_prov_fk foreign key (cod_cia, cod_clase)
      references GEN_CLASE_PROV (cod_cia, cod_clase)
/


alter table GEN_CLIE_AGENTE
   add constraint gen_cliente_clieagente_fk foreign key (cod_cia, cod_cliente)
      references GEN_CLIENTE (Cod_Cia, Cod_Cliente)
/


alter table GEN_CLIENTE_PREVENTA
   add constraint gen_cliente_cliepreventa_fk foreign key (Cod_Cia, Cod_Cliente)
      references GEN_CLIENTE (Cod_Cia, Cod_Cliente)
/


alter table gen_grp_consumo
   add constraint gen_cliente_grpconsumo_fk foreign key (cod_cia, Cod_Cliente)
      references GEN_CLIENTE (Cod_Cia, Cod_Cliente)
/


alter table GEN_SOBREG_CLIENTE
   add constraint gen_cliente_sobregclie_fk foreign key (cod_cia, cod_cliente)
      references GEN_CLIENTE (Cod_Cia, Cod_Cliente)
/


alter table GEN_MAS_COMISION
   add constraint gen_comp_mascom_fk foreign key (cod_cia)
      references gen_compania (cod_cia)
/


alter table GEN_TIPO_AGENTE
   add constraint gen_comp_tipoagent_fk foreign key (cod_cia)
      references gen_compania (cod_cia)
/


alter table GEN_AGENTE
   add constraint gen_compania_agente_fk foreign key (Cod_Cia)
      references gen_compania (cod_cia)
/


alter table GEN_CLIENTE
   add constraint gen_compania_cliente_fk foreign key (Cod_Cia)
      references gen_compania (cod_cia)
/


alter table fac_descuentos
   add constraint gen_compania_facdescuentos_fk foreign key (cod_cia)
      references gen_compania (cod_cia)
/


alter table gen_parametro
   add constraint gen_compania_param_fk foreign key (cod_cia)
      references gen_compania (cod_cia)
/


alter table gen_periodo
   add constraint gen_compania_periodo_fk foreign key (cod_cia)
      references gen_compania (cod_cia)
/


alter table GEN_SUCURSAL
   add constraint gen_compania_sucursal_fk foreign key (cod_cia)
      references gen_compania (cod_cia)
/


alter table gen_zona
   add constraint gen_compania_zona_fk foreign key (cod_cia)
      references gen_compania (cod_cia)
/


alter table GEN_CLIENTE
   add constraint gen_distrito_cliente_fk foreign key (Cod_Provincia, Cod_Canton, Cod_Distrito)
      references gen_distrito (Cod_Provincia, Cod_Canton, Cod_Distrito)
/


alter table gen_proveedor
   add constraint gen_distrito_prov_fk foreign key (cod_canton, cod_distrito, cod_provincia)
      references gen_distrito (Cod_Canton, Cod_Distrito, Cod_Provincia)
/


alter table GEN_CLIE_AGENTE
   add constraint gen_funciones_clieagent_fk foreign key (cod_cia, sucursal, cod_agente, tipo_agente)
      references GEN_FUNCIONES (cod_cia, sucursal, cod_agente, tipo_agente)
/


alter table gen_canal
   add constraint gen_grp_consumo_canal_fk foreign key (cod_cia, cod_grp_consumo)
      references gen_grp_consumo (cod_cia, cod_grp_consumo)
/


alter table GEN_COM_AGENTE
   add constraint gen_mas_com_comagente_fk foreign key (cod_cia, cod_comision)
      references GEN_MAS_COMISION (cod_cia, cod_comision)
/


alter table fac_det_comision_ln
   add constraint gen_mas_com_facdetcomln_fk foreign key (cod_cia, cod_comision)
      references GEN_MAS_COMISION (cod_cia, cod_comision)
/


alter table fac_det_comision_mn
   add constraint gen_mas_com_facdetcommn_fk foreign key (cod_cia, cod_comision)
      references GEN_MAS_COMISION (cod_cia, cod_comision)
/


alter table fac_premios
   add constraint gen_mas_com_facprem_fk foreign key (cod_cia, cod_comision)
      references GEN_MAS_COMISION (cod_cia, cod_comision)
/


alter table gen_prov_comision
   add constraint gen_mas_comi_provcomi_fk foreign key (Cod_Cia, Cod_comision)
      references GEN_MAS_COMISION (cod_cia, cod_comision)
/


alter table GEN_DENOMINACIONES
   add constraint gen_moneda_denomin_fk foreign key (cod_moneda)
      references gen_moneda (cod_moneda)
/


alter table fac_det_precios
   add constraint gen_moneda_facdetprecios_fk foreign key (cod_moneda)
      references gen_moneda (cod_moneda)
/


alter table GEN_MAS_COMISION
   add constraint gen_moneda_mascomis_fk foreign key (cod_moneda)
      references gen_moneda (cod_moneda)
/


alter table gen_parametro
   add constraint gen_moneda_param_fk foreign key (cod_moneda)
      references gen_moneda (cod_moneda)
/


alter table GEN_SOBREG_CLIENTE
   add constraint gen_moneda_sobregclie_fk foreign key (cod_moneda)
      references gen_moneda (cod_moneda)
/


alter table GEN_SOBREG_PROVEEDOR
   add constraint gen_moneda_sobregprov_fk foreign key (cod_moneda)
      references gen_moneda (cod_moneda)
/


alter table gen_tipo_cambio
   add constraint gen_moneda_tipcambio_fk foreign key (cod_moneda)
      references gen_moneda (cod_moneda)
/


alter table gen_compania
   add constraint gen_pais_compania_fk foreign key (cod_pais)
      references gen_pais (cod_pais)
/


alter table gen_proveedor
   add constraint gen_pais_proveedor_fk foreign key (cod_pais)
      references gen_pais (cod_pais)
/


alter table gen_periodo_rango
   add constraint gen_periodo_periodorango_fk foreign key (cod_cia, ano_fiscal)
      references gen_periodo (cod_cia, ano_fiscal)
/


alter table gen_prov_comision
   add constraint gen_prov_provcomision_fk foreign key (Cod_Cia, Cod_Proveedor)
      references gen_proveedor (cod_cia, cod_proveedor)
/


alter table GEN_SOBREG_PROVEEDOR
   add constraint gen_prov_sobregprov_fk foreign key (cod_cia, cod_proveedor)
      references gen_proveedor (cod_cia, cod_proveedor)
/


alter table gen_canton
   add constraint gen_provincia_canton_fk foreign key (Cod_Provincia)
      references gen_provincia (Cod_Provincia)
/


alter table GEN_CLIENTE
   add constraint gen_subzona_cliente_fk foreign key (cod_zona, cod_subzona, Cod_Cia)
      references gen_subzona (cod_zona, cod_subzona, cod_cia)
/


alter table GEN_CLIENTE
   add constraint gen_sucursal_cliente_fk foreign key (Cod_Cia, Sucursal)
      references GEN_SUCURSAL (cod_cia, sucursal)
/


alter table GEN_OFICINA
   add constraint gen_sucursal_oficina_fk foreign key (COD_CIA, SUCURSAL)
      references GEN_SUCURSAL (cod_cia, sucursal)
/


alter table GEN_FUNCIONES
   add constraint gen_tipo_agent_funcion_fk foreign key (cod_cia, tipo_agente)
      references GEN_TIPO_AGENTE (cod_cia, tipo_agente)
/


alter table gen_subzona
   add constraint gen_zona_subzona_fk foreign key (cod_cia, cod_zona)
      references gen_zona (cod_cia, Cod_Zona)
/


alter table gen_cliente_bitacora
   add constraint GEN_CLIENTE_BITACORA_FK foreign key (cod_cia, cod_cliente)
      references GEN_CLIENTE (Cod_Cia, Cod_Cliente)
/


alter table gen_cliente_referencia
   add constraint GEN_CLIENTE_REFERENCIA_FK foreign key (cod_cia, cod_cliente)
      references GEN_CLIENTE (Cod_Cia, Cod_Cliente)
/


