package com.fp.persistence.pcustomer.people;

import java.sql.Timestamp;
import com.fp.dto.hb.Log;
import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Table;
import com.fp.dto.hb.HibernateBean;
import javax.persistence.Version;
import javax.persistence.Entity;
import javax.persistence.EmbeddedId;
import javax.persistence.EntityManager;
import javax.persistence.Column;
import java.lang.reflect.Field;
import javax.persistence.Transient;
import java.sql.Date;

/**Clase que implementa la entidad de Hibernate que hace referencia a la tabla TCUSTPEOPLE*/
@Entity(name="TcustPeople")
@Table(name="TCUSTPEOPLE")
public class TcustPeople extends com.fp.dto.AbstractDataTransport implements Serializable,HibernateBean,Cloneable,Log{
/**
* HashCode asociado con la Instancia
*/
@Transient
private int hashValue = 0;
/**
* Version de la Clase
*/
private static final long serialVersionUID = 1L;
/**
* Clave primaria de la Entidad TcustPeople
*/
@EmbeddedId
private TcustPeopleKey pk;
@Column(name="DATEFROM", nullable=true)

/**
* Fecha desde la cual esta vigente el registro
*/
private Timestamp datefrom;

@Version
@Column(name="RECORDVERSION", nullable=true)

/**
* Optimistic locking del registro
*/
private Integer recordversion;

@Column(name="LASTNAME", nullable=true)

/**
* Primer apellido
*/
private String lastname;

@Column(name="SURENAME", nullable=true)

/**
* Segundo apellido 
*/
private String surename;

@Column(name="FIRSTNAME", nullable=true)

/**
* Primer Nombre
*/
private String firstname;

@Column(name="MIDDLENAME", nullable=true)

/**
* Segundo Nombre
*/
private String middlename;

@Column(name="MARITALNAME", nullable=true)

/**
* Apellido de casada
*/
private String maritalname;

@Column(name="GENDER", nullable=true)

/**
* Género
*/
private String gender;

@Column(name="BIRTHDATE", nullable=true)

/**
* Fecha de Nacimiento
*/
private Date birthdate;

@Column(name="MARITALSTATUSCATALOG", nullable=true)

/**
* Codigo de catalogo  de estados civiles,  1 soltero, 2 casado, 
*/
private String maritalstatuscatalog;

@Column(name="MARITALSTATUSCATALOGCODE", nullable=true)

/**
* Codigo de tabla de catalogo de estado civil MARITALSTATUS
*/
private String maritalstatuscatalogcode;

@Column(name="PROFESSIONCATALOG", nullable=true)

/**
* Codigo de catalogo  de profesiones 1, an=bogado, 2 doctor 
*/
private String professioncatalog;

@Column(name="PROFESSIONCATALOGCODE", nullable=true)

/**
* Codigo de tabla de catalogo de profesiones  PROFESSION
*/
private String professioncatalogcode;

@Column(name="EDUCATIONLEVELCATALOG", nullable=true)

/**
* Codigo de catalogo  del nivel de educacion 1, basica, 2 superior
*/
private String educationlevelcatalog;

@Column(name="EDUCATIONLEVELCATALOGCODE", nullable=true)

/**
* Codigo de tabla de catalogo del nivel de educacion EDUCATIONLEVEL
*/
private String educationlevelcatalogcode;

@Column(name="BIRTHCOUNTRYCODE", nullable=true)

/**
* Codigo de país de nacimiento
*/
private String birthcountrycode;

@Column(name="BIRTHPROVINCECODE", nullable=true)

/**
* Codigo de provincia de nacimiento
*/
private String birthprovincecode;

@Column(name="BIRTHCANTONCODE", nullable=true)

/**
* Codigo de canton
*/
private String birthcantoncode;

@Column(name="BIRTHCITYCODE", nullable=true)

/**
* Codigo de cuidad de nacimiento
*/
private String birthcitycode;

@Column(name="SIGNATURECODE", nullable=true)

/**
* Codigo de imagen de la firma del cliente.
*/
private Integer signaturecode;

@Column(name="PHOTOCODE", nullable=true)

/**
* Codigo de imagen de la foto del cliente.
*/
private Integer photocode;

@Column(name="INGRESSUSERCODE", nullable=true)

/**
* Codigo de usuario
*/
private String ingressusercode;

@Column(name="MODIFYUSERCODE", nullable=true)

/**
* Codigo de usuario
*/
private String modifyusercode;

@Column(name="NACIONALITY", nullable=true)

/**
* Nacionalidad de la persona
*/
private String nacionality;

@Column(name="NOTACTIVITYCATALOG", nullable=true)

/**
* Actividad no economica Estudiante, Jubilado, Ama de casa
*/
private String notactivitycatalog;

@Column(name="NOTACTIVITYCATALOGCODE", nullable=true)

/**
* Codigo de tabla de catalogo NOTACTIVITYEC  Actividad no economica
*/
private String notactivitycatalogcode;

@Column(name="CODIGOSIB", nullable=true)

/**
* Codigo de la SIB
*/
private Integer codigosib;

@Column(name="BIRTHPARROQUIACODE", nullable=true)

/**
* Codigo de parroquia de nacimiento
*/
private String birthparroquiacode;

@Column(name="HEIGHT", nullable=true)

/**
* null
*/
private BigDecimal height;

/**Contructor por defecto*/
public TcustPeople(){
}
/**Contructor de TcustPeople
@param pPk Clave Primaria del entity
*/
public TcustPeople(TcustPeopleKey pPk){
 this();
 pk=pPk;
}
/**
* Metodo que entrega datos de la tabla dada la clave primaria.
* @param pEntityManager referencia de la session a obtener datos del bean.
* @param pKey Caleve primaria del bean.
* @return TcustPeople
*/
public static TcustPeople find(EntityManager pEntityManager,TcustPeopleKey pKey) throws Exception{
    TcustPeople obj = pEntityManager.find(TcustPeople.class,pKey);
    return obj;
}
/**Entrega la Clave primaria de TcustPeople
@return El objeto que referencia a la Clave primaria de TcustPeople
*/
public TcustPeopleKey getPk(){
  return pk;
}
/**Fija un nuevo valor a la Clave primaria de TcustPeople
@param pPk El objeto que referencia a la nueva Clave primaria de TcustPeople
*/
public void setPk(TcustPeopleKey pPk){
  pk=pPk;
}
/**Obtiene el valor de datefrom
@return valor de datefrom*/
public Timestamp getDatefrom(){
  return datefrom;
}
/**Fija el valor de datefrom
@param pDatefrom nuevo Valor de datefrom*/
public void setDatefrom(Timestamp pDatefrom){
  datefrom=pDatefrom;
}

/**Obtiene el valor de recordversion
@return valor de recordversion*/
public Integer getRecordversion(){
  return recordversion;
}
/**Fija el valor de recordversion
@param pRecordversion nuevo Valor de recordversion*/
public void setRecordversion(Integer pRecordversion){
  recordversion=pRecordversion;
}

/**Obtiene el valor de lastname
@return valor de lastname*/
public String getLastname(){
  return lastname;
}
/**Fija el valor de lastname
@param pLastname nuevo Valor de lastname*/
public void setLastname(String pLastname){
  lastname=pLastname;
}

/**Obtiene el valor de surename
@return valor de surename*/
public String getSurename(){
  return surename;
}
/**Fija el valor de surename
@param pSurename nuevo Valor de surename*/
public void setSurename(String pSurename){
  surename=pSurename;
}

/**Obtiene el valor de firstname
@return valor de firstname*/
public String getFirstname(){
  return firstname;
}
/**Fija el valor de firstname
@param pFirstname nuevo Valor de firstname*/
public void setFirstname(String pFirstname){
  firstname=pFirstname;
}

/**Obtiene el valor de middlename
@return valor de middlename*/
public String getMiddlename(){
  return middlename;
}
/**Fija el valor de middlename
@param pMiddlename nuevo Valor de middlename*/
public void setMiddlename(String pMiddlename){
  middlename=pMiddlename;
}

/**Obtiene el valor de maritalname
@return valor de maritalname*/
public String getMaritalname(){
  return maritalname;
}
/**Fija el valor de maritalname
@param pMaritalname nuevo Valor de maritalname*/
public void setMaritalname(String pMaritalname){
  maritalname=pMaritalname;
}

/**Obtiene el valor de gender
@return valor de gender*/
public String getGender(){
  return gender;
}
/**Fija el valor de gender
@param pGender nuevo Valor de gender*/
public void setGender(String pGender){
  gender=pGender;
}

/**Obtiene el valor de birthdate
@return valor de birthdate*/
public Date getBirthdate(){
  return birthdate;
}
/**Fija el valor de birthdate
@param pBirthdate nuevo Valor de birthdate*/
public void setBirthdate(Date pBirthdate){
  birthdate=pBirthdate;
}

/**Obtiene el valor de maritalstatuscatalog
@return valor de maritalstatuscatalog*/
public String getMaritalstatuscatalog(){
  return maritalstatuscatalog;
}
/**Fija el valor de maritalstatuscatalog
@param pMaritalstatuscatalog nuevo Valor de maritalstatuscatalog*/
public void setMaritalstatuscatalog(String pMaritalstatuscatalog){
  maritalstatuscatalog=pMaritalstatuscatalog;
}

/**Obtiene el valor de maritalstatuscatalogcode
@return valor de maritalstatuscatalogcode*/
public String getMaritalstatuscatalogcode(){
  return maritalstatuscatalogcode;
}
/**Fija el valor de maritalstatuscatalogcode
@param pMaritalstatuscatalogcode nuevo Valor de maritalstatuscatalogcode*/
public void setMaritalstatuscatalogcode(String pMaritalstatuscatalogcode){
  maritalstatuscatalogcode=pMaritalstatuscatalogcode;
}

/**Obtiene el valor de professioncatalog
@return valor de professioncatalog*/
public String getProfessioncatalog(){
  return professioncatalog;
}
/**Fija el valor de professioncatalog
@param pProfessioncatalog nuevo Valor de professioncatalog*/
public void setProfessioncatalog(String pProfessioncatalog){
  professioncatalog=pProfessioncatalog;
}

/**Obtiene el valor de professioncatalogcode
@return valor de professioncatalogcode*/
public String getProfessioncatalogcode(){
  return professioncatalogcode;
}
/**Fija el valor de professioncatalogcode
@param pProfessioncatalogcode nuevo Valor de professioncatalogcode*/
public void setProfessioncatalogcode(String pProfessioncatalogcode){
  professioncatalogcode=pProfessioncatalogcode;
}

/**Obtiene el valor de educationlevelcatalog
@return valor de educationlevelcatalog*/
public String getEducationlevelcatalog(){
  return educationlevelcatalog;
}
/**Fija el valor de educationlevelcatalog
@param pEducationlevelcatalog nuevo Valor de educationlevelcatalog*/
public void setEducationlevelcatalog(String pEducationlevelcatalog){
  educationlevelcatalog=pEducationlevelcatalog;
}

/**Obtiene el valor de educationlevelcatalogcode
@return valor de educationlevelcatalogcode*/
public String getEducationlevelcatalogcode(){
  return educationlevelcatalogcode;
}
/**Fija el valor de educationlevelcatalogcode
@param pEducationlevelcatalogcode nuevo Valor de educationlevelcatalogcode*/
public void setEducationlevelcatalogcode(String pEducationlevelcatalogcode){
  educationlevelcatalogcode=pEducationlevelcatalogcode;
}

/**Obtiene el valor de birthcountrycode
@return valor de birthcountrycode*/
public String getBirthcountrycode(){
  return birthcountrycode;
}
/**Fija el valor de birthcountrycode
@param pBirthcountrycode nuevo Valor de birthcountrycode*/
public void setBirthcountrycode(String pBirthcountrycode){
  birthcountrycode=pBirthcountrycode;
}

/**Obtiene el valor de birthprovincecode
@return valor de birthprovincecode*/
public String getBirthprovincecode(){
  return birthprovincecode;
}
/**Fija el valor de birthprovincecode
@param pBirthprovincecode nuevo Valor de birthprovincecode*/
public void setBirthprovincecode(String pBirthprovincecode){
  birthprovincecode=pBirthprovincecode;
}

/**Obtiene el valor de birthcantoncode
@return valor de birthcantoncode*/
public String getBirthcantoncode(){
  return birthcantoncode;
}
/**Fija el valor de birthcantoncode
@param pBirthcantoncode nuevo Valor de birthcantoncode*/
public void setBirthcantoncode(String pBirthcantoncode){
  birthcantoncode=pBirthcantoncode;
}

/**Obtiene el valor de birthcitycode
@return valor de birthcitycode*/
public String getBirthcitycode(){
  return birthcitycode;
}
/**Fija el valor de birthcitycode
@param pBirthcitycode nuevo Valor de birthcitycode*/
public void setBirthcitycode(String pBirthcitycode){
  birthcitycode=pBirthcitycode;
}

/**Obtiene el valor de signaturecode
@return valor de signaturecode*/
public Integer getSignaturecode(){
  return signaturecode;
}
/**Fija el valor de signaturecode
@param pSignaturecode nuevo Valor de signaturecode*/
public void setSignaturecode(Integer pSignaturecode){
  signaturecode=pSignaturecode;
}

/**Obtiene el valor de photocode
@return valor de photocode*/
public Integer getPhotocode(){
  return photocode;
}
/**Fija el valor de photocode
@param pPhotocode nuevo Valor de photocode*/
public void setPhotocode(Integer pPhotocode){
  photocode=pPhotocode;
}

/**Obtiene el valor de ingressusercode
@return valor de ingressusercode*/
public String getIngressusercode(){
  return ingressusercode;
}
/**Fija el valor de ingressusercode
@param pIngressusercode nuevo Valor de ingressusercode*/
public void setIngressusercode(String pIngressusercode){
  ingressusercode=pIngressusercode;
}

/**Obtiene el valor de modifyusercode
@return valor de modifyusercode*/
public String getModifyusercode(){
  return modifyusercode;
}
/**Fija el valor de modifyusercode
@param pModifyusercode nuevo Valor de modifyusercode*/
public void setModifyusercode(String pModifyusercode){
  modifyusercode=pModifyusercode;
}

/**Obtiene el valor de nacionality
@return valor de nacionality*/
public String getNacionality(){
  return nacionality;
}
/**Fija el valor de nacionality
@param pNacionality nuevo Valor de nacionality*/
public void setNacionality(String pNacionality){
  nacionality=pNacionality;
}

/**Obtiene el valor de notactivitycatalog
@return valor de notactivitycatalog*/
public String getNotactivitycatalog(){
  return notactivitycatalog;
}
/**Fija el valor de notactivitycatalog
@param pNotactivitycatalog nuevo Valor de notactivitycatalog*/
public void setNotactivitycatalog(String pNotactivitycatalog){
  notactivitycatalog=pNotactivitycatalog;
}

/**Obtiene el valor de notactivitycatalogcode
@return valor de notactivitycatalogcode*/
public String getNotactivitycatalogcode(){
  return notactivitycatalogcode;
}
/**Fija el valor de notactivitycatalogcode
@param pNotactivitycatalogcode nuevo Valor de notactivitycatalogcode*/
public void setNotactivitycatalogcode(String pNotactivitycatalogcode){
  notactivitycatalogcode=pNotactivitycatalogcode;
}

/**Obtiene el valor de codigosib
@return valor de codigosib*/
public Integer getCodigosib(){
  return codigosib;
}
/**Fija el valor de codigosib
@param pCodigosib nuevo Valor de codigosib*/
public void setCodigosib(Integer pCodigosib){
  codigosib=pCodigosib;
}

/**Obtiene el valor de birthparroquiacode
@return valor de birthparroquiacode*/
public String getBirthparroquiacode(){
  return birthparroquiacode;
}
/**Fija el valor de birthparroquiacode
@param pBirthparroquiacode nuevo Valor de birthparroquiacode*/
public void setBirthparroquiacode(String pBirthparroquiacode){
  birthparroquiacode=pBirthparroquiacode;
}

/**Obtiene el valor de height
@return valor de height*/
public BigDecimal getHeight(){
  return height;
}
/**Fija el valor de height
@param pHeight nuevo Valor de height*/
public void setHeight(BigDecimal pHeight){
  height=pHeight;
}

public boolean equals(Object rhs){
    if (rhs == null)return false;
    if (! (rhs instanceof TcustPeople))return false;
    TcustPeople that = (TcustPeople) rhs;
    if (this.getPk() == null || that.getPk() == null)
        return false;
    return (this.getPk().equals(that.getPk()));
}
/**Implementacion del metodo hashCode de la la entidad TcustPeople
@return el hashCode la instancia
*/
public int hashCode()    {
    if (this.hashValue == 0){
        int result = 17;
        if (this.getPk() == null){
            result = super.hashCode();
        }else{
            result = this.getPk().hashCode();
        }
        this.hashValue = result;
    }
    return this.hashValue;
}
/**Implementacion toString
*/
public String toString() {
	Field[]fs=this.getClass().getDeclaredFields();
	String data="";
	for(Field f:fs){
	 try{	
	 String name=f.getName();
   if(f.getType().getName().compareTo("java.util.Set")==0)continue;
	 if(name.compareTo("hashValue")==0||name.compareTo("serialVersionUID")==0)continue;
		data+=name+"="+f.get(this)+";";
	 }catch(Exception e){
		 continue;
	 }
		}
		if(data.compareTo("")==0){
		data=super.toString();
		}
	return data;
	}
/**Implementacion de la creacion de un bean en blanco TcustPeople
*/
public Object createInstance(){
 TcustPeople instance=new TcustPeople();	
 instance.setPk(new TcustPeopleKey());
 return instance;
}
/**Clona la entidad TcustPeople
@see com.fp.dto.hb.HibernateBean#cloneMe()
*/
public Object cloneMe() throws CloneNotSupportedException{
  TcustPeople p=(TcustPeople)this.clone();
  p.setPk((TcustPeopleKey)this.pk.cloneMe());
  return p;
}
public Object getId() {
  return this.pk;
}
}
