CREATE TABLE LogIntegra ( 
Numero INT DEFAULT (0) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
EstadoLog INT DEFAULT (0) NOT NULL,
Comentarios VARCHAR(250) NOT NULL,
IdUsuario VARCHAR(11) NOT NULL,
Nombre VARCHAR(50) NOT NULL
 CONSTRAINT PK_LogIntegra PRIMARY KEY CLUSTERED (Numero),
 CONSTRAINT CK_LogIntegraComentarios CHECK ((len([Comentarios]) > 0)),
 CONSTRAINT CK_LogIntegraIdUsuario CHECK ((len([IdUsuario]) > 0)),
 CONSTRAINT CK_LogIntegraNombre CHECK ((len([Nombre]) > 0)))
CREATE TABLE LogIntegraDet ( 
Numero INT DEFAULT (0) NOT NULL,
Item INT DEFAULT (0) NOT NULL,
TipDoc VARCHAR(3) NOT NULL,
Documento INT DEFAULT (0) NOT NULL,
IdCia CHAR(2) DEFAULT ('01') NOT NULL,
FechaDoc SMALLDATETIME NOT NULL,
TipCom VARCHAR(3) NOT NULL,
Comprobante INT DEFAULT (0) NOT NULL,
IdCiaCom CHAR(2) NOT NULL,
Observacion VARCHAR(250),
Estado INT DEFAULT (0) NOT NULL,
IdTercero VARCHAR(16) NOT NULL,
NomCia VARCHAR(50),
NomTercero VARCHAR(150)
 CONSTRAINT PK_LogIntegraDet PRIMARY KEY CLUSTERED (Numero,Item),
 CONSTRAINT CK_LogIntegraDetIdCia CHECK ((len([IdCia]) > 0)),
 CONSTRAINT CK_LogIntegraDetIdCiaCom CHECK ((len([IdCiaCom]) > 0)),
 CONSTRAINT CK_LogIntegraDetIdTercero CHECK ((len([IdTercero]) > 0)),
 CONSTRAINT CK_LogIntegraDetTipCom CHECK ((len([TipCom]) > 0)),
 CONSTRAINT CK_LogIntegraDetTipDoc CHECK ((len([TipDoc]) > 0)))
CREATE TABLE LogFactAuto ( 
Numero INT DEFAULT (0) NOT NULL,
IdCia CHAR(2) DEFAULT ('01') NOT NULL,
Fecha SMALLDATETIME NOT NULL,
Criterios VARCHAR(100) NOT NULL,
Concepto VARCHAR(100) NOT NULL,
Plazo VARCHAR(30) NOT NULL,
Vendedor VARCHAR(50),
VrSubTotal MONEY DEFAULT (0) NOT NULL,
VrDescuento MONEY DEFAULT (0) NOT NULL,
VrImpuesto MONEY DEFAULT (0) NOT NULL,
VrRetencion MONEY DEFAULT (0) NOT NULL,
VrReteICA MONEY DEFAULT (0) NOT NULL,
VrReteIVA MONEY DEFAULT (0) NOT NULL,
VrCargos MONEY DEFAULT (0) NOT NULL,
VrOtrDcto MONEY DEFAULT (0) NOT NULL,
VrFletes MONEY DEFAULT (0) NOT NULL,
VrNeto MONEY DEFAULT (0) NOT NULL,
TimeSys SMALLDATETIME NOT NULL,
IdUsuario VARCHAR(11) NOT NULL,
Nombre VARCHAR(50) NOT NULL,
Observacion VARCHAR(250)
 CONSTRAINT PK_LogFactAuto PRIMARY KEY CLUSTERED (Numero,IdCia),
 CONSTRAINT CK_LogFactAutoConcepto CHECK ((len([Concepto]) > 0)),
 CONSTRAINT CK_LogFactAutoCriterios CHECK ((len([Criterios]) > 0)),
 CONSTRAINT CK_LogFactAutoIdCia CHECK ((len([IdCia]) > 0)),
 CONSTRAINT CK_LogFactAutoIdUsuario CHECK ((len([IdUsuario]) > 0)),
 CONSTRAINT CK_LogFactAutoNombre CHECK ((len([Nombre]) > 0)),
 CONSTRAINT CK_LogFactAutoPlazo CHECK ((len([Plazo]) > 0)))
CREATE TABLE LogFactDetalle ( 
Numero INT DEFAULT (0) NOT NULL,
IdCia CHAR(2) DEFAULT ('01') NOT NULL,
Item INT DEFAULT (0) NOT NULL,
TipDoc VARCHAR(3) NOT NULL,
Factura INT DEFAULT (0) NOT NULL,
IdCiaFac CHAR(2) DEFAULT ('01') NOT NULL,
FechaVence SMALLDATETIME NOT NULL,
IdCliente VARCHAR(16) NOT NULL,
IdAgencia VARCHAR(16) DEFAULT ('0') NOT NULL,
IdVend VARCHAR(16) NOT NULL,
TarifaCom DECIMAL(14,4) DEFAULT (0) NOT NULL,
Ciudad VARCHAR(50),
TipCom VARCHAR(3) DEFAULT ('0') NOT NULL,
Comprobante INT DEFAULT (0) NOT NULL,
IdCiaCom CHAR(2) DEFAULT ('01') NOT NULL,
NomCiaFact VARCHAR(50),
NomCliente VARCHAR(150),
NomVend VARCHAR(150),
NomAgencia VARCHAR(50),
Detalles VARCHAR(100)
 CONSTRAINT PK_LogFactDetalle PRIMARY KEY CLUSTERED (Numero,IdCia,Item),
 CONSTRAINT CK_LogFactDetalleIdAgencia CHECK ((len([IdAgencia]) > 0)),
 CONSTRAINT CK_LogFactDetalleIdCia CHECK ((len([IdCia]) > 0)),
 CONSTRAINT CK_LogFactDetalleIdCiaCom CHECK ((len([IdCiaCom]) > 0)),
 CONSTRAINT CK_LogFactDetalleIdCiaFac CHECK ((len([IdCiaFac]) > 0)),
 CONSTRAINT CK_LogFactDetalleIdCliente CHECK ((len([IdCliente]) > 0)),
 CONSTRAINT CK_LogFactDetalleIdVend CHECK ((len([IdVend]) > 0)),
 CONSTRAINT CK_LogFactDetalleTipCom CHECK ((len([TipCom]) > 0)),
 CONSTRAINT CK_LogFactDetalleTipDoc CHECK ((len([TipDoc]) > 0)))
CREATE TABLE LogRetiros ( 
TipoProc VARCHAR(3) NOT NULL,
Numero INT DEFAULT (0) NOT NULL,
Fecha SMALLDATETIME NOT NULL,
Observacion VARCHAR(250) NOT NULL,
TimeSys SMALLDATETIME NOT NULL,
IdUsuario VARCHAR(11) NOT NULL,
Nombre VARCHAR(50) NOT NULL
 CONSTRAINT PK_LogRetiros PRIMARY KEY CLUSTERED (TipoProc,Numero),
 CONSTRAINT CK_LogRetirosIdUsuario CHECK ((len([IdUsuario]) > 0)),
 CONSTRAINT CK_LogRetirosNombre CHECK ((len([Nombre]) > 0)),
 CONSTRAINT CK_LogRetirosObservacion CHECK ((len([Observacion]) > 0)),
 CONSTRAINT CK_LogRetirosTipoProc CHECK ((len([TipoProc]) > 0)))
CREATE TABLE LogRetirosProd ( 
TipoProc VARCHAR(3) NOT NULL,
Numero INT DEFAULT (0) NOT NULL,
Item INT DEFAULT (0) NOT NULL,
IdProducto VARCHAR(16) NOT NULL,
Descripcion VARCHAR(150),
FecUltCompra SMALLDATETIME,
FecUltVenta SMALLDATETIME,
Estado INT DEFAULT (0) NOT NULL,
CantExist DECIMAL(14,4) DEFAULT (0) NOT NULL
 CONSTRAINT PK_LogRetirosProd PRIMARY KEY CLUSTERED (TipoProc,Numero,Item),
 CONSTRAINT CK_LogRetirosProdIdProducto CHECK ((len([IdProducto]) > 0)),
 CONSTRAINT CK_LogRetirosProdTipoProc CHECK ((len([TipoProc]) > 0)))
GO
ALTER TABLE LogIntegraDet ADD 
 CONSTRAINT FK_LogIntegraDet_LogIntegra FOREIGN KEY (Numero) REFERENCES [dbo].[LogIntegra] (Numero)
GO
ALTER TABLE LogFactDetalle ADD 
 CONSTRAINT FK_LogFactDetalle_LogFactAuto FOREIGN KEY (Numero,IdCia) REFERENCES [dbo].[LogFactAuto] (Numero,IdCia)
GO
CREATE NONCLUSTERED INDEX IX_LogIntegraDetDocumento ON LogIntegraDet(TipDoc,Documento,IdCia)

CREATE NONCLUSTERED INDEX IX_LogFactAutoFecha ON LogFactAuto(Fecha)

CREATE NONCLUSTERED INDEX IX_LogFactDetalleFactura ON LogFactDetalle(TipDoc,Factura,IdCiaFac)
