package is.idega.idegaweb.golf.member;
import is.idega.idegaweb.golf.entity.Address;
import is.idega.idegaweb.golf.entity.Card;
import is.idega.idegaweb.golf.entity.CardHome;
import is.idega.idegaweb.golf.entity.Family;
import is.idega.idegaweb.golf.entity.FamilyHome;
import is.idega.idegaweb.golf.entity.Group;
import is.idega.idegaweb.golf.entity.Member;
import is.idega.idegaweb.golf.entity.MemberInfo;
import is.idega.idegaweb.golf.entity.Phone;
import is.idega.idegaweb.golf.entity.UnionMemberInfo;
import java.sql.SQLException;
import com.idega.data.IDOLegacyEntity;
import com.idega.data.IDOLookup;
public class GolfMemberProfile {
private Member eMember = null;
private MemberInfo eMemberInfo = null;
private UnionMemberInfo[] eUMIs = null;
private UnionMemberInfo eUMI = null;
private Address[] eAddresses = null;
private Phone[] ePhones = null;
private Family eFamily = null;
private Group[] eGroups = null;
private Card eCard = null;
private Member[] eFamilyMembers = null;
private int UnionId = 0;
public boolean bEditMember ,bEditMemberInfo, bEditUMI ,bEditPhones , bEditAddresses,bEditGroups,bEditFamily , bEditCard , bEditFamilyMembers ;
public boolean bHasMember ,bHasMemberInfo,bHasUMI,bHasUMIs,bHasPhones,bHasAddresses,bHasGroups,bHasFamily ,bHasCard , bHasFamilyMembers ;
public GolfMemberProfile(Member eMember){
init();
setMember(eMember);
fillProfile();
}
public GolfMemberProfile(Member eMember,int iUnionId){
init();
setMember(eMember);
try {
setUnionMemberInfo(eMember.getUnionMemberInfo(iUnionId));
}
catch (Exception ex) {ex.printStackTrace(); }
fillProfile();
}
private void init(){
bEditMember = false;
bEditMemberInfo = false;
bEditUMI = false;
bEditPhones = false;
bEditAddresses = false;
bEditGroups = false;
bEditFamily = false;
bEditCard = false;
bEditFamilyMembers = false;
bHasMember = false;
bHasMemberInfo = false;
bHasUMI = false;
bHasUMIs = false;
bHasPhones = false;
bHasAddresses = false;
bHasGroups = false;
bHasFamily = false;
bHasCard = false;
bHasFamilyMembers = false;
}
private void fillProfile(){
// UnionMemberInfos
try {
eUMIs = (UnionMemberInfo[]) ((UnionMemberInfo) IDOLookup.instanciateEntity(UnionMemberInfo.class)).findAllByColumnEquals(eMember.getIDColumnName(),eMember.getID());
if(eUMIs != null && eUMIs.length == 0)
eUMIs = null;
else
bHasUMIs = true;
}
catch (Exception ex) {
System.err.println("GolfMemberProfile.eUMIs");
ex.printStackTrace();
eUMIs = null;
}
// MemberInfo
try {
this.eMemberInfo = eMember.getMemberInfo();
if(eMemberInfo != null )
bHasMemberInfo = true;
}
catch (Exception ex) {}
// Groups:
try {
this.eGroups = eMember.getGroups();
if(eGroups != null && eGroups.length == 0)
eGroups = null;
else
bHasGroups = true;
}
catch (Exception ex) {}
// Addresses:
try {
this.eAddresses = eMember.getAddress();
if(eAddresses != null && eAddresses.length == 0)
eAddresses = null;
else
bHasAddresses = true;
}
catch (Exception ex) {}
// Phones:
try {
this.ePhones = eMember.getPhone();
if(ePhones != null && ePhones.length == 0)
ePhones = null;
else
bHasPhones = true;
}
catch (Exception ex) {}
if(eUMI != null && eUMI.getFamilyId() > 0){
// Family:
try {
eFamily = ((FamilyHome) IDOLookup.getHomeLegacy(Family.class)).findByPrimaryKey(eUMI.getFamilyId());
if(eFamily != null)
this.bHasFamily = true;
}
catch (Exception ex) {}
// Card:
try {
int id = eUMI.getCardId();
if(id > 1)
eCard = ((CardHome) IDOLookup.getHomeLegacy(Card.class)).findByPrimaryKey(id);
}
catch (Exception ex) { }
}
// FamilyMembers:
if(eUMI != null && eUMI.getFamilyId() > 0){
try {
this.eFamilyMembers = eMember.getFamilyMembers(eUMI.getFamilyId());
if(eFamilyMembers != null && eFamilyMembers.length == 0)
eFamilyMembers = null;
else
bHasFamilyMembers = true;
}
catch (Exception ex) {ex.printStackTrace();}
}
}
private void saveProfile(){
//Member
if(bHasMember && bEditMember){
try { saveEntity(eMember); }
catch (Exception ex) { }
}
// MemberInfo
if(bHasMemberInfo && bEditMemberInfo){
try { saveEntity(eMemberInfo); }
catch (Exception ex) { }
}
// Card
if(bHasCard && bEditCard){
try { saveEntity(eCard); }
catch (Exception ex) { }
}
// UnionMemberInfo
if(bHasUMI && bEditUMI){
try { saveEntity(eUMI); }
catch (Exception ex) { }
}
// Family
if(bHasFamily && bEditFamily){
try { saveEntity(eFamily); }
catch (Exception ex) { }
}
// Addresses
if(bHasAddresses && bEditAddresses){
for (int i = 0; i < eAddresses.length; i++) {
try{ saveEntity(eAddresses[i]); }
catch (Exception ex) { }
}
}
// Phones
if(bHasPhones && bEditPhones){
for (int i = 0; i < eUMIs.length; i++) {
try{ saveEntity(ePhones[i]); }
catch (Exception ex) { }
}
}
// Familymembers
if(bHasFamilyMembers && bEditFamilyMembers){
for (int i = 0; i < eFamilyMembers.length; i++) {
try{ saveEntity(eFamilyMembers[i]); }
catch (Exception ex) { }
}
}
// Groups
if(bHasGroups && bEditGroups){
for (int i = 0; i < eGroups.length; i++) {
try{ saveEntity(eGroups[i]); }
catch (Exception ex) { }
}
}
}
private void saveEntity(IDOLegacyEntity entity)throws SQLException{
if(entity.getID() > 0)
entity.update();
else
entity.insert();
}
public Member getMember(){
return this.eMember;
}
public void setMember(Member eMember){
this.eMember = eMember;
this.bHasMember = (eMember != null)? true:false;
}
public MemberInfo getMemberInfo(){
return this.eMemberInfo;
}
public void setMemberInfo(MemberInfo eMemberInfo){
this.eMemberInfo = eMemberInfo;
this.bHasMemberInfo = (eMemberInfo != null)? true:false;
}
public UnionMemberInfo getUnionMemberInfo(){
return this.eUMI;
}
public void setUnionMemberInfo(UnionMemberInfo eUMI){
this.eUMI = eUMI;
this.bHasUMI = (eUMI != null)? true:false;
}
public Family getFamily(){
return this.eFamily;
}
public void setFamily(Family eFamily){
this.eFamily = eFamily;
this.bHasFamily = (eFamily != null)? true:false;
}
public Card getCard(){
return this.eCard;
}
public void setCard(Card eCard){
this.eCard = eCard;
this.bHasCard = (eCard != null)? true:false;
}
public Group[] getGroups(){
return this.eGroups;
}
public void setGroups(Group[] eGroups){
this.eGroups = eGroups;
this.bHasGroups = (eGroups != null)? true:false;
}
public Phone[] gePhones(){
return this.ePhones;
}
public void setPhones(Phone[] ePhones){
this.ePhones = ePhones;
this.bHasPhones = (ePhones != null)? true:false;
}
public Address[] getAddresses(){
return this.eAddresses;
}
public void setAddresses(Address[] eAddresses){
this.eAddresses = eAddresses;
this.bHasAddresses = (eAddresses != null)? true:false;
}
public UnionMemberInfo[] getUnionMemberInfos(){
return this.eUMIs;
}
public void setUnionMemberInfos(UnionMemberInfo[] eUMIs){
this.eUMIs = eUMIs;
this.bHasUMIs = (eUMIs != null)? true:false;
}
public Member[] getFamilyMembers(){
return this.eFamilyMembers;
}
public void stFamilyMembers(Member[] eMembers){
this.eFamilyMembers = eMembers;
this.bHasFamilyMembers = (eFamilyMembers != null)? true:false;
}
}