Advertisement
Guest User

codigo1

a guest
Jul 20th, 2019
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 44.91 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement