INSERT INTO Sys_Modulos (IdMod,Consecutivo,Descripcion,Valor,nModulo)
 VALUES ('OIL',23,'PRODUCTOR DE COMBUSTIBLE',0,'MAIN')
GO
CREATE TABLE TiposTasas ( 
IdTasa VARCHAR(4) NOT NULL,
TipoTasa VARCHAR(50) NOT NULL,
Simbolo VARCHAR(10),
Unidad VARCHAR(50),
Inactivo BIT DEFAULT ((0)) NOT NULL
 CONSTRAINT PK_TiposTasas PRIMARY KEY CLUSTERED (IdTasa),
 CONSTRAINT CK_TiposTasasIdTasa CHECK ((len([IdTasa])>(0))),
 CONSTRAINT CK_TiposTasasTipoTasa CHECK ((len([TipoTasa])>(0))))
GO
CREATE TABLE Trn_TasasDia ( 
Id INT IDENTITY ( 1,1 ) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
IdTasa VARCHAR(4) NOT NULL,
Valor DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
Unidad VARCHAR(50) NOT NULL
 CONSTRAINT PK_Trn_TasasDia PRIMARY KEY NONCLUSTERED (Id),
 CONSTRAINT CK_Trn_TasasDiaIdTasa CHECK ((len([IdTasa])>(0))),
 CONSTRAINT CK_Trn_TasasDiaUnidad CHECK ((len([Unidad])>(0))))
GO
CREATE TABLE ProdPrecCrudo ( 
TipoTarif VARCHAR(3) NOT NULL,
Numero INT DEFAULT ((0)) NOT NULL,
IdCia CHAR(2) DEFAULT ('01') NOT NULL,
IdProducto VARCHAR(16) NOT NULL,
IdTercero VARCHAR(16) NOT NULL,
Duracion VARCHAR(10) NOT NULL,
FecInicio SMALLDATETIME NOT NULL,
FecFinal SMALLDATETIME,
Tarifa DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
IdMoneda VARCHAR(5) NOT NULL,
Inactivo BIT DEFAULT ((0)) NOT NULL
 CONSTRAINT PK_ProdPrecCrudo PRIMARY KEY CLUSTERED (TipoTarif,Numero),
 CONSTRAINT CK_ProdPrecCrudoDuracion CHECK ((len([Duracion])>(0))),
 CONSTRAINT CK_ProdPrecCrudoIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_ProdPrecCrudoIdMoneda CHECK ((len([IdMoneda])>(0))),
 CONSTRAINT CK_ProdPrecCrudoIdProducto CHECK ((len([IdProducto])>(0))),
 CONSTRAINT CK_ProdPrecCrudoIdTercero CHECK ((len([IdTercero])>(0))),
 CONSTRAINT CK_ProdPrecCrudoTipoTarif CHECK ((len([TipoTarif])>(0))))
GO
CREATE TABLE ProdPrecCrudoFmla ( 
TipoTarif VARCHAR(3) NOT NULL,
Numero INT DEFAULT ((0)) NOT NULL,
Item INT DEFAULT ((0)) NOT NULL,
TipoTasa VARCHAR(10) NOT NULL,
Promedio VARCHAR(3) NOT NULL,
Valor DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
Unidad VARCHAR(50) NOT NULL
 CONSTRAINT PK_ProdPrecCrudoFmla PRIMARY KEY CLUSTERED (TipoTarif,Numero,Item),
 CONSTRAINT CK_ProdPrecCrudoFmlaPromedio CHECK ((len([Promedio])>(0))),
 CONSTRAINT CK_ProdPrecCrudoFmlaTipoTarif CHECK ((len([TipoTarif])>(0))),
 CONSTRAINT CK_ProdPrecCrudoFmlaTipoTasa CHECK ((len([TipoTasa])>(0))),
 CONSTRAINT CK_ProdPrecCrudoFmlaUnidad CHECK ((len([Unidad])>(0))))
