package com.comprainsumos.MPersistencia;
import com.comprainsumos.modelo.Insumo;
import com.comprainsumos.modelo.Proveedor;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
public class MProveedor {
public static ManejadorBaseDatos mbd=ManejadorBaseDatos.getInstancia();
public static Connection con;
public static Proveedor getProveedor(String nit) throws SQLException, Exception {
mbd.conectar();
con=mbd.getConexion();
if (nit == null) {
throw new SQLException("No hay elemento clave de la clase proveedor");
}
ResultSet rs = null;
PreparedStatement pst = null;
Proveedor proveedor = null;
try {
pst = con.prepareStatement("select * from proveedor where nit = ?");
pst.setString(1, nit.trim());
rs = pst.executeQuery();
while(rs.next()) {
proveedor = Proveedor.load(rs);
}
} finally {
if (rs != null) {
rs.close();
}
if (pst != null) {
pst.close();
}
return proveedor;
}
}
//Metodo que recibe como parametro un objeto de tipo Proveedor para ingresarlo a la base de datos
public static void crearProveedor(Proveedor proveedor) throws SQLException, Exception {
mbd.conectar();
con=mbd.getConexion();
if (con == null ) {
throw new SQLException(" no hay conexion ");
}
PreparedStatement pst = null;
try {
pst = con.prepareStatement("Insert Into proveedor values(?,?,?,?,?)");
pst.setInt(1,proveedor.getCodigo());
pst.setString(2,proveedor.getNit());
pst.setString(3,proveedor.getNombre());
pst.setString(4,proveedor.getDireccion());
pst.setString(5,proveedor.getEmail());
pst.executeUpdate();
}finally {
if (pst != null) {
pst.close();
}
}
}
public static void delProveedores(int codigo) throws SQLException, Exception {
mbd.conectar();
con=mbd.getConexion();
if (codigo == 0) {
throw new SQLException("No hay elemento clave de la clase insumos");
}
PreparedStatement pst = null;
try {
pst = con.prepareStatement("delete from proveedor where codigo = ?");
pst.setInt(1, codigo);
pst.executeUpdate();
} finally {
}
}
//Metodo que recibe como parametro un objeto de tipo Insumos para acualizar un registro existente
public static Proveedor modProveedores(Proveedor proveedor) throws SQLException, Exception {
mbd.conectar();
con=mbd.getConexion();
if (proveedor == null) {
throw new SQLException("No hay elemento clave de la clase Proveedor");
}
PreparedStatement pst = null;
try {
//Construimos la sentencia SQL para actializar un registro existente
pst = con.prepareStatement(" update proveedor set nit = "+"'"+proveedor.getNit()+"'"+
",nombre ="+"'"+proveedor.getNombre()+"'"+
",direccion ="+"'"+proveedor.getDireccion()+"'"+
",email ="+"'"+proveedor.getEmail()+"'"+" where codigo = ?");
pst.setInt(1,proveedor.getCodigo());
pst.executeUpdate();
} finally {
}
return proveedor;
}
public static List<Proveedor> listar() throws Exception {
mbd.conectar();
con = mbd.getConexion();
ResultSet rs = null;
PreparedStatement pst = null;
List<Proveedor> lista = new LinkedList();
try {
pst = con.prepareStatement("SELECT * FROM proveedor");
rs = pst.executeQuery();
while (rs.next()) {
lista.add(Proveedor.load(rs));
}
} finally {
if (rs != null) {
rs.close();
}
if (pst != null) {
pst.close();
}
}
return lista;
}
}