CREATE TABLE LogNiifCartera ( 
TipDoc VARCHAR(3) NOT NULL,
Numero INT DEFAULT ((0)) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
TasaEfe DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
Estado INT DEFAULT ((0)) NOT NULL,
FechaCrea SMALLDATETIME NOT NULL,
IdUsuario VARCHAR(11) NOT NULL,
Nombre VARCHAR(50) NOT NULL,
Observacion VARCHAR(250),
CodTasa VARCHAR(4)
 CONSTRAINT PK_LogNiifCartera PRIMARY KEY CLUSTERED (TipDoc,Numero),
 CONSTRAINT CK_LogNiifCarteraIdUsuario CHECK ((len([IdUsuario])>(0))),
 CONSTRAINT CK_LogNiifCarteraNombre CHECK ((len([Nombre])>(0))),
 CONSTRAINT CK_LogNiifCarteraTipDoc CHECK ((len([TipDoc])>(0))))
GO
CREATE TABLE LogNiifCarDetalle ( 
TipDoc VARCHAR(3) NOT NULL,
Numero INT DEFAULT ((0)) NOT NULL,
Item INT DEFAULT ((0)) NOT NULL,
TipFac VARCHAR(3) NOT NULL,
Factura VARCHAR(15) NOT NULL,
IdCia CHAR(2) DEFAULT ('01') NOT NULL,
ItemFac INT DEFAULT ((1)) NOT NULL,
Documento INT DEFAULT ((0)) NOT NULL,
IdTercero VARCHAR(16) NOT NULL,
IdAgencia VARCHAR(16),
IdCuenta VARCHAR(16),
Fecha SMALLDATETIME NOT NULL,
FechaVence SMALLDATETIME NOT NULL,
FecUltLiq SMALLDATETIME,
FecUltPago SMALLDATETIME,
FecLiquidac SMALLDATETIME NOT NULL,
VrFactura MONEY DEFAULT ((0)) NOT NULL,
VrAbonado MONEY DEFAULT ((0)) NOT NULL,
VrBaseLiq MONEY DEFAULT ((0)) NOT NULL,
NumDias INT DEFAULT ((0)) NOT NULL,
VrLiquidacion MONEY DEFAULT ((0)) NOT NULL,
Referencia VARCHAR(50),
Descripcion VARCHAR(250),
TipRef VARCHAR(3),
DocRef INT DEFAULT ((0)) NOT NULL,
IdCiaRef CHAR(2),
RazonSocial VARCHAR(250),
Agencia VARCHAR(150),
NombreCia VARCHAR(50)
 CONSTRAINT PK_LogNiifCarDetalle PRIMARY KEY CLUSTERED (TipDoc,Numero,Item),
 CONSTRAINT CK_LogNiifCarDetalleFactura CHECK ((len([Factura])>(0))),
 CONSTRAINT CK_LogNiifCarDetalleIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_LogNiifCarDetalleIdTercero CHECK ((len([IdTercero])>(0))),
 CONSTRAINT CK_LogNiifCarDetalleTipDoc CHECK ((len([TipDoc])>(0))),
 CONSTRAINT CK_LogNiifCarDetalleTipFac CHECK ((len([TipFac])>(0))))
GO
CREATE TABLE LogNiifCarComp ( 
TipDoc VARCHAR(3) NOT NULL,
Numero INT DEFAULT ((0)) NOT NULL,
IdCia CHAR(2) NOT NULL,
TipoCompNiif VARCHAR(3) NOT NULL,
NumCompNiif INT DEFAULT ((0)) NOT NULL,
TipoCompFis VARCHAR(3) NOT NULL,
NumCompFis INT DEFAULT ((0)) NOT NULL,
CodCuentaDb VARCHAR(16),
CodCuentaCr VARCHAR(16)
 CONSTRAINT PK_LogNiifCarComp PRIMARY KEY CLUSTERED (TipDoc,Numero,IdCia),
 CONSTRAINT CK_LogNiifCarCompIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_LogNiifCarCompTipDoc CHECK ((len([TipDoc])>(0))),
 CONSTRAINT CK_LogNiifCarCompTipoCompFis CHECK ((len([TipoCompFis])>(0))),
 CONSTRAINT CK_LogNiifCarCompTipoCompNiif CHECK ((len([TipoCompNiif])>(0))))
GO
CREATE TABLE LogNiifAux ( 
IdEstacion CHAR(2) NOT NULL,
Item INT DEFAULT ((0)) NOT NULL,
IdProducto VARCHAR(16) NOT NULL,
IdCia CHAR(2) NOT NULL,
IdBodega VARCHAR(4) DEFAULT ('0') NOT NULL,
SaldoAnt DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
Entradas DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
Salidas DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
SaldoFinal DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
CostoAnt MONEY DEFAULT ((0)) NOT NULL,
CostoEnt MONEY DEFAULT ((0)) NOT NULL,
CostoSal MONEY DEFAULT ((0)) NOT NULL,
CostoFinal MONEY DEFAULT ((0)) NOT NULL,
CostoProm MONEY DEFAULT ((0)) NOT NULL,
CostoCompra MONEY DEFAULT ((0)) NOT NULL,
PrecioLta1 MONEY DEFAULT ((0)) NOT NULL,
PrecioLta2 MONEY DEFAULT ((0)) NOT NULL,
CostoActual MONEY DEFAULT ((0)) NOT NULL,
DescripProd VARCHAR(250),
Bodega VARCHAR(50),
Compania VARCHAR(50),
EstadoAct INT DEFAULT ((0)) NOT NULL,
IdSubgrupo VARCHAR(8),
Subgrupo VARCHAR(50)
 CONSTRAINT PK_LogNiifAux PRIMARY KEY NONCLUSTERED (IdEstacion,Item),
 CONSTRAINT CK_LogNiifAuxIdBodega CHECK ((len([IdBodega])>(0))),
 CONSTRAINT CK_LogNiifAuxIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_LogNiifAuxIdEstacion CHECK ((len([IdEstacion])>(0))),
 CONSTRAINT CK_LogNiifAuxIdProducto CHECK ((len([IdProducto])>(0))))