GO
CREATE TABLE Trn_OilGuia ( 
TipDoc VARCHAR(3) NOT NULL,
NumGuia INT DEFAULT ((0)) NOT NULL,
IdCia CHAR(2) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
FecDespacho SMALLDATETIME NOT NULL,
IdProveedor VARCHAR(16) NOT NULL,
IdVehiculo VARCHAR(10) NOT NULL,
IdConductor VARCHAR(16) NOT NULL,
IdEstacion VARCHAR(4),
IdProducto VARCHAR(16) NOT NULL,
CantBruto DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
CantNeto DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
UndMed VARCHAR(10) DEFAULT ('br') NOT NULL,
Temperatura DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
UnidTemp CHAR(1),
ValorAPI DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
ValorVCW DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
CantDescargue DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
APIDescargue DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
TempDescargue DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
FecDescargue SMALLDATETIME,
NitEmpTrans VARCHAR(16),
NomEmpTrans VARCHAR(150),
NumRemision VARCHAR(20),
Remolque VARCHAR(10),
TipoEnt VARCHAR(3) NOT NULL,
NumEntrada INT DEFAULT ((0)) NOT NULL,
IdCiaEnt CHAR(2) NOT NULL,
Anulado BIT DEFAULT ((0)) NOT NULL,
FecDev SMALLDATETIME,
Observacion VARCHAR(2000),
IdEstado VARCHAR(4) NOT NULL,
FechaCrea SMALLDATETIME NOT NULL,
IdCiaCrea CHAR(2) NOT NULL,
OrigenAdd VARCHAR(10) NOT NULL,
IdUsuario VARCHAR(11) NOT NULL
 CONSTRAINT PK_Trn_OilGuia PRIMARY KEY CLUSTERED (TipDoc,NumGuia,IdCia),
 CONSTRAINT CK_Trn_OilGuiaIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_Trn_OilGuiaIdCiaCrea CHECK ((len([IdCiaCrea])>(0))),
 CONSTRAINT CK_Trn_OilGuiaIdCiaEnt CHECK ((len([IdCiaEnt])>(0))),
 CONSTRAINT CK_Trn_OilGuiaIdConductor CHECK ((len([IdConductor])>(0))),
 CONSTRAINT CK_Trn_OilGuiaIdEstado CHECK ((len([IdEstado])>(0))),
 CONSTRAINT CK_Trn_OilGuiaIdProducto CHECK ((len([IdProducto])>(0))),
 CONSTRAINT CK_Trn_OilGuiaIdProveedor CHECK ((len([IdProveedor])>(0))),
 CONSTRAINT CK_Trn_OilGuiaIdUsuario CHECK ((len([IdUsuario])>(0))),
 CONSTRAINT CK_Trn_OilGuiaIdVehiculo CHECK ((len([IdVehiculo])>(0))),
 CONSTRAINT CK_Trn_OilGuiaOrigenAdd CHECK ((len([OrigenAdd])>(0))),
 CONSTRAINT CK_Trn_OilGuiaTipDoc CHECK ((len([TipDoc])>(0))),
 CONSTRAINT CK_Trn_OilGuiaTipoEnt CHECK ((len([TipoEnt])>(0))),
 CONSTRAINT CK_Trn_OilGuiaUndMed CHECK ((len([UndMed])>(0))))
GO
CREATE TABLE Trn_OilEntrada ( 
TipEnt VARCHAR(3) NOT NULL,
NumEntrada INT DEFAULT ((0)) NOT NULL,
IdCia CHAR(2) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
NumGuia INT DEFAULT ((0)) NOT NULL,
IdCiaGuia CHAR(2) NOT NULL,
FecDespacho SMALLDATETIME NOT NULL,
FecDescargue SMALLDATETIME NOT NULL,
IdProveedor VARCHAR(16) NOT NULL,
IdVehiculo VARCHAR(10) NOT NULL,
IdConductor VARCHAR(16) NOT NULL,
NitEmpTrans VARCHAR(16),
NomEmpTrans VARCHAR(150),
Remolque VARCHAR(10),
ValorTotal DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
CtaPagar BIT DEFAULT ((0)) NOT NULL,
TipFactCxp VARCHAR(3),
NumFactura INT DEFAULT ((0)) NOT NULL,
IdCiaCxp CHAR(2),
EstContable INT DEFAULT ((0)) NOT NULL,
CdConcepto VARCHAR(4),
TipCom VARCHAR(3),
Comprobante INT DEFAULT ((0)) NOT NULL,
IdCiaCom CHAR(2) NOT NULL,
Anulado BIT DEFAULT ((0)) NOT NULL,
FecDev SMALLDATETIME,
Observacion VARCHAR(2000),
IdEstado VARCHAR(4) NOT NULL,
FechaCrea SMALLDATETIME NOT NULL,
IdCiaCrea CHAR(2) NOT NULL,
OrigenAdd VARCHAR(10) NOT NULL,
IdUsuario VARCHAR(11) NOT NULL
 CONSTRAINT PK_Trn_OilEntrada PRIMARY KEY CLUSTERED (TipEnt,NumEntrada,IdCia),
 CONSTRAINT CK_Trn_OilEntradaIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_Trn_OilEntradaIdCiaCom CHECK ((len([IdCiaCom])>(0))),
 CONSTRAINT CK_Trn_OilEntradaIdCiaCrea CHECK ((len([IdCiaCrea])>(0))),
 CONSTRAINT CK_Trn_OilEntradaIdCiaGuia CHECK ((len([IdCiaGuia])>(0))),
 CONSTRAINT CK_Trn_OilEntradaIdConductor CHECK ((len([IdConductor])>(0))),
 CONSTRAINT CK_Trn_OilEntradaIdEstado CHECK ((len([IdEstado])>(0))),
 CONSTRAINT CK_Trn_OilEntradaIdProveedor CHECK ((len([IdProveedor])>(0))),
 CONSTRAINT CK_Trn_OilEntradaIdUsuario CHECK ((len([IdUsuario])>(0))),
 CONSTRAINT CK_Trn_OilEntradaIdVehiculo CHECK ((len([IdVehiculo])>(0))),
 CONSTRAINT CK_Trn_OilEntradaOrigenAdd CHECK ((len([OrigenAdd])>(0))),
 CONSTRAINT CK_Trn_OilEntradaTipEnt CHECK ((len([TipEnt])>(0))))
