This class is designed to be an SOA interface, or Service, to use the Wasabi.OrderEntry.Data.Cart Wasabi.OrderEntry.Data.Orders and Wasabi.OrderEntry.Data.Invoice structures to provide the business logic for a Sample Retail Order Entry system.
This does not preclude the usage of the Wasabi.OrderEntry.Data.Cart Wasabi.OrderEntry.Data.Orders and Wasabi.OrderEntry.Data.Invoice classes directly, but this presuppose that it is the only active interface to modifying (Create, Update, Delete) any of these classes.Direct read only access to the Wasabi.OrderEntry.Data.Car Wasabi.OrderEntry.Data.Orders and Wasabi.OrderEntry.Data.Invoice classes is assumed for reporting, and real time Business Intelegence.
This method is called as an indication that the "Offer Order" has been accepted by the customer.
If there is no Order, or the active Order is NOT in a "NEW" status, then this method should fail
This method assumes that this is a "fixed quote" for an order, with the undiscounted prices being replicated from each Cart item, along with the discription also being replicated into the Order record. This is done to record the details of the quote and make this snapshot of information be protected from future changes to products and prices.
Creating an order does not remove the Cart, since this is not an commited contract between seller and customer, changes could be made and new "quote" Orders may be create or perhaps even abandoned.