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 ConsultarPedido ( 
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_ConsultarPedido PRIMARY KEY CLUSTERED (numeroOrdenPedido))
CREATE TABLE Error ( 
NumeroError BIGINT NOT NULL,
NumeroOrdenPedido BIGINT NOT NULL,
numeroTabla INT NOT NULL,
Descripcion TEXT NOT NULL,
FechaHora DATETIME NOT NULL
 CONSTRAINT PK_Error PRIMARY KEY CLUSTERED (NumeroError))
CREATE TABLE MotivoRechazo ( 
codigo INT NOT NULL,
descripcion TEXT 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 NOT NULL,
placaRemolque VARCHAR(6) NOT NULL,
pedidoSobreCupo VARCHAR(1) NOT NULL,
conductor VARCHAR(100) NOT NULL,
cedula NUMERIC NOT NULL,
fechaOrdenPedido DATETIME NOT NULL,
observacion VARCHAR(512) NOT NULL,
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) NOT NULL,
placaVehiculo VARCHAR(50) NOT NULL,
estadoOrdenPedido VARCHAR(50) NOT NULL,
codigoPlantaDespacho VARCHAR(50) NOT NULL,
placaRemolque VARCHAR(50) NOT NULL
 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 PedidoAnuladoVendedor ( 
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_PedidoAnuladoVendedor 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) NOT NULL,
placaTransporte VARCHAR(50) NOT NULL,
placaRemolque VARCHAR(50) NOT NULL,
tipoTemperatura VARCHAR(1) NOT NULL,
escalaTemperatura VARCHAR(1) DEFAULT ('F'),
temperatura VARCHAR(50) NOT NULL,
numeroGuiaUnica VARCHAR(50) NOT NULL,
vigenciaGuiaUnica VARCHAR(6) NOT NULL,
numeroFactura VARCHAR(50) NOT NULL,
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) NOT NULL,
descripcionRechazo VARCHAR(50) NOT NULL,
estadoOrdenPedido VARCHAR(50) NOT NULL
 CONSTRAINT PK_PedidoRechazado PRIMARY KEY CLUSTERED (numeroOrdenPedido))
CREATE TABLE PedidoRechazoVendedor ( 
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) NOT NULL,
estadoOrdenPedido VARCHAR(50) NOT NULL
 CONSTRAINT PK_PedidoRechazoVendedor PRIMARY KEY CLUSTERED (numeroOrdenPedido))
CREATE TABLE Producto ( 
numeroOrdenPedido BIGINT NOT NULL,
volumenSugerido DECIMAL(10,2) NOT NULL,
codigoProducto VARCHAR(50) NOT NULL
 CONSTRAINT PK_Producto PRIMARY KEY CLUSTERED (numeroOrdenPedido,codigoProducto))
CREATE TABLE ProductoAceptado ( 
numeroOrdenPedido BIGINT NOT NULL,
volumen DECIMAL(10,2) NOT NULL,
codigoProducto VARCHAR(50) NOT NULL,
estadoProducto VARCHAR(50) NOT NULL
 CONSTRAINT PK_ProductoAceptado PRIMARY KEY CLUSTERED (numeroOrdenPedido,codigoProducto))
CREATE TABLE ProductoCerrado ( 
numeroOrdenPedido BIGINT NOT NULL,
volumen DECIMAL(10,2) NOT NULL,
codigoProducto VARCHAR(50) NOT NULL
 CONSTRAINT PK_ProductoCerrado PRIMARY KEY CLUSTERED (numeroOrdenPedido,codigoProducto))
CREATE TABLE ProductoDespachado ( 
numeroOrdenPedido BIGINT NOT NULL,
volumen DECIMAL(10,2) NOT NULL,
codigoProducto VARCHAR(50) NOT NULL,
API FLOAT NOT NULL,
estadoProducto VARCHAR(50) NOT NULL
 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 TipoUsuario ( 
idTipoUsuario VARCHAR(50) NOT NULL,
descripcion TEXT NOT NULL
 CONSTRAINT PK_TipoUsuario PRIMARY KEY CLUSTERED (idTipoUsuario))
CREATE TABLE Usuario ( 
usuario VARCHAR(50) NOT NULL,
contrasenna TEXT NOT NULL,
nombre VARCHAR(50) NOT NULL,
tipoUsuario VARCHAR(50) NOT NULL,
activo NUMERIC NOT NULL,
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
