package com.fp.persistence.pviaticos.hra;

import java.io.Serializable;

import com.fp.dto.hb.HibernateBean;

/**
 * Clase de transporte de la informacion de un empleado de la sbs, la informacion la obtiene de la vista
 * HRA.VWDATOSEMPLEADOS.
 * 
 * @author Jorge Vaca.
 * @version 2.1
 */
public class Empleado extends com.fp.dto.AbstractDataTransport implements Serializable, HibernateBean, Cloneable {

    private static final long serialVersionUID = 1L;

    /**
     * Codigo de empleado.
     */
    private String codigo;

    /**
     * Nombre + apellido del empleado.
     */
    private String nombre;

    /**
     * Numero de cedula del empleado.
     */
    private String cedula;

    /**
     * Codigo de puesto del empleado.
     */
    private String cargo;

    /**
     * Nombre de puesto del empleado.
     */
    private String nombreCargo;

    /**
     * Entrega la dirección email asociada al empleado.
     */
    private String email;

    /**
     * Nombre del banco en el cual tiene una cuenta el empleado.
     */
    private String banco;

    /**
     * Tipo de cuenta bancaria del empleado.
     */
    private String tipoCuenta;

    /**
     * Numero de cuenta que mantiene el empleado de la sbs en el banco.
     */
    private String cuenta;

    /**
     * Codigo de area a la que pertenece el empleado.
     */
    private String codigoArea;

    /**
     * Nombre de area a la que pertenece el empleado.
     */
    private String nombreArea;

    /**
     * Codigo de empleado asociado al jefe del empleado.
     */
    private String codigoJefe;

    /**
     * Nombre del jefe del empleado.
     */
    private String nombreJefe;

    /**
     * Codigo del responsable de la unidad asociado al empleado.
     */
    private String codigoResponsableUnidad;

    /**
     * Nombre del responsable de la unidad a la que pertecene el empleado.
     */
    private String nombreResponsableUnidad;

    /**
     * Nombre de cargo del jefe.
     */
    private String nombreCargoJefe;

    /**
     * Nombre de cargo responsable de la unidad.
     */
    private String nombreCargoResponsableUnidad;

    /**
     * Codiogo de usuario web del servidor publico.
     */
    private String usuarioweb;

    /**
     * Codiogo de usuario web del servidor publico.
     */
    private String codigoLocalidad;
    /**
     * Estado del servidor
     */
    private String estado;
    /**
     * Atributo localidad
     */
    private String localidad;
    /**
     * Constructor Empleado
     * @param obj
     * @return
     * @throws Exception
     */
    public static Empleado cerar(Object[] obj) throws Exception {
        Empleado e = new Empleado();
        e.setCodigo((String) obj[0]);
        e.setNombre((String) obj[1]);
        e.setCedula((String) obj[2]);
        e.setCargo((String) obj[3]);
        e.setNombreCargo((String) obj[4]);
        e.setEmail((String) obj[5]);
        e.setBanco((String) obj[6]);
        e.setTipoCuenta((String) obj[7]);
        e.setCuenta((String) obj[8]);
        e.setCodigoArea((String) obj[9]);
        e.setNombreArea((String) obj[10]);
        e.setCodigoJefe((String) obj[11]);
        e.setCodigoResponsableUnidad((String) obj[12]);
        e.setNombreJefe((String) obj[13]);
        e.setNombreResponsableUnidad((String) obj[14]);
        e.setNombreCargoJefe((String) obj[15]);
        e.setNombreCargoResponsableUnidad((String) obj[16]);
        e.setUsuarioweb((String) obj[17]);
        e.setCodigoLocalidad((String) obj[18]);
        e.setEstado((String) obj[19]);
        e.setLocalidad((String) obj[20]);
        return e;
    }

    /**
     * Entrega el valor de: codigo
     * 
     * @return String
     */
    public String getCodigo() {
        return codigo;
    }

