CREATE TABLE TaxRutas ( 
IdRuta VARCHAR(4) NOT NULL,
NomRuta VARCHAR(100) NOT NULL,
TipoRuta VARCHAR(10) DEFAULT ('PERSONAL') NOT NULL,
TarifPago MONEY DEFAULT (0) NOT NULL,
TarifCobro MONEY DEFAULT (0) NOT NULL,
Origen VARCHAR(30),
Destino VARCHAR(30),
CodRuta VARCHAR(20),
Inactivo BIT DEFAULT (0) NOT NULL
 CONSTRAINT PK_TaxRutas PRIMARY KEY CLUSTERED (IdRuta),
 CONSTRAINT CK_TaxRutasIdRuta CHECK ((len([IdRuta]) > 0)),
 CONSTRAINT CK_TaxRutasNomRuta CHECK ((len([NomRuta]) > 0)),
 CONSTRAINT CK_TaxRutasTipoRuta CHECK ((len([TipoRuta]) > 0)))
CREATE TABLE TaxTarifas ( 
TipoTarif VARCHAR(10) NOT NULL,
Item INT DEFAULT (0) NOT NULL,
TipoHora INT DEFAULT (0) NOT NULL,
NumInicial DECIMAL(14,4) DEFAULT (0) NOT NULL,
NumFinal DECIMAL(14,4) DEFAULT (0) NOT NULL,
TarifPago MONEY DEFAULT (0) NOT NULL,
TarifCobro MONEY DEFAULT (0) NOT NULL
 CONSTRAINT PK_TaxTarifas PRIMARY KEY CLUSTERED (TipoTarif,Item),
 CONSTRAINT CK_TaxTarifasTipoTarif CHECK ((len([TipoTarif]) > 0)))
CREATE TABLE TaxTarifClie ( 
TipoTarif VARCHAR(10) NOT NULL,
Item INT DEFAULT (0) NOT NULL,
IdClie VARCHAR(16) NOT NULL,
TipoHora INT DEFAULT (0) NOT NULL,
IdRuta VARCHAR(4) DEFAULT ('0') NOT NULL,
NumInicial DECIMAL(14,4) DEFAULT (0) NOT NULL,
NumFinal DECIMAL(14,4) DEFAULT (0) NOT NULL,
TarifPago MONEY DEFAULT (0) NOT NULL,
TarifCobro MONEY DEFAULT (0) NOT NULL
 CONSTRAINT PK_TaxTarifClie PRIMARY KEY CLUSTERED (TipoTarif,Item),
 CONSTRAINT CK_TaxTarifClieIdClie CHECK ((len([IdClie]) > 0)),
 CONSTRAINT CK_TaxTarifClieIdRuta CHECK ((len([IdRuta]) > 0)),
 CONSTRAINT CK_TaxTarifClieTipoTarif CHECK ((len([TipoTarif]) > 0)))
