Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.biosis.biosislite.vistas; import com.personal.utiles.FechaUtil; import com.personal.utiles.FormularioUtil; import com.personal.utiles.ReporteUtil; import com.biosis.biosislite.controladores.AreaEmpleadoControlador; import com.biosis.biosislite.controladores.AsignacionPermisoControlador; import com.biosis.biosislite.controladores.Controlador; import com.biosis.biosislite.controladores.EmpleadoControlador; import com.biosis.biosislite.controladores.PermisoControlador; import com.biosis.biosislite.controladores.TCAnalisisControlador; import com.biosis.biosislite.controladores.ViajeControlador; import com.biosis.biosislite.entidades.AsignacionPermiso; import com.biosis.biosislite.entidades.Permiso; import com.biosis.biosislite.entidades.TipoPermiso; import com.biosis.biosislite.entidades.Viaje; import com.biosis.biosislite.entidades.escalafon.AreaEmpleado; import com.biosis.biosislite.entidades.escalafon.Departamento; import com.biosis.biosislite.entidades.escalafon.Empleado; import com.biosis.biosislite.entidades.escalafon.Ubigeo; import java.awt.Component; import java.awt.Frame; import java.awt.GraphicsEnvironment; import java.awt.geom.Area; import java.io.File; import java.math.BigDecimal; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import javax.swing.JDialog; import javax.swing.JOptionPane; import javax.swing.SpinnerNumberModel; //import org.apache.commons.validator.routines.DateValidator; import org.jdesktop.observablecollections.ObservableCollections; import com.biosis.biosislite.Main; import com.biosis.biosislite.utiles.UsuarioActivo; import com.biosis.biosislite.vistas.dialogos.DlgDatosComision; import com.biosis.biosislite.vistas.dialogos.DlgEmpleado; import com.biosis.biosislite.vistas.dialogos.DlgTipoPermiso; import com.biosis.biosislite.vistas.modelos.MTAsignacionPermiso; import com.biosis.biosislite.vistas.modelos.MTEmpleado; /** * * @author fesquivelc */ public class AsignarPermiso extends javax.swing.JInternalFrame { /** * Creates new form CRUDPeriodo */ private List<AsignacionPermiso> listado; private List<Empleado> integrantes; private PermisoControlador controlador; private EmpleadoControlador ec; private int accion; private TipoPermiso tipoSeleccionado; private Empleado empleadoSeleccionado; private AsignacionPermisoControlador ac; private final ReporteUtil reporteador; private ViajeControlador vsc; private AreaEmpleadoControlador aec; private String ubigeoSeleccion; private String gerencia; private String centroCosto; private long diasAlimentacion; private long diasAlojamiento; private long diasMovLocal; private double alimentacion; private double alojamiento; private double movilidad; private double combustible; public AsignarPermiso() { initComponents(); dcFechaInicioBusqueda.setDate(new Date()); dcFechaFinBusqueda.setDate(new Date()); inicializar(); bindeoSalvaje(); reporteador = new ReporteUtil(); this.radLote.setVisible(false); this.btnComision.setVisible(false); vsc = new ViajeControlador(); this.aec = new AreaEmpleadoControlador(); } /** * 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">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; opciones = new javax.swing.ButtonGroup(); pnlListado = new javax.swing.JPanel(); jPanel3 = new javax.swing.JPanel(); btnNuevo = new javax.swing.JButton(); btnModificar = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); tblTabla = new org.jdesktop.swingx.JXTable(); pnlNavegacion = new javax.swing.JPanel(); btnPrimero = new javax.swing.JButton(); btnAnterior = new javax.swing.JButton(); spPagina = new javax.swing.JSpinner(); txtTotal = new javax.swing.JTextField(); btnSiguiente = new javax.swing.JButton(); btnUltimo = new javax.swing.JButton(); cboTamanio = new javax.swing.JComboBox(); pnlBusqueda = new javax.swing.JPanel(); dcFechaInicioBusqueda = new com.toedter.calendar.JDateChooser("dd/MM/yyyy", "##/##/####", '_'); dcFechaFinBusqueda = new com.toedter.calendar.JDateChooser("dd/MM/yyyy", "##/##/####", '_'); txtEmpleado = new javax.swing.JTextField(); lblBusqueda = new org.jdesktop.swingx.JXBusyLabel(); btnLimpiar = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); jLabel9 = new javax.swing.JLabel(); btnBuscar = new javax.swing.JButton(); jLabel5 = new javax.swing.JLabel(); pnlDatos = new javax.swing.JPanel(); jPanel4 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jScrollPane3 = new javax.swing.JScrollPane(); tblEmpleados = new org.jdesktop.swingx.JXTable(); btnAgregar = new javax.swing.JButton(); btnQuitar = new javax.swing.JButton(); txtTipoPermiso = new javax.swing.JTextField(); jScrollPane2 = new javax.swing.JScrollPane(); txtMotivo = new javax.swing.JTextArea(); jLabel4 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); jLabel10 = new javax.swing.JLabel(); txtDocumento = new javax.swing.JTextField(); jLabel11 = new javax.swing.JLabel(); jLabel12 = new javax.swing.JLabel(); spHoraFin = new javax.swing.JSpinner(); spHoraInicio = new javax.swing.JSpinner(); dcFechaFin = new com.toedter.calendar.JDateChooser("dd/MM/yyyy", "##/##/####", '_'); dcFechaInicio = new com.toedter.calendar.JDateChooser("dd/MM/yyyy", "##/##/####", '_'); pnlOpcion = new javax.swing.JPanel(); radFecha = new javax.swing.JRadioButton(); radHora = new javax.swing.JRadioButton(); radLote = new javax.swing.JRadioButton(); btnComision = new javax.swing.JButton(); jPanel5 = new javax.swing.JPanel(); btnGuardar = new javax.swing.JButton(); btnCancelar = new javax.swing.JButton(); opciones.add(radFecha); opciones.add(radHora); opciones.add(radLote); setClosable(true); setMaximizable(true); setTitle("ASIGNAR PERMISO A EMPLEADO(S)"); java.awt.GridBagLayout layout = new java.awt.GridBagLayout(); layout.columnWidths = new int[] { 0, 5, 0 }; layout.rowHeights = new int[] { 0 }; getContentPane().setLayout(layout); pnlListado.setBorder(javax.swing.BorderFactory.createTitledBorder("Permisos")); java.awt.GridBagLayout jPanel1Layout = new java.awt.GridBagLayout(); jPanel1Layout.columnWidths = new int[] { 0 }; jPanel1Layout.rowHeights = new int[] { 0, 5, 0, 5, 0, 5, 0 }; pnlListado.setLayout(jPanel1Layout); jPanel3.setLayout(new java.awt.GridLayout(1, 0, 10, 0)); btnNuevo.setText("Nuevo"); btnNuevo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnNuevoActionPerformed(evt); } }); jPanel3.add(btnNuevo); btnModificar.setText("Modificar"); btnModificar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnModificarActionPerformed(evt); } }); jPanel3.add(btnModificar); jButton3.setText("Eliminar"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jPanel3.add(jButton3); jButton2.setText("Imprimir boleta"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jPanel3.add(jButton2); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; pnlListado.add(jPanel3, gridBagConstraints); tblTabla.setHorizontalScrollEnabled(true); tblTabla.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseReleased(java.awt.event.MouseEvent evt) { tblTablaMouseReleased(evt); } }); jScrollPane1.setViewportView(tblTabla); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 0.1; gridBagConstraints.weighty = 0.1; pnlListado.add(jScrollPane1, gridBagConstraints); pnlNavegacion.setLayout(new java.awt.GridLayout(1, 0, 2, 0)); btnPrimero.setText("<<"); btnPrimero.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnPrimeroActionPerformed(evt); } }); pnlNavegacion.add(btnPrimero); btnAnterior.setText("<"); btnAnterior.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnAnteriorActionPerformed(evt); } }); pnlNavegacion.add(btnAnterior); spPagina.setModel(new javax.swing.SpinnerNumberModel(1, 1, null, 1)); spPagina.setMinimumSize(new java.awt.Dimension(60, 20)); spPagina.setPreferredSize(new java.awt.Dimension(60, 20)); spPagina.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { spPaginaStateChanged(evt); } }); pnlNavegacion.add(spPagina); txtTotal.setEditable(false); txtTotal.setColumns(3); txtTotal.setHorizontalAlignment(javax.swing.JTextField.RIGHT); txtTotal.setText("1"); pnlNavegacion.add(txtTotal); btnSiguiente.setText(">"); btnSiguiente.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnSiguienteActionPerformed(evt); } }); pnlNavegacion.add(btnSiguiente); btnUltimo.setText(">>"); btnUltimo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnUltimoActionPerformed(evt); } }); pnlNavegacion.add(btnUltimo); cboTamanio.setModel( new javax.swing.DefaultComboBoxModel(new String[] { "5", "10", "15", "20", "25", "40", "50" })); cboTamanio.setMinimumSize(new java.awt.Dimension(53, 24)); cboTamanio.setPreferredSize(new java.awt.Dimension(53, 24)); cboTamanio.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cboTamanioActionPerformed(evt); } }); pnlNavegacion.add(cboTamanio); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; pnlListado.add(pnlNavegacion, gridBagConstraints); pnlBusqueda.setLayout(new java.awt.GridBagLayout()); dcFechaInicioBusqueda.setMinSelectableDate(new java.util.Date(21711000L)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; pnlBusqueda.add(dcFechaInicioBusqueda, gridBagConstraints); dcFechaFinBusqueda.setMinSelectableDate(new java.util.Date(21711000L)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; pnlBusqueda.add(dcFechaFinBusqueda, gridBagConstraints); txtEmpleado.setEditable(false); txtEmpleado.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { txtEmpleadoActionPerformed(evt); } }); txtEmpleado.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { txtEmpleadoKeyReleased(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 4; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 0.1; pnlBusqueda.add(txtEmpleado, gridBagConstraints); lblBusqueda.setText("Empleado:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; pnlBusqueda.add(lblBusqueda, gridBagConstraints); btnLimpiar.setText("Limpiar"); btnLimpiar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnLimpiarActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; pnlBusqueda.add(btnLimpiar, gridBagConstraints); jButton4.setText("..."); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; pnlBusqueda.add(jButton4, gridBagConstraints); jLabel9.setText("-"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; pnlBusqueda.add(jLabel9, gridBagConstraints); btnBuscar.setText("Buscar"); btnBuscar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnBuscarActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; pnlBusqueda.add(btnBuscar, gridBagConstraints); jLabel5.setText("Fechas:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END; pnlBusqueda.add(jLabel5, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 0.1; pnlListado.add(pnlBusqueda, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 0.2; gridBagConstraints.weighty = 0.1; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); getContentPane().add(pnlListado, gridBagConstraints); pnlDatos.setBorder(javax.swing.BorderFactory.createTitledBorder("Datos de permiso")); java.awt.GridBagLayout jPanel2Layout = new java.awt.GridBagLayout(); jPanel2Layout.columnWidths = new int[] { 0 }; jPanel2Layout.rowHeights = new int[] { 0, 5, 0 }; pnlDatos.setLayout(jPanel2Layout); java.awt.GridBagLayout jPanel4Layout = new java.awt.GridBagLayout(); jPanel4Layout.columnWidths = new int[] { 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0 }; jPanel4Layout.rowHeights = new int[] { 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0 }; jPanel4.setLayout(jPanel4Layout); jLabel1.setText("Tipo de permiso:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(jLabel1, gridBagConstraints); jLabel2.setText("Empleados:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 20; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(jLabel2, gridBagConstraints); jLabel3.setText("Motivo:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(jLabel3, gridBagConstraints); tblEmpleados.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseReleased(java.awt.event.MouseEvent evt) { tblEmpleadosMouseReleased(evt); } }); jScrollPane3.setViewportView(tblEmpleados); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 20; gridBagConstraints.gridwidth = 3; gridBagConstraints.gridheight = 5; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 0.1; gridBagConstraints.weighty = 0.1; jPanel4.add(jScrollPane3, gridBagConstraints); btnAgregar.setText("+"); btnAgregar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnAgregarActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 10; gridBagConstraints.gridy = 20; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; jPanel4.add(btnAgregar, gridBagConstraints); btnQuitar.setText("-"); btnQuitar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnQuitarActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 10; gridBagConstraints.gridy = 22; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.PAGE_START; jPanel4.add(btnQuitar, gridBagConstraints); txtTipoPermiso.setEditable(false); txtTipoPermiso.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { txtTipoPermisoActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 0.1; jPanel4.add(txtTipoPermiso, gridBagConstraints); txtMotivo.setColumns(20); txtMotivo.setRows(5); txtMotivo.setTabSize(4); jScrollPane2.setViewportView(txtMotivo); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 6; gridBagConstraints.gridwidth = 3; gridBagConstraints.gridheight = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weighty = 0.1; jPanel4.add(jScrollPane2, gridBagConstraints); jLabel4.setText("Hora inicio:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 16; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(jLabel4, gridBagConstraints); jLabel7.setText("Fecha inicio:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 12; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(jLabel7, gridBagConstraints); jLabel8.setText("Opcin:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 10; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(jLabel8, gridBagConstraints); jButton1.setText("..."); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 10; gridBagConstraints.gridy = 2; jPanel4.add(jButton1, gridBagConstraints); jLabel10.setText("Documento:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(jLabel10, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; jPanel4.add(txtDocumento, gridBagConstraints); jLabel11.setText("Hora fin:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 18; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(jLabel11, gridBagConstraints); jLabel12.setText("Fecha fin:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 14; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(jLabel12, gridBagConstraints); spHoraFin.setModel(new javax.swing.SpinnerDateModel()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 18; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(spHoraFin, gridBagConstraints); spHoraInicio.setModel(new javax.swing.SpinnerDateModel()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 16; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(spHoraInicio, gridBagConstraints); dcFechaFin.setMinSelectableDate(new java.util.Date(21712000L)); dcFechaFin.setMinimumSize(new java.awt.Dimension(130, 23)); dcFechaFin.setPreferredSize(new java.awt.Dimension(91, 30)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 14; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(dcFechaFin, gridBagConstraints); dcFechaInicio.setMinSelectableDate(new java.util.Date(21712000L)); dcFechaInicio.setMinimumSize(new java.awt.Dimension(130, 23)); dcFechaInicio.setPreferredSize(new java.awt.Dimension(91, 30)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 12; gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(dcFechaInicio, gridBagConstraints); pnlOpcion.setLayout(new java.awt.GridLayout(1, 0)); radFecha.setSelected(true); radFecha.setText("Por fecha"); radFecha.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { radFechaActionPerformed(evt); } }); pnlOpcion.add(radFecha); radHora.setText("Por hora"); radHora.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { radHoraActionPerformed(evt); } }); pnlOpcion.add(radHora); radLote.setText("Por lote"); radLote.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { radLoteActionPerformed(evt); } }); pnlOpcion.add(radLote); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 10; gridBagConstraints.gridwidth = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(pnlOpcion, gridBagConstraints); btnComision.setText("Datos para Comisin"); btnComision.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnComisionActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; jPanel4.add(btnComision, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.PAGE_START; gridBagConstraints.weightx = 0.2; gridBagConstraints.weighty = 0.1; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); pnlDatos.add(jPanel4, gridBagConstraints); jPanel5.setLayout(new java.awt.GridLayout(1, 0, 10, 0)); btnGuardar.setText("Guardar"); btnGuardar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnGuardarActionPerformed(evt); } }); jPanel5.add(btnGuardar); btnCancelar.setText("Cancelar"); btnCancelar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnCancelarActionPerformed(evt); } }); jPanel5.add(btnCancelar); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); pnlDatos.add(jPanel5, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 0.2; gridBagConstraints.weighty = 0.1; gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); getContentPane().add(pnlDatos, gridBagConstraints); pack(); }// </editor-fold>//GEN-END:initComponents private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed // TODO add your handling code here: this.accion = 0; this.controles(accion); this.btnComision.setVisible(false); FormularioUtil.limpiarComponente(this.pnlDatos); }//GEN-LAST:event_btnCancelarActionPerformed private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNuevoActionPerformed // TODO add your handling code here: this.accion = Controlador.NUEVO; controlador.prepararCrear(); this.controles(accion); integrantes.clear(); }//GEN-LAST:event_btnNuevoActionPerformed private void btnModificarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnModificarActionPerformed // TODO add your handling code here: int fila = tblTabla.getSelectedRow(); if (fila != -1) { this.accion = Controlador.MODIFICAR; tipoSeleccionado = this.listado.get(fila).getPermiso().getTipoPermiso(); controlador.setSeleccionado(this.listado.get(fila).getPermiso()); this.controles(accion); FormularioUtil.activarComponente(txtTipoPermiso, false); if (controlador.getSeleccionado().getTipoPermiso().getCodigo().equals("VCS")) { this.btnComision.setVisible(true); } } }//GEN-LAST:event_btnModificarActionPerformed private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGuardarActionPerformed // TODO add your handling code here: if (erroresFormulario()) { return; } if (FormularioUtil.dialogoConfirmar(this, accion)) { Permiso seleccionada = this.controlador.getSeleccionado(); FormularioUtil.convertirMayusculas(this.pnlDatos); // if (accion == Controlador.NUEVO) { // seleccionada.setCodigo(txtTipoPermiso.getText()); // } seleccionada.setMotivo(txtMotivo.getText()); seleccionada.setTipoPermiso(tipoSeleccionado); seleccionada.setFechaInicio(dcFechaInicio.getDate()); seleccionada.setPorFecha(radFecha.isSelected()); seleccionada.setDocumento(txtDocumento.getText()); Long diferencia; if (radFecha.isSelected()) { seleccionada.setFechaFin(dcFechaFin.getDate()); diferencia = seleccionada.getFechaFin().getTime() - seleccionada.getFechaInicio().getTime(); seleccionada.setOpcion('F'); } else { seleccionada.setCubreEntrada(false); seleccionada.setCubreSalida(false); seleccionada.setHoraInicio((Date) spHoraInicio.getValue()); seleccionada.setHoraFin((Date) spHoraFin.getValue()); seleccionada.setFechaFin((Date) dcFechaInicio.getDate()); seleccionada.setOpcion('H'); diferencia = FechaUtil.soloHora(seleccionada.getHoraFin()).getTime() - FechaUtil.soloHora(seleccionada.getHoraInicio()).getTime(); } BigDecimal diferenciaMin = new BigDecimal(diferencia / (60 * 1000 * 60)); seleccionada.setDiferencia(diferenciaMin); List<String> dnis = new ArrayList<>(); for (AsignacionPermiso asignacion : seleccionada.getAsignacionPermisoList()) { dnis.add(asignacion.getEmpleado().getNroDocumento()); //System.out.println(asignacion.getEmpleado()); } retrocederTiempo(dnis, seleccionada.getFechaInicio()); if (controlador.accion(accion)) { //Agregar Viaje if (seleccionada.getTipoPermiso().getCodigo().equals("VCS")) { Viaje viaje = new Viaje(); // viaje.setAlimentacion(this.alimentacion); // viaje.setAlojamiento(this.alojamiento); // viaje.setMovilidad(this.movilidad); // viaje.setCombustible(this.combustible); // // viaje.setGerencia(this.gerencia); // viaje.setCentroCosto(this.centroCosto); // // viaje.setDiasAlimentacion(this.diasAlimentacion); // viaje.setDiasAlojamiento(this.diasAlojamiento); // viaje.setDiasMovLocal(this.diasMovLocal); // // viaje.setDestino(this.ubigeoSeleccion); viaje.setAlimentacion(vsc.getSeleccionado().getAlimentacion()); viaje.setAlojamiento(vsc.getSeleccionado().getAlojamiento()); viaje.setMovilidad(vsc.getSeleccionado().getMovilidad()); viaje.setCombustible(vsc.getSeleccionado().getCombustible()); viaje.setGerencia(vsc.getSeleccionado().getGerencia()); viaje.setCentroCosto(vsc.getSeleccionado().getCentroCosto()); viaje.setDiasAlimentacion(vsc.getSeleccionado().getDiasAlimentacion()); viaje.setDiasAlojamiento(vsc.getSeleccionado().getDiasAlojamiento()); viaje.setDiasMovLocal(vsc.getSeleccionado().getDiasMovLocal()); viaje.setDestino(vsc.getSeleccionado().getDestino()); viaje.setPermiso(seleccionada); vsc.setSeleccionado(viaje); vsc.accion(accion); } // FormularioUtil.mensajeExito(this, accion); this.accion = 0; FormularioUtil.limpiarComponente(this.pnlDatos); this.integrantes.clear(); this.controles(accion); this.btnComision.setVisible(false); this.busqueda(); if (FormularioUtil.dialogoConfirmar(this, 4)) { // this.imprimirBoleta(seleccionada); if (seleccionada.getTipoPermiso().getCodigo().equals("VCS")) { imprimirBoletaViaje(seleccionada.getAsignacionPermisoList().get(0)); } else { imprimirBoleta(seleccionada); } } } else { FormularioUtil.mensajeError(this, accion); } } }//GEN-LAST:event_btnGuardarActionPerformed private void btnAgregarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAgregarActionPerformed // TODO add your handling code here: DlgEmpleado dialogo = new DlgEmpleado(this); dialogo.setVisible(true); }//GEN-LAST:event_btnAgregarActionPerformed private void tblTablaMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblTablaMouseReleased // TODO add your handling code here: int fila = tblTabla.getSelectedRow(); if (fila != -1) { Permiso permiso = listado.get(fila).getPermiso(); mostrar(permiso); // FormularioUtil.activarComponente(this.btnImprimirTodo, true); } }//GEN-LAST:event_tblTablaMouseReleased private void btnQuitarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnQuitarActionPerformed // TODO add your handling code here: int fila = tblEmpleados.getSelectedRow(); if (fila != -1) { quitarEmpleado(fila); } }//GEN-LAST:event_btnQuitarActionPerformed private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed // TODO add your handling code here: DlgTipoPermiso dialogo = new DlgTipoPermiso(this); tipoSeleccionado = dialogo.getSeleccionado(); if (tipoSeleccionado == null) { System.out.println("ES NULL"); txtTipoPermiso.setText(""); } else { txtTipoPermiso.setText(tipoSeleccionado.getNombre()); if (tipoSeleccionado.getCodigo().equals("VCS")) { this.btnComision.setVisible(true); } } }//GEN-LAST:event_jButton1ActionPerformed private void txtEmpleadoKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtEmpleadoKeyReleased // TODO add your handling code here: if (evt.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) { lblBusqueda.setBusy(true); buscar(); lblBusqueda.setBusy(false); } }//GEN-LAST:event_txtEmpleadoKeyReleased private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed // TODO add your handling code here: DlgEmpleado dialogo = new DlgEmpleado(this); dialogo.setAgregar(false); this.empleadoSeleccionado = dialogo.getSeleccionado(); if (this.empleadoSeleccionado != null) { this.txtEmpleado .setText(empleadoSeleccionado.getNroDocumento() + " " + empleadoSeleccionado.getPaterno() + " " + empleadoSeleccionado.getMaterno() + " " + empleadoSeleccionado.getNombre()); } }//GEN-LAST:event_jButton4ActionPerformed private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLimpiarActionPerformed // TODO add your handling code here: FormularioUtil.limpiarComponente(this.txtEmpleado); this.empleadoSeleccionado = null; }//GEN-LAST:event_btnLimpiarActionPerformed private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBuscarActionPerformed // TODO add your handling code here: busqueda(); }//GEN-LAST:event_btnBuscarActionPerformed private void btnPrimeroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPrimeroActionPerformed // TODO add your handling code here: primero(); }//GEN-LAST:event_btnPrimeroActionPerformed private void btnAnteriorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAnteriorActionPerformed // TODO add your handling code here: anterior(); }//GEN-LAST:event_btnAnteriorActionPerformed private void spPaginaStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spPaginaStateChanged // TODO add your handling code here: this.seleccionPagina(); }//GEN-LAST:event_spPaginaStateChanged private void btnSiguienteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSiguienteActionPerformed // TODO add your handling code here: siguiente(); }//GEN-LAST:event_btnSiguienteActionPerformed private void btnUltimoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUltimoActionPerformed // TODO add your handling code here: ultimo(); }//GEN-LAST:event_btnUltimoActionPerformed private void cboTamanioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cboTamanioActionPerformed // TODO add your handling code here: this.paginaActual = 1; buscar(); this.actualizarControlesNavegacion(); }//GEN-LAST:event_cboTamanioActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed // TODO add your handling code here: int fila = this.tblTabla.getSelectedRow(); if (fila != -1) { // List<AsignacionPermiso> lista = new ArrayList<>(); AsignacionPermiso asignacion = this.listado.get(fila); // lista.add(asignacion);admin if (asignacion.getPermiso().getTipoPermiso().getCodigo().equals("VCS")) { imprimirBoletaViaje(asignacion); } else { imprimirBoleta(asignacion); } } else { JOptionPane.showMessageDialog(null, "Debe seleccionar un Item", "Mensaje del Sistema", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_jButton2ActionPerformed private void tblEmpleadosMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblEmpleadosMouseReleased // TODO add your handling code here: int fila; if ((fila = tblEmpleados.getSelectedRow()) != -1) { mostrarRecord(integrantes.get(fila)); } }//GEN-LAST:event_tblEmpleadosMouseReleased private void txtEmpleadoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtEmpleadoActionPerformed // TODO add your handling code here: }//GEN-LAST:event_txtEmpleadoActionPerformed private void radFechaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_radFechaActionPerformed // TODO add your handling code here: opciones(); }//GEN-LAST:event_radFechaActionPerformed private void radHoraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_radHoraActionPerformed // TODO add your handling code here: opciones(); }//GEN-LAST:event_radHoraActionPerformed private void radLoteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_radLoteActionPerformed // TODO add your handling code here: opciones(); }//GEN-LAST:event_radLoteActionPerformed private void txtTipoPermisoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtTipoPermisoActionPerformed // TODO add your handling code here: }//GEN-LAST:event_txtTipoPermisoActionPerformed private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed // TODO add your handling code here: int fila; if ((fila = tblTabla.getSelectedRow()) != -1) { accion = Controlador.ELIMINAR; if (FormularioUtil.dialogoConfirmar(this, accion)) { controlador.setSeleccionado(this.listado.get(fila).getPermiso()); if (controlador.accion(accion)) { FormularioUtil.mensajeExito(this, accion); accion = 0; this.integrantes.clear(); this.controles(accion); this.actualizarTabla(); } } } }//GEN-LAST:event_jButton3ActionPerformed private void btnComisionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnComisionActionPerformed // TODO add your handling code here: if (accion == Controlador.MODIFICAR) { DlgDatosComision viaje = new DlgDatosComision(this, vsc.buscarPorPermiso(controlador.getSeleccionado()), Controlador.MODIFICAR); viaje.setVisible(true); } else { if (vsc.getSeleccionado() == null) { DlgDatosComision viaje = new DlgDatosComision(this, null, accion); viaje.setVisible(true); // this.alimentacion = viaje.getAlimentacion(); // this.alojamiento = viaje.getAlojamiento(); // this.movilidad = viaje.getMovilidad(); // this.combustible = viaje.getCombustible(); // //// this.gerencia = viaje.getGerencia(); // this.centroCosto = viaje.getCosto(); // // this.diasAlimentacion = viaje.getDiasAlimentacion(); // this.diasAlojamiento = viaje.getDiasAlojamiento(); // this.diasMovLocal = viaje.getDiasMovilidad(); // // this.ubigeoSeleccion = viaje.getUbigeo(); Viaje nuevoViaje = new Viaje(); vsc.setSeleccionado(nuevoViaje); vsc.getSeleccionado().setAlimentacion(viaje.getAlimentacion()); vsc.getSeleccionado().setAlojamiento(viaje.getAlojamiento()); vsc.getSeleccionado().setMovilidad(viaje.getMovilidad()); vsc.getSeleccionado().setCombustible(viaje.getCombustible()); vsc.getSeleccionado().setCentroCosto(viaje.getCosto()); vsc.getSeleccionado().setDiasAlimentacion(viaje.getDiasAlimentacion()); vsc.getSeleccionado().setDiasAlojamiento(viaje.getDiasAlojamiento()); vsc.getSeleccionado().setDiasMovLocal(viaje.getDiasMovilidad()); vsc.getSeleccionado().setDestino(viaje.getUbigeo()); } else { DlgDatosComision viaje = new DlgDatosComision(this, vsc.getSeleccionado(), 2); viaje.setVisible(true); Viaje nuevoViaje = new Viaje(); vsc.setSeleccionado(nuevoViaje); vsc.getSeleccionado().setAlimentacion(viaje.getAlimentacion()); vsc.getSeleccionado().setAlojamiento(viaje.getAlojamiento()); vsc.getSeleccionado().setMovilidad(viaje.getMovilidad()); vsc.getSeleccionado().setCombustible(viaje.getCombustible()); vsc.getSeleccionado().setCentroCosto(viaje.getCosto()); vsc.getSeleccionado().setDiasAlimentacion(viaje.getDiasAlimentacion()); vsc.getSeleccionado().setDiasAlojamiento(viaje.getDiasAlojamiento()); vsc.getSeleccionado().setDiasMovLocal(viaje.getDiasMovilidad()); vsc.getSeleccionado().setDestino(viaje.getUbigeo()); } } }//GEN-LAST:event_btnComisionActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnAgregar; private javax.swing.JButton btnAnterior; private javax.swing.JButton btnBuscar; private javax.swing.JButton btnCancelar; private javax.swing.JButton btnComision; private javax.swing.JButton btnGuardar; private javax.swing.JButton btnLimpiar; private javax.swing.JButton btnModificar; private javax.swing.JButton btnNuevo; private javax.swing.JButton btnPrimero; private javax.swing.JButton btnQuitar; private javax.swing.JButton btnSiguiente; private javax.swing.JButton btnUltimo; private javax.swing.JComboBox cboTamanio; private com.toedter.calendar.JDateChooser dcFechaFin; private com.toedter.calendar.JDateChooser dcFechaFinBusqueda; private com.toedter.calendar.JDateChooser dcFechaInicio; private com.toedter.calendar.JDateChooser dcFechaInicioBusqueda; private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private org.jdesktop.swingx.JXBusyLabel lblBusqueda; private javax.swing.ButtonGroup opciones; private javax.swing.JPanel pnlBusqueda; private javax.swing.JPanel pnlDatos; private javax.swing.JPanel pnlListado; private javax.swing.JPanel pnlNavegacion; private javax.swing.JPanel pnlOpcion; private javax.swing.JRadioButton radFecha; private javax.swing.JRadioButton radHora; private javax.swing.JRadioButton radLote; private javax.swing.JSpinner spHoraFin; private javax.swing.JSpinner spHoraInicio; private javax.swing.JSpinner spPagina; private org.jdesktop.swingx.JXTable tblEmpleados; private org.jdesktop.swingx.JXTable tblTabla; private javax.swing.JTextField txtDocumento; private javax.swing.JTextField txtEmpleado; private javax.swing.JTextArea txtMotivo; private javax.swing.JTextField txtTipoPermiso; private javax.swing.JTextField txtTotal; // End of variables declaration//GEN-END:variables private void mostrar(Permiso permiso) { txtMotivo.setText(permiso.getMotivo()); txtTipoPermiso.setText(permiso.getTipoPermiso().getNombre()); this.radFecha.setSelected(permiso.isPorFecha()); dcFechaInicio.setDate(permiso.getFechaInicio()); txtDocumento.setText(permiso.getDocumento()); if (permiso.isPorFecha()) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); dcFechaFin.setDate(permiso.getFechaFin()); spHoraInicio.setValue(cal.getTime()); spHoraFin.setValue(cal.getTime()); } else { dcFechaFin.setDate(permiso.getFechaInicio()); spHoraInicio.setValue(permiso.getHoraInicio()); spHoraFin.setValue(permiso.getHoraFin()); } List<Empleado> empleados = obtenerListadoDNI(permiso.getAsignacionPermisoList()); if (!empleados.isEmpty()) { mostrarIntegrantes(empleados); } } private void bindeoSalvaje() { listado = new ArrayList<>(); listado = ObservableCollections.observableList(listado); integrantes = ObservableCollections.observableList(new ArrayList<Empleado>()); String[] columnasIntegrantes = { "Nro Documento", "Empleado" }; MTAsignacionPermiso mt = new MTAsignacionPermiso(listado); MTEmpleado mtIntegrantes = new MTEmpleado(integrantes, columnasIntegrantes); tblTabla.setModel(mt); tblEmpleados.setModel(mtIntegrantes); actualizarTabla(); } private void actualizarTabla() { listado.clear(); empleadoSeleccionado = null; FormularioUtil.limpiarComponente(txtEmpleado); paginaActual = 1; buscar(); actualizarControlesNavegacion(); tblTabla.packAll(); } private void mostrarIntegrantes(List<Empleado> empleados) { integrantes.clear(); integrantes.addAll(empleados); tblEmpleados.packAll(); } private void inicializar() { this.accion = 0; controlador = new PermisoControlador(); ec = new EmpleadoControlador(); ac = new AsignacionPermisoControlador(); // FormularioUtil.modeloSpinnerFechaHora(spFechaInicio, "dd/MM/yyyy"); // FormularioUtil.modeloSpinnerFechaHora(spFechaFin, "dd/MM/yyyy"); FormularioUtil.modeloSpinnerFechaHora(spHoraInicio, "HH:mm"); FormularioUtil.modeloSpinnerFechaHora(spHoraFin, "HH:mm"); this.controles(accion); } private void controles(int accion) { boolean bandera = accion == Controlador.NUEVO || accion == Controlador.MODIFICAR; FormularioUtil.activarComponente(this.pnlListado, !bandera); FormularioUtil.activarComponente(this.pnlDatos, bandera); FormularioUtil.activarComponente(this.txtEmpleado, false); // FormularioUtil.activarComponente(this.btnImprimirTodo, false); if (accion != Controlador.MODIFICAR) { FormularioUtil.limpiarComponente(this.pnlDatos); } this.txtTipoPermiso.setEditable(false); checkPorFecha(accion); } private List<Empleado> obtenerListadoDNI(List<AsignacionPermiso> detalles) { List<Empleado> empleados = new ArrayList<>(); for (AsignacionPermiso detalle : detalles) { empleados.add(detalle.getEmpleado()); } return empleados; } public void agregarEmpleado(Empleado empleado) { integrantes.add(empleado); AsignacionPermiso detalle = new AsignacionPermiso(); detalle.setEmpleado(empleado); detalle.setPermiso(controlador.getSeleccionado()); controlador.getSeleccionado().getAsignacionPermisoList().add(detalle); } private void quitarEmpleado(int fila) { integrantes.remove(fila); controlador.getSeleccionado().getAsignacionPermisoList().remove(fila); } private int paginaActual = 1; private int totalPaginas = 0; private int tamanioPagina = 0; private void buscar() { String busqueda = txtEmpleado.getText(); tamanioPagina = Integer.parseInt(cboTamanio.getSelectedItem().toString()); Date fechaInicio = dcFechaInicioBusqueda.getDate(); Date fechaFin = dcFechaFinBusqueda.getDate(); listado.clear(); List<AsignacionPermiso> lista = this.listar(empleadoSeleccionado, fechaInicio, fechaFin, paginaActual, tamanioPagina); System.out.println("LISTA: " + lista.size()); listado.addAll(lista); tblTabla.packAll(); } private List<AsignacionPermiso> listar(Empleado empleado, Date fechaInicio, Date fechaFin, int pagina, int tamanio) { int total; if (empleado == null) { total = ac.contarXFecha(fechaInicio, fechaFin); } else { total = ac.contarXEmpleadoXFecha(empleado, fechaInicio, fechaFin); } if (total % tamanio == 0) { totalPaginas = total / tamanio; } else { totalPaginas = (total / tamanio) + 1; } if (totalPaginas == 0) { totalPaginas = 1; } if (empleado == null) { return ac.buscarXFecha(fechaInicio, fechaFin, (pagina - 1) * tamanio, tamanio); } else { return ac.buscarXEmpleadoXFecha(empleado, fechaInicio, fechaFin, (pagina - 1) * tamanio, tamanio); } } private void siguiente() { paginaActual++; buscar(); this.actualizarControlesNavegacion(); } private void ultimo() { paginaActual = totalPaginas; buscar(); this.actualizarControlesNavegacion(); } private void primero() { paginaActual = 1; buscar(); this.actualizarControlesNavegacion(); } private void anterior() { paginaActual--; buscar(); this.actualizarControlesNavegacion(); } private void seleccionPagina() { paginaActual = (int) spPagina.getValue(); buscar(); this.actualizarControlesNavegacion(); } private void actualizarControlesNavegacion() { spPagina.setValue(paginaActual); txtTotal.setText(totalPaginas + ""); SpinnerNumberModel modeloSP = (SpinnerNumberModel) spPagina.getModel(); Comparable<Integer> maximo = totalPaginas; modeloSP.setMaximum(maximo); this.btnSiguiente.setEnabled(paginaActual != totalPaginas); this.btnUltimo.setEnabled(paginaActual != totalPaginas); this.btnAnterior.setEnabled(paginaActual != 1); this.btnPrimero.setEnabled(paginaActual != 1); } private final DateFormat dfFecha = new SimpleDateFormat("dd/MM/yyyy"); private final DateFormat dfHora = new SimpleDateFormat("HH:mm"); private void imprimirBoleta(Permiso seleccionada) { File reporte = new File("reportes/reporte_papeleta_salida.jasper"); // List<Long> lista = new ArrayList<>(); Map<String, Object> parametros = new HashMap<>(); parametros.put("permiso_id", seleccionada.getId()); parametros.put("por_lote", true); parametros.put("reporte_ususario", UsuarioActivo.getUsuario().getLogin()); parametros.put("reporte_institucion", Main.REPORTE_INSTITUCION); reporteador.setConn(controlador.getDao().getConexion()); reporteador.generarReporte(reporte, parametros, JOptionPane.getFrameForComponent(this)); } private void imprimirBoleta(AsignacionPermiso seleccionada) { File reporte = new File("reportes/reporte_papeleta_salida.jasper"); // List<Long> lista = new ArrayList<>(); Map<String, Object> parametros = new HashMap<>(); parametros.put("permiso_id", seleccionada.getPermiso().getId()); parametros.put("pers_nro_documento", seleccionada.getEmpleado().getNroDocumento()); parametros.put("por_lote", false); parametros.put("reporte_ususario", UsuarioActivo.getUsuario().getLogin()); parametros.put("reporte_institucion", Main.REPORTE_INSTITUCION); reporteador.setConn(controlador.getDao().getConexion()); reporteador.generarReporte(reporte, parametros, JOptionPane.getFrameForComponent(this)); } public long fechasAlong(Date inicio, Date fin) { long restaLog = (fin.getTime() - inicio.getTime()); long resta = (restaLog / (1000 * 60 * 60 * 24)) + 1; return resta; } private void imprimirBoletaViaje(AsignacionPermiso asignacion) { File reporte = new File("reportes/permiso_comision-servicios.jasper"); List<AsignacionPermiso> listadoReporteAsignacion = new ArrayList(); listadoReporteAsignacion.add(asignacion); Map<String, Object> parametros = new HashMap<>(); parametros.put("reporte_ususario", UsuarioActivo.getUsuario().getLogin()); Departamento area = asignacion.getEmpleado().getAreaEmpleadoList().get(0).getDepartamento(); if (area != null) { parametros.put("area", area.getNombre()); } // AsignarVacacion vac = new AsignarVacacion(); long dias = this.fechasAlong(asignacion.getPermiso().getFechaInicio(), asignacion.getPermiso().getFechaFin()); parametros.put("dias", dias); //Parametros del viaje Viaje viaje = vsc.buscarPorPermiso(asignacion.getPermiso()); if (viaje != null) { parametros.put("alimentacion", viaje.getAlimentacion()); parametros.put("alojamiento", viaje.getAlojamiento()); parametros.put("movilidad", viaje.getMovilidad()); parametros.put("combustible", viaje.getCombustible()); parametros.put("dias_alimentacion", viaje.getDiasAlimentacion()); parametros.put("dias_alojamiento", viaje.getDiasAlojamiento()); parametros.put("dias_movilidad", viaje.getDiasMovLocal()); // if (asignacion.getEmpleado().getAreaEmpleadoList().get(0).getDepartamento().getDepartamento().getNombre() != null) { // parametros.put("gerencia", asignacion.getEmpleado().getAreaEmpleadoList().get(0).getDepartamento().getDepartamento().getNombre()); // } else { parametros.put("gerencia", asignacion.getEmpleado().getAreaEmpleadoList().get(0).getGerencia().getNombre()); // } parametros.put("centro_costo", viaje.getCentroCosto()); parametros.put("ubigeo", viaje.getDestino()); parametros.put("cargo", asignacion.getEmpleado().getPuestoList().get(0).getPuesto().getNombre()); double total = (viaje.getAlimentacion() * viaje.getDiasAlimentacion()) + (viaje.getAlojamiento() * viaje.getDiasAlojamiento()) + (viaje.getMovilidad() * viaje.getDiasMovLocal()) + viaje.getCombustible(); parametros.put("total", total); } //Fin de parametros del viaje Component contentPane = reporteador.obtenerReporte(listadoReporteAsignacion, reporte, parametros); Frame principal = JOptionPane.getRootFrame(); JDialog visor = new JDialog(principal, "Reporte", true); visor.setSize(contentPane.getSize()); // visor.setSize(ventana.getSize().width, ventana.getSize().height); visor.getContentPane().add(contentPane); visor.setLocationRelativeTo(this); // visor.setUndecorated(true); visor.setBounds(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds()); visor.setVisible(true); visor.setAlwaysOnTop(true); // reporteador.getReporte(reporte, parametros, listado) // reporteador.setConn(controlador.getDao().getConexion()); // reporteador.generarReporte(reporte, parametros, JOptionPane.getFrameForComponent(this)); } private final TCAnalisisControlador tcac = new TCAnalisisControlador(); private void retrocederTiempo(List<String> empleados, Date fechaInicio) { tcac.retrocederTiempo(empleados, fechaInicio); } private void checkPorFecha(int accion) { if (accion != 0) { FormularioUtil.activarComponente(dcFechaInicio, true); FormularioUtil.activarComponente(dcFechaFin, radFecha.isSelected()); spHoraInicio.setEnabled(!radFecha.isSelected()); spHoraFin.setEnabled(!radFecha.isSelected()); } } private boolean erroresFormulario() { int errores = 0; Date fechaInicio = dcFechaInicio.getDate(); String mensaje = ""; if (integrantes.isEmpty()) { errores++; mensaje += ">Debe seleccionar uno o mas empleados\n"; } if (dcFechaInicio.getDate() == null || dcFechaFin.getDate() == null) { if (!radHora.isSelected()) { errores++; mensaje += "Una o ms fechas ingresadas incorrectamente \n"; } else if (radFecha.isSelected()) { errores++; mensaje += "Una o ms fechas ingresadas incorrectamente \n"; } } else { if (radFecha.isSelected()) { Date fechaFin = dcFechaFin.getDate(); if (fechaInicio.compareTo(fechaFin) > 0) { errores++; mensaje += ">La fecha de inicio debe ser menor que la fecha de fin\n"; } //Traemos los dnis de los empleados Permiso paraComprobar = this.controlador.getSeleccionado(); //List<String> dnis = new ArrayList<>(); for (AsignacionPermiso asignacion : paraComprobar.getAsignacionPermisoList()) { //dnis.add(asignacion.getEmpleado()); System.out.println(asignacion.getEmpleado()); // List<AsignacionPermiso> lista = ac.buscarXFechaDni(asignacion.getEmpleado(), fechaInicio); int conteoPorFecha = ac.contarXEmpleadoEntreFechaPorFecha(empleadoSeleccionado, fechaInicio, fechaFin); if (conteoPorFecha == 0) { } else if (accion != Controlador.MODIFICAR) { errores++; mensaje += "El empleado " + asignacion.getEmpleado() + " tiene conflicto con un permiso aadido anteriormente \n Ingrese otro rango de fechas \n"; break; } } } } //Traemos los permisos por dni if (radHora.isSelected()) { Date horaInicio = (Date) spHoraInicio.getValue(); Date horaFin = (Date) spHoraFin.getValue(); if (horaInicio.compareTo(horaFin) > 0) { errores++; mensaje += ">La hora de inicio debe ser menor que la hora de fin \n"; } Permiso paraComprobar = this.controlador.getSeleccionado(); for (AsignacionPermiso asignacion : paraComprobar.getAsignacionPermisoList()) { List<AsignacionPermiso> lista = ac.buscarXHora(asignacion.getEmpleado(), fechaInicio); Long conteoPorHora = lista.stream() .filter(perm -> (horaInicio.compareTo(perm.getPermiso().getHoraInicio()) <= 0 && horaFin.compareTo(perm.getPermiso().getHoraInicio()) >= 0) || (perm.getPermiso().getHoraInicio().compareTo(horaInicio) <= 0 && perm.getPermiso().getHoraFin().compareTo(horaInicio) >= 0)) .count(); if (conteoPorHora.intValue() == 0) { } else { errores++; mensaje += ">El empleado " + asignacion.getEmpleado() + " tiene conflicto con un permiso aadido anteriormente \n Ingrese otro rango de horas\n"; break; } } } if (errores > 0) { JOptionPane.showMessageDialog(this, "Se ha(n) encontrado el(los) siguiente(s) error(es):\n" + mensaje, "Mensaje del sistema", JOptionPane.ERROR_MESSAGE); } return errores != 0; } private void mostrarRecord(Empleado empleado) { Calendar cal = Calendar.getInstance(); cal.setTime(empleado.getContratoList().get(0).getFechaInicio()); Date fInicio = dcFechaInicio.getDate(); } private void opciones() { FormularioUtil.activarComponente(dcFechaInicio, true); FormularioUtil.activarComponente(dcFechaFin, radFecha.isSelected() || radLote.isSelected()); spHoraInicio.setEnabled(radHora.isSelected() || radLote.isSelected()); spHoraFin.setEnabled(radHora.isSelected() || radLote.isSelected()); } private void busqueda() { System.out.println("BUSCAR"); System.out.println("FEHCA:" + dcFechaInicioBusqueda.getDate()); if (dcFechaInicioBusqueda.getDate() != null && dcFechaFinBusqueda.getDate() != null) { lblBusqueda.setBusy(true); paginaActual = 1; buscar(); actualizarControlesNavegacion(); lblBusqueda.setBusy(false); } else { JOptionPane.showMessageDialog(this, "Una o ms fechas ingresadas incorrectamente", "Mensaje del sistema", JOptionPane.ERROR_MESSAGE); } } }