boolean syncAsPrivate = (prefValue != null && prefValue.equals("YES")) ? true : false;
int individualID = userObject.getIndividualID(); // logged in user
// "sycnContactForm", defined in struts-config-sync.xml
DynaActionForm contactForm = (DynaActionForm)form;
SyncUtils syncUtils = new SyncUtils();
try
{
// check to see if CompanionLink Agent has signed in
if (syncUtils.checkSession(userObject, contactForm) == false)
{
writer.print("FAIL: You are not logged in.");
return(null);
}
// decode all characters that are encoded by CompanionLink Agent
contactForm = syncUtils.parseSpecialChars(contactForm);
String firstName = (String)contactForm.get("firstName");
String lastName = (String)contactForm.get("lastName");
// now validate the form data
if (firstName == null || firstName.equals(""))
{
if (lastName == null || lastName.equals(""))
{
return(null);
}
}
String primaryContact = (String)contactForm.get("primaryContact");
if (! primaryContact.equals("Yes") && ! primaryContact.equals("No"))
{
return(null);
}
// if CompanionLink Agent did not send us an Entity name,
// then set the entity name equal to the individual's name
String companyName = (String)contactForm.get("companyName");
if (companyName == null || companyName.equals(""))
{
companyName = firstName + " " + lastName;
}
ContactFacadeHome cfh = (ContactFacadeHome)CVUtility.getHomeObject("com.centraview.contact.contactfacade.ContactFacadeHome","ContactFacade");
ContactFacade remote = (ContactFacade)cfh.create();
remote.setDataSource(dataSource);
SyncFacadeHome syncHome = (SyncFacadeHome)CVUtility.getHomeObject("com.centraview.syncfacade.SyncFacadeHome", "SyncFacade");
com.centraview.syncfacade.SyncFacade sfremote = (com.centraview.syncfacade.SyncFacade)syncHome.create();
sfremote.setDataSource(dataSource);
// this will represent the new Individual we are creating
IndividualVO individualVO = new IndividualVO();
individualVO.setFirstName(firstName);
individualVO.setMiddleName((String)contactForm.get("MI"));
individualVO.setLastName(lastName);
individualVO.setTitle((String)contactForm.get("title"));
individualVO.setIsPrimaryContact(primaryContact);
individualVO.setContactType(2); // contactType 2 is "Individual"
AddressVO primaryAddress = new AddressVO();
primaryAddress.setIsPrimary("YES");
primaryAddress.setStreet1((String)contactForm.get("street1"));
primaryAddress.setStreet2((String)contactForm.get("street2"));
primaryAddress.setCity((String)contactForm.get("city"));
primaryAddress.setStateName((String)contactForm.get("state"));
primaryAddress.setZip((String)contactForm.get("zipCode"));
primaryAddress.setCountryName((String)contactForm.get("country"));
individualVO.setPrimaryAddress(primaryAddress);
// save email address
String email = (String)contactForm.get("email");
if (email != null && ! email.equals(""))
{
MethodOfContactVO emailVO = new MethodOfContactVO();
emailVO.setContent(email);
emailVO.setMocType(Constants.MOC_EMAIL); // hardcoded to "Email" type
emailVO.setIsPrimary("YES"); // always set as the primary email address
individualVO.setMOC(emailVO);
}
// set workPhone
String workPhone = (String)contactForm.get("workPhone");
if (workPhone != null && (! workPhone.equals("")))
{
// create new MocVO object
MethodOfContactVO workPhoneMocVO = new MethodOfContactVO();
// set properties
String workPhoneExt = (String)contactForm.get("workPhoneExt");
if (workPhoneExt != null && ! workPhoneExt.equals(""))
{
workPhone = workPhone + "EXT" + workPhoneExt;
}
workPhoneMocVO.setContent(workPhone);
workPhoneMocVO.setSyncAs("Work");
workPhoneMocVO.setMocType(Constants.MOC_WORK); // hardcoded to "Phone" type
individualVO.setMOC(workPhoneMocVO);
}
// set homePhone
String homePhone = (String)contactForm.get("homePhone");
if (homePhone != null && (! homePhone.equals("")))
{
// create new MocVO object
MethodOfContactVO homePhoneMocVO = new MethodOfContactVO();
// set properties
String homePhoneExt = (String)contactForm.get("homePhoneExt");
if (homePhoneExt != null && ! homePhoneExt.equals(""))
{
homePhone = homePhone + "EXT" + homePhoneExt;
}
homePhoneMocVO.setContent(homePhone);
homePhoneMocVO.setSyncAs("Home");
homePhoneMocVO.setMocType(Constants.MOC_HOME); // hardcoded to "Phone" type
individualVO.setMOC(homePhoneMocVO);
}
// set faxPhone
String faxPhone = (String)contactForm.get("faxPhone");
if (faxPhone != null && (! faxPhone.equals("")))
{
// create new MocVO object
MethodOfContactVO faxPhoneMocVO = new MethodOfContactVO();
// set properties
String faxPhoneExt = (String)contactForm.get("faxPhoneExt");
if (faxPhoneExt != null && ! faxPhoneExt.equals(""))
{
faxPhone = faxPhone + "EXT" + faxPhoneExt;
}
faxPhoneMocVO.setContent(faxPhone);
faxPhoneMocVO.setSyncAs("Fax");
faxPhoneMocVO.setMocType(Constants.MOC_FAX); // hardcoded to "Fax" type
individualVO.setMOC(faxPhoneMocVO);
}
// set otherPhone
String otherPhone = (String)contactForm.get("otherPhone");
if (otherPhone != null && (! otherPhone.equals("")))
{
// create new MocVO object
MethodOfContactVO otherPhoneMocVO = new MethodOfContactVO();
// set properties
String otherPhoneExt = (String)contactForm.get("otherPhoneExt");
if (otherPhoneExt != null && ! otherPhoneExt.equals(""))
{
otherPhone = otherPhone + "EXT" + otherPhoneExt;
}
otherPhoneMocVO.setContent(otherPhone);
otherPhoneMocVO.setSyncAs("Other");
otherPhoneMocVO.setMocType(Constants.MOC_OTHER); // hardcoded to "Phone" type
individualVO.setMOC(otherPhoneMocVO);
}
// set mainPhone
String mainPhone = (String)contactForm.get("mainPhone");
if (mainPhone != null && (! mainPhone.equals("")))
{
// create new MocVO object
MethodOfContactVO mainPhoneMocVO = new MethodOfContactVO();
// set properties
String mainPhoneExt = (String)contactForm.get("mainPhoneExt");
if (mainPhoneExt != null && ! mainPhoneExt.equals(""))
{
mainPhone = mainPhone + "EXT" + mainPhoneExt;
}
mainPhoneMocVO.setContent(mainPhone);
mainPhoneMocVO.setSyncAs("Main");
mainPhoneMocVO.setMocType(Constants.MOC_MAIN); // hardcoded to "Phone" type
individualVO.setMOC(mainPhoneMocVO);
}
// set pagerPhone
String pagerPhone = (String)contactForm.get("pagerPhone");
if (pagerPhone != null && (! pagerPhone.equals("")))
{
// create new MocVO object
MethodOfContactVO pagerPhoneMocVO = new MethodOfContactVO();
// set properties
String pagerPhoneExt = (String)contactForm.get("pagerPhoneExt");
if (pagerPhoneExt != null && ! pagerPhoneExt.equals(""))
{
pagerPhone = pagerPhone + "EXT" + pagerPhoneExt;
}
pagerPhoneMocVO.setContent(pagerPhone);
pagerPhoneMocVO.setSyncAs("Pager");
pagerPhoneMocVO.setMocType(Constants.MOC_PAGER); // hardcoded to "Phone" type
individualVO.setMOC(pagerPhoneMocVO);
}
// set mobilePhone
String mobilePhone = (String)contactForm.get("mobilePhone");
if (mobilePhone != null && (! mobilePhone.equals("")))
{
// create new MocVO object
MethodOfContactVO mobilePhoneMocVO = new MethodOfContactVO();
// set properties
String mobilePhoneExt = (String)contactForm.get("mobilePhoneExt");
if (mobilePhoneExt != null && ! mobilePhoneExt.equals(""))
{
mobilePhone = mobilePhone + "EXT" + mobilePhoneExt;
}
mobilePhoneMocVO.setContent(mobilePhone);
mobilePhoneMocVO.setSyncAs("Mobile");
mobilePhoneMocVO.setMocType(Constants.MOC_MOBILE); // hardcoded to "Mobile" type
individualVO.setMOC(mobilePhoneMocVO);
}
// get notes field
String notes = (String)contactForm.get("notes");
boolean addNote = (notes != null && notes.length() > 0) ? true : false;
// first, we need to get the entityID based on the CompanyName
// passed into the form. If the entity name doesn't match something
// in the database, then set a flag to create a new entity.