CREATE TABLE Trn_RadicaVales ( 
TipDoc VARCHAR(3) DEFAULT ('VAL') NOT NULL,
nRadica INT DEFAULT (0) NOT NULL,
IdCia CHAR(2) DEFAULT ('01') NOT NULL,
Fecha SMALLDATETIME NOT NULL,
FechaVence SMALLDATETIME NOT NULL,
IdConcepto VARCHAR(4) NOT NULL,
IdTercero VARCHAR(16) NOT NULL,
TotalPagos MONEY DEFAULT (0) NOT NULL,
TotalCobros MONEY DEFAULT (0) NOT NULL,
Referencia VARCHAR(50),
CxPagar BIT DEFAULT (0) NOT NULL,
OrigenAdd VARCHAR(10) NOT NULL,
TipCom VARCHAR(3) NOT NULL,
Comprobante INT DEFAULT (0) NOT NULL,
IdCiaCom CHAR(2) NOT NULL,
Anulado BIT DEFAULT (0) NOT NULL,
NumDev INT DEFAULT (0) NOT NULL,
FecDev SMALLDATETIME,
Observacion VARCHAR(250),
IdEstado VARCHAR(4) NOT NULL,
TimeSys SMALLDATETIME NOT NULL,
FecUpdate SMALLDATETIME,
IdCiaCrea CHAR(2) DEFAULT ('01') NOT NULL,
IdUsuario VARCHAR(11) NOT NULL
 CONSTRAINT PK_Trn_RadicaVales PRIMARY KEY CLUSTERED (TipDoc,nRadica,IdCia),
 CONSTRAINT CK_Trn_RadicaValesIdCia CHECK ((len([IdCia]) > 0)),
 CONSTRAINT CK_Trn_RadicaValesIdCiaCom CHECK ((len([IdCiaCom]) > 0)),
 CONSTRAINT CK_Trn_RadicaValesIdCiaCrea CHECK ((len([IdCiaCrea]) > 0)),
 CONSTRAINT CK_Trn_RadicaValesIdConcepto CHECK ((len([IdConcepto]) > 0)),
 CONSTRAINT CK_Trn_RadicaValesIdEstado CHECK ((len([IdEstado]) > 0)),
 CONSTRAINT CK_Trn_RadicaValesIdTercero CHECK ((len([IdTercero]) > 0)),
 CONSTRAINT CK_Trn_RadicaValesIdUsuario CHECK ((len([IdUsuario]) > 0)),
 CONSTRAINT CK_Trn_RadicaValesOrigenAdd CHECK ((len([OrigenAdd]) > 0)),
 CONSTRAINT CK_Trn_RadicaValesTipCom CHECK ((len([TipCom]) > 0)),
 CONSTRAINT CK_Trn_RadicaValesTipDoc CHECK ((len([TipDoc]) > 0)))
CREATE TABLE Trn_Vales ( 
TipDoc VARCHAR(3) DEFAULT ('VAL') NOT NULL,
nRadica INT DEFAULT (0) NOT NULL,
IdCia CHAR(2) DEFAULT ('01') NOT NULL,
Item INT DEFAULT (0) NOT NULL,
TipoRango VARCHAR(3) NOT NULL,
IdRango INT DEFAULT (0) NOT NULL,
NumSerie VARCHAR(5) NOT NULL,
NumForma INT DEFAULT (0) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
HoraServ VARCHAR(10) NOT NULL,
IdCliente VARCHAR(16) NOT NULL,
IdAgencia VARCHAR(16) DEFAULT ('0') NOT NULL,
IdCuenta VARCHAR(16) NOT NULL,
NumMovil VARCHAR(10) NOT NULL,
CentCosto VARCHAR(50) DEFAULT ('0') NOT NULL,
Unidades DECIMAL(14,4) DEFAULT (0) NOT NULL,
HoraRec DECIMAL(14,4) DEFAULT (0) NOT NULL,
HoraEspera DECIMAL(14,4) DEFAULT (0) NOT NULL,
FactUnid BIT DEFAULT (0) NOT NULL,
FactRutas BIT DEFAULT (0) NOT NULL,
FactHoras BIT DEFAULT (0) NOT NULL,
VrPago MONEY DEFAULT (0) NOT NULL,
VrCobro MONEY DEFAULT (0) NOT NULL,
PlacaVeh VARCHAR(10),
CdConductor VARCHAR(16),
NomConductor VARCHAR(150),
CantPasaj INT DEFAULT (0) NOT NULL,
Usuarios VARCHAR(1000),
TipFac VARCHAR(3) DEFAULT ('0') NOT NULL,
NumFactura INT DEFAULT (0) NOT NULL,
IdCiaFac CHAR(2) DEFAULT ('00') NOT NULL,
FechaFac SMALLDATETIME,
Anulado BIT DEFAULT (0) NOT NULL,
NumDev INT DEFAULT (0) NOT NULL,
FecDev SMALLDATETIME,
Observacion VARCHAR(1000),
FechaUp SMALLDATETIME,
CdUsuario VARCHAR(11) NOT NULL
 CONSTRAINT PK_Trn_Vales PRIMARY KEY CLUSTERED (TipDoc,nRadica,IdCia,Item),
 CONSTRAINT CK_Trn_ValesCdUsuario CHECK ((len([CdUsuario]) > 0)),
 CONSTRAINT CK_Trn_ValesCentCosto CHECK ((len([CentCosto]) > 0)),
 CONSTRAINT CK_Trn_ValesHoraServ CHECK ((len([HoraServ]) > 0)),
 CONSTRAINT CK_Trn_ValesIdAgencia CHECK ((len([IdAgencia]) > 0)),
 CONSTRAINT CK_Trn_ValesIdCia CHECK ((len([IdCia]) > 0)),
 CONSTRAINT CK_Trn_ValesIdCiaFac CHECK ((len([IdCiaFac]) > 0)),
 CONSTRAINT CK_Trn_ValesIdCliente CHECK ((len([IdCliente]) > 0)),
 CONSTRAINT CK_Trn_ValesIdCuenta CHECK ((len([IdCuenta]) > 0)),
 CONSTRAINT CK_Trn_ValesNumMovil CHECK ((len([NumMovil]) > 0)),
 CONSTRAINT CK_Trn_ValesNumSerie CHECK ((len([NumSerie]) > 0)),
 CONSTRAINT CK_Trn_ValesTipDoc CHECK ((len([TipDoc]) > 0)),
 CONSTRAINT CK_Trn_ValesTipFac CHECK ((len([TipFac]) > 0)),
 CONSTRAINT CK_Trn_ValesTipoRango CHECK ((len([TipoRango]) > 0)))