GO
CREATE TABLE Trn_OilEntradaProd ( 
TipEnt VARCHAR(3) NOT NULL,
NumEntrada INT DEFAULT ((0)) NOT NULL,
IdCia CHAR(2) NOT NULL,
Item INT DEFAULT ((0)) NOT NULL,
IdTanque VARCHAR(4) NOT NULL,
IdProducto VARCHAR(16) NOT NULL,
Cantidad DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
UndMed VARCHAR(10) DEFAULT ('br') NOT NULL,
Temperatura DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
UnidTemp CHAR(1),
ValorAPI DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
ValorVCW DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
API_Corregido DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
Densidad DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
CantCargue DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
TempCargue DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
API_Cargue DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
VCW_Cargue DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
PesoNeto DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
VrUnitario DECIMAL(16,6) DEFAULT ((0)) NOT NULL
 CONSTRAINT PK_Trn_OilEntradaProd PRIMARY KEY CLUSTERED (TipEnt,NumEntrada,IdCia,Item),
 CONSTRAINT CK_Trn_OilEntradaProdIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_Trn_OilEntradaProdIdProducto CHECK ((len([IdProducto])>(0))),
 CONSTRAINT CK_Trn_OilEntradaProdIdTanque CHECK ((len([IdTanque])>(0))),
 CONSTRAINT CK_Trn_OilEntradaProdTipEnt CHECK ((len([TipEnt])>(0))),
 CONSTRAINT CK_Trn_OilEntradaProdUndMed CHECK ((len([UndMed])>(0))))
GO

CREATE CLUSTERED INDEX IX_Trn_TasasDiaFecha ON Trn_TasasDia(IdTasa,Fecha)
ALTER TABLE Trn_TasasDia ADD 
 CONSTRAINT FK_Trn_TasasDia_TiposTasas FOREIGN KEY (IdTasa) REFERENCES [dbo].[TiposTasas] (IdTasa)

ALTER TABLE ProdPrecCrudo ADD 
 CONSTRAINT FK_ProdPrecCrudo_Companias FOREIGN KEY (IdCia) REFERENCES [dbo].[Companias] (IdCia),
 CONSTRAINT FK_ProdPrecCrudo_ProdMcias FOREIGN KEY (IdProducto) REFERENCES [dbo].[ProdMcias] (IdProducto),
 CONSTRAINT FK_ProdPrecCrudo_Terceros FOREIGN KEY (IdTercero) REFERENCES [dbo].[Terceros] (IdTercero)
 CREATE NONCLUSTERED INDEX IX_ProdPrecCrudoIdProducto ON ProdPrecCrudo(IdProducto)
 CREATE NONCLUSTERED INDEX IX_ProdPrecCrudoFecInicio ON ProdPrecCrudo(FecInicio)

ALTER TABLE ProdPrecCrudoFmla ADD 
 CONSTRAINT FK_ProdPrecCrudoFmla_ProdPrecCrudo FOREIGN KEY (TipoTarif,Numero) REFERENCES [dbo].[ProdPrecCrudo] (TipoTarif,Numero)

