Advertisement
Metziop

Untitled

Jun 15th, 2021
733
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 17.33 KB | None | 0 0
  1. package vistas;
  2.  
  3. import Conexion.MySQLConection;
  4. import Conexion.loginSesion;
  5. import controlador.cronometro;
  6. import java.sql.Connection;
  7. import java.sql.Date;
  8. import java.sql.PreparedStatement;
  9. import java.sql.ResultSet;
  10. import java.sql.ResultSetMetaData;
  11. import java.sql.Time;
  12. import java.time.LocalDate;
  13. import java.time.LocalTime;
  14. import java.util.Observable;
  15. import java.util.Observer;
  16. import java.util.logging.Level;
  17. import java.util.logging.Logger;
  18. import javax.swing.JOptionPane;
  19. import javax.swing.table.DefaultTableModel;
  20.  
  21. /**
  22.  *
  23.  * @author dario
  24.  */
  25. public class frmTareas extends javax.swing.JDialog implements Observer {
  26.  
  27.     private void actualizarTiempoTotal(String idPedidoEmpleado) {
  28.  
  29.         try {
  30.             PreparedStatement ps = null;
  31.             Connection conn = MySQLConection.getConnection();
  32.             String SQL = "UPDATE pedidosempleado SET tiempoTotal=TIMEDIFF(horaTermino,horaInicio) WHERE idPedidoEmpleado =" + idPedidoEmpleado + "";
  33.             ps = conn.prepareStatement(SQL);
  34.             ps.executeUpdate();
  35.         } catch (Exception ex) {
  36.             Logger.getLogger(frmTareas.class.getName()).log(Level.SEVERE, null, ex);
  37.         }
  38.  
  39.     }
  40.  
  41.     public frmTareas(java.awt.Frame parent, boolean modal) {
  42.         super(parent, modal);
  43.  
  44.         initComponents();
  45.         this.setLocationRelativeTo(parent);
  46.         btnStart.setEnabled(false);
  47.         btnStop.setEnabled(false);
  48.         String user = loginSesion.user;
  49.         actualizartabla(user);
  50.         //System.out.println(java.time.LocalDate.now());
  51.  
  52.     }
  53.  
  54.     @SuppressWarnings("unchecked")
  55.     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  56.     private void initComponents() {
  57.  
  58.         jPanel1 = new javax.swing.JPanel();
  59.         jScrollPane1 = new javax.swing.JScrollPane();
  60.         jtAsignaciones = new javax.swing.JTable();
  61.         lbTimer = new javax.swing.JLabel();
  62.         jLabel2 = new javax.swing.JLabel();
  63.         btnStart = new javax.swing.JButton();
  64.         jLabel3 = new javax.swing.JLabel();
  65.         jLabel5 = new javax.swing.JLabel();
  66.         btnStart1 = new javax.swing.JButton();
  67.         btnStop = new javax.swing.JButton();
  68.  
  69.         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  70.         setUndecorated(true);
  71.  
  72.         jPanel1.setBackground(new java.awt.Color(255, 255, 255));
  73.         jPanel1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(122, 14, 2), 2, true));
  74.  
  75.         jtAsignaciones.setModel(new javax.swing.table.DefaultTableModel(
  76.             new Object [][] {
  77.  
  78.             },
  79.             new String [] {
  80.                 "idTrabajo", "tipoArreglo", "TiempoEstimado", "Comision"
  81.             }
  82.         ) {
  83.             Class[] types = new Class [] {
  84.                 java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.Double.class
  85.             };
  86.             boolean[] canEdit = new boolean [] {
  87.                 false, false, false, false
  88.             };
  89.  
  90.             public Class getColumnClass(int columnIndex) {
  91.                 return types [columnIndex];
  92.             }
  93.  
  94.             public boolean isCellEditable(int rowIndex, int columnIndex) {
  95.                 return canEdit [columnIndex];
  96.             }
  97.         });
  98.         jtAsignaciones.addMouseListener(new java.awt.event.MouseAdapter() {
  99.             public void mouseClicked(java.awt.event.MouseEvent evt) {
  100.                 jtAsignacionesMouseClicked(evt);
  101.             }
  102.         });
  103.         jScrollPane1.setViewportView(jtAsignaciones);
  104.  
  105.         lbTimer.setFont(new java.awt.Font("Montserrat Black", 1, 24)); // NOI18N
  106.         lbTimer.setForeground(new java.awt.Color(102, 255, 102));
  107.         lbTimer.setText("00:00:00");
  108.  
  109.         jLabel2.setFont(new java.awt.Font("Montserrat SemiBold", 0, 14)); // NOI18N
  110.         jLabel2.setForeground(new java.awt.Color(122, 14, 2));
  111.         jLabel2.setText("Tiempo Transcurrido");
  112.  
  113.         btnStart.setBackground(new java.awt.Color(51, 255, 51));
  114.         btnStart.setFont(new java.awt.Font("Montserrat SemiBold", 1, 14)); // NOI18N
  115.         btnStart.setForeground(new java.awt.Color(255, 255, 255));
  116.         btnStart.setText("Aceptar");
  117.         btnStart.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(122, 14, 2)));
  118.         btnStart.addActionListener(new java.awt.event.ActionListener() {
  119.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  120.                 btnStartActionPerformed(evt);
  121.             }
  122.         });
  123.  
  124.         jLabel3.setFont(new java.awt.Font("Montserrat SemiBold", 0, 14)); // NOI18N
  125.         jLabel3.setForeground(new java.awt.Color(122, 14, 2));
  126.  
  127.         jLabel5.setFont(new java.awt.Font("Montserrat SemiBold", 0, 14)); // NOI18N
  128.         jLabel5.setForeground(new java.awt.Color(122, 14, 2));
  129.         jLabel5.setText(" del trabajo actual:");
  130.  
  131.         btnStart1.setBackground(new java.awt.Color(255, 255, 255));
  132.         btnStart1.setFont(new java.awt.Font("Montserrat SemiBold", 1, 14)); // NOI18N
  133.         btnStart1.setForeground(new java.awt.Color(122, 14, 2));
  134.         btnStart1.setText("Salir");
  135.         btnStart1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(122, 14, 2)));
  136.         btnStart1.addActionListener(new java.awt.event.ActionListener() {
  137.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  138.                 btnStart1ActionPerformed(evt);
  139.             }
  140.         });
  141.  
  142.         btnStop.setBackground(new java.awt.Color(255, 0, 51));
  143.         btnStop.setFont(new java.awt.Font("Montserrat SemiBold", 1, 14)); // NOI18N
  144.         btnStop.setForeground(new java.awt.Color(255, 255, 255));
  145.         btnStop.setText("Completar");
  146.         btnStop.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(122, 14, 2)));
  147.         btnStop.addActionListener(new java.awt.event.ActionListener() {
  148.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  149.                 btnStopActionPerformed(evt);
  150.             }
  151.         });
  152.  
  153.         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  154.         jPanel1.setLayout(jPanel1Layout);
  155.         jPanel1Layout.setHorizontalGroup(
  156.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  157.             .addGroup(jPanel1Layout.createSequentialGroup()
  158.                 .addContainerGap()
  159.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  160.                     .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  161.                     .addComponent(btnStart1, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE))
  162.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  163.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  164.                     .addComponent(lbTimer)
  165.                     .addComponent(jLabel2)
  166.                     .addComponent(jLabel5)
  167.                     .addGroup(jPanel1Layout.createSequentialGroup()
  168.                         .addGap(81, 81, 81)
  169.                         .addComponent(jLabel3))
  170.                     .addComponent(btnStop, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)
  171.                     .addComponent(btnStart, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE))
  172.                 .addContainerGap(49, Short.MAX_VALUE))
  173.         );
  174.         jPanel1Layout.setVerticalGroup(
  175.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  176.             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  177.                 .addContainerGap(61, Short.MAX_VALUE)
  178.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  179.                     .addGroup(jPanel1Layout.createSequentialGroup()
  180.                         .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 257, javax.swing.GroupLayout.PREFERRED_SIZE)
  181.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  182.                         .addComponent(btnStart1, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE))
  183.                     .addGroup(jPanel1Layout.createSequentialGroup()
  184.                         .addComponent(btnStart, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
  185.                         .addGap(4, 4, 4)
  186.                         .addComponent(btnStop, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
  187.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  188.                         .addComponent(jLabel2)
  189.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  190.                         .addComponent(jLabel5)
  191.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  192.                         .addComponent(lbTimer, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
  193.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  194.                         .addComponent(jLabel3)))
  195.                 .addGap(48, 48, 48))
  196.         );
  197.  
  198.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  199.         getContentPane().setLayout(layout);
  200.         layout.setHorizontalGroup(
  201.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  202.             .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  203.         );
  204.         layout.setVerticalGroup(
  205.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  206.             .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  207.         );
  208.  
  209.         pack();
  210.     }// </editor-fold>                        
  211.  
  212.     private void btnStartActionPerformed(java.awt.event.ActionEvent evt) {                                        
  213.  
  214.         this.btnStart.setEnabled(false);
  215.         this.btnStop.setEnabled(true);
  216.         int fila = jtAsignaciones.getSelectedRow();
  217.         String idTrabajo = jtAsignaciones.getValueAt(fila, 0).toString();
  218.        
  219.  
  220.         //----------------parte sql--------------------//
  221.         try {
  222.  
  223.             String querry = "UPDATE pedidosempleado SET horaInicio=?, estatus=?, fechaInicio=? WHERE idPedidoEmpleado=?";
  224.             String estatus = "en elaboracion";
  225.             Connection conn = MySQLConection.getConnection();
  226.             PreparedStatement ps = conn.prepareStatement(querry);
  227.             ps.setTime(1, Time.valueOf(LocalTime.now()));
  228.             ps.setString(2, estatus);
  229.             ps.setDate(3, Date.valueOf(LocalDate.now()));
  230.             ps.setString(4, idTrabajo);
  231.             ps.executeUpdate();
  232.  
  233.         } catch (Exception e) {
  234.             JOptionPane.showMessageDialog(null, "error" + e);
  235.         }
  236.         //----------------llamando al hilo--------------------//
  237.         cronometro crono = new cronometro(00, 00, 00);
  238.         tiempo = new Thread(crono);
  239.         crono.addObserver(this);
  240.         tiempo.start();
  241.  
  242.     }                                        
  243.     private void actualizartabla(String user) {
  244.  
  245.         try {
  246.             DefaultTableModel model = new DefaultTableModel();
  247.             jtAsignaciones.setModel(model);
  248.             PreparedStatement ps = null;
  249.             ResultSet rs = null;
  250.             String estatus = "asignado";
  251.             Connection conn = MySQLConection.getConnection();
  252.             String sql = "select idPedidoEmpleado, nombreArreglo,tiempoEstimado,comision"
  253.                     + " from pedidosempleado INNER JOIN catalogoarreglos USING (idArreglo)"
  254.                     + " where usuario= '"
  255.                     + user
  256.                     + "'AND estatus ='"
  257.                     + estatus
  258.                     + "'";
  259.             ps = conn.prepareStatement(sql);
  260.             rs = ps.executeQuery();
  261.             ResultSetMetaData rsMeta = rs.getMetaData();
  262.             int columnas = rsMeta.getColumnCount();
  263.             model.addColumn("ID");
  264.             model.addColumn("Nombre Arreglo");
  265.             model.addColumn("Tiempo estimado");
  266.             model.addColumn("Comision");
  267.             int[] anchos = {20, 200, 50, 50};
  268.             for (int x = 0; x < columnas; x++) {
  269.                 jtAsignaciones.getColumnModel().getColumn(x).setPreferredWidth(anchos[x]);
  270.             }
  271.             while (rs.next()) {
  272.                 Object[] filas = new Object[columnas];
  273.                 for (int i = 0; i < columnas; i++) {
  274.                     filas[i] = rs.getObject(i + 1);
  275.                 }
  276.                 model.addRow(filas);
  277.             }
  278.         } catch (Exception e) {
  279.             JOptionPane.showMessageDialog(null, "Error al actualizar" + e);
  280.         }
  281.     }
  282.     private void btnStart1ActionPerformed(java.awt.event.ActionEvent evt) {                                          
  283.         this.dispose();
  284.     }                                        
  285.  
  286.     private void btnStopActionPerformed(java.awt.event.ActionEvent evt) {                                        
  287.         this.btnStart.setEnabled(true);
  288.  
  289.         tiempo.stop();
  290.  
  291.         try {
  292.  
  293.             int fila = jtAsignaciones.getSelectedRow();
  294.             String idTrabajo = jtAsignaciones.getValueAt(fila, 0).toString();
  295.  
  296.             String querry = "UPDATE pedidosempleado SET horaTermino=?, estatus=?, fechaFin=? WHERE idPedidoEmpleado=?";
  297.             Connection conn = MySQLConection.getConnection();
  298.             PreparedStatement ps = conn.prepareStatement(querry);
  299.             String estatus = "terminado";
  300.  
  301.             ps.setTime(1, Time.valueOf(LocalTime.now()));
  302.             ps.setString(2, estatus);
  303.             ps.setDate(3, Date.valueOf(LocalDate.now()));
  304.             ps.setString(4, idTrabajo);
  305.  
  306.             ps.executeUpdate();
  307.             actualizarTiempoTotal(idTrabajo);
  308.         } catch (Exception e) {
  309.             JOptionPane.showMessageDialog(null, "error" + e);
  310.         }
  311.         String user = loginSesion.user;
  312.         actualizartabla(user);
  313.  
  314.  
  315.     }                                      
  316.  
  317.  
  318.     private void jtAsignacionesMouseClicked(java.awt.event.MouseEvent evt) {                                            
  319.         btnStart.setEnabled(true);
  320.     }                                          
  321.  
  322.     /**
  323.      * @param args the command line arguments
  324.      */
  325.     public static void main(String args[]) {
  326.         /* Set the Nimbus look and feel */
  327.         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  328.         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  329.          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
  330.          */
  331.         try {
  332.             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  333.                 if ("Nimbus".equals(info.getName())) {
  334.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  335.                     break;
  336.                 }
  337.             }
  338.         } catch (ClassNotFoundException ex) {
  339.             java.util.logging.Logger.getLogger(frmTareas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  340.         } catch (InstantiationException ex) {
  341.             java.util.logging.Logger.getLogger(frmTareas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  342.         } catch (IllegalAccessException ex) {
  343.             java.util.logging.Logger.getLogger(frmTareas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  344.         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  345.             java.util.logging.Logger.getLogger(frmTareas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  346.         }
  347.         //</editor-fold>
  348.  
  349.         /* Create and display the dialog */
  350.         java.awt.EventQueue.invokeLater(new Runnable() {
  351.             public void run() {
  352.                 frmTareas dialog = new frmTareas(new javax.swing.JFrame(), true);
  353.                 dialog.addWindowListener(new java.awt.event.WindowAdapter() {
  354.                     @Override
  355.                     public void windowClosing(java.awt.event.WindowEvent e) {
  356.                         System.exit(0);
  357.                     }
  358.                 });
  359.                 dialog.setVisible(true);
  360.             }
  361.         });
  362.     }
  363.  
  364.     @Override
  365.     public void update(Observable o, Object arg) {
  366.         lbTimer.setText((String) arg);
  367.  
  368.     }
  369.  
  370.     Thread tiempo;
  371.     // Variables declaration - do not modify                    
  372.     private javax.swing.JButton btnStart;
  373.     private javax.swing.JButton btnStart1;
  374.     private javax.swing.JButton btnStop;
  375.     private javax.swing.JLabel jLabel2;
  376.     private javax.swing.JLabel jLabel3;
  377.     private javax.swing.JLabel jLabel5;
  378.     private javax.swing.JPanel jPanel1;
  379.     private javax.swing.JScrollPane jScrollPane1;
  380.     private javax.swing.JTable jtAsignaciones;
  381.     private javax.swing.JLabel lbTimer;
  382.     // End of variables declaration                  
  383. }
  384.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement