CREATE TABLE Combustible ( 
codigo VARCHAR(50) NOT NULL,
tipoCombustible VARCHAR(50) NOT NULL,
nombre VARCHAR(50) NOT NULL,
biodiesel VARCHAR(50),
diesel VARCHAR(50),
etanol VARCHAR(50),
gasolina VARCHAR(50)
 CONSTRAINT PK_Combustible PRIMARY KEY CLUSTERED (codigo))
CREATE TABLE Error ( 
NumeroError BIGINT NOT NULL,
NumeroOrdenPedido BIGINT NOT NULL,
numeroTabla INT NOT NULL,
Descripcion VARCHAR(500) NOT NULL,
FechaHora DATETIME NOT NULL
 CONSTRAINT PK_Error PRIMARY KEY CLUSTERED (NumeroError))
CREATE TABLE MotivoRechazo ( 
codigo INT NOT NULL,
descripcion VARCHAR(200) NOT NULL
 CONSTRAINT PK_MotivoRechazo PRIMARY KEY CLUSTERED (codigo))
CREATE TABLE Ordenes ( 
NumOrden INT DEFAULT (0) NOT NULL,
CodAutoriza VARCHAR(50) NOT NULL,
TipoOrden CHAR(1) DEFAULT ('S') NOT NULL,
CodCliente VARCHAR(20) NOT NULL,
NumPedido INT DEFAULT (0) NOT NULL,
IdCia CHAR(2) DEFAULT ('00') NOT NULL,
FecPedido SMALLDATETIME NOT NULL,
FecEntrega SMALLDATETIME NOT NULL,
EtdoPedido INT DEFAULT (0) NOT NULL,
TipoTrans VARCHAR(10) DEFAULT ('0') NOT NULL,
nVehiculo VARCHAR(10),
nRemolque VARCHAR(10),
CedConductor VARCHAR(20),
Conductor VARCHAR(100),
CodPlanta VARCHAR(20),
Observacion VARCHAR(250),
TipoAcepta INT DEFAULT (0) NOT NULL,
EtdoEnvio INT DEFAULT (0) NOT NULL,
FecRadica SMALLDATETIME NOT NULL,
FecAcepta SMALLDATETIME,
FecDespacho SMALLDATETIME,
Comentarios VARCHAR(1000)
 CONSTRAINT PK_Ordenes PRIMARY KEY CLUSTERED (NumOrden),
 CONSTRAINT CK_OrdenesCodAutoriza CHECK ((len([CodAutoriza]) > 0)),
 CONSTRAINT CK_OrdenesCodCliente CHECK ((len([CodCliente]) > 0)),
 CONSTRAINT CK_OrdenesIdCia CHECK ((len([IdCia]) > 0)),
 CONSTRAINT CK_OrdenesTipoOrden CHECK ((len([TipoOrden]) > 0)),
 CONSTRAINT CK_OrdenesTipoTrans CHECK ((len([TipoTrans]) > 0)))
CREATE TABLE Pedido ( 
numeroOrdenPedido BIGINT NOT NULL,
codigoAgente NUMERIC NOT NULL,
password VARCHAR(32) NOT NULL,
nitAgente VARCHAR(32) NOT NULL,
codigoAutorizacionOP VARCHAR(15) NOT NULL,
codigoCliente VARCHAR(16) NOT NULL,
codigoPlantaDespacho NUMERIC NOT NULL,
codigoPlantaRecibo NUMERIC NOT NULL,
tipoVehiculo NUMERIC NOT NULL,
placaVehiculo VARCHAR(6) NOT NULL,
fechaSugeridaEntrega DATETIME,
placaRemolque VARCHAR(6) NOT NULL,
pedidoSobreCupo VARCHAR(1),
conductor VARCHAR(100) NOT NULL,
cedula NUMERIC NOT NULL,
fechaOrdenPedido DATETIME NOT NULL,
observacion VARCHAR(500),
estadoOrdenPedido VARCHAR(50) NOT NULL
 CONSTRAINT PK_Pedido PRIMARY KEY CLUSTERED (numeroOrdenPedido))
CREATE TABLE PedidoAceptado ( 
numeroOrdenPedido BIGINT NOT NULL,
usuario VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
numeroAutorizacionOP VARCHAR(50) NOT NULL,
tipoVehiculo VARCHAR(50),
placaVehiculo VARCHAR(50),
estadoOrdenPedido VARCHAR(50) NOT NULL,
codigoPlantaDespacho VARCHAR(50),
placaRemolque VARCHAR(50)
 CONSTRAINT PK_PedidoAceptado PRIMARY KEY CLUSTERED (numeroOrdenPedido))
CREATE TABLE PedidoAnulado ( 
numeroOrdenPedido BIGINT NOT NULL,
usuario VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
numeroAutorizacionOP VARCHAR(50) NOT NULL,
estadoOrdenPedido VARCHAR(50) NOT NULL
 CONSTRAINT PK_PedidoAnulado PRIMARY KEY CLUSTERED (numeroOrdenPedido))
CREATE TABLE PedidoAnuladoEDS ( 
numeroOrdenPedido BIGINT NOT NULL,
codigoAgente NUMERIC NOT NULL,
password VARCHAR(32) NOT NULL,
codigoAutorizacionOP VARCHAR(15) NOT NULL,
fechaAnulacion DATETIME NOT NULL,
estadoOrdenPedido VARCHAR(50) NOT NULL
 CONSTRAINT PK_PedidoAnuladoEDS PRIMARY KEY CLUSTERED (numeroOrdenPedido))
CREATE TABLE PedidoCerrado ( 
numeroOrdenPedido BIGINT NOT NULL,
usuario VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
numeroAutorizacionOP VARCHAR(50) NOT NULL,
estadoOrdenPedido VARCHAR(50) NOT NULL
 CONSTRAINT PK_PedidoCerrado PRIMARY KEY CLUSTERED (numeroOrdenPedido))
CREATE TABLE PedidoDespachado ( 
numeroOrdenPedido BIGINT NOT NULL,
usuario VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
numeroAutorizacionOP VARCHAR(50) NOT NULL,
tipoTransporte VARCHAR(50),
placaTransporte VARCHAR(50),
placaRemolque VARCHAR(50),
tipoTemperatura VARCHAR(5),
escalaTemperatura VARCHAR(5) DEFAULT ('F'),
temperatura VARCHAR(50),
numeroGuiaUnica VARCHAR(50),
vigenciaGuiaUnica VARCHAR(6),
numeroFactura VARCHAR(50),
estadoOrdenPedido VARCHAR(50) NOT NULL
 CONSTRAINT PK_PedidoDespachado PRIMARY KEY CLUSTERED (numeroOrdenPedido))
CREATE TABLE PedidoRechazado ( 
numeroOrdenPedido BIGINT NOT NULL,
usuario VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
numeroAutorizacionOP VARCHAR(50) NOT NULL,
motivoRechazo VARCHAR(50),
descripcionRechazo VARCHAR(50),
estadoOrdenPedido VARCHAR(50) NOT NULL
 CONSTRAINT PK_PedidoRechazado PRIMARY KEY CLUSTERED (numeroOrdenPedido))
CREATE TABLE PedidoRechazoEDS ( 
numeroOrdenPedido BIGINT NOT NULL,
codigoAgente NUMERIC NOT NULL,
password VARCHAR(32) NOT NULL,
codigoAutorizacionOP VARCHAR(15) NOT NULL,
fechaRechazo DATETIME NOT NULL,
codigoMotivoRechazo NUMERIC NOT NULL,
descripcionRechazo VARCHAR(128),
estadoOrdenPedido VARCHAR(50) NOT NULL
 CONSTRAINT PK_PedidoRechazoEDS PRIMARY KEY CLUSTERED (numeroOrdenPedido))
CREATE TABLE Producto ( 
numeroOrdenPedido BIGINT NOT NULL,
volumenSugerido DECIMAL(12,2) NOT NULL,
codigoProducto VARCHAR(10) NOT NULL
 CONSTRAINT PK_Producto PRIMARY KEY CLUSTERED (numeroOrdenPedido,codigoProducto))
CREATE TABLE ProductoAceptado ( 
numeroOrdenPedido BIGINT NOT NULL,
volumen DECIMAL(12,2) NOT NULL,
codigoProducto VARCHAR(10) NOT NULL,
estadoProducto VARCHAR(50)
 CONSTRAINT PK_ProductoAceptado PRIMARY KEY CLUSTERED (numeroOrdenPedido,codigoProducto))
CREATE TABLE ProductoCerrado ( 
numeroOrdenPedido BIGINT NOT NULL,
volumen DECIMAL(12,2) NOT NULL,
codigoProducto VARCHAR(10) NOT NULL,
estadoProducto VARCHAR(20)
 CONSTRAINT PK_ProductoCerrado PRIMARY KEY CLUSTERED (numeroOrdenPedido,codigoProducto))
CREATE TABLE ProductoDespachado ( 
numeroOrdenPedido BIGINT NOT NULL,
volumen DECIMAL(12,2) NOT NULL,
codigoProducto VARCHAR(10) NOT NULL,
API DECIMAL(10,2),
estadoProducto VARCHAR(20)
 CONSTRAINT PK_ProductoDespachado PRIMARY KEY CLUSTERED (numeroOrdenPedido,codigoProducto))
CREATE TABLE TipoError ( 
numeroTabla VARCHAR(2) NOT NULL,
tabla VARCHAR(50) NOT NULL
 CONSTRAINT PK_TipoError PRIMARY KEY CLUSTERED (numeroTabla))
CREATE TABLE TipoTemperatura ( 
codigo CHAR(1) NOT NULL,
descripcion VARCHAR(50) NOT NULL
 CONSTRAINT PK_TipoTemperatura PRIMARY KEY CLUSTERED (codigo))
CREATE TABLE TipoTransporte ( 
codigo INT NOT NULL,
descripcion VARCHAR(50) NOT NULL
 CONSTRAINT PK_TipoTransporte PRIMARY KEY CLUSTERED (codigo))
CREATE TABLE Usuario ( 
usuario VARCHAR(50) NOT NULL,
contrasenna VARCHAR(100),
nombre VARCHAR(50),
tipoUsuario VARCHAR(50),
activo NUMERIC,
passwordSicom VARCHAR(32) NOT NULL
 CONSTRAINT PK_Usuario PRIMARY KEY CLUSTERED (usuario))
GO
 CREATE NONCLUSTERED INDEX IX_OrdenesNumPedido ON Ordenes(NumPedido,IdCia)
 CREATE NONCLUSTERED INDEX IX_OrdenesCodCliente ON Ordenes(CodCliente)
 CREATE NONCLUSTERED INDEX IX_OrdenesCodAutoriza ON Ordenes(CodAutoriza)

GO