CREATE TABLE Trn_ValesRutas ( 
TipDoc VARCHAR(3) DEFAULT ('VAL') NOT NULL,
nRadica INT DEFAULT (0) NOT NULL,
IdCia CHAR(2) DEFAULT ('01') NOT NULL,
Item INT DEFAULT (0) NOT NULL,
IdRuta VARCHAR(4) NOT NULL,
TarifPago MONEY DEFAULT (0) NOT NULL,
TarifCobro MONEY DEFAULT (0) NOT NULL,
DescripRuta VARCHAR(50)
 CONSTRAINT PK_Trn_ValesRutas PRIMARY KEY CLUSTERED (TipDoc,nRadica,IdCia,Item,IdRuta),
 CONSTRAINT CK_Trn_ValesRutasIdCia CHECK ((len([IdCia]) > 0)),
 CONSTRAINT CK_Trn_ValesRutasIdRuta CHECK ((len([IdRuta]) > 0)),
 CONSTRAINT CK_Trn_ValesRutasTipDoc CHECK ((len([TipDoc]) > 0)))
CREATE TABLE tm_ValesCred ( 
tmNumero VARCHAR(5) NOT NULL,
tmItem INT DEFAULT (0) NOT NULL,
tmTipo VARCHAR(3) NOT NULL,
tmRango INT DEFAULT (0) NOT NULL,
tmNumSerie VARCHAR(5) NOT NULL,
tmNumVale INT DEFAULT (0) NOT NULL,
tmFecha SMALLDATETIME NOT NULL,
tmHoraServ VARCHAR(10) NOT NULL,
tmIdCliente VARCHAR(16) NOT NULL,
tmIdAgencia VARCHAR(16) DEFAULT ('0') NOT NULL,
tmIdCuenta VARCHAR(16) NOT NULL,
tmNumMovil VARCHAR(10) NOT NULL,
tmCentCosto VARCHAR(50) DEFAULT ('0') NOT NULL,
tmUnidades DECIMAL(14,4) DEFAULT (0) NOT NULL,
tmHoraRec DECIMAL(14,4) DEFAULT (0) NOT NULL,
tmHoraEspera DECIMAL(14,4) DEFAULT (0) NOT NULL,
tmFactUnid BIT DEFAULT (0) NOT NULL,
tmFactRutas BIT DEFAULT (0) NOT NULL,
tmFactHoras BIT DEFAULT (0) NOT NULL,
tmVrPago MONEY DEFAULT (0) NOT NULL,
tmVrCobro MONEY DEFAULT (0) NOT NULL,
tmPlacaVeh VARCHAR(10),
tmCdConductor VARCHAR(16),
tmConductor VARCHAR(150),
tmCantidad INT DEFAULT (0) NOT NULL,
tmUsuarios VARCHAR(1000),
tmObservacion VARCHAR(1000),
tmNumAuto BIT DEFAULT (0) NOT NULL,
tmRutas VARCHAR(150),
tmRadica INT DEFAULT (0) NOT NULL,
tmCiaRad CHAR(2),
tmItemRad INT DEFAULT (0) NOT NULL
 CONSTRAINT PK_tm_ValesCred PRIMARY KEY CLUSTERED (tmNumero,tmItem),
 CONSTRAINT CK_tm_ValesCredtmCentCosto CHECK ((len([tmCentCosto]) > 0)),
 CONSTRAINT CK_tm_ValesCredtmHoraServ CHECK ((len([tmHoraServ]) > 0)),
 CONSTRAINT CK_tm_ValesCredtmIdAgencia CHECK ((len([tmIdAgencia]) > 0)),
 CONSTRAINT CK_tm_ValesCredtmIdCliente CHECK ((len([tmIdCliente]) > 0)),
 CONSTRAINT CK_tm_ValesCredtmIdCuenta CHECK ((len([tmIdCuenta]) > 0)),
 CONSTRAINT CK_tm_ValesCredtmNumero CHECK ((len([tmNumero]) > 0)),
 CONSTRAINT CK_tm_ValesCredtmNumMovil CHECK ((len([tmNumMovil]) > 0)),
 CONSTRAINT CK_tm_ValesCredtmNumSerie CHECK ((len([tmNumSerie]) > 0)),
 CONSTRAINT CK_tm_ValesCredtmTipo CHECK ((len([tmTipo]) > 0)))
