1. DatosInformativos delComponenteEducativo:
CICLO TITULACIÓN CREDITOS
UTPL-ECTS
4 IngenieríaSistemas
Informáticosy
Computación.
4
Datosinformativos:
Autor: Jackson Masache, Silvana Cuenca, Roberth Loaiza
Docente: Ing.Danilo Jaramillo
Fecha: 30-05-2013
LOJA–ECUADOR
PROYECTO DE FIN DE CICLO
2. TÍTULO: APLICACIÓN PARA UNA MICROEMPRESA DE CONFECCIÓN DE ROPA
1.- Enunciado
Se requiere desarrollar una aplicación que permitirá a los empleados registrar la
entrada y salida de sus horas laborables.
Para ello deben de utilizar su número de cedula; que previamente tiene que estar
almacenado en la aplicación con todos sus datos personales, obteniendo un registro y
actualización de los datos de empleados con sus respectivas cargos.
Permitir al administrador (gerente) y al personal consultar los horarios de trabajo con
el fin de poder determinar los atrasos, inasistencias y las horas laboradas;presentando
así un reporte.
* Los sueldos serán obtenidos de la sumatoria total de horas, por el valor que se deba
asignar, dependiendo del gerente como también, mas bonos que el gerente desee
darle si hay alguno.
*Los descuentos se los asignara si ocurre un daño por el empleado en su area de
trabajo.
*Los sueldos sólo pueden ser calculados mensualmente.
* Las horas de trabajo, atrasos, inasistencias pueden ser visualizadas por los
empleados al final del mes, con los descuentos, bonos y la cantidad total de sueldo a
recibir para que no exista problemas.
Usuarios:
- Empleados.
- Administrador.
Necesidades:
- Registrar las horas laborales del personal de empleados.
- Registrar las entradas y salidas del personal de empleados.
- Almacenar los datos personales de cada empleado con sus cargos de trabajo y
horarios.
- Permitir al gerente consultar y actualizar los horarios de los empleados.
- Permitir al gerente cambiar los datos de los empleados.
- Presentar reportes de las horas laboradas de los empleados.
- Calcular los sueldos del personal de empleados.
- Permitir al empleado visualizar al fin de mes las inasistencias, horas laboradas,
atrasos, bonos
Requerimientos:
R1: Registro de empleados.
R2: Actualización del registro de los empleados.
R3: Registro de hora de entrada y hora de salida.
R4: Asignar las horas de trabajo de los empleados. (quemar la hora de inicio de
trabajo)
3. R5: Consulta de horarios de los empleados.
R6: Permitir al gerente calcular sueldos.
Actores:
Actores Descripción
Empleados Personal de la empresa que interactuara con el sistema con un
registro de sus horas laboradas.
Administrador Controla el sistema teniendo mejor organización de los horarios de
trabajo del personal.
Caso de Uso:
C1: Registrode empleados.
C2: Actualización de registro de empleados
C3: Registrode horarios.
C4: Consulta de horas laboradas.
C5: Calculo de los sueldos.
Especificación Casos de Uso:
Nombre: Registro de empleados R1
Descripción: Registrar los datos personales del personal, el cargo.
Autor: Loaiza Roberth, Cuenca Silvana, Jackson Masache
Fecha: 30/05/2013
Actores: Administrador
Precondición: Que sea nuevo en el sistema
Poscondición: Registrado en el sistema
Flujo Normal
Actor Sistema
1. Selecciona la opción Administrad.
2. Presenta la pantalla de ingreso.
3. Ingresar datos (Usuario -
Password).
4. Verifica datos
5. Presenta la pantalla Administrador.
6. Selecciona el botón de Empleado
7. Presenta formulario de registro
8. Ingresa los datos del Empleado
9. Valida y almacena datos
Flujo Alterno
3.1 No puede dejar campo vacío, el sistema mostrara mensaje de error.
8.1 No puede dejar campo vacío, el sistema mostrara mensaje de error, botón guardar
Escenarios
4. Nombre: Actualización de registro de empleados R2
Descripción: Modificar los datos personales del personal, el cargo.
Autor: Loaiza Roberth, Cuenca Silvana, Jackson Masache
Fecha: 30/05/2013
Actores: Administrador
Precondición: Registrado en el sistema
Poscondición: Actualización de datos
Flujo Normal
Actor Sistema
1. Selecciona la opción
Administrad.
2. Presenta la pantalla de ingreso.
3. Ingresar datos (Usuario –
Contraseña).
4. Verifica datos
5. Presenta la pantalla Administrador.
6. Selecciona el botón de
Actualizar
7. Presenta formulario de registro
8. Ingresa numero de cedula
9. Carga la habilitaciónde los datos en los campos
10. Edita los campo
11. Presenta mensaje de confirmación
Flujo Alterno
3.1 No puede dejar campo vacío, el sistema mostrara mensaje de error.
8.1 No puede dejar campo vacío, el sistema mostrara mensaje de error, clic en el botón editar.
9.1 Habilita los campos para poder realizar la actualización.
11.1 Datos actualizados como también almacenados.
Escenarios
Nombre: Registro de horarios R3
Descripción: Determinación de horas laboradas
Autor: Loaiza Roberth, Cuenca Silvana, Jackson Masache
Fecha: 30/05/2013
Actores: Empleado
Precondición: Estar registrado en el sistema.
Poscondición: Registrar las horas de horario de trabajo.
Flujo Normal
Actor Sistema
1. Selección botón Inicio
2. Ingresar cedula.
3. Carga los datos de cada campo
4. Presenta mensaje de confirmación
5. Flujo Alterno
2.1 Presentar formulario de registro de ingreso al trabajo, como también el mensaje de error si los
datos son erróneos, presiona la tecla ‘enter’ para guardar.
3.1 Datos del empleado, con la fecha y las horas (entrada y salida)
4.1 Alerta de datos ingresados correctamente, si se da el caso de atraso podrá elegir dentro de una
lista de observaciones.
Escenarios
Nombre: Consulta de horas laboradas R5
Descripción: Registrar los datos personales del personal, el cargo.
Autor: Loaiza Roberth, Cuenca Silvana, Jackson Masache
Fecha: 30/05/2013
Actores: Administrador / Empleado
Precondición: Que este registrado en el sistema
Poscondición: Visualización de los registros de horas laboradas
Flujo Normal
Actor Sistema
1. Selecciona la opción
Consulta.
2. Presenta la pantalla de consulta.
3. Ingresar (Cedula).
4. Verifica dato.
5. Presiona la opción consulta
6. Carga los datos en la tabla
Flujo Alterno
3.1 No puede dejar campo vacío, el sistema mostrara mensaje de error.
5.1 Muestra horas, atrasos, inasistencias.
Escenarios
Nombre: Calculo de los sueldos R6
Descripción: Sueldo de los empleados con el total de horas acumuladas.
Autor: Loaiza Roberth, Cuenca Silvana, Jackson Masache
Fecha: 30/05/2013
Actores: Administrador
Precondición: Visualización de los registros de horas laboradas
Poscondición: Total del sueldo a pagar.
Flujo Normal
Actor Sistema
1. Selecciona la opción
Administrad.
2. Presenta la pantalla de ingreso.
3. Ingresar datos (Usuario -
Password).
6. 4. Verifica datos
5. Presenta la pantalla Administrador.
6. Selecciona el botón Sueldo
7. Presenta la tabla de registro.
8. Clic en el botón Mostrar
9. Carga los valores en la tabla.
10. Ingresa cedula
11. Muestra el total de horas
12. Ingresa el valor por hora
13. Clic en calcular
14. Muestra valor del sueldo.
15. Ingresa valor si hay
descuento / bono
16. Muestra valor del sueldo neto.
Flujo Alterno
3.1 No puede dejar campo vacío, el sistema mostrara mensaje de error.
7.1 Muestra el total de horas, con su cedula y nombre del empleado
10.1 Presentación de mensaje de error si los datos son erróneos.
13.1 Calcula el numero total de horas por el valor de cada una.
16.1 Calculo del sueldo neto con los bonos y descuentos asignados.
Escenarios
Diagrama de actividades 1
17. this.ocultarBarraTitulo();
this.jempleado.setVisible(false);
this.jDatos.setVisible(false);
this.jConsulta1.setVisible(false);
this.jSueldo.setVisible(false);
}
void mostrardatos(String valor) {
// Metodo para consultar en la BD
DefaultTableModel modelo = new DefaultTableModel();
modelo.addColumn("Cedula");
modelo.addColumn("Nombre");
modelo.addColumn("Apellido");
modelo.addColumn("Direccion");
modelo.addColumn("Telefono");
modelo.addColumn("Cargo");
modelo.addColumn("Salario");
modelo.addColumn("Entrada");
TEditar.setModel(modelo);
String sql = "";
if (valor.equals("")) {
sql = "SELECT * FROM empleados";
} else {
sql = "SELECT * FROM empleados WHERE cedula='" + valor + "'";
}
String[] datos = new String[8];
try {
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
datos[0] = rs.getString(1);
datos[1] = rs.getString(2);
18. datos[2] = rs.getString(3);
datos[3] = rs.getString(4);
datos[4] = rs.getString(5);
datos[5] = rs.getString(6);
datos[6] = rs.getString(7);
datos[7] = rs.getString(8);
modelo.addRow(datos);
}
TEditar.setModel(modelo);
} catch (SQLException ex) {
Logger.getLogger(PantallaAdministrador.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void ocultarBarraTitulo() {
Barra = ((javax.swing.plaf.basic.BasicInternalFrameUI) getUI()).getNorthPane();
dimBarra = Barra.getPreferredSize();
Barra.setSize(0, 0);
Barra.setPreferredSize(new Dimension(0, 0));
repaint();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane3 = new javax.swing.JScrollPane();
jList1 = new javax.swing.JList();
jPopupMenu1 = new javax.swing.JPopupMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenuItem2 = new javax.swing.JMenuItem();
empleado = new javax.swing.JButton();
actDatos = new javax.swing.JButton();
19. consulta = new javax.swing.JButton();
sueldo = new javax.swing.JButton();
escritorioAdmin = new javax.swing.JDesktopPane();
jempleado = new javax.swing.JInternalFrame();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jbguardar = new javax.swing.JButton();
jtnombres = new javax.swing.JTextField();
jtapellido = new javax.swing.JTextField();
jtdireccion = new javax.swing.JTextField();
jttelefono = new javax.swing.JTextField();
jtcargo = new javax.swing.JTextField();
jLabel21 = new javax.swing.JLabel();
jLabel25 = new javax.swing.JLabel();
jtsalario = new javax.swing.JTextField();
jtcedula = new javax.swing.JTextField();
jLabel28 = new javax.swing.JLabel();
jtHora = new javax.swing.JComboBox();
jlencabezado_empleado = new javax.swing.JLabel();
jDatos = new javax.swing.JInternalFrame();
jbguardar_ed = new javax.swing.JButton();
jScrollPane5 = new javax.swing.JScrollPane();
TEditar = new javax.swing.JTable();
Mostrar = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jLabel27 = new javax.swing.JLabel();
jtsalario1 = new javax.swing.JTextField();
jLabel23 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
20. jt_cargo_ed = new javax.swing.JTextField();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jtdire = new javax.swing.JTextField();
jttele = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
jt_cedula = new javax.swing.JTextField();
jtnombre_ed = new javax.swing.JTextField();
jtapellidos = new javax.swing.JTextField();
jLabel10 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
Buscar = new javax.swing.JButton();
jtHora1 = new javax.swing.JComboBox();
jSueldo = new javax.swing.JInternalFrame();
jLabel15 = new javax.swing.JLabel();
bMostrar = new javax.swing.JButton();
jLabel16 = new javax.swing.JLabel();
jtcedula_salario = new javax.swing.JTextField();
bcalcular_salario = new javax.swing.JButton();
jLabel22 = new javax.swing.JLabel();
jtdescuento_salario = new javax.swing.JTextField();
jtbono_salario = new javax.swing.JTextField();
jLabel17 = new javax.swing.JLabel();
jLabel18 = new javax.swing.JLabel();
jlsalario_salario = new javax.swing.JLabel();
jLabel20 = new javax.swing.JLabel();
bguardar_salario = new javax.swing.JButton();
jlhoras_salario = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jConsulta1 = new javax.swing.JInternalFrame();
jLabel34 = new javax.swing.JLabel();
jtcedula_cons = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
21. thorarios_cons = new javax.swing.JTable();
bconsultar_cons = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
jLabel19 = new javax.swing.JLabel();
jLabel24 = new javax.swing.JLabel();
jLabel26 = new javax.swing.JLabel();
jlnombre = new javax.swing.JLabel();
jlapellido = new javax.swing.JLabel();
jlcargo = new javax.swing.JLabel();
jList1.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
public int getSize() { return strings.length; }
public Object getElementAt(int i) { return strings[i]; }
});
jScrollPane3.setViewportView(jList1);
jMenuItem1.setText("Modificar");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
jPopupMenu1.add(jMenuItem1);
jMenuItem2.setText("Eliminar");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
jPopupMenu1.add(jMenuItem2);
48. }
public long suma_horas(String Hora) {
String hora_men, min_men, seg_men;
//extraemos en variables separadas el tiempo menor
hora_men = Hora.substring(0, 2);
min_men = Hora.substring(3, 5);
seg_men = Hora.substring(6, 8);
Date fecha_may = new Date(2013, 9, 7, 0, 0, 0);
Date fecha_men = new Date(2013, 9, 7, Integer.parseInt(hora_men),
Integer.parseInt(min_men), Integer.parseInt(seg_men));
long seg = fecha_men.getTime() - fecha_may.getTime();
return seg / 1000;
}
public String Formatohoras(long seg) {
int min = 0, hras = 0;
while (seg > 60) {
seg -= 60;
min++;
}
while (min > 60) {
min -= 60;
hras++;
}
String tfhras = hras + ":" + min + ":" + seg;
return tfhras;
}
private void bMostrarActionPerformed(java.awt.event.ActionEvent evt) {
49. // TODO add your handling code here:
String cedula = jtcedula_salario.getText();
Statement sentencia;
String cons4 = "select * from horarios where cedula=" + cedula; // Manipulacion de tablas
String hora_suma = "";
long suma_hora = 0;
String horatotal_sumada = "";
long aux = 0;
try {
ConexionDB conx = new ConexionDB(); //Creamos un objeto de la clase Coneccion DB
Connection con = conx.obtenerConexion(); // Creamos un objeto de obtener coneccion
de la la libreria Connection
sentencia = con.createStatement();
ResultSet consulta4 = sentencia.executeQuery(cons4);
while (consulta4.next()) { //Asigancion de variables segun la consulta
hora_suma = (consulta4.getString("hora_sumada"));
aux = suma_horas(hora_suma);// variable segundos
suma_hora = suma_hora + aux;// acumulador del tiempo
}
long horaSal = aux / 60 / 60;
horatotal_sumada = Formatohoras(suma_hora);
String horaPresentar = "" + horaSal;
jlhoras_salario.setText(horaPresentar);
} catch (Exception ex) {
System.out.print(ex.getMessage());
}
50. }
private void bcalcular_salarioActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String cedula = jtcedula_salario.getText();
String salario_hora = null;
try {
ConexionDB coneccio = new ConexionDB(); //Creamos un objeto de la clase Coneccion
DB
Connection con = coneccio.obtenerConexion();
// conexion_basedatos coneccio = new conexion_basedatos(); //LLamada al metodo de
conexion
String cons = "select * from empleados where cedula='" + cedula + "'"; // Manipulacion
de tablas
ResultSet consulta = coneccio.consulta(cons);
consulta.next();
salario_hora = consulta.getString(7);
} catch (Exception xw) {
}
double salario;
String horas = jlhoras_salario.getText();
String descuento = jtdescuento_salario.getText();
String bono = jtbono_salario.getText();
int hora = Integer.parseInt(horas);
double desc = Double.parseDouble(descuento);
double bon = Double.parseDouble(bono);
double sa_hora = Double.parseDouble(salario_hora);
salario = (hora * sa_hora) + bon - desc;
jlsalario_salario.setText(Double.toString(salario));
}
private void BuscarActionPerformed(java.awt.event.ActionEvent evt) {
51. // TODO add your handling code here:
mostrardatos(jt_cedula.getText());
}
private void jtdescuento_salarioActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jbguardarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String cedula, nombre, apellido, direccion, telefono, cargo, salario, horario;
boolean flag = true;
if (flag == validarCed(flag)) {
if (jtcedula.getText().equals("")) {
javax.swing.JOptionPane.showMessageDialog(this, "Ingrese el numero de cedula",
"Information", JOptionPane.INFORMATION_MESSAGE);
} else if (jtnombres.getText().equals("")) {
javax.swing.JOptionPane.showMessageDialog(this, "Ingrese el nombre del
emplead@", "Information", JOptionPane.INFORMATION_MESSAGE);
} else if (jtapellido.getText().equals("")) {
javax.swing.JOptionPane.showMessageDialog(this, "Ingrese el apellido del
emplead@", "Information", JOptionPane.INFORMATION_MESSAGE);
} else if (jtdireccion.getText().equals("")) {
javax.swing.JOptionPane.showMessageDialog(this, "Ingrese la direccion",
"Information", JOptionPane.INFORMATION_MESSAGE);
} else if (jttelefono.getText().equals("")) {
javax.swing.JOptionPane.showMessageDialog(this, "Ingrese el numero de telefono",
"Information", JOptionPane.INFORMATION_MESSAGE);
} else if (jtcargo.getText().equals("")) {
javax.swing.JOptionPane.showMessageDialog(this, "Ingrese el cargo que ocupa en
la empresa", "Information", JOptionPane.INFORMATION_MESSAGE);
} else if (jtsalario.getText().equals("")) {
javax.swing.JOptionPane.showMessageDialog(this, "Ingrese el salario del
emplead@", "Information", JOptionPane.INFORMATION_MESSAGE);
} else {
cedula = this.jtcedula.getText();
52. nombre = this.jtnombres.getText();
apellido = this.jtapellido.getText();
direccion = this.jtdireccion.getText();
telefono = this.jttelefono.getText();
cargo = this.jtcargo.getText();
salario = this.jtsalario.getText();
horario = this.jtHora.getSelectedItem().toString();
try {
ConexionDB coneccion = new ConexionDB(); //Creamos un objeto de la clase
Coneccion DB
Connection con = coneccion.obtenerConexion();
// conexion_basedatos coneccion = new conexion_basedatos(); //LLamada al
metodo de conexion
String sInsert = "insert into empleados values(?,?,?,?,?,?,?,?)"; // Manipulacion de
tablas
PreparedStatement datos = con.prepareStatement(sInsert);
datos.setString(1, cedula);
datos.setString(2, nombre);
datos.setString(3, apellido);
datos.setString(4, direccion);
datos.setString(5, telefono);
datos.setString(6, cargo);
datos.setString(7, salario);
datos.setString(8, horario);
datos.executeUpdate();
coneccion.cerrarConexion();
} catch (Exception ex) {
System.out.print(ex.getMessage());
// JOptionPane.showMessageDialog(this, ex.getMessage());
}
54. jt_cargo_ed.setText("");
jtdire.setText("");
jtnombre_ed.setText("");
jtsalario1.setText("");
jttele.setText("");
} catch (Exception e) {
System.out.print(e.getMessage());
}
}
private void jtcedulaKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
int k = (int) evt.getKeyChar(); //coje caracter ingresado
if (((k < '0') || (k > '9')) && (k != KeyEvent.VK_BACK_SPACE)) {
evt.consume();
}
if (jtcedula.getText().length() == 10) {
evt.consume();
}
}
private boolean validarCed(boolean flag) { //no retorna valores
String Cedula = jtcedula.getText();
int vector[] = new int[Cedula.length()];
int impar = 0, par = 0, aux = 0;
if (vector.length == 10) {
for (int i = 0; i < vector.length; i++) {
vector[i] = Integer.parseInt(Cedula.substring(i, i + 1));
}
for (int i = 0; i < 9; i++) {
if (i % 2 == 0) {
aux = vector[i] * 2; //par
55. if (aux > 9) {
aux = aux - 9; //control de par>9
}
par = par + aux;
} else {
impar = impar + vector[i];
}
}
aux = par + impar;
while (aux % 10 != 0) {
aux = aux + 1;
}
aux = aux - (par + impar);
if (aux == vector[9]) {
flag = true;
return flag;
} else {
flag = false;
return flag;
}
} else {
flag = false;
return flag;
}
}
private void jtnombresKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
int k = (int) evt.getKeyChar();
if (k != 32 && k != 8 && k < 65 || k > 90 && k < 97 || k > 122) {
evt.setKeyChar((char) KeyEvent.VK_CLEAR);
56. JOptionPane.showMessageDialog(null, "Solo ingrese letras", "Sistema",
JOptionPane.ERROR_MESSAGE);
}
}
private void jtapellidoKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
int k = (int) evt.getKeyChar();
if (k != 32 && k != 8 && k < 65 || k > 90 && k < 97 || k > 122) {
evt.setKeyChar((char) KeyEvent.VK_CLEAR);
JOptionPane.showMessageDialog(null, "Solo ingrese letras", "Sistema",
JOptionPane.ERROR_MESSAGE);
}
}
private void jtdireccionKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
int k = (int) evt.getKeyChar();
if (k != 32 && k != 8 && k < 65 || k > 90 && k < 97 || k > 122) {
evt.setKeyChar((char) KeyEvent.VK_CLEAR);
JOptionPane.showMessageDialog(null, "Solo ingrese letras", "Sistema",
JOptionPane.ERROR_MESSAGE);
}
}
private void jttelefonoKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
int k = (int) evt.getKeyChar(); //coje caracter ingresado
if (((k < '0') || (k > '9')) && (k != KeyEvent.VK_BACK_SPACE)) {
evt.consume();
}
if (jttelefono.getText().length() == 9) {
evt.consume();
}
57. }
private void jtcargoKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
int k = (int) evt.getKeyChar();
if (k != 32 && k != 8 && k < 65 || k > 90 && k < 97 || k > 122) {
evt.setKeyChar((char) KeyEvent.VK_CLEAR);
JOptionPane.showMessageDialog(null, "Solo ingrese letras", "Sistema",
JOptionPane.ERROR_MESSAGE);
}
}
private void consultaActionPerformed(java.awt.event.ActionEvent evt) {
this.escritorioAdmin.removeAll();
this.escritorioAdmin.updateUI();
this.escritorioAdmin.add(jConsulta1);
jConsulta1.show();
}
private void MostrarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
mostrardatos("");
}
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int fila = TEditar.getSelectedRow();
if (fila >= 0) {
jt_cedula.setText(TEditar.getValueAt(fila, 0).toString());
jtnombre_ed.setText(TEditar.getValueAt(fila, 1).toString());
jtapellidos.setText(TEditar.getValueAt(fila, 2).toString());
jtdire.setText(TEditar.getValueAt(fila, 3).toString());
jttele.setText(TEditar.getValueAt(fila, 4).toString());
58. jt_cargo_ed.setText(TEditar.getValueAt(fila, 5).toString());
jtsalario1.setText(TEditar.getValueAt(fila, 6).toString());
jtHora1.setSelectedItem(TEditar.getValueAt(fila, 7).toString());
} else {
JOptionPane.showMessageDialog(null, "no seleciono fila");
}
}
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int fila = TEditar.getSelectedRow();
String valor = "";
valor = TEditar.getValueAt(fila, 0).toString();
int exit = JOptionPane.showConfirmDialog(this, "<html><font face="Consolas"><i>Esta
seguro que desea <u><b>eliminar</b></u> ?<i/></font>", "Sistema",
JOptionPane.YES_NO_OPTION);
if (exit == JOptionPane.YES_OPTION) {
try {
PreparedStatement pst = cn.prepareStatement("DELETE FROM empleados WHERE
cedula='" + valor + "'");
pst.executeUpdate();
mostrardatos("");
} catch (Exception e) {
}
// JOptionPane.showConfirmDialog(TEditar, exit, null, WIDTH);
// JOptionPane.showConfirmDialog(panelNice1, a, null, WIDTH);
}
}
private void jtsalarioKeyTyped(java.awt.event.KeyEvent evt) {
59. // TODO add your handling code here:
int k = (int) evt.getKeyChar(); //coje caracter ingresado
if (((k < '0') || (k > '9')) && (k != KeyEvent.VK_BACK_SPACE)) {
evt.consume();
}
if (jtsalario.getText().length() == 10) {
evt.consume();
}
}
private void bguardar_salarioActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
PreparedStatement pst = cn.prepareStatement("UPDATE salario SET Descuentos='" +
jtdescuento_salario.getText()
+ "',bono='" + jtbono_salario.getText()
//+ "',Observacion='" + jt_cargo_ed.getText()
+ "',salario='" + jlsalario_salario.getText()
+ "' WHERE cedula='" + jtcedula_salario.getText() + "'");
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Datos almacenados correctamente");
} catch (Exception ex) {
System.out.print(ex.getMessage());
}
}
private void jtcedula_salarioKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
int k = (int) evt.getKeyChar(); //coje caracter ingresado
if (((k < '0') || (k > '9')) && (k != KeyEvent.VK_BACK_SPACE)) {
evt.consume();
}
if (jtcedula_salario.getText().length() == 10) {
60. evt.consume();
}
}
private void jtcedula_consKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
String cedula = jtcedula_cons.getText();
try {
ConexionDB coneccion = new ConexionDB();
String cons = "select * from empleados where cedula='" + cedula + "'"; // Manipulacion
de tablas
ResultSet consulta = coneccion.consulta(cons);
consulta.next();
jlnombre.setText(consulta.getString(2));
jlapellido.setText(consulta.getString(3));
jlcargo.setText(consulta.getString(6));
} catch (Exception ex) {
System.out.print(ex.getMessage());
}
}
private void jtcedula_consKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
int k = (int) evt.getKeyChar(); //coje caracter ingresado
if (((k < '0') || (k > '9')) && (k != KeyEvent.VK_BACK_SPACE)) {
evt.consume();
}
if (jtcedula.getText().length() == 10) {
evt.consume();
}
}
private void bconsultar_consActionPerformed(java.awt.event.ActionEvent evt) {
61. // TODO add your handling code here:
String cedula = jtcedula_cons.getText();
String[] dato = new String[4];
DefaultTableModel thoras = new DefaultTableModel();
thoras.addColumn("Fecha");
thoras.addColumn("Hora de entrada");
thoras.addColumn("Hora de salida");
thoras.addColumn("Observacion");
thorarios_cons.setModel(thoras);
try {
ConexionDB coneccion = new ConexionDB(); //Creamos un objeto de la clase
Coneccion DB
Connection con = coneccion.obtenerConexion();
String cons = "select * from empleados where cedula='" + cedula + "'"; // Manipulacion
de tablas
ResultSet consulta = coneccion.consulta(cons);
consulta.next();
jlnombre.setText(consulta.getString(2));
jlapellido.setText(consulta.getString(3));
jlcargo.setText(consulta.getString(6));
} catch (Exception ex) {
System.out.print(ex.getMessage());
}
try {
ConexionDB coneccion = new ConexionDB(); //Creamos un objeto de la clase
Coneccion DB
Connection con = coneccion.obtenerConexion();
String cons = "select * from horarios where cedula='" + cedula + "'"; // Manipulacion de
tablas
ResultSet cont = coneccion.consulta(cons);
65. private JComponent Barra = ((javax.swing.plaf.basic.BasicInternalFrameUI)
getUI()).getNorthPane();
private Dimension dimBarra = null;
ConexionDB cc = new ConexionDB();
Connection cn = cc.obtenerConexion();
}
PANTALLA CONSULTA
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Interfaz;
import clases.ConexionDB;
import java.awt.Dimension;
import java.awt.event.KeyEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import javax.swing.JComponent;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Usuario
*/
public class PantallaConsulta extends javax.swing.JInternalFrame {
/**
* Creates new form PantallaConsulta
*/
66. public PantallaConsulta() {
initComponents();
this.ocultarBarraTitulo();
}
public void ocultarBarraTitulo() {
Barra = ((javax.swing.plaf.basic.BasicInternalFrameUI) getUI()).getNorthPane();
dimBarra = Barra.getPreferredSize();
Barra.setSize(0, 0);
Barra.setPreferredSize(new Dimension(0, 0));
repaint();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jtcedula = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
tcons = new javax.swing.JTable();
jConsulta = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
67. jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jlnombre = new javax.swing.JLabel();
jlapellido = new javax.swing.JLabel();
jlcargo = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
setNormalBounds(new java.awt.Rectangle(150, 50, 0, 0));
jLabel1.setFont(new java.awt.Font("Consolas", 1, 12)); // NOI18N
jLabel1.setText("# de Cedula");
jtcedula.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jtcedulaActionPerformed(evt);
}
});
jtcedula.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
jtcedulaKeyTyped(evt);
}
});
tcons.setBorder(javax.swing.BorderFactory.createEtchedBorder());
tcons.setFont(new java.awt.Font("Consolas", 1, 12)); // NOI18N
tcons.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
79. setBounds((screenSize.width-1100)/2, (screenSize.height-530)/2, 1100, 530);
}// </editor-fold>
private void jtext_contraseñaKeyReleased(java.awt.event.KeyEvent evt) {
// Comandos para al precionar enter ingrese al sistema:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
IngresoSistema(jtext_contraseña.getText().trim(), jtext_usuario.getText().trim());
}
}
public void IngresoSistema(String usuario, String pass) {
//Metodo con parametros que sera llamado para el ingreso
PantallaAdministrador pa = new PantallaAdministrador();
usuario = this.jtext_usuario.getText();
pass = this.jtext_contraseña.getText();
try {
//conexion base de datos
ConexionDB coneccion = new ConexionDB(); //Creamos un objeto de la clase Coneccion DB
Connection con = coneccion.obtenerConexion();
String cons = "select * from administradores where usuario='" + usuario + "'"; // Manipulacion de
tablas
ResultSet consulta = coneccion.consulta(cons);
consulta.next();
if (consulta.getString(1).equals(usuario) && consulta.getString(2).equals(pass)) {
JOptionPane.showMessageDialog(null, "Bienvenido al sistema");
this.jDesktopPane1.removeAll();
this.jDesktopPane1.updateUI();
this.jDesktopPane1.add(pa);
87. .addGap(76, 76, 76))
);
getContentPane().add(jPanel1);
jPanel1.setBounds(50, 80, 690, 80);
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/borde.jpg"))); //
NOI18N
getContentPane().add(jLabel1);
jLabel1.setBounds(-80, -50, 1060, 490);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-931)/2, (screenSize.height-356)/2, 931, 356);
}// </editor-fold>
private void jtcedulaKeyReleased(java.awt.event.KeyEvent evt) {
// Comandos para al precionar enter se dirija al metodo:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
CedulaValida(jtcedula.getText().trim());
jtcedula.setText("");
}
}
public void Limpiar() {
// Metodo de limpieza de JFields
jlnombre.setText("");
jlapellido.setText("");
jlcargo.setText("");
txt_horaf.setText("");
txt_horai.setText("");
}
public void CedulaValida(String cedula) {
//Metodo con parametros que sera llamado para el ingreso
cedula = this.jtcedula.getText();
88. try {
//conexion base de datos
ConexionDB coneccion = new ConexionDB(); //Creamos un objeto de la clase Coneccion DB
Connection con = coneccion.obtenerConexion();
String cons = "select * from empleados where cedula=" + cedula; // Manipulacion de tablas
ResultSet consulta = coneccion.consulta(cons);
consulta.next();
if (consulta.getString(1).equals(cedula)) { //Comparamos que sea igual la cedula con la posicion
en la tabla
// Ingreso al metodo de registro
this.RegistroAsistencia(cedula);
} else {
JOptionPane.showMessageDialog(null, "No se encuentra registrado", "Sistema",
JOptionPane.ERROR_MESSAGE);
}
} catch (Exception ex) {
System.out.print(ex.getMessage());
}
}
public long diferencia_horas(String fecha_mayor, String fecha_menor) {
String hora_may, min_may, seg_may, hora_men, min_men, seg_men;
//extraemos en variables separadas el tiempo mayor
hora_may = fecha_mayor.substring(0, 2);
min_may = fecha_mayor.substring(3, 5);
seg_may = fecha_mayor.substring(6, 8);
//extraemos en variables separadas el tiempo menor
hora_men = fecha_menor.substring(0, 2);
min_men = fecha_menor.substring(3, 5);
89. seg_men = fecha_menor.substring(6, 8);
Date fecha_may = new Date(2013, 9, 7, Integer.parseInt(hora_may), Integer.parseInt(min_may),
Integer.parseInt(seg_may));
Date fecha_men = new Date(2013, 9, 7, Integer.parseInt(hora_men), Integer.parseInt(min_men),
Integer.parseInt(seg_men));
long seg = fecha_may.getTime() - fecha_men.getTime();
return seg / 1000;
}
public String Formatohoras(long seg) {
int min = 0, hras = 0;
while (seg > 60) {
seg -= 60;
min++;
}
while (min > 60) {
min -= 60;
hras++;
}
String tfhras = hras + ":" + min + ":" + seg;
return tfhras;
}
public void RegistroAsistencia(String cedula) {
cedula = this.jtcedula.getText();
try {
ConexionDB coneccion = new ConexionDB(); //Creamos un objeto de la clase Coneccion DB
Connection con = coneccion.obtenerConexion();
String cons = "select * from empleados where cedula='" + cedula + "'"; // Manipulacion de tablas
90. ResultSet consulta = coneccion.consulta(cons);
consulta.next();
jlnombre.setText(consulta.getString(2));
jlapellido.setText(consulta.getString(3));
jlcargo.setText(consulta.getString(6));
} catch (Exception ex) {
System.out.print(ex.getMessage());
}
ConexionDB conx = new ConexionDB(); //Creamos un objeto de la clase Coneccion DB
Connection con = conx.obtenerConexion(); // Creamos un objeto de obtener coneccion de la la
libreria Connection
int hora = 0, minuto = 0, seg = 0, dia = 0, mes = 0, anio = 0;
int rows_updated = 0;
String horas, segunds, minuts;
Calendar cal = new GregorianCalendar();
hora = cal.get(Calendar.HOUR_OF_DAY);
minuto = cal.get(Calendar.MINUTE);
seg = cal.get(Calendar.SECOND);
dia = cal.get(Calendar.DAY_OF_WEEK);
mes = cal.get(Calendar.MONTH);
anio = cal.get(Calendar.YEAR);
if (hora < 10) {
horas = "0" + hora;
} else {
horas = Integer.toString(hora);
}
if (minuto < 10) {
minuts = "0" + minuto;
} else {
minuts = Integer.toString(minuto);