com.fenalco.entities
Class Order

java.lang.Object
  extended by com.fenalco.entities.Order

public class Order
extends java.lang.Object

Esta clase representa un pedido, almacenando la informacion de los productos, proveedores y establecimiento al cual va dirigida

Author:
Mario Linares Vásquez

Field Summary
private  int companyId
          identificador de la empresa a la que se realiza el pedido (proveedor)
private  java.lang.String companyName
          Nombre de la empresa a la que se realiza el pedido (proveedor)
private  java.sql.Date date
          fecha en la que se realizó el pedido
private  int device
          Número de serie que identifica al dispositivo desde el que se realizó el pedido
private  int id
          identificador único de cada pedido
private  int orderOriginId
          Número que identifica al tipo de dispositivo desde el que se realizó el pedido
private  int orderStatus
          id del estado del pedido
private  java.lang.String orderStatusName
          Nombre del estado del pedido
private  java.util.Hashtable products
          lista de productos en el pedido, el key es el id del producto y el value es un Hashtable organizado de la siguietne forma: - key: el id del objeto OrderProduct (id en la tabla producto_pedido) --> OrderProduct - value: objeto de tipo OrderProduct --> OrderProduct
private  int storeId
          identificador del establecimiento al cual va a llegar el pedido
private  java.lang.String storeName
          Nombre del establecimiento al cual va a llegar el peido
private  java.sql.Time time
          Hora a la que se realizó el pedido
private  double value
          El valor total del pedido
 
Constructor Summary
Order()
          Constructor por omisión
Order(int orderId)
          Constructor que recibe el id del pedido y lo carga de la base de datos llamando al método LoadData
 
Method Summary
 void addProduct(OrderProduct product)
          Este método agrega un objeto de tipo OrderProduct al Hashtable del pedido
 void calculateValue()
          Calcula el valor total del pedido basandose en el precio individual de cada producto y su cantidad
 void changeState(Transaction transaction, int newStatus)
          cambia el estado de un pedido, una vez se ha cambiado el código de estado busca en la base de datos el nombre del nuevo estado y lo asigna al atributo orderStatusName
 boolean delete(Transaction transaction)
          Elimina el pedido de la base de datos usando el método addSql de la transacción que recibe
 int getCompanyId()
          Consultor para el atributo companyId.
 java.lang.String getCompanyName()
          Consultor para el atributo companyName.
 java.sql.Date getDate()
          Consultor para el atributo date.
 int getDevice()
          Consultor para el atributo device.
 int getId()
          Consultor para el atributo id.
 int getOrderOriginId()
          Consultor para el atributo orderOriginId.
 int getOrderStatus()
          Consultor para el atributo orderStatus.
 java.lang.String getOrderStatusName()
          Método consultor para el atributo
 java.util.Hashtable getProducts()
          Consultor para el atributo products.
 int getStoreId()
          Consultor para el atributo storeId.
 java.lang.String getStoreName()
          Consultor para el atributo storeName.
 java.sql.Time getTime()
          Consultor para el atributo time.
 double getValue()
          Método consultor para el atributo value
 int hashCode()
           
 boolean loadData(int orderId)
          Carga toda la información del pedido de la base de datos
 boolean loadHistoricalOrder(int orderId)
           
 void makeHistorical(Transaction transaction)
           
 boolean orderResponse(Transaction transaction, int newState, java.lang.String subject, java.lang.String message)
          Este método se usa cuando un proveedor responde un pedido: cambia el estado del pedido usando el método addSql de la transacción que recibe y le envia un correo al minorista confirmandole la respuesta
 boolean saveData(Transaction transaction)
          Almacena la información del pedido en la base de datos usando el método addSql de la transacción que recibe
 void setCompanyId(int companyId)
          Modificador para el atributo companyId.
 void setCompanyName(java.lang.String companyName)
          Modificador para el atributo companyName.
 void setDate(java.sql.Date date)
          Modificador para el atributo date.
 void setDevice(int device)
          Modificador para el atributo device.
 void setId(int id)
          Modificador para el atributo id.
 void setOrderOriginId(int orderOriginId)
          Modificador para el atributo orderOriginId.
 void setOrderStatus(int orderStatus)
          Modificador para el atributo orderStatus.
 void setOrderStatusName(java.lang.String orderStatusName)
          Método modificador para el tributo orderStatusName
 void setProducts(java.util.Hashtable products)
          Modificador para el atributo products.
 void setStoreId(int storeId)
          Modificador para el atributo storeId.
 void setStoreName(java.lang.String storeName)
          Modificador para el atributo storeName.
 void setTime(java.sql.Time time)
          Modificador para el atributo time.
 void setValue(double value)
          Modificador para el atributo value.
 boolean submit()
          Envia un correo al proveedor (usando el método estático sendMail) indicandole acerca del nuevo pedido que se ha realizado con toda la información necesaria para el proveedor, como es: - Nombre y dirección del establecimiento al cual debe llegar el pedido - detalles de cada producto en el pedido
 boolean update(Transaction t)
           
 java.util.Vector verifyOrder()
          Verifica si el pedido se puede enviar al establecimiento seleccionado, este establecimiento está representado por el atributo storeId
 boolean verifyProductOrder(java.lang.String productId)
          Este método verifica que un producto pueda ser entregado por un proveevor al establecimiento destino del pedido
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

