INSERT INTO Sys_ObjetosApp (IdObj,IdGrupo,SubModulo,IndObj,Nombre,Formulario,Permisos,NivelMinimo,NomArchivo)
 VALUES ('FRMDDFC','OILDOC','GEN',15,'Devolución de Factura de Combustible','FRMDDFC','SSSSSSSSSSSSS',0,'')
INSERT INTO Sys_ObjetosApp (IdObj,IdGrupo,SubModulo,IndObj,Nombre,Formulario,Permisos,NivelMinimo,NomArchivo)
 VALUES ('FRMDNCV','OILDOC','GEN',16,'Nota de Costeo de Ventas','FRMDNCV','SSSSSSSSSSSSS',0,'')
GO
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDDFC','ADC','Modificar o Anular documento creado en otra compañía')
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDDFC','CIA','Cambiar de Compañía')
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDDFC','FEC','Habilitar Fecha Abierta')
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDDFC','MOD','Modificar Documento')
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDNCV','ADC','Modificar o Anular documento creado en otra compañía')
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDNCV','COS','Permitir editar Costo Unitario')
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDNCV','DET','Permitir editar detalle de costos')
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDNCV','FEC','Habilitar Fecha Abierta')
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDNCV','MOD','Modificar Documento')
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDNCV','NIT','Permitir cambiar Nit del tercero')
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDNCV','UND','Permitir seleccionar Unidad de Medida')
INSERT INTO Sys_Roles (IdObj,IdRole,Funcion)
 VALUES ('FRMDNCV','CIE','Permitir período abierto')
GO

CREATE TABLE Trn_OilDevFacProd ( 
TipDev VARCHAR(3) NOT NULL,
Devolucion INT DEFAULT ((0)) NOT NULL,
IdCia CHAR(2) DEFAULT ('01') NOT NULL,
Item INT DEFAULT ((0)) NOT NULL,
IdTanque VARCHAR(4) NOT NULL,
IdProducto VARCHAR(16) NOT NULL,
Descripcion VARCHAR(500) NOT NULL,
Cantidad DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
UndMed VARCHAR(10) DEFAULT ('br') NOT NULL,
VrUnitario DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
TarifaDct DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
VrDcto DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
TarifaIva DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
VrIva DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
TarifaRet DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
VrRetFte DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
TarifaIca DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
VrRetIca DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
FleteUnd DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
CostoUnit DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
ItemDet INT DEFAULT ((0)) NOT NULL,
TipoProd VARCHAR(10) NOT NULL,
TipGuia VARCHAR(3),
NumGuia INT DEFAULT ((0)) NOT NULL,
IdCiaGuia CHAR(2),
CantGuia DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
IndMezcla INT DEFAULT ((0)) NOT NULL,
ItemMezcla INT DEFAULT ((0)) NOT NULL,
FactorMezcla DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
CodTarIva VARCHAR(4),
CodTarDct VARCHAR(4),
CodTarRet VARCHAR(4),
CodTarIca VARCHAR(4),
CodSicomPro VARCHAR(20),
CodBodega VARCHAR(4)
 CONSTRAINT PK_Trn_OilDevFacProd PRIMARY KEY CLUSTERED (TipDev,Devolucion,IdCia,Item),
 CONSTRAINT CK_Trn_OilDevFacProdDescripcion CHECK ((len([Descripcion])>(0))),
 CONSTRAINT CK_Trn_OilDevFacProdIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_Trn_OilDevFacProdIdProducto CHECK ((len([IdProducto])>(0))),
 CONSTRAINT CK_Trn_OilDevFacProdIdTanque CHECK ((len([IdTanque])>(0))),
 CONSTRAINT CK_Trn_OilDevFacProdTipDev CHECK ((len([TipDev])>(0))),
 CONSTRAINT CK_Trn_OilDevFacProdTipoProd CHECK ((len([TipoProd])>(0))),
 CONSTRAINT CK_Trn_OilDevFacProdUndMed CHECK ((len([UndMed])>(0))))
