Contact should be treated as a Person. Each contact will be in Contact role.
Each contact should be associated with the Party_Group in the "Account" role throught a PartyRelationShip record by partyRelationshipTypeId being "Parent_Account".
Left Navigation Section : There will be following link / section present in left side. There will be two block in the left section similar to catalog.
2) Quick Add Contact
Shorcuts block contains following link :
- Create Contact - Exists, modification required.
- Create Contact from vCard.
- Find Contacts - Exists, Modification required.
Quick Add Contact : This block will be used as it is.
Right side will be the content area (body section).
1) Modification in Create Contact :
a) Add Few more fields.The sequence of the fields will be (R - Required) :
Fields from Person Entity : First Name (R), Last Name (R), Gender, Birth Date, Social Security Number, Occupation.
Fields from Party Group Entity : Group Name(R) (Use "Company Name") , Office Site Name (Use "Website" on GUI), Annual Revenue, Number of Employees, Ticker Symbol.
b) Modification in General Correspondence address : Remove the field Address Field 2 from the form. Instead of this use Separate Block to have "Other Correspondence Address" block and provide all the fields there. (Similar thing that we do in Ecommerce application for Billing & Shipping Address).
2) Modification in Find Contact Screen :
a) Search the records that has partyTypeId ="Person" and has roleTypeId="Contact"
b) Remove the Party Id field from the find form.
c) The search result form will contain one more field titled "Email Address".
d) For providing easy navigation to the user change Party Id field link to Edit button. Also remove the Party ID label from the top. As we have changed it to Edit link.
3) Modification on Summary Section :
a) Add the screenlet section that will contain the Accounts associated with this contact. Also Provide small form at the bottom of account list to add the other accounts on the existing list. For this provide one lookup to search contacts (Account i.e "Party_Group" in the role of "Account") and then submit button. If we do this through Ajax(Using Prototype Library) then it would be good. The Contact should be associated with Party Group through Party Relationship by partyRelationshipTypeId being "Parent_Account".
b) Remove the Party Attribute block for now. It won't make any sense to me for now.
Rest of the functionality in the Contacts header should be tested properly.