/*
* Copyright (c) 2005-2011 Grameen Foundation USA
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*
* See also http://www.apache.org/licenses/LICENSE-2.0.html for an
* explanation of the license and how it is applied.
*/
package org.mifos.customers.personnel.business;
import java.util.Date;
import org.mifos.framework.business.AbstractEntity;
import org.mifos.framework.business.util.Address;
import org.mifos.framework.business.util.Name;
/**
* I represent extra details related to PersonnelBO.
*/
public class PersonnelDetailsEntity extends AbstractEntity {
private Name name;
private String governmentIdNumber;
private Date dob;
private Integer maritalStatus;
private Integer gender;
private Date dateOfJoiningMFI;
private Date dateOfJoiningBranch;
private Date dateOfLeavingBranch;
@SuppressWarnings("unused")
// see .hbm.xml file
private final Short personnelId;
private final PersonnelBO personnel;
private Address address;
public PersonnelDetailsEntity(Name name, String governmentIdNumber, Date dob, Integer maritalStatus,
Integer gender, Date dateOfJoiningMFI, Date dateOfJoiningBranch, PersonnelBO personnel, Address address) {
super();
this.name = name;
this.governmentIdNumber = governmentIdNumber;
this.dob = dob;
this.maritalStatus = maritalStatus;
this.gender = gender;
this.dateOfJoiningMFI = dateOfJoiningMFI;
this.dateOfJoiningBranch = dateOfJoiningBranch;
this.personnelId = personnel.getPersonnelId();
this.personnel = personnel;
this.address = address;
}
protected PersonnelDetailsEntity() {
super();
this.dob = null;
this.personnelId = null;
this.personnel = null;
}
public Address getAddress() {
if (address == null) {
address = new Address();
}
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public PersonnelBO getPersonnel() {
return personnel;
}
public Date getDateOfJoiningBranch() {
return dateOfJoiningBranch;
}
public void setDateOfJoiningBranch(Date dateOfJoiningBranch) {
this.dateOfJoiningBranch = dateOfJoiningBranch;
}
public Date getDateOfLeavingBranch() {
return dateOfLeavingBranch;
}
public void setDateOfLeavingBranch(Date dateOfLeavingBranch) {
this.dateOfLeavingBranch = dateOfLeavingBranch;
}
public Date getDob() {
return dob;
}
public void setDob(Date dob) {
this.dob = dob;
}
public Date getDateOfJoiningMFI() {
return dateOfJoiningMFI;
}
public void setDateOfJoiningMFI(Date dateOfJoiningMFI) {
this.dateOfJoiningMFI = dateOfJoiningMFI;
}
public Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
public String getGovernmentIdNumber() {
return governmentIdNumber;
}
public void setGovernmentIdNumber(String governmentIdNumber) {
this.governmentIdNumber = governmentIdNumber;
}
public Integer getMaritalStatus() {
return maritalStatus;
}
public void setMaritalStatus(Integer maritalStatus) {
this.maritalStatus = maritalStatus;
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
public String getDisplayName() {
return name.getDisplayName();
}
public void updateNameDetails(String firstName, String middleName, String secondLastName, String lastName) {
this.name.updateDetails(firstName, middleName, secondLastName, lastName);
}
public void updateDetails(Integer maritalStatus, Integer gender) {
this.maritalStatus = maritalStatus;
this.gender = gender;
}
public void updateAddress(Address address) {
this.address = address;
}
}