GO
CREATE TABLE Trn_OilCostoVen ( 
TipDoc VARCHAR(3) NOT NULL,
NumNota INT DEFAULT ((0)) NOT NULL,
IdCia CHAR(2) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
FechaInicio SMALLDATETIME NOT NULL,
FechaFinal SMALLDATETIME NOT NULL,
IdConcepto VARCHAR(4) NOT NULL,
Cantidad DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
ValorTotal DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
CantDev DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
VrDevFact DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
CdCCosto VARCHAR(16),
CdSubCos VARCHAR(16),
TipCom VARCHAR(3),
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(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_OilCostoVen PRIMARY KEY CLUSTERED (TipDoc,NumNota,IdCia),
 CONSTRAINT CK_Trn_OilCostoVenIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenIdCiaCom CHECK ((len([IdCiaCom])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenIdCiaCrea CHECK ((len([IdCiaCrea])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenIdConcepto CHECK ((len([IdConcepto])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenIdEstado CHECK ((len([IdEstado])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenIdUsuario CHECK ((len([IdUsuario])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenOrigenAdd CHECK ((len([OrigenAdd])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenTipDoc CHECK ((len([TipDoc])>(0))))
CREATE TABLE Trn_OilCostoVenProd ( 
TipDoc VARCHAR(3) NOT NULL,
NumNota INT DEFAULT ((0)) NOT NULL,
IdCia CHAR(2) NOT NULL,
Item INT DEFAULT ((0)) NOT NULL,
IdProducto VARCHAR(16) NOT NULL,
Descripcion VARCHAR(500) NOT NULL,
Cantidad DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
UndMed VARCHAR(10) DEFAULT ('br') NOT NULL,
VrUnitario DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
TipFact VARCHAR(3) NOT NULL,
NumFactura INT DEFAULT ((0)) NOT NULL,
IdCiaFact CHAR(2) NOT NULL,
ItemFact INT DEFAULT ((0)) NOT NULL,
FechaFact SMALLDATETIME NOT NULL,
TipGuia VARCHAR(3),
NumGuia INT DEFAULT ((0)) NOT NULL,
IdCiaGuia CHAR(2),
FechaGuia SMALLDATETIME,
IdCliente VARCHAR(16) NOT NULL,
IdAgencia VARCHAR(16),
IdVehiculo VARCHAR(10),
CdCCosto VARCHAR(16),
CdSubCos VARCHAR(16),
TipoProd VARCHAR(10) NOT NULL
 CONSTRAINT PK_Trn_OilCostoVenProd PRIMARY KEY CLUSTERED (TipDoc,NumNota,IdCia,Item),
 CONSTRAINT CK_Trn_OilCostoVenProdDescripcion CHECK ((len([Descripcion])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenProdIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenProdIdCiaFact CHECK ((len([IdCiaFact])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenProdIdCliente CHECK ((len([IdCliente])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenProdIdProducto CHECK ((len([IdProducto])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenProdTipDoc CHECK ((len([TipDoc])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenProdTipFact CHECK ((len([TipFact])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenProdTipoProd CHECK ((len([TipoProd])>(0))),
 CONSTRAINT CK_Trn_OilCostoVenProdUndMed CHECK ((len([UndMed])>(0))))
GO

ALTER TABLE Trn_OilDevFacProd ADD 
 CONSTRAINT FK_Trn_OilDevFacProd_Companias FOREIGN KEY (IdCia) REFERENCES [dbo].[Companias] (IdCia),
 CONSTRAINT FK_Trn_OilDevFacProd_ProdMcias FOREIGN KEY (IdProducto) REFERENCES [dbo].[ProdMcias] (IdProducto),
 CONSTRAINT FK_Trn_OilDevFacProd_Sys_TiposDoc FOREIGN KEY (TipDev) REFERENCES [dbo].[Sys_TiposDoc] (IdDoc),
 CONSTRAINT FK_Trn_OilDevFacProd_Sys_Um FOREIGN KEY (UndMed) REFERENCES [dbo].[Sys_Um] (UndMed)

ALTER TABLE Trn_OilCostoVen ADD 
 CONSTRAINT FK_Trn_OilCostoVen_adm_Usuarios FOREIGN KEY (IdUsuario) REFERENCES [dbo].[adm_Usuarios] (IdUsuario),
 CONSTRAINT FK_Trn_OilCostoVen_Companias FOREIGN KEY (IdCia) REFERENCES [dbo].[Companias] (IdCia),
 CONSTRAINT FK_Trn_OilCostoVen_Companias1 FOREIGN KEY (IdCiaCrea) REFERENCES [dbo].[Companias] (IdCia),
 CONSTRAINT FK_Trn_OilCostoVen_Conceptos FOREIGN KEY (IdConcepto) REFERENCES [dbo].[Conceptos] (IdConcepto),
 CONSTRAINT FK_Trn_OilCostoVen_EstadoDoc FOREIGN KEY (IdEstado) REFERENCES [dbo].[EstadoDoc] (IdEstado),
 CONSTRAINT FK_Trn_OilCostoVen_Sys_TiposDoc FOREIGN KEY (TipDoc) REFERENCES [dbo].[Sys_TiposDoc] (IdDoc)

 CREATE NONCLUSTERED INDEX IX_Trn_OilCostoVenFecha ON Trn_OilCostoVen(Fecha)
 CREATE NONCLUSTERED INDEX IX_Trn_OilCostoVenFechaInicio ON Trn_OilCostoVen(FechaInicio,FechaFinal)

ALTER TABLE Trn_OilCostoVenProd ADD 
 CONSTRAINT FK_Trn_OilCostoVenProd_ProdMcias FOREIGN KEY (IdProducto) REFERENCES [dbo].[ProdMcias] (IdProducto),
 CONSTRAINT FK_Trn_OilCostoVenProd_Sys_Um FOREIGN KEY (UndMed) REFERENCES [dbo].[Sys_Um] (UndMed),
 CONSTRAINT FK_Trn_OilCostoVenProd_Trn_OilCostoVen FOREIGN KEY (TipDoc,NumNota,IdCia) REFERENCES [dbo].[Trn_OilCostoVen] (TipDoc,NumNota,IdCia)

 CREATE NONCLUSTERED INDEX IX_Trn_OilCostoVenProdIdProducto ON Trn_OilCostoVenProd(IdProducto)
