While looking into reorganizing the shopping cart -> order business logic I thought I'd take a look at the data model for the order entities to get better acquainted with some of the specialized features that get tucked away over the months. I came across a few things that are appear on their surface to be inconsistent or that might be reintroduced a bit more generically. I want to make clear that I'm not suggesting we break out the demolition crew just reorganize our thought processes and identify where we may want begin some incremental changes. I have the org.ofbiz.order.* packages in separate pages of a visio file and will export them to images and attach to a JIRA issue if it's determined that we want to act on any of these peculiarities. Otherwise I will attach them to docs.ofbiz.org for the benefit of those that learn better by pictures.
The following appear as if they could be reintroduced as orderTypes with additional tables for their unique fields order.request order.quote order.return The remainder will be broken up by package then entity with a short note order.order OrderDeliverySchedule - should this be related to a package or something else in shipping or is this just a strangely denormalized entity? OrderHeaderWorkEffort - redundant with OrderItemWorkEffort with OrderItemSeqId = null OrderSummaryEntry - denormalized information, very app specific? OrderItemAssociation - There are probably other order associations that would be beneficial aside from PO <-> SO. Was this done to accommodate the drop shipping improvements? ProductOrderItem - Looks to be identical to OrderItemAssociation except not specific to PO <-> SO with a redundant productId field OrderAdjustment - Could be broken up with subcategory tables OrderItemShipGroupAssoc- OrderItemShipGrpInvRes- OrderShipment- OrderItemShipGroup- all of these have a field shipGroupSeqId. Should this be shipGroupId? OrderItemContactMech - replaced by OrderContactMech? OrderRole - redundant with OrderItemRole with orderItemSeqId = null OrderNotification - more consistent as CommunicationEventOrder or redundant with it? OrderHeaderNote - needs orderItemSeqId field order.quote QuoteCoefficient - Looks an awful lot like QuoteAttribute order.request CustRequestWorkEffort - redundant with CustRequestItemWorkEffort where custRequestItemSeqId = null CustRequestNote - needs custRequestItemSeqId field CustRequestRole - needs custRequestItemSeqId field CustRequestCommEvent - needs custRequestItemSeqId field CustRequestStatus - needs custRequestItemSeqId field order.requirement RequirementAttribute - statusId present at all much less as PK? RequirementBudgetAllocation - statusId present at all much less as PK? OrderRequirementCommitment - statusId present at all much less as PK? RequirementRole - statusId present at all much less as PK? RequirementCustRequest - statusId present at all much less as PK? WorkEffortFulfillment - statusId present at all much less as PK? RespondingParty - should be in order.request, patch already in JIRA DesiredFeature - statusId present at all much less as PK?, desiredFeatureId needs to be lone PK field Thanks for any feedback! Chris