GO
CREATE TABLE LogNiifInv ( 
Numero INT DEFAULT ((0)) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
CdCia CHAR(2) DEFAULT ('0') NOT NULL,
Estado INT DEFAULT ((0)) NOT NULL,
TipoCosto VARCHAR(3),
FechaCrea SMALLDATETIME NOT NULL,
IdUsuario VARCHAR(11) NOT NULL,
Nombre VARCHAR(50) NOT NULL,
Observacion VARCHAR(250)
 CONSTRAINT PK_LogNiifInv PRIMARY KEY CLUSTERED (Numero),
 CONSTRAINT CK_LogNiifInvCdCia CHECK ((len([CdCia])>(0))),
 CONSTRAINT CK_LogNiifInvIdUsuario CHECK ((len([IdUsuario])>(0))),
 CONSTRAINT CK_LogNiifInvNombre CHECK ((len([Nombre])>(0))))
GO
CREATE TABLE LogNiifInvComp ( 
Numero INT DEFAULT ((0)) NOT NULL,
IdCia CHAR(2) NOT NULL,
TipoCompNiif VARCHAR(3) NOT NULL,
NumCompNiif INT DEFAULT ((0)) NOT NULL,
TipoCompFis VARCHAR(3) NOT NULL,
NumCompFis INT DEFAULT ((0)) NOT NULL,
CodCuentaDb VARCHAR(16),
CodCuentaCr VARCHAR(16)
 CONSTRAINT PK_LogNiifInvComp PRIMARY KEY CLUSTERED (Numero,IdCia),
 CONSTRAINT CK_LogNiifInvCompIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_LogNiifInvCompTipoCompFis CHECK ((len([TipoCompFis])>(0))),
 CONSTRAINT CK_LogNiifInvCompTipoCompNiif CHECK ((len([TipoCompNiif])>(0))))
GO
CREATE TABLE LogNiifProd ( 
Numero INT DEFAULT ((0)) NOT NULL,
Item INT DEFAULT ((0)) NOT NULL,
IdProducto VARCHAR(16) NOT NULL,
IdCia CHAR(2) NOT NULL,
IdSubgrupo VARCHAR(8),
Cantidad DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
CostoTotal MONEY DEFAULT ((0)) NOT NULL,
CostoProm MONEY DEFAULT ((0)) NOT NULL,
CostoCompra MONEY DEFAULT ((0)) NOT NULL,
PrecioLta1 MONEY DEFAULT ((0)) NOT NULL,
PrecioLta2 MONEY DEFAULT ((0)) NOT NULL,
CostoActual MONEY DEFAULT ((0)) NOT NULL,
VrAjuste DECIMAL(16,6) DEFAULT ((0)) NOT NULL,
DescripProd VARCHAR(250),
Compania VARCHAR(50),
Subgrupo VARCHAR(50)
 CONSTRAINT PK_LogNiifProd PRIMARY KEY CLUSTERED (Numero,Item),
 CONSTRAINT CK_LogNiifProdIdCia CHECK ((len([IdCia])>(0))),
 CONSTRAINT CK_LogNiifProdIdProducto CHECK ((len([IdProducto])>(0))))
GO
CREATE NONCLUSTERED INDEX IX_LogNiifCarteraFecha ON LogNiifCartera(Fecha)

ALTER TABLE LogNiifCarComp ADD 
 CONSTRAINT FK_LogNiifCarComp_LogNiifCartera FOREIGN KEY (TipDoc,Numero) REFERENCES [dbo].[LogNiifCartera] (TipDoc,Numero)

ALTER TABLE LogNiifCarDetalle ADD 
 CONSTRAINT FK_LogNiifCarDetalle_LogNiifCartera FOREIGN KEY (TipDoc,Numero) REFERENCES [dbo].[LogNiifCartera] (TipDoc,Numero)

CREATE NONCLUSTERED INDEX IX_LogNiifCarDetalleFactura ON LogNiifCarDetalle(TipFac,Factura,IdCia,ItemFac)
 CREATE NONCLUSTERED INDEX IX_LogNiifCarDetalleIdTercero ON LogNiifCarDetalle(IdTercero)

CREATE CLUSTERED INDEX IX_LogNiifAuxIdProducto ON LogNiifAux(IdProducto,IdCia,IdBodega)

CREATE NONCLUSTERED INDEX IX_LogNiifInvFecha ON LogNiifInv(Fecha)

ALTER TABLE LogNiifInvComp ADD 
 CONSTRAINT FK_LogNiifInvComp_LogNiifInv FOREIGN KEY (Numero) REFERENCES [dbo].[LogNiifInv] (Numero)

ALTER TABLE LogNiifProd ADD 
 CONSTRAINT FK_LogNiifProd_LogNiifInv FOREIGN KEY (Numero) REFERENCES [dbo].[LogNiifInv] (Numero)

CREATE NONCLUSTERED INDEX IX_LogNiifProdIdProducto ON LogNiifProd(IdProducto,IdCia)