ALTER TABLE Trn_OilGuia ADD 
 CONSTRAINT FK_Trn_OilGuia_adm_Usuarios FOREIGN KEY (IdUsuario) REFERENCES [dbo].[adm_Usuarios] (IdUsuario),
 CONSTRAINT FK_Trn_OilGuia_Companias FOREIGN KEY (IdCia) REFERENCES [dbo].[Companias] (IdCia),
 CONSTRAINT FK_Trn_OilGuia_Companias1 FOREIGN KEY (IdCiaCrea) REFERENCES [dbo].[Companias] (IdCia),
 CONSTRAINT FK_Trn_OilGuia_EstadoDoc FOREIGN KEY (IdEstado) REFERENCES [dbo].[EstadoDoc] (IdEstado),
 CONSTRAINT FK_Trn_OilGuia_ProdMcias FOREIGN KEY (IdProducto) REFERENCES [dbo].[ProdMcias] (IdProducto),
 CONSTRAINT FK_Trn_OilGuia_Sys_TiposDoc FOREIGN KEY (TipDoc) REFERENCES [dbo].[Sys_TiposDoc] (IdDoc),
 CONSTRAINT FK_Trn_OilGuia_Terceros FOREIGN KEY (IdProveedor) REFERENCES [dbo].[Terceros] (IdTercero),
 CONSTRAINT FK_Trn_OilGuia_Terceros1 FOREIGN KEY (IdConductor) REFERENCES [dbo].[Terceros] (IdTercero)

 CREATE NONCLUSTERED INDEX IX_Trn_OilGuiaFecDespacho ON Trn_OilGuia(FecDespacho)
 CREATE NONCLUSTERED INDEX IX_Trn_OilGuiaFecha ON Trn_OilGuia(Fecha)
 CREATE NONCLUSTERED INDEX IX_Trn_OilGuiaIdProveedor ON Trn_OilGuia(IdProveedor)
 CREATE NONCLUSTERED INDEX IX_Trn_OilGuiaIdVehiculo ON Trn_OilGuia(IdVehiculo)
 CREATE NONCLUSTERED INDEX IX_Trn_OilGuiaIdConductor ON Trn_OilGuia(IdConductor)
 CREATE NONCLUSTERED INDEX IX_Trn_OilGuiaIdProducto ON Trn_OilGuia(IdProducto)

ALTER TABLE Trn_OilEntrada ADD 
 CONSTRAINT FK_Trn_OilEntrada_adm_Usuarios FOREIGN KEY (IdUsuario) REFERENCES [dbo].[adm_Usuarios] (IdUsuario),
 CONSTRAINT FK_Trn_OilEntrada_Companias FOREIGN KEY (IdCia) REFERENCES [dbo].[Companias] (IdCia),
 CONSTRAINT FK_Trn_OilEntrada_Companias1 FOREIGN KEY (IdCiaCrea) REFERENCES [dbo].[Companias] (IdCia),
 CONSTRAINT FK_Trn_OilEntrada_EstadoDoc FOREIGN KEY (IdEstado) REFERENCES [dbo].[EstadoDoc] (IdEstado),
 CONSTRAINT FK_Trn_OilEntrada_Sys_TiposDoc FOREIGN KEY (TipEnt) REFERENCES [dbo].[Sys_TiposDoc] (IdDoc),
 CONSTRAINT FK_Trn_OilEntrada_Terceros FOREIGN KEY (IdProveedor) REFERENCES [dbo].[Terceros] (IdTercero),
 CONSTRAINT FK_Trn_OilEntrada_Terceros1 FOREIGN KEY (IdConductor) REFERENCES [dbo].[Terceros] (IdTercero)

 CREATE NONCLUSTERED INDEX IX_Trn_OilEntradaFecha ON Trn_OilEntrada(Fecha)
 CREATE NONCLUSTERED INDEX IX_Trn_OilEntradaNumGuia ON Trn_OilEntrada(NumGuia,IdCiaGuia)
 CREATE NONCLUSTERED INDEX IX_Trn_OilEntradaFecDespacho ON Trn_OilEntrada(FecDespacho)
 CREATE NONCLUSTERED INDEX IX_Trn_OilEntradaIdProveedor ON Trn_OilEntrada(IdProveedor)
 CREATE NONCLUSTERED INDEX IX_Trn_OilEntradaIdVehiculo ON Trn_OilEntrada(IdVehiculo)


ALTER TABLE Trn_OilEntradaProd ADD 
 CONSTRAINT FK_Trn_OilEntradaProd_ProdMcias FOREIGN KEY (IdProducto) REFERENCES [dbo].[ProdMcias] (IdProducto),
 CONSTRAINT FK_Trn_OilEntradaProd_Sys_Um FOREIGN KEY (UndMed) REFERENCES [dbo].[Sys_Um] (UndMed),
 CONSTRAINT FK_Trn_OilEntradaProd_Trn_OilEntrada FOREIGN KEY (TipEnt,NumEntrada,IdCia) REFERENCES [dbo].[Trn_OilEntrada] (TipEnt,NumEntrada,IdCia)

 CREATE NONCLUSTERED INDEX IX_Trn_OilEntradaProdIdProducto ON Trn_OilEntradaProd(IdProducto)
