On Apr 3, 2011, at 10:51 AM, John Fabiani wrote:
> I don't know about Nate but for me that was a little confusing. Could you
> explain using the sales order record and the address record as the references.
Addresses can't be changed - that's the rule. So when the user of the
app tries to modify an address, the app needs to create a new address record
and leave the original intact.
Let's assume we have customer ID=1, with address ID=1, who places order
ID=1. The address table would have customerFK=1, and the order table would have
both customerFK=1 and addressFK=1.
Next year the customer has moved, and places another order. The app
user would modify the address for that customer and enter the order. When they
save the order, the address bizobj's beforeSave() would check for
isChanged=True and isAdding=False. Since this is the case, it would clone the
current record (id=1), and save that new record. Once it's been saved, it would
note the new record's ID (let's say it's 33). It would then update the order
bizobj with the new addressFK. Finally, it would call cancel() on the current
address record to preserve the original values.
When that's done, you would have two records in the address table (ID=1
and ID=33) with customerFK=1. The two order table records for customerFK=1
would have different addressFKs: 1 (for the first) and 33 (for the second).
-- Ed Leafe
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message:
http://leafe.com/archives/byMID/[email protected]