package com.mycompany.controllers;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.AjaxBehaviorEvent;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import com.mycompany.model.Movimiento;
import com.mycompany.model.Persona;
import com.mycompany.model.TipoMovimiento;
import com.mycompany.repository.MovimientoRepository;
import com.mycompany.repository.PersonaRepository;
import com.mycompany.service.FinancieroException;
import com.mycompany.service.RegistroMovimientos;
@Named
@ViewScoped
public class RegistroMovimientoBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Inject
private RegistroMovimientos registroMovimientos;
@Inject
private PersonaRepository personaRepository;
private Movimiento movimiento = new Movimiento();
private List<Persona> todasPersonas;
@Inject
private MovimientoRepository movimientoRepository;
public List<String> obtenerDescripciones(
String descripcion){
return this.movimientoRepository.
descripcionQueCuenten(descripcion);
}
public void prepararRegistro() {
this.todasPersonas = personaRepository.todas();
if(this.movimiento == null){
this.movimiento = new Movimiento();
}
}
public void guardar() {
FacesContext context = FacesContext.getCurrentInstance();
try {
registroMovimientos.guardar(this.movimiento);
this.movimiento = new Movimiento();
context.addMessage(null, new FacesMessage("Movimiento guardado "
+ "con exito."));
} catch (FinancieroException ex) {
FacesMessage mensaje = new FacesMessage(ex.getMessage());
mensaje.setSeverity(FacesMessage.SEVERITY_ERROR);
context.addMessage(null, mensaje);
}
}
public Movimiento getMovimiento() {
return movimiento;
}
public void setMovimiento(Movimiento movimiento) {
this.movimiento = movimiento;
}
public List<Persona> getTodasPersonas() {
return todasPersonas;
}
public void setTodasPersonas(List<Persona> todasPersonas) {
this.todasPersonas = todasPersonas;
}
public TipoMovimiento[] getTiposMovimientos() {
return TipoMovimiento.values();
}
public void fechaVencimientoModificada(AjaxBehaviorEvent event) {
if (this.movimiento.getFechaPago() == null) {
this.movimiento.setFechaPago(this.movimiento.getFechaVencimiento());
}
}
}