package is.idega.idegaweb.member.isi.block.accounting.webservice.general.business;
import is.idega.idegaweb.member.isi.block.accounting.webservice.general.server.AddressInfo;
import is.idega.idegaweb.member.isi.block.accounting.webservice.general.server.UserInfo;
import java.rmi.RemoteException;
import javax.ejb.FinderException;
import com.idega.business.IBOLookup;
import com.idega.business.IBOLookupException;
import com.idega.business.IBOServiceBean;
import com.idega.core.location.data.Address;
import com.idega.core.location.data.Country;
import com.idega.core.location.data.PostalCode;
import com.idega.user.business.UserBusiness;
import com.idega.user.data.User;
public class GeneralAccountingServiceBusinessBean extends IBOServiceBean
implements GeneralAccountingServiceBusiness {
public UserInfo getUserInfo(String personalID) {
UserInfo userInfo = new UserInfo();
User user = null;
try {
try {
user = getUserBusiness().getUser(personalID);
} catch (FinderException ex) {
userInfo.setValid(false);
return userInfo;
}
userInfo.setSocialsecurity(personalID);
setNames(user, userInfo);
setAddress(user, userInfo);
userInfo.setValid(true);
return userInfo;
} catch (RemoteException ex) {
userInfo.setValid(false);
userInfo.setError("error");
return userInfo;
}
}
private void setNames(User user, UserInfo userInfo) {
String firstName = user.getFirstName();
userInfo.setFirstName(firstName);
String middleName = user.getMiddleName();
userInfo.setMiddleName(middleName);
String lastName = user.getLastName();
userInfo.setLastName(lastName);
}
private void setAddress(User user, UserInfo userInfo)
throws RemoteException {
Address mainAddress = getUserBusiness().getUsersMainAddress(user);
AddressInfo mainAddressInfo = getAdressInfo(mainAddress);
userInfo.setAddress(mainAddressInfo);
}
private AddressInfo getAdressInfo(Address address) {
AddressInfo addressInfo = new AddressInfo();
if (address == null) {
return null;
}
String streetName = address.getStreetName();
addressInfo.setStreetName(streetName);
String streetNumber = address.getStreetNumber();
addressInfo.setStreetNumber(streetNumber);
PostalCode postalCode = address.getPostalCode();
if (postalCode != null) {
String postalCodeString = postalCode.getPostalCode();
addressInfo.setPostalcode(postalCodeString);
}
String city = address.getCity();
addressInfo.setCity(city);
Country country = address.getCountry();
if (country != null) {
String countryName = country.getName();
addressInfo.setCountry(countryName);
}
return addressInfo;
}
private UserBusiness getUserBusiness() throws IBOLookupException {
return (UserBusiness) IBOLookup
.getServiceInstance(getIWApplicationContext(),
UserBusiness.class);
}
}