if (companyName == null || companyName.equals(""))
{
companyName = firstName + " " + lastName;
}
SyncUtils syncUtils = new SyncUtils();
// this will represent the new Individual we are creating
IndividualVO individualVO = new IndividualVO();
// general basic information
individualVO.setFirstName(firstName);
individualVO.setMiddleName((String)contactForm.get("middleInitial"));
individualVO.setLastName(lastName);
individualVO.setTitle((String)contactForm.get("title"));
individualVO.setContactType(2); // contactType 2 is "Individual"
individualVO.setSourceName((String)contactForm.get("source"));
individualVO.setExternalID((String)contactForm.get("ID2"));
// Address information
String street1 = (String)contactForm.get("street1");
String street2 = (String)contactForm.get("street2");
String city = (String)contactForm.get("city");
String state = (String)contactForm.get("state");
String zipCode = (String)contactForm.get("zip");
String country = (String)contactForm.get("country");
AddressVO primaryAddress = new AddressVO();
// only create an Address VO if ONE or MORE fields are filled in
if ((street1 != null && street1.length() > 0) || (street2 != null && street2.length() > 0) ||
(city != null && city.length() > 0) || (state != null && state.length() > 0) ||
(zipCode != null && zipCode.length() > 0) || (country != null && country.length() > 0))
{
primaryAddress.setIsPrimary("YES");
primaryAddress.setStreet1(street1);
primaryAddress.setStreet2(street2);
primaryAddress.setCity(city);
primaryAddress.setStateName(state);
primaryAddress.setZip(zipCode);
primaryAddress.setCountryName(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");
String workPhoneExt = (String)contactForm.get("workPhoneExt"); // will be needed later for entity, maybe
if (workPhone != null && ! workPhone.equals(""))
{
individualVO.setMOC(syncUtils.createNewPhoneMoc(workPhone, workPhoneExt, "Work",Constants.MOC_WORK)); // (content, ext, syncAs, mocType)
}
// set homePhone
String homePhone = (String)contactForm.get("homePhone");
String homePhoneExt = (String)contactForm.get("homePhoneExt");
if (homePhone != null && ! homePhone.equals(""))
{
individualVO.setMOC(syncUtils.createNewPhoneMoc(homePhone, homePhoneExt, "Home" , Constants.MOC_HOME));
}
// set faxPhone
String faxPhone = (String)contactForm.get("faxPhone");
String faxPhoneExt = (String)contactForm.get("faxPhoneExt");
if (faxPhone != null && (! faxPhone.equals("")))
{
individualVO.setMOC(syncUtils.createNewPhoneMoc(faxPhone, faxPhoneExt, "Fax" , Constants.MOC_FAX));
}
// set otherPhone
String otherPhone = (String)contactForm.get("otherPhone");
String otherPhoneExt = (String)contactForm.get("otherPhoneExt");
if (otherPhone != null && (! otherPhone.equals("")))
{
individualVO.setMOC(syncUtils.createNewPhoneMoc(otherPhone, otherPhoneExt, "Other" , Constants.MOC_OTHER));
}
// set mainPhone
String mainPhone = (String)contactForm.get("mainPhone");
String mainPhoneExt = (String)contactForm.get("mainPhoneExt");
if (mainPhone != null && (! mainPhone.equals("")))
{
individualVO.setMOC(syncUtils.createNewPhoneMoc(mainPhone, mainPhoneExt, "Main" , Constants.MOC_MAIN));
}
// set pagerPhone
String pagerPhone = (String)contactForm.get("pagerPhone");
String pagerPhoneExt = (String)contactForm.get("pagerPhoneExt");
if (pagerPhone != null && (! pagerPhone.equals("")))
{
individualVO.setMOC(syncUtils.createNewPhoneMoc(pagerPhone, pagerPhoneExt, "Pager" , Constants.MOC_PAGER));
}
// set mobilePhone
String mobilePhone = (String)contactForm.get("mobilePhone");
String mobilePhoneExt = (String)contactForm.get("mobilePhoneExt");
if (mobilePhone != null && (! mobilePhone.equals("")))
{
individualVO.setMOC(syncUtils.createNewPhoneMoc(mobilePhone, mobilePhoneExt, "Mobile" , Constants.MOC_MOBILE));
}
// might as well create the EJB connections now...
ContactFacadeHome cfh = (ContactFacadeHome)CVUtility.getHomeObject("com.centraview.contact.contactfacade.ContactFacadeHome","ContactFacade");
ContactFacade cfremote = (ContactFacade)cfh.create();
cfremote.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);
// 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.
int finalEntityID = 0;
boolean createNewEntity = false;
if (companyName != null && (! companyName.equals("")))
{
finalEntityID = sfremote.findCompanyNameMatch(companyName, individualID);
if (finalEntityID == 0)
{
createNewEntity = true;
}
} // end if (companyName != null && (! companyName.equals("")))
// now that we've got all the Individual's info set up properly in
// the appropriate VO objects, let's create an Entity if necessary
String primaryContact = "Yes"; // gets set to no if we're updating an existing entity
if (createNewEntity)
{
// in this case, we didn't find a match to our entity name in the
// database, so we'll create a new entity with any form information
EntityVO newEntity = new EntityVO();
newEntity.setContactType(1); // contact type 1 = Entity
newEntity.setName(companyName);
newEntity.setSourceName((String)contactForm.get("entitySource"));
newEntity.setExternalID((String)contactForm.get("entityID2"));
// Entity Address information
String eStreet1 = (String)contactForm.get("entityStreet1");
String eStreet2 = (String)contactForm.get("entityStreet2");
String eCity = (String)contactForm.get("entityCity");
String eState = (String)contactForm.get("entityState");
String eZipCode = (String)contactForm.get("entityZip");
String eCountry = (String)contactForm.get("entityCountry");
// only create an Address VO if ONE or MORE fields are filled in
if ((eStreet1 != null && eStreet1.length() > 0) || (eStreet2 != null && eStreet2.length() > 0) ||
(eCity != null && eCity.length() > 0) || (eState != null && eState.length() > 0) ||
(eZipCode != null && eZipCode.length() > 0) || (eCountry != null && eCountry.length() > 0))
{
AddressVO ePrimaryAddress = new AddressVO();
ePrimaryAddress.setIsPrimary("YES");
ePrimaryAddress.setStreet1(eStreet1);
ePrimaryAddress.setStreet2(eStreet2);
ePrimaryAddress.setCity(eCity);
ePrimaryAddress.setStateName(eState);
ePrimaryAddress.setZip(eZipCode);
ePrimaryAddress.setCountryName(eCountry);
newEntity.setPrimaryAddress(ePrimaryAddress);
}else{
// if no entity address information was given, use individual address
newEntity.setPrimaryAddress(primaryAddress);
}
// save email address
String eEmail = (String)contactForm.get("entityEmail");
if (eEmail != null && ! eEmail.equals(""))
{
MethodOfContactVO eEmailVO = new MethodOfContactVO();
eEmailVO.setContent(eEmail);
eEmailVO.setMocType(1); // hardcoded to "Email" type
eEmailVO.setIsPrimary("YES"); // always set as the primary email address
newEntity.setMOC(eEmailVO);
}
// set workPhone
String eWorkPhone = (String)contactForm.get("entityWorkPhone");
if (eWorkPhone != null && ! eWorkPhone.equals(""))
{
String eWorkPhoneExt = (String)contactForm.get("entityWorkPhoneExt");
newEntity.setMOC(syncUtils.createNewPhoneMoc(eWorkPhone, eWorkPhoneExt, "Work", Constants.MOC_WORK)); // (content, ext, syncAs, mocType)
}
// set homePhone
String eHomePhone = (String)contactForm.get("entityHomePhone");
if (eHomePhone != null && ! eHomePhone.equals(""))
{
String eHomePhoneExt = (String)contactForm.get("entityHomePhoneExt");
newEntity.setMOC(syncUtils.createNewPhoneMoc(eHomePhone, eHomePhoneExt, "Home", Constants.MOC_HOME)); // (content, ext, syncAs, mocType)
}
// set FaxPhone
String eFaxPhone = (String)contactForm.get("entityFaxPhone");
if (eFaxPhone != null && ! eFaxPhone.equals(""))
{
String eFaxPhoneExt = (String)contactForm.get("entityFaxPhoneExt");
newEntity.setMOC(syncUtils.createNewPhoneMoc(eFaxPhone, eFaxPhoneExt, "Fax", Constants.MOC_FAX)); // (content, ext, syncAs, mocType)
}
// set OtherPhone
String eOtherPhone = (String)contactForm.get("entityOtherPhone");
if (eOtherPhone != null && ! eOtherPhone.equals(""))
{
String eOtherPhoneExt = (String)contactForm.get("entityOtherPhoneExt");
newEntity.setMOC(syncUtils.createNewPhoneMoc(eOtherPhone, eOtherPhoneExt, "Other", Constants.MOC_OTHER)); // (content, ext, syncAs, mocType)
}
// set MainPhone
String eMainPhone = (String)contactForm.get("entityMainPhone");
if (eMainPhone != null && ! eMainPhone.equals(""))
{
String eMainPhoneExt = (String)contactForm.get("entityMainPhoneExt");
newEntity.setMOC(syncUtils.createNewPhoneMoc(eMainPhone, eMainPhoneExt, "Main", Constants.MOC_MAIN)); // (content, ext, syncAs, mocType)
}
// set PagerPhone
String ePagerPhone = (String)contactForm.get("entityPagerPhone");
if (ePagerPhone != null && ! ePagerPhone.equals(""))
{
String ePagerPhoneExt = (String)contactForm.get("entityPagerPhoneExt");
newEntity.setMOC(syncUtils.createNewPhoneMoc(ePagerPhone, ePagerPhoneExt, "Pager", Constants.MOC_PAGER)); // (content, ext, syncAs, mocType)
}
// set MobilePhone
String eMobilePhone = (String)contactForm.get("entityMobilePhone");
if (eMobilePhone != null && ! eMobilePhone.equals(""))
{
String eMobilePhoneExt = (String)contactForm.get("entityMobilePhoneExt");
newEntity.setMOC(syncUtils.createNewPhoneMoc(eMobilePhone, eMobilePhoneExt, "Mobile", Constants.MOC_MOBILE)); // (content, ext, syncAs, mocType)
}
// custom fields
this.addCustomFields(newEntity, mailRemote.getValidFields("Entity"), contactForm);