CREATE TABLE Trn_DevVal ( 
TipDev VARCHAR(3) DEFAULT ('DRV') NOT NULL,
Devolucion INT DEFAULT (0) NOT NULL,
IdCia CHAR(2) DEFAULT ('01') NOT NULL,
Fecha SMALLDATETIME NOT NULL,
IdConcepto VARCHAR(4) NOT NULL,
TipDoc VARCHAR(3) DEFAULT ('VAL') NOT NULL,
nRadica INT DEFAULT (0) NOT NULL,
IdCiaDoc CHAR(2) DEFAULT ('01') NOT NULL,
FecDoc SMALLDATETIME NOT NULL,
IdTercero VARCHAR(16) NOT NULL,
TotalPagos MONEY DEFAULT (0) NOT NULL,
TotalCobros MONEY DEFAULT (0) NOT NULL,
Referencia VARCHAR(50),
CxPagar BIT DEFAULT (0) NOT NULL,
ModdDev VARCHAR(10) DEFAULT ('TOTAL') NOT NULL,
OrigenAdd VARCHAR(10) NOT NULL,
TipCom VARCHAR(3) NOT NULL,
Comprobante INT DEFAULT (0) NOT NULL,
IdCiaCom CHAR(2) NOT NULL,
Observacion VARCHAR(250),
IdEstado VARCHAR(4) NOT NULL,
TimeSys SMALLDATETIME NOT NULL,
FecUpdate SMALLDATETIME,
IdCiaCrea CHAR(2) DEFAULT ('01') NOT NULL,
IdUsuario VARCHAR(11) NOT NULL
 CONSTRAINT PK_Trn_DevVal PRIMARY KEY CLUSTERED (TipDev,Devolucion,IdCia),
 CONSTRAINT CK_Trn_DevValIdCia CHECK ((len([IdCia]) > 0)),
 CONSTRAINT CK_Trn_DevValIdCiaCom CHECK ((len([IdCiaCom]) > 0)),
 CONSTRAINT CK_Trn_DevValIdCiaCrea CHECK ((len([IdCiaCrea]) > 0)),
 CONSTRAINT CK_Trn_DevValIdCiaDoc CHECK ((len([IdCiaDoc]) > 0)),
 CONSTRAINT CK_Trn_DevValIdConcepto CHECK ((len([IdConcepto]) > 0)),
 CONSTRAINT CK_Trn_DevValIdEstado CHECK ((len([IdEstado]) > 0)),
 CONSTRAINT CK_Trn_DevValIdTercero CHECK ((len([IdTercero]) > 0)),
 CONSTRAINT CK_Trn_DevValIdUsuario CHECK ((len([IdUsuario]) > 0)),
 CONSTRAINT CK_Trn_DevValModdDev CHECK (([ModdDev] = 'PARCIAL' or [ModdDev] = 'TOTAL')),
 CONSTRAINT CK_Trn_DevValOrigenAdd CHECK ((len([OrigenAdd]) > 0)),
 CONSTRAINT CK_Trn_DevValTipCom CHECK ((len([TipCom]) > 0)),
 CONSTRAINT CK_Trn_DevValTipDev CHECK ((len([TipDev]) > 0)),
 CONSTRAINT CK_Trn_DevValTipDoc CHECK ((len([TipDoc]) > 0)))
