CREATE TABLE Companias ( 
IdCia CHAR(2) NOT NULL,
Compania VARCHAR(50) NOT NULL
 CONSTRAINT PK_Companias PRIMARY KEY CLUSTERED (IdCia),
 CONSTRAINT CK_CompaniasCompania CHECK ((len([Compania])>(0))),
 CONSTRAINT CK_CompaniasIdCia CHECK ((len([IdCia])>(0))))
CREATE TABLE ConcExtracto ( 
Numero INT DEFAULT ((0)) NOT NULL,
Item INT DEFAULT ((0)) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
Concepto VARCHAR(250) NOT NULL,
VrImporte MONEY DEFAULT ((0)) NOT NULL,
VrSaldo MONEY DEFAULT ((0)) NOT NULL,
Referencia VARCHAR(50) NOT NULL,
NitTercero VARCHAR(16),
TipoTrans VARCHAR(20),
NumTrans VARCHAR(50),
Estado INT DEFAULT ((0)) NOT NULL,
ItemMovi INT DEFAULT ((0)) NOT NULL,
ValorMovi MONEY DEFAULT ((0)) NOT NULL
 CONSTRAINT PK_ConcExtracto PRIMARY KEY CLUSTERED (Numero,Item),
 CONSTRAINT CK_ConcExtractoConcepto CHECK ((len([Concepto])>(0))),
 CONSTRAINT CK_ConcExtractoReferencia CHECK ((len([Referencia])>(0))))
CREATE TABLE Conciliacion ( 
Numero INT DEFAULT ((0)) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
FecInicial SMALLDATETIME NOT NULL,
FecFinal SMALLDATETIME NOT NULL,
Estado INT DEFAULT ((0)) NOT NULL,
IdCta VARCHAR(4),
Cuenta VARCHAR(50),
DescCuenta VARCHAR(50),
Criterios VARCHAR(250),
IdUsuario VARCHAR(11) NOT NULL,
NomUsuario VARCHAR(50)
 CONSTRAINT PK_Conciliacion PRIMARY KEY CLUSTERED (Numero),
 CONSTRAINT CK_ConciliacionIdUsuario CHECK ((len([IdUsuario])>(0))))
CREATE TABLE ConcMovimiento ( 
Numero INT DEFAULT ((0)) NOT NULL,
Item INT DEFAULT ((0)) NOT NULL,
TipCom VARCHAR(3) NOT NULL,
Comprobante INT DEFAULT ((0)) NOT NULL,
IdCia CHAR(2) NOT NULL,
ItemCom INT DEFAULT ((0)) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
IdCuenta VARCHAR(16) NOT NULL,
Detalle VARCHAR(250) NOT NULL,
VrDebito MONEY DEFAULT ((0)) NOT NULL,
VrCredito MONEY DEFAULT ((0)) NOT NULL,
IdTercero VARCHAR(16) NOT NULL,
VrBase MONEY DEFAULT ((0)) NOT NULL,
TarifaBase DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
TipDoc VARCHAR(3),
Documento INT DEFAULT ((0)) NOT NULL,
IdCiaDoc CHAR(2) DEFAULT ('01'),
NitDoc VARCHAR(16),
CodCta VARCHAR(4),
NumCheque VARCHAR(20),
FecCheque SMALLDATETIME,
EnEfectivo BIT DEFAULT ((0)) NOT NULL,
Beneficiario VARCHAR(250),
Integrado BIT DEFAULT ((0)) NOT NULL,
EsEgreso BIT DEFAULT ((0)) NOT NULL,
NitOtros VARCHAR(16),
CodCiudad VARCHAR(8),
NomCiudad VARCHAR(50),
Referencia VARCHAR(50),
TipDocRef VARCHAR(3),
DocRef INT DEFAULT ((0)) NOT NULL,
IdCiaRef CHAR(2) DEFAULT ('01'),
TimeSys SMALLDATETIME NOT NULL,
VrTotal MONEY DEFAULT ((0)) NOT NULL,
Anulado BIT DEFAULT ((0)) NOT NULL,
TipEgr VARCHAR(3),
NEgreso INT DEFAULT ((0)) NOT NULL,
Observacion VARCHAR(250),
Estado INT DEFAULT ((0)) NOT NULL,
ItemExto INT DEFAULT ((0)) NOT NULL,
ValorExto MONEY DEFAULT ((0)) NOT NULL
 CONSTRAINT PK_ConcMovimiento PRIMARY KEY CLUSTERED (Numero,Item),
 CONSTRAINT CK_ConcMovimientoDetalle CHECK ((len([Detalle])>(0))),
 CONSTRAINT CK_ConcMovimientoIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_ConcMovimientoIdCuenta CHECK ((len([IdCuenta])>(0))),
 CONSTRAINT CK_ConcMovimientoIdTercero CHECK ((len([IdTercero])>(0))),
 CONSTRAINT CK_ConcMovimientoTipCom CHECK ((len([TipCom])>(0))))
