SHARE
TWEET

codigo1

a guest Jul 20th, 2019 201 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package UI.Chofer;
  2.  
  3. import Logica.AES;
  4. import Logica.Memoria;
  5. import Logica.Run;
  6. import Objetos.Ruta;
  7. import Objetos.Ticket;
  8. import UI.MLogin;
  9. import java.awt.Color;
  10. import java.util.LinkedList;
  11. import javax.swing.DefaultListModel;
  12.  
  13. public class MChofer extends javax.swing.JFrame {
  14.  
  15.     //Variable de tipo lista que almacena las rutas de la base de datos
  16.     private LinkedList<Ruta> lista_rutas = new LinkedList<Ruta>();
  17.     //Variable de tipo lista que almacena los tickets de la base de datos
  18.     private LinkedList<Ticket> lista_tickets = new LinkedList<Ticket>();
  19.     //Modelo para dar forma a la lista de rutas.
  20.     private DefaultListModel<Ruta> modelo_rutas = new DefaultListModel<>();
  21.     //String para controlar la digitacion de digitos en el panel electronico
  22.     //cuando se este en modo de pago manual
  23.     private String contenido_panel_de_digitación = "";
  24.     //variable local que almacena la ruta seleccionada
  25.     private Ruta ruta_seleccionada = new Ruta();
  26.  
  27.     private int costo_total = 0;
  28.  
  29.     public MChofer() {
  30.         initComponents();
  31.         settings();
  32.         cargar_rutas();
  33.         rellenar_lista_rutas();
  34.         cargar_tickets();
  35.     }
  36.  
  37.     //Carga las rutas de la base de datos.
  38.     private void cargar_rutas() {
  39.         this.lista_rutas = Memoria.sql_lite_query.obtener_rutas("SELECT * FROM RUTA");
  40.     }
  41.  
  42.     //ellena la lista de rutas con las rutas disponibles en la base de datos.
  43.     private void rellenar_lista_rutas() {
  44.         this.modelo_rutas.clear();
  45.         for (Ruta r : this.lista_rutas) {
  46.             this.modelo_rutas.add(0, r);
  47.         }
  48.         this.jList_rutas.setModel(this.modelo_rutas);
  49.     }
  50.  
  51.     //Carga los tickets almaenados en la base de datos
  52.     private void cargar_tickets() {
  53.         this.lista_tickets = Memoria.sql_lite_query.obtener_tickets("SELECT * FROM TICKET");
  54.     }
  55.  
  56.     private void settings() {
  57.         //Establece el icono en la barra de estado y en el icono.
  58.         setIconImage(Memoria.getIconImage());
  59.         //Coloca el frame en el centro de la pantalla.
  60.         this.setLocationRelativeTo(null);
  61.         //Hace el frame visible.
  62.         this.setVisible(true);
  63.         //Establece texto en la barra de estado.
  64.         this.setTitle(Memoria.app_name);
  65.         //No dejar que el frame se pueda hacer de tamaño grande
  66.         this.setResizable(false);
  67.         //establece la modalidad por default de pago en efectivo
  68.         this.jRadioButton_pago_manual.setSelected(true);
  69.         this.jRadioButton_pago_por_ticket.setSelected(false);
  70.         //Hacemos que el panel de digitación sea solo editable con el teclado
  71.         //solo cuando se esta en modalidad de pago manual.
  72.         this.jTextField_panel_de_digitacion.setEditable(false);
  73.     }
  74.  
  75.     @SuppressWarnings("unchecked")
  76.     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  77.     private void initComponents() {
  78.  
  79.         buttonGroup1 = new javax.swing.ButtonGroup();
  80.         jPanel1 = new javax.swing.JPanel();
  81.         jButton1 = new javax.swing.JButton();
  82.         jButton2 = new javax.swing.JButton();
  83.         jButton3 = new javax.swing.JButton();
  84.         jButton4 = new javax.swing.JButton();
  85.         jButton5 = new javax.swing.JButton();
  86.         jButton6 = new javax.swing.JButton();
  87.         jButton7 = new javax.swing.JButton();
  88.         jButton8 = new javax.swing.JButton();
  89.         jButton9 = new javax.swing.JButton();
  90.         jLabel1 = new javax.swing.JLabel();
  91.         jLabel2 = new javax.swing.JLabel();
  92.         jLabel_nombre_ruta = new javax.swing.JLabel();
  93.         jTextField_panel_de_digitacion = new javax.swing.JTextField();
  94.         jScrollPane1 = new javax.swing.JScrollPane();
  95.         jList_rutas = new javax.swing.JList<>();
  96.         jLabel10 = new javax.swing.JLabel();
  97.         jLabel11 = new javax.swing.JLabel();
  98.         jLabel12 = new javax.swing.JLabel();
  99.         jLabel_costo = new javax.swing.JLabel();
  100.         jSpinner_pasajeros = new javax.swing.JSpinner();
  101.         jLabel14 = new javax.swing.JLabel();
  102.         jLabel_total_a_pagar = new javax.swing.JLabel();
  103.         jButton0 = new javax.swing.JButton();
  104.         jButton_C = new javax.swing.JButton();
  105.         jRadioButton_pago_manual = new javax.swing.JRadioButton();
  106.         jRadioButton_pago_por_ticket = new javax.swing.JRadioButton();
  107.         jButton13_log_out = new javax.swing.JButton();
  108.         jButton_pago_validar = new javax.swing.JButton();
  109.         jLabel4 = new javax.swing.JLabel();
  110.         jLabel_status = new javax.swing.JLabel();
  111.  
  112.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  113.  
  114.         jButton1.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  115.         jButton1.setText("1");
  116.         jButton1.addActionListener(new java.awt.event.ActionListener() {
  117.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  118.                 jButton1ActionPerformed(evt);
  119.             }
  120.         });
  121.  
  122.         jButton2.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  123.         jButton2.setText("2");
  124.         jButton2.addActionListener(new java.awt.event.ActionListener() {
  125.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  126.                 jButton2ActionPerformed(evt);
  127.             }
  128.         });
  129.  
  130.         jButton3.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  131.         jButton3.setText("3");
  132.         jButton3.addActionListener(new java.awt.event.ActionListener() {
  133.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  134.                 jButton3ActionPerformed(evt);
  135.             }
  136.         });
  137.  
  138.         jButton4.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  139.         jButton4.setText("4");
  140.         jButton4.addActionListener(new java.awt.event.ActionListener() {
  141.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  142.                 jButton4ActionPerformed(evt);
  143.             }
  144.         });
  145.  
  146.         jButton5.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  147.         jButton5.setText("5");
  148.         jButton5.addActionListener(new java.awt.event.ActionListener() {
  149.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  150.                 jButton5ActionPerformed(evt);
  151.             }
  152.         });
  153.  
  154.         jButton6.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  155.         jButton6.setText("6");
  156.         jButton6.addActionListener(new java.awt.event.ActionListener() {
  157.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  158.                 jButton6ActionPerformed(evt);
  159.             }
  160.         });
  161.  
  162.         jButton7.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  163.         jButton7.setText("7");
  164.         jButton7.setToolTipText("");
  165.         jButton7.addActionListener(new java.awt.event.ActionListener() {
  166.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  167.                 jButton7ActionPerformed(evt);
  168.             }
  169.         });
  170.  
  171.         jButton8.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  172.         jButton8.setText("8");
  173.         jButton8.addActionListener(new java.awt.event.ActionListener() {
  174.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  175.                 jButton8ActionPerformed(evt);
  176.             }
  177.         });
  178.  
  179.         jButton9.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  180.         jButton9.setText("9");
  181.         jButton9.setToolTipText("");
  182.         jButton9.addActionListener(new java.awt.event.ActionListener() {
  183.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  184.                 jButton9ActionPerformed(evt);
  185.             }
  186.         });
  187.  
  188.         jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
  189.         jLabel1.setText("Pagos - Chofer");
  190.  
  191.         jLabel2.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
  192.         jLabel2.setText("Ruta:");
  193.  
  194.         jLabel_nombre_ruta.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  195.         jLabel_nombre_ruta.setText("sin ruta seleccionada");
  196.  
  197.         jTextField_panel_de_digitacion.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
  198.  
  199.         jList_rutas.addMouseListener(new java.awt.event.MouseAdapter() {
  200.             public void mouseClicked(java.awt.event.MouseEvent evt) {
  201.                 jList_rutasMouseClicked(evt);
  202.             }
  203.         });
  204.         jScrollPane1.setViewportView(jList_rutas);
  205.  
  206.         jLabel10.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
  207.         jLabel10.setText("Lista rutas");
  208.  
  209.         jLabel11.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
  210.         jLabel11.setText("Costo:");
  211.  
  212.         jLabel12.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
  213.         jLabel12.setText("Pasajeros:");
  214.  
  215.         jLabel_costo.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  216.         jLabel_costo.setText("â‚¡:");
  217.         jLabel_costo.setToolTipText("");
  218.  
  219.         jSpinner_pasajeros.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  220.         jSpinner_pasajeros.setModel(new javax.swing.SpinnerNumberModel(1, 1, 60, 1));
  221.         jSpinner_pasajeros.addChangeListener(new javax.swing.event.ChangeListener() {
  222.             public void stateChanged(javax.swing.event.ChangeEvent evt) {
  223.                 jSpinner_pasajerosStateChanged(evt);
  224.             }
  225.         });
  226.  
  227.         jLabel14.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
  228.         jLabel14.setText("Total:");
  229.  
  230.         jLabel_total_a_pagar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  231.         jLabel_total_a_pagar.setText("â‚¡:");
  232.         jLabel_total_a_pagar.setToolTipText("");
  233.  
  234.         jButton0.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  235.         jButton0.setText("0");
  236.         jButton0.setToolTipText("");
  237.         jButton0.addActionListener(new java.awt.event.ActionListener() {
  238.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  239.                 jButton0ActionPerformed(evt);
  240.             }
  241.         });
  242.  
  243.         jButton_C.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  244.         jButton_C.setText("C");
  245.         jButton_C.setToolTipText("");
  246.         jButton_C.addActionListener(new java.awt.event.ActionListener() {
  247.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  248.                 jButton_CActionPerformed(evt);
  249.             }
  250.         });
  251.  
  252.         buttonGroup1.add(jRadioButton_pago_manual);
  253.         jRadioButton_pago_manual.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
  254.         jRadioButton_pago_manual.setText("Pago manual");
  255.         jRadioButton_pago_manual.addActionListener(new java.awt.event.ActionListener() {
  256.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  257.                 jRadioButton_pago_manualActionPerformed(evt);
  258.             }
  259.         });
  260.  
  261.         buttonGroup1.add(jRadioButton_pago_por_ticket);
  262.         jRadioButton_pago_por_ticket.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
  263.         jRadioButton_pago_por_ticket.setText("Pago por ticket");
  264.         jRadioButton_pago_por_ticket.addActionListener(new java.awt.event.ActionListener() {
  265.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  266.                 jRadioButton_pago_por_ticketActionPerformed(evt);
  267.             }
  268.         });
  269.  
  270.         jButton13_log_out.setText("Log out");
  271.         jButton13_log_out.addActionListener(new java.awt.event.ActionListener() {
  272.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  273.                 jButton13_log_outActionPerformed(evt);
  274.             }
  275.         });
  276.  
  277.         jButton_pago_validar.setText("Pagar/Validar");
  278.         jButton_pago_validar.addActionListener(new java.awt.event.ActionListener() {
  279.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  280.                 jButton_pago_validarActionPerformed(evt);
  281.             }
  282.         });
  283.  
  284.         jLabel4.setText("Colones/ticket");
  285.  
  286.         jLabel_status.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
  287.  
  288.         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  289.         jPanel1.setLayout(jPanel1Layout);
  290.         jPanel1Layout.setHorizontalGroup(
  291.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  292.             .addGroup(jPanel1Layout.createSequentialGroup()
  293.                 .addGap(204, 204, 204)
  294.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  295.                     .addComponent(jLabel4)
  296.                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
  297.                         .addComponent(jButton_pago_validar, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  298.                         .addGroup(jPanel1Layout.createSequentialGroup()
  299.                             .addComponent(jRadioButton_pago_manual)
  300.                             .addGap(41, 41, 41)
  301.                             .addComponent(jRadioButton_pago_por_ticket))))
  302.                 .addGap(0, 34, Short.MAX_VALUE))
  303.             .addGroup(jPanel1Layout.createSequentialGroup()
  304.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  305.                     .addGroup(jPanel1Layout.createSequentialGroup()
  306.                         .addGap(212, 212, 212)
  307.                         .addComponent(jLabel_status))
  308.                     .addGroup(jPanel1Layout.createSequentialGroup()
  309.                         .addContainerGap()
  310.                         .addComponent(jButton13_log_out, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE)))
  311.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  312.             .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  313.                 .addGroup(jPanel1Layout.createSequentialGroup()
  314.                     .addGap(10, 10, 10)
  315.                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  316.                         .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 176, javax.swing.GroupLayout.PREFERRED_SIZE)
  317.                         .addComponent(jLabel10)
  318.                         .addComponent(jLabel1))
  319.                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  320.                         .addGroup(jPanel1Layout.createSequentialGroup()
  321.                             .addGap(18, 18, 18)
  322.                             .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  323.                                 .addGroup(jPanel1Layout.createSequentialGroup()
  324.                                     .addGap(57, 57, 57)
  325.                                     .addComponent(jLabel_nombre_ruta))
  326.                                 .addComponent(jLabel2)
  327.                                 .addGroup(jPanel1Layout.createSequentialGroup()
  328.                                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  329.                                         .addGroup(jPanel1Layout.createSequentialGroup()
  330.                                             .addComponent(jLabel11)
  331.                                             .addGap(28, 28, 28)
  332.                                             .addComponent(jLabel_costo))
  333.                                         .addGroup(jPanel1Layout.createSequentialGroup()
  334.                                             .addComponent(jLabel12)
  335.                                             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  336.                                             .addComponent(jSpinner_pasajeros, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE))
  337.                                         .addGroup(jPanel1Layout.createSequentialGroup()
  338.                                             .addComponent(jLabel14)
  339.                                             .addGap(18, 18, 18)
  340.                                             .addComponent(jLabel_total_a_pagar)))
  341.                                     .addGap(18, 18, 18)
  342.                                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  343.                                         .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  344.                                             .addGroup(jPanel1Layout.createSequentialGroup()
  345.                                                 .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
  346.                                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  347.                                                 .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
  348.                                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  349.                                                 .addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
  350.                                             .addGroup(jPanel1Layout.createSequentialGroup()
  351.                                                 .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
  352.                                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  353.                                                 .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
  354.                                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  355.                                                 .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)))
  356.                                         .addGroup(jPanel1Layout.createSequentialGroup()
  357.                                             .addComponent(jButton7, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
  358.                                             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  359.                                             .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  360.                                                 .addGroup(jPanel1Layout.createSequentialGroup()
  361.                                                     .addComponent(jButton0, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
  362.                                                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  363.                                                     .addComponent(jButton_C, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
  364.                                                 .addGroup(jPanel1Layout.createSequentialGroup()
  365.                                                     .addComponent(jButton8, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
  366.                                                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  367.                                                     .addComponent(jButton9, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))))))))
  368.                         .addGroup(jPanel1Layout.createSequentialGroup()
  369.                             .addGap(104, 104, 104)
  370.                             .addComponent(jTextField_panel_de_digitacion, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE)))
  371.                     .addContainerGap(46, Short.MAX_VALUE)))
  372.         );
  373.         jPanel1Layout.setVerticalGroup(
  374.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  375.             .addGroup(jPanel1Layout.createSequentialGroup()
  376.                 .addContainerGap(256, Short.MAX_VALUE)
  377.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  378.                     .addComponent(jRadioButton_pago_manual)
  379.                     .addComponent(jRadioButton_pago_por_ticket))
  380.                 .addGap(33, 33, 33)
  381.                 .addComponent(jLabel4)
  382.                 .addGap(42, 42, 42)
  383.                 .addComponent(jButton_pago_validar)
  384.                 .addGap(33, 33, 33)
  385.                 .addComponent(jLabel_status)
  386.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  387.                 .addComponent(jButton13_log_out)
  388.                 .addContainerGap())
  389.             .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  390.                 .addGroup(jPanel1Layout.createSequentialGroup()
  391.                     .addContainerGap()
  392.                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  393.                         .addGroup(jPanel1Layout.createSequentialGroup()
  394.                             .addComponent(jLabel1)
  395.                             .addGap(16, 16, 16)
  396.                             .addComponent(jLabel10))
  397.                         .addGroup(jPanel1Layout.createSequentialGroup()
  398.                             .addGap(21, 21, 21)
  399.                             .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  400.                                 .addComponent(jLabel2)
  401.                                 .addComponent(jLabel_nombre_ruta))))
  402.                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  403.                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  404.                         .addGroup(jPanel1Layout.createSequentialGroup()
  405.                             .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  406.                                 .addGroup(jPanel1Layout.createSequentialGroup()
  407.                                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  408.                                         .addComponent(jLabel11)
  409.                                         .addComponent(jLabel_costo))
  410.                                     .addGap(18, 18, 18)
  411.                                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  412.                                         .addComponent(jLabel12)
  413.                                         .addComponent(jSpinner_pasajeros, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  414.                                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  415.                                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  416.                                         .addComponent(jLabel14)
  417.                                         .addComponent(jLabel_total_a_pagar)))
  418.                                 .addGroup(jPanel1Layout.createSequentialGroup()
  419.                                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  420.                                         .addComponent(jButton1)
  421.                                         .addComponent(jButton2)
  422.                                         .addComponent(jButton3))
  423.                                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  424.                                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  425.                                         .addComponent(jButton4)
  426.                                         .addComponent(jButton5)
  427.                                         .addComponent(jButton6))
  428.                                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  429.                                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  430.                                         .addComponent(jButton7)
  431.                                         .addComponent(jButton8)
  432.                                         .addComponent(jButton9))
  433.                                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  434.                                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  435.                                         .addComponent(jButton0)
  436.                                         .addComponent(jButton_C))))
  437.                             .addGap(66, 66, 66)
  438.                             .addComponent(jTextField_panel_de_digitacion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  439.                         .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 369, javax.swing.GroupLayout.PREFERRED_SIZE))
  440.                     .addContainerGap(36, Short.MAX_VALUE)))
  441.         );
  442.  
  443.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  444.         getContentPane().setLayout(layout);
  445.         layout.setHorizontalGroup(
  446.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  447.             .addGroup(layout.createSequentialGroup()
  448.                 .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  449.                 .addContainerGap())
  450.         );
  451.         layout.setVerticalGroup(
  452.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  453.             .addGroup(layout.createSequentialGroup()
  454.                 .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  455.                 .addContainerGap())
  456.         );
  457.  
  458.         pack();
  459.     }// </editor-fold>                        
  460.  
  461.     // <editor-fold desc="Botones">
  462.  
  463.     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  464.         if (this.jRadioButton_pago_manual.isSelected()) {
  465.             this.contenido_panel_de_digitación += "1";
  466.             this.jTextField_panel_de_digitacion.setText(this.contenido_panel_de_digitación);
  467.             label_status_change("", "black");
  468.         }
  469.     }                                        
  470.  
  471.     private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  472.         if (this.jRadioButton_pago_manual.isSelected()) {
  473.             this.contenido_panel_de_digitación += "2";
  474.             this.jTextField_panel_de_digitacion.setText(this.contenido_panel_de_digitación);
  475.             label_status_change("", "black");
  476.         }
  477.     }                                        
  478.  
  479.     private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  480.         if (this.jRadioButton_pago_manual.isSelected()) {
  481.             this.contenido_panel_de_digitación += "3";
  482.             this.jTextField_panel_de_digitacion.setText(this.contenido_panel_de_digitación);
  483.             label_status_change("", "black");
  484.         }
  485.     }                                        
  486.  
  487.     private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  488.         if (this.jRadioButton_pago_manual.isSelected()) {
  489.             this.contenido_panel_de_digitación += "4";
  490.             this.jTextField_panel_de_digitacion.setText(this.contenido_panel_de_digitación);
  491.             label_status_change("", "black");
  492.         }
  493.     }                                        
  494.  
  495.     private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  496.         if (this.jRadioButton_pago_manual.isSelected()) {
  497.             this.contenido_panel_de_digitación += "5";
  498.             this.jTextField_panel_de_digitacion.setText(this.contenido_panel_de_digitación);
  499.             label_status_change("", "black");
  500.         }
  501.     }                                        
  502.  
  503.     private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  504.         if (this.jRadioButton_pago_manual.isSelected()) {
  505.             this.contenido_panel_de_digitación += "6";
  506.             this.jTextField_panel_de_digitacion.setText(this.contenido_panel_de_digitación);
  507.             label_status_change("", "black");
  508.         }
  509.     }                                        
  510.  
  511.     private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  512.         if (this.jRadioButton_pago_manual.isSelected()) {
  513.             this.contenido_panel_de_digitación += "7";
  514.             this.jTextField_panel_de_digitacion.setText(this.contenido_panel_de_digitación);
  515.             label_status_change("", "black");
  516.         }
  517.     }                                        
  518.  
  519.     private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  520.         if (this.jRadioButton_pago_manual.isSelected()) {
  521.             this.contenido_panel_de_digitación += "8";
  522.             this.jTextField_panel_de_digitacion.setText(this.contenido_panel_de_digitación);
  523.             label_status_change("", "black");
  524.         }
  525.     }                                        
  526.  
  527.     private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  528.         if (this.jRadioButton_pago_manual.isSelected()) {
  529.             this.contenido_panel_de_digitación += "9";
  530.             this.jTextField_panel_de_digitacion.setText(this.contenido_panel_de_digitación);
  531.             label_status_change("", "black");
  532.         }
  533.     }                                        
  534.  
  535.     private void jButton0ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  536.         if (this.jRadioButton_pago_manual.isSelected()) {
  537.             this.contenido_panel_de_digitación += "0";
  538.             this.jTextField_panel_de_digitacion.setText(this.contenido_panel_de_digitación);
  539.             label_status_change("", "black");
  540.         }
  541.     }                                        
  542.  
  543.     private void jButton_CActionPerformed(java.awt.event.ActionEvent evt) {                                          
  544.         this.contenido_panel_de_digitación = "";
  545.         this.jTextField_panel_de_digitacion.setText(this.contenido_panel_de_digitación);
  546.         label_status_change("", "black");
  547.     }                                        
  548.  
  549.     // </editor-fold>
  550.  
  551.     private void jButton13_log_outActionPerformed(java.awt.event.ActionEvent evt) {                                                  
  552.         MLogin mLogin = new MLogin();
  553.         this.dispose();
  554.     }                                                
  555.  
  556.     private void jRadioButton_pago_por_ticketActionPerformed(java.awt.event.ActionEvent evt) {                                                            
  557.         //Cambio a la modalidad de pago por ticket. Se hacen cambios en la visual
  558.         if (this.jRadioButton_pago_por_ticket.isSelected()) {
  559.             //se deshabilita el teclado electronico
  560.             cambiar_estado_de_teclado_electronico(false);
  561.             //se limpia el contenido del panel electronico
  562.             limpiar_panel_electronico();
  563.             //se habilita el panel electronico para escribir en el con el teclado
  564.             cambiar_estado_panel_electronico(true);
  565.             //Cambios visuales
  566.             this.jLabel_nombre_ruta.setText("sin ruta seleccionada");
  567.             this.jList_rutas.setEnabled(false);
  568.             this.jSpinner_pasajeros.setEnabled(false);
  569.             this.costo_total = 0;
  570.             this.jLabel_costo.setText("â‚¡:");
  571.             this.jLabel_total_a_pagar.setText("â‚¡:");
  572.             this.jSpinner_pasajeros.setValue((int) 1);
  573.             this.ruta_seleccionada = null;
  574.             this.jButton_pago_validar.setText("Validar");
  575.             label_status_change("", "black");
  576.             //se deselecciona cualquier ruta previamente seleccionada en la
  577.             //modalidad de pago manual
  578.             this.jList_rutas.clearSelection();
  579.         }
  580.     }                                                            
  581.  
  582.     private void jRadioButton_pago_manualActionPerformed(java.awt.event.ActionEvent evt) {                                                        
  583.         //cambios en la visual del frame si se cambia a modalidad de pago manual
  584.         if (this.jRadioButton_pago_manual.isSelected()) {
  585.             //se activa el teclado electronico
  586.             cambiar_estado_de_teclado_electronico(true);
  587.             //se limpia el contenido del teclado electronico
  588.             limpiar_panel_electronico();
  589.             //deshabilita la digitacion del teclado fisico en el panel electronico
  590.             cambiar_estado_panel_electronico(false);
  591.             //activa la seleccion de rutas
  592.             this.jList_rutas.setEnabled(true);
  593.             //activa el spinner de cantidad de pasajeros
  594.             this.jSpinner_pasajeros.setEnabled(true);
  595.             //cambia el texto del boton a "pagar
  596.             this.jButton_pago_validar.setText("Pagar");
  597.             //borra la ruta seleccionada, porque en modo ticket ahora se paga
  598.             //con tickets y no con seleccion de rutas
  599.             this.ruta_seleccionada = null;
  600.         }
  601.     }                                                        
  602.  
  603.     private void jList_rutasMouseClicked(java.awt.event.MouseEvent evt) {                                        
  604.         //Al pulsar la lista de rutas, se actualiza la información de la ruta
  605.         //seleccionada en pantalla.
  606.         this.ruta_seleccionada = this.jList_rutas.getSelectedValue();
  607.         if (ruta_seleccionada != null) {
  608.             this.costo_total = this.ruta_seleccionada.getCosto();
  609.             //Muestra en pantalla el nombre de la ruta
  610.             this.jLabel_nombre_ruta.setText(ruta_seleccionada.getNombreRuta());
  611.             //Muestra en pantalla el costo de la ruta
  612.             this.jLabel_costo.setText("â‚¡: " + this.ruta_seleccionada.getCosto());
  613.             //muestra en pantalla el costo total a pagar
  614.             this.jLabel_total_a_pagar.setText("â‚¡: " + this.ruta_seleccionada.getCosto());
  615.             //resetea el spiner a 1, por default se asume que se va a pagar solo
  616.             //una entrada
  617.             this.jSpinner_pasajeros.setValue((int) 1);
  618.         }
  619.     }                                        
  620.  
  621.     private void jSpinner_pasajerosStateChanged(javax.swing.event.ChangeEvent evt) {                                                
  622.         //Aumenta el precio total en relaion a cuantos pasajeros supone el pago
  623.         //de un pasaje.
  624.         int valor = (int) this.jSpinner_pasajeros.getValue();
  625.         this.costo_total = (this.ruta_seleccionada.getCosto() * valor);
  626.         this.jLabel_total_a_pagar.setText("â‚¡:" + costo_total);
  627.     }                                              
  628.  
  629.     private void jButton_pago_validarActionPerformed(java.awt.event.ActionEvent evt) {                                                    
  630.         //Al pulsar el boton de validar pago, se llama el metodo correspondiente a esta accion.
  631.         verificacion_antes_de_pago(tipo_de_pago());
  632.     }                                                    
  633.  
  634.     //Tipo de pago. 0=Pago manual. 1=Pago por ticket.
  635.     private void verificacion_antes_de_pago(int tipo_pago) {
  636.         switch (tipo_pago) {
  637.             //pago manual
  638.             case 0:
  639.                 //valida que se hata seleccionado una ruta antes de intentar un pago.
  640.                 if (this.ruta_seleccionada != null && costo_total > 0) {
  641.                     //valida que se haya digitado algo en el menu de digitacion
  642.                     if (!this.jTextField_panel_de_digitacion.getText().equals("")) {
  643.                         //valida si el monto dado es mayor o igual al cobro del pase
  644.                         if (this.costo_total <= Integer.parseInt(this.jTextField_panel_de_digitacion.getText())) {
  645.                             //si llegamos aqui, el pago fue exitoso
  646.                             int valor_con_que_el_cliente_paga = Integer.parseInt(this.jTextField_panel_de_digitacion.getText());
  647.                             this.jTextField_panel_de_digitacion.setText("");
  648.                             this.contenido_panel_de_digitación = "";
  649.                             //mostramos en pantalla el vuelto del cliente.
  650.                             label_status_change("El vuelto del cliente es: " + (valor_con_que_el_cliente_paga - this.costo_total), "black");
  651.                             //Metodo que agrega el registro de un pago manual en la base de datos.
  652.                             insertar_registro_en_historial_compra_PAGO_MANUAL();
  653.                         } else {
  654.                             this.jTextField_panel_de_digitacion.setText("");
  655.                             this.contenido_panel_de_digitación = "";
  656.                             Run.message("El monto que el cliente ha dado no es suficiente!", "Monto insuficiente", 2);
  657.                         }
  658.                     } else {
  659.                         Run.message("Debe digitar el monto con el que el cliente paga su entrada!", "Falta informacion.", 0);
  660.                     }
  661.                 } else {
  662.                     Run.message("Debe seleccionar una ruta primero!", "Sin ruta seleccionada", 0);
  663.                 }
  664.                 break;
  665.                 //Modalidad de pago por ticket
  666.             case 1:
  667.                 //Boolean para validar si el ticket existe
  668.                 boolean ticket_existente = false;
  669.                 Ticket ticket_encontrado = new Ticket();
  670.                 //validar si se escribio algo en el panel virtual
  671.                 if (!this.jTextField_panel_de_digitacion.getText().equals("")) {
  672.                     String codigo_ticket = jTextField_panel_de_digitacion.getText();
  673.                     //busca el ticket en la base de datos.
  674.                     for (Ticket t : this.lista_tickets) {
  675.                         //si entra aqui, no ha encontrado
  676.                         if (AES.decrypt(t.getCodigo(), Memoria.DBKeyPassword).equals(codigo_ticket)) {
  677.                             ticket_existente = true;
  678.                             ticket_encontrado = t;
  679.                             break;
  680.                         }
  681.                     }
  682.                     if (ticket_existente) {
  683.                         if (!ticket_encontrado.isUtilizado()) {
  684.                             //Si el ticket no ha sido utilizado se ejecuta el update del ticket en la base
  685.                             //de datos para especificar que acaba de ser utilizado.
  686.                             Memoria.sql_lite_query.Query("UPDATE TICKET\n"
  687.                                     + "SET Utilizado = '" + true + "'"
  688.                                     + "WHERE TicketID = '" + ticket_encontrado.getDB_ID() + "';", "Ticket actualizado... utilizado");
  689.                             Run.message("Ticket aceptado. El cliente puede pasar.", "Ticket correcto.", 1);
  690.                             insertar_registro_en_historial_compra_TICKET(ticket_encontrado);
  691.                             cargar_tickets();
  692.                             //mensajes de error
  693.                         } else {
  694.                             //si el ticket ya ha sido utilizado, se mostrara esa alerta
  695.                             Run.message("El ticket digitado ya ha sido utilizado...", "Ticket utilizado", 2);
  696.                         }
  697.                     } else {
  698.                         Run.message("El ticket ingresado no existe!", "Ticket no existente", 0);
  699.                     }
  700.                     break;
  701.                 }
  702.  
  703.             default:
  704.                 throw new AssertionError();
  705.         }
  706.     }
  707.  
  708.     //Retorna 0 o 1 segun corresponda para realizar las lineas de codigo
  709.     //correspondiente a si el cliente esta ingresando al autobus por medio del
  710.     //uso de un ticket o un pago manual.
  711.     //0=Pago manual. 1=Pago por ticket.
  712.     private int tipo_de_pago() {
  713.         //Esto se valida dependiendo de si el jradiobutton esta activado o no.
  714.         if (jRadioButton_pago_manual.isSelected()) {
  715.             return 0;
  716.         } else {
  717.             return 1;
  718.         }
  719.     }
  720.  
  721.     //Habilita o deshabilita el teclado electronico.
  722.     private void cambiar_estado_de_teclado_electronico(boolean estado) {
  723.         this.jButton0.setEnabled(estado);
  724.         this.jButton1.setEnabled(estado);
  725.         this.jButton2.setEnabled(estado);
  726.         this.jButton3.setEnabled(estado);
  727.         this.jButton4.setEnabled(estado);
  728.         this.jButton5.setEnabled(estado);
  729.         this.jButton6.setEnabled(estado);
  730.         this.jButton7.setEnabled(estado);
  731.         this.jButton8.setEnabled(estado);
  732.         this.jButton9.setEnabled(estado);
  733.     }
  734.  
  735.     //Vacia
  736.     private void limpiar_panel_electronico() {
  737.         this.contenido_panel_de_digitación = "";
  738.         this.jTextField_panel_de_digitacion.setText("");
  739.     }
  740.  
  741.     //habilita o deshabilita la digitacion por teclado del panel electronico.
  742.     private void cambiar_estado_panel_electronico(boolean estado) {
  743.         this.jTextField_panel_de_digitacion.setEditable(estado);
  744.     }
  745.  
  746.     //Metodo que cambia el texto del vuelto del usuario
  747.     private void label_status_change(String message, String color) {
  748.         switch (color) {
  749.             case "red":
  750.                 jLabel_status.setForeground(Color.red);
  751.                 break;
  752.             case "blue":
  753.                 jLabel_status.setForeground(Color.blue);
  754.                 break;
  755.             case "green":
  756.                 jLabel_status.setForeground(Color.green);
  757.                 break;
  758.             case "black":
  759.                 jLabel_status.setForeground(Color.black);
  760.                 break;
  761.             default:
  762.                 throw new AssertionError();
  763.         }
  764.         jLabel_status.setText(message);
  765.     }
  766.  
  767.     //Inserta un registro en la tabla de historial de compras cuando se hace una
  768.     //entrada de un cliente utilizando un ticket.
  769.     private void insertar_registro_en_historial_compra_TICKET(Ticket ticket) {
  770.         Memoria.sql_lite_query.Query("INSERT INTO HISTORIAL_COMPRA "
  771.                 + "(UserID_cliente"
  772.                 + ", UserID_cobrador"
  773.                 + ", TicketID"
  774.                 + ", RutaID)"
  775.                 + "VALUES "
  776.                 + "('" + ticket.getClienteID() + "'"
  777.                 + ", '" + Memoria.usuario_actual.getDB_ID() + "'"
  778.                 + ", '" + ticket.getDB_ID() + "'"
  779.                 + ", '" + ticket.getRutaID() + "');", "Registro de pago con ticket guardado");
  780.     }
  781.  
  782.     //Inserta un registro en la tabla de historial de compras cuando se hace una
  783.     //entrada de un cliente cuando paga de manera manual
  784.     private void insertar_registro_en_historial_compra_PAGO_MANUAL() {
  785.         Memoria.sql_lite_query.Query("INSERT INTO HISTORIAL_COMPRA "
  786.                 + "(UserID_cobrador"
  787.                 + ", RutaID"
  788.                 + ",Monto)\n"
  789.                 + "VALUES "
  790.                 + "('" + Memoria.usuario_actual.getDB_ID() + "'"
  791.                 + ", '" + this.ruta_seleccionada.getDB_ID() + "'"
  792.                 + ", '" + this.ruta_seleccionada.getCosto() + "');", "Registro de pago manual guardado");
  793.         Run.message("Pago exitoso", "Pago exitoso", 1);
  794.     }
  795.  
  796.  
  797.     // Variables declaration - do not modify                    
  798.     private javax.swing.ButtonGroup buttonGroup1;
  799.     private javax.swing.JButton jButton0;
  800.     private javax.swing.JButton jButton1;
  801.     private javax.swing.JButton jButton13_log_out;
  802.     private javax.swing.JButton jButton2;
  803.     private javax.swing.JButton jButton3;
  804.     private javax.swing.JButton jButton4;
  805.     private javax.swing.JButton jButton5;
  806.     private javax.swing.JButton jButton6;
  807.     private javax.swing.JButton jButton7;
  808.     private javax.swing.JButton jButton8;
  809.     private javax.swing.JButton jButton9;
  810.     private javax.swing.JButton jButton_C;
  811.     private javax.swing.JButton jButton_pago_validar;
  812.     private javax.swing.JLabel jLabel1;
  813.     private javax.swing.JLabel jLabel10;
  814.     private javax.swing.JLabel jLabel11;
  815.     private javax.swing.JLabel jLabel12;
  816.     private javax.swing.JLabel jLabel14;
  817.     private javax.swing.JLabel jLabel2;
  818.     private javax.swing.JLabel jLabel4;
  819.     private javax.swing.JLabel jLabel_costo;
  820.     private javax.swing.JLabel jLabel_nombre_ruta;
  821.     private javax.swing.JLabel jLabel_status;
  822.     private javax.swing.JLabel jLabel_total_a_pagar;
  823.     private javax.swing.JList<Ruta> jList_rutas;
  824.     private javax.swing.JPanel jPanel1;
  825.     private javax.swing.JRadioButton jRadioButton_pago_manual;
  826.     private javax.swing.JRadioButton jRadioButton_pago_por_ticket;
  827.     private javax.swing.JScrollPane jScrollPane1;
  828.     private javax.swing.JSpinner jSpinner_pasajeros;
  829.     private javax.swing.JTextField jTextField_panel_de_digitacion;
  830.     // End of variables declaration                  
  831. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top