public OrderRepresentation updateOrder(String id, Customer customer, Address billingAddress, Address shippingAddress,
CreditCard creditCard, ShippingCompany shippingCompany, List<Line> lines, boolean paymentReceived,
String orderState) {
// Get the order
Order order = orderDao.getOrder(id);
// Update the order
// We can only do these actions in the Open state
if (order.getOrderState().equals("Open")) {
order.setCustomer(customer);
order.setBillingAddress(billingAddress);
order.setShippingAddress(shippingAddress);
order.setCreditCard(creditCard);
order.setShippingCompany(shippingCompany);
order.setLines(lines);
}
// We can only do these actions in the Open or Ordered sate
if (order.getOrderState().equals("Open") || order.getOrderState().equals("Ordered")) {
order.setPaymentReceived(paymentReceived);
}
// We can do this in any state, except canceled.
if (!order.getOrderState().equals("Canceled")) {
order.setOrderState(orderState);
}
return createRepresentation(order);
}