id

private int id
identificador único de cada pedido


storeId

private int storeId
identificador del establecimiento al cual va a llegar el pedido


storeName

private java.lang.String storeName
Nombre del establecimiento al cual va a llegar el peido


companyId

private int companyId
identificador de la empresa a la que se realiza el pedido (proveedor)


companyName

private java.lang.String companyName
Nombre de la empresa a la que se realiza el pedido (proveedor)


date

private java.sql.Date date
fecha en la que se realizó el pedido


time

private java.sql.Time time
Hora a la que se realizó el pedido


orderStatus

private int orderStatus
id del estado del pedido


orderStatusName

private java.lang.String orderStatusName
Nombre del estado del pedido


orderOriginId

private int orderOriginId
Número que identifica al tipo de dispositivo desde el que se realizó el pedido


device

private int device
Número de serie que identifica al dispositivo desde el que se realizó el pedido


products

private java.util.Hashtable products
lista de productos en el pedido, el key es el id del producto y el value es un Hashtable organizado de la siguietne forma: - key: el id del objeto OrderProduct (id en la tabla producto_pedido) --> OrderProduct - value: objeto de tipo OrderProduct --> OrderProduct


value

private double value
El valor total del pedido

Constructor Detail

Order

public Order()
Constructor por omisión


Order

public Order(int orderId)
Constructor que recibe el id del pedido y lo carga de la base de datos llamando al método LoadData

Parameters:
orderId - id del pedido
Method Detail

loadData

public boolean loadData(int orderId)
Carga toda la información del pedido de la base de datos

Parameters:
orderId - id del pedido
Returns:
un booleano que indica si se pudieron cargar los datos o no

saveData

public boolean saveData(Transaction transaction)
Almacena la información del pedido en la base de datos usando el método addSql de la transacción que recibe

Parameters:
transaction - la transacción que se está ejecutando
Returns:
un booleano que indica si se pudo salvar la información o no

update

public boolean update(Transaction t)

submit

public boolean submit()
Envia un correo al proveedor (usando el método estático sendMail) indicandole acerca del nuevo pedido que se ha realizado con toda la información necesaria para el proveedor, como es: - Nombre y dirección del establecimiento al cual debe llegar el pedido - detalles de cada producto en el pedido

Returns:
booleano que indica si se pudo enviar el correo o no

orderResponse

public boolean orderResponse(Transaction transaction,
                             int newState,
                             java.lang.String subject,
                             java.lang.String message)
Este método se usa cuando un proveedor responde un pedido: cambia el estado del pedido usando el método addSql de la transacción que recibe y le envia un correo al minorista confirmandole la respuesta

Parameters:
newState - nuevo estado para el pedido
message - mensaje enviado al minorista
transaction - la transacción que se está ejecutando
Returns:
un booleano indicando si se pudo efectuar correctamente la operación o no

changeState

public void changeState(Transaction transaction,
                        int newStatus)
cambia el estado de un pedido, una vez se ha cambiado el código de estado busca en la base de datos el nombre del nuevo estado y lo asigna al atributo orderStatusName

Parameters:
transaction - transaction donde se agrega el query
newStatus - el nuevo estado del pedido

delete

public boolean delete(Transaction transaction)
Elimina el pedido de la base de datos usando el método addSql de la transacción que recibe

Parameters:
transaction - la transacción que se está ejecutando
Returns:
un booleano que indica si se pudo eliminar el pedido o no

verifyOrder