CREATE TABLE Cuentas ( 
IdCta VARCHAR(4) NOT NULL,
NumeroCta VARCHAR(20) NOT NULL,
IdBanco VARCHAR(4) NOT NULL,
Banco VARCHAR(50) NOT NULL
 CONSTRAINT PK_Cuentas PRIMARY KEY CLUSTERED (IdCta),
 CONSTRAINT CK_CuentasBanco CHECK ((len([Banco])>(0))),
 CONSTRAINT CK_CuentasIdBanco CHECK ((len([IdBanco])>(0))),
 CONSTRAINT CK_CuentasIdCta CHECK ((len([IdCta])>(0))),
 CONSTRAINT CK_CuentasNumeroCta CHECK ((len([NumeroCta])>(0))))
CREATE TABLE InfCnxion ( 
IdReg INT DEFAULT ((0)) NOT NULL,
CnxEngine VARCHAR(3) DEFAULT ('SQL') NOT NULL,
CnxProv VARCHAR(50) NOT NULL,
CnxDso VARCHAR(250) NOT NULL,
CnxDbname VARCHAR(50) NOT NULL,
CnxAutentic VARCHAR(3) DEFAULT ('SQL') NOT NULL,
CnxUid VARCHAR(50),
CnxPwd VARCHAR(50),
CnxOwner VARCHAR(20) DEFAULT ('dbo'),
CnxApp VARCHAR(10) DEFAULT ('SYSCOM') NOT NULL,
CnxVersn INT DEFAULT ((0)) NOT NULL
 CONSTRAINT PK_InfCnxion PRIMARY KEY CLUSTERED (IdReg),
 CONSTRAINT CK_InfCnxionCnxApp CHECK (([CnxApp]='SYSCOM40' OR ([CnxApp]='BUSES' OR [CnxApp]='SYSCOM30'))),
 CONSTRAINT CK_InfCnxionCnxAutentic CHECK (([CnxAutentic]='SQL' OR [CnxAutentic]='WIN')),
 CONSTRAINT CK_InfCnxionCnxDbname CHECK ((len([CnxDbname])>(0))),
 CONSTRAINT CK_InfCnxionCnxDso CHECK ((len([CnxDso])>(0))),
 CONSTRAINT CK_InfCnxionCnxEngine CHECK (([CnxEngine]='JET' OR [CnxEngine]='SQL')),
 CONSTRAINT CK_InfCnxionCnxProv CHECK ((len([CnxProv])>(0))))
CREATE TABLE Puc ( 
IdCuenta VARCHAR(16) NOT NULL,
NomCuenta VARCHAR(100) NOT NULL
 CONSTRAINT PK_Puc PRIMARY KEY CLUSTERED (IdCuenta),
 CONSTRAINT CK_PucIdCuenta CHECK ((len([IdCuenta])>(0))),
 CONSTRAINT CK_PucNomCuenta CHECK ((len([NomCuenta])>(0))))
CREATE TABLE Terceros ( 
IdTercero VARCHAR(16) NOT NULL,
RazonSocial VARCHAR(250) NOT NULL,
TipoId CHAR(1) DEFAULT ('N') NOT NULL,
Dv CHAR(1)
 CONSTRAINT PK_Terceros PRIMARY KEY CLUSTERED (IdTercero),
 CONSTRAINT CK_TercerosIdTercero CHECK ((len([IdTercero])>(0))),
 CONSTRAINT CK_TercerosRazonSocial CHECK ((len([RazonSocial])>(0))),
 CONSTRAINT CK_TercerosTipoId CHECK ((len([TipoId])>(0))))
CREATE TABLE TiposCom ( 
IdCom VARCHAR(3) NOT NULL,
TipoCom VARCHAR(50) NOT NULL
 CONSTRAINT PK_TiposCom PRIMARY KEY CLUSTERED (IdCom),
 CONSTRAINT CK_TiposComIdCom CHECK ((len([IdCom])>(0))),
 CONSTRAINT CK_TiposComTipoCom CHECK ((len([TipoCom])>(0))))
GO
 CREATE NONCLUSTERED INDEX IX_ConciliacionFecha ON Conciliacion(Fecha)

GO
ALTER TABLE ConcMovimiento ADD 
 CONSTRAINT FK_ConcMovimiento_Conciliacion FOREIGN KEY (Numero) REFERENCES [dbo].[Conciliacion] (Numero)
GO
 CREATE NONCLUSTERED INDEX IX_ConcMovimientoFecha ON ConcMovimiento(Fecha)

GO