    /**
     * Fija el valor de: codigo
     * 
     * @param codigo Valor del parametro a fijar en el atributo
     */
    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    /**
     * Entrega el valor de: nombre
     * 
     * @return String
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * Fija el valor de: nombre
     * 
     * @param nombre Valor del parametro a fijar en el atributo
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * Entrega el valor de: cedula
     * 
     * @return String
     */
    public String getCedula() {
        return cedula;
    }

    /**
     * Fija el valor de: cedula
     * 
     * @param cedula Valor del parametro a fijar en el atributo
     */
    public void setCedula(String cedula) {
        this.cedula = cedula;
    }

    /**
     * Entrega el valor de: cargo
     * 
     * @return String
     */
    public String getCargo() {
        return cargo;
    }

    /**
     * Fija el valor de: cargo
     * 
     * @param cargo Valor del parametro a fijar en el atributo
     */
    public void setCargo(String cargo) {
        this.cargo = cargo;
    }

    /**
     * Entrega el valor de: nombreCargo
     * 
     * @return String
     */
    public String getNombreCargo() {
        return nombreCargo;
    }

    /**
     * Fija el valor de: nombreCargo
     * 
     * @param nombreCargo Valor del parametro a fijar en el atributo
     */
    public void setNombreCargo(String nombreCargo) {
        this.nombreCargo = nombreCargo;
    }

    /**
     * Entrega el valor de: email
     * 
     * @return String
     */
    public String getEmail() {
        return email;
    }

    /**
     * Fija el valor de: email
     * 
     * @param email Valor del parametro a fijar en el atributo
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * Entrega el valor de: banco
     * 
     * @return String
     */
    public String getBanco() {
        return banco;
    }

    /**
     * Fija el valor de: banco
     * 
     * @param banco Valor del parametro a fijar en el atributo
     */
    public void setBanco(String banco) {
        this.banco = banco;
    }

    /**
     * Entrega el valor de: tipoCuenta
     * 
     * @return String
     */
    public String getTipoCuenta() {
        return tipoCuenta;
    }

    /**
     * Fija el valor de: tipoCuenta
     * 
     * @param tipoCuenta Valor del parametro a fijar en el atributo
     */
    public void setTipoCuenta(String tipoCuenta) {
        this.tipoCuenta = tipoCuenta;
    }

    /**
     * Entrega el valor de: cuenta
     * 
     * @return String
     */
    public String getCuenta() {
        return cuenta;
    }

    /**
     * Fija el valor de: cuenta
     * 
     * @param cuenta Valor del parametro a fijar en el atributo
     */
    public void setCuenta(String cuenta) {
        this.cuenta = cuenta;
    }

    /**
     * Entrega el valor de: codigoArea
     * 
     * @return String
     */
    public String getCodigoArea() {
        return codigoArea;
    }

    /**
     * Fija el valor de: codigoArea
     * 
     * @param codigoArea Valor del parametro a fijar en el atributo
     */
    public void setCodigoArea(String codigoArea) {
        this.codigoArea = codigoArea;
    }

    /**
     * Entrega el valor de: nombreArea
     * 
     * @return String
     */
    public String getNombreArea() {
        return nombreArea;
    }

    /**
     * Fija el valor de: nombreArea
     * 
     * @param nombreArea Valor del parametro a fijar en el atributo
     */
    public void setNombreArea(String nombreArea) {
        this.nombreArea = nombreArea;
    }

    /**
     * Entrega el valor de: codigoJefe
     * 
     * @return String
     */
    public String getCodigoJefe() {
        return codigoJefe;
    }

    /**
     * Fija el valor de: codigoJefe
     * 
     * @param codigoJefe Valor del parametro a fijar en el atributo
     */
    public void setCodigoJefe(String codigoJefe) {
        this.codigoJefe = codigoJefe;
    }

    /**
     * Entrega el valor de: nombreJefe
     * 
     * @return String
     */
    public String getNombreJefe() {
        return nombreJefe;
    }

