lunes, 27 de julio de 2015

Mapeo complejo JPA de tablas relacionadas - II

2.- Mapeo de la tabla Datosprofesionales

@Entity
@Table(name="datosprofesionales")
public class Datosprofesionales implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="id_datosprofesionales")
    private String idDatosprofesionales;
    // relacion con la tabla empleado
    @OneToOne(mappedBy="profs")
    private Empleado idEmpleado;
    // informacion sobre el trabajador
    // categoria profesional
    @Column(name="categoria",nullable=false)
    private String categoria;
    // puesto
    @Column(name="tipo",nullable=false)
    private String tipo;
    // informacion sobre el centro de trabajo
    @Column(name="centro",nullable=false)
    private String centro;
    @Column(name="direccion",nullable=false)
    private String direccion;
    @Column(name="localidad",nullable=false)
    private String localidad;

    public Datosprofesionales() {
    }
    public Datosprofesionales(String categoria, String tipo, String centro, String direccion, String localidad) {
            this.categoria = categoria;
            this.tipo = tipo;
            this.centro = centro;
            this.direccion = direccion;
            this.localidad = localidad;
    }
    // AÑADIR GETTERS AND SETTERS
}

3.- Mapeo de la tabla Nomina

@Entity
@Table(name="nominas")
public class Nomina implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="id_nominas")
    private long idNominas;
    @ManyToOne
    @JoinColumn(name="id_empleado",nullable=false)
    private Empleado idEmpleado;
    @ManyToOne
    @JoinColumn(name="id_datosprofesionales",nullable=false)
    private Datosprofesionales idDatosProfesionales;
    // periodo (mes) correspondiente a la nomina
    @Column(name="periodo",nullable=false)
    private int periodo;
    // conceptos salariales de remuneracion bruta
    @Column(name="sueldo",nullable=false)
    private float sueldo;
    @Column(name="complemento")
    private float complemento;
    // conceptos retencion fiscal
    @Column(name="porc_irpf",nullable=false)
    private float porcIrpf;
    @Column(name="ret_irpf")
    private float retIrpf;
    // conceptos retencion seg.soc.
    @Column(name="porc_ss",nullable=false)
    private float porcSs;
    @Column(name="ret_ss")
    private float retSs;
    // neto a pagar de la nomina
    @Column(name="neto",nullable=false)
    private float neto;

    public Nomina() {
    }
    public Nomina(Empleado idEmpleado, Datosprofesionales idDatosProfesionales, int periodo, float sueldo, float complemento, float porcIrpf, float retIrpf, float porcSs, float retSs, float neto) {
            this.idEmpleado = idEmpleado;
            this.idDatosProfesionales = idDatosProfesionales;
            this.periodo = periodo;
            this.sueldo = sueldo;
            this.complemento = complemento;
            this.porcIrpf = porcIrpf;
            this.retIrpf = retIrpf;
            this.porcSs = porcSs;
            this.retSs = retSs;
            this.neto = neto;
    }
    @Override
    public String toString() {
            return "Nomina de "+idEmpleado.getNombre()+" - Salario Bruto: "+(getSueldo()+getComplemento())+" - Retenciones: "+(getRetIrpf()+getRetSs())+" - Neto a cobrar: "+getNeto();
    }
            // AÑADIR GETTERS AND SETTERS

}
Continuará...

No hay comentarios:

Publicar un comentario