Delegator delegator = (Delegator) dctx.getDelegator();
String partyId = (String) context.get("partyId");
File file = null;
try {
ContactModelFactory cmf = Pim.getContactModelFactory();
Contact contact = cmf.createContact();
PersonalIdentity pid = cmf.createPersonalIdentity();
String fullName = PartyHelper.getPartyName(delegator, partyId, false);
String[] name = fullName.split("\\s");
pid.setFirstname(name[0]);
pid.setLastname(name[1]);
contact.setPersonalIdentity(pid);
GenericValue postalAddress = PartyWorker.findPartyLatestPostalAddress(partyId, delegator);
Address address = cmf.createAddress();
address.setStreet(postalAddress.getString("address1"));
address.setCity(postalAddress.getString("city"));
address.setPostalCode(postalAddress.getString("postalCode"));
GenericValue state = postalAddress.getRelatedOne("StateProvinceGeo");
if (UtilValidate.isNotEmpty(state)) {
address.setRegion(state.getString("geoName"));
}
GenericValue countryGeo = postalAddress.getRelatedOne("CountryGeo");
if (UtilValidate.isNotEmpty(countryGeo)) {
String country = postalAddress.getRelatedOne("CountryGeo").getString("geoName");
address.setCountry(country);
address.setWork(true); // this can be better set by checking contactMechPurposeTypeId
}
contact.addAddress(address);
Communications communication = cmf.createCommunications();
contact.setCommunications(communication);
PhoneNumber number = cmf.createPhoneNumber();
GenericValue telecomNumber = PartyWorker.findPartyLatestTelecomNumber(partyId, delegator);
if (UtilValidate.isNotEmpty(telecomNumber)) {
number.setNumber(telecomNumber.getString("areaCode") + telecomNumber.getString("contactNumber"));