    /**
     * Fija el valor de: nombreJefe
     * 
     * @param nombreJefe Valor del parametro a fijar en el atributo
     */
    public void setNombreJefe(String nombreJefe) {
        this.nombreJefe = nombreJefe;
    }

    /**
     * Entrega el valor de: codigoResponsableUnidad
     * 
     * @return String
     */
    public String getCodigoResponsableUnidad() {
        return codigoResponsableUnidad;
    }

    /**
     * Fija el valor de: codigoResponsableUnidad
     * 
     * @param codigoResponsableUnidad Valor del parametro a fijar en el atributo
     */
    public void setCodigoResponsableUnidad(String codigoResponsableUnidad) {
        this.codigoResponsableUnidad = codigoResponsableUnidad;
    }

    /**
     * Entrega el valor de: nombreResponsableUnidad
     * 
     * @return String
     */
    public String getNombreResponsableUnidad() {
        return nombreResponsableUnidad;
    }

    /**
     * Fija el valor de: nombreResponsableUnidad
     * 
     * @param nombreResponsableUnidad Valor del parametro a fijar en el atributo
     */
    public void setNombreResponsableUnidad(String nombreResponsableUnidad) {
        this.nombreResponsableUnidad = nombreResponsableUnidad;
    }

    /**
     * Entrega el valor de: nombreCargoJefe
     * 
     * @return String
     */
    public String getNombreCargoJefe() {
        return nombreCargoJefe;
    }

    /**
     * Fija el valor de: nombreCargoJefe
     * 
     * @param nombreCargoJefe Valor del parametro a fijar en el atributo
     */
    public void setNombreCargoJefe(String nombreCargoJefe) {
        this.nombreCargoJefe = nombreCargoJefe;
    }

    /**
     * Entrega el valor de: nombreCargoResponsableUnidad
     * 
     * @return String
     */
    public String getNombreCargoResponsableUnidad() {
        return nombreCargoResponsableUnidad;
    }

    /**
     * Fija el valor de: nombreCargoResponsableUnidad
     * 
     * @param nombreCargoResponsableUnidad Valor del parametro a fijar en el atributo
     */
    public void setNombreCargoResponsableUnidad(String nombreCargoResponsableUnidad) {
        this.nombreCargoResponsableUnidad = nombreCargoResponsableUnidad;
    }

    /**
     * Entrega el valor de: usuarioweb
     * 
     * @return String
     */
    public String getUsuarioweb() {
        return usuarioweb;
    }

    /**
     * Fija el valor de: usuarioweb
     * 
     * @param usuarioweb
     */
    public void setUsuarioweb(String usuarioweb) {
        this.usuarioweb = usuarioweb;
    }

    /**
     * Entrega el valor de: codigoLocalidad
     * 
     * @return String
     */
    public String getCodigoLocalidad() {
        return codigoLocalidad;
    }

    /**
     * Fija el valor de: codigoLocalidad
     * 
     * @param codigoLocalidad
     */
    public void setCodigoLocalidad(String codigoLocalidad) {
        this.codigoLocalidad = codigoLocalidad;
    }

    /**
     * Crea una instancia de Empleado.
     */
    @Override
    public Object createInstance() throws Exception {
        Empleado instance = new Empleado();
        return instance;
    }

    /**
     * Clona y entrega una instancia de empleado.
     */
    @Override
    public Object cloneMe() throws CloneNotSupportedException {
        Empleado p = (Empleado) this.clone();
        return p;
    }
    /**
     * Entrega el valor del estado del empleado
     * @return estado
     */
	public String getEstado() {
		return estado;
	}
	/**
     * Fija el valor del estado del empleado
     * @param estado
     */
	public void setEstado(String estado) {
		this.estado = estado;
	}
	/**
	 * Entrega el nombre localidad
	 * @return localidad
	 */
	public String getLocalidad() {
		return localidad;
	}
	/**
	 * Fija el nombre localidad
	 * @fija localidad
	 */
	public void setLocalidad(String localidad) {
		this.localidad = localidad;
	}
	
}