CREATE TABLE Trn_FactVales ( 
TipDoc VARCHAR(3) NOT NULL,
Factura INT DEFAULT (0) NOT NULL,
IdCia CHAR(2) DEFAULT ('01') NOT NULL,
Item INT DEFAULT (0) NOT NULL,
TipRad VARCHAR(3) DEFAULT ('VAL') NOT NULL,
nRadica INT DEFAULT (0) NOT NULL,
IdCiaRad CHAR(2) DEFAULT ('01') NOT NULL,
ItemRad INT DEFAULT (0) NOT NULL
 CONSTRAINT PK_Trn_FactVales PRIMARY KEY CLUSTERED (TipDoc,Factura,IdCia,Item),
 CONSTRAINT CK_Trn_FactValesIdCia CHECK ((len([IdCia]) > 0)),
 CONSTRAINT CK_Trn_FactValesIdCiaRad CHECK ((len([IdCiaRad]) > 0)),
 CONSTRAINT CK_Trn_FactValesTipDoc CHECK ((len([TipDoc]) > 0)),
 CONSTRAINT CK_Trn_FactValesTipRad CHECK ((len([TipRad]) > 0)))
GO
ALTER TABLE TaxTarifClie ADD 
 CONSTRAINT FK_TaxTarifClie_Terceros FOREIGN KEY (IdClie) REFERENCES [dbo].[Terceros] (IdTercero)
ALTER TABLE Trn_RadicaVales ADD 
 CONSTRAINT FK_Trn_RadicaVales_adm_Usuarios FOREIGN KEY (IdUsuario) REFERENCES [dbo].[adm_Usuarios] (IdUsuario),
 CONSTRAINT FK_Trn_RadicaVales_Companias FOREIGN KEY (IdCia) REFERENCES [dbo].[Companias] (IdCia),
 CONSTRAINT FK_Trn_RadicaVales_Conceptos FOREIGN KEY (IdConcepto) REFERENCES [dbo].[Conceptos] (IdConcepto),
 CONSTRAINT FK_Trn_RadicaVales_EstadoDoc FOREIGN KEY (IdEstado) REFERENCES [dbo].[EstadoDoc] (IdEstado),
 CONSTRAINT FK_Trn_RadicaVales_Sys_TiposDoc FOREIGN KEY (TipDoc) REFERENCES [dbo].[Sys_TiposDoc] (IdDoc),
 CONSTRAINT FK_Trn_RadicaVales_Terceros FOREIGN KEY (IdTercero) REFERENCES [dbo].[Terceros] (IdTercero)