public java.util.Vector verifyOrder()
Verifica si el pedido se puede enviar al establecimiento seleccionado, este establecimiento está representado por el atributo storeId

Returns:
Vector con los ids de los productos la orden que no pueden ser enviados

verifyProductOrder

public boolean verifyProductOrder(java.lang.String productId)
Este método verifica que un producto pueda ser entregado por un proveevor al establecimiento destino del pedido

Parameters:
productId - id del producto
Returns:
boolean que representa el exito del proceso

calculateValue

public void calculateValue()
Calcula el valor total del pedido basandose en el precio individual de cada producto y su cantidad


addProduct

public void addProduct(OrderProduct product)
Este método agrega un objeto de tipo OrderProduct al Hashtable del pedido

Parameters:
product - producto a ser agregado

getId

public int getId()
Consultor para el atributo id.

Returns:
valor del atributo id.

setId

public void setId(int id)
Modificador para el atributo id.

Parameters:
id - Nuevo valor del atributo id.

getStoreId

public int getStoreId()
Consultor para el atributo storeId.

Returns:
valor del atributo storeId.

setStoreId

public void setStoreId(int storeId)
Modificador para el atributo storeId.

Parameters:
storeId - Nuevo valor del atributo storeId.

getStoreName

public java.lang.String getStoreName()
Consultor para el atributo storeName.

Returns:
valor del atributo storeName.

setStoreName

public void setStoreName(java.lang.String storeName)
Modificador para el atributo storeName.

Parameters:
storeName - Nuevo valor del atributo storeName.

getCompanyId

public int getCompanyId()
Consultor para el atributo companyId.

Returns:
valor del atributo companyId.

setCompanyId

public void setCompanyId(int companyId)
Modificador para el atributo companyId.

Parameters:
companyId - Nuevo valor del atributo companyId.

getCompanyName

public java.lang.String getCompanyName()
Consultor para el atributo companyName.

Returns:
valor del atributo companyName.

setCompanyName

public void setCompanyName(java.lang.String companyName)
Modificador para el atributo companyName.

Parameters:
companyName - Nuevo valor del atributo companyName.

getDate

public java.sql.Date getDate()
Consultor para el atributo date.

Returns:
valor del atributo date.

setDate

public void setDate(java.sql.Date date)
Modificador para el atributo date.

Parameters:
date - Nuevo valor del atributo date.

getTime

public java.sql.Time getTime()
Consultor para el atributo time.

Returns:
valor del atributo time.

setTime

public void setTime(java.sql.Time time)
Modificador para el atributo time.

Parameters:
time - Nuevo valor del atributo time.

getOrderStatus

public int getOrderStatus()
Consultor para el atributo orderStatus.

Returns:
valor del atributo orderStatus.

setOrderStatus

public void setOrderStatus(int orderStatus)
Modificador para el atributo orderStatus.

Parameters:
orderStatus - Nuevo valor del atributo orderStatus.

getOrderOriginId

public int getOrderOriginId()
Consultor para el atributo orderOriginId.

Returns:
valor del atributo orderOriginId.

setOrderOriginId

public void setOrderOriginId(int orderOriginId)
Modificador para el atributo orderOriginId.

Parameters:
orderOriginId - Nuevo valor del atributo orderOriginId.

getDevice

public int getDevice()
Consultor para el atributo device.

Returns:
valor del atributo device.

setDevice

public void setDevice(int device)
Modificador para el atributo device.

Parameters:
device - Nuevo valor del atributo device.

getProducts

public java.util.Hashtable getProducts()
Consultor para el atributo products.

Returns:
valor del atributo products.

setProducts

public void setProducts(java.util.Hashtable products)
Modificador para el atributo products.

Parameters:
products - Nuevo valor del atributo products.

getOrderStatusName

public java.lang.String getOrderStatusName()
Método consultor para el atributo

Returns:
Retorna el valor del atributo orderStatusName.

setOrderStatusName

public void setOrderStatusName(java.lang.String orderStatusName)
Método modificador para el tributo orderStatusName

Parameters:
orderStatusName - Nuevo valor para el atributo orderStatusName.

getValue

public double getValue()
Método consultor para el atributo value

Returns:
Retorna el atributo value.

setValue

public void setValue(double value)
Modificador para el atributo value.

Parameters:
value - Nuevo valor del atributo value.

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

makeHistorical

public void makeHistorical(Transaction transaction)

loadHistoricalOrder

public boolean loadHistoricalOrder(int orderId)