Named
En src/main/java creamos el paquete com.tutosoftware.micoven.viewEn el paquete com.tutosoftware.view creamos la clase LoginView
package com.tutosoftware.micoven.view;
import java.io.Serializable;
import com.tutosoftware.micoven.model.Usuario;
import com.tutosoftware.micoven.util.SessionUtils;
import jakarta.enterprise.context.SessionScoped;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.context.FacesContext;
import jakarta.inject.Named;
import jakarta.servlet.http.HttpSession;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.core.MediaType;
@Named
@SessionScoped
public class LoginView implements Serializable{
/**
*
*/
private static final long serialVersionUID = 5105898498765679410L;
/**
*
*/
private String email;
private String contrasena;
private String nombreUsuario;
private Usuario usuario;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getContrasena() {
return contrasena;
}
public void setContrasena(String contrasena) {
this.contrasena = contrasena;
}
public void setNombreUsuario(String nombreUsuario) {
this.nombreUsuario = nombreUsuario;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public String getNombreUsuario() {
return nombreUsuario;
}
public String loginAccess() {
String URL ="http://127.0.0.1:8000/usuario/";
Client client = ClientBuilder.newClient();
usuario=client.target(URL+email).request(MediaType.APPLICATION_JSON_TYPE).get(Usuario.class);
if(usuario == null) {
addMessage("Success", "Usuario o password incorrectos");
return "login";
}
if(usuario.getPassword().equals(contrasena)) {
HttpSession session = SessionUtils.getSession();
nombreUsuario=usuario.getNombre()+" "+usuario.getApellidopaterno()+" "+usuario.getApellidomaterno();
session.setAttribute("username",nombreUsuario);
return "admin";
}else {
addMessage("Success", "Usuario o password incorrectos");
return "login";
}
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public String logout() {
HttpSession session = SessionUtils.getSession();
session.invalidate();
return "login";
}
}
Creamos la clase UsuarioView
package com.tutosoftware.micoven.view;
import java.io.Serializable;
import java.util.List;
import org.primefaces.PrimeFaces;
import com.tutosoftware.micoven.model.Usuario;
import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.SessionScoped;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.context.FacesContext;
import jakarta.inject.Named;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.Response.Status;
import jakarta.ws.rs.core.GenericType;
@Named
@SessionScoped
public class UsuarioView implements Serializable{
/**
*
*/
private static final long serialVersionUID = -4322992641156262239L;
private List<Usuario> usuarios;
private Usuario newusuario;
public List<Usuario> getUsuarios() {
return usuarios;
}
public void setUsuarios(List<Usuario> usuarios) {
this.usuarios = usuarios;
}
public Usuario getNewusuario() {
return newusuario;
}
public void setNewusuario(Usuario newusuario) {
this.newusuario = newusuario;
}
@PostConstruct
public void listarUsuarios() {
String URL ="http://127.0.0.1:8000/usuario";
Client client = ClientBuilder.newClient();
usuarios=client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Usuario>>() {});
}
public void abrirNuevoUsuario() {
this.newusuario = new Usuario();
}
public void crearUsuario() {
String URL ="http://127.0.0.1:8000/usuario";
Client client = ClientBuilder.newClient();
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(newusuario,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.CREATED.getStatusCode()) {
addMessage("Confirmado","Usuario aceptado");
} else {
addMessage("Fallo","Usuario no registrado");
}
limpiarUsuario();
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('manageUsuarioDialog').hide();");
listarUsuarios();
}
public void actualizarUsuario() {
String URL ="http://127.0.0.1:8000/usuario";
Client client = ClientBuilder.newClient();
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.put(Entity.entity(newusuario,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.OK.getStatusCode()) {
addMessage("Usuario actualizado","Usuario aceptado");
} else {
addMessage("Fallo","Usuario no registrado");
}
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('manageUsuarioDialog2').hide();");
listarUsuarios();
}
public void eliminarUsuario() {
String URL ="http://127.0.0.1:8000/usuario/";
Client client = ClientBuilder.newClient();
client.target(URL+newusuario.getEmail()).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
listarUsuarios();
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public void limpiarUsuario() {
newusuario=null;
}
}
Creamos la clase ClienteView
package com.tutosoftware.micoven.view;
import java.io.Serializable;
import java.util.List;
import org.primefaces.PrimeFaces;
import com.tutosoftware.micoven.model.Cliente;
import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.RequestScoped;
import jakarta.enterprise.context.SessionScoped;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.context.FacesContext;
import jakarta.inject.Named;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.core.GenericType;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.Response.Status;
@Named
@SessionScoped
public class ClienteView implements Serializable{
/**
*
*/
private static final long serialVersionUID = -7348461013240183913L;
private List<Cliente> clientes;
private Cliente newcliente;
public List<Cliente> getClientes() {
return clientes;
}
public void setClientes(List<Cliente> clientes) {
this.clientes = clientes;
}
public Cliente getNewcliente() {
return newcliente;
}
public void setNewcliente(Cliente newcliente) {
this.newcliente = newcliente;
}
@PostConstruct
public void listarClientes() {
String URL ="http://127.0.0.1:8000/cliente";
Client client = ClientBuilder.newClient();
clientes = client.target(URL).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Cliente>>() {});
}
public void abrirNuevoCliente() {
this.newcliente = new Cliente();
}
public void crearCliente() {
String URL ="http://127.0.0.1:8000/cliente";
Client client = ClientBuilder.newClient();
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(newcliente,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.CREATED.getStatusCode()) {
addMessage("Confirmado","Cliente aceptado");
} else {
addMessage("Fallo","Cliente no registrado");
}
limpiarCliente();
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('manageClienteDialog').hide();");
listarClientes();
}
public void actualizarCliente() {
String URL ="http://127.0.0.1:8000/cliente";
Client client = ClientBuilder.newClient();
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.put(Entity.entity(newcliente,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.OK.getStatusCode()) {
addMessage("Cliente actualizado","Cliente aceptado");
} else {
addMessage("Fallo","Cliente no registrado");
}
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('manageClienteDialog2').hide();");
listarClientes();
}
public void eliminarCliente() {
String URL ="http://127.0.0.1:8000/cliente/";
Client client = ClientBuilder.newClient();
client.target(URL+newcliente.getWhatsapp()).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
listarClientes();
}
public String verCuenta() {
return "cuenta";
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public void limpiarCliente() {
newcliente=null;
}
}
Creamos la clase CuentaView
package com.tutosoftware.micoven.view;
import java.io.Serializable;
import java.util.List;
import org.primefaces.PrimeFaces;
import com.tutosoftware.micoven.model.Cliente;
import com.tutosoftware.micoven.model.Cuenta;
import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.SessionScoped;
import jakarta.faces.annotation.ManagedProperty;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.context.FacesContext;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.core.GenericType;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.Response.Status;
@Named
@SessionScoped
public class CuentaView implements Serializable{
/**
*
*/
private static final long serialVersionUID = -7389349921743244855L;
@Inject @ManagedProperty("#{cliente}")
private Cliente cliente;
private String whatsapp;
private List<Cuenta> cuentas;
private double sumaCargo;
private double sumaAbono;
private double montoTotal;
private Cuenta nuevaCuenta;
public String getWhatsapp() {
return whatsapp;
}
public void setWhatsapp(String whatsapp) {
this.whatsapp = whatsapp;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public List<Cuenta> getCuentas() {
return cuentas;
}
public void setCuentas(List<Cuenta> cuentas) {
this.cuentas = cuentas;
}
public double getSumaCargo() {
return sumaCargo;
}
public void setSumaCargo(double sumaCargo) {
this.sumaCargo = sumaCargo;
}
public double getSumaAbono() {
return sumaAbono;
}
public void setSumaAbono(double sumaAbono) {
this.sumaAbono = sumaAbono;
}
public double getMontoTotal() {
return montoTotal;
}
public void setMontoTotal(double montoTotal) {
this.montoTotal = montoTotal;
}
public Cuenta getNuevaCuenta() {
return nuevaCuenta;
}
public void setNuevaCuenta(Cuenta nuevaCuenta) {
this.nuevaCuenta = nuevaCuenta;
}
@PostConstruct
public void init() {
this.whatsapp = cliente.getWhatsapp();
listarCuentas();
}
public void listarCuentas() {
String URL ="http://127.0.0.1:8000/cuenta/";
Client client = ClientBuilder.newClient();
cuentas = client.target(URL+whatsapp).request(MediaType.APPLICATION_JSON_TYPE).get(new GenericType<List<Cuenta>>() {});
sumaCargo=cuentas.stream().filter(tipo -> tipo.getTipomovimiento().equals("Cargo"))
.mapToDouble(Cuenta::getMonto).sum();
sumaAbono=cuentas.stream().filter(tipo -> tipo.getTipomovimiento().equals("Abono"))
.mapToDouble(Cuenta::getMonto).sum();
//System.out.println(sumaCargo);
//System.out.println(sumaAbono);
montoTotal=sumaCargo-sumaAbono;
}
public void abrirNuevaCuenta() {
System.out.println(cliente.getWhatsapp());
this.nuevaCuenta = new Cuenta();
this.nuevaCuenta.setIdmovimiento(0);
this.nuevaCuenta.setWhatsapp(this.whatsapp);
}
public void crearMovimiento() {
String URL ="http://127.0.0.1:8000/cuenta";
Client client = ClientBuilder.newClient();
System.out.println(nuevaCuenta.getIdmovimiento());
System.out.println(nuevaCuenta.getWhatsapp());
System.out.println(nuevaCuenta.getConcepto());
System.out.println(nuevaCuenta.getFecha());
System.out.println(nuevaCuenta.getMonto());
System.out.println(nuevaCuenta.getTipomovimiento());
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(nuevaCuenta,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.CREATED.getStatusCode()) {
addMessage("Confirmado","Cuenta aceptada");
} else {
addMessage("Fallo","Cuenta no registrado");
}
limpiarCuenta();
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('manageCuentaDialog').hide();");
listarCuentas();
}
public void actualizarMovimento() {
String URL ="http://127.0.0.1:8000/cuenta";
Client client = ClientBuilder.newClient();
Response response =
client.target(URL)
.request(MediaType.APPLICATION_JSON_TYPE)
.put(Entity.entity(nuevaCuenta,MediaType.APPLICATION_JSON_TYPE),Response.class);
if (response.getStatus() == Status.OK.getStatusCode()) {
addMessage("Cuenta actualizado","Cliente aceptado");
} else {
addMessage("Fallo","Cuenta no actualizada");
}
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('manageCuentaDialog2').hide();");
listarCuentas();
}
public void eliminarMovimiento() {
String URL ="http://127.0.0.1:8000/cuenta/";
Client client = ClientBuilder.newClient();
client.target(URL+nuevaCuenta.getIdmovimiento()).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
listarCuentas();
}
public void limpiarMovimientos() {
String URL ="http://127.0.0.1:8000/cuentas/";
Client client = ClientBuilder.newClient();
client.target(URL+whatsapp).request(MediaType.APPLICATION_JSON_TYPE).delete().close();
listarCuentas();
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
public void limpiarCuenta() {
nuevaCuenta=null;
}
}