GO
 CREATE NONCLUSTERED INDEX IX_Trn_RadicaValesFecha ON Trn_RadicaVales(Fecha)
 CREATE NONCLUSTERED INDEX IX_Trn_RadicaValesIdTercero ON Trn_RadicaVales(IdTercero)
 CREATE NONCLUSTERED INDEX IX_Trn_RadicaValesComprobante ON Trn_RadicaVales(TipCom,Comprobante,IdCiaCom)
ALTER TABLE Trn_Vales ADD 
 CONSTRAINT FK_Trn_Vales_Puc FOREIGN KEY (IdCuenta) REFERENCES [dbo].[Puc] (IdCuenta),
 CONSTRAINT FK_Trn_Vales_Terceros FOREIGN KEY (IdCliente) REFERENCES [dbo].[Terceros] (IdTercero),
 CONSTRAINT FK_Trn_Vales_Trn_RadicaVales FOREIGN KEY (TipDoc,nRadica,IdCia) REFERENCES [dbo].[Trn_RadicaVales] (TipDoc,nRadica,IdCia)
GO
 CREATE NONCLUSTERED INDEX IX_Trn_ValesNumForma ON Trn_Vales(TipoRango,IdRango,NumSerie,NumForma)
 CREATE NONCLUSTERED INDEX IX_Trn_ValesIdCliente ON Trn_Vales(IdCliente)
 CREATE NONCLUSTERED INDEX IX_Trn_ValesNumFactura ON Trn_Vales(TipFac,NumFactura,IdCiaFac)
ALTER TABLE Trn_ValesRutas ADD 
 CONSTRAINT FK_Trn_ValesRutas_TaxRutas FOREIGN KEY (IdRuta) REFERENCES [dbo].[TaxRutas] (IdRuta),
 CONSTRAINT FK_Trn_ValesRutas_Trn_Vales FOREIGN KEY (TipDoc,nRadica,IdCia,Item) REFERENCES [dbo].[Trn_Vales] (TipDoc,nRadica,IdCia,Item)
GO
ALTER TABLE Trn_DevVal ADD 
 CONSTRAINT FK_Trn_DevVal_adm_Usuarios FOREIGN KEY (IdUsuario) REFERENCES [dbo].[adm_Usuarios] (IdUsuario),
 CONSTRAINT FK_Trn_DevVal_Companias FOREIGN KEY (IdCia) REFERENCES [dbo].[Companias] (IdCia),
 CONSTRAINT FK_Trn_DevVal_Conceptos FOREIGN KEY (IdConcepto) REFERENCES [dbo].[Conceptos] (IdConcepto),
 CONSTRAINT FK_Trn_DevVal_EstadoDoc FOREIGN KEY (IdEstado) REFERENCES [dbo].[EstadoDoc] (IdEstado),
 CONSTRAINT FK_Trn_DevVal_Sys_TiposDoc FOREIGN KEY (TipDev) REFERENCES [dbo].[Sys_TiposDoc] (IdDoc),
 CONSTRAINT FK_Trn_DevVal_Terceros FOREIGN KEY (IdTercero) REFERENCES [dbo].[Terceros] (IdTercero),
 CONSTRAINT FK_Trn_DevVal_Trn_RadicaVales FOREIGN KEY (TipDoc,nRadica,IdCiaDoc) REFERENCES [dbo].[Trn_RadicaVales] (TipDoc,nRadica,IdCia)
GO
 CREATE NONCLUSTERED INDEX IX_Trn_DevValFecha ON Trn_DevVal(Fecha)
 CREATE NONCLUSTERED INDEX IX_Trn_DevValnRadica ON Trn_DevVal(TipDoc,nRadica,IdCiaDoc)
